summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog319
-rw-r--r--Makefile.am34
-rw-r--r--Makefile.in37
-rw-r--r--NEWS50
-rw-r--r--SAX2.c9
-rw-r--r--c14n.c2
-rw-r--r--catalog.c39
-rwxr-xr-xconfigure16
-rw-r--r--configure.in16
-rw-r--r--debugXML.c69
-rwxr-xr-xdepcomp133
-rw-r--r--doc/APIchunk0.html23
-rw-r--r--doc/APIchunk1.html23
-rw-r--r--doc/APIchunk10.html40
-rw-r--r--doc/APIchunk11.html35
-rw-r--r--doc/APIchunk12.html33
-rw-r--r--doc/APIchunk13.html35
-rw-r--r--doc/APIchunk14.html36
-rw-r--r--doc/APIchunk15.html57
-rw-r--r--doc/APIchunk16.html33
-rw-r--r--doc/APIchunk17.html27
-rw-r--r--doc/APIchunk18.html26
-rw-r--r--doc/APIchunk19.html32
-rw-r--r--doc/APIchunk2.html25
-rw-r--r--doc/APIchunk20.html25
-rw-r--r--doc/APIchunk21.html36
-rw-r--r--doc/APIchunk22.html58
-rw-r--r--doc/APIchunk23.html31
-rw-r--r--doc/APIchunk24.html244
-rw-r--r--doc/APIchunk25.html656
-rw-r--r--doc/APIchunk26.html489
-rw-r--r--doc/APIchunk27.html115
-rw-r--r--doc/APIchunk3.html24
-rw-r--r--doc/APIchunk4.html23
-rw-r--r--doc/APIchunk5.html49
-rw-r--r--doc/APIchunk6.html54
-rw-r--r--doc/APIchunk7.html27
-rw-r--r--doc/APIchunk8.html50
-rw-r--r--doc/APIchunk9.html59
-rw-r--r--doc/APIconstructors.html15
-rw-r--r--doc/APIfiles.html188
-rw-r--r--doc/APIfunctions.html17
-rw-r--r--doc/APIsymbols.html188
-rw-r--r--doc/FAQ.html3
-rw-r--r--doc/Makefile.am11
-rw-r--r--doc/Makefile.in11
-rwxr-xr-xdoc/apibuild.py89
-rw-r--r--doc/elfgcchack.xsl121
-rw-r--r--doc/examples/Makefile.am1
-rw-r--r--doc/examples/Makefile.in1
-rw-r--r--doc/examples/examples.xml22
-rwxr-xr-xdoc/examples/index.py1
-rw-r--r--doc/examples/io2.c71
-rw-r--r--doc/examples/parse4.c7
-rw-r--r--doc/examples/testWriter.c8
-rw-r--r--doc/html/libxml-SAX2.html2
-rw-r--r--doc/html/libxml-globals.html32
-rw-r--r--doc/html/libxml-parser.html9
-rw-r--r--doc/html/libxml-schemasInternals.html139
-rw-r--r--doc/html/libxml-tree.html1
-rw-r--r--doc/html/libxml-uri.html7
-rw-r--r--doc/html/libxml-xmlerror.html77
-rw-r--r--doc/html/libxml-xmlmemory.html16
-rw-r--r--doc/html/libxml-xmlreader.html2
-rw-r--r--doc/html/libxml-xmlsave.html5
-rw-r--r--doc/html/libxml-xmlschemastypes.html23
-rw-r--r--doc/libxml2-api.xml1654
-rw-r--r--doc/libxml2.xsa43
-rw-r--r--doc/news.html46
-rw-r--r--doc/tutorial/apa.html2
-rw-r--r--doc/tutorial/apd.html2
-rw-r--r--doc/tutorial/api.html2
-rw-r--r--doc/tutorial/ar01s02.html6
-rw-r--r--doc/tutorial/ar01s03.html4
-rw-r--r--doc/tutorial/ar01s04.html2
-rw-r--r--doc/tutorial/ar01s06.html4
-rw-r--r--doc/tutorial/ar01s07.html2
-rw-r--r--doc/tutorial/ar01s08.html2
-rw-r--r--doc/tutorial/ar01s09.html2
-rw-r--r--doc/tutorial/includexpath.c2
-rw-r--r--doc/tutorial/index.html2
-rw-r--r--doc/tutorial/ix01.html2
-rw-r--r--doc/tutorial/xmltutorial.pdf142
-rw-r--r--doc/xml.html52
-rw-r--r--doc/xmlcatalog.114
-rw-r--r--doc/xmlcatalog_man.xml19
-rw-r--r--doc/xmllint.145
-rw-r--r--doc/xmllint.html7
-rw-r--r--doc/xmllint.xml71
-rw-r--r--elfgcchack.h7492
-rw-r--r--example/Makefile.am16
-rw-r--r--example/Makefile.in27
-rw-r--r--globals.c127
-rw-r--r--include/libxml/DOCBparser.h6
-rw-r--r--include/libxml/HTMLparser.h3
-rw-r--r--include/libxml/HTMLtree.h3
-rw-r--r--include/libxml/SAX.h5
-rw-r--r--include/libxml/c14n.h2
-rw-r--r--include/libxml/globals.h33
-rw-r--r--include/libxml/nanoftp.h2
-rw-r--r--include/libxml/parser.h17
-rw-r--r--include/libxml/pattern.h5
-rw-r--r--include/libxml/relaxng.h5
-rw-r--r--include/libxml/schemasInternals.h293
-rw-r--r--include/libxml/uri.h7
-rw-r--r--include/libxml/valid.h8
-rw-r--r--include/libxml/xinclude.h5
-rw-r--r--include/libxml/xmlIO.h10
-rw-r--r--include/libxml/xmlerror.h81
-rw-r--r--include/libxml/xmlreader.h5
-rw-r--r--include/libxml/xmlsave.h4
-rw-r--r--include/libxml/xmlschemastypes.h14
-rw-r--r--include/libxml/xmlunicode.h5
-rw-r--r--include/libxml/xmlversion.h8
-rw-r--r--include/libxml/xmlwriter.h7
-rw-r--r--include/libxml/xpath.h5
-rw-r--r--include/libxml/xpathInternals.h4
-rw-r--r--include/libxml/xpointer.h5
-rw-r--r--libxml.h8
-rw-r--r--libxml.m4215
-rw-r--r--libxml.spec.in42
-rw-r--r--libxml2.spec48
-rwxr-xr-xltconfig3114
-rw-r--r--nanohttp.c4
-rw-r--r--parser.c109
-rwxr-xr-xpython/generator.py10
-rw-r--r--python/libxml.c169
-rw-r--r--python/libxml.py5
-rw-r--r--python/libxml2-py.c315
-rw-r--r--python/libxml2-python-api.xml8
-rwxr-xr-xpython/setup.py2
-rw-r--r--python/tests/Makefile.am10
-rw-r--r--python/tests/Makefile.in10
-rwxr-xr-xpython/tests/sync.py135
-rwxr-xr-xregressions.py350
-rw-r--r--regressions.xml226
-rw-r--r--relaxng.c14
-rw-r--r--result/XInclude/docids.xml2
-rw-r--r--result/XInclude/include.xml2
-rw-r--r--result/XInclude/nodes.xml2
-rw-r--r--result/XInclude/nodes2.xml2
-rw-r--r--result/XInclude/recursive.xml2
-rw-r--r--result/att1.rde1
-rw-r--r--result/att2.rde1
-rw-r--r--result/att3.rde3
-rw-r--r--result/att4.rde27785
-rw-r--r--result/att5.rde109
-rw-r--r--result/att6.rde15
-rw-r--r--result/att7.rde12
-rw-r--r--result/att8.rde22
-rw-r--r--result/attrib.xml.rde1
-rw-r--r--result/bigentname.xml.rde4
-rw-r--r--result/bigname.xml.rde1
-rw-r--r--result/bigname2.xml.rde1
-rw-r--r--result/cdata.rde7
-rw-r--r--result/cdata2.rde13
-rw-r--r--result/comment.xml.rde13
-rw-r--r--result/comment2.xml.rde9
-rw-r--r--result/dav1.rde78
-rw-r--r--result/dav10.rde9
-rw-r--r--result/dav11.rde60
-rw-r--r--result/dav12.rde3
-rw-r--r--result/dav13.rde45
-rw-r--r--result/dav15.rde73
-rw-r--r--result/dav16.rde13
-rw-r--r--result/dav17.rde75
-rw-r--r--result/dav18.rde13
-rw-r--r--result/dav19.rde59
-rw-r--r--result/dav2.rde81
-rw-r--r--result/dav3.rde57
-rw-r--r--result/dav4.rde47
-rw-r--r--result/dav5.rde50
-rw-r--r--result/dav6.rde63
-rw-r--r--result/dav7.rde57
-rw-r--r--result/dav8.rde51
-rw-r--r--result/dav9.rde67
-rw-r--r--result/defattr.xml.rde2
-rw-r--r--result/defattr2.xml.rde2
-rw-r--r--result/dia1.rde292
-rw-r--r--result/dia2.rde292
-rw-r--r--result/dtd1.rde5
-rw-r--r--result/dtd10.rde12
-rw-r--r--result/dtd11.rde2
-rw-r--r--result/dtd12.rde4
-rw-r--r--result/dtd13.rde4
-rw-r--r--result/dtd2.rde4
-rw-r--r--result/dtd3.rde4
-rw-r--r--result/dtd4.rde2
-rw-r--r--result/dtd5.rde11
-rw-r--r--result/dtd6.rde12
-rw-r--r--result/dtd7.rde9
-rw-r--r--result/dtd8.rde9
-rw-r--r--result/dtd9.rde9
-rw-r--r--result/ent1.rde6
-rw-r--r--result/ent2.rde15
-rw-r--r--result/ent3.rde6
-rw-r--r--result/ent4.rde6
-rw-r--r--result/ent5.rde6
-rw-r--r--result/ent6.rde2
-rw-r--r--result/ent7.rde6
-rw-r--r--result/ent8.rde20
-rw-r--r--result/ent961
-rw-r--r--result/ent9.rde300
-rw-r--r--result/ent9.rdr280
-rw-r--r--result/ent9.sax310
-rw-r--r--result/errors/attr1.xml.str10
-rw-r--r--result/errors/attr2.xml.str10
-rw-r--r--result/errors/charref1.xml0
-rw-r--r--result/errors/charref1.xml.err3
-rw-r--r--result/errors/charref1.xml.str4
-rw-r--r--result/errors/name.xml.str3
-rw-r--r--result/errors/name2.xml.str10
-rw-r--r--result/eve.xml.rde5
-rw-r--r--result/intsubset.xml.rde2
-rw-r--r--result/isolat1.rde3
-rw-r--r--result/isolat2.rde108
-rw-r--r--result/isolat3.rde23
-rw-r--r--result/noent/ent961
-rw-r--r--result/ns.rde7
-rw-r--r--result/ns2.rde1
-rw-r--r--result/ns3.rde1
-rw-r--r--result/ns4.rde1
-rw-r--r--result/p3p.rde55
-rw-r--r--result/pi.xml.rde13
-rw-r--r--result/pi2.xml.rde9
-rw-r--r--result/rdf1.rde214
-rw-r--r--result/rdf2.rde2008
-rw-r--r--result/schemas/anyAttr-derive-errors1_0_01
-rw-r--r--result/schemas/anyAttr-derive-errors1_0_0.err0
-rw-r--r--result/schemas/anyAttr-derive1_0_01
-rw-r--r--result/schemas/anyAttr-derive1_0_0.err0
-rw-r--r--result/schemas/anyAttr-derive2_0_01
-rw-r--r--result/schemas/anyAttr-derive2_0_0.err0
-rw-r--r--result/schemas/anyAttr-processContents-err1_0_01
-rw-r--r--result/schemas/anyAttr-processContents-err1_0_0.err3
-rw-r--r--result/schemas/anyAttr-processContents1_0_01
-rw-r--r--result/schemas/anyAttr-processContents1_0_0.err0
-rw-r--r--result/schemas/anyAttr1_0_01
-rw-r--r--result/schemas/anyAttr1_0_0.err0
-rw-r--r--result/schemas/attruse_0_1.err4
-rw-r--r--result/schemas/attruse_0_2.err4
-rw-r--r--result/schemas/bug141312_0_01
-rw-r--r--result/schemas/bug141312_0_0.err0
-rw-r--r--result/schemas/bug143951_0_01
-rw-r--r--result/schemas/bug143951_0_0.err0
-rw-r--r--result/schemas/cos-ct-extends-1-3_0_01
-rw-r--r--result/schemas/cos-ct-extends-1-3_0_0.err0
-rw-r--r--result/schemas/cos-st-restricts-1-2-err_0_01
-rw-r--r--result/schemas/cos-st-restricts-1-2-err_0_0.err1
-rw-r--r--result/schemas/derivation-ok-extension-err_0_00
-rw-r--r--result/schemas/derivation-ok-extension-err_0_0.err1
-rw-r--r--result/schemas/derivation-ok-extension_0_00
-rw-r--r--result/schemas/derivation-ok-extension_0_0.err1
-rw-r--r--result/schemas/derivation-ok-restriction-2-1-1_0_00
-rw-r--r--result/schemas/derivation-ok-restriction-2-1-1_0_0.err6
-rw-r--r--result/schemas/derivation-ok-restriction-4-1-err_0_00
-rw-r--r--result/schemas/derivation-ok-restriction-4-1-err_0_0.err3
-rw-r--r--result/schemas/derivation-restriction-anyAttr_0_01
-rw-r--r--result/schemas/derivation-restriction-anyAttr_0_0.err0
-rw-r--r--result/schemas/extension1_0_1.err2
-rw-r--r--result/schemas/extension1_0_2.err2
-rw-r--r--result/schemas/facet-unionST-err1_0_01
-rw-r--r--result/schemas/facet-unionST-err1_0_0.err2
-rw-r--r--result/schemas/hexbinary_0_1.err21
-rw-r--r--result/schemas/length3_0_0.err2
-rw-r--r--result/schemas/ns0_0_3.err2
-rw-r--r--result/schemas/ns0_0_4.err2
-rw-r--r--result/schemas/ns0_1_0.err2
-rw-r--r--result/schemas/ns0_1_1.err2
-rw-r--r--result/schemas/scc-no-xmlns_0_00
-rw-r--r--result/schemas/scc-no-xmlns_0_0.err1
-rw-r--r--result/schemas/scc-no-xsi_0_00
-rw-r--r--result/schemas/scc-no-xsi_0_0.err1
-rw-r--r--result/schemas/src-attribute1_0_00
-rw-r--r--result/schemas/src-attribute1_0_0.err1
-rw-r--r--result/schemas/src-attribute2_0_00
-rw-r--r--result/schemas/src-attribute2_0_0.err1
-rw-r--r--result/schemas/src-attribute3-1_0_00
-rw-r--r--result/schemas/src-attribute3-1_0_0.err1
-rw-r--r--result/schemas/src-attribute3-2-form_0_00
-rw-r--r--result/schemas/src-attribute3-2-form_0_0.err1
-rw-r--r--result/schemas/src-attribute3-2-st_0_00
-rw-r--r--result/schemas/src-attribute3-2-st_0_0.err1
-rw-r--r--result/schemas/src-attribute3-2-type_0_00
-rw-r--r--result/schemas/src-attribute3-2-type_0_0.err1
-rw-r--r--result/schemas/src-attribute4_0_00
-rw-r--r--result/schemas/src-attribute4_0_0.err1
-rw-r--r--result/schemas/src-element1_0_00
-rw-r--r--result/schemas/src-element1_0_0.err1
-rw-r--r--result/schemas/src-element2-1_0_00
-rw-r--r--result/schemas/src-element2-1_0_0.err1
-rw-r--r--result/schemas/src-element2-2_0_00
-rw-r--r--result/schemas/src-element2-2_0_0.err8
-rw-r--r--result/schemas/src-element3_0_00
-rw-r--r--result/schemas/src-element3_0_0.err2
-rw-r--r--result/schemas/vdv-first4_0_1.err2
-rw-r--r--result/schemas/vdv-first4_0_2.err3
-rw-r--r--result/schemas/xsd-simpleType-varieties_0_01
-rw-r--r--result/schemas/xsd-simpleType-varieties_0_0.err0
-rw-r--r--result/slashdot.rdf.rde218
-rw-r--r--result/slashdot.xml.rde514
-rw-r--r--result/slashdot16.xml.rde718
-rw-r--r--result/svg1.rde477
-rw-r--r--result/svg2.rde178
-rw-r--r--result/svg3.rde2164
-rw-r--r--result/title.xml.rde3
-rw-r--r--result/tstblanks.xml.rde3
-rw-r--r--result/utf16bebom.xml.rde4
-rw-r--r--result/utf16bom.xml.rde3
-rw-r--r--result/utf16lebom.xml.rde4
-rw-r--r--result/utf8bom.xml.rde1
-rw-r--r--result/valid/t10.xml12
-rw-r--r--result/valid/t10.xml.err0
-rw-r--r--result/wap.xml.rde70
-rw-r--r--result/wml.xml.rde24
-rw-r--r--result/xhtml1.rde95
-rw-r--r--result/xhtmlcomp.rde19
-rw-r--r--result/xml1.rde8
-rw-r--r--result/xml2.rde4
-rw-r--r--test/ent961
-rw-r--r--test/errors/.memdump4
-rw-r--r--test/errors/charref1.xml1
-rw-r--r--test/schemas/anyAttr-derive-errors1_0.xml30
-rw-r--r--test/schemas/anyAttr-derive-errors1_0.xsd223
-rw-r--r--test/schemas/anyAttr-derive1_0.xml30
-rw-r--r--test/schemas/anyAttr-derive1_0.xsd227
-rw-r--r--test/schemas/anyAttr-derive2_0.xml9
-rw-r--r--test/schemas/anyAttr-derive2_0.xsd33
-rw-r--r--test/schemas/anyAttr-errors1_0.xml26
-rw-r--r--test/schemas/anyAttr-processContents-err1_0.xml11
-rw-r--r--test/schemas/anyAttr-processContents-err1_0.xsd26
-rw-r--r--test/schemas/anyAttr-processContents1_0.xml13
-rw-r--r--test/schemas/anyAttr-processContents1_0.xsd32
-rw-r--r--test/schemas/anyAttr.importA.1_0.xsd24
-rw-r--r--test/schemas/anyAttr.importB.1_0.xsd21
-rw-r--r--test/schemas/anyAttr1_0.xml31
-rw-r--r--test/schemas/anyAttr1_0.xsd144
-rw-r--r--test/schemas/bug141312_0.xml2
-rw-r--r--test/schemas/bug141312_0.xsd16
-rw-r--r--test/schemas/bug141333.xml9
-rw-r--r--test/schemas/bug141333.xsd25
-rw-r--r--test/schemas/bug143951.imp12
-rw-r--r--test/schemas/bug143951_0.xml9
-rw-r--r--test/schemas/bug143951_0.xsd17
-rw-r--r--test/schemas/cos-ct-extends-1-3_0.xml9
-rw-r--r--test/schemas/cos-ct-extends-1-3_0.xsd51
-rw-r--r--test/schemas/cos-st-restricts-1-2-err_0.xml3
-rw-r--r--test/schemas/cos-st-restricts-1-2-err_0.xsd30
-rw-r--r--test/schemas/date_0.xml1
-rw-r--r--test/schemas/derivation-ok-extension-err_0.xml9
-rw-r--r--test/schemas/derivation-ok-extension-err_0.xsd22
-rw-r--r--test/schemas/derivation-ok-extension_0.xml9
-rw-r--r--test/schemas/derivation-ok-extension_0.xsd22
-rw-r--r--test/schemas/derivation-ok-restriction-2-1-1_0.xml8
-rw-r--r--test/schemas/derivation-ok-restriction-2-1-1_0.xsd56
-rw-r--r--test/schemas/derivation-ok-restriction-4-1-err_0.xml8
-rw-r--r--test/schemas/derivation-ok-restriction-4-1-err_0.xsd69
-rw-r--r--test/schemas/derivation-restriction-anyAttr_0.xml12
-rw-r--r--test/schemas/derivation-restriction-anyAttr_0.xsd24
-rw-r--r--test/schemas/derivation-restriction-anyType.xml9
-rw-r--r--test/schemas/derivation-restriction-anyType.xsd22
-rw-r--r--test/schemas/facet-unionST-err1_0.xml4
-rw-r--r--test/schemas/facet-unionST-err1_0.xsd27
-rw-r--r--test/schemas/scc-no-xmlns_0.xml3
-rw-r--r--test/schemas/scc-no-xmlns_0.xsd11
-rw-r--r--test/schemas/scc-no-xsi_0.xml3
-rw-r--r--test/schemas/scc-no-xsi_0.xsd11
-rw-r--r--test/schemas/src-attribute1_0.xml2
-rw-r--r--test/schemas/src-attribute1_0.xsd13
-rw-r--r--test/schemas/src-attribute2_0.xml2
-rw-r--r--test/schemas/src-attribute2_0.xsd13
-rw-r--r--test/schemas/src-attribute3-1_0.xml2
-rw-r--r--test/schemas/src-attribute3-1_0.xsd15
-rw-r--r--test/schemas/src-attribute3-2-form_0.xml2
-rw-r--r--test/schemas/src-attribute3-2-form_0.xsd16
-rw-r--r--test/schemas/src-attribute3-2-st_0.xml2
-rw-r--r--test/schemas/src-attribute3-2-st_0.xsd22
-rw-r--r--test/schemas/src-attribute3-2-type_0.xml2
-rw-r--r--test/schemas/src-attribute3-2-type_0.xsd16
-rw-r--r--test/schemas/src-attribute4_0.xml2
-rw-r--r--test/schemas/src-attribute4_0.xsd17
-rw-r--r--test/schemas/src-element1_0.xml2
-rw-r--r--test/schemas/src-element1_0.xsd9
-rw-r--r--test/schemas/src-element2-1_0.xml2
-rw-r--r--test/schemas/src-element2-1_0.xsd17
-rw-r--r--test/schemas/src-element2-2_0.xml2
-rw-r--r--test/schemas/src-element2-2_0.xsd48
-rw-r--r--test/schemas/src-element3_0.xml2
-rw-r--r--test/schemas/src-element3_0.xsd29
-rw-r--r--test/schemas/xsd-simpleType-varieties_0.xml8
-rw-r--r--test/schemas/xsd-simpleType-varieties_0.xsd43
-rw-r--r--test/valid/t10.xml12
-rw-r--r--testHTML.c14
-rw-r--r--testSAX.c12
-rw-r--r--uri.c179
-rw-r--r--valid.c21
-rw-r--r--win32/Makefile.bcb12
-rw-r--r--win32/Makefile.mingw12
-rw-r--r--win32/Makefile.msvc16
-rw-r--r--win32/configure.js38
-rw-r--r--win32/libxml2.def.src24
-rw-r--r--xinclude.c66
-rw-r--r--xmlIO.c109
-rw-r--r--xmllint.c82
-rw-r--r--xmlmemory.c68
-rw-r--r--xmlreader.c19
-rw-r--r--xmlsave.c4
-rw-r--r--xmlschemas.c5723
-rw-r--r--xmlschemastypes.c681
-rw-r--r--xpath.c8
410 files changed, 59794 insertions, 6104 deletions
diff --git a/ChangeLog b/ChangeLog
index f331410..21fe8e2 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,322 @@
+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
diff --git a/Makefile.am b/Makefile.am
index 26de7d0..c5763ca 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -158,7 +158,7 @@ HTMLPushtests : testHTML$(EXEEXT)
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 ; \
+ $(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";\
@@ -191,7 +191,7 @@ HTMLPushtests : testHTML$(EXEEXT)
if [ ! -d $$i ] ; then \
if [ ! -f $(srcdir)/result/HTML/$$name ] ; then \
echo New test file $$name ; \
- $(CHECKER) $(top_builddir)/testHTML --sax $$i > $(srcdir)/result/HTML/$$name.sax ; \
+ $(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";\
@@ -328,12 +328,12 @@ Errtests : xmllint$(EXEEXT)
if [ ! -d $$i ] ; then \
if [ ! -f $(srcdir)/result/errors/$$name.str ] ; then \
echo New test file $$name ; \
- $(CHECKER) $(top_builddir)/xmllint $$i \
+ $(CHECKER) $(top_builddir)/xmllint --stream $$i \
2> $(srcdir)/result/errors/$$name.str \
> $(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 ; \
+ log=`$(CHECKER) $(top_builddir)/xmllint --stream $$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.str error.$$name` ; \
@@ -483,7 +483,7 @@ XIncludetests : xmllint$(EXEEXT)
if [ ! -d $$i ] ; then \
if [ ! -f $(srcdir)/result/XInclude/$$name.rdr ] ; then \
echo New test file $$name ; \
- $(CHECKER) $(top_builddir)/xmllint --nowarning --xinclude --walker --debug $$i > $(srcdir)/result/XInclude/$$name.rdr ; \
+ $(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 -v 'failed to load external entity' ; \
@@ -523,7 +523,7 @@ Catatests : xmlcatalog$(EXEEXT)
if [ -f $$xml ] ; then \
if [ ! -f $(srcdir)/result/catalogs/$$name ] ; then \
echo New test file $$name ; \
- $(CHECKER) $(top_builddir)/xmlcatalog --shell $$xml < $$i > $(srcdir)/result/catalogs/$$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 ; \
@@ -642,6 +642,22 @@ Readertests : xmllint$(EXEEXT)
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 "## SAX callbacks regression tests"
@@ -960,16 +976,16 @@ EXTRA_DIST = xml2-config.in xml2Conf.sh.in libxml.spec.in libxml2.spec \
example/Makefile.am example/gjobread.c example/gjobs.xml \
$(man_MANS) libxml-2.0.pc.in libxml-2.0-uninstalled.pc.in \
trionan.c trionan.h triostr.c triostr.h trio.c trio.h \
- triop.h triodef.h libxml.h \
+ triop.h triodef.h libxml.h elfgcchack.h \
testThreadsWin32.c genUnicode.py TODO_SCHEMAS \
- dbgen.pl dbgenattr.pl
+ dbgen.pl dbgenattr.pl regressions.py regressions.xml
pkgconfigdir = $(libdir)/pkgconfig
pkgconfig_DATA = libxml-2.0.pc
#
-# Instll the tests program sources as examples
+# Install the tests program sources as examples
#
BASE_DIR=$(datadir)/doc
DOC_MODULE=libxml2-$(VERSION)
diff --git a/Makefile.in b/Makefile.in
index c69a6fb..e86de57 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -51,8 +51,7 @@ DIST_COMMON = README $(am__configure_deps) $(srcdir)/Makefile.am \
$(srcdir)/libxml-2.0.pc.in $(srcdir)/libxml.spec.in \
$(srcdir)/xml2-config.in $(top_srcdir)/configure AUTHORS \
COPYING ChangeLog INSTALL NEWS TODO acconfig.h config.guess \
- config.sub depcomp install-sh ltconfig ltmain.sh missing \
- mkinstalldirs
+ config.sub depcomp install-sh ltmain.sh missing mkinstalldirs
subdir = .
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/acinclude.m4 \
@@ -510,15 +509,15 @@ EXTRA_DIST = xml2-config.in xml2Conf.sh.in libxml.spec.in libxml2.spec \
example/Makefile.am example/gjobread.c example/gjobs.xml \
$(man_MANS) libxml-2.0.pc.in libxml-2.0-uninstalled.pc.in \
trionan.c trionan.h triostr.c triostr.h trio.c trio.h \
- triop.h triodef.h libxml.h \
+ triop.h triodef.h libxml.h elfgcchack.h \
testThreadsWin32.c genUnicode.py TODO_SCHEMAS \
- dbgen.pl dbgenattr.pl
+ dbgen.pl dbgenattr.pl regressions.py regressions.xml
pkgconfigdir = $(libdir)/pkgconfig
pkgconfig_DATA = libxml-2.0.pc
#
-# Instll the tests program sources as examples
+# Install the tests program sources as examples
#
BASE_DIR = $(datadir)/doc
DOC_MODULE = libxml2-$(VERSION)
@@ -1374,7 +1373,7 @@ HTMLPushtests : testHTML$(EXEEXT)
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 ; \
+ $(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";\
@@ -1407,7 +1406,7 @@ HTMLPushtests : testHTML$(EXEEXT)
if [ ! -d $$i ] ; then \
if [ ! -f $(srcdir)/result/HTML/$$name ] ; then \
echo New test file $$name ; \
- $(CHECKER) $(top_builddir)/testHTML --sax $$i > $(srcdir)/result/HTML/$$name.sax ; \
+ $(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";\
@@ -1544,12 +1543,12 @@ Errtests : xmllint$(EXEEXT)
if [ ! -d $$i ] ; then \
if [ ! -f $(srcdir)/result/errors/$$name.str ] ; then \
echo New test file $$name ; \
- $(CHECKER) $(top_builddir)/xmllint $$i \
+ $(CHECKER) $(top_builddir)/xmllint --stream $$i \
2> $(srcdir)/result/errors/$$name.str \
> $(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 ; \
+ log=`$(CHECKER) $(top_builddir)/xmllint --stream $$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.str error.$$name` ; \
@@ -1699,7 +1698,7 @@ XIncludetests : xmllint$(EXEEXT)
if [ ! -d $$i ] ; then \
if [ ! -f $(srcdir)/result/XInclude/$$name.rdr ] ; then \
echo New test file $$name ; \
- $(CHECKER) $(top_builddir)/xmllint --nowarning --xinclude --walker --debug $$i > $(srcdir)/result/XInclude/$$name.rdr ; \
+ $(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 -v 'failed to load external entity' ; \
@@ -1739,7 +1738,7 @@ Catatests : xmlcatalog$(EXEEXT)
if [ -f $$xml ] ; then \
if [ ! -f $(srcdir)/result/catalogs/$$name ] ; then \
echo New test file $$name ; \
- $(CHECKER) $(top_builddir)/xmlcatalog --shell $$xml < $$i > $(srcdir)/result/catalogs/$$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 ; \
@@ -1858,6 +1857,22 @@ Readertests : xmllint$(EXEEXT)
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 "## SAX callbacks regression tests"
diff --git a/NEWS b/NEWS
index e1b46af..9d3b90e 100644
--- a/NEWS
+++ b/NEWS
@@ -10,6 +10,56 @@ to help those - More testing on RelaxNG
Schemas
There is the list of public releases:
+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
diff --git a/SAX2.c b/SAX2.c
index 781a666..cc65e0a 100644
--- a/SAX2.c
+++ b/SAX2.c
@@ -1958,11 +1958,13 @@ xmlSAX2AttributeNs(xmlParserCtxtPtr ctxt,
*/
if (dup == NULL)
dup = xmlStrndup(value, valueend - value);
+#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
xmlAddID(&ctxt->vctxt, ctxt->myDoc, dup, ret);
}
}
@@ -2511,9 +2513,10 @@ static int xmlSAX2DefaultVersionValue = 2;
* @version: the version, 1 or 2
*
* Set the default version of SAX used globally by the library.
- * Note that this may not be a good thing to do from a library
- * it is better to use xmlSAXVersion() to set up specifically the
- * version for a given parsing context.
+ * 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.
*/
diff --git a/c14n.c b/c14n.c
index fd14d9c..687246e 100644
--- a/c14n.c
+++ b/c14n.c
@@ -757,7 +757,7 @@ xmlExcC14NProcessNamespacesAxis(xmlC14NCtxPtr ctx, xmlNodePtr cur, int visible)
*/
if((attr->ns != NULL) && xmlC14NIsVisible(ctx, attr, cur)) {
already_rendered = xmlExcC14NVisibleNsStackFind(ctx->ns_rendered, attr->ns, ctx);
- xmlC14NVisibleNsStackAdd(ctx->ns_rendered, attr->ns, (xmlNodePtr)attr);
+ xmlC14NVisibleNsStackAdd(ctx->ns_rendered, attr->ns, cur);
if(!already_rendered && visible) {
xmlListInsert(list, attr->ns);
}
diff --git a/catalog.c b/catalog.c
index 7c328f2..1ef78e7 100644
--- a/catalog.c
+++ b/catalog.c
@@ -68,6 +68,13 @@
#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";
+void* __stdcall GetModuleHandleA(const char*);
+unsigned long __stdcall GetModuleFileNameA(void*, char*, unsigned long);
+#endif
+
static int xmlExpandCatalog(xmlCatalogPtr catal, const char *filename);
/************************************************************************
@@ -2925,7 +2932,35 @@ xmlInitializeCatalog(void) {
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(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);
@@ -3510,7 +3545,7 @@ xmlCatalogLocalResolveURI(void *catalogs, const xmlChar *URI) {
const xmlChar *
xmlCatalogGetSystem(const xmlChar *sysID) {
xmlChar *ret;
- xmlChar result[1000];
+ static xmlChar result[1000];
static int msg = 0;
if (!xmlCatalogInitialized)
@@ -3554,7 +3589,7 @@ xmlCatalogGetSystem(const xmlChar *sysID) {
const xmlChar *
xmlCatalogGetPublic(const xmlChar *pubID) {
xmlChar *ret;
- xmlChar result[1000];
+ static xmlChar result[1000];
static int msg = 0;
if (!xmlCatalogInitialized)
diff --git a/configure b/configure
index 4f2c54a..c6be31f 100755
--- a/configure
+++ b/configure
@@ -1615,7 +1615,7 @@ host_os=`echo $ac_cv_host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'`
LIBXML_MAJOR_VERSION=2
LIBXML_MINOR_VERSION=6
-LIBXML_MICRO_VERSION=10
+LIBXML_MICRO_VERSION=11
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
@@ -26456,8 +26456,9 @@ then
fi
if [ "${LOGNAME}" = "veillard" -a "`pwd`" = "/u/veillard/XML" ] || \
+ [ "${LOGNAME}" = "veillard" -a "`pwd`" = "/home/veillard/libxml2" ] || \
[ "${LOGNAME}" = "bill" -a "`pwd`" = "/home/bill/gnomecvs/xmltest" ] || \
- [ "${LOGNAME}" = "bill" -a "`pwd`" = "/home/bill/gnomecvs/xmlnew" ]
+ [ "${LOGNAME}" = "wbrack" -a "`pwd`" = "/Users/wbrack/gnomecvs/xmltest" ]
then
if test "$with_minimum" != "yes"
then
@@ -26758,7 +26759,7 @@ if test "$with_minimum" = "yes" -a "$with_thread_alloc" = ""
then
with_thread_alloc=no
fi
-if test "$with_threads_alloc" = "yes" -a "$WITH_THREADS" = "1" ; then
+if test "$with_thread_alloc" = "yes" -a "$WITH_THREADS" = "1" ; then
THREAD_CFLAGS="$THREAD_CFLAGS -DLIBXML_THREAD_ALLOC_ENABLED"
fi
@@ -28091,8 +28092,13 @@ then
with_mem_debug=no
fi
if test "$with_mem_debug" = "yes" ; then
- echo Enabling memory debug support
- WITH_MEM_DEBUG=1
+ 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
diff --git a/configure.in b/configure.in
index 63aea89..52f0af2 100644
--- a/configure.in
+++ b/configure.in
@@ -6,7 +6,7 @@ AC_CANONICAL_HOST
LIBXML_MAJOR_VERSION=2
LIBXML_MINOR_VERSION=6
-LIBXML_MICRO_VERSION=10
+LIBXML_MICRO_VERSION=11
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
@@ -421,8 +421,9 @@ dnl specific tests to setup DV's devel environment 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/gnomecvs/xmltest" ]] || \
- [[ "${LOGNAME}" = "bill" -a "`pwd`" = "/home/bill/gnomecvs/xmlnew" ]]
+ [[ "${LOGNAME}" = "wbrack" -a "`pwd`" = "/Users/wbrack/gnomecvs/xmltest" ]]
then
if test "$with_minimum" != "yes"
then
@@ -498,7 +499,7 @@ if test "$with_minimum" = "yes" -a "$with_thread_alloc" = ""
then
with_thread_alloc=no
fi
-if test "$with_threads_alloc" = "yes" -a "$WITH_THREADS" = "1" ; then
+if test "$with_thread_alloc" = "yes" -a "$WITH_THREADS" = "1" ; then
THREAD_CFLAGS="$THREAD_CFLAGS -DLIBXML_THREAD_ALLOC_ENABLED"
fi
@@ -1007,8 +1008,13 @@ then
with_mem_debug=no
fi
if test "$with_mem_debug" = "yes" ; then
- echo Enabling memory debug support
- WITH_MEM_DEBUG=1
+ 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
diff --git a/debugXML.c b/debugXML.c
index 6886ee8..768010d 100644
--- a/debugXML.c
+++ b/debugXML.c
@@ -1561,6 +1561,66 @@ xmlShellSetBase(xmlShellCtxtPtr ctxt ATTRIBUTE_UNUSED,
}
#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);
+}
+#endif
+
/**
* xmlShellGrep:
* @ctxt: the shell context
@@ -2246,6 +2306,8 @@ xmlShell(xmlDocPtr doc, char *filename, xmlShellReadlineFunc input,
fprintf(ctxt->output, "\tls [path] list contents of path or the current directory\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");
#endif /* LIBXML_XPATH_ENABLED */
fprintf(ctxt->output, "\tpwd display current working directory\n");
fprintf(ctxt->output, "\tquit leave shell\n");
@@ -2297,6 +2359,13 @@ xmlShell(xmlDocPtr doc, char *filename, xmlShellReadlineFunc input,
} else if (!strcmp(command, "base")) {
xmlShellBase(ctxt, NULL, 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, "xpath")) {
if (arg[0] == 0) {
xmlGenericError(xmlGenericErrorContext,
diff --git a/depcomp b/depcomp
index 807b991..9e5522d 100755
--- a/depcomp
+++ b/depcomp
@@ -1,7 +1,9 @@
#! /bin/sh
-
# depcomp - compile a program generating dependencies as side-effects
-# Copyright 1999, 2000 Free Software Foundation, Inc.
+
+scriptversion=2003-11-08.23
+
+# Copyright (C) 1999, 2000, 2003 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
@@ -25,6 +27,36 @@
# 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'.
+ depfile Dependency file to output.
+ tmpdepfile Temporary file to use when outputing dependencies.
+ libtool Whether libtool is used (yes/no).
+
+Report bugs to <bug-automake@gnu.org>.
+EOF
+ exit 0
+ ;;
+ -v | --v*)
+ echo "depcomp $scriptversion"
+ exit 0
+ ;;
+esac
+
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
@@ -172,19 +204,25 @@ sgi)
aix)
# The C for AIX Compiler uses -M and outputs the dependencies
- # in a .u file. 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.
- stripped=`echo "$object" | sed -e 's,^.*/,,' -e 's/\(.*\)\..*$/\1/'`
+ # 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.
+ stripped=`echo "$object" | sed 's/\(.*\)\..*$/\1/'`
tmpdepfile="$stripped.u"
- outname="$stripped.o"
if test "$libtool" = yes; then
"$@" -Wc,-M
else
"$@" -M
fi
-
stat=$?
+
+ if test -f "$tmpdepfile"; then :
+ else
+ stripped=`echo "$stripped" | sed 's,^.*/,,'`
+ tmpdepfile="$stripped.u"
+ fi
+
if test $stat -eq 0; then :
else
rm -f "$tmpdepfile"
@@ -192,6 +230,7 @@ aix)
fi
if test -f "$tmpdepfile"; then
+ outname="$stripped.o"
# Each line is of the form `foo.o: dependent.h'.
# Do two passes, one to just change these to
# `$object: dependent.h' and one to simply `dependent.h:'.
@@ -206,6 +245,44 @@ aix)
rm -f "$tmpdepfile"
;;
+icc)
+ # Intel's C compiler understands `-MD -MF file'. However on
+ # icc -MD -MF foo.d -c -o sub/foo.o sub/foo.c
+ # ICC 7.0 will fill foo.d with something like
+ # foo.o: sub/foo.c
+ # foo.o: sub/foo.h
+ # which is wrong. We want:
+ # sub/foo.o: sub/foo.c
+ # sub/foo.o: sub/foo.h
+ # sub/foo.c:
+ # sub/foo.h:
+ # ICC 7.1 will output
+ # foo.o: sub/foo.c sub/foo.h
+ # and will wrap long lines using \ :
+ # foo.o: sub/foo.c ... \
+ # sub/foo.h ... \
+ # ...
+
+ "$@" -MD -MF "$tmpdepfile"
+ stat=$?
+ if test $stat -eq 0; then :
+ else
+ 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"
+ ;;
+
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'.
@@ -240,8 +317,8 @@ tru64)
fi
if test -f "$tmpdepfile"; then
sed -e "s,^.*\.[a-z]*:,$object:," < "$tmpdepfile" > "$depfile"
- # That's a space and a tab in the [].
- sed -e 's,^.*\.[a-z]*:[ ]*,,' -e 's,$,:,' < "$tmpdepfile" >> "$depfile"
+ # That's a tab and a space in the [].
+ sed -e 's,^.*\.[a-z]*:[ ]*,,' -e 's,$,:,' < "$tmpdepfile" >> "$depfile"
else
echo "#dummy" > "$depfile"
fi
@@ -254,7 +331,7 @@ tru64)
dashmstdout)
# Important note: in order to support this mode, a compiler *must*
- # always write the proprocessed file to stdout, regardless of -o.
+ # always write the preprocessed file to stdout, regardless of -o.
"$@" || exit $?
# Remove the call to Libtool.
@@ -265,9 +342,7 @@ dashmstdout)
shift
fi
- # Remove `-o $object'. We will use -o /dev/null later,
- # however we can't do the remplacement now because
- # `-o $object' might simply not be used
+ # Remove `-o $object'.
IFS=" "
for arg
do
@@ -287,7 +362,11 @@ dashmstdout)
done
test -z "$dashmflag" && dashmflag=-M
- "$@" -o /dev/null $dashmflag | sed 's:^[^:]*\:[ ]*:'"$object"'\: :' > "$tmpdepfile"
+ # 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:^[ ]*[^: ][^:][^:]*\:[ ]*:'"$object"'\: :' > "$tmpdepfile"
rm -f "$depfile"
cat < "$tmpdepfile" > "$depfile"
tr ' ' '
@@ -306,6 +385,13 @@ dashXmstdout)
makedepend)
"$@" || exit $?
+ # Remove any Libtool call
+ if test "$libtool" = yes; then
+ while test $1 != '--mode=compile'; do
+ shift
+ done
+ shift
+ fi
# X makedepend
shift
cleared=no
@@ -318,7 +404,9 @@ makedepend)
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.
+ -*|$object)
;;
*)
set fnord "$@" "$arg"; shift ;;
@@ -339,7 +427,7 @@ makedepend)
cpp)
# Important note: in order to support this mode, a compiler *must*
- # always write the proprocessed file to stdout.
+ # always write the preprocessed file to stdout.
"$@" || exit $?
# Remove the call to Libtool.
@@ -381,7 +469,7 @@ cpp)
msvisualcpp)
# Important note: in order to support this mode, a compiler *must*
- # always write the proprocessed file to stdout, regardless of -o,
+ # always write the preprocessed file to stdout, regardless of -o,
# because we must use -o when running libtool.
"$@" || exit $?
IFS=" "
@@ -421,3 +509,12 @@ none)
esac
exit 0
+
+# Local Variables:
+# mode: shell-script
+# sh-indentation: 2
+# eval: (add-hook 'write-file-hooks 'time-stamp)
+# time-stamp-start: "scriptversion="
+# time-stamp-format: "%:y-%02m-%02d.%02H"
+# time-stamp-end: "$"
+# End:
diff --git a/doc/APIchunk0.html b/doc/APIchunk0.html
index ca16cf1..4021fee 100644
--- a/doc/APIchunk0.html
+++ b/doc/APIchunk0.html
@@ -12,8 +12,8 @@ A:link, A:visited, A:active { text-decoration: underline }
<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-Q</a>
-<a href="APIchunk6.html">R-S</a>
+<a href="APIchunk5.html">O-P</a>
+<a href="APIchunk6.html">Q-S</a>
<a href="APIchunk7.html">T-U</a>
<a href="APIchunk8.html">V-a</a>
<a href="APIchunk9.html">b-b</a>
@@ -31,9 +31,10 @@ A:link, A:visited, A:active { text-decoration: underline }
<a href="APIchunk21.html">q-r</a>
<a href="APIchunk22.html">s-s</a>
<a href="APIchunk23.html">t-t</a>
-<a href="APIchunk24.html">u-w</a>
-<a href="APIchunk25.html">x-x</a>
-<a href="APIchunk26.html">y-z</a>
+<a href="APIchunk24.html">u-v</a>
+<a href="APIchunk25.html">w-w</a>
+<a href="APIchunk26.html">x-x</a>
+<a href="APIchunk27.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 />
@@ -130,6 +131,7 @@ A:link, A:visited, A:active { text-decoration: underline }
<a href="html/libxml-parser.html#xmlCtxtUseOptions">xmlCtxtUseOptions</a><br />
<a href="html/libxml-uri.html#xmlNormalizeURIPath">xmlNormalizeURIPath</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 />
@@ -253,8 +255,8 @@ A:link, A:visited, A:active { text-decoration: underline }
<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-Q</a>
-<a href="APIchunk6.html">R-S</a>
+<a href="APIchunk5.html">O-P</a>
+<a href="APIchunk6.html">Q-S</a>
<a href="APIchunk7.html">T-U</a>
<a href="APIchunk8.html">V-a</a>
<a href="APIchunk9.html">b-b</a>
@@ -272,7 +274,8 @@ A:link, A:visited, A:active { text-decoration: underline }
<a href="APIchunk21.html">q-r</a>
<a href="APIchunk22.html">s-s</a>
<a href="APIchunk23.html">t-t</a>
-<a href="APIchunk24.html">u-w</a>
-<a href="APIchunk25.html">x-x</a>
-<a href="APIchunk26.html">y-z</a>
+<a href="APIchunk24.html">u-v</a>
+<a href="APIchunk25.html">w-w</a>
+<a href="APIchunk26.html">x-x</a>
+<a href="APIchunk27.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/doc/APIchunk1.html b/doc/APIchunk1.html
index a926648..6addbe3 100644
--- a/doc/APIchunk1.html
+++ b/doc/APIchunk1.html
@@ -12,8 +12,8 @@ A:link, A:visited, A:active { text-decoration: underline }
<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-Q</a>
-<a href="APIchunk6.html">R-S</a>
+<a href="APIchunk5.html">O-P</a>
+<a href="APIchunk6.html">Q-S</a>
<a href="APIchunk7.html">T-U</a>
<a href="APIchunk8.html">V-a</a>
<a href="APIchunk9.html">b-b</a>
@@ -31,9 +31,10 @@ A:link, A:visited, A:active { text-decoration: underline }
<a href="APIchunk21.html">q-r</a>
<a href="APIchunk22.html">s-s</a>
<a href="APIchunk23.html">t-t</a>
-<a href="APIchunk24.html">u-w</a>
-<a href="APIchunk25.html">x-x</a>
-<a href="APIchunk26.html">y-z</a>
+<a href="APIchunk24.html">u-v</a>
+<a href="APIchunk25.html">w-w</a>
+<a href="APIchunk26.html">x-x</a>
+<a href="APIchunk27.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 />
</dd><dt>CATALOG</dt><dd><a href="html/libxml-catalog.html#xmlLoadACatalog">xmlLoadACatalog</a><br />
@@ -178,6 +179,7 @@ A:link, A:visited, A:active { text-decoration: underline }
<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 />
@@ -332,8 +334,8 @@ A:link, A:visited, A:active { text-decoration: underline }
<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-Q</a>
-<a href="APIchunk6.html">R-S</a>
+<a href="APIchunk5.html">O-P</a>
+<a href="APIchunk6.html">Q-S</a>
<a href="APIchunk7.html">T-U</a>
<a href="APIchunk8.html">V-a</a>
<a href="APIchunk9.html">b-b</a>
@@ -351,7 +353,8 @@ A:link, A:visited, A:active { text-decoration: underline }
<a href="APIchunk21.html">q-r</a>
<a href="APIchunk22.html">s-s</a>
<a href="APIchunk23.html">t-t</a>
-<a href="APIchunk24.html">u-w</a>
-<a href="APIchunk25.html">x-x</a>
-<a href="APIchunk26.html">y-z</a>
+<a href="APIchunk24.html">u-v</a>
+<a href="APIchunk25.html">w-w</a>
+<a href="APIchunk26.html">x-x</a>
+<a href="APIchunk27.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/doc/APIchunk10.html b/doc/APIchunk10.html
index 30ccaa4..1030c69 100644
--- a/doc/APIchunk10.html
+++ b/doc/APIchunk10.html
@@ -12,8 +12,8 @@ A:link, A:visited, A:active { text-decoration: underline }
<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-Q</a>
-<a href="APIchunk6.html">R-S</a>
+<a href="APIchunk5.html">O-P</a>
+<a href="APIchunk6.html">Q-S</a>
<a href="APIchunk7.html">T-U</a>
<a href="APIchunk8.html">V-a</a>
<a href="APIchunk9.html">b-b</a>
@@ -31,9 +31,10 @@ A:link, A:visited, A:active { text-decoration: underline }
<a href="APIchunk21.html">q-r</a>
<a href="APIchunk22.html">s-s</a>
<a href="APIchunk23.html">t-t</a>
-<a href="APIchunk24.html">u-w</a>
-<a href="APIchunk25.html">x-x</a>
-<a href="APIchunk26.html">y-z</a>
+<a href="APIchunk24.html">u-v</a>
+<a href="APIchunk25.html">w-w</a>
+<a href="APIchunk26.html">x-x</a>
+<a href="APIchunk27.html">y-z</a>
</h2><h2>Letter c:</h2><dl><dt>cae</dt><dd><a href="html/libxml-xmlschemastypes.html#xmlSchemaCheckFacet">xmlSchemaCheckFacet</a><br />
</dd><dt>calculates</dt><dd><a href="html/libxml-xmlstring.html#xmlUTF8Size">xmlUTF8Size</a><br />
</dd><dt>call</dt><dd><a href="html/libxml-encoding.html#xmlCharEncOutFunc">xmlCharEncOutFunc</a><br />
@@ -86,6 +87,7 @@ A:link, A:visited, A:active { text-decoration: underline }
<a href="html/libxml-xpathInternals.html#xmlXPathFuncLookupFunc">xmlXPathFuncLookupFunc</a><br />
<a href="html/libxml-xpathInternals.html#xmlXPathVariableLookupFunc">xmlXPathVariableLookupFunc</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-tree.html#xmlGetLineNo">xmlGetLineNo</a><br />
@@ -172,6 +174,7 @@ A:link, A:visited, A:active { text-decoration: underline }
<a href="html/libxml-parserInternals.html#xmlParseSDDecl">xmlParseSDDecl</a><br />
<a href="html/libxml-relaxng.html#xmlRelaxNGParse">xmlRelaxNGParse</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-xmlschemas.html#xmlSchemaParse">xmlSchemaParse</a><br />
<a href="html/libxml-parser.html#xmlSubstituteEntitiesDefault">xmlSubstituteEntitiesDefault</a><br />
<a href="html/libxml-parserInternals.html#xmlSwitchEncoding">xmlSwitchEncoding</a><br />
@@ -236,7 +239,6 @@ A:link, A:visited, A:active { text-decoration: underline }
</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-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-valid.html#xmlValidateOneElement">xmlValidateOneElement</a><br />
</dd><dt>checks</dt><dd><a href="html/libxml-HTMLparser.html#htmlAutoCloseTag">htmlAutoCloseTag</a><br />
@@ -325,6 +327,7 @@ A:link, A:visited, A:active { text-decoration: underline }
<a href="html/libxml-parserInternals.html#xmlParseElementChildrenContentDecl">xmlParseElementChildrenContentDecl</a><br />
<a href="html/libxml-parserInternals.html#xmlParseStartTag">xmlParseStartTag</a><br />
</dd><dt>cncerning</dt><dd><a href="html/libxml-debugXML.html#xmlDebugDumpDocumentHead">xmlDebugDumpDocumentHead</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 />
</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 />
@@ -334,6 +337,7 @@ A:link, A:visited, A:active { text-decoration: underline }
</dd><dt>column</dt><dd><a href="html/libxml-SAX.html#getColumnNumber">getColumnNumber</a><br />
<a href="html/libxml-SAX2.html#xmlSAX2GetColumnNumber">xmlSAX2GetColumnNumber</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>coment</dt><dd><a href="html/libxml-xmlwriter.html#xmlTextWriterEndComment">xmlTextWriterEndComment</a><br />
@@ -444,6 +448,7 @@ A:link, A:visited, A:active { text-decoration: underline }
</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 />
@@ -453,6 +458,12 @@ A:link, A:visited, A:active { text-decoration: underline }
<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-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 />
+</dd><dt>complexType</dt><dd><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>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 />
@@ -549,6 +560,7 @@ A:link, A:visited, A:active { text-decoration: underline }
<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 />
@@ -556,7 +568,9 @@ A:link, A:visited, A:active { text-decoration: underline }
</dd><dt>consist</dt><dd><a href="html/libxml-xpathInternals.html#xmlXPathNextAncestor">xmlXPathNextAncestor</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-parserInternals.html#xmlParseEntityRef">xmlParseEntityRef</a><br />
+</dd><dt>constraint</dt><dd><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-parserInternals.html#xmlParseAttributeType">xmlParseAttributeType</a><br />
<a href="html/libxml-parserInternals.html#xmlParseDefaultDecl">xmlParseDefaultDecl</a><br />
@@ -677,6 +691,7 @@ A:link, A:visited, A:active { text-decoration: underline }
<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 />
@@ -786,8 +801,8 @@ A:link, A:visited, A:active { text-decoration: underline }
<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-Q</a>
-<a href="APIchunk6.html">R-S</a>
+<a href="APIchunk5.html">O-P</a>
+<a href="APIchunk6.html">Q-S</a>
<a href="APIchunk7.html">T-U</a>
<a href="APIchunk8.html">V-a</a>
<a href="APIchunk9.html">b-b</a>
@@ -805,7 +820,8 @@ A:link, A:visited, A:active { text-decoration: underline }
<a href="APIchunk21.html">q-r</a>
<a href="APIchunk22.html">s-s</a>
<a href="APIchunk23.html">t-t</a>
-<a href="APIchunk24.html">u-w</a>
-<a href="APIchunk25.html">x-x</a>
-<a href="APIchunk26.html">y-z</a>
+<a href="APIchunk24.html">u-v</a>
+<a href="APIchunk25.html">w-w</a>
+<a href="APIchunk26.html">x-x</a>
+<a href="APIchunk27.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/doc/APIchunk11.html b/doc/APIchunk11.html
index 1cbc8e2..d0a2742 100644
--- a/doc/APIchunk11.html
+++ b/doc/APIchunk11.html
@@ -12,8 +12,8 @@ A:link, A:visited, A:active { text-decoration: underline }
<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-Q</a>
-<a href="APIchunk6.html">R-S</a>
+<a href="APIchunk5.html">O-P</a>
+<a href="APIchunk6.html">Q-S</a>
<a href="APIchunk7.html">T-U</a>
<a href="APIchunk8.html">V-a</a>
<a href="APIchunk9.html">b-b</a>
@@ -31,11 +31,12 @@ A:link, A:visited, A:active { text-decoration: underline }
<a href="APIchunk21.html">q-r</a>
<a href="APIchunk22.html">s-s</a>
<a href="APIchunk23.html">t-t</a>
-<a href="APIchunk24.html">u-w</a>
-<a href="APIchunk25.html">x-x</a>
-<a href="APIchunk26.html">y-z</a>
+<a href="APIchunk24.html">u-v</a>
+<a href="APIchunk25.html">w-w</a>
+<a href="APIchunk26.html">x-x</a>
+<a href="APIchunk27.html">y-z</a>
</h2><h2>Letter d:</h2><dl><dt>dangerous</dt><dd><a href="html/libxml-xmlreader.html#xmlTextReaderCurrentNode">xmlTextReaderCurrentNode</a><br />
-<a href="html/libxml-xmlreader.html#xmlTextReaderPreserve">xmlTextReaderPreserve</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>deactivated</dt><dd><a href="html/libxml-xmlreader.html#xmlTextReaderRelaxNGSetSchema">xmlTextReaderRelaxNGSetSchema</a><br />
@@ -162,6 +163,7 @@ A:link, A:visited, A:active { text-decoration: underline }
<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-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 />
@@ -218,6 +220,8 @@ A:link, A:visited, A:active { text-decoration: underline }
<a href="html/libxml-valid.html#_xmlValidCtxt">_xmlValidCtxt</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 />
+</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 />
</dd><dt>des</dt><dd><a href="html/libxml-xmlreader.html#xmlTextReaderRelaxNGSetSchema">xmlTextReaderRelaxNGSetSchema</a><br />
<a href="html/libxml-xmlreader.html#xmlTextReaderRelaxNGValidate">xmlTextReaderRelaxNGValidate</a><br />
</dd><dt>desactivated</dt><dd><a href="html/libxml-xmlreader.html#xmlTextReaderRelaxNGSetSchema">xmlTextReaderRelaxNGSetSchema</a><br />
@@ -285,7 +289,6 @@ A:link, A:visited, A:active { text-decoration: underline }
<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#xmlTextReaderPreserve">xmlTextReaderPreserve</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 />
@@ -434,6 +437,7 @@ A:link, A:visited, A:active { text-decoration: underline }
</dd><dt>doc-</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-xmlwriter.html#xmlNewTextWriterTree">xmlNewTextWriterTree</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-valid.html#xmlIsID">xmlIsID</a><br />
@@ -492,7 +496,8 @@ A:link, A:visited, A:active { text-decoration: underline }
<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>don</dt><dd><a href="html/libxml-xlink.html#xlinkIsLink">xlinkIsLink</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-parser.html#xmlCreatePushParserCtxt">xmlCreatePushParserCtxt</a><br />
<a href="html/libxml-tree.html#xmlNewDocNode">xmlNewDocNode</a><br />
<a href="html/libxml-tree.html#xmlNewDocNodeEatName">xmlNewDocNodeEatName</a><br />
@@ -556,14 +561,15 @@ A:link, A:visited, A:active { text-decoration: underline }
</dd><dt>duplicate</dt><dd><a href="html/libxml-uri.html#xmlCanonicPath">xmlCanonicPath</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>during</dt><dd><a href="html/libxml-xmlschemas.html#xmlSchemaNewDocParserCtxt">xmlSchemaNewDocParserCtxt</a><br />
+</dd><dt>during</dt><dd><a href="html/libxml-SAX2.html#xmlSAXDefaultVersion">xmlSAXDefaultVersion</a><br />
+<a href="html/libxml-xmlschemas.html#xmlSchemaNewDocParserCtxt">xmlSchemaNewDocParserCtxt</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-Q</a>
-<a href="APIchunk6.html">R-S</a>
+<a href="APIchunk5.html">O-P</a>
+<a href="APIchunk6.html">Q-S</a>
<a href="APIchunk7.html">T-U</a>
<a href="APIchunk8.html">V-a</a>
<a href="APIchunk9.html">b-b</a>
@@ -581,7 +587,8 @@ A:link, A:visited, A:active { text-decoration: underline }
<a href="APIchunk21.html">q-r</a>
<a href="APIchunk22.html">s-s</a>
<a href="APIchunk23.html">t-t</a>
-<a href="APIchunk24.html">u-w</a>
-<a href="APIchunk25.html">x-x</a>
-<a href="APIchunk26.html">y-z</a>
+<a href="APIchunk24.html">u-v</a>
+<a href="APIchunk25.html">w-w</a>
+<a href="APIchunk26.html">x-x</a>
+<a href="APIchunk27.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/doc/APIchunk12.html b/doc/APIchunk12.html
index 50f5cc4..c54d458 100644
--- a/doc/APIchunk12.html
+++ b/doc/APIchunk12.html
@@ -12,8 +12,8 @@ A:link, A:visited, A:active { text-decoration: underline }
<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-Q</a>
-<a href="APIchunk6.html">R-S</a>
+<a href="APIchunk5.html">O-P</a>
+<a href="APIchunk6.html">Q-S</a>
<a href="APIchunk7.html">T-U</a>
<a href="APIchunk8.html">V-a</a>
<a href="APIchunk9.html">b-b</a>
@@ -31,9 +31,10 @@ A:link, A:visited, A:active { text-decoration: underline }
<a href="APIchunk21.html">q-r</a>
<a href="APIchunk22.html">s-s</a>
<a href="APIchunk23.html">t-t</a>
-<a href="APIchunk24.html">u-w</a>
-<a href="APIchunk25.html">x-x</a>
-<a href="APIchunk26.html">y-z</a>
+<a href="APIchunk24.html">u-v</a>
+<a href="APIchunk25.html">w-w</a>
+<a href="APIchunk26.html">x-x</a>
+<a href="APIchunk27.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 />
@@ -47,6 +48,7 @@ A:link, A:visited, A:active { text-decoration: underline }
</dd><dt>edition</dt><dd><a href="html/libxml-parserInternals.html#xmlCheckLanguageID">xmlCheckLanguageID</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-parserInternals.html#xmlCurrentChar">xmlCurrentChar</a><br />
<a href="html/libxml-catalog.html#xmlLoadACatalog">xmlLoadACatalog</a><br />
@@ -222,11 +224,7 @@ A:link, A:visited, A:active { text-decoration: underline }
<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 />
@@ -312,6 +310,7 @@ A:link, A:visited, A:active { text-decoration: underline }
<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-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 />
@@ -343,6 +342,8 @@ A:link, A:visited, A:active { text-decoration: underline }
<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 />
+</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>expressions</dt><dd><a href="html/libxml-xmlversion.html#LIBXML_REGEXP_ENABLED">LIBXML_REGEXP_ENABLED</a><br />
@@ -363,6 +364,9 @@ A:link, A:visited, A:active { text-decoration: underline }
<a href="html/libxml-xlink.html#xlinkExtendedLinkSetFunk">xlinkExtendedLinkSetFunk</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_FINAL_DEFAULT_EXTENSION">XML_SCHEMAS_FINAL_DEFAULT_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 />
</dd><dt>extensions</dt><dd><a href="html/libxml-parser.html#_xmlSAXHandler">_xmlSAXHandler</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 />
@@ -372,8 +376,8 @@ A:link, A:visited, A:active { text-decoration: underline }
<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-Q</a>
-<a href="APIchunk6.html">R-S</a>
+<a href="APIchunk5.html">O-P</a>
+<a href="APIchunk6.html">Q-S</a>
<a href="APIchunk7.html">T-U</a>
<a href="APIchunk8.html">V-a</a>
<a href="APIchunk9.html">b-b</a>
@@ -391,7 +395,8 @@ A:link, A:visited, A:active { text-decoration: underline }
<a href="APIchunk21.html">q-r</a>
<a href="APIchunk22.html">s-s</a>
<a href="APIchunk23.html">t-t</a>
-<a href="APIchunk24.html">u-w</a>
-<a href="APIchunk25.html">x-x</a>
-<a href="APIchunk26.html">y-z</a>
+<a href="APIchunk24.html">u-v</a>
+<a href="APIchunk25.html">w-w</a>
+<a href="APIchunk26.html">x-x</a>
+<a href="APIchunk27.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/doc/APIchunk13.html b/doc/APIchunk13.html
index 5d194b5..1caf98e 100644
--- a/doc/APIchunk13.html
+++ b/doc/APIchunk13.html
@@ -12,8 +12,8 @@ A:link, A:visited, A:active { text-decoration: underline }
<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-Q</a>
-<a href="APIchunk6.html">R-S</a>
+<a href="APIchunk5.html">O-P</a>
+<a href="APIchunk6.html">Q-S</a>
<a href="APIchunk7.html">T-U</a>
<a href="APIchunk8.html">V-a</a>
<a href="APIchunk9.html">b-b</a>
@@ -31,17 +31,20 @@ A:link, A:visited, A:active { text-decoration: underline }
<a href="APIchunk21.html">q-r</a>
<a href="APIchunk22.html">s-s</a>
<a href="APIchunk23.html">t-t</a>
-<a href="APIchunk24.html">u-w</a>
-<a href="APIchunk25.html">x-x</a>
-<a href="APIchunk26.html">y-z</a>
+<a href="APIchunk24.html">u-v</a>
+<a href="APIchunk25.html">w-w</a>
+<a href="APIchunk26.html">x-x</a>
+<a href="APIchunk27.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>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#xmlSchemaValidateFacet">xmlSchemaValidateFacet</a><br />
+<a href="html/libxml-xmlschemastypes.html#xmlSchemaValidateListSimpleTypeFacet">xmlSchemaValidateListSimpleTypeFacet</a><br />
</dd><dt>facets</dt><dd><a href="html/libxml-xmlschemastypes.html#xmlSchemaCheckFacet">xmlSchemaCheckFacet</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 />
@@ -154,12 +157,20 @@ A:link, A:visited, A:active { text-decoration: underline }
</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-xmlautomata.html#xmlAutomataSetFinalState">xmlAutomataSetFinalState</a><br />
+</dd><dt>final</dt><dd><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 />
</dd><dt>finding</dt><dd><a href="html/libxml-nanoftp.html#xmlNanoFTPScanProxy">xmlNanoFTPScanProxy</a><br />
@@ -171,6 +182,7 @@ A:link, A:visited, A:active { text-decoration: underline }
<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>firs</dt><dd><a href="html/libxml-encoding.html#xmlCharEncOutFunc">xmlCharEncOutFunc</a><br />
@@ -371,8 +383,8 @@ A:link, A:visited, A:active { text-decoration: underline }
<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-Q</a>
-<a href="APIchunk6.html">R-S</a>
+<a href="APIchunk5.html">O-P</a>
+<a href="APIchunk6.html">Q-S</a>
<a href="APIchunk7.html">T-U</a>
<a href="APIchunk8.html">V-a</a>
<a href="APIchunk9.html">b-b</a>
@@ -390,7 +402,8 @@ A:link, A:visited, A:active { text-decoration: underline }
<a href="APIchunk21.html">q-r</a>
<a href="APIchunk22.html">s-s</a>
<a href="APIchunk23.html">t-t</a>
-<a href="APIchunk24.html">u-w</a>
-<a href="APIchunk25.html">x-x</a>
-<a href="APIchunk26.html">y-z</a>
+<a href="APIchunk24.html">u-v</a>
+<a href="APIchunk25.html">w-w</a>
+<a href="APIchunk26.html">x-x</a>
+<a href="APIchunk27.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/doc/APIchunk14.html b/doc/APIchunk14.html
index 022c6c2..0cccd99 100644
--- a/doc/APIchunk14.html
+++ b/doc/APIchunk14.html
@@ -12,8 +12,8 @@ A:link, A:visited, A:active { text-decoration: underline }
<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-Q</a>
-<a href="APIchunk6.html">R-S</a>
+<a href="APIchunk5.html">O-P</a>
+<a href="APIchunk6.html">Q-S</a>
<a href="APIchunk7.html">T-U</a>
<a href="APIchunk8.html">V-a</a>
<a href="APIchunk9.html">b-b</a>
@@ -31,9 +31,10 @@ A:link, A:visited, A:active { text-decoration: underline }
<a href="APIchunk21.html">q-r</a>
<a href="APIchunk22.html">s-s</a>
<a href="APIchunk23.html">t-t</a>
-<a href="APIchunk24.html">u-w</a>
-<a href="APIchunk25.html">x-x</a>
-<a href="APIchunk26.html">y-z</a>
+<a href="APIchunk24.html">u-v</a>
+<a href="APIchunk25.html">w-w</a>
+<a href="APIchunk26.html">x-x</a>
+<a href="APIchunk27.html">y-z</a>
</h2><h2>Letter g:</h2><dl><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>genChRanges</dt><dd><a href="html/libxml-chvalid.html#xmlIsBaseCharQ">xmlIsBaseCharQ</a><br />
@@ -59,6 +60,7 @@ A:link, A:visited, A:active { text-decoration: underline }
<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 />
@@ -113,6 +115,7 @@ A:link, A:visited, A:active { text-decoration: underline }
<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>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 />
</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 />
@@ -121,6 +124,7 @@ A:link, A:visited, A:active { text-decoration: underline }
</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 />
@@ -133,8 +137,7 @@ A:link, A:visited, A:active { text-decoration: underline }
<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>good</dt><dd><a href="html/libxml-SAX2.html#xmlSAXDefaultVersion">xmlSAXDefaultVersion</a><br />
-<a href="html/libxml-xmlreader.html#xmlTextReaderGetRemainder">xmlTextReaderGetRemainder</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 />
@@ -179,6 +182,7 @@ A:link, A:visited, A:active { text-decoration: underline }
<a href="html/libxml-parser.html#xmlSAXParseMemoryWithData">xmlSAXParseMemoryWithData</a><br />
<a href="html/libxml-xmlschemas.html#xmlSchemaSetParserErrors">xmlSchemaSetParserErrors</a><br />
<a href="html/libxml-xmlerror.html#xmlSetGenericErrorFunc">xmlSetGenericErrorFunc</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderPreserve">xmlTextReaderPreserve</a><br />
<a href="html/libxml-xmlreader.html#xmlTextReaderPreservePattern">xmlTextReaderPreservePattern</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 />
@@ -206,8 +210,10 @@ A:link, A:visited, A:active { text-decoration: underline }
<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#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-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 />
@@ -268,6 +274,7 @@ A:link, A:visited, A:active { text-decoration: underline }
</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 />
<a href="html/libxml-parserInternals.html#xmlParseElement">xmlParseElement</a><br />
<a href="html/libxml-relaxng.html#xmlRelaxNGParse">xmlRelaxNGParse</a><br />
@@ -299,7 +306,8 @@ A:link, A:visited, A:active { text-decoration: underline }
</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-xmlreader.html#xmlTextReaderNodeType">xmlTextReaderNodeType</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 />
@@ -325,6 +333,7 @@ A:link, A:visited, A:active { text-decoration: underline }
</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 />
@@ -344,8 +353,8 @@ A:link, A:visited, A:active { text-decoration: underline }
<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-Q</a>
-<a href="APIchunk6.html">R-S</a>
+<a href="APIchunk5.html">O-P</a>
+<a href="APIchunk6.html">Q-S</a>
<a href="APIchunk7.html">T-U</a>
<a href="APIchunk8.html">V-a</a>
<a href="APIchunk9.html">b-b</a>
@@ -363,7 +372,8 @@ A:link, A:visited, A:active { text-decoration: underline }
<a href="APIchunk21.html">q-r</a>
<a href="APIchunk22.html">s-s</a>
<a href="APIchunk23.html">t-t</a>
-<a href="APIchunk24.html">u-w</a>
-<a href="APIchunk25.html">x-x</a>
-<a href="APIchunk26.html">y-z</a>
+<a href="APIchunk24.html">u-v</a>
+<a href="APIchunk25.html">w-w</a>
+<a href="APIchunk26.html">x-x</a>
+<a href="APIchunk27.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/doc/APIchunk15.html b/doc/APIchunk15.html
index 9f888a7..119fa1e 100644
--- a/doc/APIchunk15.html
+++ b/doc/APIchunk15.html
@@ -12,8 +12,8 @@ A:link, A:visited, A:active { text-decoration: underline }
<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-Q</a>
-<a href="APIchunk6.html">R-S</a>
+<a href="APIchunk5.html">O-P</a>
+<a href="APIchunk6.html">Q-S</a>
<a href="APIchunk7.html">T-U</a>
<a href="APIchunk8.html">V-a</a>
<a href="APIchunk9.html">b-b</a>
@@ -31,9 +31,10 @@ A:link, A:visited, A:active { text-decoration: underline }
<a href="APIchunk21.html">q-r</a>
<a href="APIchunk22.html">s-s</a>
<a href="APIchunk23.html">t-t</a>
-<a href="APIchunk24.html">u-w</a>
-<a href="APIchunk25.html">x-x</a>
-<a href="APIchunk26.html">y-z</a>
+<a href="APIchunk24.html">u-v</a>
+<a href="APIchunk25.html">w-w</a>
+<a href="APIchunk26.html">x-x</a>
+<a href="APIchunk27.html">y-z</a>
</h2><h2>Letter i:</h2><dl><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>identify</dt><dd><a href="html/libxml-parserInternals.html#xmlParseAttributeType">xmlParseAttributeType</a><br />
@@ -54,6 +55,7 @@ A:link, A:visited, A:active { text-decoration: underline }
<a href="html/libxml-c14n.html#xmlC14NExecute">xmlC14NExecute</a><br />
</dd><dt>imbrication</dt><dd><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 />
@@ -131,6 +133,7 @@ A:link, A:visited, A:active { text-decoration: underline }
<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 />
@@ -237,10 +240,7 @@ A:link, A:visited, A:active { text-decoration: underline }
<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 />
@@ -302,9 +302,7 @@ A:link, A:visited, A:active { text-decoration: underline }
<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 />
@@ -321,6 +319,7 @@ A:link, A:visited, A:active { text-decoration: underline }
</dd><dt>initialization</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-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 />
@@ -363,7 +362,8 @@ A:link, A:visited, A:active { text-decoration: underline }
<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 />
-</dd><dt>instead</dt><dd><a href="html/libxml-tree.html#xmlAddChild">xmlAddChild</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-chvalid.html#xmlIsBaseChar">xmlIsBaseChar</a><br />
@@ -386,6 +386,27 @@ A:link, A:visited, A:active { text-decoration: underline }
<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 />
+</dd><dt>int</dt><dd><a href="html/libxml-parser.html#_xmlParserCtxt">_xmlParserCtxt</a><br />
+<a href="">c</a><br />
+<a href="html/libxml-SAX.html#getColumnNumber">getColumnNumber</a><br />
+<a href="html/libxml-SAX.html#getLineNumber">getLineNumber</a><br />
+<a href="html/libxml-HTMLparser.html#htmlHandleOmittedElem">htmlHandleOmittedElem</a><br />
+<a href="html/libxml-HTMLparser.html#htmlParseCharRef">htmlParseCharRef</a><br />
+<a href="html/libxml-parserInternals.html#xmlIsLetter">xmlIsLetter</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-xmlmemory.html#xmlMallocAtomicLoc">xmlMallocAtomicLoc</a><br />
+<a href="html/libxml-xmlmemory.html#xmlMallocLoc">xmlMallocLoc</a><br />
+<a href="html/libxml-xmlmemory.html#xmlMemUsed">xmlMemUsed</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#xmlPedanticParserDefault">xmlPedanticParserDefault</a><br />
+<a href="html/libxml-xmlmemory.html#xmlReallocLoc">xmlReallocLoc</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-debugXML.html#xmlShellCmd">xmlShellCmd</a><br />
+<a href="html/libxml-tree.html#xmlSplitQName3">xmlSplitQName3</a><br />
+<a href="html/libxml-parser.html#xmlSubstituteEntitiesDefault">xmlSubstituteEntitiesDefault</a><br />
</dd><dt>integer</dt><dd><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 />
@@ -434,6 +455,7 @@ A:link, A:visited, A:active { text-decoration: underline }
<a href="html/libxml-tree.html#xmlAddPrevSibling">xmlAddPrevSibling</a><br />
<a href="html/libxml-xmlautomata.html#xmlAutomataCompile">xmlAutomataCompile</a><br />
<a href="html/libxml-debugXML.html#xmlBoolToText">xmlBoolToText</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 />
@@ -472,6 +494,7 @@ A:link, A:visited, A:active { text-decoration: underline }
<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 />
@@ -480,6 +503,7 @@ A:link, A:visited, A:active { text-decoration: underline }
<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 />
@@ -491,8 +515,8 @@ A:link, A:visited, A:active { text-decoration: underline }
<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-Q</a>
-<a href="APIchunk6.html">R-S</a>
+<a href="APIchunk5.html">O-P</a>
+<a href="APIchunk6.html">Q-S</a>
<a href="APIchunk7.html">T-U</a>
<a href="APIchunk8.html">V-a</a>
<a href="APIchunk9.html">b-b</a>
@@ -510,7 +534,8 @@ A:link, A:visited, A:active { text-decoration: underline }
<a href="APIchunk21.html">q-r</a>
<a href="APIchunk22.html">s-s</a>
<a href="APIchunk23.html">t-t</a>
-<a href="APIchunk24.html">u-w</a>
-<a href="APIchunk25.html">x-x</a>
-<a href="APIchunk26.html">y-z</a>
+<a href="APIchunk24.html">u-v</a>
+<a href="APIchunk25.html">w-w</a>
+<a href="APIchunk26.html">x-x</a>
+<a href="APIchunk27.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/doc/APIchunk16.html b/doc/APIchunk16.html
index b152bb4..f5a2af8 100644
--- a/doc/APIchunk16.html
+++ b/doc/APIchunk16.html
@@ -12,8 +12,8 @@ A:link, A:visited, A:active { text-decoration: underline }
<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-Q</a>
-<a href="APIchunk6.html">R-S</a>
+<a href="APIchunk5.html">O-P</a>
+<a href="APIchunk6.html">Q-S</a>
<a href="APIchunk7.html">T-U</a>
<a href="APIchunk8.html">V-a</a>
<a href="APIchunk9.html">b-b</a>
@@ -31,9 +31,10 @@ A:link, A:visited, A:active { text-decoration: underline }
<a href="APIchunk21.html">q-r</a>
<a href="APIchunk22.html">s-s</a>
<a href="APIchunk23.html">t-t</a>
-<a href="APIchunk24.html">u-w</a>
-<a href="APIchunk25.html">x-x</a>
-<a href="APIchunk26.html">y-z</a>
+<a href="APIchunk24.html">u-v</a>
+<a href="APIchunk25.html">w-w</a>
+<a href="APIchunk26.html">x-x</a>
+<a href="APIchunk27.html">y-z</a>
</h2><h2>Letter j:</h2><dl><dt>just</dt><dd><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 />
@@ -52,6 +53,7 @@ A:link, A:visited, A:active { text-decoration: underline }
<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-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 />
@@ -70,6 +72,7 @@ A:link, A:visited, A:active { text-decoration: underline }
<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 />
</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 />
@@ -92,8 +95,6 @@ A:link, A:visited, A:active { text-decoration: underline }
<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 />
@@ -177,6 +178,7 @@ A:link, A:visited, A:active { text-decoration: underline }
</dd><dt>lexical</dt><dd><a href="html/libxml-parserInternals.html#xmlParseDefaultDecl">xmlParseDefaultDecl</a><br />
<a href="html/libxml-xmlschemastypes.html#xmlSchemaValPredefTypeNode">xmlSchemaValPredefTypeNode</a><br />
<a href="html/libxml-xmlschemastypes.html#xmlSchemaValidateFacet">xmlSchemaValidateFacet</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 />
@@ -245,6 +247,9 @@ A:link, A:visited, A:active { text-decoration: underline }
</dd><dt>limited</dt><dd><a href="html/libxml-HTMLparser.html#_htmlElemDesc">_htmlElemDesc</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 />
+</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 />
@@ -315,10 +320,7 @@ A:link, A:visited, A:active { text-decoration: underline }
<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 />
@@ -353,8 +355,8 @@ A:link, A:visited, A:active { text-decoration: underline }
<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-Q</a>
-<a href="APIchunk6.html">R-S</a>
+<a href="APIchunk5.html">O-P</a>
+<a href="APIchunk6.html">Q-S</a>
<a href="APIchunk7.html">T-U</a>
<a href="APIchunk8.html">V-a</a>
<a href="APIchunk9.html">b-b</a>
@@ -372,7 +374,8 @@ A:link, A:visited, A:active { text-decoration: underline }
<a href="APIchunk21.html">q-r</a>
<a href="APIchunk22.html">s-s</a>
<a href="APIchunk23.html">t-t</a>
-<a href="APIchunk24.html">u-w</a>
-<a href="APIchunk25.html">x-x</a>
-<a href="APIchunk26.html">y-z</a>
+<a href="APIchunk24.html">u-v</a>
+<a href="APIchunk25.html">w-w</a>
+<a href="APIchunk26.html">x-x</a>
+<a href="APIchunk27.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/doc/APIchunk17.html b/doc/APIchunk17.html
index e4ef4e8..c9652b3 100644
--- a/doc/APIchunk17.html
+++ b/doc/APIchunk17.html
@@ -12,8 +12,8 @@ A:link, A:visited, A:active { text-decoration: underline }
<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-Q</a>
-<a href="APIchunk6.html">R-S</a>
+<a href="APIchunk5.html">O-P</a>
+<a href="APIchunk6.html">Q-S</a>
<a href="APIchunk7.html">T-U</a>
<a href="APIchunk8.html">V-a</a>
<a href="APIchunk9.html">b-b</a>
@@ -31,9 +31,10 @@ A:link, A:visited, A:active { text-decoration: underline }
<a href="APIchunk21.html">q-r</a>
<a href="APIchunk22.html">s-s</a>
<a href="APIchunk23.html">t-t</a>
-<a href="APIchunk24.html">u-w</a>
-<a href="APIchunk25.html">x-x</a>
-<a href="APIchunk26.html">y-z</a>
+<a href="APIchunk24.html">u-v</a>
+<a href="APIchunk25.html">w-w</a>
+<a href="APIchunk26.html">x-x</a>
+<a href="APIchunk27.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-xmlwriter.html#xmlTextWriterWriteDocType">xmlTextWriterWriteDocType</a><br />
<a href="html/libxml-xmlwriter.html#xmlTextWriterWriteProcessingInstruction">xmlTextWriterWriteProcessingInstruction</a><br />
@@ -59,7 +60,6 @@ A:link, A:visited, A:active { text-decoration: underline }
<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 />
@@ -189,7 +189,9 @@ A:link, A:visited, A:active { text-decoration: underline }
<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-tree.html#_xmlBuffer">_xmlBuffer</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-xmlIO.html#xmlRegisterHTTPPostCallbacks">xmlRegisterHTTPPostCallbacks</a><br />
@@ -286,8 +288,8 @@ A:link, A:visited, A:active { text-decoration: underline }
<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-Q</a>
-<a href="APIchunk6.html">R-S</a>
+<a href="APIchunk5.html">O-P</a>
+<a href="APIchunk6.html">Q-S</a>
<a href="APIchunk7.html">T-U</a>
<a href="APIchunk8.html">V-a</a>
<a href="APIchunk9.html">b-b</a>
@@ -305,7 +307,8 @@ A:link, A:visited, A:active { text-decoration: underline }
<a href="APIchunk21.html">q-r</a>
<a href="APIchunk22.html">s-s</a>
<a href="APIchunk23.html">t-t</a>
-<a href="APIchunk24.html">u-w</a>
-<a href="APIchunk25.html">x-x</a>
-<a href="APIchunk26.html">y-z</a>
+<a href="APIchunk24.html">u-v</a>
+<a href="APIchunk25.html">w-w</a>
+<a href="APIchunk26.html">x-x</a>
+<a href="APIchunk27.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/doc/APIchunk18.html b/doc/APIchunk18.html
index 1ec2fd3..bb61c38 100644
--- a/doc/APIchunk18.html
+++ b/doc/APIchunk18.html
@@ -12,8 +12,8 @@ A:link, A:visited, A:active { text-decoration: underline }
<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-Q</a>
-<a href="APIchunk6.html">R-S</a>
+<a href="APIchunk5.html">O-P</a>
+<a href="APIchunk6.html">Q-S</a>
<a href="APIchunk7.html">T-U</a>
<a href="APIchunk8.html">V-a</a>
<a href="APIchunk9.html">b-b</a>
@@ -31,9 +31,10 @@ A:link, A:visited, A:active { text-decoration: underline }
<a href="APIchunk21.html">q-r</a>
<a href="APIchunk22.html">s-s</a>
<a href="APIchunk23.html">t-t</a>
-<a href="APIchunk24.html">u-w</a>
-<a href="APIchunk25.html">x-x</a>
-<a href="APIchunk26.html">y-z</a>
+<a href="APIchunk24.html">u-v</a>
+<a href="APIchunk25.html">w-w</a>
+<a href="APIchunk26.html">x-x</a>
+<a href="APIchunk27.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 />
@@ -51,6 +52,7 @@ A:link, A:visited, A:active { text-decoration: underline }
<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-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 />
@@ -119,6 +121,7 @@ A:link, A:visited, A:active { text-decoration: underline }
<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-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 />
@@ -150,6 +153,7 @@ A:link, A:visited, A:active { text-decoration: underline }
<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 />
</dd><dt>nod</dt><dd><a href="html/libxml-parserInternals.html#xmlEntityReferenceFunc">xmlEntityReferenceFunc</a><br />
</dd><dt>node-</dt><dd><a href="html/libxml-valid.html#xmlValidGetValidElements">xmlValidGetValidElements</a><br />
@@ -215,6 +219,7 @@ A:link, A:visited, A:active { text-decoration: underline }
</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-parserInternals.html#xmlParseAttValue">xmlParseAttValue</a><br />
@@ -262,8 +267,8 @@ A:link, A:visited, A:active { text-decoration: underline }
<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-Q</a>
-<a href="APIchunk6.html">R-S</a>
+<a href="APIchunk5.html">O-P</a>
+<a href="APIchunk6.html">Q-S</a>
<a href="APIchunk7.html">T-U</a>
<a href="APIchunk8.html">V-a</a>
<a href="APIchunk9.html">b-b</a>
@@ -281,7 +286,8 @@ A:link, A:visited, A:active { text-decoration: underline }
<a href="APIchunk21.html">q-r</a>
<a href="APIchunk22.html">s-s</a>
<a href="APIchunk23.html">t-t</a>
-<a href="APIchunk24.html">u-w</a>
-<a href="APIchunk25.html">x-x</a>
-<a href="APIchunk26.html">y-z</a>
+<a href="APIchunk24.html">u-v</a>
+<a href="APIchunk25.html">w-w</a>
+<a href="APIchunk26.html">x-x</a>
+<a href="APIchunk27.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/doc/APIchunk19.html b/doc/APIchunk19.html
index c7f777b..566919d 100644
--- a/doc/APIchunk19.html
+++ b/doc/APIchunk19.html
@@ -12,8 +12,8 @@ A:link, A:visited, A:active { text-decoration: underline }
<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-Q</a>
-<a href="APIchunk6.html">R-S</a>
+<a href="APIchunk5.html">O-P</a>
+<a href="APIchunk6.html">Q-S</a>
<a href="APIchunk7.html">T-U</a>
<a href="APIchunk8.html">V-a</a>
<a href="APIchunk9.html">b-b</a>
@@ -31,9 +31,10 @@ A:link, A:visited, A:active { text-decoration: underline }
<a href="APIchunk21.html">q-r</a>
<a href="APIchunk22.html">s-s</a>
<a href="APIchunk23.html">t-t</a>
-<a href="APIchunk24.html">u-w</a>
-<a href="APIchunk25.html">x-x</a>
-<a href="APIchunk26.html">y-z</a>
+<a href="APIchunk24.html">u-v</a>
+<a href="APIchunk25.html">w-w</a>
+<a href="APIchunk26.html">x-x</a>
+<a href="APIchunk27.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-xpathInternals.html#xmlXPathCompareValues">xmlXPathCompareValues</a><br />
@@ -48,6 +49,7 @@ A:link, A:visited, A:active { text-decoration: underline }
<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 />
</dd><dt>occur</dt><dd><a href="html/libxml-parserInternals.html#xmlParseComment">xmlParseComment</a><br />
<a href="html/libxml-parserInternals.html#xmlParseMarkupDecl">xmlParseMarkupDecl</a><br />
@@ -61,7 +63,6 @@ A:link, A:visited, A:active { text-decoration: underline }
</dd><dt>occurences</dt><dd><a href="html/libxml-xmlautomata.html#xmlAutomataNewCountTrans">xmlAutomataNewCountTrans</a><br />
<a href="html/libxml-xmlautomata.html#xmlAutomataNewOnceTrans">xmlAutomataNewOnceTrans</a><br />
</dd><dt>occurred</dt><dd><a href="html/libxml-xmlmemory.html#xmlMemStrdupLoc">xmlMemStrdupLoc</a><br />
-<a href="html/libxml-xmlmemory.html#xmlMemoryStrdup">xmlMemoryStrdup</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 />
@@ -97,6 +98,8 @@ A:link, A:visited, A:active { text-decoration: underline }
<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 />
@@ -126,6 +129,7 @@ A:link, A:visited, A:active { text-decoration: underline }
<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 />
@@ -172,7 +176,8 @@ A:link, A:visited, A:active { text-decoration: underline }
</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-catalog.html#xmlCatalogSetDebug">xmlCatalogSetDebug</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-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 />
@@ -220,7 +225,6 @@ A:link, A:visited, A:active { text-decoration: underline }
<a href="html/libxml-uri.html#xmlURIUnescapeString">xmlURIUnescapeString</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-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 />
@@ -313,13 +317,14 @@ A:link, A:visited, A:active { text-decoration: underline }
</dd><dt>owner</dt><dd><a href="html/libxml-nanoftp.html#ftpListCallback">ftpListCallback</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-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-Q</a>
-<a href="APIchunk6.html">R-S</a>
+<a href="APIchunk5.html">O-P</a>
+<a href="APIchunk6.html">Q-S</a>
<a href="APIchunk7.html">T-U</a>
<a href="APIchunk8.html">V-a</a>
<a href="APIchunk9.html">b-b</a>
@@ -337,7 +342,8 @@ A:link, A:visited, A:active { text-decoration: underline }
<a href="APIchunk21.html">q-r</a>
<a href="APIchunk22.html">s-s</a>
<a href="APIchunk23.html">t-t</a>
-<a href="APIchunk24.html">u-w</a>
-<a href="APIchunk25.html">x-x</a>
-<a href="APIchunk26.html">y-z</a>
+<a href="APIchunk24.html">u-v</a>
+<a href="APIchunk25.html">w-w</a>
+<a href="APIchunk26.html">x-x</a>
+<a href="APIchunk27.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/doc/APIchunk2.html b/doc/APIchunk2.html
index 4288827..a66f04a 100644
--- a/doc/APIchunk2.html
+++ b/doc/APIchunk2.html
@@ -12,8 +12,8 @@ A:link, A:visited, A:active { text-decoration: underline }
<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-Q</a>
-<a href="APIchunk6.html">R-S</a>
+<a href="APIchunk5.html">O-P</a>
+<a href="APIchunk6.html">Q-S</a>
<a href="APIchunk7.html">T-U</a>
<a href="APIchunk8.html">V-a</a>
<a href="APIchunk9.html">b-b</a>
@@ -31,9 +31,10 @@ A:link, A:visited, A:active { text-decoration: underline }
<a href="APIchunk21.html">q-r</a>
<a href="APIchunk22.html">s-s</a>
<a href="APIchunk23.html">t-t</a>
-<a href="APIchunk24.html">u-w</a>
-<a href="APIchunk25.html">x-x</a>
-<a href="APIchunk26.html">y-z</a>
+<a href="APIchunk24.html">u-v</a>
+<a href="APIchunk25.html">w-w</a>
+<a href="APIchunk26.html">x-x</a>
+<a href="APIchunk27.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 />
@@ -88,6 +89,7 @@ A:link, A:visited, A:active { text-decoration: underline }
<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 />
@@ -100,6 +102,7 @@ A:link, A:visited, A:active { text-decoration: underline }
<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 />
+</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 />
</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 />
@@ -360,6 +363,7 @@ A:link, A:visited, A:active { text-decoration: underline }
</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 />
@@ -389,8 +393,8 @@ A:link, A:visited, A:active { text-decoration: underline }
<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-Q</a>
-<a href="APIchunk6.html">R-S</a>
+<a href="APIchunk5.html">O-P</a>
+<a href="APIchunk6.html">Q-S</a>
<a href="APIchunk7.html">T-U</a>
<a href="APIchunk8.html">V-a</a>
<a href="APIchunk9.html">b-b</a>
@@ -408,7 +412,8 @@ A:link, A:visited, A:active { text-decoration: underline }
<a href="APIchunk21.html">q-r</a>
<a href="APIchunk22.html">s-s</a>
<a href="APIchunk23.html">t-t</a>
-<a href="APIchunk24.html">u-w</a>
-<a href="APIchunk25.html">x-x</a>
-<a href="APIchunk26.html">y-z</a>
+<a href="APIchunk24.html">u-v</a>
+<a href="APIchunk25.html">w-w</a>
+<a href="APIchunk26.html">x-x</a>
+<a href="APIchunk27.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/doc/APIchunk20.html b/doc/APIchunk20.html
index cbf194e..8a771c6 100644
--- a/doc/APIchunk20.html
+++ b/doc/APIchunk20.html
@@ -12,8 +12,8 @@ A:link, A:visited, A:active { text-decoration: underline }
<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-Q</a>
-<a href="APIchunk6.html">R-S</a>
+<a href="APIchunk5.html">O-P</a>
+<a href="APIchunk6.html">Q-S</a>
<a href="APIchunk7.html">T-U</a>
<a href="APIchunk8.html">V-a</a>
<a href="APIchunk9.html">b-b</a>
@@ -31,9 +31,10 @@ A:link, A:visited, A:active { text-decoration: underline }
<a href="APIchunk21.html">q-r</a>
<a href="APIchunk22.html">s-s</a>
<a href="APIchunk23.html">t-t</a>
-<a href="APIchunk24.html">u-w</a>
-<a href="APIchunk25.html">x-x</a>
-<a href="APIchunk26.html">y-z</a>
+<a href="APIchunk24.html">u-v</a>
+<a href="APIchunk25.html">w-w</a>
+<a href="APIchunk26.html">x-x</a>
+<a href="APIchunk27.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 />
@@ -140,6 +141,7 @@ A:link, A:visited, A:active { text-decoration: underline }
<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 />
@@ -189,6 +191,7 @@ A:link, A:visited, A:active { text-decoration: underline }
<a href="html/libxml-xmlschemastypes.html#xmlSchemaValPredefTypeNode">xmlSchemaValPredefTypeNode</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#xmlSchemaValidateListSimpleTypeFacet">xmlSchemaValidateListSimpleTypeFacet</a><br />
<a href="html/libxml-xmlschemastypes.html#xmlSchemaValidatePredefinedType">xmlSchemaValidatePredefinedType</a><br />
<a href="html/libxml-xmlschemas.html#xmlSchemaValidateStream">xmlSchemaValidateStream</a><br />
<a href="html/libxml-xmlreader.html#xmlTextReaderPreservePattern">xmlTextReaderPreservePattern</a><br />
@@ -284,6 +287,7 @@ A:link, A:visited, A:active { text-decoration: underline }
<a href="html/libxml-tree.html#xmlNodeSetSpacePreserve">xmlNodeSetSpacePreserve</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-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 />
@@ -488,8 +492,8 @@ A:link, A:visited, A:active { text-decoration: underline }
<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-Q</a>
-<a href="APIchunk6.html">R-S</a>
+<a href="APIchunk5.html">O-P</a>
+<a href="APIchunk6.html">Q-S</a>
<a href="APIchunk7.html">T-U</a>
<a href="APIchunk8.html">V-a</a>
<a href="APIchunk9.html">b-b</a>
@@ -507,7 +511,8 @@ A:link, A:visited, A:active { text-decoration: underline }
<a href="APIchunk21.html">q-r</a>
<a href="APIchunk22.html">s-s</a>
<a href="APIchunk23.html">t-t</a>
-<a href="APIchunk24.html">u-w</a>
-<a href="APIchunk25.html">x-x</a>
-<a href="APIchunk26.html">y-z</a>
+<a href="APIchunk24.html">u-v</a>
+<a href="APIchunk25.html">w-w</a>
+<a href="APIchunk26.html">x-x</a>
+<a href="APIchunk27.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/doc/APIchunk21.html b/doc/APIchunk21.html
index ac960c5..ca41727 100644
--- a/doc/APIchunk21.html
+++ b/doc/APIchunk21.html
@@ -12,8 +12,8 @@ A:link, A:visited, A:active { text-decoration: underline }
<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-Q</a>
-<a href="APIchunk6.html">R-S</a>
+<a href="APIchunk5.html">O-P</a>
+<a href="APIchunk6.html">Q-S</a>
<a href="APIchunk7.html">T-U</a>
<a href="APIchunk8.html">V-a</a>
<a href="APIchunk9.html">b-b</a>
@@ -31,9 +31,10 @@ A:link, A:visited, A:active { text-decoration: underline }
<a href="APIchunk21.html">q-r</a>
<a href="APIchunk22.html">s-s</a>
<a href="APIchunk23.html">t-t</a>
-<a href="APIchunk24.html">u-w</a>
-<a href="APIchunk25.html">x-x</a>
-<a href="APIchunk26.html">y-z</a>
+<a href="APIchunk24.html">u-v</a>
+<a href="APIchunk25.html">w-w</a>
+<a href="APIchunk26.html">x-x</a>
+<a href="APIchunk27.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 />
@@ -143,7 +144,6 @@ A:link, A:visited, A:active { text-decoration: underline }
<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 />
@@ -156,6 +156,8 @@ A:link, A:visited, A:active { text-decoration: underline }
<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 />
+</dd><dt>reasonable</dt><dd><a href="html/libxml-uri.html#xmlBuildRelativeURI">xmlBuildRelativeURI</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 />
@@ -299,6 +301,8 @@ A:link, A:visited, A:active { text-decoration: underline }
</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 />
</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#xmlRegFreeExecCtxt">xmlRegFreeExecCtxt</a><br />
@@ -318,7 +322,8 @@ A:link, A:visited, A:active { text-decoration: underline }
<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-parser.html#xmlByteConsumed">xmlByteConsumed</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#xmlTextReaderGetAttributeNo">xmlTextReaderGetAttributeNo</a><br />
<a href="html/libxml-xmlreader.html#xmlTextReaderMoveToAttributeNo">xmlTextReaderMoveToAttributeNo</a><br />
<a href="html/libxml-xmlstring.html#xmlUTF8Strloc">xmlUTF8Strloc</a><br />
@@ -406,6 +411,7 @@ A:link, A:visited, A:active { text-decoration: underline }
<a href="html/libxml-HTMLparser.html#htmlCreatePushParserCtxt">htmlCreatePushParserCtxt</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#xmlSchemaValidateListSimpleTypeFacet">xmlSchemaValidateListSimpleTypeFacet</a><br />
</dd><dt>representation</dt><dd><a href="html/libxml-HTMLparser.html#_htmlElemDesc">_htmlElemDesc</a><br />
</dd><dt>representations</dt><dd><a href="html/libxml-tree.html#xmlNewTextChild">xmlNewTextChild</a><br />
</dd><dt>represented</dt><dd><a href="html/libxml-parserInternals.html#xmlParseCharData">xmlParseCharData</a><br />
@@ -426,6 +432,7 @@ A:link, A:visited, A:active { text-decoration: underline }
</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-catalog.html#xmlCatalogSetDebug">xmlCatalogSetDebug</a><br />
+<a href="html/libxml-xmlschemastypes.html#xmlSchemaCollapseString">xmlSchemaCollapseString</a><br />
<a href="html/libxml-xpathInternals.html#xmlXPathStringFunction">xmlXPathStringFunction</a><br />
</dd><dt>requires</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 />
@@ -488,6 +495,9 @@ A:link, A:visited, A:active { text-decoration: underline }
</dd><dt>restored</dt><dd><a href="html/libxml-xmlreader.html#xmlTextReaderSetErrorHandler">xmlTextReaderSetErrorHandler</a><br />
<a href="html/libxml-xmlreader.html#xmlTextReaderSetStructuredErrorHandler">xmlTextReaderSetStructuredErrorHandler</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_FINAL_DEFAULT_RESTRICTION">XML_SCHEMAS_FINAL_DEFAULT_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>retrieve</dt><dd><a href="html/libxml-threads.html#xmlGetGlobalState">xmlGetGlobalState</a><br />
@@ -571,6 +581,7 @@ A:link, A:visited, A:active { text-decoration: underline }
</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-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 />
@@ -581,8 +592,8 @@ A:link, A:visited, A:active { text-decoration: underline }
<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-Q</a>
-<a href="APIchunk6.html">R-S</a>
+<a href="APIchunk5.html">O-P</a>
+<a href="APIchunk6.html">Q-S</a>
<a href="APIchunk7.html">T-U</a>
<a href="APIchunk8.html">V-a</a>
<a href="APIchunk9.html">b-b</a>
@@ -600,7 +611,8 @@ A:link, A:visited, A:active { text-decoration: underline }
<a href="APIchunk21.html">q-r</a>
<a href="APIchunk22.html">s-s</a>
<a href="APIchunk23.html">t-t</a>
-<a href="APIchunk24.html">u-w</a>
-<a href="APIchunk25.html">x-x</a>
-<a href="APIchunk26.html">y-z</a>
+<a href="APIchunk24.html">u-v</a>
+<a href="APIchunk25.html">w-w</a>
+<a href="APIchunk26.html">x-x</a>
+<a href="APIchunk27.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/doc/APIchunk22.html b/doc/APIchunk22.html
index 3c2884c..89f5808 100644
--- a/doc/APIchunk22.html
+++ b/doc/APIchunk22.html
@@ -12,8 +12,8 @@ A:link, A:visited, A:active { text-decoration: underline }
<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-Q</a>
-<a href="APIchunk6.html">R-S</a>
+<a href="APIchunk5.html">O-P</a>
+<a href="APIchunk6.html">Q-S</a>
<a href="APIchunk7.html">T-U</a>
<a href="APIchunk8.html">V-a</a>
<a href="APIchunk9.html">b-b</a>
@@ -31,9 +31,10 @@ A:link, A:visited, A:active { text-decoration: underline }
<a href="APIchunk21.html">q-r</a>
<a href="APIchunk22.html">s-s</a>
<a href="APIchunk23.html">t-t</a>
-<a href="APIchunk24.html">u-w</a>
-<a href="APIchunk25.html">x-x</a>
-<a href="APIchunk26.html">y-z</a>
+<a href="APIchunk24.html">u-v</a>
+<a href="APIchunk25.html">w-w</a>
+<a href="APIchunk26.html">x-x</a>
+<a href="APIchunk27.html">y-z</a>
</h2><h2>Letter s:</h2><dl><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 />
@@ -85,7 +86,6 @@ A:link, A:visited, A:active { text-decoration: underline }
<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 />
@@ -194,7 +194,6 @@ A:link, A:visited, A:active { text-decoration: underline }
<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 />
@@ -202,8 +201,7 @@ A:link, A:visited, A:active { text-decoration: underline }
<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>serializing</dt><dd><a href="html/libxml-xmlsave.html#xmlSaveToBuffer">xmlSaveToBuffer</a><br />
-<a href="html/libxml-xmlsave.html#xmlSaveToFd">xmlSaveToFd</a><br />
+</dd><dt>serializing</dt><dd><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 />
@@ -256,6 +254,10 @@ A:link, A:visited, A:active { text-decoration: underline }
<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>shema</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>shemas</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>shorten</dt><dd><a href="html/libxml-debugXML.html#xmlDebugDumpString">xmlDebugDumpString</a><br />
@@ -297,7 +299,9 @@ A:link, A:visited, A:active { text-decoration: underline }
<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-xlink.html#xlinkSimpleLinkFunk">xlinkSimpleLinkFunk</a><br />
+</dd><dt>simple</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-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 />
@@ -305,9 +309,19 @@ A:link, A:visited, A:active { text-decoration: underline }
<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#xmlSchemaValidateListSimpleTypeFacet">xmlSchemaValidateListSimpleTypeFacet</a><br />
+</dd><dt>simpleType</dt><dd><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-parserInternals.html#xmlParseExternalID">xmlParseExternalID</a><br />
+</dd><dt>since</dt><dd><a href="html/libxml-uri.html#xmlBuildRelativeURI">xmlBuildRelativeURI</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseExternalID">xmlParseExternalID</a><br />
<a href="html/libxml-relaxng.html#xmlRelaxNGNewDocParserCtxt">xmlRelaxNGNewDocParserCtxt</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#xmlCurrentChar">xmlCurrentChar</a><br />
@@ -328,6 +342,8 @@ A:link, A:visited, A:active { text-decoration: underline }
</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>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>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 />
@@ -344,6 +360,7 @@ A:link, A:visited, A:active { text-decoration: underline }
<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-xmlmemory.html#xmlGcMemSetup">xmlGcMemSetup</a><br />
<a href="html/libxml-parserInternals.html#xmlHandleEntity">xmlHandleEntity</a><br />
<a href="html/libxml-xmlmemory.html#xmlMemSetup">xmlMemSetup</a><br />
@@ -425,6 +442,7 @@ A:link, A:visited, A:active { text-decoration: underline }
<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 />
@@ -457,15 +475,12 @@ A:link, A:visited, A:active { text-decoration: underline }
<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 />
-</dd><dt>specifically</dt><dd><a href="html/libxml-SAX2.html#xmlSAXDefaultVersion">xmlSAXDefaultVersion</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-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-xmlreader.html#xmlTextReaderLookupNamespace">xmlTextReaderLookupNamespace</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 />
@@ -597,7 +612,6 @@ A:link, A:visited, A:active { text-decoration: underline }
<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>stream</dt><dd><a href="html/libxml-parser.html#_xmlParserCtxt">_xmlParserCtxt</a><br />
@@ -621,6 +635,7 @@ A:link, A:visited, A:active { text-decoration: underline }
</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 />
@@ -647,6 +662,7 @@ A:link, A:visited, A:active { text-decoration: underline }
<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 />
</dd><dt>structured</dt><dd><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 />
@@ -658,6 +674,7 @@ A:link, A:visited, A:active { text-decoration: underline }
<a href="html/libxml-xmlschemas.html#xmlSchemaParse">xmlSchemaParse</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-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 />
@@ -806,8 +823,8 @@ A:link, A:visited, A:active { text-decoration: underline }
<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-Q</a>
-<a href="APIchunk6.html">R-S</a>
+<a href="APIchunk5.html">O-P</a>
+<a href="APIchunk6.html">Q-S</a>
<a href="APIchunk7.html">T-U</a>
<a href="APIchunk8.html">V-a</a>
<a href="APIchunk9.html">b-b</a>
@@ -825,7 +842,8 @@ A:link, A:visited, A:active { text-decoration: underline }
<a href="APIchunk21.html">q-r</a>
<a href="APIchunk22.html">s-s</a>
<a href="APIchunk23.html">t-t</a>
-<a href="APIchunk24.html">u-w</a>
-<a href="APIchunk25.html">x-x</a>
-<a href="APIchunk26.html">y-z</a>
+<a href="APIchunk24.html">u-v</a>
+<a href="APIchunk25.html">w-w</a>
+<a href="APIchunk26.html">x-x</a>
+<a href="APIchunk27.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/doc/APIchunk23.html b/doc/APIchunk23.html
index 54ba552..be0a2c7 100644
--- a/doc/APIchunk23.html
+++ b/doc/APIchunk23.html
@@ -12,8 +12,8 @@ A:link, A:visited, A:active { text-decoration: underline }
<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-Q</a>
-<a href="APIchunk6.html">R-S</a>
+<a href="APIchunk5.html">O-P</a>
+<a href="APIchunk6.html">Q-S</a>
<a href="APIchunk7.html">T-U</a>
<a href="APIchunk8.html">V-a</a>
<a href="APIchunk9.html">b-b</a>
@@ -31,9 +31,10 @@ A:link, A:visited, A:active { text-decoration: underline }
<a href="APIchunk21.html">q-r</a>
<a href="APIchunk22.html">s-s</a>
<a href="APIchunk23.html">t-t</a>
-<a href="APIchunk24.html">u-w</a>
-<a href="APIchunk25.html">x-x</a>
-<a href="APIchunk26.html">y-z</a>
+<a href="APIchunk24.html">u-v</a>
+<a href="APIchunk25.html">w-w</a>
+<a href="APIchunk26.html">x-x</a>
+<a href="APIchunk27.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 />
@@ -61,7 +62,8 @@ A:link, A:visited, A:active { text-decoration: underline }
<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#xmlTextReaderPreservePattern">xmlTextReaderPreservePattern</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 />
@@ -85,6 +87,7 @@ A:link, A:visited, A:active { text-decoration: underline }
<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 />
@@ -164,7 +167,6 @@ A:link, A:visited, A:active { text-decoration: underline }
<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 />
-</dd><dt>thing</dt><dd><a href="html/libxml-SAX2.html#xmlSAXDefaultVersion">xmlSAXDefaultVersion</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 />
@@ -192,7 +194,8 @@ A:link, A:visited, A:active { text-decoration: underline }
<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 />
-</dd><dt>through</dt><dd><a href="html/libxml-parser.html#xmlCreatePushParserCtxt">xmlCreatePushParserCtxt</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 />
@@ -396,6 +399,7 @@ A:link, A:visited, A:active { text-decoration: underline }
<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>typ</dt><dd><a href="html/libxml-schemasInternals.html#_xmlSchemaTypeLink">_xmlSchemaTypeLink</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-xpath.html#_xmlXPathContext">_xmlXPathContext</a><br />
<a href="html/libxml-parser.html#xmlExternalEntityLoader">xmlExternalEntityLoader</a><br />
@@ -407,8 +411,8 @@ A:link, A:visited, A:active { text-decoration: underline }
<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-Q</a>
-<a href="APIchunk6.html">R-S</a>
+<a href="APIchunk5.html">O-P</a>
+<a href="APIchunk6.html">Q-S</a>
<a href="APIchunk7.html">T-U</a>
<a href="APIchunk8.html">V-a</a>
<a href="APIchunk9.html">b-b</a>
@@ -426,7 +430,8 @@ A:link, A:visited, A:active { text-decoration: underline }
<a href="APIchunk21.html">q-r</a>
<a href="APIchunk22.html">s-s</a>
<a href="APIchunk23.html">t-t</a>
-<a href="APIchunk24.html">u-w</a>
-<a href="APIchunk25.html">x-x</a>
-<a href="APIchunk26.html">y-z</a>
+<a href="APIchunk24.html">u-v</a>
+<a href="APIchunk25.html">w-w</a>
+<a href="APIchunk26.html">x-x</a>
+<a href="APIchunk27.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/doc/APIchunk24.html b/doc/APIchunk24.html
index ee3f872..81945fc 100644
--- a/doc/APIchunk24.html
+++ b/doc/APIchunk24.html
@@ -7,13 +7,13 @@ H1 {font-family: Verdana,Arial,Helvetica}
H2 {font-family: Verdana,Arial,Helvetica}
H3 {font-family: Verdana,Arial,Helvetica}
A:link, A:visited, A:active { text-decoration: underline }
-</style><title>API Alphabetic Index u-w for libxml2</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>The XML C parser and toolkit of Gnome</h1><h2>API Alphabetic Index u-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="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://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 align="center"><a href="APIchunk0.html">A-B</a>
+</style><title>API Alphabetic Index u-v for libxml2</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>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="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://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 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-Q</a>
-<a href="APIchunk6.html">R-S</a>
+<a href="APIchunk5.html">O-P</a>
+<a href="APIchunk6.html">Q-S</a>
<a href="APIchunk7.html">T-U</a>
<a href="APIchunk8.html">V-a</a>
<a href="APIchunk9.html">b-b</a>
@@ -31,9 +31,10 @@ A:link, A:visited, A:active { text-decoration: underline }
<a href="APIchunk21.html">q-r</a>
<a href="APIchunk22.html">s-s</a>
<a href="APIchunk23.html">t-t</a>
-<a href="APIchunk24.html">u-w</a>
-<a href="APIchunk25.html">x-x</a>
-<a href="APIchunk26.html">y-z</a>
+<a href="APIchunk24.html">u-v</a>
+<a href="APIchunk25.html">w-w</a>
+<a href="APIchunk26.html">x-x</a>
+<a href="APIchunk27.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 />
@@ -45,14 +46,14 @@ A:link, A:visited, A:active { text-decoration: underline }
<a href="html/libxml-tree.html#xmlSetCompressMode">xmlSetCompressMode</a><br />
<a href="html/libxml-tree.html#xmlSetDocCompressMode">xmlSetDocCompressMode</a><br />
</dd><dt>undefined</dt><dd><a href="html/libxml-pattern.html#xmlPatterncompile">xmlPatterncompile</a><br />
-</dd><dt>under</dt><dd><a href="html/libxml-tree.html#xmlSearchNs">xmlSearchNs</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 />
-<a href="html/libxml-xmlreader.html#xmlTextReaderPreserve">xmlTextReaderPreserve</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-uri.html#xmlURIUnescapeString">xmlURIUnescapeString</a><br />
@@ -60,7 +61,11 @@ A:link, A:visited, A:active { text-decoration: underline }
<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-xpathInternals.html#xmlXPathIdFunction">xmlXPathIdFunction</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-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-xpathInternals.html#xmlXPathIdFunction">xmlXPathIdFunction</a><br />
</dd><dt>uniquely</dt><dd><a href="html/libxml-parserInternals.html#xmlParseAttributeType">xmlParseAttributeType</a><br />
@@ -70,6 +75,7 @@ A:link, A:visited, A:active { text-decoration: underline }
<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 />
@@ -217,6 +223,10 @@ A:link, A:visited, A:active { text-decoration: underline }
<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-encoding.html#xmlDetectCharEncoding">xmlDetectCharEncoding</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>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 />
@@ -229,218 +239,13 @@ A:link, A:visited, A:active { text-decoration: underline }
</dd><dt>visible</dt><dd><a href="html/libxml-c14n.html#xmlC14NExecute">xmlC14NExecute</a><br />
</dd><dt>void</dt><dd><a href="html/libxml-parser.html#xmlSAXParseFileWithData">xmlSAXParseFileWithData</a><br />
<a href="html/libxml-parser.html#xmlSAXParseMemoryWithData">xmlSAXParseMemoryWithData</a><br />
-</dd></dl><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 />
-</dd><dt>warn</dt><dd><a href="html/libxml-xmlversion.html#xmlCheckVersion">xmlCheckVersion</a><br />
-</dd><dt>warning</dt><dd><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-SAX2.html#xmlSAX2InitDefaultSAXHandler">xmlSAX2InitDefaultSAXHandler</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-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>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-SAX2.html#xmlSAX2StartElementNs">xmlSAX2StartElementNs</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 />
-</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-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-xinclude.html#xmlXIncludeProcess">xmlXIncludeProcess</a><br />
-<a href="html/libxml-xinclude.html#xmlXIncludeProcessFlags">xmlXIncludeProcessFlags</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>wether</dt><dd><a href="html/libxml-xpath.html#_xmlNodeSet">_xmlNodeSet</a><br />
-<a href="html/libxml-pattern.html#xmlPatternMatch">xmlPatternMatch</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-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-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 />
-</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-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-xpathInternals.html#xmlXPathIdFunction">xmlXPathIdFunction</a><br />
-<a href="html/libxml-xpathInternals.html#xmlXPathNormalizeFunction">xmlXPathNormalizeFunction</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>whose</dt><dd><a href="html/libxml-xmlautomata.html#xmlAutomataNewCountTrans">xmlAutomataNewCountTrans</a><br />
-<a href="html/libxml-xmlautomata.html#xmlAutomataNewOnceTrans">xmlAutomataNewOnceTrans</a><br />
-<a href="html/libxml-xmlreader.html#xmlTextReaderLookupNamespace">xmlTextReaderLookupNamespace</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-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-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-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-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-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-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-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#xmlNodeGetBase">xmlNodeGetBase</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>would</dt><dd><a href="html/libxml-HTMLparser.html#htmlAutoCloseTag">htmlAutoCloseTag</a><br />
-<a href="html/libxml-xmlreader.html#xmlTextReaderGetRemainder">xmlTextReaderGetRemainder</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-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 />
-</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>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-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 />
</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-Q</a>
-<a href="APIchunk6.html">R-S</a>
+<a href="APIchunk5.html">O-P</a>
+<a href="APIchunk6.html">Q-S</a>
<a href="APIchunk7.html">T-U</a>
<a href="APIchunk8.html">V-a</a>
<a href="APIchunk9.html">b-b</a>
@@ -458,7 +263,8 @@ A:link, A:visited, A:active { text-decoration: underline }
<a href="APIchunk21.html">q-r</a>
<a href="APIchunk22.html">s-s</a>
<a href="APIchunk23.html">t-t</a>
-<a href="APIchunk24.html">u-w</a>
-<a href="APIchunk25.html">x-x</a>
-<a href="APIchunk26.html">y-z</a>
+<a href="APIchunk24.html">u-v</a>
+<a href="APIchunk25.html">w-w</a>
+<a href="APIchunk26.html">x-x</a>
+<a href="APIchunk27.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/doc/APIchunk25.html b/doc/APIchunk25.html
index 2cd53e5..13f384a 100644
--- a/doc/APIchunk25.html
+++ b/doc/APIchunk25.html
@@ -7,13 +7,13 @@ H1 {font-family: Verdana,Arial,Helvetica}
H2 {font-family: Verdana,Arial,Helvetica}
H3 {font-family: Verdana,Arial,Helvetica}
A:link, A:visited, A:active { text-decoration: underline }
-</style><title>API Alphabetic Index x-x for libxml2</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>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="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://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 align="center"><a href="APIchunk0.html">A-B</a>
+</style><title>API Alphabetic Index w-w for libxml2</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>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="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://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 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-Q</a>
-<a href="APIchunk6.html">R-S</a>
+<a href="APIchunk5.html">O-P</a>
+<a href="APIchunk6.html">Q-S</a>
<a href="APIchunk7.html">T-U</a>
<a href="APIchunk8.html">V-a</a>
<a href="APIchunk9.html">b-b</a>
@@ -31,445 +31,234 @@ A:link, A:visited, A:active { text-decoration: underline }
<a href="APIchunk21.html">q-r</a>
<a href="APIchunk22.html">s-s</a>
<a href="APIchunk23.html">t-t</a>
-<a href="APIchunk24.html">u-w</a>
-<a href="APIchunk25.html">x-x</a>
-<a href="APIchunk26.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-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>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>xmlBuffer</dt><dd><a href="html/libxml-encoding.html#xmlCharEncFirstLine">xmlCharEncFirstLine</a><br />
+<a href="APIchunk24.html">u-v</a>
+<a href="APIchunk25.html">w-w</a>
+<a href="APIchunk26.html">x-x</a>
+<a href="APIchunk27.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 />
-</dd><dt>xmlBufferPtr</dt><dd><a href="html/libxml-xmlwriter.html#xmlNewTextWriterMemory">xmlNewTextWriterMemory</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 />
-<a href="html/libxml-parser.html#xmlParserInputGrow">xmlParserInputGrow</a><br />
-<a href="html/libxml-parser.html#xmlParserInputRead">xmlParserInputRead</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>xmlCreateIntSubset</dt><dd><a href="html/libxml-tree.html#xmlNewDtd">xmlNewDtd</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>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>xmlDocumentGetBase</dt><dd><a href="html/libxml-tree.html#xmlNodeGetBase">xmlNodeGetBase</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#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 />
+</dd><dt>warn</dt><dd><a href="html/libxml-xmlversion.html#xmlCheckVersion">xmlCheckVersion</a><br />
+</dd><dt>warning</dt><dd><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-SAX2.html#xmlSAX2InitDefaultSAXHandler">xmlSAX2InitDefaultSAXHandler</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-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>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-SAX2.html#xmlSAX2StartElementNs">xmlSAX2StartElementNs</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 />
+</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-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-xinclude.html#xmlXIncludeProcess">xmlXIncludeProcess</a><br />
+<a href="html/libxml-xinclude.html#xmlXIncludeProcessFlags">xmlXIncludeProcessFlags</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>wether</dt><dd><a href="html/libxml-xpath.html#_xmlNodeSet">_xmlNodeSet</a><br />
+<a href="html/libxml-pattern.html#xmlPatternMatch">xmlPatternMatch</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-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-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 />
+</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-xpathInternals.html#xmlXPathIdFunction">xmlXPathIdFunction</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathNormalizeFunction">xmlXPathNormalizeFunction</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>whose</dt><dd><a href="html/libxml-xmlautomata.html#xmlAutomataNewCountTrans">xmlAutomataNewCountTrans</a><br />
+<a href="html/libxml-xmlautomata.html#xmlAutomataNewOnceTrans">xmlAutomataNewOnceTrans</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderLookupNamespace">xmlTextReaderLookupNamespace</a><br />
+</dd><dt>wierd</dt><dd><a href="html/libxml-uri.html#xmlBuildRelativeURI">xmlBuildRelativeURI</a><br />
+</dd><dt>wildcard</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_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>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-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 />
-</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>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-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-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 />
-</dd><dt>xmlFreeDoc</dt><dd><a href="html/libxml-xmlreader.html#xmlTextReaderCurrentDoc">xmlTextReaderCurrentDoc</a><br />
-</dd><dt>xmlFreeMutex</dt><dd><a href="html/libxml-threads.html#xmlFreeMutex">xmlFreeMutex</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 />
-</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#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 />
-</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#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>xmlLineNumbersDefault</dt><dd><a href="html/libxml-tree.html#xmlGetLineNo">xmlGetLineNo</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>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>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>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#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>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>xmlNodeType</dt><dd><a href="html/libxml-xmlreader.html#xmlTextReaderNodeType">xmlTextReaderNodeType</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>xmlNsPtr</dt><dd><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#xmlGetNsList">xmlGetNsList</a><br />
-</dd><dt>xmlOutputBufferPtr</dt><dd><a href="html/libxml-xmlwriter.html#xmlNewTextWriter">xmlNewTextWriter</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>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>xmlParserInputBufferPtr</dt><dd><a href="html/libxml-xmlreader.html#xmlNewTextReader">xmlNewTextReader</a><br />
-<a href="html/libxml-xmlreader.html#xmlTextReaderGetRemainder">xmlTextReaderGetRemainder</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-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-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-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>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>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>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-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-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-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-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-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-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#xmlNodeGetBase">xmlNodeGetBase</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-HTMLparser.html#htmlAutoCloseTag">htmlAutoCloseTag</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderGetRemainder">xmlTextReaderGetRemainder</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-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 />
-</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>xmlStrEqual</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>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 />
-<a href="html/libxml-xmlreader.html#xmlTextReaderPreserve">xmlTextReaderPreserve</a><br />
-</dd><dt>xmlTextReaderCurrentDoc</dt><dd><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 />
-</dd><dt>xmlUnlinkNode</dt><dd><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>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>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-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 />
-</dd><dt>xpointer</dt><dd><a href="html/libxml-xinclude.html#XINCLUDE_PARSE_XPOINTER">XINCLUDE_PARSE_XPOINTER</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 />
+</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>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-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 />
</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-Q</a>
-<a href="APIchunk6.html">R-S</a>
+<a href="APIchunk5.html">O-P</a>
+<a href="APIchunk6.html">Q-S</a>
<a href="APIchunk7.html">T-U</a>
<a href="APIchunk8.html">V-a</a>
<a href="APIchunk9.html">b-b</a>
@@ -487,7 +276,8 @@ A:link, A:visited, A:active { text-decoration: underline }
<a href="APIchunk21.html">q-r</a>
<a href="APIchunk22.html">s-s</a>
<a href="APIchunk23.html">t-t</a>
-<a href="APIchunk24.html">u-w</a>
-<a href="APIchunk25.html">x-x</a>
-<a href="APIchunk26.html">y-z</a>
+<a href="APIchunk24.html">u-v</a>
+<a href="APIchunk25.html">w-w</a>
+<a href="APIchunk26.html">x-x</a>
+<a href="APIchunk27.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/doc/APIchunk26.html b/doc/APIchunk26.html
index fdd4f92..58438e9 100644
--- a/doc/APIchunk26.html
+++ b/doc/APIchunk26.html
@@ -7,13 +7,13 @@ H1 {font-family: Verdana,Arial,Helvetica}
H2 {font-family: Verdana,Arial,Helvetica}
H3 {font-family: Verdana,Arial,Helvetica}
A:link, A:visited, A:active { text-decoration: underline }
-</style><title>API Alphabetic Index y-z for libxml2</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>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="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://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 align="center"><a href="APIchunk0.html">A-B</a>
+</style><title>API Alphabetic Index x-x for libxml2</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>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="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://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 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-Q</a>
-<a href="APIchunk6.html">R-S</a>
+<a href="APIchunk5.html">O-P</a>
+<a href="APIchunk6.html">Q-S</a>
<a href="APIchunk7.html">T-U</a>
<a href="APIchunk8.html">V-a</a>
<a href="APIchunk9.html">b-b</a>
@@ -31,64 +31,446 @@ A:link, A:visited, A:active { text-decoration: underline }
<a href="APIchunk21.html">q-r</a>
<a href="APIchunk22.html">s-s</a>
<a href="APIchunk23.html">t-t</a>
-<a href="APIchunk24.html">u-w</a>
-<a href="APIchunk25.html">x-x</a>
-<a href="APIchunk26.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-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="APIchunk24.html">u-v</a>
+<a href="APIchunk25.html">w-w</a>
+<a href="APIchunk26.html">x-x</a>
+<a href="APIchunk27.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-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>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>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 />
+</dd><dt>xmlBufferPtr</dt><dd><a href="html/libxml-xmlwriter.html#xmlNewTextWriterMemory">xmlNewTextWriterMemory</a><br />
+</dd><dt>xmlBuildURI</dt><dd><a href="html/libxml-uri.html#xmlBuildRelativeURI">xmlBuildRelativeURI</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 />
+<a href="html/libxml-parser.html#xmlParserInputGrow">xmlParserInputGrow</a><br />
+<a href="html/libxml-parser.html#xmlParserInputRead">xmlParserInputRead</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>xmlCreateIntSubset</dt><dd><a href="html/libxml-tree.html#xmlNewDtd">xmlNewDtd</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>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>xmlDocumentGetBase</dt><dd><a href="html/libxml-tree.html#xmlNodeGetBase">xmlNodeGetBase</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#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 />
+</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-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-pattern.html#xmlPatterncompile">xmlPatterncompile</a><br />
-<a href="html/libxml-xmlsave.html#xmlSaveDoc">xmlSaveDoc</a><br />
-<a href="html/libxml-xmlsave.html#xmlSaveTree">xmlSaveTree</a><br />
-</dd><dt>you</dt><dd><a href="html/libxml-tree.html#xmlNewDocNode">xmlNewDocNode</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>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-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 />
+</dd><dt>xmlFreeDoc</dt><dd><a href="html/libxml-xmlreader.html#xmlTextReaderCurrentDoc">xmlTextReaderCurrentDoc</a><br />
+</dd><dt>xmlFreeMutex</dt><dd><a href="html/libxml-threads.html#xmlFreeMutex">xmlFreeMutex</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 />
+</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#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 />
+</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#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>xmlLineNumbersDefault</dt><dd><a href="html/libxml-tree.html#xmlGetLineNo">xmlGetLineNo</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>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>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 />
-<a href="html/libxml-tree.html#xmlSearchNs">xmlSearchNs</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 />
+</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>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#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>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>xmlNodeType</dt><dd><a href="html/libxml-xmlreader.html#xmlTextReaderNodeType">xmlTextReaderNodeType</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>xmlNsPtr</dt><dd><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#xmlGetNsList">xmlGetNsList</a><br />
+</dd><dt>xmlOutputBufferPtr</dt><dd><a href="html/libxml-xmlwriter.html#xmlNewTextWriter">xmlNewTextWriter</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>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-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-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 />
+</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>xmlParserInputBufferPtr</dt><dd><a href="html/libxml-xmlreader.html#xmlNewTextReader">xmlNewTextReader</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderGetRemainder">xmlTextReaderGetRemainder</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>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>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>xmlSAXVersion</dt><dd><a href="html/libxml-SAX2.html#xmlSAXDefaultVersion">xmlSAXDefaultVersion</a><br />
+</dd><dt>xmlSaveOptions</dt><dd><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>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>xmlStrEqual</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>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-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 />
+<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 />
+</dd><dt>xmlUnlinkNode</dt><dd><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>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>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-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 />
+</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-Q</a>
-<a href="APIchunk6.html">R-S</a>
+<a href="APIchunk5.html">O-P</a>
+<a href="APIchunk6.html">Q-S</a>
<a href="APIchunk7.html">T-U</a>
<a href="APIchunk8.html">V-a</a>
<a href="APIchunk9.html">b-b</a>
@@ -106,7 +488,8 @@ A:link, A:visited, A:active { text-decoration: underline }
<a href="APIchunk21.html">q-r</a>
<a href="APIchunk22.html">s-s</a>
<a href="APIchunk23.html">t-t</a>
-<a href="APIchunk24.html">u-w</a>
-<a href="APIchunk25.html">x-x</a>
-<a href="APIchunk26.html">y-z</a>
+<a href="APIchunk24.html">u-v</a>
+<a href="APIchunk25.html">w-w</a>
+<a href="APIchunk26.html">x-x</a>
+<a href="APIchunk27.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/doc/APIchunk27.html b/doc/APIchunk27.html
new file mode 100644
index 0000000..e683880
--- /dev/null
+++ b/doc/APIchunk27.html
@@ -0,0 +1,115 @@
+<?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>API Alphabetic Index y-z for libxml2</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>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="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://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 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-S</a>
+<a href="APIchunk7.html">T-U</a>
+<a href="APIchunk8.html">V-a</a>
+<a href="APIchunk9.html">b-b</a>
+<a href="APIchunk10.html">c-c</a>
+<a href="APIchunk11.html">d-d</a>
+<a href="APIchunk12.html">e-e</a>
+<a href="APIchunk13.html">f-f</a>
+<a href="APIchunk14.html">g-h</a>
+<a href="APIchunk15.html">i-i</a>
+<a href="APIchunk16.html">j-l</a>
+<a href="APIchunk17.html">m-m</a>
+<a href="APIchunk18.html">n-n</a>
+<a href="APIchunk19.html">o-o</a>
+<a href="APIchunk20.html">p-p</a>
+<a href="APIchunk21.html">q-r</a>
+<a href="APIchunk22.html">s-s</a>
+<a href="APIchunk23.html">t-t</a>
+<a href="APIchunk24.html">u-v</a>
+<a href="APIchunk25.html">w-w</a>
+<a href="APIchunk26.html">x-x</a>
+<a href="APIchunk27.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-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-pattern.html#xmlPatterncompile">xmlPatterncompile</a><br />
+<a href="html/libxml-xmlsave.html#xmlSaveDoc">xmlSaveDoc</a><br />
+<a href="html/libxml-xmlsave.html#xmlSaveTree">xmlSaveTree</a><br />
+</dd><dt>you</dt><dd><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></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-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-S</a>
+<a href="APIchunk7.html">T-U</a>
+<a href="APIchunk8.html">V-a</a>
+<a href="APIchunk9.html">b-b</a>
+<a href="APIchunk10.html">c-c</a>
+<a href="APIchunk11.html">d-d</a>
+<a href="APIchunk12.html">e-e</a>
+<a href="APIchunk13.html">f-f</a>
+<a href="APIchunk14.html">g-h</a>
+<a href="APIchunk15.html">i-i</a>
+<a href="APIchunk16.html">j-l</a>
+<a href="APIchunk17.html">m-m</a>
+<a href="APIchunk18.html">n-n</a>
+<a href="APIchunk19.html">o-o</a>
+<a href="APIchunk20.html">p-p</a>
+<a href="APIchunk21.html">q-r</a>
+<a href="APIchunk22.html">s-s</a>
+<a href="APIchunk23.html">t-t</a>
+<a href="APIchunk24.html">u-v</a>
+<a href="APIchunk25.html">w-w</a>
+<a href="APIchunk26.html">x-x</a>
+<a href="APIchunk27.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/doc/APIchunk3.html b/doc/APIchunk3.html
index f8b570b..0e811be 100644
--- a/doc/APIchunk3.html
+++ b/doc/APIchunk3.html
@@ -12,8 +12,8 @@ A:link, A:visited, A:active { text-decoration: underline }
<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-Q</a>
-<a href="APIchunk6.html">R-S</a>
+<a href="APIchunk5.html">O-P</a>
+<a href="APIchunk6.html">Q-S</a>
<a href="APIchunk7.html">T-U</a>
<a href="APIchunk8.html">V-a</a>
<a href="APIchunk9.html">b-b</a>
@@ -31,9 +31,10 @@ A:link, A:visited, A:active { text-decoration: underline }
<a href="APIchunk21.html">q-r</a>
<a href="APIchunk22.html">s-s</a>
<a href="APIchunk23.html">t-t</a>
-<a href="APIchunk24.html">u-w</a>
-<a href="APIchunk25.html">x-x</a>
-<a href="APIchunk26.html">y-z</a>
+<a href="APIchunk24.html">u-v</a>
+<a href="APIchunk25.html">w-w</a>
+<a href="APIchunk26.html">x-x</a>
+<a href="APIchunk27.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 />
@@ -150,6 +151,7 @@ A:link, A:visited, A:active { text-decoration: underline }
<a href="html/libxml-xpathInternals.html#xmlXPathGetDocument">xmlXPathGetDocument</a><br />
<a href="html/libxml-xpathInternals.html#xmlXPathGetError">xmlXPathGetError</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-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 />
@@ -273,6 +275,7 @@ A:link, A:visited, A:active { text-decoration: underline }
<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>Increment</dt><dd><a href="html/libxml-dict.html#xmlDictReference">xmlDictReference</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 />
@@ -319,8 +322,8 @@ A:link, A:visited, A:active { text-decoration: underline }
<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-Q</a>
-<a href="APIchunk6.html">R-S</a>
+<a href="APIchunk5.html">O-P</a>
+<a href="APIchunk6.html">Q-S</a>
<a href="APIchunk7.html">T-U</a>
<a href="APIchunk8.html">V-a</a>
<a href="APIchunk9.html">b-b</a>
@@ -338,7 +341,8 @@ A:link, A:visited, A:active { text-decoration: underline }
<a href="APIchunk21.html">q-r</a>
<a href="APIchunk22.html">s-s</a>
<a href="APIchunk23.html">t-t</a>
-<a href="APIchunk24.html">u-w</a>
-<a href="APIchunk25.html">x-x</a>
-<a href="APIchunk26.html">y-z</a>
+<a href="APIchunk24.html">u-v</a>
+<a href="APIchunk25.html">w-w</a>
+<a href="APIchunk26.html">x-x</a>
+<a href="APIchunk27.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/doc/APIchunk4.html b/doc/APIchunk4.html
index 126e589..9fa9d43 100644
--- a/doc/APIchunk4.html
+++ b/doc/APIchunk4.html
@@ -12,8 +12,8 @@ A:link, A:visited, A:active { text-decoration: underline }
<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-Q</a>
-<a href="APIchunk6.html">R-S</a>
+<a href="APIchunk5.html">O-P</a>
+<a href="APIchunk6.html">Q-S</a>
<a href="APIchunk7.html">T-U</a>
<a href="APIchunk8.html">V-a</a>
<a href="APIchunk9.html">b-b</a>
@@ -31,9 +31,10 @@ A:link, A:visited, A:active { text-decoration: underline }
<a href="APIchunk21.html">q-r</a>
<a href="APIchunk22.html">s-s</a>
<a href="APIchunk23.html">t-t</a>
-<a href="APIchunk24.html">u-w</a>
-<a href="APIchunk25.html">x-x</a>
-<a href="APIchunk26.html">y-z</a>
+<a href="APIchunk24.html">u-v</a>
+<a href="APIchunk25.html">w-w</a>
+<a href="APIchunk26.html">x-x</a>
+<a href="APIchunk27.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 />
@@ -290,6 +291,7 @@ A:link, A:visited, A:active { text-decoration: underline }
<a href="html/libxml-tree.html#xmlSaveFormatFileEnc">xmlSaveFormatFileEnc</a><br />
<a href="html/libxml-xmlreader.html#xmlTextReaderSetParserProp">xmlTextReaderSetParserProp</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 />
@@ -305,8 +307,8 @@ A:link, A:visited, A:active { text-decoration: underline }
<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-Q</a>
-<a href="APIchunk6.html">R-S</a>
+<a href="APIchunk5.html">O-P</a>
+<a href="APIchunk6.html">Q-S</a>
<a href="APIchunk7.html">T-U</a>
<a href="APIchunk8.html">V-a</a>
<a href="APIchunk9.html">b-b</a>
@@ -324,7 +326,8 @@ A:link, A:visited, A:active { text-decoration: underline }
<a href="APIchunk21.html">q-r</a>
<a href="APIchunk22.html">s-s</a>
<a href="APIchunk23.html">t-t</a>
-<a href="APIchunk24.html">u-w</a>
-<a href="APIchunk25.html">x-x</a>
-<a href="APIchunk26.html">y-z</a>
+<a href="APIchunk24.html">u-v</a>
+<a href="APIchunk25.html">w-w</a>
+<a href="APIchunk26.html">x-x</a>
+<a href="APIchunk27.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/doc/APIchunk5.html b/doc/APIchunk5.html
index c5e5cca..f8192d6 100644
--- a/doc/APIchunk5.html
+++ b/doc/APIchunk5.html
@@ -7,13 +7,13 @@ H1 {font-family: Verdana,Arial,Helvetica}
H2 {font-family: Verdana,Arial,Helvetica}
H3 {font-family: Verdana,Arial,Helvetica}
A:link, A:visited, A:active { text-decoration: underline }
-</style><title>API Alphabetic Index O-Q for libxml2</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>The XML C parser and toolkit of Gnome</h1><h2>API Alphabetic Index O-Q 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="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://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 align="center"><a href="APIchunk0.html">A-B</a>
+</style><title>API Alphabetic Index O-P for libxml2</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>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="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://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 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-Q</a>
-<a href="APIchunk6.html">R-S</a>
+<a href="APIchunk5.html">O-P</a>
+<a href="APIchunk6.html">Q-S</a>
<a href="APIchunk7.html">T-U</a>
<a href="APIchunk8.html">V-a</a>
<a href="APIchunk9.html">b-b</a>
@@ -31,9 +31,10 @@ A:link, A:visited, A:active { text-decoration: underline }
<a href="APIchunk21.html">q-r</a>
<a href="APIchunk22.html">s-s</a>
<a href="APIchunk23.html">t-t</a>
-<a href="APIchunk24.html">u-w</a>
-<a href="APIchunk25.html">x-x</a>
-<a href="APIchunk26.html">y-z</a>
+<a href="APIchunk24.html">u-v</a>
+<a href="APIchunk25.html">w-w</a>
+<a href="APIchunk26.html">x-x</a>
+<a href="APIchunk27.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 />
@@ -42,6 +43,10 @@ A:link, A:visited, A:active { text-decoration: underline }
</dd><dt>OUT:</dt><dd><a href="html/libxml-HTMLtree.html#htmlDocDumpMemory">htmlDocDumpMemory</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 />
</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 />
@@ -60,6 +65,7 @@ A:link, A:visited, A:active { text-decoration: underline }
<a href="html/libxml-xmlIO.html#xmlOutputOpenCallback">xmlOutputOpenCallback</a><br />
<a href="html/libxml-xmlIO.html#xmlOutputWriteCallback">xmlOutputWriteCallback</a><br />
<a href="html/libxml-uri.html#xmlURIUnescapeString">xmlURIUnescapeString</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 />
@@ -120,11 +126,13 @@ A:link, A:visited, A:active { text-decoration: underline }
<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 />
<a href="html/libxml-xpathInternals.html#xmlXPathErr">xmlXPathErr</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-xpointer.html#xmlXPtrEval">xmlXPtrEval</a><br />
@@ -228,31 +236,13 @@ A:link, A:visited, A:active { text-decoration: underline }
<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>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-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-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 />
-</dd><dt>Question:</dt><dd><a href="html/libxml-parserInternals.html#xmlParseTextDecl">xmlParseTextDecl</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-Q</a>
-<a href="APIchunk6.html">R-S</a>
+<a href="APIchunk5.html">O-P</a>
+<a href="APIchunk6.html">Q-S</a>
<a href="APIchunk7.html">T-U</a>
<a href="APIchunk8.html">V-a</a>
<a href="APIchunk9.html">b-b</a>
@@ -270,7 +260,8 @@ A:link, A:visited, A:active { text-decoration: underline }
<a href="APIchunk21.html">q-r</a>
<a href="APIchunk22.html">s-s</a>
<a href="APIchunk23.html">t-t</a>
-<a href="APIchunk24.html">u-w</a>
-<a href="APIchunk25.html">x-x</a>
-<a href="APIchunk26.html">y-z</a>
+<a href="APIchunk24.html">u-v</a>
+<a href="APIchunk25.html">w-w</a>
+<a href="APIchunk26.html">x-x</a>
+<a href="APIchunk27.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/doc/APIchunk6.html b/doc/APIchunk6.html
index 9ab7310..5f9c69f 100644
--- a/doc/APIchunk6.html
+++ b/doc/APIchunk6.html
@@ -7,13 +7,13 @@ H1 {font-family: Verdana,Arial,Helvetica}
H2 {font-family: Verdana,Arial,Helvetica}
H3 {font-family: Verdana,Arial,Helvetica}
A:link, A:visited, A:active { text-decoration: underline }
-</style><title>API Alphabetic Index R-S for libxml2</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>The XML C parser and toolkit of Gnome</h1><h2>API Alphabetic Index R-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="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://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 align="center"><a href="APIchunk0.html">A-B</a>
+</style><title>API Alphabetic Index Q-S for libxml2</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>The XML C parser and toolkit of Gnome</h1><h2>API Alphabetic Index Q-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="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://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 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-Q</a>
-<a href="APIchunk6.html">R-S</a>
+<a href="APIchunk5.html">O-P</a>
+<a href="APIchunk6.html">Q-S</a>
<a href="APIchunk7.html">T-U</a>
<a href="APIchunk8.html">V-a</a>
<a href="APIchunk9.html">b-b</a>
@@ -31,10 +31,29 @@ A:link, A:visited, A:active { text-decoration: underline }
<a href="APIchunk21.html">q-r</a>
<a href="APIchunk22.html">s-s</a>
<a href="APIchunk23.html">t-t</a>
-<a href="APIchunk24.html">u-w</a>
-<a href="APIchunk25.html">x-x</a>
-<a href="APIchunk26.html">y-z</a>
-</h2><h2>Letter R:</h2><dl><dt>REC</dt><dd><a href="html/libxml-parserInternals.html#IS_BASECHAR">IS_BASECHAR</a><br />
+<a href="APIchunk24.html">u-v</a>
+<a href="APIchunk25.html">w-w</a>
+<a href="APIchunk26.html">x-x</a>
+<a href="APIchunk27.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-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-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 />
+</dd><dt>Question:</dt><dd><a href="html/libxml-parserInternals.html#xmlParseTextDecl">xmlParseTextDecl</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 />
</dd><dt>REC-xml</dt><dd><a href="html/libxml-encoding.html#xmlGetCharEncodingName">xmlGetCharEncodingName</a><br />
@@ -62,11 +81,11 @@ A:link, A:visited, A:active { text-decoration: underline }
<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 />
-</dd><dt>Reader</dt><dd><a href="html/libxml-xmlreader.html#xmlTextReaderPreservePattern">xmlTextReaderPreservePattern</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#xmlTextReaderPreserve">xmlTextReaderPreserve</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 />
@@ -124,6 +143,8 @@ A:link, A:visited, A:active { text-decoration: underline }
</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 />
@@ -167,6 +188,7 @@ A:link, A:visited, A:active { text-decoration: underline }
<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 />
@@ -272,6 +294,7 @@ A:link, A:visited, A:active { text-decoration: underline }
<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-xmlschemas.html#xmlSchemaParse">xmlSchemaParse</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 />
@@ -400,6 +423,7 @@ A:link, A:visited, A:active { text-decoration: underline }
<a href="html/libxml-xmlreader.html#xmlTextReaderNormalization">xmlTextReaderNormalization</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 />
@@ -409,6 +433,7 @@ A:link, A:visited, A:active { text-decoration: underline }
<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 />
</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 />
@@ -459,8 +484,8 @@ A:link, A:visited, A:active { text-decoration: underline }
<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-Q</a>
-<a href="APIchunk6.html">R-S</a>
+<a href="APIchunk5.html">O-P</a>
+<a href="APIchunk6.html">Q-S</a>
<a href="APIchunk7.html">T-U</a>
<a href="APIchunk8.html">V-a</a>
<a href="APIchunk9.html">b-b</a>
@@ -478,7 +503,8 @@ A:link, A:visited, A:active { text-decoration: underline }
<a href="APIchunk21.html">q-r</a>
<a href="APIchunk22.html">s-s</a>
<a href="APIchunk23.html">t-t</a>
-<a href="APIchunk24.html">u-w</a>
-<a href="APIchunk25.html">x-x</a>
-<a href="APIchunk26.html">y-z</a>
+<a href="APIchunk24.html">u-v</a>
+<a href="APIchunk25.html">w-w</a>
+<a href="APIchunk26.html">x-x</a>
+<a href="APIchunk27.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/doc/APIchunk7.html b/doc/APIchunk7.html
index 2c47d30..c755d1b 100644
--- a/doc/APIchunk7.html
+++ b/doc/APIchunk7.html
@@ -12,8 +12,8 @@ A:link, A:visited, A:active { text-decoration: underline }
<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-Q</a>
-<a href="APIchunk6.html">R-S</a>
+<a href="APIchunk5.html">O-P</a>
+<a href="APIchunk6.html">Q-S</a>
<a href="APIchunk7.html">T-U</a>
<a href="APIchunk8.html">V-a</a>
<a href="APIchunk9.html">b-b</a>
@@ -31,9 +31,10 @@ A:link, A:visited, A:active { text-decoration: underline }
<a href="APIchunk21.html">q-r</a>
<a href="APIchunk22.html">s-s</a>
<a href="APIchunk23.html">t-t</a>
-<a href="APIchunk24.html">u-w</a>
-<a href="APIchunk25.html">x-x</a>
-<a href="APIchunk26.html">y-z</a>
+<a href="APIchunk24.html">u-v</a>
+<a href="APIchunk25.html">w-w</a>
+<a href="APIchunk26.html">x-x</a>
+<a href="APIchunk27.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 />
@@ -233,7 +234,10 @@ A:link, A:visited, A:active { text-decoration: underline }
<a href="html/libxml-tree.html#xmlNewTextChild">xmlNewTextChild</a><br />
<a href="html/libxml-xmlreader.html#xmlTextReaderRelaxNGSetSchema">xmlTextReaderRelaxNGSetSchema</a><br />
<a href="html/libxml-xmlreader.html#xmlTextReaderRelaxNGValidate">xmlTextReaderRelaxNGValidate</a><br />
-</dd><dt>Used</dt><dd><a href="html/libxml-parser.html#XML_SKIP_IDS">XML_SKIP_IDS</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-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 />
@@ -251,8 +255,8 @@ A:link, A:visited, A:active { text-decoration: underline }
<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-Q</a>
-<a href="APIchunk6.html">R-S</a>
+<a href="APIchunk5.html">O-P</a>
+<a href="APIchunk6.html">Q-S</a>
<a href="APIchunk7.html">T-U</a>
<a href="APIchunk8.html">V-a</a>
<a href="APIchunk9.html">b-b</a>
@@ -270,7 +274,8 @@ A:link, A:visited, A:active { text-decoration: underline }
<a href="APIchunk21.html">q-r</a>
<a href="APIchunk22.html">s-s</a>
<a href="APIchunk23.html">t-t</a>
-<a href="APIchunk24.html">u-w</a>
-<a href="APIchunk25.html">x-x</a>
-<a href="APIchunk26.html">y-z</a>
+<a href="APIchunk24.html">u-v</a>
+<a href="APIchunk25.html">w-w</a>
+<a href="APIchunk26.html">x-x</a>
+<a href="APIchunk27.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/doc/APIchunk8.html b/doc/APIchunk8.html
index 2ee50f7..61f5578 100644
--- a/doc/APIchunk8.html
+++ b/doc/APIchunk8.html
@@ -12,8 +12,8 @@ A:link, A:visited, A:active { text-decoration: underline }
<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-Q</a>
-<a href="APIchunk6.html">R-S</a>
+<a href="APIchunk5.html">O-P</a>
+<a href="APIchunk6.html">Q-S</a>
<a href="APIchunk7.html">T-U</a>
<a href="APIchunk8.html">V-a</a>
<a href="APIchunk9.html">b-b</a>
@@ -31,11 +31,13 @@ A:link, A:visited, A:active { text-decoration: underline }
<a href="APIchunk21.html">q-r</a>
<a href="APIchunk22.html">s-s</a>
<a href="APIchunk23.html">t-t</a>
-<a href="APIchunk24.html">u-w</a>
-<a href="APIchunk25.html">x-x</a>
-<a href="APIchunk26.html">y-z</a>
+<a href="APIchunk24.html">u-v</a>
+<a href="APIchunk25.html">w-w</a>
+<a href="APIchunk26.html">x-x</a>
+<a href="APIchunk27.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-relaxng.html#xmlRelaxNGValidateDoc">xmlRelaxNGValidateDoc</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#xmlSchemaValidateStream">xmlSchemaValidateStream</a><br />
@@ -167,6 +169,7 @@ A:link, A:visited, A:active { text-decoration: underline }
</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_SCHEMAS_ELEM_GLOBAL</dt><dd><a href="html/libxml-schemasInternals.html#XML_SCHEMAS_ELEM_TOPLEVEL">XML_SCHEMAS_ELEM_TOPLEVEL</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 />
@@ -238,6 +241,7 @@ A:link, A:visited, A:active { text-decoration: underline }
<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-xpathInternals.html#xmlXPathSubstringFunction">xmlXPathSubstringFunction</a><br />
+</dd><dt>absent</dt><dd><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 />
<a href="html/libxml-uri.html#xmlParseURIReference">xmlParseURIReference</a><br />
</dd><dt>abstract</dt><dd><a href="html/libxml-schemasInternals.html#XML_SCHEMAS_ELEM_ABSTRACT">XML_SCHEMAS_ELEM_ABSTRACT</a><br />
@@ -257,7 +261,6 @@ A:link, A:visited, A:active { text-decoration: underline }
<a href="html/libxml-threads.html#xmlNewRMutex">xmlNewRMutex</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 />
-<a href="html/libxml-xmlreader.html#xmlTextReaderPreserve">xmlTextReaderPreserve</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 />
@@ -388,6 +391,7 @@ A:link, A:visited, A:active { text-decoration: underline }
<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#xmlSchemaValidateListSimpleTypeFacet">xmlSchemaValidateListSimpleTypeFacet</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#xmlNodeBufGetContent">xmlNodeBufGetContent</a><br />
@@ -403,8 +407,6 @@ A:link, A:visited, A:active { text-decoration: underline }
<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 />
@@ -413,10 +415,7 @@ A:link, A:visited, A:active { text-decoration: underline }
<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 />
@@ -448,6 +447,7 @@ A:link, A:visited, A:active { text-decoration: underline }
</dd><dt>allowable</dt><dd><a href="html/libxml-parserInternals.html#xmlSkipBlankChars">xmlSkipBlankChars</a><br />
</dd><dt>allowed</dt><dd><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 />
@@ -468,10 +468,13 @@ A:link, A:visited, A:active { text-decoration: underline }
<a href="html/libxml-catalog.html#xmlCatalogAdd">xmlCatalogAdd</a><br />
<a href="html/libxml-tree.html#xmlNewChild">xmlNewChild</a><br />
<a href="html/libxml-xmlreader.html#xmlTextReaderConstString">xmlTextReaderConstString</a><br />
-</dd><dt>already</dt><dd><a href="html/libxml-parser.html#_xmlParserInput">_xmlParserInput</a><br />
+</dd><dt>already</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_WILDCARD_BUILDED">XML_SCHEMAS_ATTRGROUP_WILDCARD_BUILDED</a><br />
+<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-xmlmemory.html#xmlFreeFunc">xmlFreeFunc</a><br />
<a href="html/libxml-xmlmemory.html#xmlGcMemSetup">xmlGcMemSetup</a><br />
<a href="html/libxml-xmlmemory.html#xmlMemSetup">xmlMemSetup</a><br />
@@ -488,6 +491,7 @@ A:link, A:visited, A:active { text-decoration: underline }
<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-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 />
@@ -533,7 +537,11 @@ A:link, A:visited, A:active { text-decoration: underline }
<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>anymore</dt><dd><a href="html/libxml-parserInternals.html#xmlNamespaceParseNCName">xmlNamespaceParseNCName</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-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>anyway</dt><dd><a href="html/libxml-parser.html#xmlRecoverDoc">xmlRecoverDoc</a><br />
@@ -603,8 +611,6 @@ A:link, A:visited, A:active { text-decoration: underline }
</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 />
@@ -625,6 +631,7 @@ A:link, A:visited, A:active { text-decoration: underline }
</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-tree.html#xmlSaveFileTo">xmlSaveFileTo</a><br />
<a href="html/libxml-tree.html#xmlSaveFormatFileTo">xmlSaveFormatFileTo</a><br />
</dd><dt>atomic</dt><dd><a href="html/libxml-xmlmemory.html#xmlGcMemGet">xmlGcMemGet</a><br />
@@ -659,8 +666,8 @@ A:link, A:visited, A:active { text-decoration: underline }
<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-Q</a>
-<a href="APIchunk6.html">R-S</a>
+<a href="APIchunk5.html">O-P</a>
+<a href="APIchunk6.html">Q-S</a>
<a href="APIchunk7.html">T-U</a>
<a href="APIchunk8.html">V-a</a>
<a href="APIchunk9.html">b-b</a>
@@ -678,7 +685,8 @@ A:link, A:visited, A:active { text-decoration: underline }
<a href="APIchunk21.html">q-r</a>
<a href="APIchunk22.html">s-s</a>
<a href="APIchunk23.html">t-t</a>
-<a href="APIchunk24.html">u-w</a>
-<a href="APIchunk25.html">x-x</a>
-<a href="APIchunk26.html">y-z</a>
+<a href="APIchunk24.html">u-v</a>
+<a href="APIchunk25.html">w-w</a>
+<a href="APIchunk26.html">x-x</a>
+<a href="APIchunk27.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/doc/APIchunk9.html b/doc/APIchunk9.html
index 409003a..477455d 100644
--- a/doc/APIchunk9.html
+++ b/doc/APIchunk9.html
@@ -12,8 +12,8 @@ A:link, A:visited, A:active { text-decoration: underline }
<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-Q</a>
-<a href="APIchunk6.html">R-S</a>
+<a href="APIchunk5.html">O-P</a>
+<a href="APIchunk6.html">Q-S</a>
<a href="APIchunk7.html">T-U</a>
<a href="APIchunk8.html">V-a</a>
<a href="APIchunk9.html">b-b</a>
@@ -31,9 +31,10 @@ A:link, A:visited, A:active { text-decoration: underline }
<a href="APIchunk21.html">q-r</a>
<a href="APIchunk22.html">s-s</a>
<a href="APIchunk23.html">t-t</a>
-<a href="APIchunk24.html">u-w</a>
-<a href="APIchunk25.html">x-x</a>
-<a href="APIchunk26.html">y-z</a>
+<a href="APIchunk24.html">u-v</a>
+<a href="APIchunk25.html">w-w</a>
+<a href="APIchunk26.html">x-x</a>
+<a href="APIchunk27.html">y-z</a>
</h2><h2>Letter b:</h2><dl><dt>back</dt><dd><a href="html/libxml-parserInternals.html#xmlEntityReferenceFunc">xmlEntityReferenceFunc</a><br />
<a href="html/libxml-parser.html#xmlKeepBlanksDefault">xmlKeepBlanksDefault</a><br />
<a href="html/libxml-nanoftp.html#xmlNanoFTPGet">xmlNanoFTPGet</a><br />
@@ -78,6 +79,7 @@ A:link, A:visited, A:active { text-decoration: underline }
</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-parserInternals.html#xmlCurrentChar">xmlCurrentChar</a><br />
<a href="html/libxml-xmlmemory.html#xmlGcMemSetup">xmlGcMemSetup</a><br />
@@ -119,6 +121,36 @@ A:link, A:visited, A:active { text-decoration: underline }
<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 />
+</dd><dt>being</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-xpath.html#_xmlXPathParserContext">_xmlXPathParserContext</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-xmlautomata.html#xmlAutomataCompile">xmlAutomataCompile</a><br />
+<a href="html/libxml-xmlstring.html#xmlCheckUTF8">xmlCheckUTF8</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#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#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-parserInternals.html#xmlParseElementContentDecl">xmlParseElementContentDecl</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseNotationType">xmlParseNotationType</a><br />
+<a href="html/libxml-SAX2.html#xmlSAX2StartDocument">xmlSAX2StartDocument</a><br />
+<a href="html/libxml-tree.html#xmlSaveFormatFileEnc">xmlSaveFormatFileEnc</a><br />
+<a href="html/libxml-xmlerror.html#xmlStructuredErrorFunc">xmlStructuredErrorFunc</a><br />
+<a href="html/libxml-tree.html#xmlTextMerge">xmlTextMerge</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-xpath.html#xmlXPathAxisFunc">xmlXPathAxisFunc</a><br />
+<a href="html/libxml-xpointer.html#xmlXPtrNewContext">xmlXPtrNewContext</a><br />
</dd><dt>below</dt><dd><a href="html/libxml-parser.html#_xmlParserCtxt">_xmlParserCtxt</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 />
@@ -157,6 +189,7 @@ A:link, A:visited, A:active { text-decoration: underline }
<a href="html/libxml-SAX.html#initxmlDefaultSAXHandler">initxmlDefaultSAXHandler</a><br />
<a href="html/libxml-xmlmemory.html#xmlMemDisplay">xmlMemDisplay</a><br />
<a href="html/libxml-xmlmemory.html#xmlMemoryDump">xmlMemoryDump</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 />
@@ -199,6 +232,8 @@ A:link, A:visited, A:active { text-decoration: underline }
<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>builded</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_WILDCARD_BUILDED">XML_SCHEMAS_ATTRGROUP_WILDCARD_BUILDED</a><br />
</dd><dt>building</dt><dd><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 />
@@ -225,8 +260,11 @@ A:link, A:visited, A:active { text-decoration: underline }
<a href="html/libxml-parser.html#xmlRecoverFile">xmlRecoverFile</a><br />
<a href="html/libxml-parser.html#xmlRecoverMemory">xmlRecoverMemory</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-xmlschemas.html#xmlSchemaParse">xmlSchemaParse</a><br />
<a href="html/libxml-xmlreader.html#xmlTextReaderNextSibling">xmlTextReaderNextSibling</a><br />
+</dd><dt>built-in</dt><dd><a href="html/libxml-xmlschemastypes.html#xmlSchemaGetBuiltInListSimpleTypeItemType">xmlSchemaGetBuiltInListSimpleTypeItemType</a><br />
+<a href="html/libxml-xmlschemastypes.html#xmlSchemaGetBuiltInType">xmlSchemaGetBuiltInType</a><br />
</dd><dt>builtin</dt><dd><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>but</dt><dd><a href="html/libxml-parserInternals.html#IS_DIGIT_CH">IS_DIGIT_CH</a><br />
@@ -264,8 +302,8 @@ A:link, A:visited, A:active { text-decoration: underline }
<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-Q</a>
-<a href="APIchunk6.html">R-S</a>
+<a href="APIchunk5.html">O-P</a>
+<a href="APIchunk6.html">Q-S</a>
<a href="APIchunk7.html">T-U</a>
<a href="APIchunk8.html">V-a</a>
<a href="APIchunk9.html">b-b</a>
@@ -283,7 +321,8 @@ A:link, A:visited, A:active { text-decoration: underline }
<a href="APIchunk21.html">q-r</a>
<a href="APIchunk22.html">s-s</a>
<a href="APIchunk23.html">t-t</a>
-<a href="APIchunk24.html">u-w</a>
-<a href="APIchunk25.html">x-x</a>
-<a href="APIchunk26.html">y-z</a>
+<a href="APIchunk24.html">u-v</a>
+<a href="APIchunk25.html">w-w</a>
+<a href="APIchunk26.html">x-x</a>
+<a href="APIchunk27.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/doc/APIconstructors.html b/doc/APIconstructors.html
index b9314b3..08e4f33 100644
--- a/doc/APIconstructors.html
+++ b/doc/APIconstructors.html
@@ -160,6 +160,7 @@ A:link, A:visited, A:active { text-decoration: underline }
<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#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 />
@@ -198,6 +199,7 @@ A:link, A:visited, A:active { text-decoration: underline }
<a href="html/libxml-parserInternals.html#xmlParseVersionNum">xmlParseVersionNum</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-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 />
@@ -400,10 +402,13 @@ A:link, A:visited, A:active { text-decoration: underline }
<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#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 />
@@ -413,10 +418,13 @@ A:link, A:visited, A:active { text-decoration: underline }
<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 />
+</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 />
@@ -447,8 +455,7 @@ A:link, A:visited, A:active { text-decoration: underline }
<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 />
+</p><h2>Type xmlSaveCtxtPtr:</h2><p><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 />
@@ -456,7 +463,9 @@ A:link, A:visited, A:active { text-decoration: underline }
<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 xmlSchemaTypePtr:</h2><p><a href="html/libxml-xmlschemastypes.html#xmlSchemaGetPredefinedType">xmlSchemaGetPredefinedType</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 xmlSchemaValidCtxtPtr:</h2><p><a href="html/libxml-xmlschemas.html#xmlSchemaNewValidCtxt">xmlSchemaNewValidCtxt</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 />
diff --git a/doc/APIfiles.html b/doc/APIfiles.html
index 2c42142..3ca8ab3 100644
--- a/doc/APIfiles.html
+++ b/doc/APIfiles.html
@@ -427,7 +427,13 @@ A:link, A:visited, A:active { text-decoration: underline }
<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 />
@@ -446,7 +452,9 @@ A:link, A:visited, A:active { text-decoration: underline }
<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 />
@@ -578,6 +586,7 @@ A:link, A:visited, A:active { text-decoration: underline }
<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_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 />
@@ -590,8 +599,13 @@ A:link, A:visited, A:active { text-decoration: underline }
<a href="html/libxml-parser.html#XML_PARSE_NOWARNING">XML_PARSE_NOWARNING</a><br />
<a href="html/libxml-parser.html#XML_PARSE_NSCLEAN">XML_PARSE_NSCLEAN</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 />
@@ -680,6 +694,7 @@ A:link, A:visited, A:active { text-decoration: underline }
<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 />
@@ -914,10 +929,27 @@ A:link, A:visited, A:active { text-decoration: underline }
</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_WILDCARD_BUILDED">XML_SCHEMAS_ATTRGROUP_WILDCARD_BUILDED</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_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_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_DEFAULT">XML_SCHEMAS_ELEM_DEFAULT</a><br />
<a href="html/libxml-schemasInternals.html#XML_SCHEMAS_ELEM_FIXED">XML_SCHEMAS_ELEM_FIXED</a><br />
@@ -926,13 +958,68 @@ A:link, A:visited, A:active { text-decoration: underline }
<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_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_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_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_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_GLOBAL">XML_SCHEMAS_TYPE_GLOBAL</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_OWNED_ATTR_WILDCARD">XML_SCHEMAS_TYPE_OWNED_ATTR_WILDCARD</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_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 />
@@ -978,29 +1065,46 @@ A:link, A:visited, A:active { text-decoration: underline }
<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="threads" id="threads">Module threads</a>:</h2><p><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#xmlFreeRMutex">xmlFreeRMutex</a><br />
@@ -1285,6 +1389,7 @@ A:link, A:visited, A:active { text-decoration: underline }
<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 />
@@ -1884,7 +1989,43 @@ A:link, A:visited, A:active { text-decoration: underline }
<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_COMPLEXTYPE_NONAME_NOREF">XML_SCHEMAP_COMPLEXTYPE_NONAME_NOREF</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_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_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_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 />
@@ -1899,6 +2040,7 @@ A:link, A:visited, A:active { text-decoration: underline }
<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_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 />
@@ -1930,9 +2072,27 @@ A:link, A:visited, A:active { text-decoration: underline }
<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_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_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_LIST_ITEMTYPE_OR_SIMPLETYPE">XML_SCHEMAP_SRC_LIST_ITEMTYPE_OR_SIMPLETYPE</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 />
@@ -1962,9 +2122,31 @@ A:link, A:visited, A:active { text-decoration: underline }
<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_WILDCARD_INVALID_NS_MEMBER">XML_SCHEMAP_WILDCARD_INVALID_NS_MEMBER</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_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_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_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_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_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_ELEMCONT">XML_SCHEMAV_ELEMCONT</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 />
@@ -2229,7 +2411,6 @@ A:link, A:visited, A:active { text-decoration: underline }
<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 />
@@ -2284,14 +2465,19 @@ A:link, A:visited, A:active { text-decoration: underline }
<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#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#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#xmlSchemaGetPredefinedType">xmlSchemaGetPredefinedType</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#xmlSchemaValPredefTypeNode">xmlSchemaValPredefTypeNode</a><br />
<a href="html/libxml-xmlschemastypes.html#xmlSchemaValidateFacet">xmlSchemaValidateFacet</a><br />
+<a href="html/libxml-xmlschemastypes.html#xmlSchemaValidateListSimpleTypeFacet">xmlSchemaValidateListSimpleTypeFacet</a><br />
<a href="html/libxml-xmlschemastypes.html#xmlSchemaValidatePredefinedType">xmlSchemaValidatePredefinedType</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 />
diff --git a/doc/APIfunctions.html b/doc/APIfunctions.html
index 8895510..fb9a923 100644
--- a/doc/APIfunctions.html
+++ b/doc/APIfunctions.html
@@ -187,6 +187,7 @@ A:link, A:visited, A:active { text-decoration: underline }
<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 />
@@ -323,9 +324,11 @@ A:link, A:visited, A:active { text-decoration: underline }
<a href="html/libxml-SAX2.html#xmlSAX2UnparsedEntityDecl">xmlSAX2UnparsedEntityDecl</a><br />
<a href="html/libxml-parser.html#xmlSAXParseDTD">xmlSAXParseDTD</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#xmlSchemaValPredefTypeNode">xmlSchemaValPredefTypeNode</a><br />
<a href="html/libxml-xmlschemastypes.html#xmlSchemaValidateFacet">xmlSchemaValidateFacet</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#xmlSearchNs">xmlSearchNs</a><br />
<a href="html/libxml-tree.html#xmlSearchNsByHref">xmlSearchNsByHref</a><br />
@@ -569,6 +572,8 @@ A:link, A:visited, A:active { text-decoration: underline }
<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-xmlschemastypes.html#xmlSchemaValidateListSimpleTypeFacet">xmlSchemaValidateListSimpleTypeFacet</a><br />
+</p><h2>Type unsigned long *:</h2><p><a href="html/libxml-xmlschemastypes.html#xmlSchemaValidateListSimpleTypeFacet">xmlSchemaValidateListSimpleTypeFacet</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 />
@@ -903,7 +908,6 @@ A:link, A:visited, A:active { text-decoration: underline }
<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-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 />
@@ -975,6 +979,7 @@ A:link, A:visited, A:active { text-decoration: underline }
<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 />
@@ -988,6 +993,7 @@ A:link, A:visited, A:active { text-decoration: underline }
<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 />
@@ -1494,6 +1500,8 @@ A:link, A:visited, A:active { text-decoration: underline }
<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 />
@@ -1621,6 +1629,8 @@ A:link, A:visited, A:active { text-decoration: underline }
<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 />
@@ -1726,6 +1736,7 @@ A:link, A:visited, A:active { text-decoration: underline }
</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#xmlSchemaValidateFacet">xmlSchemaValidateFacet</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#xmlSchemaParse">xmlSchemaParse</a><br />
@@ -1735,6 +1746,8 @@ A:link, A:visited, A:active { text-decoration: underline }
<a href="html/libxml-xmlschemas.html#xmlSchemaNewValidCtxt">xmlSchemaNewValidCtxt</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#xmlSchemaValidateFacet">xmlSchemaValidateFacet</a><br />
<a href="html/libxml-xmlschemastypes.html#xmlSchemaValidatePredefinedType">xmlSchemaValidatePredefinedType</a><br />
@@ -1743,6 +1756,7 @@ A:link, A:visited, A:active { text-decoration: underline }
<a href="html/libxml-xmlschemastypes.html#xmlSchemaValidateFacet">xmlSchemaValidateFacet</a><br />
</p><h2>Type xmlSchemaValPtr *:</h2><p><a href="html/libxml-xmlschemastypes.html#xmlSchemaValPredefTypeNode">xmlSchemaValPredefTypeNode</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 />
</p><h2>Type xmlSchemaValidCtxtPtr:</h2><p><a href="html/libxml-xmlschemas.html#xmlSchemaFreeValidCtxt">xmlSchemaFreeValidCtxt</a><br />
<a href="html/libxml-xmlschemas.html#xmlSchemaSetValidErrors">xmlSchemaSetValidErrors</a><br />
<a href="html/libxml-xmlschemas.html#xmlSchemaValidateDoc">xmlSchemaValidateDoc</a><br />
@@ -1751,6 +1765,7 @@ A:link, A:visited, A:active { text-decoration: underline }
<a href="html/libxml-xmlschemas.html#xmlSchemaSetValidErrors">xmlSchemaSetValidErrors</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 xmlSchemaWildcardPtr:</h2><p><a href="html/libxml-schemasInternals.html#xmlSchemaFreeWildcard">xmlSchemaFreeWildcard</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 />
diff --git a/doc/APIsymbols.html b/doc/APIsymbols.html
index 8451e0d..5a90de5 100644
--- a/doc/APIsymbols.html
+++ b/doc/APIsymbols.html
@@ -477,6 +477,7 @@ A:link, A:visited, A:active { text-decoration: underline }
<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_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 />
@@ -489,8 +490,13 @@ A:link, A:visited, A:active { text-decoration: underline }
<a href="html/libxml-parser.html#XML_PARSE_NOWARNING">XML_PARSE_NOWARNING</a><br />
<a href="html/libxml-parser.html#XML_PARSE_NSCLEAN">XML_PARSE_NSCLEAN</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-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 />
@@ -687,7 +693,43 @@ A:link, A:visited, A:active { text-decoration: underline }
<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_COMPLEXTYPE_NONAME_NOREF">XML_SCHEMAP_COMPLEXTYPE_NONAME_NOREF</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_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_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_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 />
@@ -702,6 +744,7 @@ A:link, A:visited, A:active { text-decoration: underline }
<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_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 />
@@ -733,9 +776,27 @@ A:link, A:visited, A:active { text-decoration: underline }
<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_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_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_LIST_ITEMTYPE_OR_SIMPLETYPE">XML_SCHEMAP_SRC_LIST_ITEMTYPE_OR_SIMPLETYPE</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 />
@@ -765,13 +826,31 @@ A:link, A:visited, A:active { text-decoration: underline }
<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_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_WILDCARD_BUILDED">XML_SCHEMAS_ATTRGROUP_WILDCARD_BUILDED</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_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_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_DEFAULT">XML_SCHEMAS_ELEM_DEFAULT</a><br />
<a href="html/libxml-schemasInternals.html#XML_SCHEMAS_ELEM_FIXED">XML_SCHEMAS_ELEM_FIXED</a><br />
@@ -780,6 +859,8 @@ A:link, A:visited, A:active { text-decoration: underline }
<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_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 />
@@ -810,12 +891,86 @@ A:link, A:visited, A:active { text-decoration: underline }
<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_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_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_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_GLOBAL">XML_SCHEMAS_TYPE_GLOBAL</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_OWNED_ATTR_WILDCARD">XML_SCHEMAS_TYPE_OWNED_ATTR_WILDCARD</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_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_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_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_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_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_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_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_ELEMCONT">XML_SCHEMAV_ELEMCONT</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 />
@@ -1020,10 +1175,15 @@ A:link, A:visited, A:active { text-decoration: underline }
<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 />
@@ -1299,6 +1459,7 @@ A:link, A:visited, A:active { text-decoration: underline }
<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 />
@@ -1856,6 +2017,9 @@ A:link, A:visited, A:active { text-decoration: underline }
<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-tree.html#xmlOutputBufferPtr">xmlOutputBufferPtr</a><br />
@@ -1944,6 +2108,9 @@ A:link, A:visited, A:active { text-decoration: underline }
<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 />
@@ -1958,6 +2125,7 @@ A:link, A:visited, A:active { text-decoration: underline }
<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 />
@@ -2139,7 +2307,6 @@ A:link, A:visited, A:active { text-decoration: underline }
<a href="html/libxml-globals.html#xmlSaveNoEmptyTags">xmlSaveNoEmptyTags</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 />
@@ -2152,15 +2319,20 @@ A:link, A:visited, A:active { text-decoration: underline }
<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-schemasInternals.html#xmlSchemaContentType">xmlSchemaContentType</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 />
@@ -2168,8 +2340,12 @@ A:link, A:visited, A:active { text-decoration: underline }
<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#xmlSchemaGetPredefinedType">xmlSchemaGetPredefinedType</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#xmlSchemaNewDocParserCtxt">xmlSchemaNewDocParserCtxt</a><br />
<a href="html/libxml-xmlschemastypes.html#xmlSchemaNewFacet">xmlSchemaNewFacet</a><br />
<a href="html/libxml-xmlschemas.html#xmlSchemaNewMemParserCtxt">xmlSchemaNewMemParserCtxt</a><br />
@@ -2184,20 +2360,28 @@ A:link, A:visited, A:active { text-decoration: underline }
<a href="html/libxml-xmlschemas.html#xmlSchemaSetParserErrors">xmlSchemaSetParserErrors</a><br />
<a href="html/libxml-xmlschemas.html#xmlSchemaSetValidErrors">xmlSchemaSetValidErrors</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-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#xmlSchemaValidCtxtPtr">xmlSchemaValidCtxtPtr</a><br />
<a href="html/libxml-xmlschemas.html#xmlSchemaValidError">xmlSchemaValidError</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#xmlSchemaValidateListSimpleTypeFacet">xmlSchemaValidateListSimpleTypeFacet</a><br />
<a href="html/libxml-xmlschemastypes.html#xmlSchemaValidatePredefinedType">xmlSchemaValidatePredefinedType</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#xmlSchemaValidityWarningFunc">xmlSchemaValidityWarningFunc</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-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 />
@@ -2424,7 +2608,9 @@ A:link, A:visited, A:active { text-decoration: underline }
<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 />
diff --git a/doc/FAQ.html b/doc/FAQ.html
index 39f6d7a..c8b7330 100644
--- a/doc/FAQ.html
+++ b/doc/FAQ.html
@@ -217,7 +217,8 @@ pnode=pxmlDoc-&gt;children-&gt;children;</pre>
<p>Website: <a
href="http://pmade.org/pjones/software/xmlwrapp/">http://pmade.org/pjones/software/xmlwrapp/</a></p>
</li>
- --></ul></li>
+ -->
+ </ul></li>
<li>How to validate a document a posteriori ?
<p>It is possible to validate documents which had not been validated at
initial parsing time or documents which have been built from scratch
diff --git a/doc/Makefile.am b/doc/Makefile.am
index e2d2fa6..adb3225 100644
--- a/doc/Makefile.am
+++ b/doc/Makefile.am
@@ -28,10 +28,19 @@ man_MANS = xmllint.1 xmlcatalog.1
all: web $(top_srcdir)/NEWS libxml2.xsa $(man_MANS)
-api: libxml2-api.xml libxml2-refs.xml $(APIPAGES) $(srcdir)/html/index.html $(WIN32_DIR)/libxml2.def.src
+api: libxml2-api.xml libxml2-refs.xml $(APIPAGES) $(srcdir)/html/index.html $(WIN32_DIR)/libxml2.def.src ../elfgcchack.h
web: $(PAGES)
+../elfgcchack.h: $(srcdir)/elfgcchack.xsl $(srcdir)/libxml2-api.xml
+ -@(if [ -x $(bindir)/xsltproc ] ; then \
+ echo "Rebuilding the elfgcchack.h header" ; \
+ $(bindir)/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 site.xsl
-@(if [ -x $(bindir)/xsltproc ] ; then \
echo "Rebuilding the HTML Web pages from xml.html" ; \
diff --git a/doc/Makefile.in b/doc/Makefile.in
index 5b90845..4a509db 100644
--- a/doc/Makefile.in
+++ b/doc/Makefile.in
@@ -625,10 +625,19 @@ uninstall-man: uninstall-man1
all: web $(top_srcdir)/NEWS libxml2.xsa $(man_MANS)
-api: libxml2-api.xml libxml2-refs.xml $(APIPAGES) $(srcdir)/html/index.html $(WIN32_DIR)/libxml2.def.src
+api: libxml2-api.xml libxml2-refs.xml $(APIPAGES) $(srcdir)/html/index.html $(WIN32_DIR)/libxml2.def.src ../elfgcchack.h
web: $(PAGES)
+../elfgcchack.h: $(srcdir)/elfgcchack.xsl $(srcdir)/libxml2-api.xml
+ -@(if [ -x $(bindir)/xsltproc ] ; then \
+ echo "Rebuilding the elfgcchack.h header" ; \
+ $(bindir)/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 site.xsl
-@(if [ -x $(bindir)/xsltproc ] ; then \
echo "Rebuilding the HTML Web pages from xml.html" ; \
diff --git a/doc/apibuild.py b/doc/apibuild.py
index 688403f..e398985 100755
--- a/doc/apibuild.py
+++ b/doc/apibuild.py
@@ -12,6 +12,8 @@ import string
import glob
debug=0
+#debugsym='ignorableWhitespaceSAXFunc'
+debugsym=None
#
# C parser analysis code
@@ -29,6 +31,7 @@ ignored_files = {
"testOOMlib.c": "out of memory tester",
"rngparser.c": "not yet integrated",
"rngparser.h": "not yet integrated",
+ "elfgcchack.h": "not a normal header",
}
ignored_words = {
@@ -44,6 +47,7 @@ ignored_words = {
"XSLTCALL": (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"),
@@ -65,7 +69,7 @@ def uniq(items):
class identifier:
def __init__(self, name, module=None, type=None, lineno = 0,
- info=None, extra=None):
+ info=None, extra=None, conditionals = None):
self.name = name
self.module = module
self.type = type
@@ -73,6 +77,13 @@ class identifier:
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)
@@ -84,6 +95,8 @@ class identifier:
r = r + " " + `self.info`
if self.extra != None:
r = r + " " + `self.extra`
+ if self.conditionals != None:
+ r = r + " " + `self.conditionals`
return r
@@ -99,6 +112,11 @@ class identifier:
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
@@ -114,8 +132,14 @@ class identifier:
return self.extra
def get_static(self):
return self.static
-
- def update(self, module, type = None, info = None, extra=None):
+ def get_conditionals(self):
+ return self.conditionals
+
+ def update(self, module, type = None, info = None, extra=None,
+ conditionals=None):
+ if self.name == debugsym:
+ print "=> update %s : %s" % (debugsym, (module, type, info,
+ extra, conditionals))
if module != None and self.module == None:
self.set_module(module)
if type != None and self.type == None:
@@ -124,6 +148,8 @@ class identifier:
self.set_info(info)
if extra != None:
self.set_extra(extra)
+ if conditionals != None:
+ self.set_conditionals(conditionals)
class index:
@@ -140,15 +166,15 @@ class index:
self.references = {}
self.info = {}
- def add_ref(self, name, module, static, type, lineno, info=None, extra=None):
+ def add_ref(self, name, 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(module, type, lineno, info, extra)
+ d.update(module, type, lineno, info, extra, conditionals)
except:
- d = identifier(name, module, type, lineno, info, extra)
+ d = identifier(name, module, type, lineno, info, extra, conditionals)
self.identifiers[name] = d
if d != None and static == 1:
@@ -157,15 +183,20 @@ class index:
if d != None and name != None and type != None:
self.references[name] = d
- def add(self, name, module, static, type, lineno, info=None, extra=None):
+ if name == debugsym:
+ print "New ref: %s" % (d)
+
+ return d
+
+ def add(self, name, 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(module, type, lineno, info, extra)
+ d.update(module, type, lineno, info, extra, conditionals)
except:
- d = identifier(name, module, type, lineno, info, extra)
+ d = identifier(name, module, type, lineno, info, extra, conditionals)
self.identifiers[name] = d
if d != None and static == 1:
@@ -190,6 +221,10 @@ class index:
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):
@@ -514,6 +549,8 @@ class CParser:
self.comment = None
self.collect_ref = 0
self.no_error = 0
+ self.conditionals = []
+ self.defines = []
def collect_references(self):
self.collect_ref = 1
@@ -529,12 +566,12 @@ class CParser:
def index_add(self, name, module, static, type, info=None, extra = None):
self.index.add(name, module, static, type, self.lineno(),
- info, extra)
+ info, extra, self.conditionals)
def index_add_ref(self, name, module, static, type, info=None,
extra = None):
self.index.add_ref(name, module, static, type, self.lineno(),
- info, extra)
+ info, extra, self.conditionals)
def warning(self, msg):
if self.no_error:
@@ -787,6 +824,8 @@ class CParser:
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()
@@ -818,6 +857,22 @@ class CParser:
self.index_add(name, self.filename, not self.is_header,
"macro", info)
return token
+ if name == "#ifdef" and self.is_header:
+ try:
+ self.defines.append(self.lexer.tokens[0][1])
+ if string.find(self.lexer.tokens[0][1], 'ENABLED') != -1:
+ self.conditionals.append(self.lexer.tokens[0][1])
+# print self.conditionals
+# print self.defines
+ except:
+ pass
+ if name == "#endif" and self.is_header:
+ if self.conditionals != [] and self.defines != [] and \
+ self.defines[-1] == self.conditionals[-1]:
+ self.conditionals = self.conditionals[:-1]
+ self.defines = self.defines[:-1]
+# print self.defines
+# print self.conditionals
token = self.lexer.token()
while token != None and token[0] == 'preproc' and \
token[1][0] != '#':
@@ -1581,8 +1636,14 @@ class docBuilder:
def serialize_function(self, output, name):
id = self.idx.functions[name]
+ if name == debugsym:
+ print "=>", id
+
output.write(" <%s name='%s' file='%s'>\n" % (id.type, name,
self.modulename_file(id.module)))
+ if id.conditionals != None:
+ for cond in id.conditionals:
+ output.write(" <cond>%s</cond>\n"% (cond));
try:
(ret, params, desc) = id.info
output.write(" <info>%s</info>\n" % (escape(desc)))
@@ -1910,4 +1971,8 @@ def parse(filename):
return idx
if __name__ == "__main__":
- rebuild()
+ if len(sys.argv) > 1:
+ debug = 1
+ parse(sys.argv[1])
+ else:
+ rebuild()
diff --git a/doc/elfgcchack.xsl b/doc/elfgcchack.xsl
new file mode 100644
index 0000000..109ce0c
--- /dev/null
+++ b/doc/elfgcchack.xsl
@@ -0,0 +1,121 @@
+<?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="ISO-8859-1"/>
+
+ <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
+ */
+
+#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/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"
+
+/* special hot spot not exported ones */
+
+extern __typeof (__xmlGenericError) __xmlGenericError__internal_alias __attribute((visibility("hidden")));
+extern __typeof (__xmlGenericError) __xmlGenericError __attribute((alias("__xmlGenericError__internal_alias")));
+#define __xmlGenericError __xmlGenericError__internal_alias
+
+extern __typeof (__xmlGenericErrorContext) __xmlGenericErrorContext__internal_alias __attribute((visibility("hidden")));
+extern __typeof (__xmlGenericErrorContext) __xmlGenericErrorContext __attribute((alias("__xmlGenericErrorContext__internal_alias")));
+#define __xmlGenericErrorContext __xmlGenericErrorContext__internal_alias
+
+/* list generated from libxml2-api.xml */
+
+</xsl:text>
+ <xsl:apply-templates select="/api/symbols/function"/>
+ </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')">
+ <xsl:variable name="alias" select="concat($str, '__internal_alias')"/>
+ <xsl:apply-templates select="cond"/>
+ <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>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>")));
+</xsl:text>
+ <xsl:text>#define </xsl:text>
+ <xsl:value-of select="$str"/>
+ <xsl:text> </xsl:text>
+ <xsl:value-of select="$alias"/>
+ <xsl:text>
+</xsl:text>
+ <xsl:apply-templates select="cond" mode="end"/>
+ <xsl:text>
+</xsl:text>
+ </xsl:if>
+ </xsl:template>
+ <xsl:template match="cond">
+ <xsl:text>#ifdef </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/doc/examples/Makefile.am b/doc/examples/Makefile.am
index 0d4bf13..26d143f 100644
--- a/doc/examples/Makefile.am
+++ b/doc/examples/Makefile.am
@@ -93,6 +93,7 @@ valgrind:
$(MAKE) CHECKER='valgrind -q' tests
tests: $(noinst_PROGRAMS)
+ @(echo '## examples regression tests')
@(echo > .memdump)
@($(CHECKER) ././xpath1 test3.xml '//child2' > xpath1.tmp ; diff xpath1.tmp xpath1.res ; rm xpath1.tmp)
@(grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0" ; exit 0)
diff --git a/doc/examples/Makefile.in b/doc/examples/Makefile.in
index 237a07a..d2cd675 100644
--- a/doc/examples/Makefile.in
+++ b/doc/examples/Makefile.in
@@ -689,6 +689,7 @@ valgrind:
$(MAKE) CHECKER='valgrind -q' tests
tests: $(noinst_PROGRAMS)
+ @(echo '## examples regression tests')
@(echo > .memdump)
@($(CHECKER) ././xpath1 test3.xml '//child2' > xpath1.tmp ; diff xpath1.tmp xpath1.res ; rm xpath1.tmp)
@(grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0" ; exit 0)
diff --git a/doc/examples/examples.xml b/doc/examples/examples.xml
index 03f2db7..0d45494 100644
--- a/doc/examples/examples.xml
+++ b/doc/examples/examples.xml
@@ -309,10 +309,10 @@
<include>&lt;libxml/parser.h&gt;</include>
</includes>
<uses>
- <function line='93' file='parser' name='xmlFreeParserCtxt'/>
- <function line='85' file='parser' name='xmlParseChunk'/>
- <function line='66' file='parser' name='xmlCreatePushParserCtxt'/>
- <typedef line='44' file='tree' name='xmlParserCtxtPtr'/>
+ <function line='94' file='parser' name='xmlFreeParserCtxt'/>
+ <function line='86' file='parser' name='xmlParseChunk'/>
+ <function line='67' file='parser' name='xmlCreatePushParserCtxt'/>
+ <typedef line='45' file='tree' name='xmlParserCtxtPtr'/>
</uses>
</example>
<example filename='io2.c'>
@@ -327,13 +327,13 @@
<include>&lt;libxml/parser.h&gt;</include>
</includes>
<uses>
- <function line='27' file='tree' name='xmlNodeSetContent'/>
- <function line='34' file='tree' name='xmlDocDumpFormatMemory'/>
- <variable line='40' file='globals' name='xmlFree'/>
- <function line='28' file='tree' name='xmlDocSetRootElement'/>
- <typedef line='17' file='tree' name='xmlNodePtr'/>
- <function line='25' file='tree' name='xmlNewDoc'/>
- <function line='26' file='tree' name='xmlNewNode'/>
+ <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='19' file='tree' name='xmlNodePtr'/>
+ <function line='27' file='tree' name='xmlNewDoc'/>
+ <function line='28' file='tree' name='xmlNewNode'/>
</uses>
</example>
<example filename='xpath2.c'>
diff --git a/doc/examples/index.py b/doc/examples/index.py
index 466cfc9..944c181 100755
--- a/doc/examples/index.py
+++ b/doc/examples/index.py
@@ -251,6 +251,7 @@ install-data-local:
example, example)
Makefile = Makefile + "valgrind: \n\t$(MAKE) CHECKER='valgrind -q' tests\n\n"
Makefile = Makefile + "tests: $(noinst_PROGRAMS)\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)
diff --git a/doc/examples/io2.c b/doc/examples/io2.c
index 59dede2..2659ef1 100644
--- a/doc/examples/io2.c
+++ b/doc/examples/io2.c
@@ -11,35 +11,48 @@
#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 ((char *)xmlbuff);
-
- /*
- * Free associated memory.
- */
- xmlFree (xmlbuff);
- xmlFreeDoc(doc);
-
- return(0);
+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((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/doc/examples/parse4.c b/doc/examples/parse4.c
index fe57894..3e28056 100644
--- a/doc/examples/parse4.c
+++ b/doc/examples/parse4.c
@@ -14,6 +14,7 @@
#include <libxml/parser.h>
#include <libxml/tree.h>
+#ifdef LIBXML_PUSH_ENABLED
static FILE *desc;
/**
@@ -134,3 +135,9 @@ int main(int argc, char **argv) {
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/doc/examples/testWriter.c b/doc/examples/testWriter.c
index 02f9eb7..c5e9c39 100644
--- a/doc/examples/testWriter.c
+++ b/doc/examples/testWriter.c
@@ -80,7 +80,7 @@ testXmlwriterFilename(const char *uri)
}
/* Start the document with the xml default for the version,
- * encoding ISO 8858-1 and the default for the standalone
+ * encoding ISO 8859-1 and the default for the standalone
* declaration. */
rc = xmlTextWriterStartDocument(writer, NULL, MY_ENCODING, NULL);
if (rc < 0) {
@@ -359,7 +359,7 @@ testXmlwriterMemory(const char *file)
}
/* Start the document with the xml default for the version,
- * encoding ISO 8858-1 and the default for the standalone
+ * encoding ISO 8859-1 and the default for the standalone
* declaration. */
rc = xmlTextWriterStartDocument(writer, NULL, MY_ENCODING, NULL);
if (rc < 0) {
@@ -636,7 +636,7 @@ testXmlwriterDoc(const char *file)
}
/* Start the document with the xml default for the version,
- * encoding ISO 8858-1 and the default for the standalone
+ * encoding ISO 8859-1 and the default for the standalone
* declaration. */
rc = xmlTextWriterStartDocument(writer, NULL, MY_ENCODING, NULL);
if (rc < 0) {
@@ -908,7 +908,7 @@ testXmlwriterTree(const char *file)
}
/* Start the document with the xml default for the version,
- * encoding ISO 8858-1 and the default for the standalone
+ * encoding ISO 8859-1 and the default for the standalone
* declaration. */
rc = xmlTextWriterStartDocument(writer, NULL, MY_ENCODING, NULL);
if (rc < 0) {
diff --git a/doc/html/libxml-SAX2.html b/doc/html/libxml-SAX2.html
index 93c18c6..fc49602 100644
--- a/doc/html/libxml-SAX2.html
+++ b/doc/html/libxml-SAX2.html
@@ -122,7 +122,7 @@ A:link, A:visited, A:active { text-decoration: underline }
<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. Note that this may not be a good thing to do from a library it is better to use xmlSAXVersion() to set up specifically the version for a given parsing context.</p>
+</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/doc/html/libxml-globals.html b/doc/html/libxml-globals.html
index 6df3793..e5daec8 100644
--- a/doc/html/libxml-globals.html
+++ b/doc/html/libxml-globals.html
@@ -19,6 +19,14 @@ void <a href="#xmlDeregisterNodeFunc">xmlDeregisterNodeFunc</a> (<a href="libxm
</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)
@@ -32,7 +40,9 @@ void <a href="#xmlRegisterNodeFunc">xmlRegisterNodeFunc</a> (<a href="libxml-tr
<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>
@@ -72,6 +82,8 @@ void <a href="#xmlRegisterNodeFunc">xmlRegisterNodeFunc</a> (<a href="libxml-tr
<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
}</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 />
@@ -83,7 +95,17 @@ void xmlDeregisterNodeFunc (<a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a
</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="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 />
+<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></p><div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>URI</tt></i>:</span></td><td></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></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></p><div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>URI</tt></i>:</span></td><td></td></tr><tr><td><span class="term"><i><tt>enc</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><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)
@@ -106,9 +128,13 @@ void xmlRegisterNodeFunc (<a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a>
</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="xmlThrDefParserDebugEntities" id="xmlThrDefParserDebugEntities"></a>Function: xmlThrDefParserDebugEntities</h3><pre class="programlisting">int xmlThrDefParserDebugEntities (int v)<br />
+<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>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="xmlThrDefPedanticParserDefaultValue" id="xmlThrDefPedanticParserDefaultValue"></a>Function: xmlThrDefPedanticParserDefaultValue</h3><pre class="programlisting">int xmlThrDefPedanticParserDefaultValue (int v)<br />
+<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>
diff --git a/doc/html/libxml-parser.html b/doc/html/libxml-parser.html
index acbb5cc..4bed32b 100644
--- a/doc/html/libxml-parser.html
+++ b/doc/html/libxml-parser.html
@@ -11,6 +11,7 @@ A:link, A:visited, A:active { text-decoration: underline }
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="#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>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://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"><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="#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
@@ -208,6 +209,14 @@ void <a href="#xmlParserInputDeallocate">xmlParserInputDeallocate</a> (<a href="
<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
diff --git a/doc/html/libxml-schemasInternals.html b/doc/html/libxml-schemasInternals.html
index 9279fb9..4e9c30f 100644
--- a/doc/html/libxml-schemasInternals.html
+++ b/doc/html/libxml-schemasInternals.html
@@ -10,49 +10,86 @@ 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="#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>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://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"><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-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>internal interfaces for the XML Schemas handling and schema validity checking </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_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_ELEM_ABSTRACT">XML_SCHEMAS_ELEM_ABSTRACT</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_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_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_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_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_MIXED">XML_SCHEMAS_TYPE_MIXED</a></pre><pre class="programlisting">Structure <a href="#xmlSchemaAnnot">xmlSchemaAnnot</a><br />struct _xmlSchemaAnnot
+ </style><title>Module schemasInternals from libxml2</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>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://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"><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-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>internal interfaces for the XML Schemas handling and schema validity checking </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_WILDCARD_BUILDED">XML_SCHEMAS_ATTRGROUP_WILDCARD_BUILDED</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_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_ELEM_ABSTRACT">XML_SCHEMAS_ELEM_ABSTRACT</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_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_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_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_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_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_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_GLOBAL">XML_SCHEMAS_TYPE_GLOBAL</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_OWNED_ATTR_WILDCARD">XML_SCHEMAS_TYPE_OWNED_ATTR_WILDCARD</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_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</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</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</p>
+<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> wildcard has been already builded.</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 already builded.</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></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>The <a href="libxml-SAX.html#attribute">attribute</a> is prohibited.</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_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_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_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_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</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_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</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 shema 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 shema 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 shema 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 shema has "union" in the set of finalDefault.</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>the shemas requires qualified attributes</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>the shemas requires qualified elements</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></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_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></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_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_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_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_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".</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_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
@@ -83,13 +120,18 @@ The content of this structure is not made public by the API.
<a href="libxml-schemasInternals.html#xmlSchemaAnnotPtr">xmlSchemaAnnotPtr</a> annot
<a href="libxml-schemasInternals.html#xmlSchemaAttributePtr">xmlSchemaAttributePtr</a> attributes
<a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> node
+ int flags
+ <a href="libxml-schemasInternals.html#xmlSchemaWildcardPtr">xmlSchemaWildcardPtr</a> attributeWildcard
+}</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
+ <a name="XML_SCHEMA_CONTENT_MIXED_OR_ELEMENTS" id="XML_SCHEMA_CONTENT_MIXED_OR_ELEMENTS">XML_SCHEMA_CONTENT_MIXED_OR_ELEMENTS</a> = 5 : obsolete, not used
<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
}
@@ -128,6 +170,9 @@ The content of this structure is not made public by the API.
int whitespace
<a href="libxml-schemasInternals.html#xmlSchemaValPtr">xmlSchemaValPtr</a> val
<a href="libxml-xmlregexp.html#xmlRegexpPtr">xmlRegexpPtr</a> regexp
+}</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
@@ -154,8 +199,16 @@ The content of this structure is not made public by the API.
<a href="libxml-schemasInternals.html#xmlSchemaFacetPtr">xmlSchemaFacetPtr</a> facets
struct _xmlSchemaType * redef : possible redefinitions for the type
int recurse
+ <a href="libxml-schemasInternals.html#xmlSchemaAttributeLinkPtr">xmlSchemaAttributeLinkPtr</a> attributeUses
+ <a href="libxml-schemasInternals.html#xmlSchemaWildcardPtr">xmlSchemaWildcardPtr</a> attributeWildcard
+ int builtInType
+ <a href="libxml-schemasInternals.html#xmlSchemaTypeLinkPtr">xmlSchemaTypeLinkPtr</a> memberTypes
+ <a href="libxml-schemasInternals.html#xmlSchemaFacetLinkPtr">xmlSchemaFacetLinkPtr</a> facetSet
+}</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 typ
}</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 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
@@ -191,6 +244,72 @@ The content of this structure is not made public by the API.
}
</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
+ <a href="libxml-schemasInternals.html#xmlSchemaAnnotPtr">xmlSchemaAnnotPtr</a> annot
+ <a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> node
+ int minOccurs
+ int maxOccurs
+ 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><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>
+<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/doc/html/libxml-tree.html b/doc/html/libxml-tree.html
index 34743da..87d0459 100644
--- a/doc/html/libxml-tree.html
+++ b/doc/html/libxml-tree.html
@@ -521,6 +521,7 @@ A:link, A:visited, A:active { text-decoration: underline }
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
}</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
diff --git a/doc/html/libxml-uri.html b/doc/html/libxml-uri.html
index aecf0e5..c0af2aa 100644
--- a/doc/html/libxml-uri.html
+++ b/doc/html/libxml-uri.html
@@ -12,7 +12,8 @@ A:link, A:visited, A:active { text-decoration: underline }
pre.programlisting {border-style: double;background: #EECFA1}
</style><title>Module uri from libxml2</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>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://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"><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="#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><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>
@@ -36,7 +37,9 @@ A:link, A:visited, A:active { text-decoration: underline }
char * query : the query string
char * fragment : the fragment identifier
int cleanup : parsing potentially unclean URI
-}</pre><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><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 wierd 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>
diff --git a/doc/html/libxml-xmlerror.html b/doc/html/libxml-xmlerror.html
index 0d04627..ac0cff7 100644
--- a/doc/html/libxml-xmlerror.html
+++ b/doc/html/libxml-xmlerror.html
@@ -549,6 +549,25 @@ void <a href="#xmlStructuredErrorFunc">xmlStructuredErrorFunc</a> (void * userD
<a name="XML_SCHEMAP_MISSING_SIMPLETYPE_CHILD" id="XML_SCHEMAP_MISSING_SIMPLETYPE_CHILD">XML_SCHEMAP_MISSING_SIMPLETYPE_CHILD</a> = 1779 : 1778
<a name="XML_SCHEMAP_INVALID_ATTR_NAME" id="XML_SCHEMAP_INVALID_ATTR_NAME">XML_SCHEMAP_INVALID_ATTR_NAME</a> = 1780 : 1779
<a name="XML_SCHEMAP_REF_AND_CONTENT" id="XML_SCHEMAP_REF_AND_CONTENT">XML_SCHEMAP_REF_AND_CONTENT</a> = 1781 : 1780
+ <a name="XML_SCHEMAP_CT_PROPS_CORRECT_1" id="XML_SCHEMAP_CT_PROPS_CORRECT_1">XML_SCHEMAP_CT_PROPS_CORRECT_1</a> = 1782 : 1781
+ <a name="XML_SCHEMAP_CT_PROPS_CORRECT_2" id="XML_SCHEMAP_CT_PROPS_CORRECT_2">XML_SCHEMAP_CT_PROPS_CORRECT_2</a> = 1783 : 1782
+ <a name="XML_SCHEMAP_CT_PROPS_CORRECT_3" id="XML_SCHEMAP_CT_PROPS_CORRECT_3">XML_SCHEMAP_CT_PROPS_CORRECT_3</a> = 1784 : 1783
+ <a name="XML_SCHEMAP_CT_PROPS_CORRECT_4" id="XML_SCHEMAP_CT_PROPS_CORRECT_4">XML_SCHEMAP_CT_PROPS_CORRECT_4</a> = 1785 : 1784
+ <a name="XML_SCHEMAP_CT_PROPS_CORRECT_5" id="XML_SCHEMAP_CT_PROPS_CORRECT_5">XML_SCHEMAP_CT_PROPS_CORRECT_5</a> = 1786 : 1785
+ <a name="XML_SCHEMAP_DERIVATION_OK_RESTRICTION_1" id="XML_SCHEMAP_DERIVATION_OK_RESTRICTION_1">XML_SCHEMAP_DERIVATION_OK_RESTRICTION_1</a> = 1787 : 1786
+ <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 : 1787
+ <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 : 1788
+ <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 : 1789
+ <a name="XML_SCHEMAP_DERIVATION_OK_RESTRICTION_3" id="XML_SCHEMAP_DERIVATION_OK_RESTRICTION_3">XML_SCHEMAP_DERIVATION_OK_RESTRICTION_3</a> = 1791 : 1790
+ <a name="XML_SCHEMAP_WILDCARD_INVALID_NS_MEMBER" id="XML_SCHEMAP_WILDCARD_INVALID_NS_MEMBER">XML_SCHEMAP_WILDCARD_INVALID_NS_MEMBER</a> = 1792 : 1791
+ <a name="XML_SCHEMAP_INTERSECTION_NOT_EXPRESSIBLE" id="XML_SCHEMAP_INTERSECTION_NOT_EXPRESSIBLE">XML_SCHEMAP_INTERSECTION_NOT_EXPRESSIBLE</a> = 1793 : 1792
+ <a name="XML_SCHEMAP_UNION_NOT_EXPRESSIBLE" id="XML_SCHEMAP_UNION_NOT_EXPRESSIBLE">XML_SCHEMAP_UNION_NOT_EXPRESSIBLE</a> = 1794 : 1793
+ <a name="XML_SCHEMAP_SRC_IMPORT_3_1" id="XML_SCHEMAP_SRC_IMPORT_3_1">XML_SCHEMAP_SRC_IMPORT_3_1</a> = 1795 : 1794
+ <a name="XML_SCHEMAP_SRC_IMPORT_3_2" id="XML_SCHEMAP_SRC_IMPORT_3_2">XML_SCHEMAP_SRC_IMPORT_3_2</a> = 1796 : 1795
+ <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 : 1796
+ <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 : 1797
+ <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 : 1798
+ <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 : 1799
<a name="XML_SCHEMAV_NOROOT" id="XML_SCHEMAV_NOROOT">XML_SCHEMAV_NOROOT</a> = 1800
<a name="XML_SCHEMAV_UNDECLAREDELEM" id="XML_SCHEMAV_UNDECLAREDELEM">XML_SCHEMAV_UNDECLAREDELEM</a> = 1801 : 1801
<a name="XML_SCHEMAV_NOTTOPLEVEL" id="XML_SCHEMAV_NOTTOPLEVEL">XML_SCHEMAV_NOTTOPLEVEL</a> = 1802 : 1802
@@ -572,6 +591,27 @@ void <a href="#xmlStructuredErrorFunc">xmlStructuredErrorFunc</a> (void * userD
<a name="XML_SCHEMAV_ATTRINVALID" id="XML_SCHEMAV_ATTRINVALID">XML_SCHEMAV_ATTRINVALID</a> = 1820 : 1820
<a name="XML_SCHEMAV_VALUE" id="XML_SCHEMAV_VALUE">XML_SCHEMAV_VALUE</a> = 1821 : 1821
<a name="XML_SCHEMAV_FACET" id="XML_SCHEMAV_FACET">XML_SCHEMAV_FACET</a> = 1822 : 1822
+ <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> = 1823 : 1823
+ <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> = 1824 : 1824
+ <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> = 1825 : 1825
+ <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> = 1826 : 1826
+ <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> = 1827 : 1827
+ <a name="XML_SCHEMAV_CVC_FACET_VALID" id="XML_SCHEMAV_CVC_FACET_VALID">XML_SCHEMAV_CVC_FACET_VALID</a> = 1828 : 1828
+ <a name="XML_SCHEMAV_CVC_LENGTH_VALID" id="XML_SCHEMAV_CVC_LENGTH_VALID">XML_SCHEMAV_CVC_LENGTH_VALID</a> = 1829 : 1829
+ <a name="XML_SCHEMAV_CVC_MINLENGTH_VALID" id="XML_SCHEMAV_CVC_MINLENGTH_VALID">XML_SCHEMAV_CVC_MINLENGTH_VALID</a> = 1830 : 1830
+ <a name="XML_SCHEMAV_CVC_MAXLENGTH_VALID" id="XML_SCHEMAV_CVC_MAXLENGTH_VALID">XML_SCHEMAV_CVC_MAXLENGTH_VALID</a> = 1831 : 1831
+ <a name="XML_SCHEMAV_CVC_MININCLUSIVE_VALID" id="XML_SCHEMAV_CVC_MININCLUSIVE_VALID">XML_SCHEMAV_CVC_MININCLUSIVE_VALID</a> = 1832 : 1832
+ <a name="XML_SCHEMAV_CVC_MAXINCLUSIVE_VALID" id="XML_SCHEMAV_CVC_MAXINCLUSIVE_VALID">XML_SCHEMAV_CVC_MAXINCLUSIVE_VALID</a> = 1833 : 1833
+ <a name="XML_SCHEMAV_CVC_MINEXCLUSIVE_VALID" id="XML_SCHEMAV_CVC_MINEXCLUSIVE_VALID">XML_SCHEMAV_CVC_MINEXCLUSIVE_VALID</a> = 1834 : 1834
+ <a name="XML_SCHEMAV_CVC_MAXEXCLUSIVE_VALID" id="XML_SCHEMAV_CVC_MAXEXCLUSIVE_VALID">XML_SCHEMAV_CVC_MAXEXCLUSIVE_VALID</a> = 1835 : 1835
+ <a name="XML_SCHEMAV_CVC_TOTALDIGITS_VALID" id="XML_SCHEMAV_CVC_TOTALDIGITS_VALID">XML_SCHEMAV_CVC_TOTALDIGITS_VALID</a> = 1836 : 1836
+ <a name="XML_SCHEMAV_CVC_FRACTIONDIGITS_VALID" id="XML_SCHEMAV_CVC_FRACTIONDIGITS_VALID">XML_SCHEMAV_CVC_FRACTIONDIGITS_VALID</a> = 1837 : 1837
+ <a name="XML_SCHEMAV_CVC_PATTERN_VALID" id="XML_SCHEMAV_CVC_PATTERN_VALID">XML_SCHEMAV_CVC_PATTERN_VALID</a> = 1838 : 1838
+ <a name="XML_SCHEMAV_CVC_ENUMERATION_VALID" id="XML_SCHEMAV_CVC_ENUMERATION_VALID">XML_SCHEMAV_CVC_ENUMERATION_VALID</a> = 1839 : 1839
+ <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> = 1840 : 1840
+ <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> = 1841 : 1841
+ <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> = 1842 : 1842
+ <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> = 1843 : 1843
<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
@@ -586,6 +626,43 @@ void <a href="#xmlStructuredErrorFunc">xmlStructuredErrorFunc</a> (void * userD
<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 : 3004
+ <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 : 3005
+ <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 : 3006
+ <a name="XML_SCHEMAP_ST_PROPS_CORRECT_1" id="XML_SCHEMAP_ST_PROPS_CORRECT_1">XML_SCHEMAP_ST_PROPS_CORRECT_1</a> = 3008 : 3007
+ <a name="XML_SCHEMAP_ST_PROPS_CORRECT_2" id="XML_SCHEMAP_ST_PROPS_CORRECT_2">XML_SCHEMAP_ST_PROPS_CORRECT_2</a> = 3009 : 3008
+ <a name="XML_SCHEMAP_ST_PROPS_CORRECT_3" id="XML_SCHEMAP_ST_PROPS_CORRECT_3">XML_SCHEMAP_ST_PROPS_CORRECT_3</a> = 3010 : 3009
+ <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 : 3010
+ <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 : 3011
+ <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 : 3012
+ <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 : 3013
+ <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 : 3014
+ <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 : 3015
+ <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 : 3016
+ <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 : 3017
+ <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 : 3018
+ <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 : 3019
+ <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
}
</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>
diff --git a/doc/html/libxml-xmlmemory.html b/doc/html/libxml-xmlmemory.html
index 6b5c840..87a0a56 100644
--- a/doc/html/libxml-xmlmemory.html
+++ b/doc/html/libxml-xmlmemory.html
@@ -71,14 +71,14 @@ void * xmlMallocFunc (size_t size)
<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="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="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></p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ptr</tt></i>:</span></td><td></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></p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>size</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="xmlMemRealloc" id="xmlMemRealloc"></a>Function: xmlMemRealloc</h3><pre class="programlisting">void * xmlMemRealloc (void * ptr, <br /> size_t size)<br />
+</pre><p></p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ptr</tt></i>:</span></td><td></td></tr><tr><td><span class="term"><i><tt>size</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="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>
@@ -89,8 +89,8 @@ void * xmlMallocFunc (size_t size)
<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
+</pre><p></p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>str</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="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 />
diff --git a/doc/html/libxml-xmlreader.html b/doc/html/libxml-xmlreader.html
index 00c1f6b..d160908 100644
--- a/doc/html/libxml-xmlreader.html
+++ b/doc/html/libxml-xmlreader.html
@@ -258,7 +258,7 @@ void xmlTextReaderErrorFunc (void * arg, <br /> const char * msg, <br />
<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</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>current node being accessed by the xmlTextReader. This is dangerous because the underlying node may be destroyed on the next Reads.</p>
+</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 positive 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 />
diff --git a/doc/html/libxml-xmlsave.html b/doc/html/libxml-xmlsave.html
index 8d38b42..f2fc676 100644
--- a/doc/html/libxml-xmlsave.html
+++ b/doc/html/libxml-xmlsave.html
@@ -18,7 +18,6 @@ The content of this structure is not made public by the API.
<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>
@@ -36,9 +35,7 @@ The content of this structure is not made public by the API.
</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 />
+<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="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>
diff --git a/doc/html/libxml-xmlschemastypes.html b/doc/html/libxml-xmlschemastypes.html
index c80729a..ae2de6d 100644
--- a/doc/html/libxml-xmlschemastypes.html
+++ b/doc/html/libxml-xmlschemastypes.html
@@ -12,36 +12,51 @@ A:link, A:visited, A:active { text-decoration: underline }
pre.programlisting {border-style: double;background: #EECFA1}
</style><title>Module xmlschemastypes from libxml2</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>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://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"><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">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> ctxt, <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">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"><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">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">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="#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="#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>
<h2>Description</h2>
<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> ctxt, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name)<br />
</pre><p>Checks the default values types, especially for 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>ctxt</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>name of the type</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 if okay or -1 in cae of 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="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 />
+<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="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="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 />
+<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></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="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="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="xmlSchemaNewFacet" id="xmlSchemaNewFacet"></a>Function: xmlSchemaNewFacet</h3><pre class="programlisting"><a href="libxml-schemasInternals.html#xmlSchemaFacetPtr">xmlSchemaFacetPtr</a> xmlSchemaNewFacet (void)<br />
+<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></p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>type</tt></i>:</span></td><td></td></tr><tr><td><span class="term"><i><tt>facetType</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="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="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="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="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 />
+<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="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><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/doc/libxml2-api.xml b/doc/libxml2-api.xml
index faa5735..047d934 100644
--- a/doc/libxml2-api.xml
+++ b/doc/libxml2-api.xml
@@ -463,15 +463,16 @@
<exports symbol='_xmlGlobalState' type='struct'/>
<exports symbol='xmlRealloc' type='variable'/>
<exports symbol='xmlStructuredError' type='variable'/>
+ <exports symbol='xmlParserDebugEntities' type='variable'/>
<exports symbol='xmlLastError' type='variable'/>
- <exports symbol='xmlDefaultSAXLocator' type='variable'/>
<exports symbol='xmlTreeIndentString' type='variable'/>
<exports symbol='xmlMemStrdup' type='variable'/>
<exports symbol='htmlDefaultSAXHandler' type='variable'/>
<exports symbol='xmlIndentTreeOutput' type='variable'/>
<exports symbol='xmlSaveNoEmptyTags' type='variable'/>
+ <exports symbol='xmlParserInputBufferCreateFilenameValue' type='variable'/>
<exports symbol='xmlDefaultBufferSize' type='variable'/>
- <exports symbol='xmlRegisterNodeDefaultValue' type='variable'/>
+ <exports symbol='xmlOutputBufferCreateFilenameValue' type='variable'/>
<exports symbol='xmlKeepBlanksDefaultValue' type='variable'/>
<exports symbol='xmlGetWarningsDefaultValue' type='variable'/>
<exports symbol='xmlMallocAtomic' type='variable'/>
@@ -479,9 +480,10 @@
<exports symbol='xmlBufferAllocScheme' type='variable'/>
<exports symbol='docbDefaultSAXHandler' type='variable'/>
<exports symbol='xmlGenericErrorContext' type='variable'/>
- <exports symbol='oldXMLWDcompatibility' type='variable'/>
+ <exports symbol='xmlDefaultSAXLocator' type='variable'/>
<exports symbol='xmlFree' type='variable'/>
<exports symbol='xmlLoadExtDtdDefaultValue' type='variable'/>
+ <exports symbol='xmlRegisterNodeDefaultValue' type='variable'/>
<exports symbol='xmlDeregisterNodeDefaultValue' type='variable'/>
<exports symbol='xmlGenericError' type='variable'/>
<exports symbol='xmlMalloc' type='variable'/>
@@ -490,24 +492,29 @@
<exports symbol='xmlDoValidityCheckingDefaultValue' type='variable'/>
<exports symbol='xmlDefaultSAXHandler' type='variable'/>
<exports symbol='xmlPedanticParserDefaultValue' type='variable'/>
- <exports symbol='xmlParserDebugEntities' type='variable'/>
+ <exports symbol='oldXMLWDcompatibility' type='variable'/>
<exports symbol='xmlThrDefSetStructuredErrorFunc' type='function'/>
- <exports symbol='xmlCleanupGlobals' type='function'/>
- <exports symbol='xmlThrDefRegisterNodeDefault' type='function'/>
+ <exports symbol='xmlThrDefParserInputBufferCreateFilenameDefault' type='function'/>
+ <exports symbol='xmlDeregisterNodeDefault' type='function'/>
+ <exports symbol='xmlThrDefDeregisterNodeDefault' type='function'/>
+ <exports symbol='xmlThrDefPedanticParserDefaultValue' type='function'/>
<exports symbol='xmlInitializeGlobalState' type='function'/>
<exports symbol='xmlThrDefBufferAllocScheme' type='function'/>
<exports symbol='xmlThrDefSetGenericErrorFunc' type='function'/>
+ <exports symbol='xmlParserInputBufferCreateFilenameDefault' type='function'/>
<exports symbol='xmlThrDefDoValidityCheckingDefaultValue' type='function'/>
- <exports symbol='xmlThrDefPedanticParserDefaultValue' type='function'/>
+ <exports symbol='xmlCleanupGlobals' type='function'/>
<exports symbol='xmlRegisterNodeDefault' type='function'/>
+ <exports symbol='xmlParserInputBufferCreateFilenameFunc' type='function'/>
<exports symbol='xmlThrDefGetWarningsDefaultValue' type='function'/>
- <exports symbol='xmlThrDefDeregisterNodeDefault' type='function'/>
+ <exports symbol='xmlThrDefOutputBufferCreateFilenameDefault' type='function'/>
<exports symbol='xmlThrDefSubstituteEntitiesDefaultValue' type='function'/>
<exports symbol='xmlRegisterNodeFunc' type='function'/>
<exports symbol='xmlThrDefSaveNoEmptyTags' type='function'/>
<exports symbol='xmlThrDefIndentTreeOutput' type='function'/>
<exports symbol='xmlThrDefDefaultBufferSize' type='function'/>
- <exports symbol='xmlDeregisterNodeDefault' type='function'/>
+ <exports symbol='xmlOutputBufferCreateFilenameFunc' type='function'/>
+ <exports symbol='xmlOutputBufferCreateFilenameDefault' type='function'/>
<exports symbol='xmlInitGlobals' type='function'/>
<exports symbol='xmlThrDefLoadExtDtdDefaultValue' type='function'/>
<exports symbol='xmlThrDefLineNumbersDefaultValue' type='function'/>
@@ -515,6 +522,7 @@
<exports symbol='xmlDeregisterNodeFunc' type='function'/>
<exports symbol='xmlThrDefParserDebugEntities' type='function'/>
<exports symbol='xmlThrDefTreeIndentString' type='function'/>
+ <exports symbol='xmlThrDefRegisterNodeDefault' type='function'/>
</file>
<file name='hash'>
<summary>chained hash tables</summary>
@@ -659,6 +667,7 @@
<exports symbol='XML_PARSE_NOERROR' type='enum'/>
<exports symbol='XML_PARSE_DTDATTR' type='enum'/>
<exports symbol='XML_PARSE_NSCLEAN' 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_PARSER_EPILOG' type='enum'/>
@@ -666,10 +675,14 @@
<exports symbol='XML_PARSE_NOCDATA' type='enum'/>
<exports symbol='XML_PARSE_SAX1' type='enum'/>
<exports symbol='XML_PARSE_DTDVALID' type='enum'/>
+ <exports symbol='XML_PARSE_DOM' type='enum'/>
<exports symbol='XML_PARSER_DTD' type='enum'/>
<exports symbol='XML_PARSER_MISC' type='enum'/>
<exports symbol='XML_PARSER_ATTRIBUTE_VALUE' type='enum'/>
+ <exports symbol='XML_PARSE_PUSH_SAX' type='enum'/>
<exports symbol='XML_PARSER_START' type='enum'/>
+ <exports symbol='XML_PARSE_SAX' type='enum'/>
+ <exports symbol='XML_PARSE_UNKNOWN' type='enum'/>
<exports symbol='XML_PARSE_PEDANTIC' type='enum'/>
<exports symbol='XML_PARSER_START_TAG' type='enum'/>
<exports symbol='XML_PARSER_IGNORE' type='enum'/>
@@ -679,11 +692,13 @@
<exports symbol='XML_PARSER_CDATA_SECTION' type='enum'/>
<exports symbol='XML_PARSE_XINCLUDE' type='enum'/>
<exports symbol='XML_PARSE_RECOVER' type='enum'/>
+ <exports symbol='XML_PARSE_READER' type='enum'/>
<exports symbol='xmlParserNodeInfoSeqPtr' type='typedef'/>
<exports symbol='xmlSAXHandlerV1Ptr' type='typedef'/>
+ <exports symbol='xmlParserMode' type='typedef'/>
<exports symbol='xmlSAXHandlerV1' type='typedef'/>
- <exports symbol='xmlParserInputState' type='typedef'/>
<exports symbol='xmlParserOption' type='typedef'/>
+ <exports symbol='xmlParserInputState' type='typedef'/>
<exports symbol='xmlParserNodeInfoPtr' type='typedef'/>
<exports symbol='xmlParserNodeInfo' type='typedef'/>
<exports symbol='xmlParserNodeInfoSeq' type='typedef'/>
@@ -1015,96 +1030,185 @@
<summary>internal interfaces for XML Schemas</summary>
<description>internal interfaces for the XML Schemas handling and schema validity checking </description>
<author>Daniel Veillard </author>
- <exports symbol='XML_SCHEMAS_ANYATTR_LAX' type='macro'/>
- <exports symbol='XML_SCHEMAS_ANYATTR_STRICT' type='macro'/>
+ <exports symbol='XML_SCHEMAS_FINAL_DEFAULT_EXTENSION' type='macro'/>
+ <exports symbol='XML_SCHEMAS_TYPE_BUILTIN_PRIMITIVE' type='macro'/>
+ <exports symbol='XML_SCHEMAS_TYPE_VARIETY_UNION' type='macro'/>
+ <exports symbol='XML_SCHEMAS_FINAL_DEFAULT_RESTRICTION' type='macro'/>
<exports symbol='XML_SCHEMAS_QUALIF_ATTR' type='macro'/>
+ <exports symbol='XML_SCHEMAS_TYPE_FINAL_LIST' type='macro'/>
<exports symbol='XML_SCHEMAS_ATTR_USE_REQUIRED' type='macro'/>
<exports symbol='XML_SCHEMAS_FACET_COLLAPSE' type='macro'/>
- <exports symbol='XML_SCHEMAS_ELEM_NSDEFAULT' type='macro'/>
- <exports symbol='XML_SCHEMAS_ELEM_GLOBAL' type='macro'/>
- <exports symbol='XML_SCHEMAS_ELEM_NILLABLE' type='macro'/>
- <exports symbol='XML_SCHEMAS_TYPE_MIXED' type='macro'/>
+ <exports symbol='XML_SCHEMAS_ANY_STRICT' type='macro'/>
+ <exports symbol='XML_SCHEMAS_FINAL_DEFAULT_UNION' type='macro'/>
+ <exports symbol='XML_SCHEMAS_TYPE_VARIETY_LIST' type='macro'/>
+ <exports symbol='XML_SCHEMAS_TYPE_OWNED_ATTR_WILDCARD' type='macro'/>
<exports symbol='XML_SCHEMAS_ATTR_USE_PROHIBITED' type='macro'/>
<exports symbol='XML_SCHEMAS_FACET_PRESERVE' type='macro'/>
<exports symbol='XML_SCHEMAS_FACET_UNKNOWN' type='macro'/>
- <exports symbol='XML_SCHEMAS_ELEM_TOPLEVEL' type='macro'/>
- <exports symbol='XML_SCHEMAS_ELEM_ABSTRACT' type='macro'/>
+ <exports symbol='XML_SCHEMAS_WILDCARD_COMPLETE' type='macro'/>
+ <exports symbol='XML_SCHEMAS_TYPE_FINAL_EXTENSION' type='macro'/>
<exports symbol='XML_SCHEMAS_ELEM_FIXED' type='macro'/>
- <exports symbol='XML_SCHEMAS_QUALIF_ELEM' type='macro'/>
- <exports symbol='XML_SCHEMAS_ANYATTR_SKIP' type='macro'/>
+ <exports symbol='XML_SCHEMAS_TYPE_VARIETY_ATOMIC' type='macro'/>
<exports symbol='XML_SCHEMAS_ATTR_USE_OPTIONAL' type='macro'/>
<exports symbol='XML_SCHEMAS_ATTR_NSDEFAULT' type='macro'/>
+ <exports symbol='XML_SCHEMAS_ANYATTR_STRICT' type='macro'/>
+ <exports symbol='XML_SCHEMAS_TYPE_VARIETY_ABSENT' type='macro'/>
+ <exports symbol='XML_SCHEMAS_TYPE_DERIVATION_METHOD_RESTRICTION' type='macro'/>
+ <exports symbol='XML_SCHEMAS_TYPE_FINAL_DEFAULT' 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_ELEM_NILLABLE' type='macro'/>
+ <exports symbol='XML_SCHEMAS_ANY_SKIP' type='macro'/>
+ <exports symbol='XML_SCHEMAS_FINAL_DEFAULT_LIST' 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_MIXED' type='macro'/>
+ <exports symbol='XML_SCHEMAS_ELEM_ABSTRACT' type='macro'/>
+ <exports symbol='XML_SCHEMAS_TYPE_FINAL_UNION' type='macro'/>
+ <exports symbol='XML_SCHEMAS_QUALIF_ELEM' type='macro'/>
<exports symbol='XML_SCHEMAS_ELEM_REF' type='macro'/>
<exports symbol='XML_SCHEMAS_ELEM_DEFAULT' type='macro'/>
+ <exports symbol='XML_SCHEMAS_ATTRGROUP_GLOBAL' type='macro'/>
<exports symbol='XML_SCHEMAS_FACET_REPLACE' type='macro'/>
- <exports symbol='XML_SCHEMA_TYPE_SIMPLE' type='enum'/>
- <exports symbol='XML_SCHEMA_TYPE_GROUP' type='enum'/>
- <exports symbol='XML_SCHEMA_TYPE_SEQUENCE' type='enum'/>
- <exports symbol='XML_SCHEMA_TYPE_SIMPLE_CONTENT' type='enum'/>
+ <exports symbol='XML_SCHEMAS_GMONTH' type='enum'/>
<exports symbol='XML_SCHEMA_CONTENT_ELEMENTS' type='enum'/>
- <exports symbol='XML_SCHEMA_FACET_MININCLUSIVE' type='enum'/>
- <exports symbol='XML_SCHEMA_FACET_WHITESPACE' type='enum'/>
+ <exports symbol='XML_SCHEMAS_GYEAR' type='enum'/>
+ <exports symbol='XML_SCHEMAS_BYTE' type='enum'/>
+ <exports symbol='XML_SCHEMA_TYPE_ALL' type='enum'/>
+ <exports symbol='XML_SCHEMAS_NOTATION' type='enum'/>
+ <exports symbol='XML_SCHEMA_TYPE_EXTENSION' type='enum'/>
+ <exports symbol='XML_SCHEMA_FACET_MAXINCLUSIVE' type='enum'/>
+ <exports symbol='XML_SCHEMAS_NAME' type='enum'/>
+ <exports symbol='XML_SCHEMAS_ANYSIMPLETYPE' 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_IDREFS' type='enum'/>
+ <exports symbol='XML_SCHEMAS_INT' type='enum'/>
+ <exports symbol='XML_SCHEMAS_UNKNOWN' type='enum'/>
+ <exports symbol='XML_SCHEMAS_IDREF' type='enum'/>
+ <exports symbol='XML_SCHEMAS_UINT' type='enum'/>
+ <exports symbol='XML_SCHEMAS_GDAY' type='enum'/>
+ <exports symbol='XML_SCHEMAS_GMONTHDAY' type='enum'/>
+ <exports symbol='XML_SCHEMA_TYPE_ANY' type='enum'/>
<exports symbol='XML_SCHEMA_FACET_MINEXCLUSIVE' type='enum'/>
- <exports symbol='XML_SCHEMA_CONTENT_MIXED' type='enum'/>
+ <exports symbol='XML_SCHEMAS_ANYURI' type='enum'/>
<exports symbol='XML_SCHEMA_FACET_MAXEXCLUSIVE' type='enum'/>
- <exports symbol='XML_SCHEMA_TYPE_FACET' type='enum'/>
<exports symbol='XML_SCHEMA_TYPE_COMPLEX' type='enum'/>
- <exports symbol='XML_SCHEMA_TYPE_LIST' type='enum'/>
<exports symbol='XML_SCHEMA_TYPE_ATTRIBUTEGROUP' type='enum'/>
- <exports symbol='XML_SCHEMA_CONTENT_MIXED_OR_ELEMENTS' type='enum'/>
- <exports symbol='XML_SCHEMA_TYPE_ALL' type='enum'/>
- <exports symbol='XML_SCHEMA_CONTENT_EMPTY' type='enum'/>
+ <exports symbol='XML_SCHEMAS_ULONG' type='enum'/>
+ <exports symbol='XML_SCHEMAS_PINTEGER' type='enum'/>
<exports symbol='XML_SCHEMA_TYPE_BASIC' type='enum'/>
- <exports symbol='XML_SCHEMA_TYPE_EXTENSION' type='enum'/>
+ <exports symbol='XML_SCHEMAS_HEXBINARY' type='enum'/>
<exports symbol='XML_SCHEMA_TYPE_CHOICE' type='enum'/>
- <exports symbol='XML_SCHEMA_FACET_MAXINCLUSIVE' type='enum'/>
- <exports symbol='XML_SCHEMA_TYPE_ATTRIBUTE' type='enum'/>
<exports symbol='XML_SCHEMA_TYPE_UNION' type='enum'/>
+ <exports symbol='XML_SCHEMAS_DECIMAL' type='enum'/>
+ <exports symbol='XML_SCHEMA_TYPE_UR' type='enum'/>
+ <exports symbol='XML_SCHEMA_FACET_LENGTH' type='enum'/>
+ <exports symbol='XML_SCHEMA_CONTENT_SIMPLE' type='enum'/>
+ <exports symbol='XML_SCHEMAS_DOUBLE' 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_NINTEGER' type='enum'/>
+ <exports symbol='XML_SCHEMAS_NORMSTRING' 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_SCHEMA_CONTENT_MIXED_OR_ELEMENTS' type='enum'/>
+ <exports symbol='XML_SCHEMAS_USHORT' type='enum'/>
+ <exports symbol='XML_SCHEMAS_GYEARMONTH' type='enum'/>
+ <exports symbol='XML_SCHEMAS_NCNAME' type='enum'/>
+ <exports symbol='XML_SCHEMAS_NPINTEGER' type='enum'/>
+ <exports symbol='XML_SCHEMAS_INTEGER' type='enum'/>
+ <exports symbol='XML_SCHEMAS_BASE64BINARY' type='enum'/>
+ <exports symbol='XML_SCHEMAS_LONG' type='enum'/>
+ <exports symbol='XML_SCHEMA_TYPE_COMPLEX_CONTENT' type='enum'/>
+ <exports symbol='XML_SCHEMA_FACET_FRACTIONDIGITS' 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_SCHEMA_TYPE_SIMPLE' type='enum'/>
+ <exports symbol='XML_SCHEMA_TYPE_SIMPLE_CONTENT' type='enum'/>
+ <exports symbol='XML_SCHEMAS_FLOAT' type='enum'/>
+ <exports symbol='XML_SCHEMA_TYPE_ANY_ATTRIBUTE' type='enum'/>
+ <exports symbol='XML_SCHEMA_FACET_WHITESPACE' type='enum'/>
+ <exports symbol='XML_SCHEMAS_ENTITIES' type='enum'/>
<exports symbol='XML_SCHEMA_TYPE_ELEMENT' type='enum'/>
+ <exports symbol='XML_SCHEMAS_DATE' type='enum'/>
+ <exports symbol='XML_SCHEMAS_STRING' type='enum'/>
+ <exports symbol='XML_SCHEMA_TYPE_LIST' type='enum'/>
+ <exports symbol='XML_SCHEMA_TYPE_ATTRIBUTE' type='enum'/>
<exports symbol='XML_SCHEMA_FACET_TOTALDIGITS' type='enum'/>
- <exports symbol='XML_SCHEMA_TYPE_ANY_ATTRIBUTE' type='enum'/>
+ <exports symbol='XML_SCHEMAS_QNAME' type='enum'/>
<exports symbol='XML_SCHEMA_TYPE_NOTATION' type='enum'/>
- <exports symbol='XML_SCHEMA_FACET_LENGTH' type='enum'/>
- <exports symbol='XML_SCHEMA_CONTENT_SIMPLE' type='enum'/>
+ <exports symbol='XML_SCHEMAS_TOKEN' type='enum'/>
<exports symbol='XML_SCHEMA_CONTENT_ANY' type='enum'/>
<exports symbol='XML_SCHEMA_CONTENT_BASIC' type='enum'/>
<exports symbol='XML_SCHEMA_FACET_MINLENGTH' type='enum'/>
- <exports symbol='XML_SCHEMA_TYPE_UR' type='enum'/>
- <exports symbol='XML_SCHEMA_TYPE_COMPLEX_CONTENT' type='enum'/>
- <exports symbol='XML_SCHEMA_FACET_FRACTIONDIGITS' type='enum'/>
- <exports symbol='XML_SCHEMA_FACET_PATTERN' type='enum'/>
+ <exports symbol='XML_SCHEMA_TYPE_SEQUENCE' type='enum'/>
+ <exports symbol='XML_SCHEMA_CONTENT_EMPTY' type='enum'/>
+ <exports symbol='XML_SCHEMA_FACET_MININCLUSIVE' type='enum'/>
<exports symbol='XML_SCHEMA_FACET_MAXLENGTH' type='enum'/>
<exports symbol='XML_SCHEMA_FACET_ENUMERATION' type='enum'/>
<exports symbol='XML_SCHEMA_CONTENT_UNKNOWN' type='enum'/>
- <exports symbol='XML_SCHEMA_TYPE_ANY' type='enum'/>
<exports symbol='XML_SCHEMA_TYPE_RESTRICTION' type='enum'/>
<exports symbol='xmlSchemaValPtr' type='typedef'/>
+ <exports symbol='xmlSchemaFacetLink' type='typedef'/>
+ <exports symbol='xmlSchemaWildcardNsPtr' type='typedef'/>
<exports symbol='xmlSchemaAttributeGroup' type='typedef'/>
+ <exports symbol='xmlSchemaAttributeGroupPtr' type='typedef'/>
+ <exports symbol='xmlSchemaElementPtr' type='typedef'/>
+ <exports symbol='xmlSchemaFacetLinkPtr' type='typedef'/>
+ <exports symbol='xmlSchemaWildcardPtr' type='typedef'/>
+ <exports symbol='xmlSchemaVal' type='typedef'/>
+ <exports symbol='xmlSchemaTypeLinkPtr' type='typedef'/>
+ <exports symbol='xmlSchemaAttributeLinkPtr' type='typedef'/>
+ <exports symbol='xmlSchemaWildcardNs' type='typedef'/>
+ <exports symbol='xmlSchemaType' type='typedef'/>
<exports symbol='xmlSchemaAttributePtr' type='typedef'/>
+ <exports symbol='xmlSchemaNotationPtr' type='typedef'/>
+ <exports symbol='xmlSchemaAnnot' type='typedef'/>
+ <exports symbol='xmlSchemaValType' type='typedef'/>
+ <exports symbol='xmlSchemaTypePtr' type='typedef'/>
+ <exports symbol='xmlSchemaNotation' type='typedef'/>
+ <exports symbol='xmlSchemaAnnotPtr' type='typedef'/>
<exports symbol='xmlSchemaElement' type='typedef'/>
- <exports symbol='xmlSchemaElementPtr' type='typedef'/>
<exports symbol='xmlSchemaFacet' type='typedef'/>
- <exports symbol='xmlSchemaType' type='typedef'/>
<exports symbol='xmlSchemaContentType' type='typedef'/>
<exports symbol='xmlSchemaTypeType' type='typedef'/>
<exports symbol='xmlSchemaAttribute' type='typedef'/>
<exports symbol='xmlSchemaFacetPtr' type='typedef'/>
- <exports symbol='xmlSchemaNotation' type='typedef'/>
- <exports symbol='xmlSchemaNotationPtr' type='typedef'/>
- <exports symbol='xmlSchemaAnnot' type='typedef'/>
- <exports symbol='xmlSchemaAnnotPtr' type='typedef'/>
- <exports symbol='xmlSchemaVal' type='typedef'/>
- <exports symbol='xmlSchemaTypePtr' type='typedef'/>
- <exports symbol='xmlSchemaAttributeGroupPtr' type='typedef'/>
+ <exports symbol='xmlSchemaWildcard' type='typedef'/>
+ <exports symbol='xmlSchemaTypeLink' type='typedef'/>
+ <exports symbol='xmlSchemaAttributeLink' type='typedef'/>
+ <exports symbol='_xmlSchemaWildcardNs' type='struct'/>
<exports symbol='_xmlSchemaAttribute' type='struct'/>
+ <exports symbol='_xmlSchemaFacet' type='struct'/>
<exports symbol='_xmlSchemaType' type='struct'/>
<exports symbol='_xmlSchemaAttributeGroup' type='struct'/>
<exports symbol='_xmlSchemaNotation' type='struct'/>
<exports symbol='_xmlSchemaElement' type='struct'/>
<exports symbol='_xmlSchema' type='struct'/>
+ <exports symbol='_xmlSchemaAttributeLink' type='struct'/>
+ <exports symbol='_xmlSchemaFacetLink' type='struct'/>
+ <exports symbol='_xmlSchemaWildcard' type='struct'/>
+ <exports symbol='_xmlSchemaTypeLink' type='struct'/>
<exports symbol='_xmlSchemaAnnot' type='struct'/>
- <exports symbol='_xmlSchemaFacet' type='struct'/>
<exports symbol='xmlSchemaFreeType' type='function'/>
+ <exports symbol='xmlSchemaFreeWildcard' type='function'/>
</file>
<file name='threads'>
<summary>interfaces for thread handling</summary>
@@ -1415,6 +1519,7 @@
<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'/>
@@ -1658,20 +1763,26 @@
<summary>error handling</summary>
<description>the API used to report errors </description>
<author>Daniel Veillard </author>
+ <exports symbol='XML_SCHEMAP_SRC_SIMPLE_TYPE_1' 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_COMPLEX_TYPE_2_4' type='enum'/>
<exports symbol='XML_DTD_ATTRIBUTE_VALUE' type='enum'/>
<exports symbol='XML_ERR_INVALID_DEC_CHARREF' type='enum'/>
<exports symbol='XML_RNGP_PARENTREF_NO_PARENT' 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_XINCLUDE_INCLUDE_IN_INCLUDE' type='enum'/>
+ <exports symbol='XML_SCHEMAV_CVC_TYPE_3_1_1' type='enum'/>
+ <exports symbol='XML_XPATH_EXPRESSION_OK' 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_SCHEMAP_S4S_ATTR_MISSING' type='enum'/>
<exports symbol='XML_CATALOG_MISSING_ATTR' type='enum'/>
<exports symbol='XML_ERR_NO_MEMORY' type='enum'/>
<exports symbol='XML_ERR_PEREF_SEMICOL_MISSING' type='enum'/>
@@ -1681,6 +1792,8 @@
<exports symbol='XML_HTML_UNKNOWN_TAG' type='enum'/>
<exports symbol='XML_DTD_NOT_STANDALONE' type='enum'/>
<exports symbol='XML_RNGP_PAT_START_ATTR' type='enum'/>
+ <exports symbol='XML_SCHEMAV_CVC_MINEXCLUSIVE_VALID' type='enum'/>
+ <exports symbol='XML_SCHEMAV_NOROOT' type='enum'/>
<exports symbol='XML_SCHEMAV_NOTEMPTY' type='enum'/>
<exports symbol='XML_RNGP_NEED_COMBINE' type='enum'/>
<exports symbol='XML_IO_EROFS' type='enum'/>
@@ -1690,6 +1803,8 @@
<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_SCHEMAP_COS_ST_RESTRICTS_3_3_1_2' type='enum'/>
+ <exports symbol='XML_XPATH_INVALID_CHAR_ERROR' type='enum'/>
<exports symbol='XML_SCHEMAP_INVALID_MAXOCCURS' type='enum'/>
<exports symbol='XML_ERR_MISSING_ENCODING' type='enum'/>
<exports symbol='XML_SCHEMAP_UNKNOWN_ATTR_CHILD' type='enum'/>
@@ -1701,7 +1816,7 @@
<exports symbol='XML_ERR_GT_REQUIRED' type='enum'/>
<exports symbol='XML_SCHEMAP_FACET_NO_VALUE' type='enum'/>
<exports symbol='XML_HTTP_UNKNOWN_HOST' type='enum'/>
- <exports symbol='XML_XPTR_EXTRA_OBJECTS' type='enum'/>
+ <exports symbol='XML_SCHEMAV_CVC_MAXEXCLUSIVE_VALID' type='enum'/>
<exports symbol='XML_ERR_ENTITY_NOT_FINISHED' type='enum'/>
<exports symbol='XML_SCHEMAP_INVALID_ATTR_USE' type='enum'/>
<exports symbol='XML_IO_UNKNOWN' type='enum'/>
@@ -1730,7 +1845,9 @@
<exports symbol='XML_SCHEMAP_REGEXP_INVALID' type='enum'/>
<exports symbol='XML_XPTR_CHILDSEQ_START' type='enum'/>
<exports symbol='XML_C14N_CREATE_STACK' type='enum'/>
- <exports symbol='XML_XINCLUDE_TEXT_FRAGMENT' type='enum'/>
+ <exports symbol='XML_SCHEMAP_UNKNOWN_ANYATTRIBUTE_CHILD' type='enum'/>
+ <exports symbol='XML_SCHEMAP_WILDCARD_INVALID_NS_MEMBER' type='enum'/>
+ <exports symbol='XML_XPATH_INVALID_PREDICATE_ERROR' type='enum'/>
<exports symbol='XML_ERR_EXT_SUBSET_NOT_FINISHED' type='enum'/>
<exports symbol='XML_RNGP_PARENTREF_NAME_INVALID' type='enum'/>
<exports symbol='XML_FROM_DTD' type='enum'/>
@@ -1738,10 +1855,14 @@
<exports symbol='XML_RNGP_EXTERNALREF_RECURSE' type='enum'/>
<exports symbol='XML_DTD_ATTRIBUTE_DEFAULT' type='enum'/>
<exports symbol='XML_RNGP_UNKNOWN_COMBINE' type='enum'/>
+ <exports symbol='XML_SCHEMAV_EXTRACONTENT' type='enum'/>
<exports symbol='XML_RNGP_START_EMPTY' type='enum'/>
+ <exports symbol='XML_SCHEMAP_SRC_SIMPLE_TYPE_4' type='enum'/>
+ <exports symbol='XML_SCHEMAP_COS_ST_RESTRICTS_3_3_2_2' type='enum'/>
<exports symbol='XML_RNGP_ELEM_CONTENT_EMPTY' type='enum'/>
- <exports symbol='XML_XPATH_EXPRESSION_OK' type='enum'/>
+ <exports symbol='XML_WAR_NS_URI' type='enum'/>
<exports symbol='XML_IO_EMLINK' type='enum'/>
+ <exports symbol='XML_SCHEMAV_CVC_COMPLEX_TYPE_2_2' type='enum'/>
<exports symbol='XML_ERR_NMTOKEN_REQUIRED' type='enum'/>
<exports symbol='XML_RNGP_ANYNAME_ATTR_ANCESTOR' type='enum'/>
<exports symbol='XML_ERR_ENTITY_IS_EXTERNAL' type='enum'/>
@@ -1754,8 +1875,11 @@
<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_SCHEMAP_UNKNOWN_REF' type='enum'/>
<exports symbol='XML_XINCLUDE_RECURSION' type='enum'/>
+ <exports symbol='XML_SCHEMAP_SRC_RESOLVE' type='enum'/>
<exports symbol='XML_C14N_CREATE_CTXT' type='enum'/>
+ <exports symbol='XML_SCHEMAV_CVC_FACET_VALID' type='enum'/>
<exports symbol='XML_SCHEMAP_ATTRGRP_NONAME_NOREF' type='enum'/>
<exports symbol='XML_SCHEMAP_RESTRICTION_NONAME_NOREF' type='enum'/>
<exports symbol='XML_XINCLUDE_TEXT_DOCUMENT' type='enum'/>
@@ -1773,15 +1897,18 @@
<exports symbol='XML_IO_EFAULT' type='enum'/>
<exports symbol='XML_XPATH_INVALID_CTXT_POSITION' type='enum'/>
<exports symbol='XML_ERR_NOTATION_NOT_FINISHED' type='enum'/>
+ <exports symbol='XML_SCHEMAV_CVC_LENGTH_VALID' type='enum'/>
<exports symbol='XML_DTD_STANDALONE_DEFAULTED' type='enum'/>
<exports symbol='XML_DTD_INVALID_DEFAULT' type='enum'/>
<exports symbol='XML_DTD_UNKNOWN_ELEM' type='enum'/>
<exports symbol='XML_SCHEMAP_REDEFINED_TYPE' type='enum'/>
+ <exports symbol='XML_SCHEMAV_CVC_MAXINCLUSIVE_VALID' type='enum'/>
<exports symbol='XML_SCHEMAV_NOTYPE' type='enum'/>
<exports symbol='XML_SCHEMAP_UNKNOWN_FACET_CHILD' type='enum'/>
<exports symbol='XML_SCHEMAP_NOTATION_NO_NAME' 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_RNGP_PAT_LIST_TEXT' type='enum'/>
<exports symbol='XML_SCHEMAP_UNKNOWN_ALL_CHILD' type='enum'/>
<exports symbol='XML_SCHEMAP_INCLUDE_SCHEMA_NOT_URI' type='enum'/>
@@ -1789,7 +1916,9 @@
<exports symbol='XML_RNGP_INCLUDE_FAILURE' type='enum'/>
<exports symbol='XML_RNGP_INVALID_VALUE' type='enum'/>
<exports symbol='XML_ERR_COMMENT_NOT_FINISHED' type='enum'/>
- <exports symbol='XML_SCHEMAP_REDEFINED_ATTRGROUP' type='enum'/>
+ <exports symbol='XML_SCHEMAP_COS_ST_RESTRICTS_2_3_1_2' type='enum'/>
+ <exports symbol='XML_SCHEMAP_COS_ST_RESTRICTS_2_3_1_1' 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_IO_EMSGSIZE' type='enum'/>
<exports symbol='XML_FROM_CATALOG' type='enum'/>
@@ -1799,6 +1928,7 @@
<exports symbol='XML_FROM_HTML' 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_ERR_ATTLIST_NOT_STARTED' type='enum'/>
<exports symbol='XML_RNGP_ELEMENT_NAME' type='enum'/>
<exports symbol='XML_ERR_PCDATA_REQUIRED' type='enum'/>
@@ -1814,8 +1944,11 @@
<exports symbol='XML_SCHEMAP_IMPORT_REDEFINE_NSNAME' 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_SCHEMAP_INVALID_ATTR_NAME' type='enum'/>
+ <exports symbol='XML_SCHEMAV_CVC_DATATYPE_VALID_1_2_1' type='enum'/>
<exports symbol='XML_ERR_UNKNOWN_ENCODING' type='enum'/>
+ <exports symbol='XML_SCHEMAV_NOTSIMPLE' type='enum'/>
<exports symbol='XML_HTTP_URL_SYNTAX' type='enum'/>
<exports symbol='XML_SCHEMAP_INVALID_FACET' type='enum'/>
<exports symbol='XML_DTD_CONTENT_MODEL' type='enum'/>
@@ -1828,9 +1961,9 @@
<exports symbol='XML_WAR_NS_URI_RELATIVE' type='enum'/>
<exports symbol='XML_DTD_UNKNOWN_ID' type='enum'/>
<exports symbol='XML_RNGP_TEXT_EXPECTED' type='enum'/>
- <exports symbol='XML_WAR_NS_URI' type='enum'/>
+ <exports symbol='XML_SCHEMAP_DERIVATION_OK_RESTRICTION_4_3' type='enum'/>
<exports symbol='XML_XPATH_UNDEF_VARIABLE_ERROR' type='enum'/>
- <exports symbol='XML_SCHEMAV_ELEMCONT' type='enum'/>
+ <exports symbol='XML_SCHEMAP_DERIVATION_OK_RESTRICTION_4_1' type='enum'/>
<exports symbol='XML_IO_EDOM' type='enum'/>
<exports symbol='XML_SCHEMAV_FACET' type='enum'/>
<exports symbol='XML_RNGP_PARAM_NAME_MISSING' type='enum'/>
@@ -1843,7 +1976,7 @@
<exports symbol='XML_XPATH_UNFINISHED_LITERAL_ERROR' type='enum'/>
<exports symbol='XML_RNGP_EXTERNALREF_EMTPY' type='enum'/>
<exports symbol='XML_ERR_SPACE_REQUIRED' type='enum'/>
- <exports symbol='XML_SCHEMAV_EXTRACONTENT' type='enum'/>
+ <exports symbol='XML_SCHEMAV_CVC_MAXLENGTH_VALID' type='enum'/>
<exports symbol='XML_SCHEMAP_UNKNOWN_SCHEMAS_CHILD' type='enum'/>
<exports symbol='XML_DTD_DIFFERENT_PREFIX' type='enum'/>
<exports symbol='XML_RNGP_INTERLEAVE_NO_CONTENT' type='enum'/>
@@ -1853,6 +1986,7 @@
<exports symbol='XML_SCHEMAP_UNKNOWN_EXTENSION_CHILD' type='enum'/>
<exports symbol='XML_RNGP_PAT_START_INTERLEAVE' type='enum'/>
<exports symbol='XML_HTML_STRUCURE_ERROR' type='enum'/>
+ <exports symbol='XML_SCHEMAV_ELEMCONT' type='enum'/>
<exports symbol='XML_SCHEMAV_MISSING' type='enum'/>
<exports symbol='XML_RNGP_GRAMMAR_CONTENT' type='enum'/>
<exports symbol='XML_XINCLUDE_XPTR_FAILED' type='enum'/>
@@ -1860,7 +1994,8 @@
<exports symbol='XML_RNGP_PARENTREF_CREATE_FAILED' type='enum'/>
<exports symbol='XML_ERR_ENTITY_IS_PARAMETER' type='enum'/>
<exports symbol='XML_ERR_RESERVED_XML_NAME' type='enum'/>
- <exports symbol='XML_SCHEMAV_NOTSIMPLE' 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_RNGP_PARENTREF_NO_NAME' type='enum'/>
<exports symbol='XML_IO_EPERM' type='enum'/>
<exports symbol='XML_IO_ENETUNREACH' type='enum'/>
@@ -1881,12 +2016,14 @@
<exports symbol='XML_C14N_REQUIRES_UTF8' type='enum'/>
<exports symbol='XML_FROM_XINCLUDE' type='enum'/>
<exports symbol='XML_SCHEMAP_TYPE_AND_SUBTYPE' type='enum'/>
+ <exports symbol='XML_SCHEMAV_CVC_DATATYPE_VALID_1_2_3' type='enum'/>
<exports symbol='XML_RNGP_GRAMMAR_EMPTY' type='enum'/>
<exports symbol='XML_IO_ENOTDIR' type='enum'/>
<exports symbol='XML_SAVE_CHAR_INVALID' type='enum'/>
<exports symbol='XML_RNGP_ELEMENT_NO_CONTENT' type='enum'/>
<exports symbol='XML_ERR_ENTITYREF_NO_NAME' type='enum'/>
<exports symbol='XML_DTD_ID_FIXED' type='enum'/>
+ <exports symbol='XML_SCHEMAP_COS_ST_RESTRICTS_2_3_2_2' 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'/>
@@ -1903,18 +2040,21 @@
<exports symbol='XML_SCHEMAP_INVALID_REF_AND_SUBTYPE' type='enum'/>
<exports symbol='XML_RNGP_ELEM_TEXT_CONFLICT' type='enum'/>
<exports symbol='XML_SCHEMAP_ATTR_NONAME_NOREF' type='enum'/>
+ <exports symbol='XML_SCHEMAP_INTERSECTION_NOT_EXPRESSIBLE' type='enum'/>
<exports symbol='XML_SCHEMAP_ELEM_NONAME_NOREF' type='enum'/>
<exports symbol='XML_DTD_ID_SUBSET' type='enum'/>
<exports symbol='XML_ERR_ENTITY_CHAR_ERROR' type='enum'/>
- <exports symbol='XML_SCHEMAP_UNKNOWN_ANYATTRIBUTE_CHILD' type='enum'/>
+ <exports symbol='XML_SCHEMAP_COS_ST_RESTRICTS_3_3_2_3' type='enum'/>
<exports symbol='XML_RNGP_PAT_START_EMPTY' type='enum'/>
<exports symbol='XML_DTD_UNKNOWN_ENTITY' type='enum'/>
<exports symbol='XML_RNGP_PARSE_ERROR' type='enum'/>
+ <exports symbol='XML_XINCLUDE_PARSE_VALUE' type='enum'/>
<exports symbol='XML_RNGP_XML_NS' type='enum'/>
<exports symbol='XML_ERR_MISPLACED_CDATA_END' type='enum'/>
<exports symbol='XML_FROM_HTTP' type='enum'/>
<exports symbol='XML_RNGP_PAT_DATA_EXCEPT_ONEMORE' type='enum'/>
- <exports symbol='XML_WAR_LANG_VALUE' type='enum'/>
+ <exports symbol='XML_SCHEMAP_COS_ST_RESTRICTS_3_3_1' type='enum'/>
+ <exports symbol='XML_SCHEMAP_COS_ST_RESTRICTS_3_3_2_5' type='enum'/>
<exports symbol='XML_RNGP_REF_CREATE_FAILED' type='enum'/>
<exports symbol='XML_ERR_SEPARATOR_REQUIRED' type='enum'/>
<exports symbol='XML_DTD_ROOT_NAME' type='enum'/>
@@ -1923,6 +2063,7 @@
<exports symbol='XML_RNGP_ATTRIBUTE_CONTENT' type='enum'/>
<exports symbol='XML_RNGP_REF_NOT_EMPTY' type='enum'/>
<exports symbol='XML_DTD_XMLID_TYPE' type='enum'/>
+ <exports symbol='XML_SCHEMAP_COS_ST_RESTRICTS_1_2' type='enum'/>
<exports symbol='XML_XPATH_VARIABLE_REF_ERROR' type='enum'/>
<exports symbol='XML_RNGP_INTERLEAVE_ADD' type='enum'/>
<exports symbol='XML_SCHEMAP_UNKNOWN_CHOICE_CHILD' type='enum'/>
@@ -1954,6 +2095,7 @@
<exports symbol='XML_DTD_NOT_PCDATA' type='enum'/>
<exports symbol='XML_SCHEMAP_INVALID_ATTR_COMBINATION' type='enum'/>
<exports symbol='XML_WAR_UNKNOWN_VERSION' type='enum'/>
+ <exports symbol='XML_XPTR_EXTRA_OBJECTS' type='enum'/>
<exports symbol='XML_RNGP_PARAM_FORBIDDEN' type='enum'/>
<exports symbol='XML_ERR_OK' type='enum'/>
<exports symbol='XML_SCHEMAP_NOTHING_TO_PARSE' type='enum'/>
@@ -1962,9 +2104,11 @@
<exports symbol='XML_SCHEMAP_GROUP_NONAME_NOREF' type='enum'/>
<exports symbol='XML_RNGP_PAT_NSNAME_EXCEPT_ANYNAME' type='enum'/>
<exports symbol='XML_ERR_ENTITYREF_IN_PROLOG' type='enum'/>
+ <exports symbol='XML_SCHEMAP_S4S_ELEM_MISSING' type='enum'/>
<exports symbol='XML_ERR_CHARREF_IN_DTD' type='enum'/>
<exports symbol='XML_DTD_LOAD_ERROR' type='enum'/>
<exports symbol='XML_SCHEMAP_UNKNOWN_NOTATION_CHILD' type='enum'/>
+ <exports symbol='XML_SCHEMAP_SRC_UNION_MEMBERTYPES_OR_SIMPLETYPES' type='enum'/>
<exports symbol='XML_IO_ENOTTY' type='enum'/>
<exports symbol='XML_RNGP_EMPTY_CONTENT' type='enum'/>
<exports symbol='XML_IO_EALREADY' type='enum'/>
@@ -1991,7 +2135,9 @@
<exports symbol='XML_XPATH_UNCLOSED_ERROR' type='enum'/>
<exports symbol='XML_WAR_CATALOG_PI' type='enum'/>
<exports symbol='XML_SCHEMAP_INVALID_MINOCCURS' type='enum'/>
+ <exports symbol='XML_SCHEMAP_COS_CT_EXTENDS_1_3' 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'/>
@@ -2002,12 +2148,16 @@
<exports symbol='XML_IO_EPIPE' type='enum'/>
<exports symbol='XML_TREE_INVALID_DEC' type='enum'/>
<exports symbol='XML_SCHEMAP_EXTENSION_NO_BASE' type='enum'/>
+ <exports symbol='XML_XPTR_SYNTAX_ERROR' type='enum'/>
<exports symbol='XML_SCHEMAP_NOTYPE_NOREF' type='enum'/>
<exports symbol='XML_RNGP_ATTRIBUTE_EMPTY' type='enum'/>
<exports symbol='XML_SCHEMAV_ISABSTRACT' type='enum'/>
<exports symbol='XML_SCHEMAP_MISSING_SIMPLETYPE_CHILD' type='enum'/>
- <exports symbol='XML_SCHEMAP_UNKNOWN_ATTRIBUTE_GROUP' type='enum'/>
+ <exports symbol='XML_SCHEMAP_DERIVATION_OK_RESTRICTION_1' type='enum'/>
+ <exports symbol='XML_SCHEMAP_SRC_SIMPLE_TYPE_2' type='enum'/>
+ <exports symbol='XML_SCHEMAP_DERIVATION_OK_RESTRICTION_3' type='enum'/>
<exports symbol='XML_IO_LOAD_ERROR' type='enum'/>
+ <exports symbol='XML_SCHEMAP_SRC_SIMPLE_TYPE_3' type='enum'/>
<exports symbol='XML_RNGP_PAT_LIST_ELEM' type='enum'/>
<exports symbol='XML_SCHEMAV_UNDECLAREDELEM' type='enum'/>
<exports symbol='XML_RNGP_CREATE_FAILURE' type='enum'/>
@@ -2018,6 +2168,7 @@
<exports symbol='XML_ERR_EQUAL_REQUIRED' type='enum'/>
<exports symbol='XML_XPATH_UNKNOWN_FUNC_ERROR' type='enum'/>
<exports symbol='XML_SCHEMAP_INVALID_WHITE_SPACE' type='enum'/>
+ <exports symbol='XML_SCHEMAP_SRC_RESTRICTION_BASE_OR_SIMPLETYPE' type='enum'/>
<exports symbol='XML_RNGP_INCLUDE_EMPTY' type='enum'/>
<exports symbol='XML_IO_ENOTSUP' type='enum'/>
<exports symbol='XML_DTD_UNKNOWN_ATTRIBUTE' type='enum'/>
@@ -2032,11 +2183,13 @@
<exports symbol='XML_FTP_EPSV_ANSWER' type='enum'/>
<exports symbol='XML_DTD_ENTITY_TYPE' 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_RNGP_REF_NO_NAME' 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_RNGP_NSNAME_ATTR_ANCESTOR' type='enum'/>
<exports symbol='XML_SCHEMAP_UNKNOWN_FACET_TYPE' type='enum'/>
<exports symbol='XML_RNGP_PAT_START_ONEMORE' type='enum'/>
@@ -2056,10 +2209,11 @@
<exports symbol='XML_RNGP_VALUE_NO_CONTENT' type='enum'/>
<exports symbol='XML_SCHEMAP_UNKNOWN_SIMPLECONTENT_CHILD' type='enum'/>
<exports symbol='XML_IO_EAFNOSUPPORT' type='enum'/>
- <exports symbol='XML_XPTR_SYNTAX_ERROR' 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_UNKNOWN_REF' type='enum'/>
+ <exports symbol='XML_SCHEMAP_COS_ST_RESTRICTS_2_3_2_4' type='enum'/>
<exports symbol='XML_RNGP_PAT_DATA_EXCEPT_EMPTY' 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_ERR_NS_DECL_ERROR' type='enum'/>
<exports symbol='XML_WAR_UNDECLARED_ENTITY' type='enum'/>
@@ -2073,14 +2227,18 @@
<exports symbol='XML_XINCLUDE_FRAGMENT_ID' type='enum'/>
<exports symbol='XML_IO_NO_INPUT' type='enum'/>
<exports symbol='XML_NS_ERR_UNDEFINED_NAMESPACE' type='enum'/>
- <exports symbol='XML_XPATH_INVALID_ARITY' type='enum'/>
- <exports symbol='XML_XPATH_INVALID_CHAR_ERROR' type='enum'/>
+ <exports symbol='XML_SCHEMAV_CVC_MINLENGTH_VALID' type='enum'/>
+ <exports symbol='XML_SCHEMAP_ST_PROPS_CORRECT_3' type='enum'/>
<exports symbol='XML_REGEXP_COMPILE_ERROR' type='enum'/>
+ <exports symbol='XML_SCHEMAV_CVC_MININCLUSIVE_VALID' type='enum'/>
<exports symbol='XML_IO_WRITE' type='enum'/>
<exports symbol='XML_ERR_ENTITY_PE_INTERNAL' type='enum'/>
<exports symbol='XML_RNGP_DEFINE_MISSING' type='enum'/>
<exports symbol='XML_ERR_NOTATION_NOT_STARTED' 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_SCHEMAP_COS_ST_DERIVED_OK_2_2' type='enum'/>
+ <exports symbol='XML_SCHEMAP_COS_ST_DERIVED_OK_2_1' type='enum'/>
<exports symbol='XML_IO_EBADMSG' type='enum'/>
<exports symbol='XML_RNGP_PAT_LIST_INTERLEAVE' type='enum'/>
<exports symbol='XML_ERR_DOCUMENT_EMPTY' type='enum'/>
@@ -2090,6 +2248,7 @@
<exports symbol='XML_FROM_NAMESPACE' type='enum'/>
<exports symbol='XML_IO_EBUSY' type='enum'/>
<exports symbol='XML_ERR_ATTLIST_NOT_FINISHED' type='enum'/>
+ <exports symbol='XML_XINCLUDE_TEXT_FRAGMENT' type='enum'/>
<exports symbol='XML_RNGP_INCLUDE_RECURSE' type='enum'/>
<exports symbol='XML_ERR_INVALID_URI' type='enum'/>
<exports symbol='XML_SCHEMAP_INVALID_ENUM' type='enum'/>
@@ -2103,21 +2262,30 @@
<exports symbol='XML_DTD_ELEM_REDEFINED' type='enum'/>
<exports symbol='XML_SCHEMAV_NOTNILLABLE' type='enum'/>
<exports symbol='XML_SCHEMAP_ELEM_DEFAULT_FIXED' type='enum'/>
- <exports symbol='XML_SCHEMAP_UNKNOWN_TYPE' type='enum'/>
+ <exports symbol='XML_SCHEMAP_REDEFINED_ELEMENT' type='enum'/>
<exports symbol='XML_RNGP_REF_NO_DEF' type='enum'/>
+ <exports symbol='XML_SCHEMAP_S4S_ATTR_NOT_ALLOWED' type='enum'/>
<exports symbol='XML_ERR_NOT_WELL_BALANCED' type='enum'/>
+ <exports symbol='XML_SCHEMAP_CT_PROPS_CORRECT_5' type='enum'/>
<exports symbol='XML_NS_ERR_XML_NAMESPACE' type='enum'/>
<exports symbol='XML_ERR_INVALID_CHARREF' type='enum'/>
+ <exports symbol='XML_SCHEMAP_UNKNOWN_TYPE' 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_XINCLUDE_PARSE_VALUE' type='enum'/>
+ <exports symbol='XML_SCHEMAP_DEF_AND_PREFIX' type='enum'/>
<exports symbol='XML_RNGP_PAT_ANYNAME_EXCEPT_ANYNAME' type='enum'/>
<exports symbol='XML_RNGP_NSNAME_NO_NS' type='enum'/>
<exports symbol='XML_ERR_MIXED_NOT_STARTED' type='enum'/>
+ <exports symbol='XML_SCHEMAP_UNION_NOT_EXPRESSIBLE' type='enum'/>
+ <exports symbol='XML_WAR_LANG_VALUE' type='enum'/>
<exports symbol='XML_SCHEMAV_INVALIDELEM' 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_ERR_INVALID_ENCODING' type='enum'/>
+ <exports symbol='XML_SCHEMAP_ST_PROPS_CORRECT_1' type='enum'/>
+ <exports symbol='XML_XPATH_INVALID_ARITY' type='enum'/>
<exports symbol='XML_RNGP_EXCEPT_MISSING' type='enum'/>
<exports symbol='XML_ERR_TAG_NOT_FINISHED' type='enum'/>
<exports symbol='XML_RNGP_XMLNS_NAME' type='enum'/>
@@ -2130,9 +2298,13 @@
<exports symbol='XML_ERR_PEREF_IN_INT_SUBSET' type='enum'/>
<exports symbol='XML_RNGP_DATA_CONTENT' type='enum'/>
<exports symbol='XML_ERR_STRING_NOT_STARTED' type='enum'/>
+ <exports symbol='XML_SCHEMAP_DERIVATION_OK_RESTRICTION_2_1_2' type='enum'/>
+ <exports symbol='XML_SCHEMAP_DERIVATION_OK_RESTRICTION_2_1_1' 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_ERR_PEREF_IN_PROLOG' type='enum'/>
@@ -2142,14 +2314,21 @@
<exports symbol='XML_RNGP_PAT_START_TEXT' type='enum'/>
<exports symbol='XML_SAVE_NOT_UTF8' 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_SCHEMAV_CVC_COMPLEX_TYPE_2_1' 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_ERR_ATTRIBUTE_REDEFINED' type='enum'/>
<exports symbol='XML_IO_ECONNREFUSED' type='enum'/>
<exports symbol='XML_ERR_XMLDECL_NOT_FINISHED' type='enum'/>
+ <exports symbol='XML_SCHEMAP_REDEFINED_ATTRGROUP' type='enum'/>
<exports symbol='XML_XINCLUDE_XPTR_RESULT' type='enum'/>
<exports symbol='XML_SCHEMAP_SIMPLETYPE_NONAME' type='enum'/>
+ <exports symbol='XML_SCHEMAP_UNKNOWN_ATTRIBUTE_GROUP' type='enum'/>
<exports symbol='XML_SCHEMAP_UNKNOWN_GROUP_CHILD' type='enum'/>
<exports symbol='XML_XINCLUDE_BUILD_FAILED' type='enum'/>
<exports symbol='XML_RNGP_PARENTREF_NOT_EMPTY' type='enum'/>
@@ -2161,30 +2340,33 @@
<exports symbol='XML_IO_ETIMEDOUT' type='enum'/>
<exports symbol='XML_RNGP_ATTRIBUTE_CHILDREN' type='enum'/>
<exports symbol='XML_RNGP_DEFINE_NAME_MISSING' type='enum'/>
- <exports symbol='XML_XPATH_NUMBER_ERROR' type='enum'/>
+ <exports symbol='XML_SCHEMAV_WRONGELEM' type='enum'/>
+ <exports symbol='XML_SCHEMAP_COS_ST_RESTRICTS_1_3_2' type='enum'/>
<exports symbol='XML_SAVE_NO_DOCTYPE' type='enum'/>
<exports symbol='XML_RNGP_CHOICE_CONTENT' type='enum'/>
<exports symbol='XML_RNGP_EMPTY_CONSTRUCT' type='enum'/>
<exports symbol='XML_RNGP_FORBIDDEN_ATTRIBUTE' type='enum'/>
<exports symbol='XML_ERR_ELEMCONTENT_NOT_FINISHED' type='enum'/>
- <exports symbol='XML_SCHEMAP_REDEFINED_ELEMENT' type='enum'/>
+ <exports symbol='XML_SCHEMAP_DERIVATION_OK_RESTRICTION_4_2' 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_IO_EEXIST' 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_ERR_MIXED_NOT_FINISHED' type='enum'/>
- <exports symbol='XML_SCHEMAP_DEF_AND_PREFIX' type='enum'/>
+ <exports symbol='XML_SCHEMAP_COS_ST_RESTRICTS_2_1' type='enum'/>
<exports symbol='XML_SCHEMAP_PREFIX_UNDEFINED' type='enum'/>
<exports symbol='XML_DTD_STANDALONE_WHITE_SPACE' type='enum'/>
<exports symbol='XML_HTTP_USE_IP' type='enum'/>
<exports symbol='XML_IO_ENCODER' type='enum'/>
<exports symbol='XML_IO_ENOTEMPTY' type='enum'/>
- <exports symbol='XML_SCHEMAV_WRONGELEM' type='enum'/>
+ <exports symbol='XML_SCHEMAV_CVC_COMPLEX_TYPE_2_3' type='enum'/>
<exports symbol='XML_RNGP_START_CHOICE_AND_INTERLEAVE' type='enum'/>
- <exports symbol='XML_XPATH_INVALID_PREDICATE_ERROR' type='enum'/>
+ <exports symbol='XML_SCHEMAP_CT_PROPS_CORRECT_3' type='enum'/>
<exports symbol='XML_XINCLUDE_INVALID_CHAR' type='enum'/>
<exports symbol='XML_RNGP_TYPE_NOT_FOUND' type='enum'/>
<exports symbol='XML_IO_BUFFER_FULL' type='enum'/>
@@ -2401,7 +2583,6 @@
<exports symbol='xmlSaveToIO' type='function'/>
<exports symbol='xmlSaveToFilename' type='function'/>
<exports symbol='xmlSaveToFd' type='function'/>
- <exports symbol='xmlSaveToBuffer' type='function'/>
<exports symbol='xmlSaveClose' type='function'/>
<exports symbol='xmlSaveDoc' type='function'/>
<exports symbol='xmlSaveFlush' type='function'/>
@@ -2468,12 +2649,17 @@
<author>Daniel Veillard </author>
<exports symbol='xmlSchemaNewFacet' type='function'/>
<exports symbol='xmlSchemaValPredefTypeNode' type='function'/>
+ <exports symbol='xmlSchemaIsBuiltInTypeFacet' type='function'/>
<exports symbol='xmlSchemaFreeFacet' type='function'/>
+ <exports symbol='xmlSchemaGetBuiltInListSimpleTypeItemType' type='function'/>
<exports symbol='xmlSchemaValidatePredefinedType' type='function'/>
<exports symbol='xmlSchemaCompareValues' type='function'/>
+ <exports symbol='xmlSchemaInitTypes' type='function'/>
<exports symbol='xmlSchemaValidateFacet' type='function'/>
+ <exports symbol='xmlSchemaValidateListSimpleTypeFacet' type='function'/>
<exports symbol='xmlSchemaCleanupTypes' type='function'/>
- <exports symbol='xmlSchemaInitTypes' type='function'/>
+ <exports symbol='xmlSchemaCollapseString' type='function'/>
+ <exports symbol='xmlSchemaGetBuiltInType' type='function'/>
<exports symbol='xmlSchemaFreeValue' type='function'/>
<exports symbol='xmlSchemaGetPredefinedType' type='function'/>
<exports symbol='xmlSchemaCheckFacet' type='function'/>
@@ -3414,13 +3600,30 @@
<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</info>
+ <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</info>
+ <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</info>
+ <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 wildcard has been already builded.</info>
+ </macro>
+ <macro name='XML_SCHEMAS_ATTRGROUP_WILDCARD_BUILDED' file='schemasInternals'>
+ <info>The attribute wildcard has been already builded.</info>
+ </macro>
+ <macro name='XML_SCHEMAS_ATTR_GLOBAL' file='schemasInternals'>
</macro>
<macro name='XML_SCHEMAS_ATTR_NSDEFAULT' file='schemasInternals'>
<info>allow elements in no namespace</info>
@@ -3429,7 +3632,7 @@
<info>The attribute is optional.</info>
</macro>
<macro name='XML_SCHEMAS_ATTR_USE_PROHIBITED' file='schemasInternals'>
- <info>The attribute is prohibited.</info>
+ <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>
@@ -3450,13 +3653,13 @@
<info>the element is nillable</info>
</macro>
<macro name='XML_SCHEMAS_ELEM_NSDEFAULT' file='schemasInternals'>
- <info>allow elements in no namespace</info>
+ <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_TOPLEVEL' file='schemasInternals'>
- <info>the element is top level</info>
+ <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>
@@ -3470,15 +3673,70 @@
<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 shema has &quot;extension&quot; in the set of finalDefault.</info>
+ </macro>
+ <macro name='XML_SCHEMAS_FINAL_DEFAULT_LIST' file='schemasInternals'>
+ <info>the shema has &quot;list&quot; in the set of finalDefault.</info>
+ </macro>
+ <macro name='XML_SCHEMAS_FINAL_DEFAULT_RESTRICTION' file='schemasInternals'>
+ <info>the shema has &quot;restriction&quot; in the set of finalDefault.</info>
+ </macro>
+ <macro name='XML_SCHEMAS_FINAL_DEFAULT_UNION' file='schemasInternals'>
+ <info>the shema has &quot;union&quot; in the set of finalDefault.</info>
+ </macro>
<macro name='XML_SCHEMAS_QUALIF_ATTR' file='schemasInternals'>
<info>the shemas requires qualified attributes</info>
</macro>
<macro name='XML_SCHEMAS_QUALIF_ELEM' file='schemasInternals'>
<info>the shemas requires qualified elements</info>
</macro>
+ <macro name='XML_SCHEMAS_TYPE_BUILTIN_PRIMITIVE' file='schemasInternals'>
+ </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_FINAL_DEFAULT' file='schemasInternals'>
+ </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_GLOBAL' file='schemasInternals'>
+ <info>the type is global</info>
+ </macro>
<macro name='XML_SCHEMAS_TYPE_MIXED' file='schemasInternals'>
<info>the element content type is mixed</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_VARIETY_ABSENT' file='schemasInternals'>
+ <info>the simpleType has a variety of &quot;absent&quot;.</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_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>
@@ -3965,7 +4223,7 @@
<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_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_INTERNAL_GENERAL_ENTITY' file='entities' value='1' type='xmlEntityType'/>
@@ -4060,6 +4318,7 @@
<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_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'/>
@@ -4072,8 +4331,13 @@
<enum name='XML_PARSE_NOWARNING' file='parser' value='64' type='xmlParserOption' info='suppress warning reports'/>
<enum name='XML_PARSE_NSCLEAN' file='parser' value='8192' type='xmlParserOption' info='remove redundant namespaces declarations'/>
<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 substitition'/>
<enum name='XML_PI_NODE' file='tree' value='7' type='xmlElementType'/>
<enum name='XML_READER_TYPE_ATTRIBUTE' file='xmlreader' value='2' type='xmlReaderTypes'/>
@@ -4269,7 +4533,43 @@
<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_COMPLEXTYPE_NONAME_NOREF' file='xmlerror' value='1704' type='xmlParserErrors' info='1704'/>
+ <enum name='XML_SCHEMAP_COS_CT_EXTENDS_1_3' file='xmlerror' value='1800' type='xmlParserErrors' info='1799'/>
+ <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='3010'/>
+ <enum name='XML_SCHEMAP_COS_ST_RESTRICTS_1_2' file='xmlerror' value='3012' type='xmlParserErrors' info='3011'/>
+ <enum name='XML_SCHEMAP_COS_ST_RESTRICTS_1_3_1' file='xmlerror' value='3013' type='xmlParserErrors' info='3012'/>
+ <enum name='XML_SCHEMAP_COS_ST_RESTRICTS_1_3_2' file='xmlerror' value='3014' type='xmlParserErrors' info='3013'/>
+ <enum name='XML_SCHEMAP_COS_ST_RESTRICTS_2_1' file='xmlerror' value='3015' type='xmlParserErrors' info='3014'/>
+ <enum name='XML_SCHEMAP_COS_ST_RESTRICTS_2_3_1_1' file='xmlerror' value='3016' type='xmlParserErrors' info='3015'/>
+ <enum name='XML_SCHEMAP_COS_ST_RESTRICTS_2_3_1_2' file='xmlerror' value='3017' type='xmlParserErrors' info='3016'/>
+ <enum name='XML_SCHEMAP_COS_ST_RESTRICTS_2_3_2_1' file='xmlerror' value='3018' type='xmlParserErrors' info='3017'/>
+ <enum name='XML_SCHEMAP_COS_ST_RESTRICTS_2_3_2_2' file='xmlerror' value='3019' type='xmlParserErrors' info='3018'/>
+ <enum name='XML_SCHEMAP_COS_ST_RESTRICTS_2_3_2_3' file='xmlerror' value='3020' type='xmlParserErrors' info='3019'/>
+ <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_CT_PROPS_CORRECT_1' file='xmlerror' value='1782' type='xmlParserErrors' info='1781'/>
+ <enum name='XML_SCHEMAP_CT_PROPS_CORRECT_2' file='xmlerror' value='1783' type='xmlParserErrors' info='1782'/>
+ <enum name='XML_SCHEMAP_CT_PROPS_CORRECT_3' file='xmlerror' value='1784' type='xmlParserErrors' info='1783'/>
+ <enum name='XML_SCHEMAP_CT_PROPS_CORRECT_4' file='xmlerror' value='1785' type='xmlParserErrors' info='1784'/>
+ <enum name='XML_SCHEMAP_CT_PROPS_CORRECT_5' file='xmlerror' value='1786' type='xmlParserErrors' info='1785'/>
<enum name='XML_SCHEMAP_DEF_AND_PREFIX' file='xmlerror' value='1768' type='xmlParserErrors' info='1767'/>
+ <enum name='XML_SCHEMAP_DERIVATION_OK_RESTRICTION_1' file='xmlerror' value='1787' type='xmlParserErrors' info='1786'/>
+ <enum name='XML_SCHEMAP_DERIVATION_OK_RESTRICTION_2_1_1' file='xmlerror' value='1788' type='xmlParserErrors' info='1787'/>
+ <enum name='XML_SCHEMAP_DERIVATION_OK_RESTRICTION_2_1_2' file='xmlerror' value='1789' type='xmlParserErrors' info='1788'/>
+ <enum name='XML_SCHEMAP_DERIVATION_OK_RESTRICTION_2_2' file='xmlerror' value='1790' type='xmlParserErrors' info='1789'/>
+ <enum name='XML_SCHEMAP_DERIVATION_OK_RESTRICTION_3' file='xmlerror' value='1791' type='xmlParserErrors' info='1790'/>
+ <enum name='XML_SCHEMAP_DERIVATION_OK_RESTRICTION_4_1' file='xmlerror' value='1797' type='xmlParserErrors' info='1796'/>
+ <enum name='XML_SCHEMAP_DERIVATION_OK_RESTRICTION_4_2' file='xmlerror' value='1798' type='xmlParserErrors' info='1797'/>
+ <enum name='XML_SCHEMAP_DERIVATION_OK_RESTRICTION_4_3' file='xmlerror' value='1799' type='xmlParserErrors' info='1798'/>
<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'/>
@@ -4284,6 +4584,7 @@
<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='1769'/>
<enum name='XML_SCHEMAP_INCLUDE_SCHEMA_NO_URI' file='xmlerror' value='1771' type='xmlParserErrors' info='1770'/>
+ <enum name='XML_SCHEMAP_INTERSECTION_NOT_EXPRESSIBLE' file='xmlerror' value='1793' type='xmlParserErrors' info='1792'/>
<enum name='XML_SCHEMAP_INVALID_ATTR_COMBINATION' file='xmlerror' value='1777' type='xmlParserErrors' info='1776'/>
<enum name='XML_SCHEMAP_INVALID_ATTR_INLINE_COMBINATION' file='xmlerror' value='1778' type='xmlParserErrors' info='1777'/>
<enum name='XML_SCHEMAP_INVALID_ATTR_NAME' file='xmlerror' value='1780' type='xmlParserErrors' info='1779'/>
@@ -4315,9 +4616,27 @@
<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_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_IMPORT_3_1' file='xmlerror' value='1795' type='xmlParserErrors' info='1794'/>
+ <enum name='XML_SCHEMAP_SRC_IMPORT_3_2' file='xmlerror' value='1796' type='xmlParserErrors' info='1795'/>
+ <enum name='XML_SCHEMAP_SRC_LIST_ITEMTYPE_OR_SIMPLETYPE' file='xmlerror' value='3006' type='xmlParserErrors' info='3005'/>
+ <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='3004'/>
+ <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='3006'/>
+ <enum name='XML_SCHEMAP_ST_PROPS_CORRECT_1' file='xmlerror' value='3008' type='xmlParserErrors' info='3007'/>
+ <enum name='XML_SCHEMAP_ST_PROPS_CORRECT_2' file='xmlerror' value='3009' type='xmlParserErrors' info='3008'/>
+ <enum name='XML_SCHEMAP_ST_PROPS_CORRECT_3' file='xmlerror' value='3010' type='xmlParserErrors' info='3009'/>
<enum name='XML_SCHEMAP_SUPERNUMEROUS_LIST_ITEM_TYPE' file='xmlerror' value='1776' type='xmlParserErrors' info='1775'/>
<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='1793'/>
<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'/>
@@ -4347,6 +4666,20 @@
<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_WILDCARD_INVALID_NS_MEMBER' file='xmlerror' value='1792' type='xmlParserErrors' info='1791'/>
+ <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'/>
@@ -4373,9 +4706,64 @@
<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_SCHEMAV_ATTRINVALID' file='xmlerror' value='1820' type='xmlParserErrors' info='1820'/>
<enum name='XML_SCHEMAV_ATTRUNKNOWN' file='xmlerror' value='1819' type='xmlParserErrors' info='1819'/>
<enum name='XML_SCHEMAV_CONSTRUCT' file='xmlerror' value='1816' type='xmlParserErrors' info='1816'/>
+ <enum name='XML_SCHEMAV_CVC_COMPLEX_TYPE_2_1' file='xmlerror' value='1840' type='xmlParserErrors' info='1840'/>
+ <enum name='XML_SCHEMAV_CVC_COMPLEX_TYPE_2_2' file='xmlerror' value='1841' type='xmlParserErrors' info='1841'/>
+ <enum name='XML_SCHEMAV_CVC_COMPLEX_TYPE_2_3' file='xmlerror' value='1842' type='xmlParserErrors' info='1842'/>
+ <enum name='XML_SCHEMAV_CVC_COMPLEX_TYPE_2_4' file='xmlerror' value='1843' type='xmlParserErrors' info='1843'/>
+ <enum name='XML_SCHEMAV_CVC_DATATYPE_VALID_1_2_1' file='xmlerror' value='1823' type='xmlParserErrors' info='1823'/>
+ <enum name='XML_SCHEMAV_CVC_DATATYPE_VALID_1_2_2' file='xmlerror' value='1824' type='xmlParserErrors' info='1824'/>
+ <enum name='XML_SCHEMAV_CVC_DATATYPE_VALID_1_2_3' file='xmlerror' value='1825' type='xmlParserErrors' info='1825'/>
+ <enum name='XML_SCHEMAV_CVC_ENUMERATION_VALID' file='xmlerror' value='1839' type='xmlParserErrors' info='1839'/>
+ <enum name='XML_SCHEMAV_CVC_FACET_VALID' file='xmlerror' value='1828' type='xmlParserErrors' info='1828'/>
+ <enum name='XML_SCHEMAV_CVC_FRACTIONDIGITS_VALID' file='xmlerror' value='1837' type='xmlParserErrors' info='1837'/>
+ <enum name='XML_SCHEMAV_CVC_LENGTH_VALID' file='xmlerror' value='1829' type='xmlParserErrors' info='1829'/>
+ <enum name='XML_SCHEMAV_CVC_MAXEXCLUSIVE_VALID' file='xmlerror' value='1835' type='xmlParserErrors' info='1835'/>
+ <enum name='XML_SCHEMAV_CVC_MAXINCLUSIVE_VALID' file='xmlerror' value='1833' type='xmlParserErrors' info='1833'/>
+ <enum name='XML_SCHEMAV_CVC_MAXLENGTH_VALID' file='xmlerror' value='1831' type='xmlParserErrors' info='1831'/>
+ <enum name='XML_SCHEMAV_CVC_MINEXCLUSIVE_VALID' file='xmlerror' value='1834' type='xmlParserErrors' info='1834'/>
+ <enum name='XML_SCHEMAV_CVC_MININCLUSIVE_VALID' file='xmlerror' value='1832' type='xmlParserErrors' info='1832'/>
+ <enum name='XML_SCHEMAV_CVC_MINLENGTH_VALID' file='xmlerror' value='1830' type='xmlParserErrors' info='1830'/>
+ <enum name='XML_SCHEMAV_CVC_PATTERN_VALID' file='xmlerror' value='1838' type='xmlParserErrors' info='1838'/>
+ <enum name='XML_SCHEMAV_CVC_TOTALDIGITS_VALID' file='xmlerror' value='1836' type='xmlParserErrors' info='1836'/>
+ <enum name='XML_SCHEMAV_CVC_TYPE_3_1_1' file='xmlerror' value='1826' type='xmlParserErrors' info='1826'/>
+ <enum name='XML_SCHEMAV_CVC_TYPE_3_1_2' file='xmlerror' value='1827' type='xmlParserErrors' info='1827'/>
<enum name='XML_SCHEMAV_ELEMCONT' file='xmlerror' value='1809' type='xmlParserErrors' info='1809'/>
<enum name='XML_SCHEMAV_EXTRACONTENT' file='xmlerror' value='1812' type='xmlParserErrors' info='1812'/>
<enum name='XML_SCHEMAV_FACET' file='xmlerror' value='1822' type='xmlParserErrors' info='1822'/>
@@ -4401,7 +4789,7 @@
<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'/>
+ <enum name='XML_SCHEMA_CONTENT_MIXED_OR_ELEMENTS' file='schemasInternals' value='5' type='xmlSchemaContentType' info='obsolete, not used'/>
<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_FACET_ENUMERATION' file='schemasInternals' value='1007' type='xmlSchemaTypeType'/>
@@ -4421,7 +4809,7 @@
<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_BASIC' file='schemasInternals' value='1' 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'/>
@@ -4835,6 +5223,8 @@ actually an xmlCharEncoding'/>
<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=''/>
</struct>
<typedef name='xmlGlobalStatePtr' file='globals' type='xmlGlobalState *'/>
<struct name='xmlHashTable' file='hash' type='struct _xmlHashTable'/>
@@ -5001,6 +5391,7 @@ actually an xmlCharEncoding'/>
<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'/>
</struct>
<typedef name='xmlParserCtxtPtr' file='tree' type='xmlParserCtxt *'/>
<typedef name='xmlParserErrors' file='xmlerror' type='enum'/>
@@ -5038,6 +5429,7 @@ actually an xmlCharEncoding'/>
<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=''/>
@@ -5210,8 +5602,15 @@ actually an xmlCharEncoding'/>
<field name='annot' type='xmlSchemaAnnotPtr' info=''/>
<field name='attributes' type='xmlSchemaAttributePtr' info=''/>
<field name='node' type='xmlNodePtr' info=''/>
+ <field name='flags' type='int' info=''/>
+ <field name='attributeWildcard' type='xmlSchemaWildcardPtr' 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'>
@@ -5252,6 +5651,11 @@ actually an xmlCharEncoding'/>
<field name='val' type='xmlSchemaValPtr' info=''/>
<field name='regexp' type='xmlRegexpPtr' info=''/>
</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'/>
@@ -5284,14 +5688,44 @@ actually an xmlCharEncoding'/>
<field name='facets' type='xmlSchemaFacetPtr' info=''/>
<field name='redef' type='struct _xmlSchemaType *' info=' possible redefinitions for the type'/>
<field name='recurse' type='int' info=''/>
+ <field name='attributeUses' type='xmlSchemaAttributeLinkPtr' info=''/>
+ <field name='attributeWildcard' type='xmlSchemaWildcardPtr' info=''/>
+ <field name='builtInType' type='int' info=''/>
+ <field name='memberTypes' type='xmlSchemaTypeLinkPtr' info=''/>
+ <field name='facetSet' type='xmlSchemaFacetLinkPtr' 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 typ'/>
+ </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'/>
+ <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=''/>
+ <field name='annot' type='xmlSchemaAnnotPtr' info=''/>
+ <field name='node' type='xmlNodePtr' info=''/>
+ <field name='minOccurs' type='int' info=''/>
+ <field name='maxOccurs' type='int' info=''/>
+ <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='xmlShellCtxt' file='debugXML' type='struct _xmlShellCtxt'>
<field name='filename' type='char *' info=''/>
<field name='doc' type='xmlDocPtr' info=''/>
@@ -5464,7 +5898,9 @@ actually an xmlCharEncoding'/>
<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'/>
@@ -5481,6 +5917,7 @@ actually an xmlCharEncoding'/>
<variable name='xmlXPathNINF' file='xpath' type='double'/>
<variable name='xmlXPathPINF' file='xpath' type='double'/>
<function name='UTF8ToHtml' file='HTMLparser'>
+ <cond>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'/>
@@ -5497,6 +5934,7 @@ actually an xmlCharEncoding'/>
<arg name='inlen' type='int *' info='the length of @in'/>
</function>
<function name='attribute' file='SAX'>
+ <cond>LIBXML_SAX1_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)'/>
@@ -5504,6 +5942,7 @@ actually an xmlCharEncoding'/>
<arg name='value' type='const xmlChar *' info='The attribute value'/>
</function>
<function name='attributeDecl' file='SAX'>
+ <cond>LIBXML_SAX1_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)'/>
@@ -5533,6 +5972,7 @@ actually an xmlCharEncoding'/>
<arg name='value' type='const xmlChar *' info='The attribute value'/>
</functype>
<function name='cdataBlock' file='SAX'>
+ <cond>LIBXML_SAX1_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)'/>
@@ -5547,6 +5987,7 @@ actually an xmlCharEncoding'/>
<arg name='len' type='int' info='the block length'/>
</functype>
<function name='characters' file='SAX'>
+ <cond>LIBXML_SAX1_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)'/>
@@ -5561,12 +6002,14 @@ actually an xmlCharEncoding'/>
<arg name='len' type='int' info='the number of xmlChar'/>
</functype>
<function name='checkNamespace' file='SAX'>
+ <cond>LIBXML_SAX1_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'>
+ <cond>LIBXML_SAX1_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)'/>
@@ -5654,6 +6097,7 @@ actually an xmlCharEncoding'/>
<arg name='userData' type='void *' info='if using SAX, this pointer will be provided on callbacks.'/>
</function>
<function name='elementDecl' file='SAX'>
+ <cond>LIBXML_SAX1_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)'/>
@@ -5670,6 +6114,7 @@ actually an xmlCharEncoding'/>
<arg name='content' type='xmlElementContentPtr' info='the element value tree'/>
</functype>
<function name='endDocument' file='SAX'>
+ <cond>LIBXML_SAX1_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)'/>
@@ -5680,6 +6125,7 @@ actually an xmlCharEncoding'/>
<arg name='ctx' type='void *' info='the user data (XML parser context)'/>
</functype>
<function name='endElement' file='SAX'>
+ <cond>LIBXML_SAX1_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)'/>
@@ -5700,6 +6146,7 @@ actually an xmlCharEncoding'/>
<arg name='name' type='const xmlChar *' info='The element name'/>
</functype>
<function name='entityDecl' file='SAX'>
+ <cond>LIBXML_SAX1_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)'/>
@@ -5727,6 +6174,7 @@ actually an xmlCharEncoding'/>
<arg name='...' type='...' info='extra parameters for the message display'/>
</functype>
<function name='externalSubset' file='SAX'>
+ <cond>LIBXML_SAX1_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)'/>
@@ -5750,6 +6198,7 @@ actually an xmlCharEncoding'/>
<arg name='...' type='...' info='extra parameters for the message display'/>
</functype>
<functype name='ftpDataCallback' file='nanoftp'>
+ <cond>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'/>
@@ -5757,6 +6206,7 @@ actually an xmlCharEncoding'/>
<arg name='len' type='int' info='its size in bytes'/>
</functype>
<functype name='ftpListCallback' file='nanoftp'>
+ <cond>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'/>
@@ -5773,11 +6223,13 @@ actually an xmlCharEncoding'/>
<arg name='minute' type='int' info='the minute'/>
</functype>
<function name='getColumnNumber' file='SAX'>
+ <cond>LIBXML_SAX1_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'>
+ <cond>LIBXML_SAX1_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)'/>
@@ -5790,16 +6242,19 @@ actually an xmlCharEncoding'/>
<arg name='name' type='const xmlChar *' info='The entity name'/>
</functype>
<function name='getLineNumber' file='SAX'>
+ <cond>LIBXML_SAX1_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'>
+ <cond>LIBXML_SAX1_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'>
+ <cond>LIBXML_SAX1_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)'/>
@@ -5812,16 +6267,19 @@ actually an xmlCharEncoding'/>
<arg name='name' type='const xmlChar *' info='The entity name'/>
</functype>
<function name='getPublicId' file='SAX'>
+ <cond>LIBXML_SAX1_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'>
+ <cond>LIBXML_SAX1_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'>
+ <cond>LIBXML_SAX1_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)'/>
@@ -5829,6 +6287,7 @@ actually an xmlCharEncoding'/>
<arg name='prefix' type='const xmlChar *' info='the namespace prefix'/>
</function>
<function name='hasExternalSubset' file='SAX'>
+ <cond>LIBXML_SAX1_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)'/>
@@ -5839,6 +6298,7 @@ actually an xmlCharEncoding'/>
<arg name='ctx' type='void *' info='the user data (XML parser context)'/>
</functype>
<function name='hasInternalSubset' file='SAX'>
+ <cond>LIBXML_SAX1_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)'/>
@@ -5849,6 +6309,7 @@ actually an xmlCharEncoding'/>
<arg name='ctx' type='void *' info='the user data (XML parser context)'/>
</functype>
<function name='htmlAttrAllowed' file='HTMLparser'>
+ <cond>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'/>
@@ -5856,6 +6317,7 @@ actually an xmlCharEncoding'/>
<arg name='legacy' type='int' info='whether to allow deprecated attributes'/>
</function>
<function name='htmlAutoCloseTag' file='HTMLparser'>
+ <cond>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'/>
@@ -5863,18 +6325,22 @@ actually an xmlCharEncoding'/>
<arg name='elem' type='htmlNodePtr' info='the HTML element'/>
</function>
<function name='htmlCreateFileParserCtxt' file='parserInternals'>
+ <cond>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'>
+ <cond>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'>
+ <cond>LIBXML_HTML_ENABLED</cond>
+ <cond>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'/>
@@ -5885,6 +6351,7 @@ actually an xmlCharEncoding'/>
<arg name='enc' type='xmlCharEncoding' info='an optional encoding'/>
</function>
<function name='htmlCtxtReadDoc' file='HTMLparser'>
+ <cond>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'/>
@@ -5894,6 +6361,7 @@ actually an xmlCharEncoding'/>
<arg name='options' type='int' info='a combination of htmlParserOption(s)'/>
</function>
<function name='htmlCtxtReadFd' file='HTMLparser'>
+ <cond>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'/>
@@ -5903,6 +6371,7 @@ actually an xmlCharEncoding'/>
<arg name='options' type='int' info='a combination of htmlParserOption(s)'/>
</function>
<function name='htmlCtxtReadFile' file='HTMLparser'>
+ <cond>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'/>
@@ -5911,6 +6380,7 @@ actually an xmlCharEncoding'/>
<arg name='options' type='int' info='a combination of htmlParserOption(s)'/>
</function>
<function name='htmlCtxtReadIO' file='HTMLparser'>
+ <cond>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'/>
@@ -5922,6 +6392,7 @@ actually an xmlCharEncoding'/>
<arg name='options' type='int' info='a combination of htmlParserOption(s)'/>
</function>
<function name='htmlCtxtReadMemory' file='HTMLparser'>
+ <cond>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'/>
@@ -5932,11 +6403,13 @@ actually an xmlCharEncoding'/>
<arg name='options' type='int' info='a combination of htmlParserOption(s)'/>
</function>
<function name='htmlCtxtReset' file='HTMLparser'>
+ <cond>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'>
+ <cond>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'/>
@@ -5947,6 +6420,8 @@ actually an xmlCharEncoding'/>
<return type='void'/>
</function>
<function name='htmlDocContentDumpFormatOutput' file='HTMLtree'>
+ <cond>LIBXML_HTML_ENABLED</cond>
+ <cond>LIBXML_OUTPUT_ENABLED</cond>
<info>Dump an HTML document.</info>
<return type='void'/>
<arg name='buf' type='xmlOutputBufferPtr' info='the HTML buffer output'/>
@@ -5955,6 +6430,8 @@ actually an xmlCharEncoding'/>
<arg name='format' type='int' info='should formatting spaces been added'/>
</function>
<function name='htmlDocContentDumpOutput' file='HTMLtree'>
+ <cond>LIBXML_HTML_ENABLED</cond>
+ <cond>LIBXML_OUTPUT_ENABLED</cond>
<info>Dump an HTML document. Formating return/spaces are added.</info>
<return type='void'/>
<arg name='buf' type='xmlOutputBufferPtr' info='the HTML buffer output'/>
@@ -5962,12 +6439,16 @@ actually an xmlCharEncoding'/>
<arg name='encoding' type='const char *' info='the encoding string'/>
</function>
<function name='htmlDocDump' file='HTMLtree'>
+ <cond>LIBXML_HTML_ENABLED</cond>
+ <cond>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'>
+ <cond>LIBXML_HTML_ENABLED</cond>
+ <cond>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'/>
@@ -5975,18 +6456,21 @@ actually an xmlCharEncoding'/>
<arg name='size' type='int *' info='OUT: the memory length'/>
</function>
<function name='htmlElementAllowedHere' file='HTMLparser'>
+ <cond>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'>
+ <cond>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'>
+ <cond>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'/>
@@ -5996,63 +6480,76 @@ actually an xmlCharEncoding'/>
<arg name='quoteChar' type='int' info='the quote character to escape (&apos; or &quot;) or zero.'/>
</function>
<function name='htmlEntityLookup' file='HTMLparser'>
+ <cond>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'>
+ <cond>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'>
+ <cond>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'>
+ <cond>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'>
+ <cond>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'>
+ <cond>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'>
+ <cond>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'>
+ <cond>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'>
+ <cond>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'>
+ <cond>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'>
+ <cond>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='htmlNodeDump' file='HTMLtree'>
+ <cond>LIBXML_HTML_ENABLED</cond>
+ <cond>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'/>
@@ -6060,6 +6557,8 @@ actually an xmlCharEncoding'/>
<arg name='cur' type='xmlNodePtr' info='the current node'/>
</function>
<function name='htmlNodeDumpFile' file='HTMLtree'>
+ <cond>LIBXML_HTML_ENABLED</cond>
+ <cond>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'/>
@@ -6067,6 +6566,8 @@ actually an xmlCharEncoding'/>
<arg name='cur' type='xmlNodePtr' info='the current node'/>
</function>
<function name='htmlNodeDumpFileFormat' file='HTMLtree'>
+ <cond>LIBXML_HTML_ENABLED</cond>
+ <cond>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'/>
@@ -6076,6 +6577,8 @@ actually an xmlCharEncoding'/>
<arg name='format' type='int' info='should formatting spaces been added'/>
</function>
<function name='htmlNodeDumpFormatOutput' file='HTMLtree'>
+ <cond>LIBXML_HTML_ENABLED</cond>
+ <cond>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'/>
@@ -6085,6 +6588,8 @@ actually an xmlCharEncoding'/>
<arg name='format' type='int' info='should formatting spaces been added'/>
</function>
<function name='htmlNodeDumpOutput' file='HTMLtree'>
+ <cond>LIBXML_HTML_ENABLED</cond>
+ <cond>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'/>
@@ -6093,17 +6598,21 @@ actually an xmlCharEncoding'/>
<arg name='encoding' type='const char *' info='the encoding string'/>
</function>
<function name='htmlNodeStatus' file='HTMLparser'>
+ <cond>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'>
+ <cond>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'>
+ <cond>LIBXML_HTML_ENABLED</cond>
+ <cond>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'/>
@@ -6112,34 +6621,40 @@ actually an xmlCharEncoding'/>
<arg name='terminate' type='int' info='last chunk indicator'/>
</function>
<function name='htmlParseDoc' file='HTMLparser'>
+ <cond>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='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'>
+ <cond>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'>
+ <cond>LIBXML_HTML_ENABLED</cond>
<info>parse an HTML element, this is highly recursive [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'>
+ <cond>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'>
+ <cond>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'>
+ <cond>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'/>
@@ -6148,6 +6663,7 @@ actually an xmlCharEncoding'/>
<arg name='options' type='int' info='a combination of htmlParserOption(s)'/>
</function>
<function name='htmlReadFd' file='HTMLparser'>
+ <cond>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'/>
@@ -6156,6 +6672,7 @@ actually an xmlCharEncoding'/>
<arg name='options' type='int' info='a combination of htmlParserOption(s)'/>
</function>
<function name='htmlReadFile' file='HTMLparser'>
+ <cond>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'/>
@@ -6163,6 +6680,7 @@ actually an xmlCharEncoding'/>
<arg name='options' type='int' info='a combination of htmlParserOption(s)'/>
</function>
<function name='htmlReadIO' file='HTMLparser'>
+ <cond>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'/>
@@ -6173,6 +6691,7 @@ actually an xmlCharEncoding'/>
<arg name='options' type='int' info='a combination of htmlParserOption(s)'/>
</function>
<function name='htmlReadMemory' file='HTMLparser'>
+ <cond>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'/>
@@ -6182,6 +6701,7 @@ actually an xmlCharEncoding'/>
<arg name='options' type='int' info='a combination of htmlParserOption(s)'/>
</function>
<function name='htmlSAXParseDoc' file='HTMLparser'>
+ <cond>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='xmlChar *' info='a pointer to an array of xmlChar'/>
@@ -6190,6 +6710,7 @@ actually an xmlCharEncoding'/>
<arg name='userData' type='void *' info='if using SAX, this pointer will be provided on callbacks.'/>
</function>
<function name='htmlSAXParseFile' file='HTMLparser'>
+ <cond>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'/>
@@ -6198,12 +6719,16 @@ actually an xmlCharEncoding'/>
<arg name='userData' type='void *' info='if using SAX, this pointer will be provided on callbacks.'/>
</function>
<function name='htmlSaveFile' file='HTMLtree'>
+ <cond>LIBXML_HTML_ENABLED</cond>
+ <cond>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'>
+ <cond>LIBXML_HTML_ENABLED</cond>
+ <cond>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'/>
@@ -6211,6 +6736,8 @@ actually an xmlCharEncoding'/>
<arg name='encoding' type='const char *' info='the document encoding'/>
</function>
<function name='htmlSaveFileFormat' file='HTMLtree'>
+ <cond>LIBXML_HTML_ENABLED</cond>
+ <cond>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'/>
@@ -6219,17 +6746,20 @@ actually an xmlCharEncoding'/>
<arg name='format' type='int' info='should formatting spaces been added'/>
</function>
<function name='htmlSetMetaEncoding' file='HTMLtree'>
+ <cond>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'>
+ <cond>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'>
+ <cond>LIBXML_SAX1_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)'/>
@@ -6249,16 +6779,21 @@ actually an xmlCharEncoding'/>
<arg name='handler' type='xmlGenericErrorFunc *' info='the handler'/>
</function>
<function name='initdocbDefaultSAXHandler' file='SAX'>
+ <cond>LIBXML_SAX1_ENABLED</cond>
+ <cond>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'>
+ <cond>LIBXML_SAX1_ENABLED</cond>
+ <cond>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'>
+ <cond>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'/>
@@ -6276,6 +6811,7 @@ actually an xmlCharEncoding'/>
<arg name='value' type='xmlParserInputPtr' info='the parser input'/>
</function>
<function name='internalSubset' file='SAX'>
+ <cond>LIBXML_SAX1_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)'/>
@@ -6292,6 +6828,7 @@ actually an xmlCharEncoding'/>
<arg name='SystemID' type='const xmlChar *' info='the SYSTEM ID (e.g. filename or URL)'/>
</functype>
<function name='isStandalone' file='SAX'>
+ <cond>LIBXML_SAX1_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)'/>
@@ -6321,6 +6858,7 @@ actually an xmlCharEncoding'/>
<arg name='value' type='const xmlChar *' info='the element name'/>
</function>
<function name='namespaceDecl' file='SAX'>
+ <cond>LIBXML_SAX1_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)'/>
@@ -6339,6 +6877,7 @@ actually an xmlCharEncoding'/>
<arg name='value' type='xmlNodePtr' info='the element node'/>
</function>
<function name='notationDecl' file='SAX'>
+ <cond>LIBXML_SAX1_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)'/>
@@ -6355,6 +6894,7 @@ actually an xmlCharEncoding'/>
<arg name='systemId' type='const xmlChar *' info='The system ID of the entity'/>
</functype>
<function name='processingInstruction' file='SAX'>
+ <cond>LIBXML_SAX1_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)'/>
@@ -6369,6 +6909,7 @@ actually an xmlCharEncoding'/>
<arg name='data' type='const xmlChar *' info='the PI data&apos;s'/>
</functype>
<function name='reference' file='SAX'>
+ <cond>LIBXML_SAX1_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)'/>
@@ -6381,6 +6922,7 @@ actually an xmlCharEncoding'/>
<arg name='name' type='const xmlChar *' info='The entity name'/>
</functype>
<function name='resolveEntity' file='SAX'>
+ <cond>LIBXML_SAX1_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)'/>
@@ -6395,6 +6937,7 @@ actually an xmlCharEncoding'/>
<arg name='systemId' type='const xmlChar *' info='The system ID of the entity'/>
</functype>
<function name='setDocumentLocator' file='SAX'>
+ <cond>LIBXML_SAX1_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)'/>
@@ -6407,12 +6950,14 @@ actually an xmlCharEncoding'/>
<arg name='loc' type='xmlSAXLocatorPtr' info='A SAX Locator'/>
</functype>
<function name='setNamespace' file='SAX'>
+ <cond>LIBXML_SAX1_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'>
+ <cond>LIBXML_SAX1_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)'/>
@@ -6423,6 +6968,7 @@ actually an xmlCharEncoding'/>
<arg name='ctx' type='void *' info='the user data (XML parser context)'/>
</functype>
<function name='startElement' file='SAX'>
+ <cond>LIBXML_SAX1_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)'/>
@@ -6450,6 +6996,7 @@ actually an xmlCharEncoding'/>
<arg name='atts' type='const xmlChar **' info='An array of name/value attributes pairs, NULL terminated'/>
</functype>
<function name='unparsedEntityDecl' file='SAX'>
+ <cond>LIBXML_SAX1_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)'/>
@@ -6468,11 +7015,13 @@ actually an xmlCharEncoding'/>
<arg name='notationName' type='const xmlChar *' info='the name of the notation'/>
</functype>
<function name='valuePop' file='xpathInternals'>
+ <cond>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'>
+ <cond>LIBXML_XPATH_ENABLED</cond>
<info>Pushes a new XPath object on top of the value stack</info>
<return type='int' info='the number of items on the value stack'/>
<arg name='ctxt' type='xmlXPathParserContextPtr' info='an XPath evaluation context'/>
@@ -6554,6 +7103,7 @@ actually an xmlCharEncoding'/>
<arg name='title' type='const xlinkTitle' info='the link title'/>
</functype>
<function name='xmlACatalogAdd' file='catalog'>
+ <cond>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'/>
@@ -6562,18 +7112,22 @@ actually an xmlCharEncoding'/>
<arg name='replace' type='const xmlChar *' info='the replacement value for the match'/>
</function>
<function name='xmlACatalogDump' file='catalog'>
+ <cond>LIBXML_CATALOG_ENABLED</cond>
+ <cond>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'>
+ <cond>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'>
+ <cond>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'/>
@@ -6581,18 +7135,21 @@ actually an xmlCharEncoding'/>
<arg name='sysID' type='const xmlChar *' info='the system ID string'/>
</function>
<function name='xmlACatalogResolvePublic' file='catalog'>
+ <cond>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'>
+ <cond>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'>
+ <cond>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'/>
@@ -6682,6 +7239,7 @@ actually an xmlCharEncoding'/>
<arg name='SystemID' type='const xmlChar *' info='the system identifier or NULL'/>
</function>
<function name='xmlAddPrevSibling' file='tree'>
+ <cond>LIBXML_TREE_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'/>
@@ -6702,6 +7260,7 @@ actually an xmlCharEncoding'/>
<arg name='elem' type='xmlNodePtr' info='the new node'/>
</function>
<function name='xmlAllocOutputBuffer' file='xmlIO'>
+ <cond>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'/>
@@ -6720,21 +7279,25 @@ actually an xmlCharEncoding'/>
<arg name='string' type='const xmlChar *' info='the text content'/>
</function>
<function name='xmlAutomataCompile' file='xmlautomata'>
+ <cond>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'>
+ <cond>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'>
+ <cond>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'>
+ <cond>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'/>
@@ -6743,6 +7306,7 @@ actually an xmlCharEncoding'/>
<arg name='lax' type='int' info='allow to transition if not all all transitions have been activated'/>
</function>
<function name='xmlAutomataNewCountTrans' file='xmlautomata'>
+ <cond>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'/>
@@ -6754,6 +7318,7 @@ actually an xmlCharEncoding'/>
<arg name='data' type='void *' info='data associated to the transition'/>
</function>
<function name='xmlAutomataNewCountedTrans' file='xmlautomata'>
+ <cond>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'/>
@@ -6762,6 +7327,7 @@ actually an xmlCharEncoding'/>
<arg name='counter' type='int' info='the counter associated to that transition'/>
</function>
<function name='xmlAutomataNewCounter' file='xmlautomata'>
+ <cond>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'/>
@@ -6769,6 +7335,7 @@ actually an xmlCharEncoding'/>
<arg name='max' type='int' info='the maximal value on the counter'/>
</function>
<function name='xmlAutomataNewCounterTrans' file='xmlautomata'>
+ <cond>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'/>
@@ -6777,6 +7344,7 @@ actually an xmlCharEncoding'/>
<arg name='counter' type='int' info='the counter associated to that transition'/>
</function>
<function name='xmlAutomataNewEpsilon' file='xmlautomata'>
+ <cond>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'/>
@@ -6784,6 +7352,7 @@ actually an xmlCharEncoding'/>
<arg name='to' type='xmlAutomataStatePtr' info='the target point of the transition or NULL'/>
</function>
<function name='xmlAutomataNewOnceTrans' file='xmlautomata'>
+ <cond>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'/>
@@ -6795,11 +7364,13 @@ actually an xmlCharEncoding'/>
<arg name='data' type='void *' info='data associated to the transition'/>
</function>
<function name='xmlAutomataNewState' file='xmlautomata'>
+ <cond>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'>
+ <cond>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'/>
@@ -6809,6 +7380,7 @@ actually an xmlCharEncoding'/>
<arg name='data' type='void *' info='data passed to the callback function if the transition is activated'/>
</function>
<function name='xmlAutomataNewTransition2' file='xmlautomata'>
+ <cond>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'/>
@@ -6819,12 +7391,14 @@ actually an xmlCharEncoding'/>
<arg name='data' type='void *' info='data passed to the callback function if the transition is activated'/>
</function>
<function name='xmlAutomataSetFinalState' file='xmlautomata'>
+ <cond>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'>
+ <cond>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'/>
@@ -6946,6 +7520,12 @@ actually an xmlCharEncoding'/>
<arg name='memory' type='xmlChar *' info='preallocated memory'/>
<arg name='len' type='int' info='preallocated memory length'/>
</function>
+ <function name='xmlBuildRelativeURI' file='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 wierd 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'>
<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.'/>
@@ -6958,6 +7538,8 @@ actually an xmlCharEncoding'/>
<arg name='ctxt' type='xmlParserCtxtPtr' info='an XML parser context'/>
</function>
<function name='xmlC14NDocDumpMemory' file='c14n'>
+ <cond>LIBXML_C14N_ENABLED</cond>
+ <cond>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'/>
@@ -6968,6 +7550,8 @@ actually an xmlCharEncoding'/>
<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'>
+ <cond>LIBXML_C14N_ENABLED</cond>
+ <cond>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'/>
@@ -6979,6 +7563,8 @@ actually an xmlCharEncoding'/>
<arg name='compression' type='int' info='the compression level (zlib requred): -1 - libxml default, 0 - uncompressed, &gt;0 - compression level'/>
</function>
<function name='xmlC14NDocSaveTo' file='c14n'>
+ <cond>LIBXML_C14N_ENABLED</cond>
+ <cond>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'/>
@@ -6989,6 +7575,8 @@ actually an xmlCharEncoding'/>
<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'>
+ <cond>LIBXML_C14N_ENABLED</cond>
+ <cond>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'/>
@@ -7000,6 +7588,8 @@ actually an xmlCharEncoding'/>
<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'>
+ <cond>LIBXML_C14N_ENABLED</cond>
+ <cond>LIBXML_OUTPUT_ENABLED</cond>
<info></info>
<return type='int' info=''/>
<arg name='user_data' type='void *' info=''/>
@@ -7012,6 +7602,7 @@ actually an xmlCharEncoding'/>
<arg name='path' type='const xmlChar *' info='the resource locator in a filesystem notation'/>
</function>
<function name='xmlCatalogAdd' file='catalog'>
+ <cond>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'/>
@@ -7019,49 +7610,60 @@ actually an xmlCharEncoding'/>
<arg name='replace' type='const xmlChar *' info='the replacement value for the match'/>
</function>
<function name='xmlCatalogAddLocal' file='catalog'>
+ <cond>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'>
+ <cond>LIBXML_CATALOG_ENABLED</cond>
<info>Free up all the memory associated with catalogs</info>
<return type='void'/>
</function>
<function name='xmlCatalogConvert' file='catalog'>
+ <cond>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'>
+ <cond>LIBXML_CATALOG_ENABLED</cond>
+ <cond>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'>
+ <cond>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'>
+ <cond>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'>
+ <cond>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'>
+ <cond>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'>
+ <cond>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'>
+ <cond>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'/>
@@ -7069,48 +7671,57 @@ actually an xmlCharEncoding'/>
<arg name='sysID' type='const xmlChar *' info='the system ID string'/>
</function>
<function name='xmlCatalogLocalResolveURI' file='catalog'>
+ <cond>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'>
+ <cond>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'>
+ <cond>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'>
+ <cond>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'>
+ <cond>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'>
+ <cond>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'>
+ <cond>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'>
+ <cond>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'>
+ <cond>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'/>
@@ -7221,6 +7832,7 @@ actually an xmlCharEncoding'/>
<return type='void'/>
</function>
<function name='xmlCleanupOutputCallbacks' file='xmlIO'>
+ <cond>LIBXML_OUTPUT_ENABLED</cond>
<info>clears the entire output callback table. this includes the compiled-in I/O callbacks.</info>
<return type='void'/>
</function>
@@ -7247,6 +7859,7 @@ actually an xmlCharEncoding'/>
<arg name='ctxt' type='xmlParserCtxtPtr' info='an XML parser context'/>
</function>
<function name='xmlConvertSGMLCatalog' file='catalog'>
+ <cond>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'/>
@@ -7270,12 +7883,14 @@ actually an xmlCharEncoding'/>
<arg name='val' type='int' info='the char value'/>
</function>
<function name='xmlCopyDoc' file='tree'>
+ <cond>LIBXML_TREE_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='xmlCopyDtd' file='tree'>
+ <cond>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'/>
@@ -7395,6 +8010,7 @@ actually an xmlCharEncoding'/>
<arg name='size' type='int' info='the size of the array'/>
</function>
<function name='xmlCreatePushParserCtxt' file='parser'>
+ <cond>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'/>
@@ -7497,6 +8113,7 @@ actually an xmlCharEncoding'/>
<arg name='len' type='int *' info='pointer to the length of the char read'/>
</function>
<function name='xmlDebugDumpAttr' file='debugXML'>
+ <cond>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'/>
@@ -7504,6 +8121,7 @@ actually an xmlCharEncoding'/>
<arg name='depth' type='int' info='the indentation level.'/>
</function>
<function name='xmlDebugDumpAttrList' file='debugXML'>
+ <cond>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'/>
@@ -7511,30 +8129,35 @@ actually an xmlCharEncoding'/>
<arg name='depth' type='int' info='the indentation level.'/>
</function>
<function name='xmlDebugDumpDTD' file='debugXML'>
+ <cond>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'>
+ <cond>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'>
+ <cond>LIBXML_DEBUG_ENABLED</cond>
<info>Dumps debug information cncerning 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'>
+ <cond>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'>
+ <cond>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'/>
@@ -7542,6 +8165,7 @@ actually an xmlCharEncoding'/>
<arg name='depth' type='int' info='the indentation level.'/>
</function>
<function name='xmlDebugDumpNodeList' file='debugXML'>
+ <cond>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'/>
@@ -7549,6 +8173,7 @@ actually an xmlCharEncoding'/>
<arg name='depth' type='int' info='the indentation level.'/>
</function>
<function name='xmlDebugDumpOneNode' file='debugXML'>
+ <cond>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'/>
@@ -7556,6 +8181,7 @@ actually an xmlCharEncoding'/>
<arg name='depth' type='int' info='the indentation level.'/>
</function>
<function name='xmlDebugDumpString' file='debugXML'>
+ <cond>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'/>
@@ -7648,12 +8274,14 @@ actually an xmlCharEncoding'/>
<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='xmlDocDump' file='tree'>
+ <cond>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'>
+ <cond>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'/>
@@ -7662,6 +8290,7 @@ actually an xmlCharEncoding'/>
<arg name='format' type='int' info='should formatting spaces been added'/>
</function>
<function name='xmlDocDumpFormatMemoryEnc' file='tree'>
+ <cond>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'/>
@@ -7671,6 +8300,7 @@ actually an xmlCharEncoding'/>
<arg name='format' type='int' info='should formatting spaces been added'/>
</function>
<function name='xmlDocDumpMemory' file='tree'>
+ <cond>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'/>
@@ -7678,6 +8308,7 @@ actually an xmlCharEncoding'/>
<arg name='size' type='int *' info='OUT: the memory length'/>
</function>
<function name='xmlDocDumpMemoryEnc' file='tree'>
+ <cond>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'/>
@@ -7686,6 +8317,7 @@ actually an xmlCharEncoding'/>
<arg name='txt_encoding' type='const char *' info='Character encoding to use when generating XML text'/>
</function>
<function name='xmlDocFormatDump' file='tree'>
+ <cond>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*'/>
@@ -7698,60 +8330,70 @@ actually an xmlCharEncoding'/>
<arg name='doc' type='xmlDocPtr' info='the document'/>
</function>
<function name='xmlDocSetRootElement' file='tree'>
+ <cond>LIBXML_TREE_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'/>
<arg name='doc' type='xmlDocPtr' info='the document'/>
<arg name='root' type='xmlNodePtr' info='the new document root element'/>
</function>
<function name='xmlDumpAttributeDecl' file='valid'>
+ <cond>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'>
+ <cond>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'>
+ <cond>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'>
+ <cond>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'>
+ <cond>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'>
+ <cond>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'>
+ <cond>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'>
+ <cond>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'>
+ <cond>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'/>
@@ -7829,11 +8471,13 @@ actually an xmlCharEncoding'/>
<arg name='table' type='xmlAttributeTablePtr' info='An attribute table'/>
</function>
<function name='xmlFreeAutomata' file='xmlautomata'>
+ <cond>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'>
+ <cond>LIBXML_CATALOG_ENABLED</cond>
<info>Free the memory allocated to a Catalog</info>
<return type='void'/>
<arg name='catal' type='xmlCatalogPtr' info='a Catalog'/>
@@ -7924,11 +8568,13 @@ actually an xmlCharEncoding'/>
<arg name='in' type='xmlParserInputBufferPtr' info='a buffered parser input'/>
</function>
<function name='xmlFreePattern' file='pattern'>
+ <cond>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'>
+ <cond>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'/>
@@ -7954,11 +8600,13 @@ actually an xmlCharEncoding'/>
<arg name='table' type='xmlRefTablePtr' info='An ref table'/>
</function>
<function name='xmlFreeTextReader' file='xmlreader'>
+ <cond>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'>
+ <cond>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'/>
@@ -8125,11 +8773,13 @@ actually an xmlCharEncoding'/>
<arg name='name' type='const xmlChar *' info='the attribute name'/>
</function>
<function name='xmlGetNodePath' file='tree'>
+ <cond>LIBXML_TREE_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='xmlNodePtr' info='a node'/>
</function>
<function name='xmlGetNsList' file='tree'>
+ <cond>LIBXML_TREE_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='xmlDocPtr' info='the document'/>
@@ -8402,21 +9052,25 @@ actually an xmlCharEncoding'/>
<arg name='f' type='xmlHashDeallocator' info='the deallocator function for replaced item (if any)'/>
</function>
<function name='xmlIOFTPClose' file='xmlIO'>
+ <cond>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'>
+ <cond>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'>
+ <cond>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'>
+ <cond>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'/>
@@ -8424,27 +9078,32 @@ actually an xmlCharEncoding'/>
<arg name='len' type='int' info='number of bytes to write'/>
</function>
<function name='xmlIOHTTPClose' file='xmlIO'>
+ <cond>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'>
+ <cond>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'>
+ <cond>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'>
+ <cond>LIBXML_HTTP_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'>
+ <cond>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'/>
@@ -8489,6 +9148,7 @@ actually an xmlCharEncoding'/>
<return type='void'/>
</function>
<function name='xmlInitializeCatalog' file='catalog'>
+ <cond>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>
@@ -8777,16 +9437,19 @@ actually an xmlCharEncoding'/>
<arg name='user' type='const void *' info='extra user provided data to the walker'/>
</functype>
<function name='xmlLoadACatalog' file='catalog'>
+ <cond>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'>
+ <cond>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'>
+ <cond>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.'/>
@@ -8799,6 +9462,7 @@ actually an xmlCharEncoding'/>
<arg name='ctxt' type='xmlParserCtxtPtr' info='the context in which the entity is called or NULL'/>
</function>
<function name='xmlLoadSGMLSuperCatalog' file='catalog'>
+ <cond>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'/>
@@ -8808,11 +9472,13 @@ actually an xmlCharEncoding'/>
<return type='void'/>
</function>
<function name='xmlLsCountNode' file='debugXML'>
+ <cond>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'>
+ <cond>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'/>
@@ -8843,9 +9509,9 @@ actually an xmlCharEncoding'/>
<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='xmlMemFree' file='xmlmemory'>
- <info>a free() equivalent, with error checking.</info>
+ <info></info>
<return type='void'/>
- <arg name='ptr' type='void *' info='the memory block pointer'/>
+ <arg name='ptr' type='void *' info=''/>
</function>
<function name='xmlMemGet' file='xmlmemory'>
<info>Provides the memory access functions set currently in use</info>
@@ -8856,15 +9522,15 @@ actually an xmlCharEncoding'/>
<arg name='strdupFunc' type='xmlStrdupFunc *' info='place to save the strdup() function in use'/>
</function>
<function name='xmlMemMalloc' file='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.'/>
+ <info></info>
+ <return type='void *' info=''/>
+ <arg name='size' type='size_t' info=''/>
</function>
<function name='xmlMemRealloc' file='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.'/>
+ <info></info>
+ <return type='void *' info=''/>
+ <arg name='ptr' type='void *' info=''/>
+ <arg name='size' type='size_t' info=''/>
</function>
<function name='xmlMemSetup' file='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>
@@ -8896,9 +9562,9 @@ actually an xmlCharEncoding'/>
<return type='void'/>
</function>
<function name='xmlMemoryStrdup' file='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'/>
+ <info></info>
+ <return type='char *' info=''/>
+ <arg name='str' type='const char *' info=''/>
</function>
<function name='xmlMutexLock' file='threads'>
<info>xmlMutexLock() is used to lock a libxml2 token.</info>
@@ -8927,53 +9593,63 @@ actually an xmlCharEncoding'/>
<arg name='prefix' type='xmlChar **' info='a xmlChar **'/>
</function>
<function name='xmlNanoFTPCheckResponse' file='nanoftp'>
+ <cond>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'>
+ <cond>LIBXML_FTP_ENABLED</cond>
<info>Cleanup the FTP protocol layer. This cleanup proxy informations.</info>
<return type='void'/>
</function>
<function name='xmlNanoFTPClose' file='nanoftp'>
+ <cond>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'>
+ <cond>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'>
+ <cond>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'>
+ <cond>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'>
+ <cond>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='char *' info='a directory on the server'/>
</function>
<function name='xmlNanoFTPDele' file='nanoftp'>
+ <cond>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='char *' info='a file or directory on the server'/>
</function>
<function name='xmlNanoFTPFreeCtxt' file='nanoftp'>
+ <cond>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'>
+ <cond>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'/>
@@ -8982,26 +9658,31 @@ actually an xmlCharEncoding'/>
<arg name='filename' type='const char *' info='the file to retrieve'/>
</function>
<function name='xmlNanoFTPGetConnection' file='nanoftp'>
+ <cond>LIBXML_FTP_ENABLED</cond>
<info>Try to open a data connection to the server. Currently only passive mode is supported.</info>
<return type='int' info='-1 incase of error, 0 otherwise'/>
<arg name='ctx' type='void *' info='an FTP context'/>
</function>
<function name='xmlNanoFTPGetResponse' file='nanoftp'>
+ <cond>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'>
+ <cond>LIBXML_FTP_ENABLED</cond>
<info>Initiate fetch of the given file from the server.</info>
<return type='int' 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'>
+ <cond>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'>
+ <cond>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'/>
@@ -9010,16 +9691,19 @@ actually an xmlCharEncoding'/>
<arg name='filename' type='char *' info='optional files to list'/>
</function>
<function name='xmlNanoFTPNewCtxt' file='nanoftp'>
+ <cond>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'>
+ <cond>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'>
+ <cond>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'/>
@@ -9029,11 +9713,13 @@ actually an xmlCharEncoding'/>
<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'>
+ <cond>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'>
+ <cond>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'/>
@@ -9041,36 +9727,43 @@ actually an xmlCharEncoding'/>
<arg name='len' type='int' info='the buffer length'/>
</function>
<function name='xmlNanoFTPScanProxy' file='nanoftp'>
+ <cond>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'>
+ <cond>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'>
+ <cond>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'>
+ <cond>LIBXML_HTTP_ENABLED</cond>
<info>Cleanup the HTTP protocol layer.</info>
<return type='void'/>
</function>
<function name='xmlNanoHTTPClose' file='nanohttp'>
+ <cond>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='xmlNanoHTTPEncoding' file='nanohttp'>
+ <cond>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'>
+ <cond>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'/>
@@ -9078,10 +9771,12 @@ actually an xmlCharEncoding'/>
<arg name='contentType' type='char **' info='if available the Content-Type information will be returned at that location'/>
</function>
<function name='xmlNanoHTTPInit' file='nanohttp'>
+ <cond>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'>
+ <cond>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'/>
@@ -9092,6 +9787,7 @@ actually an xmlCharEncoding'/>
<arg name='ilen' type='int' info='input length'/>
</function>
<function name='xmlNanoHTTPMethodRedir' file='nanohttp'>
+ <cond>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'/>
@@ -9103,17 +9799,20 @@ actually an xmlCharEncoding'/>
<arg name='ilen' type='int' info='input length'/>
</function>
<function name='xmlNanoHTTPMimeType' file='nanohttp'>
+ <cond>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'>
+ <cond>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'>
+ <cond>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'/>
@@ -9121,6 +9820,7 @@ actually an xmlCharEncoding'/>
<arg name='redir' type='char **' info='if available the redirected URL will be returned'/>
</function>
<function name='xmlNanoHTTPRead' file='nanohttp'>
+ <cond>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'/>
@@ -9128,27 +9828,33 @@ actually an xmlCharEncoding'/>
<arg name='len' type='int' info='the buffer length'/>
</function>
<function name='xmlNanoHTTPRedir' file='nanohttp'>
+ <cond>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'>
+ <cond>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'>
+ <cond>LIBXML_HTTP_ENABLED</cond>
+ <cond>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'>
+ <cond>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'>
+ <cond>LIBXML_AUTOMATA_ENABLED</cond>
<info>Create a new automata</info>
<return type='xmlAutomataPtr' info='the new object or NULL in case of failure'/>
</function>
@@ -9160,6 +9866,7 @@ actually an xmlCharEncoding'/>
<arg name='len' type='int' info='the length of the block'/>
</function>
<function name='xmlNewCatalog' file='catalog'>
+ <cond>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'/>
@@ -9202,6 +9909,7 @@ actually an xmlCharEncoding'/>
<arg name='content' type='const xmlChar *' info='the comment content'/>
</function>
<function name='xmlNewDocFragment' file='tree'>
+ <cond>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'/>
@@ -9387,46 +10095,54 @@ actually an xmlCharEncoding'/>
<arg name='len' type='int' info='the text len.'/>
</function>
<function name='xmlNewTextReader' file='xmlreader'>
+ <cond>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'>
+ <cond>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'>
+ <cond>LIBXML_WRITER_ENABLED</cond>
<info>Create a new xmlNewTextWriter structure using an xmlOutputBufferPtr</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'>
+ <cond>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'>
+ <cond>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'>
+ <cond>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'>
+ <cond>LIBXML_WRITER_ENABLED</cond>
<info>Create a new xmlNewTextWriter structure with @ctxt as output 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'>
+ <cond>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'/>
@@ -9469,6 +10185,7 @@ actually an xmlCharEncoding'/>
<arg name='cur' type='xmlNodePtr' info='the node being read'/>
</function>
<function name='xmlNodeDump' file='tree'>
+ <cond>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='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'/>
@@ -9478,6 +10195,7 @@ actually an xmlCharEncoding'/>
<arg name='format' type='int' info='is formatting allowed'/>
</function>
<function name='xmlNodeDumpOutput' file='tree'>
+ <cond>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'/>
@@ -9514,6 +10232,7 @@ actually an xmlCharEncoding'/>
<arg name='node' type='xmlNodePtr' info='the node'/>
</function>
<function name='xmlNodeListGetRawString' file='tree'>
+ <cond>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='xmlDocPtr' info='the document'/>
@@ -9528,6 +10247,7 @@ actually an xmlCharEncoding'/>
<arg name='inLine' type='int' info='should we replace entity contents or show their external form'/>
</function>
<function name='xmlNodeSetBase' file='tree'>
+ <cond>LIBXML_TREE_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'/>
@@ -9540,6 +10260,7 @@ actually an xmlCharEncoding'/>
<arg name='content' type='const xmlChar *' info='the new value of the content'/>
</function>
<function name='xmlNodeSetContentLen' file='tree'>
+ <cond>LIBXML_TREE_ENABLED</cond>
<info>Replace the content of a node.</info>
<return type='void'/>
<arg name='cur' type='xmlNodePtr' info='the node being modified'/>
@@ -9547,18 +10268,21 @@ actually an xmlCharEncoding'/>
<arg name='len' type='int' info='the size of @content'/>
</function>
<function name='xmlNodeSetLang' file='tree'>
+ <cond>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'>
+ <cond>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'>
+ <cond>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'/>
@@ -9575,30 +10299,47 @@ actually an xmlCharEncoding'/>
<arg name='path' type='const xmlChar *' info='the input file path'/>
</function>
<function name='xmlOutputBufferClose' file='xmlIO'>
+ <cond>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='xmlOutputBufferCreateFd' file='xmlIO'>
+ <cond>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'>
+ <cond>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'>
+ <cond>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'>
+ <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'>
+ <info></info>
+ <return type='xmlOutputBufferPtr' info=''/>
+ <arg name='URI' type='const char *' info=''/>
+ <arg name='encoder' type='xmlCharEncodingHandlerPtr' info=''/>
+ <arg name='compression' type='int' info=''/>
+ </functype>
<function name='xmlOutputBufferCreateIO' file='xmlIO'>
+ <cond>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'/>
@@ -9607,11 +10348,13 @@ actually an xmlCharEncoding'/>
<arg name='encoder' type='xmlCharEncodingHandlerPtr' info='the charset encoding if known'/>
</function>
<function name='xmlOutputBufferFlush' file='xmlIO'>
+ <cond>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='xmlOutputBufferWrite' file='xmlIO'>
+ <cond>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'/>
@@ -9619,6 +10362,7 @@ actually an xmlCharEncoding'/>
<arg name='buf' type='const char *' info='an char array'/>
</function>
<function name='xmlOutputBufferWriteEscape' file='xmlIO'>
+ <cond>LIBXML_OUTPUT_ENABLED</cond>
<info>Write the content of the string in the output I/O buffer This routine escapes the caracters 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'/>
@@ -9626,27 +10370,32 @@ actually an xmlCharEncoding'/>
<arg name='escaping' type='xmlCharEncodingOutputFunc' info='an optional escaping function (or NULL)'/>
</function>
<function name='xmlOutputBufferWriteString' file='xmlIO'>
+ <cond>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'>
+ <cond>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'>
+ <cond>LIBXML_OUTPUT_ENABLED</cond>
<info>Callback used in the I/O Output API to detect if the current handler can provide output fonctionnalities 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'>
+ <cond>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'>
+ <cond>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'/>
@@ -9702,6 +10451,7 @@ actually an xmlCharEncoding'/>
<arg name='ctxt' type='xmlParserCtxtPtr' info='an XML parser context'/>
</function>
<function name='xmlParseCatalogFile' file='catalog'>
+ <cond>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'/>
@@ -9723,6 +10473,7 @@ actually an xmlCharEncoding'/>
<arg name='ctxt' type='xmlParserCtxtPtr' info='an XML parser context'/>
</function>
<function name='xmlParseChunk' file='parser'>
+ <cond>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'/>
@@ -10061,6 +10812,17 @@ actually an xmlCharEncoding'/>
<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'>
+ <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'>
+ <info></info>
+ <return type='xmlParserInputBufferPtr' info=''/>
+ <arg name='URI' type='const char *' info=''/>
+ <arg name='enc' type='xmlCharEncoding' info=''/>
+ </functype>
<function name='xmlParserInputBufferCreateIO' file='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'/>
@@ -10156,12 +10918,14 @@ actually an xmlCharEncoding'/>
<arg name='...' type='...' info='extra parameters for the message display'/>
</function>
<function name='xmlPatternMatch' file='pattern'>
+ <cond>LIBXML_PATTERN_ENABLED</cond>
<info>Test wether 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='xmlPatterncompile' file='pattern'>
+ <cond>LIBXML_PATTERN_ENABLED</cond>
<info>Compile a pattern.</info>
<return type='xmlPatternPtr' info='the compiled for of the pattern or NULL in case of error'/>
<arg name='pattern' type='const xmlChar *' info='the pattern to compile'/>
@@ -10248,6 +11012,7 @@ actually an xmlCharEncoding'/>
<arg name='options' type='int' info='a combination of xmlParserOption'/>
</function>
<function name='xmlReaderForDoc' file='xmlreader'>
+ <cond>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'/>
@@ -10256,6 +11021,7 @@ actually an xmlCharEncoding'/>
<arg name='options' type='int' info='a combination of xmlParserOption'/>
</function>
<function name='xmlReaderForFd' file='xmlreader'>
+ <cond>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'/>
@@ -10264,6 +11030,7 @@ actually an xmlCharEncoding'/>
<arg name='options' type='int' info='a combination of xmlParserOption'/>
</function>
<function name='xmlReaderForFile' file='xmlreader'>
+ <cond>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'/>
@@ -10271,6 +11038,7 @@ actually an xmlCharEncoding'/>
<arg name='options' type='int' info='a combination of xmlParserOption'/>
</function>
<function name='xmlReaderForIO' file='xmlreader'>
+ <cond>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'/>
@@ -10281,6 +11049,7 @@ actually an xmlCharEncoding'/>
<arg name='options' type='int' info='a combination of xmlParserOption'/>
</function>
<function name='xmlReaderForMemory' file='xmlreader'>
+ <cond>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'/>
@@ -10290,6 +11059,7 @@ actually an xmlCharEncoding'/>
<arg name='options' type='int' info='a combination of xmlParserOption'/>
</function>
<function name='xmlReaderNewDoc' file='xmlreader'>
+ <cond>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'/>
@@ -10299,6 +11069,7 @@ actually an xmlCharEncoding'/>
<arg name='options' type='int' info='a combination of xmlParserOption'/>
</function>
<function name='xmlReaderNewFd' file='xmlreader'>
+ <cond>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'/>
@@ -10308,6 +11079,7 @@ actually an xmlCharEncoding'/>
<arg name='options' type='int' info='a combination of xmlParserOption'/>
</function>
<function name='xmlReaderNewFile' file='xmlreader'>
+ <cond>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'/>
@@ -10316,6 +11088,7 @@ actually an xmlCharEncoding'/>
<arg name='options' type='int' info='a combination of xmlParserOption'/>
</function>
<function name='xmlReaderNewIO' file='xmlreader'>
+ <cond>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'/>
@@ -10327,6 +11100,7 @@ actually an xmlCharEncoding'/>
<arg name='options' type='int' info='a combination of xmlParserOption'/>
</function>
<function name='xmlReaderNewMemory' file='xmlreader'>
+ <cond>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'/>
@@ -10337,12 +11111,14 @@ actually an xmlCharEncoding'/>
<arg name='options' type='int' info='a combination of xmlParserOption'/>
</function>
<function name='xmlReaderNewWalker' file='xmlreader'>
+ <cond>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'>
+ <cond>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'/>
@@ -10384,6 +11160,7 @@ actually an xmlCharEncoding'/>
<arg name='size' type='int' info='the size of the array'/>
</function>
<functype name='xmlRegExecCallbacks' file='xmlregexp'>
+ <cond>LIBXML_REGEXP_ENABLED</cond>
<info></info>
<return type='void'/>
<arg name='exec' type='xmlRegExecCtxtPtr' info=''/>
@@ -10392,6 +11169,7 @@ actually an xmlCharEncoding'/>
<arg name='inputdata' type='void *' info=''/>
</functype>
<function name='xmlRegExecPushString' file='xmlregexp'>
+ <cond>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'/>
@@ -10399,6 +11177,7 @@ actually an xmlCharEncoding'/>
<arg name='data' type='void *' info='data associated to the token to reuse in callbacks'/>
</function>
<function name='xmlRegExecPushString2' file='xmlregexp'>
+ <cond>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'/>
@@ -10407,16 +11186,19 @@ actually an xmlCharEncoding'/>
<arg name='data' type='void *' info='data associated to the token to reuse in callbacks'/>
</function>
<function name='xmlRegFreeExecCtxt' file='xmlregexp'>
+ <cond>LIBXML_REGEXP_ENABLED</cond>
<info>Free the structures associated to a regular expression evaulation context.</info>
<return type='void'/>
<arg name='exec' type='xmlRegExecCtxtPtr' info='a regular expression evaulation context'/>
</function>
<function name='xmlRegFreeRegexp' file='xmlregexp'>
+ <cond>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'>
+ <cond>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'/>
@@ -10424,22 +11206,26 @@ actually an xmlCharEncoding'/>
<arg name='data' type='void *' info='the context data associated to the callback in this context'/>
</function>
<function name='xmlRegexpCompile' file='xmlregexp'>
+ <cond>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'>
+ <cond>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'>
+ <cond>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'>
+ <cond>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'/>
@@ -10455,10 +11241,12 @@ actually an xmlCharEncoding'/>
<return type='void'/>
</function>
<function name='xmlRegisterDefaultOutputCallbacks' file='xmlIO'>
+ <cond>LIBXML_OUTPUT_ENABLED</cond>
<info>Registers the default compiled-in I/O handlers.</info>
<return type='void'/>
</function>
<function name='xmlRegisterHTTPPostCallbacks' file='xmlIO'>
+ <cond>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>
@@ -10481,6 +11269,7 @@ actually an xmlCharEncoding'/>
<arg name='node' type='xmlNodePtr' info=''/>
</functype>
<function name='xmlRegisterOutputCallbacks' file='xmlIO'>
+ <cond>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'/>
@@ -10489,37 +11278,46 @@ actually an xmlCharEncoding'/>
<arg name='closeFunc' type='xmlOutputCloseCallback' info='the xmlOutputCloseCallback'/>
</function>
<function name='xmlRelaxNGCleanupTypes' file='relaxng'>
+ <cond>LIBXML_SCHEMAS_ENABLED</cond>
<info>Cleanup the default Schemas type library associated to RelaxNG</info>
<return type='void'/>
</function>
<function name='xmlRelaxNGDump' file='relaxng'>
+ <cond>LIBXML_SCHEMAS_ENABLED</cond>
+ <cond>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'>
+ <cond>LIBXML_SCHEMAS_ENABLED</cond>
+ <cond>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'>
+ <cond>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'>
+ <cond>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'>
+ <cond>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'>
+ <cond>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'/>
@@ -10528,6 +11326,7 @@ actually an xmlCharEncoding'/>
<arg name='ctx' type='void **' info='contextual data for the callbacks result'/>
</function>
<function name='xmlRelaxNGGetValidErrors' file='relaxng'>
+ <cond>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'/>
@@ -10536,32 +11335,38 @@ actually an xmlCharEncoding'/>
<arg name='ctx' type='void **' info='the functions context result'/>
</function>
<function name='xmlRelaxNGNewDocParserCtxt' file='relaxng'>
+ <cond>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'>
+ <cond>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'>
+ <cond>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'>
+ <cond>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'>
+ <cond>LIBXML_SCHEMAS_ENABLED</cond>
<info>parse a schema definition resource and build an internal XML Shema struture which can be used to validate instances. *WARNING* this interface is highly subject to change</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'>
+ <cond>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'/>
@@ -10570,6 +11375,7 @@ actually an xmlCharEncoding'/>
<arg name='ctx' type='void *' info='contextual data for the callbacks'/>
</function>
<function name='xmlRelaxNGSetValidErrors' file='relaxng'>
+ <cond>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'/>
@@ -10578,12 +11384,14 @@ actually an xmlCharEncoding'/>
<arg name='ctx' type='void *' info='the functions context'/>
</function>
<function name='xmlRelaxNGValidateDoc' file='relaxng'>
+ <cond>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'>
+ <cond>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'/>
@@ -10591,6 +11399,7 @@ actually an xmlCharEncoding'/>
<arg name='elem' type='xmlNodePtr' info='an element instance'/>
</function>
<function name='xmlRelaxNGValidatePopElement' file='relaxng'>
+ <cond>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'/>
@@ -10598,6 +11407,7 @@ actually an xmlCharEncoding'/>
<arg name='elem' type='xmlNodePtr' info='an element instance'/>
</function>
<function name='xmlRelaxNGValidatePushCData' file='relaxng'>
+ <cond>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'/>
@@ -10605,6 +11415,7 @@ actually an xmlCharEncoding'/>
<arg name='len' type='int' info='the lenght of the data'/>
</function>
<function name='xmlRelaxNGValidatePushElement' file='relaxng'>
+ <cond>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'/>
@@ -10612,6 +11423,7 @@ actually an xmlCharEncoding'/>
<arg name='elem' type='xmlNodePtr' info='an element instance'/>
</function>
<functype name='xmlRelaxNGValidityErrorFunc' file='relaxng'>
+ <cond>LIBXML_SCHEMAS_ENABLED</cond>
<info></info>
<return type='void'/>
<arg name='ctx' type='void *' info=''/>
@@ -10619,6 +11431,7 @@ actually an xmlCharEncoding'/>
<arg name='...' type='...' info=''/>
</functype>
<functype name='xmlRelaxNGValidityWarningFunc' file='relaxng'>
+ <cond>LIBXML_SCHEMAS_ENABLED</cond>
<info></info>
<return type='void'/>
<arg name='ctx' type='void *' info=''/>
@@ -10626,6 +11439,7 @@ actually an xmlCharEncoding'/>
<arg name='...' type='...' info=''/>
</functype>
<function name='xmlRelaxParserSetFlag' file='relaxng'>
+ <cond>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'/>
@@ -10638,6 +11452,7 @@ actually an xmlCharEncoding'/>
<arg name='attr' type='xmlAttrPtr' info='the attribute'/>
</function>
<function name='xmlRemoveProp' file='tree'>
+ <cond>LIBXML_TREE_ENABLED</cond>
<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'/>
@@ -10649,6 +11464,7 @@ actually an xmlCharEncoding'/>
<arg name='attr' type='xmlAttrPtr' info='the attribute'/>
</function>
<function name='xmlReplaceNode' file='tree'>
+ <cond>LIBXML_TREE_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'/>
@@ -10795,11 +11611,13 @@ actually an xmlCharEncoding'/>
<arg name='warning' type='int' info='flag if non-zero sets the handler warning procedure'/>
</function>
<function name='xmlSAX2InitDocbDefaultSAXHandler' file='SAX2'>
+ <cond>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'>
+ <cond>LIBXML_HTML_ENABLED</cond>
<info>Initialize the default HTML SAX2 handler</info>
<return type='void'/>
<arg name='hdlr' type='xmlSAXHandler *' info='the SAX handler'/>
@@ -10886,7 +11704,7 @@ actually an xmlCharEncoding'/>
<arg name='notationName' type='const xmlChar *' info='the name of the notation'/>
</function>
<function name='xmlSAXDefaultVersion' file='SAX2'>
- <info>Set the default version of SAX used globally by the library. Note that this may not be a good thing to do from a library it is better to use xmlSAXVersion() to set up specifically the version for a given parsing context.</info>
+ <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>
@@ -10964,23 +11782,27 @@ actually an xmlCharEncoding'/>
<arg name='version' type='int' info='the version, 1 or 2'/>
</function>
<function name='xmlSaveClose' file='xmlsave'>
+ <cond>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'>
+ <cond>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'>
+ <cond>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'>
+ <cond>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)'/>
@@ -10988,6 +11810,7 @@ actually an xmlCharEncoding'/>
<arg name='encoding' type='const char *' info='the name of an encoding (or NULL)'/>
</function>
<function name='xmlSaveFileTo' file='tree'>
+ <cond>LIBXML_OUTPUT_ENABLED</cond>
<info>Dump an XML document to an I/O buffer.</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'/>
@@ -10995,11 +11818,13 @@ actually an xmlCharEncoding'/>
<arg name='encoding' type='const char *' info='the encoding if any assuming the I/O layer handles the trancoding'/>
</function>
<function name='xmlSaveFlush' file='xmlsave'>
+ <cond>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'>
+ <cond>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)'/>
@@ -11007,6 +11832,7 @@ actually an xmlCharEncoding'/>
<arg name='format' type='int' info='should formatting spaces been added'/>
</function>
<function name='xmlSaveFormatFileEnc' file='tree'>
+ <cond>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'/>
@@ -11015,6 +11841,7 @@ actually an xmlCharEncoding'/>
<arg name='format' type='int' info='should formatting spaces be added.'/>
</function>
<function name='xmlSaveFormatFileTo' file='tree'>
+ <cond>LIBXML_OUTPUT_ENABLED</cond>
<info>Dump an XML document to an I/O buffer. NOTE: the I/O buffer is closed as part of the 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'/>
@@ -11023,25 +11850,21 @@ actually an xmlCharEncoding'/>
<arg name='format' type='int' info='should formatting spaces been added'/>
</function>
<function name='xmlSaveSetAttrEscape' file='xmlsave'>
+ <cond>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'>
+ <cond>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'>
- <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'>
+ <cond>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'/>
@@ -11049,6 +11872,7 @@ actually an xmlCharEncoding'/>
<arg name='options' type='int' info='a set of xmlSaveOptions'/>
</function>
<function name='xmlSaveToFilename' file='xmlsave'>
+ <cond>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'/>
@@ -11056,6 +11880,7 @@ actually an xmlCharEncoding'/>
<arg name='options' type='int' info='a set of xmlSaveOptions'/>
</function>
<function name='xmlSaveToIO' file='xmlsave'>
+ <cond>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'/>
@@ -11065,6 +11890,7 @@ actually an xmlCharEncoding'/>
<arg name='options' type='int' info='a set of xmlSaveOptions'/>
</function>
<function name='xmlSaveTree' file='xmlsave'>
+ <cond>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'/>
@@ -11081,6 +11907,7 @@ actually an xmlCharEncoding'/>
<arg name='ctxt' type='xmlParserCtxtPtr' info='an XML parser context'/>
</function>
<function name='xmlSchemaCheckFacet' file='xmlschemastypes'>
+ <cond>LIBXML_SCHEMAS_ENABLED</cond>
<info>Checks the default values types, especially for facets</info>
<return type='int' info='0 if okay or -1 in cae of error'/>
<arg name='facet' type='xmlSchemaFacetPtr' info='the facet'/>
@@ -11089,92 +11916,142 @@ actually an xmlCharEncoding'/>
<arg name='name' type='const xmlChar *' info='name of the type'/>
</function>
<function name='xmlSchemaCleanupTypes' file='xmlschemastypes'>
+ <cond>LIBXML_SCHEMAS_ENABLED</cond>
<info>Cleanup the default XML Schemas type library</info>
<return type='void'/>
</function>
+ <function name='xmlSchemaCollapseString' file='xmlschemastypes'>
+ <cond>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'>
+ <cond>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='xmlSchemaDump' file='xmlschemas'>
+ <cond>LIBXML_SCHEMAS_ENABLED</cond>
+ <cond>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'>
+ <cond>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'>
+ <cond>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'>
+ <cond>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'>
+ <cond>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'>
+ <cond>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'>
+ <cond>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'>
+ <cond>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'>
+ <cond>LIBXML_SCHEMAS_ENABLED</cond>
+ <info></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'>
+ <cond>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='xmlSchemaGetPredefinedType' file='xmlschemastypes'>
+ <cond>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='xmlSchemaInitTypes' file='xmlschemastypes'>
+ <cond>LIBXML_SCHEMAS_ENABLED</cond>
<info>Initialize the default XML Schemas type library</info>
<return type='void'/>
</function>
+ <function name='xmlSchemaIsBuiltInTypeFacet' file='xmlschemastypes'>
+ <cond>LIBXML_SCHEMAS_ENABLED</cond>
+ <info></info>
+ <return type='int' info=''/>
+ <arg name='type' type='xmlSchemaTypePtr' info=''/>
+ <arg name='facetType' type='int' info=''/>
+ </function>
<function name='xmlSchemaNewDocParserCtxt' file='xmlschemas'>
+ <cond>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'>
+ <cond>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'>
+ <cond>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='xmlSchemaNewParserCtxt' file='xmlschemas'>
+ <cond>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='xmlSchemaNewValidCtxt' file='xmlschemas'>
+ <cond>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'>
+ <cond>LIBXML_SCHEMAS_ENABLED</cond>
<info>parse a schema definition resource and build an internal XML Shema struture which can be used to validate instances. *WARNING* this interface is highly subject to change</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='xmlSchemaSetParserErrors' file='xmlschemas'>
+ <cond>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'/>
@@ -11183,6 +12060,7 @@ actually an xmlCharEncoding'/>
<arg name='ctx' type='void *' info='contextual data for the callbacks'/>
</function>
<function name='xmlSchemaSetValidErrors' file='xmlschemas'>
+ <cond>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'/>
@@ -11191,6 +12069,7 @@ actually an xmlCharEncoding'/>
<arg name='ctx' type='void *' info='the functions context'/>
</function>
<function name='xmlSchemaValPredefTypeNode' file='xmlschemastypes'>
+ <cond>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'/>
@@ -11199,12 +12078,14 @@ actually an xmlCharEncoding'/>
<arg name='node' type='xmlNodePtr' info='the node containing the value'/>
</function>
<function name='xmlSchemaValidateDoc' file='xmlschemas'>
+ <cond>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'>
+ <cond>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'/>
@@ -11212,7 +12093,17 @@ actually an xmlCharEncoding'/>
<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='xmlSchemaValidateListSimpleTypeFacet' file='xmlschemastypes'>
+ <cond>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='xmlSchemaValidatePredefinedType' file='xmlschemastypes'>
+ <cond>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'/>
@@ -11220,6 +12111,7 @@ actually an xmlCharEncoding'/>
<arg name='val' type='xmlSchemaValPtr *' info='the return computed value'/>
</function>
<function name='xmlSchemaValidateStream' file='xmlschemas'>
+ <cond>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'/>
@@ -11229,6 +12121,7 @@ actually an xmlCharEncoding'/>
<arg name='user_data' type='void *' info='the context to provide to the SAX handler.'/>
</function>
<functype name='xmlSchemaValidityErrorFunc' file='xmlschemas'>
+ <cond>LIBXML_SCHEMAS_ENABLED</cond>
<info></info>
<return type='void'/>
<arg name='ctx' type='void *' info=''/>
@@ -11236,6 +12129,7 @@ actually an xmlCharEncoding'/>
<arg name='...' type='...' info=''/>
</functype>
<functype name='xmlSchemaValidityWarningFunc' file='xmlschemas'>
+ <cond>LIBXML_SCHEMAS_ENABLED</cond>
<info></info>
<return type='void'/>
<arg name='ctx' type='void *' info=''/>
@@ -11308,6 +12202,7 @@ actually an xmlCharEncoding'/>
<arg name='ns' type='xmlNsPtr' info='a namespace pointer'/>
</function>
<function name='xmlSetNsProp' file='tree'>
+ <cond>LIBXML_TREE_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'/>
@@ -11316,6 +12211,7 @@ actually an xmlCharEncoding'/>
<arg name='value' type='const xmlChar *' info='the attribute value'/>
</function>
<function name='xmlSetProp' file='tree'>
+ <cond>LIBXML_TREE_ENABLED</cond>
<info>Set (or reset) an attribute carried by a node.</info>
<return type='xmlAttrPtr' info='the attribute pointer.'/>
<arg name='node' type='xmlNodePtr' info='the node'/>
@@ -11342,6 +12238,7 @@ actually an xmlCharEncoding'/>
<arg name='filename' type='const char *' info='a file name'/>
</function>
<function name='xmlShell' file='debugXML'>
+ <cond>LIBXML_DEBUG_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'/>
@@ -11350,6 +12247,7 @@ actually an xmlCharEncoding'/>
<arg name='output' type='FILE *' info='the output FILE*, defaults to stdout if NULL'/>
</function>
<function name='xmlShellBase' file='debugXML'>
+ <cond>LIBXML_DEBUG_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'/>
@@ -11358,6 +12256,7 @@ actually an xmlCharEncoding'/>
<arg name='node2' type='xmlNodePtr' info='unused'/>
</function>
<function name='xmlShellCat' file='debugXML'>
+ <cond>LIBXML_DEBUG_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'/>
@@ -11366,6 +12265,7 @@ actually an xmlCharEncoding'/>
<arg name='node2' type='xmlNodePtr' info='unused'/>
</function>
<functype name='xmlShellCmd' file='debugXML'>
+ <cond>LIBXML_DEBUG_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'/>
@@ -11374,6 +12274,7 @@ actually an xmlCharEncoding'/>
<arg name='node2' type='xmlNodePtr' info='a second node'/>
</functype>
<function name='xmlShellDir' file='debugXML'>
+ <cond>LIBXML_DEBUG_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'/>
@@ -11382,6 +12283,7 @@ actually an xmlCharEncoding'/>
<arg name='node2' type='xmlNodePtr' info='unused'/>
</function>
<function name='xmlShellDu' file='debugXML'>
+ <cond>LIBXML_DEBUG_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'/>
@@ -11390,6 +12292,7 @@ actually an xmlCharEncoding'/>
<arg name='node2' type='xmlNodePtr' info='unused'/>
</function>
<function name='xmlShellList' file='debugXML'>
+ <cond>LIBXML_DEBUG_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'/>
@@ -11398,6 +12301,7 @@ actually an xmlCharEncoding'/>
<arg name='node2' type='xmlNodePtr' info='unused'/>
</function>
<function name='xmlShellLoad' file='debugXML'>
+ <cond>LIBXML_DEBUG_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'/>
@@ -11406,22 +12310,26 @@ actually an xmlCharEncoding'/>
<arg name='node2' type='xmlNodePtr' info='unused'/>
</function>
<function name='xmlShellPrintNode' file='debugXML'>
+ <cond>LIBXML_DEBUG_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'>
+ <cond>LIBXML_DEBUG_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'>
+ <cond>LIBXML_DEBUG_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'>
+ <cond>LIBXML_DEBUG_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'/>
@@ -11430,11 +12338,14 @@ actually an xmlCharEncoding'/>
<arg name='node2' type='xmlNodePtr' info='unused'/>
</function>
<functype name='xmlShellReadlineFunc' file='debugXML'>
+ <cond>LIBXML_DEBUG_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'>
+ <cond>LIBXML_DEBUG_ENABLED</cond>
+ <cond>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'/>
@@ -11443,6 +12354,7 @@ actually an xmlCharEncoding'/>
<arg name='node2' type='xmlNodePtr' info='unused'/>
</function>
<function name='xmlShellValidate' file='debugXML'>
+ <cond>LIBXML_DEBUG_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'/>
@@ -11451,6 +12363,8 @@ actually an xmlCharEncoding'/>
<arg name='node2' type='xmlNodePtr' info='unused'/>
</function>
<function name='xmlShellWrite' file='debugXML'>
+ <cond>LIBXML_DEBUG_ENABLED</cond>
+ <cond>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'/>
@@ -11708,77 +12622,92 @@ actually an xmlCharEncoding'/>
<arg name='second' type='xmlNodePtr' info='the second text node being merged'/>
</function>
<function name='xmlTextReaderAttributeCount' file='xmlreader'>
+ <cond>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'>
+ <cond>LIBXML_READER_ENABLED</cond>
<info>The base URI of the node.</info>
<return type='xmlChar *' info='the base URI or NULL if not available'/>
<arg name='reader' type='xmlTextReaderPtr' info='the xmlTextReaderPtr used'/>
</function>
<function name='xmlTextReaderClose' file='xmlreader'>
+ <cond>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'>
+ <cond>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='xmlTextReaderConstLocalName' file='xmlreader'>
+ <cond>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'>
+ <cond>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'>
+ <cond>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'>
+ <cond>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'>
+ <cond>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'>
+ <cond>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'>
+ <cond>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='xmlTextReaderCurrentDoc' file='xmlreader'>
+ <cond>LIBXML_READER_ENABLED</cond>
<info>Hacking interface allowing to get the xmlDocPtr correponding 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'>
+ <cond>LIBXML_READER_ENABLED</cond>
<info>Hacking interface allowing to get the xmlNodePtr correponding 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'>
+ <cond>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'>
+ <cond>LIBXML_READER_ENABLED</cond>
<info></info>
<return type='void'/>
<arg name='arg' type='void *' info=''/>
@@ -11787,23 +12716,27 @@ actually an xmlCharEncoding'/>
<arg name='locator' type='xmlTextReaderLocatorPtr' info=''/>
</functype>
<function name='xmlTextReaderExpand' file='xmlreader'>
+ <cond>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'>
+ <cond>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'>
+ <cond>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'>
+ <cond>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'/>
@@ -11811,6 +12744,7 @@ actually an xmlCharEncoding'/>
<arg name='namespaceURI' type='const xmlChar *' info='the namespace URI of the attribute.'/>
</function>
<function name='xmlTextReaderGetErrorHandler' file='xmlreader'>
+ <cond>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'/>
@@ -11818,75 +12752,89 @@ actually an xmlCharEncoding'/>
<arg name='arg' type='void **' info='a user argument'/>
</function>
<function name='xmlTextReaderGetParserProp' file='xmlreader'>
+ <cond>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'>
+ <cond>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 procgressed 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'>
+ <cond>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'>
+ <cond>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'>
+ <cond>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'>
+ <cond>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='xmlTextReaderIsValid' file='xmlreader'>
+ <cond>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'>
+ <cond>LIBXML_READER_ENABLED</cond>
<info>The local name of the node.</info>
<return type='xmlChar *' info='the local name or NULL if not available'/>
<arg name='reader' type='xmlTextReaderPtr' info='the xmlTextReaderPtr used'/>
</function>
<function name='xmlTextReaderLocatorBaseURI' file='xmlreader'>
+ <cond>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.'/>
<arg name='locator' type='xmlTextReaderLocatorPtr' info='the xmlTextReaderLocatorPtr used'/>
</function>
<function name='xmlTextReaderLocatorLineNumber' file='xmlreader'>
+ <cond>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'>
+ <cond>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'>
+ <cond>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'>
+ <cond>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'>
+ <cond>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'/>
@@ -11894,61 +12842,73 @@ actually an xmlCharEncoding'/>
<arg name='namespaceURI' type='const xmlChar *' info='the namespace URI of the attribute.'/>
</function>
<function name='xmlTextReaderMoveToElement' file='xmlreader'>
+ <cond>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'>
+ <cond>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'>
+ <cond>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'>
+ <cond>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'/>
<arg name='reader' type='xmlTextReaderPtr' info='the xmlTextReaderPtr used'/>
</function>
<function name='xmlTextReaderNamespaceUri' file='xmlreader'>
+ <cond>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'/>
<arg name='reader' type='xmlTextReaderPtr' info='the xmlTextReaderPtr used'/>
</function>
<function name='xmlTextReaderNext' file='xmlreader'>
+ <cond>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'>
+ <cond>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'>
+ <cond>LIBXML_READER_ENABLED</cond>
<info>Get the node type of the current node Reference: http://dotgnu.org/pnetlib-doc/System/Xml/XmlNodeType.html</info>
<return type='int' info='the xmlNodeType 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'>
+ <cond>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'>
+ <cond>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'/>
<arg name='reader' type='xmlTextReaderPtr' info='the xmlTextReaderPtr used'/>
</function>
<function name='xmlTextReaderPreserve' file='xmlreader'>
- <info>current node being accessed by the xmlTextReader. This is dangerous because the underlying node may be destroyed on the next Reads.</info>
+ <cond>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'>
+ <cond>LIBXML_READER_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 positive number in case of success and -1 in case of error'/>
<arg name='reader' type='xmlTextReaderPtr' info='the xmlTextReaderPtr used'/>
@@ -11956,53 +12916,65 @@ actually an xmlCharEncoding'/>
<arg name='namespaces' type='const xmlChar **' info='the prefix definitions, array of [URI, prefix] or NULL'/>
</function>
<function name='xmlTextReaderQuoteChar' file='xmlreader'>
+ <cond>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'>
+ <cond>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'>
+ <cond>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 positionned on an ttribute 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'>
+ <cond>LIBXML_READER_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'>
+ <cond>LIBXML_READER_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='xmlTextReaderReadState' file='xmlreader'>
+ <cond>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'>
+ <cond>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'>
+ <cond>LIBXML_READER_ENABLED</cond>
+ <cond>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 desactivated. @ 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 (des)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'>
+ <cond>LIBXML_READER_ENABLED</cond>
+ <cond>LIBXML_SCHEMAS_ENABLED</cond>
<info>Use RelaxNG to validate the document as it is processed. Activation is only possible before the first Read(). if @rng is NULL, then RelaxNG validation is desactivated.</info>
<return type='int' info='0 in case the RelaxNG validation could be (des)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='xmlTextReaderSetErrorHandler' file='xmlreader'>
+ <cond>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'/>
@@ -12010,6 +12982,7 @@ actually an xmlCharEncoding'/>
<arg name='arg' type='void *' info='a user argument to pass to the callback function'/>
</function>
<function name='xmlTextReaderSetParserProp' file='xmlreader'>
+ <cond>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'/>
@@ -12017,6 +12990,7 @@ actually an xmlCharEncoding'/>
<arg name='value' type='int' info='usually 0 or 1 to (de)activate it'/>
</function>
<function name='xmlTextReaderSetStructuredErrorHandler' file='xmlreader'>
+ <cond>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'/>
@@ -12024,94 +12998,112 @@ actually an xmlCharEncoding'/>
<arg name='arg' type='void *' info='a user argument to pass to the callback function'/>
</function>
<function name='xmlTextReaderValue' file='xmlreader'>
+ <cond>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'>
+ <cond>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.'/>
<arg name='reader' type='xmlTextReaderPtr' info='the xmlTextReaderPtr used'/>
</function>
<function name='xmlTextWriterEndAttribute' file='xmlwriter'>
+ <cond>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'>
+ <cond>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'>
+ <cond>LIBXML_WRITER_ENABLED</cond>
<info>End the current xml coment.</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'>
+ <cond>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'>
+ <cond>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'>
+ <cond>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'>
+ <cond>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'>
+ <cond>LIBXML_WRITER_ENABLED</cond>
<info>End an xml document. All open elements are closed</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='xmlTextWriterEndElement' file='xmlwriter'>
+ <cond>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'>
+ <cond>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'>
+ <cond>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'>
+ <cond>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'>
+ <cond>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'>
+ <cond>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='xmlTextWriterStartAttribute' file='xmlwriter'>
+ <cond>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'>
+ <cond>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'/>
@@ -12120,16 +13112,19 @@ actually an xmlCharEncoding'/>
<arg name='namespaceURI' type='const xmlChar *' info='namespace URI or NULL'/>
</function>
<function name='xmlTextWriterStartCDATA' file='xmlwriter'>
+ <cond>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'>
+ <cond>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'>
+ <cond>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'/>
@@ -12138,18 +13133,21 @@ actually an xmlCharEncoding'/>
<arg name='sysid' type='const xmlChar *' info='the system identifier, which is the URI of the DTD'/>
</function>
<function name='xmlTextWriterStartDTDAttlist' file='xmlwriter'>
+ <cond>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'>
+ <cond>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'>
+ <cond>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'/>
@@ -12157,6 +13155,7 @@ actually an xmlCharEncoding'/>
<arg name='name' type='const xmlChar *' info='the name of the DTD ATTLIST'/>
</function>
<function name='xmlTextWriterStartDocument' file='xmlwriter'>
+ <cond>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'/>
@@ -12165,12 +13164,14 @@ actually an xmlCharEncoding'/>
<arg name='standalone' type='const char *' info='&quot;yes&quot; or &quot;no&quot; or NULL for default'/>
</function>
<function name='xmlTextWriterStartElement' file='xmlwriter'>
+ <cond>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'>
+ <cond>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'/>
@@ -12179,12 +13180,14 @@ actually an xmlCharEncoding'/>
<arg name='namespaceURI' type='const xmlChar *' info='namespace URI or NULL'/>
</function>
<function name='xmlTextWriterStartPI' file='xmlwriter'>
+ <cond>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'>
+ <cond>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'/>
@@ -12192,6 +13195,7 @@ actually an xmlCharEncoding'/>
<arg name='content' type='const xmlChar *' info='attribute content'/>
</function>
<function name='xmlTextWriterWriteAttributeNS' file='xmlwriter'>
+ <cond>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'/>
@@ -12201,6 +13205,7 @@ actually an xmlCharEncoding'/>
<arg name='content' type='const xmlChar *' info='attribute content'/>
</function>
<function name='xmlTextWriterWriteBase64' file='xmlwriter'>
+ <cond>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'/>
@@ -12209,6 +13214,7 @@ actually an xmlCharEncoding'/>
<arg name='len' type='int' info='the number of bytes to encode'/>
</function>
<function name='xmlTextWriterWriteBinHex' file='xmlwriter'>
+ <cond>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'/>
@@ -12217,18 +13223,21 @@ actually an xmlCharEncoding'/>
<arg name='len' type='int' info='the number of bytes to encode'/>
</function>
<function name='xmlTextWriterWriteCDATA' file='xmlwriter'>
+ <cond>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'>
+ <cond>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'>
+ <cond>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'/>
@@ -12238,6 +13247,7 @@ actually an xmlCharEncoding'/>
<arg name='subset' type='const xmlChar *' info='string content of the DTD'/>
</function>
<function name='xmlTextWriterWriteDTDAttlist' file='xmlwriter'>
+ <cond>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'/>
@@ -12245,6 +13255,7 @@ actually an xmlCharEncoding'/>
<arg name='content' type='const xmlChar *' info='content of the ATTLIST'/>
</function>
<function name='xmlTextWriterWriteDTDElement' file='xmlwriter'>
+ <cond>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'/>
@@ -12252,6 +13263,7 @@ actually an xmlCharEncoding'/>
<arg name='content' type='const xmlChar *' info='content of the element'/>
</function>
<function name='xmlTextWriterWriteDTDEntity' file='xmlwriter'>
+ <cond>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'/>
@@ -12263,6 +13275,7 @@ actually an xmlCharEncoding'/>
<arg name='content' type='const xmlChar *' info='content of the entity'/>
</function>
<function name='xmlTextWriterWriteDTDExternalEntity' file='xmlwriter'>
+ <cond>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'/>
@@ -12273,6 +13286,7 @@ actually an xmlCharEncoding'/>
<arg name='ndataid' type='const xmlChar *' info='the xml notation name.'/>
</function>
<function name='xmlTextWriterWriteDTDExternalEntityContents' file='xmlwriter'>
+ <cond>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'/>
@@ -12281,6 +13295,7 @@ actually an xmlCharEncoding'/>
<arg name='ndataid' type='const xmlChar *' info='the xml notation name.'/>
</function>
<function name='xmlTextWriterWriteDTDInternalEntity' file='xmlwriter'>
+ <cond>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'/>
@@ -12289,6 +13304,7 @@ actually an xmlCharEncoding'/>
<arg name='content' type='const xmlChar *' info='content of the entity'/>
</function>
<function name='xmlTextWriterWriteDTDNotation' file='xmlwriter'>
+ <cond>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'/>
@@ -12297,6 +13313,7 @@ actually an xmlCharEncoding'/>
<arg name='sysid' type='const xmlChar *' info='the system identifier, which is the URI of the DTD'/>
</function>
<function name='xmlTextWriterWriteElement' file='xmlwriter'>
+ <cond>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'/>
@@ -12304,6 +13321,7 @@ actually an xmlCharEncoding'/>
<arg name='content' type='const xmlChar *' info='element content'/>
</function>
<function name='xmlTextWriterWriteElementNS' file='xmlwriter'>
+ <cond>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'/>
@@ -12313,6 +13331,7 @@ actually an xmlCharEncoding'/>
<arg name='content' type='const xmlChar *' info='element content'/>
</function>
<function name='xmlTextWriterWriteFormatAttribute' file='xmlwriter'>
+ <cond>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'/>
@@ -12321,6 +13340,7 @@ actually an xmlCharEncoding'/>
<arg name='...' type='...' info='extra parameters for the format'/>
</function>
<function name='xmlTextWriterWriteFormatAttributeNS' file='xmlwriter'>
+ <cond>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'/>
@@ -12331,6 +13351,7 @@ actually an xmlCharEncoding'/>
<arg name='...' type='...' info='extra parameters for the format'/>
</function>
<function name='xmlTextWriterWriteFormatCDATA' file='xmlwriter'>
+ <cond>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'/>
@@ -12338,6 +13359,7 @@ actually an xmlCharEncoding'/>
<arg name='...' type='...' info='extra parameters for the format'/>
</function>
<function name='xmlTextWriterWriteFormatComment' file='xmlwriter'>
+ <cond>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'/>
@@ -12345,6 +13367,7 @@ actually an xmlCharEncoding'/>
<arg name='...' type='...' info='extra parameters for the format'/>
</function>
<function name='xmlTextWriterWriteFormatDTD' file='xmlwriter'>
+ <cond>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'/>
@@ -12355,6 +13378,7 @@ actually an xmlCharEncoding'/>
<arg name='...' type='...' info='extra parameters for the format'/>
</function>
<function name='xmlTextWriterWriteFormatDTDAttlist' file='xmlwriter'>
+ <cond>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'/>
@@ -12363,6 +13387,7 @@ actually an xmlCharEncoding'/>
<arg name='...' type='...' info='extra parameters for the format'/>
</function>
<function name='xmlTextWriterWriteFormatDTDElement' file='xmlwriter'>
+ <cond>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'/>
@@ -12371,6 +13396,7 @@ actually an xmlCharEncoding'/>
<arg name='...' type='...' info='extra parameters for the format'/>
</function>
<function name='xmlTextWriterWriteFormatDTDInternalEntity' file='xmlwriter'>
+ <cond>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'/>
@@ -12380,6 +13406,7 @@ actually an xmlCharEncoding'/>
<arg name='...' type='...' info='extra parameters for the format'/>
</function>
<function name='xmlTextWriterWriteFormatElement' file='xmlwriter'>
+ <cond>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'/>
@@ -12388,6 +13415,7 @@ actually an xmlCharEncoding'/>
<arg name='...' type='...' info='extra parameters for the format'/>
</function>
<function name='xmlTextWriterWriteFormatElementNS' file='xmlwriter'>
+ <cond>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'/>
@@ -12398,6 +13426,7 @@ actually an xmlCharEncoding'/>
<arg name='...' type='...' info='extra parameters for the format'/>
</function>
<function name='xmlTextWriterWriteFormatPI' file='xmlwriter'>
+ <cond>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'/>
@@ -12406,6 +13435,7 @@ actually an xmlCharEncoding'/>
<arg name='...' type='...' info='extra parameters for the format'/>
</function>
<function name='xmlTextWriterWriteFormatRaw' file='xmlwriter'>
+ <cond>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'/>
@@ -12413,6 +13443,7 @@ actually an xmlCharEncoding'/>
<arg name='...' type='...' info='extra parameters for the format'/>
</function>
<function name='xmlTextWriterWriteFormatString' file='xmlwriter'>
+ <cond>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'/>
@@ -12420,6 +13451,7 @@ actually an xmlCharEncoding'/>
<arg name='...' type='...' info='extra parameters for the format'/>
</function>
<function name='xmlTextWriterWritePI' file='xmlwriter'>
+ <cond>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'/>
@@ -12427,12 +13459,14 @@ actually an xmlCharEncoding'/>
<arg name='content' type='const xmlChar *' info='PI content'/>
</function>
<function name='xmlTextWriterWriteRaw' file='xmlwriter'>
+ <cond>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'>
+ <cond>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'/>
@@ -12440,12 +13474,14 @@ actually an xmlCharEncoding'/>
<arg name='len' type='int' info='length of the text string'/>
</function>
<function name='xmlTextWriterWriteString' file='xmlwriter'>
+ <cond>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'>
+ <cond>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'/>
@@ -12454,6 +13490,7 @@ actually an xmlCharEncoding'/>
<arg name='argptr' type='va_list' info='pointer to the first member of the variable argument list.'/>
</function>
<function name='xmlTextWriterWriteVFormatAttributeNS' file='xmlwriter'>
+ <cond>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'/>
@@ -12464,6 +13501,7 @@ actually an xmlCharEncoding'/>
<arg name='argptr' type='va_list' info='pointer to the first member of the variable argument list.'/>
</function>
<function name='xmlTextWriterWriteVFormatCDATA' file='xmlwriter'>
+ <cond>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'/>
@@ -12471,6 +13509,7 @@ actually an xmlCharEncoding'/>
<arg name='argptr' type='va_list' info='pointer to the first member of the variable argument list.'/>
</function>
<function name='xmlTextWriterWriteVFormatComment' file='xmlwriter'>
+ <cond>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'/>
@@ -12478,6 +13517,7 @@ actually an xmlCharEncoding'/>
<arg name='argptr' type='va_list' info='pointer to the first member of the variable argument list.'/>
</function>
<function name='xmlTextWriterWriteVFormatDTD' file='xmlwriter'>
+ <cond>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'/>
@@ -12488,6 +13528,7 @@ actually an xmlCharEncoding'/>
<arg name='argptr' type='va_list' info='pointer to the first member of the variable argument list.'/>
</function>
<function name='xmlTextWriterWriteVFormatDTDAttlist' file='xmlwriter'>
+ <cond>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'/>
@@ -12496,6 +13537,7 @@ actually an xmlCharEncoding'/>
<arg name='argptr' type='va_list' info='pointer to the first member of the variable argument list.'/>
</function>
<function name='xmlTextWriterWriteVFormatDTDElement' file='xmlwriter'>
+ <cond>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'/>
@@ -12504,6 +13546,7 @@ actually an xmlCharEncoding'/>
<arg name='argptr' type='va_list' info='pointer to the first member of the variable argument list.'/>
</function>
<function name='xmlTextWriterWriteVFormatDTDInternalEntity' file='xmlwriter'>
+ <cond>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'/>
@@ -12513,6 +13556,7 @@ actually an xmlCharEncoding'/>
<arg name='argptr' type='va_list' info='pointer to the first member of the variable argument list.'/>
</function>
<function name='xmlTextWriterWriteVFormatElement' file='xmlwriter'>
+ <cond>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'/>
@@ -12521,6 +13565,7 @@ actually an xmlCharEncoding'/>
<arg name='argptr' type='va_list' info='pointer to the first member of the variable argument list.'/>
</function>
<function name='xmlTextWriterWriteVFormatElementNS' file='xmlwriter'>
+ <cond>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'/>
@@ -12531,6 +13576,7 @@ actually an xmlCharEncoding'/>
<arg name='argptr' type='va_list' info='pointer to the first member of the variable argument list.'/>
</function>
<function name='xmlTextWriterWriteVFormatPI' file='xmlwriter'>
+ <cond>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'/>
@@ -12539,6 +13585,7 @@ actually an xmlCharEncoding'/>
<arg name='argptr' type='va_list' info='pointer to the first member of the variable argument list.'/>
</function>
<function name='xmlTextWriterWriteVFormatRaw' file='xmlwriter'>
+ <cond>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'/>
@@ -12546,6 +13593,7 @@ actually an xmlCharEncoding'/>
<arg name='argptr' type='va_list' info='pointer to the first member of the variable argument list.'/>
</function>
<function name='xmlTextWriterWriteVFormatString' file='xmlwriter'>
+ <cond>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'/>
@@ -12597,11 +13645,21 @@ actually an xmlCharEncoding'/>
<return type='int' info=''/>
<arg name='v' type='int' info=''/>
</function>
+ <function name='xmlThrDefOutputBufferCreateFilenameDefault' file='globals'>
+ <info></info>
+ <return type='xmlOutputBufferCreateFilenameFunc' info=''/>
+ <arg name='func' type='xmlOutputBufferCreateFilenameFunc' info=''/>
+ </function>
<function name='xmlThrDefParserDebugEntities' file='globals'>
<info></info>
<return type='int' info=''/>
<arg name='v' type='int' info=''/>
</function>
+ <function name='xmlThrDefParserInputBufferCreateFilenameDefault' file='globals'>
+ <info></info>
+ <return type='xmlParserInputBufferCreateFilenameFunc' info=''/>
+ <arg name='func' type='xmlParserInputBufferCreateFilenameFunc' info=''/>
+ </function>
<function name='xmlThrDefPedanticParserDefaultValue' file='globals'>
<info></info>
<return type='int' info=''/>
@@ -12640,833 +13698,999 @@ actually an xmlCharEncoding'/>
<arg name='v' type='const char *' info=''/>
</function>
<function name='xmlUCSIsAegeanNumbers' file='xmlunicode'>
+ <cond>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'>
+ <cond>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'>
+ <cond>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'>
+ <cond>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'>
+ <cond>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'>
+ <cond>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'>
+ <cond>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'>
+ <cond>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'>
+ <cond>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'>
+ <cond>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'>
+ <cond>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'>
+ <cond>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'>
+ <cond>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'>
+ <cond>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'>
+ <cond>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'>
+ <cond>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'>
+ <cond>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'>
+ <cond>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'>
+ <cond>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'>
+ <cond>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'>
+ <cond>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'>
+ <cond>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'>
+ <cond>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'>
+ <cond>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'>
+ <cond>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'>
+ <cond>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'>
+ <cond>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'>
+ <cond>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'>
+ <cond>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'>
+ <cond>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'>
+ <cond>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'>
+ <cond>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'>
+ <cond>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'>
+ <cond>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'>
+ <cond>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'>
+ <cond>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'>
+ <cond>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'>
+ <cond>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'>
+ <cond>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'>
+ <cond>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'>
+ <cond>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'>
+ <cond>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'>
+ <cond>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'>
+ <cond>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'>
+ <cond>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'>
+ <cond>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'>
+ <cond>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'>
+ <cond>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'>
+ <cond>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'>
+ <cond>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'>
+ <cond>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'>
+ <cond>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'>
+ <cond>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'>
+ <cond>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'>
+ <cond>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'>
+ <cond>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'>
+ <cond>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'>
+ <cond>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'>
+ <cond>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'>
+ <cond>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'>
+ <cond>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'>
+ <cond>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'>
+ <cond>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'>
+ <cond>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'>
+ <cond>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'>
+ <cond>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'>
+ <cond>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'>
+ <cond>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'>
+ <cond>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'>
+ <cond>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'>
+ <cond>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'>
+ <cond>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'>
+ <cond>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'>
+ <cond>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'>
+ <cond>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'>
+ <cond>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'>
+ <cond>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'>
+ <cond>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'>
+ <cond>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'>
+ <cond>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'>
+ <cond>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'>
+ <cond>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'>
+ <cond>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'>
+ <cond>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'>
+ <cond>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'>
+ <cond>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'>
+ <cond>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'>
+ <cond>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'>
+ <cond>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'>
+ <cond>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'>
+ <cond>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'>
+ <cond>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'>
+ <cond>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'>
+ <cond>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'>
+ <cond>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'>
+ <cond>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'>
+ <cond>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'>
+ <cond>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'>
+ <cond>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'>
+ <cond>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'>
+ <cond>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'>
+ <cond>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'>
+ <cond>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'>
+ <cond>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'>
+ <cond>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'>
+ <cond>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'>
+ <cond>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'>
+ <cond>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'>
+ <cond>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'>
+ <cond>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'>
+ <cond>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'>
+ <cond>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'>
+ <cond>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'>
+ <cond>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'>
+ <cond>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'>
+ <cond>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'>
+ <cond>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'>
+ <cond>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'>
+ <cond>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'>
+ <cond>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'>
+ <cond>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'>
+ <cond>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'>
+ <cond>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'>
+ <cond>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'>
+ <cond>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'>
+ <cond>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'>
+ <cond>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'>
+ <cond>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'>
+ <cond>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'>
+ <cond>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'>
+ <cond>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'>
+ <cond>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'>
+ <cond>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'>
+ <cond>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'>
+ <cond>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'>
+ <cond>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'>
+ <cond>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'>
+ <cond>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'>
+ <cond>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'>
+ <cond>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'>
+ <cond>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'>
+ <cond>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'>
+ <cond>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'>
+ <cond>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'>
+ <cond>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'>
+ <cond>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'>
+ <cond>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'>
+ <cond>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'>
+ <cond>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'>
+ <cond>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'>
+ <cond>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'>
+ <cond>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'>
+ <cond>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'>
+ <cond>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'>
+ <cond>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'>
+ <cond>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'>
+ <cond>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'>
+ <cond>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'>
+ <cond>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'>
+ <cond>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'>
+ <cond>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'>
+ <cond>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'>
+ <cond>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'>
+ <cond>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'>
+ <cond>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'>
+ <cond>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'/>
@@ -13546,6 +14770,7 @@ actually an xmlCharEncoding'/>
<return type='void'/>
</function>
<function name='xmlUnsetNsProp' file='tree'>
+ <cond>LIBXML_TREE_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'/>
@@ -13553,18 +14778,21 @@ actually an xmlCharEncoding'/>
<arg name='name' type='const xmlChar *' info='the attribute name'/>
</function>
<function name='xmlUnsetProp' file='tree'>
+ <cond>LIBXML_TREE_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='name' type='const xmlChar *' info='the attribute name'/>
</function>
<function name='xmlValidBuildContentModel' file='valid'>
+ <cond>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'>
+ <cond>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'/>
@@ -13590,6 +14818,7 @@ actually an xmlCharEncoding'/>
<arg name='max' type='int' info='the size of the array'/>
</function>
<function name='xmlValidNormalizeAttributeValue' file='valid'>
+ <cond>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'/>
@@ -13598,6 +14827,7 @@ actually an xmlCharEncoding'/>
<arg name='value' type='const xmlChar *' info='the attribute value'/>
</function>
<function name='xmlValidateAttributeDecl' file='valid'>
+ <cond>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'/>
@@ -13605,24 +14835,28 @@ actually an xmlCharEncoding'/>
<arg name='attr' type='xmlAttributePtr' info='an attribute definition'/>
</function>
<function name='xmlValidateAttributeValue' file='valid'>
+ <cond>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'>
+ <cond>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'>
+ <cond>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'>
+ <cond>LIBXML_VALID_ENABLED</cond>
<info>Try to validate the document against the dtd instance basically it does check all the definitions in the DtD.</info>
<return type='int' info='1 if valid or 0 otherwise'/>
<arg name='ctxt' type='xmlValidCtxtPtr' info='the validation context'/>
@@ -13630,12 +14864,14 @@ actually an xmlCharEncoding'/>
<arg name='dtd' type='xmlDtdPtr' info='a dtd instance'/>
</function>
<function name='xmlValidateDtdFinal' file='valid'>
+ <cond>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'>
+ <cond>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'/>
@@ -13643,6 +14879,7 @@ actually an xmlCharEncoding'/>
<arg name='elem' type='xmlNodePtr' info='an element instance'/>
</function>
<function name='xmlValidateElementDecl' file='valid'>
+ <cond>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'/>
@@ -13668,26 +14905,31 @@ actually an xmlCharEncoding'/>
<arg name='space' type='int' info='allow spaces in front and end of the string'/>
</function>
<function name='xmlValidateNameValue' file='valid'>
+ <cond>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'>
+ <cond>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'>
+ <cond>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'>
+ <cond>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'>
+ <cond>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'/>
@@ -13695,6 +14937,7 @@ actually an xmlCharEncoding'/>
<arg name='nota' type='xmlNotationPtr' info='a notation definition'/>
</function>
<function name='xmlValidateNotationUse' file='valid'>
+ <cond>LIBXML_VALID_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'/>
@@ -13702,6 +14945,7 @@ actually an xmlCharEncoding'/>
<arg name='notationName' type='const xmlChar *' info='the notation name to check'/>
</function>
<function name='xmlValidateOneAttribute' file='valid'>
+ <cond>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'/>
@@ -13711,6 +14955,7 @@ actually an xmlCharEncoding'/>
<arg name='value' type='const xmlChar *' info='the attribute value (without entities processing)'/>
</function>
<function name='xmlValidateOneElement' file='valid'>
+ <cond>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'/>
@@ -13718,6 +14963,7 @@ actually an xmlCharEncoding'/>
<arg name='elem' type='xmlNodePtr' info='an element instance'/>
</function>
<function name='xmlValidateOneNamespace' file='valid'>
+ <cond>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'/>
@@ -13728,6 +14974,7 @@ actually an xmlCharEncoding'/>
<arg name='value' type='const xmlChar *' info='the attribute value (without entities processing)'/>
</function>
<function name='xmlValidatePopElement' file='valid'>
+ <cond>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'/>
@@ -13736,6 +14983,7 @@ actually an xmlCharEncoding'/>
<arg name='qname' type='const xmlChar *' info='the qualified name as appearing in the serialization'/>
</function>
<function name='xmlValidatePushCData' file='valid'>
+ <cond>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'/>
@@ -13743,6 +14991,7 @@ actually an xmlCharEncoding'/>
<arg name='len' type='int' info='the lenght of the data'/>
</function>
<function name='xmlValidatePushElement' file='valid'>
+ <cond>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'/>
@@ -13757,6 +15006,7 @@ actually an xmlCharEncoding'/>
<arg name='space' type='int' info='allow spaces in front and end of the string'/>
</function>
<function name='xmlValidateRoot' file='valid'>
+ <cond>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'/>
@@ -13777,149 +15027,177 @@ actually an xmlCharEncoding'/>
<arg name='...' type='...' info='remaining arguments to the format'/>
</functype>
<function name='xmlXIncludeFreeContext' file='xinclude'>
+ <cond>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'>
+ <cond>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'>
+ <cond>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'>
+ <cond>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='xmlXIncludeProcessNode' file='xinclude'>
+ <cond>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'>
+ <cond>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'>
+ <cond>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='xmlXIncludeSetFlags' file='xinclude'>
+ <cond>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'>
+ <cond>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'>
+ <cond>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'>
+ <cond>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'>
+ <cond>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'>
+ <cond>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'>
+ <cond>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'>
+ <cond>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'>
+ <cond>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'>
+ <cond>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'>
+ <cond>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'>
+ <cond>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'>
+ <cond>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'>
+ <cond>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'>
+ <cond>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'>
+ <cond>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'>
+ <cond>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'>
+ <cond>LIBXML_XPATH_ENABLED</cond>
<info>Converts an existing object to its string() equivalent</info>
<return type='xmlChar *' info='the string value of the object, NULL in case of error. A new string is allocated only if needed (@val isn&apos;t a string object).'/>
<arg name='val' type='xmlXPathObjectPtr' info='an XPath object'/>
</function>
<function name='xmlXPathCeilingFunction' file='xpathInternals'>
+ <cond>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'>
+ <cond>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'>
+ <cond>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'/>
@@ -13927,62 +15205,74 @@ actually an xmlCharEncoding'/>
<arg name='strict' type='int' info='is the comparison strict'/>
</function>
<function name='xmlXPathCompile' file='xpath'>
+ <cond>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'>
+ <cond>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='xmlXPathConcatFunction' file='xpathInternals'>
+ <cond>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'>
+ <cond>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='xmlXPathConvertBoolean' file='xpath'>
+ <cond>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'>
+ <cond>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'>
+ <cond>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'>
+ <cond>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'>
+ <cond>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'>
+ <cond>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'>
+ <cond>LIBXML_XPATH_ENABLED</cond>
+ <cond>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'/>
@@ -13990,6 +15280,8 @@ actually an xmlCharEncoding'/>
<arg name='depth' type='int' info='the indentation level.'/>
</function>
<function name='xmlXPathDebugDumpObject' file='xpathInternals'>
+ <cond>LIBXML_XPATH_ENABLED</cond>
+ <cond>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'/>
@@ -13997,115 +15289,136 @@ actually an xmlCharEncoding'/>
<arg name='depth' type='int' info='indentation level'/>
</function>
<function name='xmlXPathDifference' file='xpathInternals'>
+ <cond>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'>
+ <cond>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'>
+ <cond>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'>
+ <cond>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'>
+ <cond>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'>
+ <cond>LIBXML_XPATH_ENABLED</cond>
<info>Handle a Relax NG Parsing 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'>
+ <cond>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'>
+ <cond>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'>
+ <cond>LIBXML_XPATH_ENABLED</cond>
<info>Evaluate the 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='str' type='const xmlChar *' info='the XPath expression'/>
<arg name='ctxt' type='xmlXPathContextPtr' info='the XPath context'/>
</function>
<functype name='xmlXPathEvalFunc' file='xpath'>
+ <cond>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'>
+ <cond>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'>
+ <cond>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'>
+ <cond>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'>
+ <cond>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'>
+ <cond>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'>
+ <cond>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'>
+ <cond>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'>
+ <cond>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'>
+ <cond>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'>
+ <cond>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='xpathInternals'>
+ <cond>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'/>
@@ -14113,18 +15426,21 @@ actually an xmlCharEncoding'/>
<arg name='ns_uri' type='const xmlChar *' info='the namespace name hosting this function'/>
</functype>
<functype name='xmlXPathFunction' file='xpath'>
+ <cond>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'>
+ <cond>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'>
+ <cond>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'/>
@@ -14132,231 +15448,272 @@ actually an xmlCharEncoding'/>
<arg name='ns_uri' type='const xmlChar *' info='the function namespace URI'/>
</function>
<function name='xmlXPathHasSameNodes' file='xpathInternals'>
+ <cond>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'>
+ <cond>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'>
+ <cond>LIBXML_XPATH_ENABLED</cond>
<info>Initialize the XPath environment</info>
<return type='void'/>
</function>
<function name='xmlXPathIntersection' file='xpathInternals'>
+ <cond>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'>
+ <cond>LIBXML_XPATH_ENABLED</cond>
<info>Provides a portable isinf() function to detect whether a double is a +Infinite or -Infinite. Based on trio code http://sourceforge.net/projects/ctrio/</info>
<return type='int' info='1 vi the value is +Infinite, -1 if -Infinite, 0 otherwise'/>
<arg name='val' type='double' info='a double value'/>
</function>
<function name='xmlXPathIsNaN' file='xpath'>
+ <cond>LIBXML_XPATH_ENABLED</cond>
<info>Provides a portable isnan() function to detect whether a double is a NotaNumber. Based on trio code http://sourceforge.net/projects/ctrio/</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'>
+ <cond>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'>
+ <cond>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'>
+ <cond>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'>
+ <cond>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'>
+ <cond>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'>
+ <cond>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'>
+ <cond>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'>
+ <cond>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'>
+ <cond>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'>
+ <cond>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'>
+ <cond>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'>
+ <cond>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'>
+ <cond>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'>
+ <cond>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'>
+ <cond>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'>
+ <cond>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'>
+ <cond>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'>
+ <cond>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'>
+ <cond>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'>
+ <cond>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'>
+ <cond>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'>
+ <cond>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'>
+ <cond>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'>
+ <cond>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'>
+ <cond>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'>
+ <cond>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'>
+ <cond>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'>
+ <cond>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'>
+ <cond>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'>
+ <cond>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'>
+ <cond>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='xmlXPathNodeLeading' file='xpathInternals'>
+ <cond>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'>
+ <cond>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'>
+ <cond>LIBXML_XPATH_ENABLED</cond>
<info>add a new xmlNodePtr to an existing NodeSet</info>
<return type='void'/>
<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'>
+ <cond>LIBXML_XPATH_ENABLED</cond>
<info>add a new namespace node to an existing NodeSet</info>
<return type='void'/>
<arg name='cur' type='xmlNodeSetPtr' info='the initial node set'/>
@@ -14364,148 +15721,175 @@ actually an xmlCharEncoding'/>
<arg name='ns' type='xmlNsPtr' info='a the namespace node'/>
</function>
<function name='xmlXPathNodeSetAddUnique' file='xpathInternals'>
+ <cond>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='void'/>
<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'>
+ <cond>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'>
+ <cond>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'>
+ <cond>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'>
+ <cond>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'>
+ <cond>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'>
+ <cond>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'>
+ <cond>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'>
+ <cond>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'>
+ <cond>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'>
+ <cond>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'>
+ <cond>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'>
+ <cond>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'>
+ <cond>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'>
+ <cond>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'>
+ <cond>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'>
+ <cond>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'>
+ <cond>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'>
+ <cond>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'>
+ <cond>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'>
+ <cond>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'>
+ <cond>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'>
+ <cond>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'>
+ <cond>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'>
+ <cond>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'>
+ <cond>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'>
+ <cond>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'/>
@@ -14513,6 +15897,7 @@ actually an xmlCharEncoding'/>
<arg name='f' type='xmlXPathFunction' info='the function implementation or NULL'/>
</function>
<function name='xmlXPathRegisterFuncLookup' file='xpathInternals'>
+ <cond>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'/>
@@ -14520,6 +15905,7 @@ actually an xmlCharEncoding'/>
<arg name='funcCtxt' type='void *' info='the lookup data'/>
</function>
<function name='xmlXPathRegisterFuncNS' file='xpathInternals'>
+ <cond>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'/>
@@ -14528,6 +15914,7 @@ actually an xmlCharEncoding'/>
<arg name='f' type='xmlXPathFunction' info='the function implementation or NULL'/>
</function>
<function name='xmlXPathRegisterNs' file='xpathInternals'>
+ <cond>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'/>
@@ -14535,6 +15922,7 @@ actually an xmlCharEncoding'/>
<arg name='ns_uri' type='const xmlChar *' info='the namespace name'/>
</function>
<function name='xmlXPathRegisterVariable' file='xpathInternals'>
+ <cond>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'/>
@@ -14542,6 +15930,7 @@ actually an xmlCharEncoding'/>
<arg name='value' type='xmlXPathObjectPtr' info='the variable value or NULL'/>
</function>
<function name='xmlXPathRegisterVariableLookup' file='xpathInternals'>
+ <cond>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'/>
@@ -14549,6 +15938,7 @@ actually an xmlCharEncoding'/>
<arg name='data' type='void *' info='the lookup data'/>
</function>
<function name='xmlXPathRegisterVariableNS' file='xpathInternals'>
+ <cond>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'/>
@@ -14557,119 +15947,140 @@ actually an xmlCharEncoding'/>
<arg name='value' type='xmlXPathObjectPtr' info='the variable value or NULL'/>
</function>
<function name='xmlXPathRegisteredFuncsCleanup' file='xpathInternals'>
+ <cond>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'>
+ <cond>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'>
+ <cond>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'>
+ <cond>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'>
+ <cond>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 even 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='xmlXPathStartsWithFunction' file='xpathInternals'>
+ <cond>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'>
+ <cond>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'>
+ <cond>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'>
+ <cond>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'>
+ <cond>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'>
+ <cond>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'>
+ <cond>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'>
+ <cond>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'>
+ <cond>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'>
+ <cond>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'>
+ <cond>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'>
+ <cond>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'>
+ <cond>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'>
+ <cond>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'>
+ <cond>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='xpathInternals'>
+ <cond>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'/>
@@ -14677,6 +16088,7 @@ actually an xmlCharEncoding'/>
<arg name='ns_uri' type='const xmlChar *' info='the namespace name hosting this variable'/>
</functype>
<function name='xmlXPathVariableLookupNS' file='xpathInternals'>
+ <cond>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'/>
@@ -14684,26 +16096,31 @@ actually an xmlCharEncoding'/>
<arg name='ns_uri' type='const xmlChar *' info='the variable namespace URI'/>
</function>
<function name='xmlXPathWrapCString' file='xpathInternals'>
+ <cond>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'>
+ <cond>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'>
+ <cond>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'>
+ <cond>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'>
+ <cond>LIBXML_XPATH_ENABLED</cond>
<info>Formats an error message.</info>
<return type='void'/>
<arg name='ctxt' type='xmlXPathParserContextPtr' info='the XPath Parser context'/>
@@ -14712,61 +16129,72 @@ actually an xmlCharEncoding'/>
<arg name='no' type='int' info='the error number'/>
</function>
<function name='xmlXPtrBuildNodeList' file='xpointer'>
+ <cond>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'>
+ <cond>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'>
+ <cond>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'>
+ <cond>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'>
+ <cond>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'>
+ <cond>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'>
+ <cond>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'>
+ <cond>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'>
+ <cond>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'>
+ <cond>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'>
+ <cond>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'/>
@@ -14774,17 +16202,20 @@ actually an xmlCharEncoding'/>
<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'>
+ <cond>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'>
+ <cond>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'>
+ <cond>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'/>
@@ -14793,42 +16224,49 @@ actually an xmlCharEncoding'/>
<arg name='endindex' type='int' info='the ending index'/>
</function>
<function name='xmlXPtrNewRangeNodeObject' file='xpointer'>
+ <cond>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'>
+ <cond>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'>
+ <cond>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'>
+ <cond>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'>
+ <cond>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'>
+ <cond>LIBXML_XPTR_ENABLED</cond>
<info>Implement the range-to() XPointer function</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'>
+ <cond>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'/>
diff --git a/doc/libxml2.xsa b/doc/libxml2.xsa
index 790d729..9c5234b 100644
--- a/doc/libxml2.xsa
+++ b/doc/libxml2.xsa
@@ -8,31 +8,26 @@
</vendor>
<product id="libxml2">
<name>libxml2</name>
- <version>2.6.8</version>
- <last-release> Mar 23 2004</last-release>
+ <version>2.6.10</version>
+ <last-release> May 17 2004</last-release>
<info-url>http://xmlsoft.org/</info-url>
- <changes> - 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 &lt;choice&gt;
- 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), dictionnary 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)
+ <changes> - 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 '"'
</changes>
</product>
diff --git a/doc/news.html b/doc/news.html
index 1810db7..7a502e5 100644
--- a/doc/news.html
+++ b/doc/news.html
@@ -11,7 +11,51 @@ A:link, A:visited, A:active { text-decoration: underline }
to help those</p><ul><li>More testing on RelaxNG</li>
<li>Finishing up <a href="http://www.w3.org/TR/xmlschema-1/">XML
Schemas</a></li>
-</ul><p>There is the list of public releases:</p><h3>2.6.9: Apr 18 2004</h3><ul><li>implement xml:id Working Draft, relaxed XPath id() checking</li>
+</ul><p>There is the list of public releases:</p><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
diff --git a/doc/tutorial/apa.html b/doc/tutorial/apa.html
index 5c4c1c1..40c0114 100644
--- a/doc/tutorial/apa.html
+++ b/doc/tutorial/apa.html
@@ -1,4 +1,4 @@
-<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="id2509671"></a>
+<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="id2902089"></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
diff --git a/doc/tutorial/apd.html b/doc/tutorial/apd.html
index f61470f..30a69d9 100644
--- a/doc/tutorial/apd.html
+++ b/doc/tutorial/apd.html
@@ -36,7 +36,7 @@ main(int argc, char **argv) {
char *docname;
xmlDocPtr doc;
- xmlChar *xpath = ("//keyword");
+ xmlChar *xpath = (xmlChar*) "//keyword";
xmlNodeSetPtr nodeset;
xmlXPathObjectPtr result;
int i;
diff --git a/doc/tutorial/api.html b/doc/tutorial/api.html
index 0f54ba9..3706e99 100644
--- a/doc/tutorial/api.html
+++ b/doc/tutorial/api.html
@@ -1,4 +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="id2510287"></a>I. Acknowledgements</h2></div></div><div></div></div><p>A number of people have generously offered feedback, code and
+<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="id2902708"></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/doc/tutorial/ar01s02.html b/doc/tutorial/ar01s02.html
index 4cab38d..3d04a75 100644
--- a/doc/tutorial/ar01s02.html
+++ b/doc/tutorial/ar01s02.html
@@ -1,13 +1,13 @@
<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="id2496072"></a>
+ </p><div class="variablelist"><dl><dt><span class="term"><a class="indexterm" name="id2840608"></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="id2448173"></a>
+ 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="id2840654"></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="id2448206"></a>
+ is a pointer to the structure.</p></dd><dt><span class="term"><a class="indexterm" name="id2840689"></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>
diff --git a/doc/tutorial/ar01s03.html b/doc/tutorial/ar01s03.html
index c824213..95ed717 100644
--- a/doc/tutorial/ar01s03.html
+++ b/doc/tutorial/ar01s03.html
@@ -31,7 +31,7 @@ Parsing the file requires only the name of the file and a single
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="id2447307"></a>
+ </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="id2839760"></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
@@ -43,5 +43,5 @@ One common example of an error at this point is improper
</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="id2447385"></a>
+ <a class="indexterm" name="id2839838"></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/doc/tutorial/ar01s04.html b/doc/tutorial/ar01s04.html
index c14406a..77dd722 100644
--- a/doc/tutorial/ar01s04.html
+++ b/doc/tutorial/ar01s04.html
@@ -1,4 +1,4 @@
-<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="id2447408"></a>
+<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="id2839861"></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
diff --git a/doc/tutorial/ar01s06.html b/doc/tutorial/ar01s06.html
index fb8c8a7..767f758 100644
--- a/doc/tutorial/ar01s06.html
+++ b/doc/tutorial/ar01s06.html
@@ -1,4 +1,4 @@
-<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="id2508968"></a>
+<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="id2901386"></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
@@ -21,7 +21,7 @@ parseStory (xmlDocPtr doc, xmlNodePtr cur, char *keyword) {
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="id2509052"></a>
+ <a class="indexterm" name="id2901470"></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.
diff --git a/doc/tutorial/ar01s07.html b/doc/tutorial/ar01s07.html
index 395b780..1736a1b 100644
--- a/doc/tutorial/ar01s07.html
+++ b/doc/tutorial/ar01s07.html
@@ -1,4 +1,4 @@
-<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="id2509094"></a>
+<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="id2901512"></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>
diff --git a/doc/tutorial/ar01s08.html b/doc/tutorial/ar01s08.html
index f07f8ef..c884ed8 100644
--- a/doc/tutorial/ar01s08.html
+++ b/doc/tutorial/ar01s08.html
@@ -1,4 +1,4 @@
-<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="id2509236"></a>
+<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="id2901654"></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
diff --git a/doc/tutorial/ar01s09.html b/doc/tutorial/ar01s09.html
index 76f52cc..95aed72 100644
--- a/doc/tutorial/ar01s09.html
+++ b/doc/tutorial/ar01s09.html
@@ -1,4 +1,4 @@
-<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="id2509349"></a>
+<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="id2901766"></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
diff --git a/doc/tutorial/includexpath.c b/doc/tutorial/includexpath.c
index 92c0944..7e8bc37 100644
--- a/doc/tutorial/includexpath.c
+++ b/doc/tutorial/includexpath.c
@@ -35,7 +35,7 @@ main(int argc, char **argv) {
char *docname;
xmlDocPtr doc;
- xmlChar *xpath = ("//keyword");
+ xmlChar *xpath = (xmlChar*) "//keyword";
xmlNodeSetPtr nodeset;
xmlXPathObjectPtr result;
int i;
diff --git a/doc/tutorial/index.html b/doc/tutorial/index.html
index 7722005..1054c79 100644
--- a/doc/tutorial/index.html
+++ b/doc/tutorial/index.html
@@ -1,4 +1,4 @@
-<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="id2393988"></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></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
+<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="id2788097"></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></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
diff --git a/doc/tutorial/ix01.html b/doc/tutorial/ix01.html
index 8a0687b..61757bf 100644
--- a/doc/tutorial/ix01.html
+++ b/doc/tutorial/ix01.html
@@ -1 +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="id2510579"></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>
+<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="id2902957"></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/doc/tutorial/xmltutorial.pdf b/doc/tutorial/xmltutorial.pdf
index 345391f..668e545 100644
--- a/doc/tutorial/xmltutorial.pdf
+++ b/doc/tutorial/xmltutorial.pdf
@@ -709,10 +709,10 @@ endobj
>>
endobj
96 0 obj
-<< /Length 1305 /Filter [ /ASCII85Decode /FlateDecode ]
+<< /Length 1310 /Filter [ /ASCII85Decode /FlateDecode ]
>>
stream
-GatU3>Ar7S'Roe[&3:6(gZ4`';-]RjC[)>_Jh08p?pKq]`F^*,[cGPNlCd?j+)0-R`MEGd":6X@SF>7Imu[N.mL?@2J.\G^r7"*MXG6nRIrKoad4[lc2r_Yu&`!*g<N_6r&=eNsf_;<>jS^3G#faX0:5g'gLk(_Tds&8i8:cT>@^DI%FdJ?=Im!_4-KSN9\32eTL+A=Q.^ON&<iW6bM%.b.I'WE`A9_->BnNJLV"*o_S#),a&&*02<i&_%Tkrn:Q"QrIPcZ'llJ4`V.M+oiU>A4\(kl.qk<90i!8GY5XP33=<SeMj<dhAi`hie,^^\I5"1"Q#$%EY3oTIEgS#*PuV0SrMD-D.,cin?pL]Op.9V:<*=ZsgOWr-us=tIkKfOf/QC$2OL`e2/0&S>Km_1::s/rMP:2=?sg]\CsrcJBP<AKaAETlAKXp<1^?V\m]%_B+/-(7MRm\&Wr'.((/@WHM,K8@nE`E+Q'_:,if29R.V!TXJ=c1:I_P^hnLX,h:B#>4*"oMHNkYPI@@Fl@6ReKDLR3>qFtXCkWl4:"h.$.!K<ki#lf$3>CrP$U[2P`c3R3-iZ'#L;SMjldre:3bW'?GmFQA_(DWjM-3/lr)j;is0"#jBF%9ik.5V+4n^.SOS\f^$hh*)&1$+H\_/IMN;E?;UQ,$c,:Y9C.0/muSA2.gRJNn+rGgAV[GctipK<EF0DF\HVg'*d^b'-:IH6kJ'`t=0:6bu!&DCICI%3%IAq_<h@@.&2pE332IHHr/^+\3,0bk8AP?ZjkJp*0tl>ZC6+V>j^idb=GVoOcA^fHO%\Qj5Jh`MK5K1-AK4,KlJBVq##T_Am]1`1P3cRR4WdBnDtmV"J?mR0<N"O)nQMT9q2RdG'XY0(*Nq75!;T62+18nFMThPUnIQWoHHo4amR")uhSQFe@g1G1b@ZH9L"ePVDcn\U.h7(kV)Yniu(#pY7Z>=d=s90i:A`2qO_MdUF3&gdYNA!/-;!g0V_5?VQC6&>`q=I+#nAF&>_;QNh0pUsm8!r#qP@b984e!D0`U3!p`?IJl^+Ha42\';1l9&grb7\E*[]sT-+/EgGTVR0Z/_Pj)VSk`M9^[J.+^Dh$Q`H&-TRFGR[3f+EDn&mWZ+4=s\?V_WanAD8rVE$bG3fCur1SVp[NDdFGg.I6tU$([8cWak,^\0a):He<Cr`uHk?G-,B,-:7^-Xi<FdaT,/EUVfMHe0$$0FV3)=7[<o:PB.IH@PWPRdXtgT^dd';R9Z5HC*K)j-U/DD;arqb_n<G]Ar/Q06N$(LX8.;pJG<6+6+:(5Nn>VcN~>
+GatU3>>O9K'RnB3Yc'#t/=ar7j680e>rGZ!&Z+3_<!i/(Os.>0m*p%-T[j&9cGYqAP*tf9+]*"#q9JC)c:gE^Hc'V:?j%kp5P7i,leqj.*unZ[oZL)2NHd-`"S_j]Q0TV5"Qpp`pAJ\hGs;QUK(3ce'4]$2+s:IYo\F?r;BV^>fIZ07h'M1S+-1oP8U4AQD@]KniQ>Z-at00bPq)*1@Y=8$T5=HF)4oASg>M6VC&IjMZda!T_7+=#WcUiVPjKHonuPf[Z5$nJ]fTmr"[XV*e6D,HUJS#ag]rBI?sC1$<BFNob1jejWin>*fJF]l\7)pY5k^C!iK'^n?BY+tZdb;A1s^9Q:$^(7]&8P`0qbtCku1h7X697\Q+sIkMe2]&gJ#mGm<j''G]5Vb_G!WU(i\6aAW^T$`]^lW]3UEVm,TiP$P>-"Kq$r.?Z'aD`Gc"np@,]"d%$B64ne2.WVp5]C)>u^UcU4?=10U;KEIpgPfGK`C+IjeF5%fIgt&r*;EaELjXu+[Qo/G4Bl!!5s8+)`e8O.-@M&iR/*nBldUpTf\N@\3#?_GWTm2W*(]p]rNb]4dq&f(,:Ra54%#=k]f<9HS4n43c+V;9sB5-3pePb2_cU+<&J*d\76X[2Sl((c<YpU]JeCPjJY/_92+Rr4_c/onHeB]3TNQ&pt;Q5jP!Jkq&rahA=e5*L<O/pk(%<IKfcWY^E\OR1E*C(hM\>?UCO*ng?63-ZbXKpac6JDm;O-<]#XRLii$kjcY*lJAX:I2>DpI4s7V?.t;k+6dhWLX-u3\ER88-Fa[3+1A-gZ-9c?n9WW>V<U`Dk7Q4_4h46S]"H51fI""d//P?)@SdUB,0U<B\L4JGI3f0G9S.b!bOr9`T'$fc$$Tg=62*8r*4!.cao*SV(tden'd'`bH47_q6Wtd!B=jdbM<bo)4)@0g#Q>"l6s`BG[X#DU>?mPTSq_"#pY7Z>=d=s90i:A%'A*RMdUF3&gdYNA!/-;!g0V_5?VQC6&>`q=I+#nAF&>_;QNh0pUsm8!r#qY@b984o9^X,U3#3/?IJl^+Ha4D\';1l>iQjt7\E*[]sT-+/EgGTVR0Z/_Pj)VSk`M9^[J.+^Dh$Q`H&-TRFGRd3f+EDDpUE4+4=s\?V_WanAD8rVE$bG3fCur1SVp[NDdFGg.I6tU$([8cWak,j7YQM:He<Cr`uHk?G-,B,-5_8Do+'7Uo?(<j5.Q$2mFrj?l6E1Y3%OgT*c;qp&=<+1uI*`6/rF-V.R>Ioe*r2`\A.fgVDilR29QmGK8/k@d4B2&#"8VDQ(?%5/oJ.J'+[;H2~>
endstream
endobj
97 0 obj
@@ -1188,49 +1188,49 @@ endobj
xref
0 144
0000000000 65535 f
-0000046813 00000 n
-0000046989 00000 n
-0000047082 00000 n
+0000046818 00000 n
+0000046994 00000 n
+0000047087 00000 n
0000000015 00000 n
0000000071 00000 n
0000001985 00000 n
0000002105 00000 n
0000002249 00000 n
-0000047235 00000 n
+0000047240 00000 n
0000002383 00000 n
-0000047299 00000 n
+0000047304 00000 n
0000002519 00000 n
-0000047366 00000 n
+0000047371 00000 n
0000002655 00000 n
-0000047433 00000 n
+0000047438 00000 n
0000002791 00000 n
-0000047500 00000 n
+0000047505 00000 n
0000002927 00000 n
-0000047567 00000 n
+0000047572 00000 n
0000003063 00000 n
-0000047632 00000 n
+0000047637 00000 n
0000003199 00000 n
-0000047699 00000 n
+0000047704 00000 n
0000003335 00000 n
-0000047765 00000 n
+0000047770 00000 n
0000003471 00000 n
-0000047831 00000 n
+0000047836 00000 n
0000003607 00000 n
-0000047896 00000 n
+0000047901 00000 n
0000003743 00000 n
-0000047963 00000 n
+0000047968 00000 n
0000003878 00000 n
-0000048030 00000 n
+0000048035 00000 n
0000004014 00000 n
-0000048095 00000 n
+0000048100 00000 n
0000004150 00000 n
-0000048161 00000 n
+0000048166 00000 n
0000004286 00000 n
-0000048227 00000 n
+0000048232 00000 n
0000004422 00000 n
-0000048294 00000 n
+0000048299 00000 n
0000004558 00000 n
-0000048361 00000 n
+0000048366 00000 n
0000004694 00000 n
0000006850 00000 n
0000006973 00000 n
@@ -1284,53 +1284,53 @@ xref
0000030166 00000 n
0000031437 00000 n
0000031545 00000 n
-0000032943 00000 n
-0000033051 00000 n
-0000034387 00000 n
-0000034495 00000 n
-0000035806 00000 n
-0000035916 00000 n
-0000037217 00000 n
-0000037327 00000 n
-0000038697 00000 n
-0000038807 00000 n
-0000040371 00000 n
-0000040497 00000 n
-0000040518 00000 n
-0000041064 00000 n
-0000041190 00000 n
-0000048428 00000 n
-0000048482 00000 n
-0000041211 00000 n
-0000048547 00000 n
-0000041386 00000 n
-0000041587 00000 n
-0000041758 00000 n
-0000041917 00000 n
-0000042111 00000 n
-0000042365 00000 n
-0000042694 00000 n
-0000042930 00000 n
-0000043131 00000 n
-0000043356 00000 n
-0000043569 00000 n
-0000043752 00000 n
-0000043958 00000 n
-0000044216 00000 n
-0000044462 00000 n
-0000044743 00000 n
-0000045036 00000 n
-0000045406 00000 n
-0000045735 00000 n
-0000048613 00000 n
-0000045948 00000 n
-0000046064 00000 n
-0000046178 00000 n
-0000046264 00000 n
-0000046375 00000 n
-0000046487 00000 n
-0000046596 00000 n
-0000046703 00000 n
+0000032948 00000 n
+0000033056 00000 n
+0000034392 00000 n
+0000034500 00000 n
+0000035811 00000 n
+0000035921 00000 n
+0000037222 00000 n
+0000037332 00000 n
+0000038702 00000 n
+0000038812 00000 n
+0000040376 00000 n
+0000040502 00000 n
+0000040523 00000 n
+0000041069 00000 n
+0000041195 00000 n
+0000048433 00000 n
+0000048487 00000 n
+0000041216 00000 n
+0000048552 00000 n
+0000041391 00000 n
+0000041592 00000 n
+0000041763 00000 n
+0000041922 00000 n
+0000042116 00000 n
+0000042370 00000 n
+0000042699 00000 n
+0000042935 00000 n
+0000043136 00000 n
+0000043361 00000 n
+0000043574 00000 n
+0000043757 00000 n
+0000043963 00000 n
+0000044221 00000 n
+0000044467 00000 n
+0000044748 00000 n
+0000045041 00000 n
+0000045411 00000 n
+0000045740 00000 n
+0000048618 00000 n
+0000045953 00000 n
+0000046069 00000 n
+0000046183 00000 n
+0000046269 00000 n
+0000046380 00000 n
+0000046492 00000 n
+0000046601 00000 n
+0000046708 00000 n
trailer
<<
/Size 144
@@ -1338,5 +1338,5 @@ trailer
/Info 4 0 R
>>
startxref
-48682
+48687
%%EOF
diff --git a/doc/xml.html b/doc/xml.html
index 288df47..df889f5 100644
--- a/doc/xml.html
+++ b/doc/xml.html
@@ -677,6 +677,58 @@ to help those</p>
<p>There is the list of public releases:</p>
+<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>
diff --git a/doc/xmlcatalog.1 b/doc/xmlcatalog.1
index 0f3af71..ff31fb7 100644
--- a/doc/xmlcatalog.1
+++ b/doc/xmlcatalog.1
@@ -48,17 +48,17 @@ Create a new XML catalog\&. Outputs to stdout, ignoring \fIfilename\fR unless \f
.TP
\fB\-\-add\fR \fI'type'\fR \fI'orig'\fR \fI'replace'\fR \fIfilename\fR
-Add an entry to catalog file \fIfilename\fR\&. \fItype\fR indicates the type of entry\&. Possible types are 'public', 'system', 'rewriteSystem', 'delegatePublic', 'delegateSystem'amd 'rewriteURI'\&. \fI'orig'\fR is the original reference to be replaced, and \fI'replace'\fR is the URI of the replacement entity to be used\&. The \fB\-\-add\fR option will not overwrite \fIfilename\fR, outputing 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\&.
+Add an entry to catalog file \fIfilename\fR\&. \fItype\fR indicates the type of entry\&. Possible types are 'public', 'system', 'rewriteSystem', 'rewriteURI', 'delegatePublic', 'delegateSystem', and 'nextCatalog'\&. \fI'orig'\fR is the original reference to be replaced, and \fI'replace'\fR is the URI of the replacement entity to be used\&. The \fB\-\-add\fR option will not overwrite \fIfilename\fR, 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\&.
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\&.
.TP
\fB\-\-del\fR \fI'values'\fR \fIfilename\fR
-Remove entries from the catalog file \fIfilename\fR matching \fI'values'\fR\&. The \fB\-\-del\fR option will not overwrite \fIfilename\fR, outputing to stdout, unless \fB\-\-noout\fR is used\&.
+Remove entries from the catalog file \fIfilename\fR matching \fI'values'\fR\&. The \fB\-\-del\fR option will not overwrite \fIfilename\fR, outputting to stdout, unless \fB\-\-noout\fR is used\&.
.TP
\fB\-\-noout\fR
-Save output to the named file rather than outputing to stdout\&.
+Save output to the named file rather than outputting to stdout\&.
.TP
\fB\-\-sgml\fR
@@ -83,7 +83,7 @@ Execute a public identifier lookup of the catalog entry for \fI'SystemID'\fR\&.
.TP
\fBadd \fR \fI'type'\fR \fI'orig'\fR \fI'replace'\fR
-Add an entry to the catalog file\&. \fItype\fR indicates the type of entry\&. Possible types are 'public', 'system', 'rewriteSystem', 'delegatePublic' and 'delegateSystem'\&. \fI'orig'\fR is the original reference to be replaced, and \fI'replace'\fR is the URI of the replacement entity to be used\&.
+Add an entry to the catalog file\&. \fItype\fR indicates the type of entry\&. Possible types are 'public', 'system', 'rewriteSystem', 'rewriteURI', 'delegatePublic', 'delegateSystem', and 'nextCatalog'\&. \fI'orig'\fR is the original reference to be replaced, and \fI'replace'\fR is the URI of the replacement entity to be used\&.
.TP
\fBdel\fR \fI'values'\fR
@@ -136,13 +136,13 @@ Catalog behavior can be changed by redirecting queries to the user's own set of
libxml web page: \fIhttp://www.xmlsoft.org/\fR
.PP
-libxml catalog support web page:: \fIhttp://www.xmlsoft.org/catalog.html\fR
+libxml catalog support web page: \fIhttp://www.xmlsoft.org/catalog.html\fR
.PP
-James Clark's SGML catalog page:: \fIhttp://www.jclark.com/sp/catalog.htm\fR
+James Clark's SGML catalog page: \fIhttp://www.jclark.com/sp/catalog.htm\fR
.PP
-OASIS XML catalog specification: : \fIhttp://www.oasis-open.org/committees/entity/spec.html\fR
+OASIS XML catalog specification: \fIhttp://www.oasis-open.org/committees/entity/spec.html\fR
.SH AUTHOR
John Fleck.
diff --git a/doc/xmlcatalog_man.xml b/doc/xmlcatalog_man.xml
index 47ef084..b35002f 100644
--- a/doc/xmlcatalog_man.xml
+++ b/doc/xmlcatalog_man.xml
@@ -98,12 +98,12 @@
Add an entry to catalog file
<filename>filename</filename>. <replaceable>type</replaceable>
indicates the type of entry. Possible types are 'public', 'system',
- 'rewriteSystem', 'delegatePublic', 'delegateSystem'amd
- 'rewriteURI'. <replaceable>'orig'</replaceable> is the original
+ 'rewriteSystem', 'rewriteURI', 'delegatePublic', 'delegateSystem',
+ and 'nextCatalog'. <replaceable>'orig'</replaceable> is the original
reference to be replaced, and <replaceable>'replace'</replaceable>
is the <acronym>URI</acronym> of the replacement entity to be
used. The <option>--add</option> option will not overwrite
- <replaceable>filename</replaceable>, outputing to stdout, unless
+ <replaceable>filename</replaceable>, outputting to stdout, unless
<option>--noout</option> is used. The <option>--add</option> will
always take three parameters even if some of the
<acronym>XML</acronym> catalog constructs will have only a single
@@ -129,7 +129,7 @@ FIXME - Is my list of possible types correct? Are SGML types the same?
Remove entries from the catalog file
<replaceable>filename</replaceable> matching
<replaceable>'values'</replaceable>. The <option>--del</option> option
- will not overwrite <replaceable>filename</replaceable>, outputing to
+ will not overwrite <replaceable>filename</replaceable>, outputting to
stdout, unless <option>--noout</option> is used.
</simpara>
</listitem>
@@ -139,7 +139,7 @@ FIXME - Is my list of possible types correct? Are SGML types the same?
<listitem>
<simpara>
Save output to the named file rather than
- outputing to stdout.
+ outputting to stdout.
</simpara>
</listitem>
</varlistentry>
@@ -203,7 +203,8 @@ FIXME - Is my list of possible types correct? Are SGML types the same?
Add an entry to the catalog
file. <replaceable>type</replaceable> indicates the type of
entry. Possible types are 'public', 'system', 'rewriteSystem',
- 'delegatePublic' and 'delegateSystem'. <replaceable>'orig'</replaceable>
+ 'rewriteURI', 'delegatePublic', 'delegateSystem', and
+ 'nextCatalog'. <replaceable>'orig'</replaceable>
is the original reference to be replaced, and
<replaceable>'replace'</replaceable> is the <acronym>URI</acronym> of the
replacement entity to be used.
@@ -284,14 +285,14 @@ FIXME - Is my list of possible types correct? Are SGML types the same?
<para><ulink url="http://www.xmlsoft.org/">libxml web page</ulink></para>
<para><ulink url="http://www.xmlsoft.org/catalog.html"><application>libxml</application>
- catalog support web page:</ulink></para>
+ catalog support web page</ulink></para>
<para><ulink url="http://www.jclark.com/sp/catalog.htm">James Clark's
- <acronym>SGML</acronym> catalog page:</ulink></para>
+ <acronym>SGML</acronym> catalog page</ulink></para>
<para><ulink
url="http://www.oasis-open.org/committees/entity/spec.html"><acronym>OASIS</acronym>
- <acronym>XML</acronym> catalog specification: </ulink></para>
+ <acronym>XML</acronym> catalog specification</ulink></para>
</refsect1>
diff --git a/doc/xmllint.1 b/doc/xmllint.1
index feff3df..2c94089 100644
--- a/doc/xmllint.1
+++ b/doc/xmllint.1
@@ -277,5 +277,50 @@ Catalog behavior can be changed by redirecting queries to the user's own set of
.PP
Setting the environment variable \fIXML_DEBUG_CATALOG\fR using the command \fB"export XML_DEBUG_CATALOG="\fR outputs debugging information related to catalog operations\&.
+.SH "ERROR RETURN CODES"
+
+.PP
+On the completion of execution, Xmllint returns the following error codes:
+
+.TP
+0
+No error
+
+.TP
+1
+Unclassified
+
+.TP
+2
+Error in DTD
+
+.TP
+3
+Validation error
+
+.TP
+4
+Validation error
+
+.TP
+5
+Error in schema compilation
+
+.TP
+6
+Error writing output
+
+.TP
+7
+Error in pattern (generated when [\-\-pattern] option is used)
+
+.TP
+8
+Error in Reader registration (generated when [\-\-chkregister] option is used)
+
+.TP
+9
+Out of memory error
+
.SH AUTHORS
John Fleck, Ziying Sherwin, Heiko Rupp.
diff --git a/doc/xmllint.html b/doc/xmllint.html
index 855eaf7..d486df3 100644
--- a/doc/xmllint.html
+++ b/doc/xmllint.html
@@ -1,4 +1,4 @@
-<html><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>xmllint</title><meta name="generator" content="DocBook XSL Stylesheets V1.61.2"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="refentry" lang="en"><a name="id2431614"></a><div class="titlepage"><div></div><div></div></div><div class="refnamediv"><h2>Name</h2><p>xmllint &#8212; command line <span class="acronym">XML</span> tool</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="cmdsynopsis"><p><tt class="command">xmllint</tt> [[--version] | [--debug] | [--shell] | [--debugent] | [--copy] | [--recover] | [--noent] | [--nocdata] | [--nsclean] | [--noout] | [--htmlout] | [--nowrap] | [--valid] | [--postvalid] | [--dtdvalid <i class="replaceable"><tt>URL</tt></i>] | [--dtdvalidfpi <i class="replaceable"><tt>FPI</tt></i>] | [--timing] | [--repeat] | [--insert] | [--compress] | [--html] | [--push] | [--memory] | [--nowarning] | [--noblanks] | [--format] | [--testIO] | [--encode <i class="replaceable"><tt>encoding</tt></i>] | [--catalogs] | [--nocatalogs] | [--auto] | [--xinclude] | [--loaddtd] | [--dtdattr] | [--dropdtd] | [--stream] | [--chkregister] | [--relaxng] | [--schema] | [--nonet]] [<tt class="option"><i class="replaceable"><tt>xmlfile</tt></i></tt>]</p></div></div><div class="refsect1" lang="en"><a name="introduction"></a><h2>Introduction</h2><p>
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>xmllint</title><meta name="generator" content="DocBook XSL Stylesheets V1.61.2"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="refentry" lang="en"><a name="id2719562"></a><div class="titlepage"><div></div><div></div></div><div class="refnamediv"><h2>Name</h2><p>xmllint &#8212; command line <span class="acronym">XML</span> tool</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="cmdsynopsis"><p><tt class="command">xmllint</tt> [[--version] | [--debug] | [--shell] | [--debugent] | [--copy] | [--recover] | [--noent] | [--nocdata] | [--nsclean] | [--noout] | [--htmlout] | [--nowrap] | [--valid] | [--postvalid] | [--dtdvalid <i class="replaceable"><tt>URL</tt></i>] | [--dtdvalidfpi <i class="replaceable"><tt>FPI</tt></i>] | [--timing] | [--repeat] | [--insert] | [--compress] | [--html] | [--push] | [--memory] | [--nowarning] | [--noblanks] | [--format] | [--testIO] | [--encode <i class="replaceable"><tt>encoding</tt></i>] | [--catalogs] | [--nocatalogs] | [--auto] | [--xinclude] | [--loaddtd] | [--dtdattr] | [--dropdtd] | [--stream] | [--chkregister] | [--relaxng] | [--schema] | [--nonet]] [<tt class="option"><i class="replaceable"><tt>xmlfile</tt></i></tt>]</p></div></div><div class="refsect1" lang="en"><a name="introduction"></a><h2>Introduction</h2><p>
The xmllint program parses one or more XML files, specified on the
command line as <i class="replaceable"><tt>xmlfile</tt></i>. It prints various
types of output, depending upon the options selected. It is useful for
@@ -150,4 +150,7 @@
catalogs. An empty one should deactivate loading the default
<tt class="filename">/etc/xml/catalog</tt> default catalog.</p></div><div class="refsect1" lang="en"><h2>Debugging Catalogs</h2><p>Setting the environment variable <tt class="varname">XML_DEBUG_CATALOG</tt>
using the command <b class="command">"export XML_DEBUG_CATALOG="</b>
- outputs debugging information related to catalog operations.</p></div></div></body></html>
+ outputs debugging information related to catalog operations.</p></div><div class="refsect1" lang="en"><h2>Error Return Codes</h2><p>On the completion of execution, <span class="application">Xmllint</span>
+ returns the following error codes:</p><div class="variablelist"><dl><dt><span class="term">0</span></dt><dd>No error</dd><dt><span class="term">1</span></dt><dd>Unclassified</dd><dt><span class="term">2</span></dt><dd>Error in DTD</dd><dt><span class="term">3</span></dt><dd>Validation error</dd><dt><span class="term">4</span></dt><dd>Validation error</dd><dt><span class="term">5</span></dt><dd>Error in schema compilation</dd><dt><span class="term">6</span></dt><dd>Error writing output</dd><dt><span class="term">7</span></dt><dd>Error in pattern (generated when
+ [<span class="optional">--pattern</span>] option is used)</dd><dt><span class="term">8</span></dt><dd>Error in Reader registration (generated when
+ [<span class="optional">--chkregister</span>] option is used)</dd><dt><span class="term">9</span></dt><dd>Out of memory error</dd></dl></div></div></div></body></html>
diff --git a/doc/xmllint.xml b/doc/xmllint.xml
index ea881c7..92db49d 100644
--- a/doc/xmllint.xml
+++ b/doc/xmllint.xml
@@ -29,7 +29,7 @@
</author>
<address><email>hwr@pilhuhn.de</email></address>
- <releaseinfo>This is release 0.3 of the xmllint Manual.</releaseinfo>
+ <releaseinfo>This is release 0.4 of the xmllint Manual.</releaseinfo>
</refentryinfo>
<refmeta>
@@ -640,4 +640,73 @@
using the command <command>&quot;export XML_DEBUG_CATALOG=&quot;</command>
outputs debugging information related to catalog operations.</para>
</refsect1>
+ <refsect1>
+ <title>Error Return Codes</title>
+ <para>On the completion of execution, <application>Xmllint</application>
+ returns the following error codes:</para>
+ <variablelist>
+ <varlistentry>
+ <term>0</term>
+ <listitem>
+ <simpara>No error</simpara>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>1</term>
+ <listitem>
+ <simpara>Unclassified</simpara>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>2</term>
+ <listitem>
+ <simpara>Error in DTD</simpara>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>3</term>
+ <listitem>
+ <simpara>Validation error</simpara>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>4</term>
+ <listitem>
+ <simpara>Validation error</simpara>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>5</term>
+ <listitem>
+ <simpara>Error in schema compilation</simpara>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>6</term>
+ <listitem>
+ <simpara>Error writing output</simpara>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>7</term>
+ <listitem>
+ <simpara>Error in pattern (generated when
+ <optional>--pattern</optional> option is used)</simpara>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>8</term>
+ <listitem>
+ <simpara>Error in Reader registration (generated when
+ <optional>--chkregister</optional> option is used)</simpara>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>9</term>
+ <listitem>
+ <simpara>Out of memory error</simpara>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </refsect1>
</refentry>
diff --git a/elfgcchack.h b/elfgcchack.h
new file mode 100644
index 0000000..215509d
--- /dev/null
+++ b/elfgcchack.h
@@ -0,0 +1,7492 @@
+/*
+ * elfgcchack.h: hack by Arjan van de Ven <arjanv@redhat.com> 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
+ */
+
+#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/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"
+
+/* special hot spot not exported ones */
+
+extern __typeof (__xmlGenericError) __xmlGenericError__internal_alias __attribute((visibility("hidden")));
+extern __typeof (__xmlGenericError) __xmlGenericError __attribute((alias("__xmlGenericError__internal_alias")));
+#define __xmlGenericError __xmlGenericError__internal_alias
+
+extern __typeof (__xmlGenericErrorContext) __xmlGenericErrorContext__internal_alias __attribute((visibility("hidden")));
+extern __typeof (__xmlGenericErrorContext) __xmlGenericErrorContext __attribute((alias("__xmlGenericErrorContext__internal_alias")));
+#define __xmlGenericErrorContext __xmlGenericErrorContext__internal_alias
+
+/* list generated from libxml2-api.xml */
+
+extern __typeof (docbCreatePushParserCtxt) docbCreatePushParserCtxt__internal_alias __attribute((visibility("hidden")));
+extern __typeof (docbCreatePushParserCtxt) docbCreatePushParserCtxt __attribute((alias("docbCreatePushParserCtxt__internal_alias")));
+#define docbCreatePushParserCtxt docbCreatePushParserCtxt__internal_alias
+
+#ifdef LIBXML_HTML_ENABLED
+extern __typeof (htmlAttrAllowed) htmlAttrAllowed__internal_alias __attribute((visibility("hidden")));
+extern __typeof (htmlAttrAllowed) htmlAttrAllowed __attribute((alias("htmlAttrAllowed__internal_alias")));
+#define htmlAttrAllowed htmlAttrAllowed__internal_alias
+#endif
+
+#ifdef LIBXML_HTML_ENABLED
+extern __typeof (htmlAutoCloseTag) htmlAutoCloseTag__internal_alias __attribute((visibility("hidden")));
+extern __typeof (htmlAutoCloseTag) htmlAutoCloseTag __attribute((alias("htmlAutoCloseTag__internal_alias")));
+#define htmlAutoCloseTag htmlAutoCloseTag__internal_alias
+#endif
+
+#ifdef LIBXML_HTML_ENABLED
+extern __typeof (htmlCreateFileParserCtxt) htmlCreateFileParserCtxt__internal_alias __attribute((visibility("hidden")));
+extern __typeof (htmlCreateFileParserCtxt) htmlCreateFileParserCtxt __attribute((alias("htmlCreateFileParserCtxt__internal_alias")));
+#define htmlCreateFileParserCtxt htmlCreateFileParserCtxt__internal_alias
+#endif
+
+#ifdef LIBXML_HTML_ENABLED
+extern __typeof (htmlCreateMemoryParserCtxt) htmlCreateMemoryParserCtxt__internal_alias __attribute((visibility("hidden")));
+extern __typeof (htmlCreateMemoryParserCtxt) htmlCreateMemoryParserCtxt __attribute((alias("htmlCreateMemoryParserCtxt__internal_alias")));
+#define htmlCreateMemoryParserCtxt htmlCreateMemoryParserCtxt__internal_alias
+#endif
+
+#ifdef LIBXML_HTML_ENABLED
+#ifdef LIBXML_PUSH_ENABLED
+extern __typeof (htmlCreatePushParserCtxt) htmlCreatePushParserCtxt__internal_alias __attribute((visibility("hidden")));
+extern __typeof (htmlCreatePushParserCtxt) htmlCreatePushParserCtxt __attribute((alias("htmlCreatePushParserCtxt__internal_alias")));
+#define htmlCreatePushParserCtxt htmlCreatePushParserCtxt__internal_alias
+#endif
+#endif
+
+#ifdef LIBXML_HTML_ENABLED
+extern __typeof (htmlCtxtReadDoc) htmlCtxtReadDoc__internal_alias __attribute((visibility("hidden")));
+extern __typeof (htmlCtxtReadDoc) htmlCtxtReadDoc __attribute((alias("htmlCtxtReadDoc__internal_alias")));
+#define htmlCtxtReadDoc htmlCtxtReadDoc__internal_alias
+#endif
+
+#ifdef LIBXML_HTML_ENABLED
+extern __typeof (htmlCtxtReadFd) htmlCtxtReadFd__internal_alias __attribute((visibility("hidden")));
+extern __typeof (htmlCtxtReadFd) htmlCtxtReadFd __attribute((alias("htmlCtxtReadFd__internal_alias")));
+#define htmlCtxtReadFd htmlCtxtReadFd__internal_alias
+#endif
+
+#ifdef LIBXML_HTML_ENABLED
+extern __typeof (htmlCtxtReadFile) htmlCtxtReadFile__internal_alias __attribute((visibility("hidden")));
+extern __typeof (htmlCtxtReadFile) htmlCtxtReadFile __attribute((alias("htmlCtxtReadFile__internal_alias")));
+#define htmlCtxtReadFile htmlCtxtReadFile__internal_alias
+#endif
+
+#ifdef LIBXML_HTML_ENABLED
+extern __typeof (htmlCtxtReadIO) htmlCtxtReadIO__internal_alias __attribute((visibility("hidden")));
+extern __typeof (htmlCtxtReadIO) htmlCtxtReadIO __attribute((alias("htmlCtxtReadIO__internal_alias")));
+#define htmlCtxtReadIO htmlCtxtReadIO__internal_alias
+#endif
+
+#ifdef LIBXML_HTML_ENABLED
+extern __typeof (htmlCtxtReadMemory) htmlCtxtReadMemory__internal_alias __attribute((visibility("hidden")));
+extern __typeof (htmlCtxtReadMemory) htmlCtxtReadMemory __attribute((alias("htmlCtxtReadMemory__internal_alias")));
+#define htmlCtxtReadMemory htmlCtxtReadMemory__internal_alias
+#endif
+
+#ifdef LIBXML_HTML_ENABLED
+extern __typeof (htmlCtxtReset) htmlCtxtReset__internal_alias __attribute((visibility("hidden")));
+extern __typeof (htmlCtxtReset) htmlCtxtReset __attribute((alias("htmlCtxtReset__internal_alias")));
+#define htmlCtxtReset htmlCtxtReset__internal_alias
+#endif
+
+#ifdef LIBXML_HTML_ENABLED
+extern __typeof (htmlCtxtUseOptions) htmlCtxtUseOptions__internal_alias __attribute((visibility("hidden")));
+extern __typeof (htmlCtxtUseOptions) htmlCtxtUseOptions __attribute((alias("htmlCtxtUseOptions__internal_alias")));
+#define htmlCtxtUseOptions htmlCtxtUseOptions__internal_alias
+#endif
+
+extern __typeof (htmlDefaultSAXHandlerInit) htmlDefaultSAXHandlerInit__internal_alias __attribute((visibility("hidden")));
+extern __typeof (htmlDefaultSAXHandlerInit) htmlDefaultSAXHandlerInit __attribute((alias("htmlDefaultSAXHandlerInit__internal_alias")));
+#define htmlDefaultSAXHandlerInit htmlDefaultSAXHandlerInit__internal_alias
+
+#ifdef LIBXML_HTML_ENABLED
+#ifdef LIBXML_OUTPUT_ENABLED
+extern __typeof (htmlDocContentDumpFormatOutput) htmlDocContentDumpFormatOutput__internal_alias __attribute((visibility("hidden")));
+extern __typeof (htmlDocContentDumpFormatOutput) htmlDocContentDumpFormatOutput __attribute((alias("htmlDocContentDumpFormatOutput__internal_alias")));
+#define htmlDocContentDumpFormatOutput htmlDocContentDumpFormatOutput__internal_alias
+#endif
+#endif
+
+#ifdef LIBXML_HTML_ENABLED
+#ifdef LIBXML_OUTPUT_ENABLED
+extern __typeof (htmlDocContentDumpOutput) htmlDocContentDumpOutput__internal_alias __attribute((visibility("hidden")));
+extern __typeof (htmlDocContentDumpOutput) htmlDocContentDumpOutput __attribute((alias("htmlDocContentDumpOutput__internal_alias")));
+#define htmlDocContentDumpOutput htmlDocContentDumpOutput__internal_alias
+#endif
+#endif
+
+#ifdef LIBXML_HTML_ENABLED
+#ifdef LIBXML_OUTPUT_ENABLED
+extern __typeof (htmlDocDump) htmlDocDump__internal_alias __attribute((visibility("hidden")));
+extern __typeof (htmlDocDump) htmlDocDump __attribute((alias("htmlDocDump__internal_alias")));
+#define htmlDocDump htmlDocDump__internal_alias
+#endif
+#endif
+
+#ifdef LIBXML_HTML_ENABLED
+#ifdef LIBXML_OUTPUT_ENABLED
+extern __typeof (htmlDocDumpMemory) htmlDocDumpMemory__internal_alias __attribute((visibility("hidden")));
+extern __typeof (htmlDocDumpMemory) htmlDocDumpMemory __attribute((alias("htmlDocDumpMemory__internal_alias")));
+#define htmlDocDumpMemory htmlDocDumpMemory__internal_alias
+#endif
+#endif
+
+#ifdef LIBXML_HTML_ENABLED
+extern __typeof (htmlElementAllowedHere) htmlElementAllowedHere__internal_alias __attribute((visibility("hidden")));
+extern __typeof (htmlElementAllowedHere) htmlElementAllowedHere __attribute((alias("htmlElementAllowedHere__internal_alias")));
+#define htmlElementAllowedHere htmlElementAllowedHere__internal_alias
+#endif
+
+#ifdef LIBXML_HTML_ENABLED
+extern __typeof (htmlElementStatusHere) htmlElementStatusHere__internal_alias __attribute((visibility("hidden")));
+extern __typeof (htmlElementStatusHere) htmlElementStatusHere __attribute((alias("htmlElementStatusHere__internal_alias")));
+#define htmlElementStatusHere htmlElementStatusHere__internal_alias
+#endif
+
+#ifdef LIBXML_HTML_ENABLED
+extern __typeof (htmlEncodeEntities) htmlEncodeEntities__internal_alias __attribute((visibility("hidden")));
+extern __typeof (htmlEncodeEntities) htmlEncodeEntities __attribute((alias("htmlEncodeEntities__internal_alias")));
+#define htmlEncodeEntities htmlEncodeEntities__internal_alias
+#endif
+
+#ifdef LIBXML_HTML_ENABLED
+extern __typeof (htmlEntityLookup) htmlEntityLookup__internal_alias __attribute((visibility("hidden")));
+extern __typeof (htmlEntityLookup) htmlEntityLookup __attribute((alias("htmlEntityLookup__internal_alias")));
+#define htmlEntityLookup htmlEntityLookup__internal_alias
+#endif
+
+#ifdef LIBXML_HTML_ENABLED
+extern __typeof (htmlEntityValueLookup) htmlEntityValueLookup__internal_alias __attribute((visibility("hidden")));
+extern __typeof (htmlEntityValueLookup) htmlEntityValueLookup __attribute((alias("htmlEntityValueLookup__internal_alias")));
+#define htmlEntityValueLookup htmlEntityValueLookup__internal_alias
+#endif
+
+#ifdef LIBXML_HTML_ENABLED
+extern __typeof (htmlFreeParserCtxt) htmlFreeParserCtxt__internal_alias __attribute((visibility("hidden")));
+extern __typeof (htmlFreeParserCtxt) htmlFreeParserCtxt __attribute((alias("htmlFreeParserCtxt__internal_alias")));
+#define htmlFreeParserCtxt htmlFreeParserCtxt__internal_alias
+#endif
+
+#ifdef LIBXML_HTML_ENABLED
+extern __typeof (htmlGetMetaEncoding) htmlGetMetaEncoding__internal_alias __attribute((visibility("hidden")));
+extern __typeof (htmlGetMetaEncoding) htmlGetMetaEncoding __attribute((alias("htmlGetMetaEncoding__internal_alias")));
+#define htmlGetMetaEncoding htmlGetMetaEncoding__internal_alias
+#endif
+
+#ifdef LIBXML_HTML_ENABLED
+extern __typeof (htmlHandleOmittedElem) htmlHandleOmittedElem__internal_alias __attribute((visibility("hidden")));
+extern __typeof (htmlHandleOmittedElem) htmlHandleOmittedElem __attribute((alias("htmlHandleOmittedElem__internal_alias")));
+#define htmlHandleOmittedElem htmlHandleOmittedElem__internal_alias
+#endif
+
+#ifdef LIBXML_HTML_ENABLED
+extern __typeof (htmlInitAutoClose) htmlInitAutoClose__internal_alias __attribute((visibility("hidden")));
+extern __typeof (htmlInitAutoClose) htmlInitAutoClose __attribute((alias("htmlInitAutoClose__internal_alias")));
+#define htmlInitAutoClose htmlInitAutoClose__internal_alias
+#endif
+
+#ifdef LIBXML_HTML_ENABLED
+extern __typeof (htmlIsAutoClosed) htmlIsAutoClosed__internal_alias __attribute((visibility("hidden")));
+extern __typeof (htmlIsAutoClosed) htmlIsAutoClosed __attribute((alias("htmlIsAutoClosed__internal_alias")));
+#define htmlIsAutoClosed htmlIsAutoClosed__internal_alias
+#endif
+
+#ifdef LIBXML_HTML_ENABLED
+extern __typeof (htmlIsBooleanAttr) htmlIsBooleanAttr__internal_alias __attribute((visibility("hidden")));
+extern __typeof (htmlIsBooleanAttr) htmlIsBooleanAttr __attribute((alias("htmlIsBooleanAttr__internal_alias")));
+#define htmlIsBooleanAttr htmlIsBooleanAttr__internal_alias
+#endif
+
+#ifdef LIBXML_HTML_ENABLED
+extern __typeof (htmlIsScriptAttribute) htmlIsScriptAttribute__internal_alias __attribute((visibility("hidden")));
+extern __typeof (htmlIsScriptAttribute) htmlIsScriptAttribute __attribute((alias("htmlIsScriptAttribute__internal_alias")));
+#define htmlIsScriptAttribute htmlIsScriptAttribute__internal_alias
+#endif
+
+#ifdef LIBXML_HTML_ENABLED
+extern __typeof (htmlNewDoc) htmlNewDoc__internal_alias __attribute((visibility("hidden")));
+extern __typeof (htmlNewDoc) htmlNewDoc __attribute((alias("htmlNewDoc__internal_alias")));
+#define htmlNewDoc htmlNewDoc__internal_alias
+#endif
+
+#ifdef LIBXML_HTML_ENABLED
+extern __typeof (htmlNewDocNoDtD) htmlNewDocNoDtD__internal_alias __attribute((visibility("hidden")));
+extern __typeof (htmlNewDocNoDtD) htmlNewDocNoDtD __attribute((alias("htmlNewDocNoDtD__internal_alias")));
+#define htmlNewDocNoDtD htmlNewDocNoDtD__internal_alias
+#endif
+
+#ifdef LIBXML_HTML_ENABLED
+#ifdef LIBXML_OUTPUT_ENABLED
+extern __typeof (htmlNodeDump) htmlNodeDump__internal_alias __attribute((visibility("hidden")));
+extern __typeof (htmlNodeDump) htmlNodeDump __attribute((alias("htmlNodeDump__internal_alias")));
+#define htmlNodeDump htmlNodeDump__internal_alias
+#endif
+#endif
+
+#ifdef LIBXML_HTML_ENABLED
+#ifdef LIBXML_OUTPUT_ENABLED
+extern __typeof (htmlNodeDumpFile) htmlNodeDumpFile__internal_alias __attribute((visibility("hidden")));
+extern __typeof (htmlNodeDumpFile) htmlNodeDumpFile __attribute((alias("htmlNodeDumpFile__internal_alias")));
+#define htmlNodeDumpFile htmlNodeDumpFile__internal_alias
+#endif
+#endif
+
+#ifdef LIBXML_HTML_ENABLED
+#ifdef LIBXML_OUTPUT_ENABLED
+extern __typeof (htmlNodeDumpFileFormat) htmlNodeDumpFileFormat__internal_alias __attribute((visibility("hidden")));
+extern __typeof (htmlNodeDumpFileFormat) htmlNodeDumpFileFormat __attribute((alias("htmlNodeDumpFileFormat__internal_alias")));
+#define htmlNodeDumpFileFormat htmlNodeDumpFileFormat__internal_alias
+#endif
+#endif
+
+#ifdef LIBXML_HTML_ENABLED
+#ifdef LIBXML_OUTPUT_ENABLED
+extern __typeof (htmlNodeDumpFormatOutput) htmlNodeDumpFormatOutput__internal_alias __attribute((visibility("hidden")));
+extern __typeof (htmlNodeDumpFormatOutput) htmlNodeDumpFormatOutput __attribute((alias("htmlNodeDumpFormatOutput__internal_alias")));
+#define htmlNodeDumpFormatOutput htmlNodeDumpFormatOutput__internal_alias
+#endif
+#endif
+
+#ifdef LIBXML_HTML_ENABLED
+#ifdef LIBXML_OUTPUT_ENABLED
+extern __typeof (htmlNodeDumpOutput) htmlNodeDumpOutput__internal_alias __attribute((visibility("hidden")));
+extern __typeof (htmlNodeDumpOutput) htmlNodeDumpOutput __attribute((alias("htmlNodeDumpOutput__internal_alias")));
+#define htmlNodeDumpOutput htmlNodeDumpOutput__internal_alias
+#endif
+#endif
+
+#ifdef LIBXML_HTML_ENABLED
+extern __typeof (htmlNodeStatus) htmlNodeStatus__internal_alias __attribute((visibility("hidden")));
+extern __typeof (htmlNodeStatus) htmlNodeStatus __attribute((alias("htmlNodeStatus__internal_alias")));
+#define htmlNodeStatus htmlNodeStatus__internal_alias
+#endif
+
+#ifdef LIBXML_HTML_ENABLED
+extern __typeof (htmlParseCharRef) htmlParseCharRef__internal_alias __attribute((visibility("hidden")));
+extern __typeof (htmlParseCharRef) htmlParseCharRef __attribute((alias("htmlParseCharRef__internal_alias")));
+#define htmlParseCharRef htmlParseCharRef__internal_alias
+#endif
+
+#ifdef LIBXML_HTML_ENABLED
+#ifdef LIBXML_PUSH_ENABLED
+extern __typeof (htmlParseChunk) htmlParseChunk__internal_alias __attribute((visibility("hidden")));
+extern __typeof (htmlParseChunk) htmlParseChunk __attribute((alias("htmlParseChunk__internal_alias")));
+#define htmlParseChunk htmlParseChunk__internal_alias
+#endif
+#endif
+
+#ifdef LIBXML_HTML_ENABLED
+extern __typeof (htmlParseDoc) htmlParseDoc__internal_alias __attribute((visibility("hidden")));
+extern __typeof (htmlParseDoc) htmlParseDoc __attribute((alias("htmlParseDoc__internal_alias")));
+#define htmlParseDoc htmlParseDoc__internal_alias
+#endif
+
+#ifdef LIBXML_HTML_ENABLED
+extern __typeof (htmlParseDocument) htmlParseDocument__internal_alias __attribute((visibility("hidden")));
+extern __typeof (htmlParseDocument) htmlParseDocument __attribute((alias("htmlParseDocument__internal_alias")));
+#define htmlParseDocument htmlParseDocument__internal_alias
+#endif
+
+#ifdef LIBXML_HTML_ENABLED
+extern __typeof (htmlParseElement) htmlParseElement__internal_alias __attribute((visibility("hidden")));
+extern __typeof (htmlParseElement) htmlParseElement __attribute((alias("htmlParseElement__internal_alias")));
+#define htmlParseElement htmlParseElement__internal_alias
+#endif
+
+#ifdef LIBXML_HTML_ENABLED
+extern __typeof (htmlParseEntityRef) htmlParseEntityRef__internal_alias __attribute((visibility("hidden")));
+extern __typeof (htmlParseEntityRef) htmlParseEntityRef __attribute((alias("htmlParseEntityRef__internal_alias")));
+#define htmlParseEntityRef htmlParseEntityRef__internal_alias
+#endif
+
+#ifdef LIBXML_HTML_ENABLED
+extern __typeof (htmlParseFile) htmlParseFile__internal_alias __attribute((visibility("hidden")));
+extern __typeof (htmlParseFile) htmlParseFile __attribute((alias("htmlParseFile__internal_alias")));
+#define htmlParseFile htmlParseFile__internal_alias
+#endif
+
+#ifdef LIBXML_HTML_ENABLED
+extern __typeof (htmlReadDoc) htmlReadDoc__internal_alias __attribute((visibility("hidden")));
+extern __typeof (htmlReadDoc) htmlReadDoc __attribute((alias("htmlReadDoc__internal_alias")));
+#define htmlReadDoc htmlReadDoc__internal_alias
+#endif
+
+#ifdef LIBXML_HTML_ENABLED
+extern __typeof (htmlReadFd) htmlReadFd__internal_alias __attribute((visibility("hidden")));
+extern __typeof (htmlReadFd) htmlReadFd __attribute((alias("htmlReadFd__internal_alias")));
+#define htmlReadFd htmlReadFd__internal_alias
+#endif
+
+#ifdef LIBXML_HTML_ENABLED
+extern __typeof (htmlReadFile) htmlReadFile__internal_alias __attribute((visibility("hidden")));
+extern __typeof (htmlReadFile) htmlReadFile __attribute((alias("htmlReadFile__internal_alias")));
+#define htmlReadFile htmlReadFile__internal_alias
+#endif
+
+#ifdef LIBXML_HTML_ENABLED
+extern __typeof (htmlReadIO) htmlReadIO__internal_alias __attribute((visibility("hidden")));
+extern __typeof (htmlReadIO) htmlReadIO __attribute((alias("htmlReadIO__internal_alias")));
+#define htmlReadIO htmlReadIO__internal_alias
+#endif
+
+#ifdef LIBXML_HTML_ENABLED
+extern __typeof (htmlReadMemory) htmlReadMemory__internal_alias __attribute((visibility("hidden")));
+extern __typeof (htmlReadMemory) htmlReadMemory __attribute((alias("htmlReadMemory__internal_alias")));
+#define htmlReadMemory htmlReadMemory__internal_alias
+#endif
+
+#ifdef LIBXML_HTML_ENABLED
+extern __typeof (htmlSAXParseDoc) htmlSAXParseDoc__internal_alias __attribute((visibility("hidden")));
+extern __typeof (htmlSAXParseDoc) htmlSAXParseDoc __attribute((alias("htmlSAXParseDoc__internal_alias")));
+#define htmlSAXParseDoc htmlSAXParseDoc__internal_alias
+#endif
+
+#ifdef LIBXML_HTML_ENABLED
+extern __typeof (htmlSAXParseFile) htmlSAXParseFile__internal_alias __attribute((visibility("hidden")));
+extern __typeof (htmlSAXParseFile) htmlSAXParseFile __attribute((alias("htmlSAXParseFile__internal_alias")));
+#define htmlSAXParseFile htmlSAXParseFile__internal_alias
+#endif
+
+#ifdef LIBXML_HTML_ENABLED
+#ifdef LIBXML_OUTPUT_ENABLED
+extern __typeof (htmlSaveFile) htmlSaveFile__internal_alias __attribute((visibility("hidden")));
+extern __typeof (htmlSaveFile) htmlSaveFile __attribute((alias("htmlSaveFile__internal_alias")));
+#define htmlSaveFile htmlSaveFile__internal_alias
+#endif
+#endif
+
+#ifdef LIBXML_HTML_ENABLED
+#ifdef LIBXML_OUTPUT_ENABLED
+extern __typeof (htmlSaveFileEnc) htmlSaveFileEnc__internal_alias __attribute((visibility("hidden")));
+extern __typeof (htmlSaveFileEnc) htmlSaveFileEnc __attribute((alias("htmlSaveFileEnc__internal_alias")));
+#define htmlSaveFileEnc htmlSaveFileEnc__internal_alias
+#endif
+#endif
+
+#ifdef LIBXML_HTML_ENABLED
+#ifdef LIBXML_OUTPUT_ENABLED
+extern __typeof (htmlSaveFileFormat) htmlSaveFileFormat__internal_alias __attribute((visibility("hidden")));
+extern __typeof (htmlSaveFileFormat) htmlSaveFileFormat __attribute((alias("htmlSaveFileFormat__internal_alias")));
+#define htmlSaveFileFormat htmlSaveFileFormat__internal_alias
+#endif
+#endif
+
+#ifdef LIBXML_HTML_ENABLED
+extern __typeof (htmlSetMetaEncoding) htmlSetMetaEncoding__internal_alias __attribute((visibility("hidden")));
+extern __typeof (htmlSetMetaEncoding) htmlSetMetaEncoding __attribute((alias("htmlSetMetaEncoding__internal_alias")));
+#define htmlSetMetaEncoding htmlSetMetaEncoding__internal_alias
+#endif
+
+#ifdef LIBXML_HTML_ENABLED
+extern __typeof (htmlTagLookup) htmlTagLookup__internal_alias __attribute((visibility("hidden")));
+extern __typeof (htmlTagLookup) htmlTagLookup __attribute((alias("htmlTagLookup__internal_alias")));
+#define htmlTagLookup htmlTagLookup__internal_alias
+#endif
+
+extern __typeof (inputPop) inputPop__internal_alias __attribute((visibility("hidden")));
+extern __typeof (inputPop) inputPop __attribute((alias("inputPop__internal_alias")));
+#define inputPop inputPop__internal_alias
+
+extern __typeof (inputPush) inputPush__internal_alias __attribute((visibility("hidden")));
+extern __typeof (inputPush) inputPush __attribute((alias("inputPush__internal_alias")));
+#define inputPush inputPush__internal_alias
+
+extern __typeof (namePop) namePop__internal_alias __attribute((visibility("hidden")));
+extern __typeof (namePop) namePop __attribute((alias("namePop__internal_alias")));
+#define namePop namePop__internal_alias
+
+extern __typeof (namePush) namePush__internal_alias __attribute((visibility("hidden")));
+extern __typeof (namePush) namePush __attribute((alias("namePush__internal_alias")));
+#define namePush namePush__internal_alias
+
+extern __typeof (nodePop) nodePop__internal_alias __attribute((visibility("hidden")));
+extern __typeof (nodePop) nodePop __attribute((alias("nodePop__internal_alias")));
+#define nodePop nodePop__internal_alias
+
+extern __typeof (nodePush) nodePush__internal_alias __attribute((visibility("hidden")));
+extern __typeof (nodePush) nodePush __attribute((alias("nodePush__internal_alias")));
+#define nodePush nodePush__internal_alias
+
+#ifdef LIBXML_XPATH_ENABLED
+extern __typeof (valuePop) valuePop__internal_alias __attribute((visibility("hidden")));
+extern __typeof (valuePop) valuePop __attribute((alias("valuePop__internal_alias")));
+#define valuePop valuePop__internal_alias
+#endif
+
+#ifdef LIBXML_XPATH_ENABLED
+extern __typeof (valuePush) valuePush__internal_alias __attribute((visibility("hidden")));
+extern __typeof (valuePush) valuePush __attribute((alias("valuePush__internal_alias")));
+#define valuePush valuePush__internal_alias
+#endif
+
+#ifdef LIBXML_CATALOG_ENABLED
+extern __typeof (xmlACatalogAdd) xmlACatalogAdd__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlACatalogAdd) xmlACatalogAdd __attribute((alias("xmlACatalogAdd__internal_alias")));
+#define xmlACatalogAdd xmlACatalogAdd__internal_alias
+#endif
+
+#ifdef LIBXML_CATALOG_ENABLED
+#ifdef LIBXML_OUTPUT_ENABLED
+extern __typeof (xmlACatalogDump) xmlACatalogDump__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlACatalogDump) xmlACatalogDump __attribute((alias("xmlACatalogDump__internal_alias")));
+#define xmlACatalogDump xmlACatalogDump__internal_alias
+#endif
+#endif
+
+#ifdef LIBXML_CATALOG_ENABLED
+extern __typeof (xmlACatalogRemove) xmlACatalogRemove__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlACatalogRemove) xmlACatalogRemove __attribute((alias("xmlACatalogRemove__internal_alias")));
+#define xmlACatalogRemove xmlACatalogRemove__internal_alias
+#endif
+
+#ifdef LIBXML_CATALOG_ENABLED
+extern __typeof (xmlACatalogResolve) xmlACatalogResolve__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlACatalogResolve) xmlACatalogResolve __attribute((alias("xmlACatalogResolve__internal_alias")));
+#define xmlACatalogResolve xmlACatalogResolve__internal_alias
+#endif
+
+#ifdef LIBXML_CATALOG_ENABLED
+extern __typeof (xmlACatalogResolvePublic) xmlACatalogResolvePublic__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlACatalogResolvePublic) xmlACatalogResolvePublic __attribute((alias("xmlACatalogResolvePublic__internal_alias")));
+#define xmlACatalogResolvePublic xmlACatalogResolvePublic__internal_alias
+#endif
+
+#ifdef LIBXML_CATALOG_ENABLED
+extern __typeof (xmlACatalogResolveSystem) xmlACatalogResolveSystem__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlACatalogResolveSystem) xmlACatalogResolveSystem __attribute((alias("xmlACatalogResolveSystem__internal_alias")));
+#define xmlACatalogResolveSystem xmlACatalogResolveSystem__internal_alias
+#endif
+
+#ifdef LIBXML_CATALOG_ENABLED
+extern __typeof (xmlACatalogResolveURI) xmlACatalogResolveURI__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlACatalogResolveURI) xmlACatalogResolveURI __attribute((alias("xmlACatalogResolveURI__internal_alias")));
+#define xmlACatalogResolveURI xmlACatalogResolveURI__internal_alias
+#endif
+
+extern __typeof (xmlAddAttributeDecl) xmlAddAttributeDecl__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlAddAttributeDecl) xmlAddAttributeDecl __attribute((alias("xmlAddAttributeDecl__internal_alias")));
+#define xmlAddAttributeDecl xmlAddAttributeDecl__internal_alias
+
+extern __typeof (xmlAddChild) xmlAddChild__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlAddChild) xmlAddChild __attribute((alias("xmlAddChild__internal_alias")));
+#define xmlAddChild xmlAddChild__internal_alias
+
+extern __typeof (xmlAddChildList) xmlAddChildList__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlAddChildList) xmlAddChildList __attribute((alias("xmlAddChildList__internal_alias")));
+#define xmlAddChildList xmlAddChildList__internal_alias
+
+extern __typeof (xmlAddDocEntity) xmlAddDocEntity__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlAddDocEntity) xmlAddDocEntity __attribute((alias("xmlAddDocEntity__internal_alias")));
+#define xmlAddDocEntity xmlAddDocEntity__internal_alias
+
+extern __typeof (xmlAddDtdEntity) xmlAddDtdEntity__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlAddDtdEntity) xmlAddDtdEntity __attribute((alias("xmlAddDtdEntity__internal_alias")));
+#define xmlAddDtdEntity xmlAddDtdEntity__internal_alias
+
+extern __typeof (xmlAddElementDecl) xmlAddElementDecl__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlAddElementDecl) xmlAddElementDecl __attribute((alias("xmlAddElementDecl__internal_alias")));
+#define xmlAddElementDecl xmlAddElementDecl__internal_alias
+
+extern __typeof (xmlAddEncodingAlias) xmlAddEncodingAlias__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlAddEncodingAlias) xmlAddEncodingAlias __attribute((alias("xmlAddEncodingAlias__internal_alias")));
+#define xmlAddEncodingAlias xmlAddEncodingAlias__internal_alias
+
+extern __typeof (xmlAddID) xmlAddID__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlAddID) xmlAddID __attribute((alias("xmlAddID__internal_alias")));
+#define xmlAddID xmlAddID__internal_alias
+
+extern __typeof (xmlAddNextSibling) xmlAddNextSibling__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlAddNextSibling) xmlAddNextSibling __attribute((alias("xmlAddNextSibling__internal_alias")));
+#define xmlAddNextSibling xmlAddNextSibling__internal_alias
+
+extern __typeof (xmlAddNotationDecl) xmlAddNotationDecl__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlAddNotationDecl) xmlAddNotationDecl __attribute((alias("xmlAddNotationDecl__internal_alias")));
+#define xmlAddNotationDecl xmlAddNotationDecl__internal_alias
+
+#ifdef LIBXML_TREE_ENABLED
+extern __typeof (xmlAddPrevSibling) xmlAddPrevSibling__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlAddPrevSibling) xmlAddPrevSibling __attribute((alias("xmlAddPrevSibling__internal_alias")));
+#define xmlAddPrevSibling xmlAddPrevSibling__internal_alias
+#endif
+
+extern __typeof (xmlAddRef) xmlAddRef__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlAddRef) xmlAddRef __attribute((alias("xmlAddRef__internal_alias")));
+#define xmlAddRef xmlAddRef__internal_alias
+
+extern __typeof (xmlAddSibling) xmlAddSibling__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlAddSibling) xmlAddSibling __attribute((alias("xmlAddSibling__internal_alias")));
+#define xmlAddSibling xmlAddSibling__internal_alias
+
+#ifdef LIBXML_OUTPUT_ENABLED
+extern __typeof (xmlAllocOutputBuffer) xmlAllocOutputBuffer__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlAllocOutputBuffer) xmlAllocOutputBuffer __attribute((alias("xmlAllocOutputBuffer__internal_alias")));
+#define xmlAllocOutputBuffer xmlAllocOutputBuffer__internal_alias
+#endif
+
+extern __typeof (xmlAllocParserInputBuffer) xmlAllocParserInputBuffer__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlAllocParserInputBuffer) xmlAllocParserInputBuffer __attribute((alias("xmlAllocParserInputBuffer__internal_alias")));
+#define xmlAllocParserInputBuffer xmlAllocParserInputBuffer__internal_alias
+
+extern __typeof (xmlAttrSerializeTxtContent) xmlAttrSerializeTxtContent__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlAttrSerializeTxtContent) xmlAttrSerializeTxtContent __attribute((alias("xmlAttrSerializeTxtContent__internal_alias")));
+#define xmlAttrSerializeTxtContent xmlAttrSerializeTxtContent__internal_alias
+
+#ifdef LIBXML_AUTOMATA_ENABLED
+extern __typeof (xmlAutomataCompile) xmlAutomataCompile__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlAutomataCompile) xmlAutomataCompile __attribute((alias("xmlAutomataCompile__internal_alias")));
+#define xmlAutomataCompile xmlAutomataCompile__internal_alias
+#endif
+
+#ifdef LIBXML_AUTOMATA_ENABLED
+extern __typeof (xmlAutomataGetInitState) xmlAutomataGetInitState__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlAutomataGetInitState) xmlAutomataGetInitState __attribute((alias("xmlAutomataGetInitState__internal_alias")));
+#define xmlAutomataGetInitState xmlAutomataGetInitState__internal_alias
+#endif
+
+#ifdef LIBXML_AUTOMATA_ENABLED
+extern __typeof (xmlAutomataIsDeterminist) xmlAutomataIsDeterminist__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlAutomataIsDeterminist) xmlAutomataIsDeterminist __attribute((alias("xmlAutomataIsDeterminist__internal_alias")));
+#define xmlAutomataIsDeterminist xmlAutomataIsDeterminist__internal_alias
+#endif
+
+#ifdef LIBXML_AUTOMATA_ENABLED
+extern __typeof (xmlAutomataNewAllTrans) xmlAutomataNewAllTrans__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlAutomataNewAllTrans) xmlAutomataNewAllTrans __attribute((alias("xmlAutomataNewAllTrans__internal_alias")));
+#define xmlAutomataNewAllTrans xmlAutomataNewAllTrans__internal_alias
+#endif
+
+#ifdef LIBXML_AUTOMATA_ENABLED
+extern __typeof (xmlAutomataNewCountTrans) xmlAutomataNewCountTrans__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlAutomataNewCountTrans) xmlAutomataNewCountTrans __attribute((alias("xmlAutomataNewCountTrans__internal_alias")));
+#define xmlAutomataNewCountTrans xmlAutomataNewCountTrans__internal_alias
+#endif
+
+#ifdef LIBXML_AUTOMATA_ENABLED
+extern __typeof (xmlAutomataNewCountedTrans) xmlAutomataNewCountedTrans__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlAutomataNewCountedTrans) xmlAutomataNewCountedTrans __attribute((alias("xmlAutomataNewCountedTrans__internal_alias")));
+#define xmlAutomataNewCountedTrans xmlAutomataNewCountedTrans__internal_alias
+#endif
+
+#ifdef LIBXML_AUTOMATA_ENABLED
+extern __typeof (xmlAutomataNewCounter) xmlAutomataNewCounter__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlAutomataNewCounter) xmlAutomataNewCounter __attribute((alias("xmlAutomataNewCounter__internal_alias")));
+#define xmlAutomataNewCounter xmlAutomataNewCounter__internal_alias
+#endif
+
+#ifdef LIBXML_AUTOMATA_ENABLED
+extern __typeof (xmlAutomataNewCounterTrans) xmlAutomataNewCounterTrans__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlAutomataNewCounterTrans) xmlAutomataNewCounterTrans __attribute((alias("xmlAutomataNewCounterTrans__internal_alias")));
+#define xmlAutomataNewCounterTrans xmlAutomataNewCounterTrans__internal_alias
+#endif
+
+#ifdef LIBXML_AUTOMATA_ENABLED
+extern __typeof (xmlAutomataNewEpsilon) xmlAutomataNewEpsilon__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlAutomataNewEpsilon) xmlAutomataNewEpsilon __attribute((alias("xmlAutomataNewEpsilon__internal_alias")));
+#define xmlAutomataNewEpsilon xmlAutomataNewEpsilon__internal_alias
+#endif
+
+#ifdef LIBXML_AUTOMATA_ENABLED
+extern __typeof (xmlAutomataNewOnceTrans) xmlAutomataNewOnceTrans__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlAutomataNewOnceTrans) xmlAutomataNewOnceTrans __attribute((alias("xmlAutomataNewOnceTrans__internal_alias")));
+#define xmlAutomataNewOnceTrans xmlAutomataNewOnceTrans__internal_alias
+#endif
+
+#ifdef LIBXML_AUTOMATA_ENABLED
+extern __typeof (xmlAutomataNewState) xmlAutomataNewState__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlAutomataNewState) xmlAutomataNewState __attribute((alias("xmlAutomataNewState__internal_alias")));
+#define xmlAutomataNewState xmlAutomataNewState__internal_alias
+#endif
+
+#ifdef LIBXML_AUTOMATA_ENABLED
+extern __typeof (xmlAutomataNewTransition) xmlAutomataNewTransition__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlAutomataNewTransition) xmlAutomataNewTransition __attribute((alias("xmlAutomataNewTransition__internal_alias")));
+#define xmlAutomataNewTransition xmlAutomataNewTransition__internal_alias
+#endif
+
+#ifdef LIBXML_AUTOMATA_ENABLED
+extern __typeof (xmlAutomataNewTransition2) xmlAutomataNewTransition2__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlAutomataNewTransition2) xmlAutomataNewTransition2 __attribute((alias("xmlAutomataNewTransition2__internal_alias")));
+#define xmlAutomataNewTransition2 xmlAutomataNewTransition2__internal_alias
+#endif
+
+#ifdef LIBXML_AUTOMATA_ENABLED
+extern __typeof (xmlAutomataSetFinalState) xmlAutomataSetFinalState__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlAutomataSetFinalState) xmlAutomataSetFinalState __attribute((alias("xmlAutomataSetFinalState__internal_alias")));
+#define xmlAutomataSetFinalState xmlAutomataSetFinalState__internal_alias
+#endif
+
+#ifdef LIBXML_DEBUG_ENABLED
+extern __typeof (xmlBoolToText) xmlBoolToText__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlBoolToText) xmlBoolToText __attribute((alias("xmlBoolToText__internal_alias")));
+#define xmlBoolToText xmlBoolToText__internal_alias
+#endif
+
+extern __typeof (xmlBufferAdd) xmlBufferAdd__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlBufferAdd) xmlBufferAdd __attribute((alias("xmlBufferAdd__internal_alias")));
+#define xmlBufferAdd xmlBufferAdd__internal_alias
+
+extern __typeof (xmlBufferAddHead) xmlBufferAddHead__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlBufferAddHead) xmlBufferAddHead __attribute((alias("xmlBufferAddHead__internal_alias")));
+#define xmlBufferAddHead xmlBufferAddHead__internal_alias
+
+extern __typeof (xmlBufferCCat) xmlBufferCCat__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlBufferCCat) xmlBufferCCat __attribute((alias("xmlBufferCCat__internal_alias")));
+#define xmlBufferCCat xmlBufferCCat__internal_alias
+
+extern __typeof (xmlBufferCat) xmlBufferCat__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlBufferCat) xmlBufferCat __attribute((alias("xmlBufferCat__internal_alias")));
+#define xmlBufferCat xmlBufferCat__internal_alias
+
+extern __typeof (xmlBufferContent) xmlBufferContent__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlBufferContent) xmlBufferContent __attribute((alias("xmlBufferContent__internal_alias")));
+#define xmlBufferContent xmlBufferContent__internal_alias
+
+extern __typeof (xmlBufferCreate) xmlBufferCreate__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlBufferCreate) xmlBufferCreate __attribute((alias("xmlBufferCreate__internal_alias")));
+#define xmlBufferCreate xmlBufferCreate__internal_alias
+
+extern __typeof (xmlBufferCreateSize) xmlBufferCreateSize__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlBufferCreateSize) xmlBufferCreateSize __attribute((alias("xmlBufferCreateSize__internal_alias")));
+#define xmlBufferCreateSize xmlBufferCreateSize__internal_alias
+
+extern __typeof (xmlBufferCreateStatic) xmlBufferCreateStatic__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlBufferCreateStatic) xmlBufferCreateStatic __attribute((alias("xmlBufferCreateStatic__internal_alias")));
+#define xmlBufferCreateStatic xmlBufferCreateStatic__internal_alias
+
+extern __typeof (xmlBufferDump) xmlBufferDump__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlBufferDump) xmlBufferDump __attribute((alias("xmlBufferDump__internal_alias")));
+#define xmlBufferDump xmlBufferDump__internal_alias
+
+extern __typeof (xmlBufferEmpty) xmlBufferEmpty__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlBufferEmpty) xmlBufferEmpty __attribute((alias("xmlBufferEmpty__internal_alias")));
+#define xmlBufferEmpty xmlBufferEmpty__internal_alias
+
+extern __typeof (xmlBufferFree) xmlBufferFree__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlBufferFree) xmlBufferFree __attribute((alias("xmlBufferFree__internal_alias")));
+#define xmlBufferFree xmlBufferFree__internal_alias
+
+extern __typeof (xmlBufferGrow) xmlBufferGrow__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlBufferGrow) xmlBufferGrow __attribute((alias("xmlBufferGrow__internal_alias")));
+#define xmlBufferGrow xmlBufferGrow__internal_alias
+
+extern __typeof (xmlBufferLength) xmlBufferLength__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlBufferLength) xmlBufferLength __attribute((alias("xmlBufferLength__internal_alias")));
+#define xmlBufferLength xmlBufferLength__internal_alias
+
+extern __typeof (xmlBufferResize) xmlBufferResize__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlBufferResize) xmlBufferResize __attribute((alias("xmlBufferResize__internal_alias")));
+#define xmlBufferResize xmlBufferResize__internal_alias
+
+extern __typeof (xmlBufferSetAllocationScheme) xmlBufferSetAllocationScheme__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlBufferSetAllocationScheme) xmlBufferSetAllocationScheme __attribute((alias("xmlBufferSetAllocationScheme__internal_alias")));
+#define xmlBufferSetAllocationScheme xmlBufferSetAllocationScheme__internal_alias
+
+extern __typeof (xmlBufferShrink) xmlBufferShrink__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlBufferShrink) xmlBufferShrink __attribute((alias("xmlBufferShrink__internal_alias")));
+#define xmlBufferShrink xmlBufferShrink__internal_alias
+
+extern __typeof (xmlBufferWriteCHAR) xmlBufferWriteCHAR__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlBufferWriteCHAR) xmlBufferWriteCHAR __attribute((alias("xmlBufferWriteCHAR__internal_alias")));
+#define xmlBufferWriteCHAR xmlBufferWriteCHAR__internal_alias
+
+extern __typeof (xmlBufferWriteChar) xmlBufferWriteChar__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlBufferWriteChar) xmlBufferWriteChar __attribute((alias("xmlBufferWriteChar__internal_alias")));
+#define xmlBufferWriteChar xmlBufferWriteChar__internal_alias
+
+extern __typeof (xmlBufferWriteQuotedString) xmlBufferWriteQuotedString__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlBufferWriteQuotedString) xmlBufferWriteQuotedString __attribute((alias("xmlBufferWriteQuotedString__internal_alias")));
+#define xmlBufferWriteQuotedString xmlBufferWriteQuotedString__internal_alias
+
+extern __typeof (xmlBuildQName) xmlBuildQName__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlBuildQName) xmlBuildQName __attribute((alias("xmlBuildQName__internal_alias")));
+#define xmlBuildQName xmlBuildQName__internal_alias
+
+extern __typeof (xmlBuildRelativeURI) xmlBuildRelativeURI__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlBuildRelativeURI) xmlBuildRelativeURI __attribute((alias("xmlBuildRelativeURI__internal_alias")));
+#define xmlBuildRelativeURI xmlBuildRelativeURI__internal_alias
+
+extern __typeof (xmlBuildURI) xmlBuildURI__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlBuildURI) xmlBuildURI __attribute((alias("xmlBuildURI__internal_alias")));
+#define xmlBuildURI xmlBuildURI__internal_alias
+
+extern __typeof (xmlByteConsumed) xmlByteConsumed__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlByteConsumed) xmlByteConsumed __attribute((alias("xmlByteConsumed__internal_alias")));
+#define xmlByteConsumed xmlByteConsumed__internal_alias
+
+#ifdef LIBXML_C14N_ENABLED
+#ifdef LIBXML_OUTPUT_ENABLED
+extern __typeof (xmlC14NDocDumpMemory) xmlC14NDocDumpMemory__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlC14NDocDumpMemory) xmlC14NDocDumpMemory __attribute((alias("xmlC14NDocDumpMemory__internal_alias")));
+#define xmlC14NDocDumpMemory xmlC14NDocDumpMemory__internal_alias
+#endif
+#endif
+
+#ifdef LIBXML_C14N_ENABLED
+#ifdef LIBXML_OUTPUT_ENABLED
+extern __typeof (xmlC14NDocSave) xmlC14NDocSave__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlC14NDocSave) xmlC14NDocSave __attribute((alias("xmlC14NDocSave__internal_alias")));
+#define xmlC14NDocSave xmlC14NDocSave__internal_alias
+#endif
+#endif
+
+#ifdef LIBXML_C14N_ENABLED
+#ifdef LIBXML_OUTPUT_ENABLED
+extern __typeof (xmlC14NDocSaveTo) xmlC14NDocSaveTo__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlC14NDocSaveTo) xmlC14NDocSaveTo __attribute((alias("xmlC14NDocSaveTo__internal_alias")));
+#define xmlC14NDocSaveTo xmlC14NDocSaveTo__internal_alias
+#endif
+#endif
+
+#ifdef LIBXML_C14N_ENABLED
+#ifdef LIBXML_OUTPUT_ENABLED
+extern __typeof (xmlC14NExecute) xmlC14NExecute__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlC14NExecute) xmlC14NExecute __attribute((alias("xmlC14NExecute__internal_alias")));
+#define xmlC14NExecute xmlC14NExecute__internal_alias
+#endif
+#endif
+
+extern __typeof (xmlCanonicPath) xmlCanonicPath__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlCanonicPath) xmlCanonicPath __attribute((alias("xmlCanonicPath__internal_alias")));
+#define xmlCanonicPath xmlCanonicPath__internal_alias
+
+#ifdef LIBXML_CATALOG_ENABLED
+extern __typeof (xmlCatalogAdd) xmlCatalogAdd__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlCatalogAdd) xmlCatalogAdd __attribute((alias("xmlCatalogAdd__internal_alias")));
+#define xmlCatalogAdd xmlCatalogAdd__internal_alias
+#endif
+
+#ifdef LIBXML_CATALOG_ENABLED
+extern __typeof (xmlCatalogAddLocal) xmlCatalogAddLocal__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlCatalogAddLocal) xmlCatalogAddLocal __attribute((alias("xmlCatalogAddLocal__internal_alias")));
+#define xmlCatalogAddLocal xmlCatalogAddLocal__internal_alias
+#endif
+
+#ifdef LIBXML_CATALOG_ENABLED
+extern __typeof (xmlCatalogCleanup) xmlCatalogCleanup__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlCatalogCleanup) xmlCatalogCleanup __attribute((alias("xmlCatalogCleanup__internal_alias")));
+#define xmlCatalogCleanup xmlCatalogCleanup__internal_alias
+#endif
+
+#ifdef LIBXML_CATALOG_ENABLED
+extern __typeof (xmlCatalogConvert) xmlCatalogConvert__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlCatalogConvert) xmlCatalogConvert __attribute((alias("xmlCatalogConvert__internal_alias")));
+#define xmlCatalogConvert xmlCatalogConvert__internal_alias
+#endif
+
+#ifdef LIBXML_CATALOG_ENABLED
+#ifdef LIBXML_OUTPUT_ENABLED
+extern __typeof (xmlCatalogDump) xmlCatalogDump__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlCatalogDump) xmlCatalogDump __attribute((alias("xmlCatalogDump__internal_alias")));
+#define xmlCatalogDump xmlCatalogDump__internal_alias
+#endif
+#endif
+
+#ifdef LIBXML_CATALOG_ENABLED
+extern __typeof (xmlCatalogFreeLocal) xmlCatalogFreeLocal__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlCatalogFreeLocal) xmlCatalogFreeLocal __attribute((alias("xmlCatalogFreeLocal__internal_alias")));
+#define xmlCatalogFreeLocal xmlCatalogFreeLocal__internal_alias
+#endif
+
+#ifdef LIBXML_CATALOG_ENABLED
+extern __typeof (xmlCatalogGetDefaults) xmlCatalogGetDefaults__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlCatalogGetDefaults) xmlCatalogGetDefaults __attribute((alias("xmlCatalogGetDefaults__internal_alias")));
+#define xmlCatalogGetDefaults xmlCatalogGetDefaults__internal_alias
+#endif
+
+#ifdef LIBXML_CATALOG_ENABLED
+extern __typeof (xmlCatalogGetPublic) xmlCatalogGetPublic__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlCatalogGetPublic) xmlCatalogGetPublic __attribute((alias("xmlCatalogGetPublic__internal_alias")));
+#define xmlCatalogGetPublic xmlCatalogGetPublic__internal_alias
+#endif
+
+#ifdef LIBXML_CATALOG_ENABLED
+extern __typeof (xmlCatalogGetSystem) xmlCatalogGetSystem__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlCatalogGetSystem) xmlCatalogGetSystem __attribute((alias("xmlCatalogGetSystem__internal_alias")));
+#define xmlCatalogGetSystem xmlCatalogGetSystem__internal_alias
+#endif
+
+#ifdef LIBXML_CATALOG_ENABLED
+extern __typeof (xmlCatalogIsEmpty) xmlCatalogIsEmpty__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlCatalogIsEmpty) xmlCatalogIsEmpty __attribute((alias("xmlCatalogIsEmpty__internal_alias")));
+#define xmlCatalogIsEmpty xmlCatalogIsEmpty__internal_alias
+#endif
+
+#ifdef LIBXML_CATALOG_ENABLED
+extern __typeof (xmlCatalogLocalResolve) xmlCatalogLocalResolve__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlCatalogLocalResolve) xmlCatalogLocalResolve __attribute((alias("xmlCatalogLocalResolve__internal_alias")));
+#define xmlCatalogLocalResolve xmlCatalogLocalResolve__internal_alias
+#endif
+
+#ifdef LIBXML_CATALOG_ENABLED
+extern __typeof (xmlCatalogLocalResolveURI) xmlCatalogLocalResolveURI__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlCatalogLocalResolveURI) xmlCatalogLocalResolveURI __attribute((alias("xmlCatalogLocalResolveURI__internal_alias")));
+#define xmlCatalogLocalResolveURI xmlCatalogLocalResolveURI__internal_alias
+#endif
+
+#ifdef LIBXML_CATALOG_ENABLED
+extern __typeof (xmlCatalogRemove) xmlCatalogRemove__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlCatalogRemove) xmlCatalogRemove __attribute((alias("xmlCatalogRemove__internal_alias")));
+#define xmlCatalogRemove xmlCatalogRemove__internal_alias
+#endif
+
+#ifdef LIBXML_CATALOG_ENABLED
+extern __typeof (xmlCatalogResolve) xmlCatalogResolve__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlCatalogResolve) xmlCatalogResolve __attribute((alias("xmlCatalogResolve__internal_alias")));
+#define xmlCatalogResolve xmlCatalogResolve__internal_alias
+#endif
+
+#ifdef LIBXML_CATALOG_ENABLED
+extern __typeof (xmlCatalogResolvePublic) xmlCatalogResolvePublic__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlCatalogResolvePublic) xmlCatalogResolvePublic __attribute((alias("xmlCatalogResolvePublic__internal_alias")));
+#define xmlCatalogResolvePublic xmlCatalogResolvePublic__internal_alias
+#endif
+
+#ifdef LIBXML_CATALOG_ENABLED
+extern __typeof (xmlCatalogResolveSystem) xmlCatalogResolveSystem__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlCatalogResolveSystem) xmlCatalogResolveSystem __attribute((alias("xmlCatalogResolveSystem__internal_alias")));
+#define xmlCatalogResolveSystem xmlCatalogResolveSystem__internal_alias
+#endif
+
+#ifdef LIBXML_CATALOG_ENABLED
+extern __typeof (xmlCatalogResolveURI) xmlCatalogResolveURI__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlCatalogResolveURI) xmlCatalogResolveURI __attribute((alias("xmlCatalogResolveURI__internal_alias")));
+#define xmlCatalogResolveURI xmlCatalogResolveURI__internal_alias
+#endif
+
+#ifdef LIBXML_CATALOG_ENABLED
+extern __typeof (xmlCatalogSetDebug) xmlCatalogSetDebug__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlCatalogSetDebug) xmlCatalogSetDebug __attribute((alias("xmlCatalogSetDebug__internal_alias")));
+#define xmlCatalogSetDebug xmlCatalogSetDebug__internal_alias
+#endif
+
+#ifdef LIBXML_CATALOG_ENABLED
+extern __typeof (xmlCatalogSetDefaultPrefer) xmlCatalogSetDefaultPrefer__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlCatalogSetDefaultPrefer) xmlCatalogSetDefaultPrefer __attribute((alias("xmlCatalogSetDefaultPrefer__internal_alias")));
+#define xmlCatalogSetDefaultPrefer xmlCatalogSetDefaultPrefer__internal_alias
+#endif
+
+#ifdef LIBXML_CATALOG_ENABLED
+extern __typeof (xmlCatalogSetDefaults) xmlCatalogSetDefaults__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlCatalogSetDefaults) xmlCatalogSetDefaults __attribute((alias("xmlCatalogSetDefaults__internal_alias")));
+#define xmlCatalogSetDefaults xmlCatalogSetDefaults__internal_alias
+#endif
+
+extern __typeof (xmlCharEncCloseFunc) xmlCharEncCloseFunc__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlCharEncCloseFunc) xmlCharEncCloseFunc __attribute((alias("xmlCharEncCloseFunc__internal_alias")));
+#define xmlCharEncCloseFunc xmlCharEncCloseFunc__internal_alias
+
+extern __typeof (xmlCharEncFirstLine) xmlCharEncFirstLine__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlCharEncFirstLine) xmlCharEncFirstLine __attribute((alias("xmlCharEncFirstLine__internal_alias")));
+#define xmlCharEncFirstLine xmlCharEncFirstLine__internal_alias
+
+extern __typeof (xmlCharEncInFunc) xmlCharEncInFunc__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlCharEncInFunc) xmlCharEncInFunc __attribute((alias("xmlCharEncInFunc__internal_alias")));
+#define xmlCharEncInFunc xmlCharEncInFunc__internal_alias
+
+extern __typeof (xmlCharEncOutFunc) xmlCharEncOutFunc__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlCharEncOutFunc) xmlCharEncOutFunc __attribute((alias("xmlCharEncOutFunc__internal_alias")));
+#define xmlCharEncOutFunc xmlCharEncOutFunc__internal_alias
+
+extern __typeof (xmlCharInRange) xmlCharInRange__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlCharInRange) xmlCharInRange __attribute((alias("xmlCharInRange__internal_alias")));
+#define xmlCharInRange xmlCharInRange__internal_alias
+
+extern __typeof (xmlCharStrdup) xmlCharStrdup__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlCharStrdup) xmlCharStrdup __attribute((alias("xmlCharStrdup__internal_alias")));
+#define xmlCharStrdup xmlCharStrdup__internal_alias
+
+extern __typeof (xmlCharStrndup) xmlCharStrndup__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlCharStrndup) xmlCharStrndup __attribute((alias("xmlCharStrndup__internal_alias")));
+#define xmlCharStrndup xmlCharStrndup__internal_alias
+
+extern __typeof (xmlCheckFilename) xmlCheckFilename__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlCheckFilename) xmlCheckFilename __attribute((alias("xmlCheckFilename__internal_alias")));
+#define xmlCheckFilename xmlCheckFilename__internal_alias
+
+extern __typeof (xmlCheckHTTPInput) xmlCheckHTTPInput__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlCheckHTTPInput) xmlCheckHTTPInput __attribute((alias("xmlCheckHTTPInput__internal_alias")));
+#define xmlCheckHTTPInput xmlCheckHTTPInput__internal_alias
+
+extern __typeof (xmlCheckLanguageID) xmlCheckLanguageID__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlCheckLanguageID) xmlCheckLanguageID __attribute((alias("xmlCheckLanguageID__internal_alias")));
+#define xmlCheckLanguageID xmlCheckLanguageID__internal_alias
+
+extern __typeof (xmlCheckUTF8) xmlCheckUTF8__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlCheckUTF8) xmlCheckUTF8 __attribute((alias("xmlCheckUTF8__internal_alias")));
+#define xmlCheckUTF8 xmlCheckUTF8__internal_alias
+
+extern __typeof (xmlCheckVersion) xmlCheckVersion__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlCheckVersion) xmlCheckVersion __attribute((alias("xmlCheckVersion__internal_alias")));
+#define xmlCheckVersion xmlCheckVersion__internal_alias
+
+extern __typeof (xmlCleanupCharEncodingHandlers) xmlCleanupCharEncodingHandlers__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlCleanupCharEncodingHandlers) xmlCleanupCharEncodingHandlers __attribute((alias("xmlCleanupCharEncodingHandlers__internal_alias")));
+#define xmlCleanupCharEncodingHandlers xmlCleanupCharEncodingHandlers__internal_alias
+
+extern __typeof (xmlCleanupEncodingAliases) xmlCleanupEncodingAliases__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlCleanupEncodingAliases) xmlCleanupEncodingAliases __attribute((alias("xmlCleanupEncodingAliases__internal_alias")));
+#define xmlCleanupEncodingAliases xmlCleanupEncodingAliases__internal_alias
+
+extern __typeof (xmlCleanupGlobals) xmlCleanupGlobals__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlCleanupGlobals) xmlCleanupGlobals __attribute((alias("xmlCleanupGlobals__internal_alias")));
+#define xmlCleanupGlobals xmlCleanupGlobals__internal_alias
+
+extern __typeof (xmlCleanupInputCallbacks) xmlCleanupInputCallbacks__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlCleanupInputCallbacks) xmlCleanupInputCallbacks __attribute((alias("xmlCleanupInputCallbacks__internal_alias")));
+#define xmlCleanupInputCallbacks xmlCleanupInputCallbacks__internal_alias
+
+extern __typeof (xmlCleanupMemory) xmlCleanupMemory__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlCleanupMemory) xmlCleanupMemory __attribute((alias("xmlCleanupMemory__internal_alias")));
+#define xmlCleanupMemory xmlCleanupMemory__internal_alias
+
+#ifdef LIBXML_OUTPUT_ENABLED
+extern __typeof (xmlCleanupOutputCallbacks) xmlCleanupOutputCallbacks__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlCleanupOutputCallbacks) xmlCleanupOutputCallbacks __attribute((alias("xmlCleanupOutputCallbacks__internal_alias")));
+#define xmlCleanupOutputCallbacks xmlCleanupOutputCallbacks__internal_alias
+#endif
+
+extern __typeof (xmlCleanupParser) xmlCleanupParser__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlCleanupParser) xmlCleanupParser __attribute((alias("xmlCleanupParser__internal_alias")));
+#define xmlCleanupParser xmlCleanupParser__internal_alias
+
+extern __typeof (xmlCleanupPredefinedEntities) xmlCleanupPredefinedEntities__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlCleanupPredefinedEntities) xmlCleanupPredefinedEntities __attribute((alias("xmlCleanupPredefinedEntities__internal_alias")));
+#define xmlCleanupPredefinedEntities xmlCleanupPredefinedEntities__internal_alias
+
+extern __typeof (xmlCleanupThreads) xmlCleanupThreads__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlCleanupThreads) xmlCleanupThreads __attribute((alias("xmlCleanupThreads__internal_alias")));
+#define xmlCleanupThreads xmlCleanupThreads__internal_alias
+
+extern __typeof (xmlClearNodeInfoSeq) xmlClearNodeInfoSeq__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlClearNodeInfoSeq) xmlClearNodeInfoSeq __attribute((alias("xmlClearNodeInfoSeq__internal_alias")));
+#define xmlClearNodeInfoSeq xmlClearNodeInfoSeq__internal_alias
+
+extern __typeof (xmlClearParserCtxt) xmlClearParserCtxt__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlClearParserCtxt) xmlClearParserCtxt __attribute((alias("xmlClearParserCtxt__internal_alias")));
+#define xmlClearParserCtxt xmlClearParserCtxt__internal_alias
+
+#ifdef LIBXML_CATALOG_ENABLED
+extern __typeof (xmlConvertSGMLCatalog) xmlConvertSGMLCatalog__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlConvertSGMLCatalog) xmlConvertSGMLCatalog __attribute((alias("xmlConvertSGMLCatalog__internal_alias")));
+#define xmlConvertSGMLCatalog xmlConvertSGMLCatalog__internal_alias
+#endif
+
+extern __typeof (xmlCopyAttributeTable) xmlCopyAttributeTable__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlCopyAttributeTable) xmlCopyAttributeTable __attribute((alias("xmlCopyAttributeTable__internal_alias")));
+#define xmlCopyAttributeTable xmlCopyAttributeTable__internal_alias
+
+extern __typeof (xmlCopyChar) xmlCopyChar__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlCopyChar) xmlCopyChar __attribute((alias("xmlCopyChar__internal_alias")));
+#define xmlCopyChar xmlCopyChar__internal_alias
+
+extern __typeof (xmlCopyCharMultiByte) xmlCopyCharMultiByte__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlCopyCharMultiByte) xmlCopyCharMultiByte __attribute((alias("xmlCopyCharMultiByte__internal_alias")));
+#define xmlCopyCharMultiByte xmlCopyCharMultiByte__internal_alias
+
+#ifdef LIBXML_TREE_ENABLED
+extern __typeof (xmlCopyDoc) xmlCopyDoc__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlCopyDoc) xmlCopyDoc __attribute((alias("xmlCopyDoc__internal_alias")));
+#define xmlCopyDoc xmlCopyDoc__internal_alias
+#endif
+
+#ifdef LIBXML_TREE_ENABLED
+extern __typeof (xmlCopyDtd) xmlCopyDtd__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlCopyDtd) xmlCopyDtd __attribute((alias("xmlCopyDtd__internal_alias")));
+#define xmlCopyDtd xmlCopyDtd__internal_alias
+#endif
+
+extern __typeof (xmlCopyElementContent) xmlCopyElementContent__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlCopyElementContent) xmlCopyElementContent __attribute((alias("xmlCopyElementContent__internal_alias")));
+#define xmlCopyElementContent xmlCopyElementContent__internal_alias
+
+extern __typeof (xmlCopyElementTable) xmlCopyElementTable__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlCopyElementTable) xmlCopyElementTable __attribute((alias("xmlCopyElementTable__internal_alias")));
+#define xmlCopyElementTable xmlCopyElementTable__internal_alias
+
+extern __typeof (xmlCopyEntitiesTable) xmlCopyEntitiesTable__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlCopyEntitiesTable) xmlCopyEntitiesTable __attribute((alias("xmlCopyEntitiesTable__internal_alias")));
+#define xmlCopyEntitiesTable xmlCopyEntitiesTable__internal_alias
+
+extern __typeof (xmlCopyEnumeration) xmlCopyEnumeration__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlCopyEnumeration) xmlCopyEnumeration __attribute((alias("xmlCopyEnumeration__internal_alias")));
+#define xmlCopyEnumeration xmlCopyEnumeration__internal_alias
+
+extern __typeof (xmlCopyError) xmlCopyError__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlCopyError) xmlCopyError __attribute((alias("xmlCopyError__internal_alias")));
+#define xmlCopyError xmlCopyError__internal_alias
+
+extern __typeof (xmlCopyNamespace) xmlCopyNamespace__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlCopyNamespace) xmlCopyNamespace __attribute((alias("xmlCopyNamespace__internal_alias")));
+#define xmlCopyNamespace xmlCopyNamespace__internal_alias
+
+extern __typeof (xmlCopyNamespaceList) xmlCopyNamespaceList__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlCopyNamespaceList) xmlCopyNamespaceList __attribute((alias("xmlCopyNamespaceList__internal_alias")));
+#define xmlCopyNamespaceList xmlCopyNamespaceList__internal_alias
+
+extern __typeof (xmlCopyNode) xmlCopyNode__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlCopyNode) xmlCopyNode __attribute((alias("xmlCopyNode__internal_alias")));
+#define xmlCopyNode xmlCopyNode__internal_alias
+
+extern __typeof (xmlCopyNodeList) xmlCopyNodeList__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlCopyNodeList) xmlCopyNodeList __attribute((alias("xmlCopyNodeList__internal_alias")));
+#define xmlCopyNodeList xmlCopyNodeList__internal_alias
+
+extern __typeof (xmlCopyNotationTable) xmlCopyNotationTable__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlCopyNotationTable) xmlCopyNotationTable __attribute((alias("xmlCopyNotationTable__internal_alias")));
+#define xmlCopyNotationTable xmlCopyNotationTable__internal_alias
+
+extern __typeof (xmlCopyProp) xmlCopyProp__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlCopyProp) xmlCopyProp __attribute((alias("xmlCopyProp__internal_alias")));
+#define xmlCopyProp xmlCopyProp__internal_alias
+
+extern __typeof (xmlCopyPropList) xmlCopyPropList__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlCopyPropList) xmlCopyPropList __attribute((alias("xmlCopyPropList__internal_alias")));
+#define xmlCopyPropList xmlCopyPropList__internal_alias
+
+extern __typeof (xmlCreateDocParserCtxt) xmlCreateDocParserCtxt__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlCreateDocParserCtxt) xmlCreateDocParserCtxt __attribute((alias("xmlCreateDocParserCtxt__internal_alias")));
+#define xmlCreateDocParserCtxt xmlCreateDocParserCtxt__internal_alias
+
+extern __typeof (xmlCreateEntitiesTable) xmlCreateEntitiesTable__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlCreateEntitiesTable) xmlCreateEntitiesTable __attribute((alias("xmlCreateEntitiesTable__internal_alias")));
+#define xmlCreateEntitiesTable xmlCreateEntitiesTable__internal_alias
+
+extern __typeof (xmlCreateEntityParserCtxt) xmlCreateEntityParserCtxt__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlCreateEntityParserCtxt) xmlCreateEntityParserCtxt __attribute((alias("xmlCreateEntityParserCtxt__internal_alias")));
+#define xmlCreateEntityParserCtxt xmlCreateEntityParserCtxt__internal_alias
+
+extern __typeof (xmlCreateEnumeration) xmlCreateEnumeration__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlCreateEnumeration) xmlCreateEnumeration __attribute((alias("xmlCreateEnumeration__internal_alias")));
+#define xmlCreateEnumeration xmlCreateEnumeration__internal_alias
+
+extern __typeof (xmlCreateFileParserCtxt) xmlCreateFileParserCtxt__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlCreateFileParserCtxt) xmlCreateFileParserCtxt __attribute((alias("xmlCreateFileParserCtxt__internal_alias")));
+#define xmlCreateFileParserCtxt xmlCreateFileParserCtxt__internal_alias
+
+extern __typeof (xmlCreateIOParserCtxt) xmlCreateIOParserCtxt__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlCreateIOParserCtxt) xmlCreateIOParserCtxt __attribute((alias("xmlCreateIOParserCtxt__internal_alias")));
+#define xmlCreateIOParserCtxt xmlCreateIOParserCtxt__internal_alias
+
+extern __typeof (xmlCreateIntSubset) xmlCreateIntSubset__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlCreateIntSubset) xmlCreateIntSubset __attribute((alias("xmlCreateIntSubset__internal_alias")));
+#define xmlCreateIntSubset xmlCreateIntSubset__internal_alias
+
+extern __typeof (xmlCreateMemoryParserCtxt) xmlCreateMemoryParserCtxt__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlCreateMemoryParserCtxt) xmlCreateMemoryParserCtxt __attribute((alias("xmlCreateMemoryParserCtxt__internal_alias")));
+#define xmlCreateMemoryParserCtxt xmlCreateMemoryParserCtxt__internal_alias
+
+#ifdef LIBXML_PUSH_ENABLED
+extern __typeof (xmlCreatePushParserCtxt) xmlCreatePushParserCtxt__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlCreatePushParserCtxt) xmlCreatePushParserCtxt __attribute((alias("xmlCreatePushParserCtxt__internal_alias")));
+#define xmlCreatePushParserCtxt xmlCreatePushParserCtxt__internal_alias
+#endif
+
+extern __typeof (xmlCreateURI) xmlCreateURI__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlCreateURI) xmlCreateURI __attribute((alias("xmlCreateURI__internal_alias")));
+#define xmlCreateURI xmlCreateURI__internal_alias
+
+extern __typeof (xmlCreateURLParserCtxt) xmlCreateURLParserCtxt__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlCreateURLParserCtxt) xmlCreateURLParserCtxt __attribute((alias("xmlCreateURLParserCtxt__internal_alias")));
+#define xmlCreateURLParserCtxt xmlCreateURLParserCtxt__internal_alias
+
+extern __typeof (xmlCtxtGetLastError) xmlCtxtGetLastError__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlCtxtGetLastError) xmlCtxtGetLastError __attribute((alias("xmlCtxtGetLastError__internal_alias")));
+#define xmlCtxtGetLastError xmlCtxtGetLastError__internal_alias
+
+extern __typeof (xmlCtxtReadDoc) xmlCtxtReadDoc__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlCtxtReadDoc) xmlCtxtReadDoc __attribute((alias("xmlCtxtReadDoc__internal_alias")));
+#define xmlCtxtReadDoc xmlCtxtReadDoc__internal_alias
+
+extern __typeof (xmlCtxtReadFd) xmlCtxtReadFd__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlCtxtReadFd) xmlCtxtReadFd __attribute((alias("xmlCtxtReadFd__internal_alias")));
+#define xmlCtxtReadFd xmlCtxtReadFd__internal_alias
+
+extern __typeof (xmlCtxtReadFile) xmlCtxtReadFile__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlCtxtReadFile) xmlCtxtReadFile __attribute((alias("xmlCtxtReadFile__internal_alias")));
+#define xmlCtxtReadFile xmlCtxtReadFile__internal_alias
+
+extern __typeof (xmlCtxtReadIO) xmlCtxtReadIO__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlCtxtReadIO) xmlCtxtReadIO __attribute((alias("xmlCtxtReadIO__internal_alias")));
+#define xmlCtxtReadIO xmlCtxtReadIO__internal_alias
+
+extern __typeof (xmlCtxtReadMemory) xmlCtxtReadMemory__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlCtxtReadMemory) xmlCtxtReadMemory __attribute((alias("xmlCtxtReadMemory__internal_alias")));
+#define xmlCtxtReadMemory xmlCtxtReadMemory__internal_alias
+
+extern __typeof (xmlCtxtReset) xmlCtxtReset__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlCtxtReset) xmlCtxtReset __attribute((alias("xmlCtxtReset__internal_alias")));
+#define xmlCtxtReset xmlCtxtReset__internal_alias
+
+extern __typeof (xmlCtxtResetLastError) xmlCtxtResetLastError__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlCtxtResetLastError) xmlCtxtResetLastError __attribute((alias("xmlCtxtResetLastError__internal_alias")));
+#define xmlCtxtResetLastError xmlCtxtResetLastError__internal_alias
+
+extern __typeof (xmlCtxtResetPush) xmlCtxtResetPush__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlCtxtResetPush) xmlCtxtResetPush __attribute((alias("xmlCtxtResetPush__internal_alias")));
+#define xmlCtxtResetPush xmlCtxtResetPush__internal_alias
+
+extern __typeof (xmlCtxtUseOptions) xmlCtxtUseOptions__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlCtxtUseOptions) xmlCtxtUseOptions __attribute((alias("xmlCtxtUseOptions__internal_alias")));
+#define xmlCtxtUseOptions xmlCtxtUseOptions__internal_alias
+
+extern __typeof (xmlCurrentChar) xmlCurrentChar__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlCurrentChar) xmlCurrentChar __attribute((alias("xmlCurrentChar__internal_alias")));
+#define xmlCurrentChar xmlCurrentChar__internal_alias
+
+#ifdef LIBXML_DEBUG_ENABLED
+extern __typeof (xmlDebugDumpAttr) xmlDebugDumpAttr__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlDebugDumpAttr) xmlDebugDumpAttr __attribute((alias("xmlDebugDumpAttr__internal_alias")));
+#define xmlDebugDumpAttr xmlDebugDumpAttr__internal_alias
+#endif
+
+#ifdef LIBXML_DEBUG_ENABLED
+extern __typeof (xmlDebugDumpAttrList) xmlDebugDumpAttrList__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlDebugDumpAttrList) xmlDebugDumpAttrList __attribute((alias("xmlDebugDumpAttrList__internal_alias")));
+#define xmlDebugDumpAttrList xmlDebugDumpAttrList__internal_alias
+#endif
+
+#ifdef LIBXML_DEBUG_ENABLED
+extern __typeof (xmlDebugDumpDTD) xmlDebugDumpDTD__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlDebugDumpDTD) xmlDebugDumpDTD __attribute((alias("xmlDebugDumpDTD__internal_alias")));
+#define xmlDebugDumpDTD xmlDebugDumpDTD__internal_alias
+#endif
+
+#ifdef LIBXML_DEBUG_ENABLED
+extern __typeof (xmlDebugDumpDocument) xmlDebugDumpDocument__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlDebugDumpDocument) xmlDebugDumpDocument __attribute((alias("xmlDebugDumpDocument__internal_alias")));
+#define xmlDebugDumpDocument xmlDebugDumpDocument__internal_alias
+#endif
+
+#ifdef LIBXML_DEBUG_ENABLED
+extern __typeof (xmlDebugDumpDocumentHead) xmlDebugDumpDocumentHead__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlDebugDumpDocumentHead) xmlDebugDumpDocumentHead __attribute((alias("xmlDebugDumpDocumentHead__internal_alias")));
+#define xmlDebugDumpDocumentHead xmlDebugDumpDocumentHead__internal_alias
+#endif
+
+#ifdef LIBXML_DEBUG_ENABLED
+extern __typeof (xmlDebugDumpEntities) xmlDebugDumpEntities__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlDebugDumpEntities) xmlDebugDumpEntities __attribute((alias("xmlDebugDumpEntities__internal_alias")));
+#define xmlDebugDumpEntities xmlDebugDumpEntities__internal_alias
+#endif
+
+#ifdef LIBXML_DEBUG_ENABLED
+extern __typeof (xmlDebugDumpNode) xmlDebugDumpNode__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlDebugDumpNode) xmlDebugDumpNode __attribute((alias("xmlDebugDumpNode__internal_alias")));
+#define xmlDebugDumpNode xmlDebugDumpNode__internal_alias
+#endif
+
+#ifdef LIBXML_DEBUG_ENABLED
+extern __typeof (xmlDebugDumpNodeList) xmlDebugDumpNodeList__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlDebugDumpNodeList) xmlDebugDumpNodeList __attribute((alias("xmlDebugDumpNodeList__internal_alias")));
+#define xmlDebugDumpNodeList xmlDebugDumpNodeList__internal_alias
+#endif
+
+#ifdef LIBXML_DEBUG_ENABLED
+extern __typeof (xmlDebugDumpOneNode) xmlDebugDumpOneNode__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlDebugDumpOneNode) xmlDebugDumpOneNode __attribute((alias("xmlDebugDumpOneNode__internal_alias")));
+#define xmlDebugDumpOneNode xmlDebugDumpOneNode__internal_alias
+#endif
+
+#ifdef LIBXML_DEBUG_ENABLED
+extern __typeof (xmlDebugDumpString) xmlDebugDumpString__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlDebugDumpString) xmlDebugDumpString __attribute((alias("xmlDebugDumpString__internal_alias")));
+#define xmlDebugDumpString xmlDebugDumpString__internal_alias
+#endif
+
+extern __typeof (xmlDecodeEntities) xmlDecodeEntities__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlDecodeEntities) xmlDecodeEntities __attribute((alias("xmlDecodeEntities__internal_alias")));
+#define xmlDecodeEntities xmlDecodeEntities__internal_alias
+
+extern __typeof (xmlDefaultSAXHandlerInit) xmlDefaultSAXHandlerInit__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlDefaultSAXHandlerInit) xmlDefaultSAXHandlerInit __attribute((alias("xmlDefaultSAXHandlerInit__internal_alias")));
+#define xmlDefaultSAXHandlerInit xmlDefaultSAXHandlerInit__internal_alias
+
+extern __typeof (xmlDelEncodingAlias) xmlDelEncodingAlias__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlDelEncodingAlias) xmlDelEncodingAlias __attribute((alias("xmlDelEncodingAlias__internal_alias")));
+#define xmlDelEncodingAlias xmlDelEncodingAlias__internal_alias
+
+extern __typeof (xmlDeregisterNodeDefault) xmlDeregisterNodeDefault__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlDeregisterNodeDefault) xmlDeregisterNodeDefault __attribute((alias("xmlDeregisterNodeDefault__internal_alias")));
+#define xmlDeregisterNodeDefault xmlDeregisterNodeDefault__internal_alias
+
+extern __typeof (xmlDetectCharEncoding) xmlDetectCharEncoding__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlDetectCharEncoding) xmlDetectCharEncoding __attribute((alias("xmlDetectCharEncoding__internal_alias")));
+#define xmlDetectCharEncoding xmlDetectCharEncoding__internal_alias
+
+extern __typeof (xmlDictCreate) xmlDictCreate__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlDictCreate) xmlDictCreate __attribute((alias("xmlDictCreate__internal_alias")));
+#define xmlDictCreate xmlDictCreate__internal_alias
+
+extern __typeof (xmlDictCreateSub) xmlDictCreateSub__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlDictCreateSub) xmlDictCreateSub __attribute((alias("xmlDictCreateSub__internal_alias")));
+#define xmlDictCreateSub xmlDictCreateSub__internal_alias
+
+extern __typeof (xmlDictFree) xmlDictFree__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlDictFree) xmlDictFree __attribute((alias("xmlDictFree__internal_alias")));
+#define xmlDictFree xmlDictFree__internal_alias
+
+extern __typeof (xmlDictLookup) xmlDictLookup__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlDictLookup) xmlDictLookup __attribute((alias("xmlDictLookup__internal_alias")));
+#define xmlDictLookup xmlDictLookup__internal_alias
+
+extern __typeof (xmlDictOwns) xmlDictOwns__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlDictOwns) xmlDictOwns __attribute((alias("xmlDictOwns__internal_alias")));
+#define xmlDictOwns xmlDictOwns__internal_alias
+
+extern __typeof (xmlDictQLookup) xmlDictQLookup__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlDictQLookup) xmlDictQLookup __attribute((alias("xmlDictQLookup__internal_alias")));
+#define xmlDictQLookup xmlDictQLookup__internal_alias
+
+extern __typeof (xmlDictReference) xmlDictReference__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlDictReference) xmlDictReference __attribute((alias("xmlDictReference__internal_alias")));
+#define xmlDictReference xmlDictReference__internal_alias
+
+extern __typeof (xmlDictSize) xmlDictSize__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlDictSize) xmlDictSize __attribute((alias("xmlDictSize__internal_alias")));
+#define xmlDictSize xmlDictSize__internal_alias
+
+extern __typeof (xmlDocCopyNode) xmlDocCopyNode__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlDocCopyNode) xmlDocCopyNode __attribute((alias("xmlDocCopyNode__internal_alias")));
+#define xmlDocCopyNode xmlDocCopyNode__internal_alias
+
+#ifdef LIBXML_OUTPUT_ENABLED
+extern __typeof (xmlDocDump) xmlDocDump__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlDocDump) xmlDocDump __attribute((alias("xmlDocDump__internal_alias")));
+#define xmlDocDump xmlDocDump__internal_alias
+#endif
+
+#ifdef LIBXML_OUTPUT_ENABLED
+extern __typeof (xmlDocDumpFormatMemory) xmlDocDumpFormatMemory__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlDocDumpFormatMemory) xmlDocDumpFormatMemory __attribute((alias("xmlDocDumpFormatMemory__internal_alias")));
+#define xmlDocDumpFormatMemory xmlDocDumpFormatMemory__internal_alias
+#endif
+
+#ifdef LIBXML_OUTPUT_ENABLED
+extern __typeof (xmlDocDumpFormatMemoryEnc) xmlDocDumpFormatMemoryEnc__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlDocDumpFormatMemoryEnc) xmlDocDumpFormatMemoryEnc __attribute((alias("xmlDocDumpFormatMemoryEnc__internal_alias")));
+#define xmlDocDumpFormatMemoryEnc xmlDocDumpFormatMemoryEnc__internal_alias
+#endif
+
+#ifdef LIBXML_OUTPUT_ENABLED
+extern __typeof (xmlDocDumpMemory) xmlDocDumpMemory__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlDocDumpMemory) xmlDocDumpMemory __attribute((alias("xmlDocDumpMemory__internal_alias")));
+#define xmlDocDumpMemory xmlDocDumpMemory__internal_alias
+#endif
+
+#ifdef LIBXML_OUTPUT_ENABLED
+extern __typeof (xmlDocDumpMemoryEnc) xmlDocDumpMemoryEnc__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlDocDumpMemoryEnc) xmlDocDumpMemoryEnc __attribute((alias("xmlDocDumpMemoryEnc__internal_alias")));
+#define xmlDocDumpMemoryEnc xmlDocDumpMemoryEnc__internal_alias
+#endif
+
+#ifdef LIBXML_OUTPUT_ENABLED
+extern __typeof (xmlDocFormatDump) xmlDocFormatDump__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlDocFormatDump) xmlDocFormatDump __attribute((alias("xmlDocFormatDump__internal_alias")));
+#define xmlDocFormatDump xmlDocFormatDump__internal_alias
+#endif
+
+extern __typeof (xmlDocGetRootElement) xmlDocGetRootElement__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlDocGetRootElement) xmlDocGetRootElement __attribute((alias("xmlDocGetRootElement__internal_alias")));
+#define xmlDocGetRootElement xmlDocGetRootElement__internal_alias
+
+#ifdef LIBXML_TREE_ENABLED
+extern __typeof (xmlDocSetRootElement) xmlDocSetRootElement__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlDocSetRootElement) xmlDocSetRootElement __attribute((alias("xmlDocSetRootElement__internal_alias")));
+#define xmlDocSetRootElement xmlDocSetRootElement__internal_alias
+#endif
+
+#ifdef LIBXML_OUTPUT_ENABLED
+extern __typeof (xmlDumpAttributeDecl) xmlDumpAttributeDecl__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlDumpAttributeDecl) xmlDumpAttributeDecl __attribute((alias("xmlDumpAttributeDecl__internal_alias")));
+#define xmlDumpAttributeDecl xmlDumpAttributeDecl__internal_alias
+#endif
+
+#ifdef LIBXML_OUTPUT_ENABLED
+extern __typeof (xmlDumpAttributeTable) xmlDumpAttributeTable__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlDumpAttributeTable) xmlDumpAttributeTable __attribute((alias("xmlDumpAttributeTable__internal_alias")));
+#define xmlDumpAttributeTable xmlDumpAttributeTable__internal_alias
+#endif
+
+#ifdef LIBXML_OUTPUT_ENABLED
+extern __typeof (xmlDumpElementDecl) xmlDumpElementDecl__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlDumpElementDecl) xmlDumpElementDecl __attribute((alias("xmlDumpElementDecl__internal_alias")));
+#define xmlDumpElementDecl xmlDumpElementDecl__internal_alias
+#endif
+
+#ifdef LIBXML_OUTPUT_ENABLED
+extern __typeof (xmlDumpElementTable) xmlDumpElementTable__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlDumpElementTable) xmlDumpElementTable __attribute((alias("xmlDumpElementTable__internal_alias")));
+#define xmlDumpElementTable xmlDumpElementTable__internal_alias
+#endif
+
+#ifdef LIBXML_OUTPUT_ENABLED
+extern __typeof (xmlDumpEntitiesTable) xmlDumpEntitiesTable__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlDumpEntitiesTable) xmlDumpEntitiesTable __attribute((alias("xmlDumpEntitiesTable__internal_alias")));
+#define xmlDumpEntitiesTable xmlDumpEntitiesTable__internal_alias
+#endif
+
+#ifdef LIBXML_OUTPUT_ENABLED
+extern __typeof (xmlDumpEntityDecl) xmlDumpEntityDecl__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlDumpEntityDecl) xmlDumpEntityDecl __attribute((alias("xmlDumpEntityDecl__internal_alias")));
+#define xmlDumpEntityDecl xmlDumpEntityDecl__internal_alias
+#endif
+
+#ifdef LIBXML_OUTPUT_ENABLED
+extern __typeof (xmlDumpNotationDecl) xmlDumpNotationDecl__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlDumpNotationDecl) xmlDumpNotationDecl __attribute((alias("xmlDumpNotationDecl__internal_alias")));
+#define xmlDumpNotationDecl xmlDumpNotationDecl__internal_alias
+#endif
+
+#ifdef LIBXML_OUTPUT_ENABLED
+extern __typeof (xmlDumpNotationTable) xmlDumpNotationTable__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlDumpNotationTable) xmlDumpNotationTable __attribute((alias("xmlDumpNotationTable__internal_alias")));
+#define xmlDumpNotationTable xmlDumpNotationTable__internal_alias
+#endif
+
+#ifdef LIBXML_OUTPUT_ENABLED
+extern __typeof (xmlElemDump) xmlElemDump__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlElemDump) xmlElemDump __attribute((alias("xmlElemDump__internal_alias")));
+#define xmlElemDump xmlElemDump__internal_alias
+#endif
+
+extern __typeof (xmlEncodeEntities) xmlEncodeEntities__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlEncodeEntities) xmlEncodeEntities __attribute((alias("xmlEncodeEntities__internal_alias")));
+#define xmlEncodeEntities xmlEncodeEntities__internal_alias
+
+extern __typeof (xmlEncodeEntitiesReentrant) xmlEncodeEntitiesReentrant__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlEncodeEntitiesReentrant) xmlEncodeEntitiesReentrant __attribute((alias("xmlEncodeEntitiesReentrant__internal_alias")));
+#define xmlEncodeEntitiesReentrant xmlEncodeEntitiesReentrant__internal_alias
+
+extern __typeof (xmlEncodeSpecialChars) xmlEncodeSpecialChars__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlEncodeSpecialChars) xmlEncodeSpecialChars __attribute((alias("xmlEncodeSpecialChars__internal_alias")));
+#define xmlEncodeSpecialChars xmlEncodeSpecialChars__internal_alias
+
+extern __typeof (xmlErrMemory) xmlErrMemory__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlErrMemory) xmlErrMemory __attribute((alias("xmlErrMemory__internal_alias")));
+#define xmlErrMemory xmlErrMemory__internal_alias
+
+extern __typeof (xmlFileClose) xmlFileClose__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlFileClose) xmlFileClose __attribute((alias("xmlFileClose__internal_alias")));
+#define xmlFileClose xmlFileClose__internal_alias
+
+extern __typeof (xmlFileMatch) xmlFileMatch__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlFileMatch) xmlFileMatch __attribute((alias("xmlFileMatch__internal_alias")));
+#define xmlFileMatch xmlFileMatch__internal_alias
+
+extern __typeof (xmlFileOpen) xmlFileOpen__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlFileOpen) xmlFileOpen __attribute((alias("xmlFileOpen__internal_alias")));
+#define xmlFileOpen xmlFileOpen__internal_alias
+
+extern __typeof (xmlFileRead) xmlFileRead__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlFileRead) xmlFileRead __attribute((alias("xmlFileRead__internal_alias")));
+#define xmlFileRead xmlFileRead__internal_alias
+
+extern __typeof (xmlFindCharEncodingHandler) xmlFindCharEncodingHandler__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlFindCharEncodingHandler) xmlFindCharEncodingHandler __attribute((alias("xmlFindCharEncodingHandler__internal_alias")));
+#define xmlFindCharEncodingHandler xmlFindCharEncodingHandler__internal_alias
+
+extern __typeof (xmlFreeAttributeTable) xmlFreeAttributeTable__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlFreeAttributeTable) xmlFreeAttributeTable __attribute((alias("xmlFreeAttributeTable__internal_alias")));
+#define xmlFreeAttributeTable xmlFreeAttributeTable__internal_alias
+
+#ifdef LIBXML_AUTOMATA_ENABLED
+extern __typeof (xmlFreeAutomata) xmlFreeAutomata__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlFreeAutomata) xmlFreeAutomata __attribute((alias("xmlFreeAutomata__internal_alias")));
+#define xmlFreeAutomata xmlFreeAutomata__internal_alias
+#endif
+
+#ifdef LIBXML_CATALOG_ENABLED
+extern __typeof (xmlFreeCatalog) xmlFreeCatalog__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlFreeCatalog) xmlFreeCatalog __attribute((alias("xmlFreeCatalog__internal_alias")));
+#define xmlFreeCatalog xmlFreeCatalog__internal_alias
+#endif
+
+extern __typeof (xmlFreeDoc) xmlFreeDoc__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlFreeDoc) xmlFreeDoc __attribute((alias("xmlFreeDoc__internal_alias")));
+#define xmlFreeDoc xmlFreeDoc__internal_alias
+
+extern __typeof (xmlFreeDtd) xmlFreeDtd__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlFreeDtd) xmlFreeDtd __attribute((alias("xmlFreeDtd__internal_alias")));
+#define xmlFreeDtd xmlFreeDtd__internal_alias
+
+extern __typeof (xmlFreeElementContent) xmlFreeElementContent__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlFreeElementContent) xmlFreeElementContent __attribute((alias("xmlFreeElementContent__internal_alias")));
+#define xmlFreeElementContent xmlFreeElementContent__internal_alias
+
+extern __typeof (xmlFreeElementTable) xmlFreeElementTable__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlFreeElementTable) xmlFreeElementTable __attribute((alias("xmlFreeElementTable__internal_alias")));
+#define xmlFreeElementTable xmlFreeElementTable__internal_alias
+
+extern __typeof (xmlFreeEntitiesTable) xmlFreeEntitiesTable__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlFreeEntitiesTable) xmlFreeEntitiesTable __attribute((alias("xmlFreeEntitiesTable__internal_alias")));
+#define xmlFreeEntitiesTable xmlFreeEntitiesTable__internal_alias
+
+extern __typeof (xmlFreeEnumeration) xmlFreeEnumeration__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlFreeEnumeration) xmlFreeEnumeration __attribute((alias("xmlFreeEnumeration__internal_alias")));
+#define xmlFreeEnumeration xmlFreeEnumeration__internal_alias
+
+extern __typeof (xmlFreeIDTable) xmlFreeIDTable__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlFreeIDTable) xmlFreeIDTable __attribute((alias("xmlFreeIDTable__internal_alias")));
+#define xmlFreeIDTable xmlFreeIDTable__internal_alias
+
+extern __typeof (xmlFreeInputStream) xmlFreeInputStream__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlFreeInputStream) xmlFreeInputStream __attribute((alias("xmlFreeInputStream__internal_alias")));
+#define xmlFreeInputStream xmlFreeInputStream__internal_alias
+
+extern __typeof (xmlFreeMutex) xmlFreeMutex__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlFreeMutex) xmlFreeMutex __attribute((alias("xmlFreeMutex__internal_alias")));
+#define xmlFreeMutex xmlFreeMutex__internal_alias
+
+extern __typeof (xmlFreeNode) xmlFreeNode__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlFreeNode) xmlFreeNode __attribute((alias("xmlFreeNode__internal_alias")));
+#define xmlFreeNode xmlFreeNode__internal_alias
+
+extern __typeof (xmlFreeNodeList) xmlFreeNodeList__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlFreeNodeList) xmlFreeNodeList __attribute((alias("xmlFreeNodeList__internal_alias")));
+#define xmlFreeNodeList xmlFreeNodeList__internal_alias
+
+extern __typeof (xmlFreeNotationTable) xmlFreeNotationTable__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlFreeNotationTable) xmlFreeNotationTable __attribute((alias("xmlFreeNotationTable__internal_alias")));
+#define xmlFreeNotationTable xmlFreeNotationTable__internal_alias
+
+extern __typeof (xmlFreeNs) xmlFreeNs__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlFreeNs) xmlFreeNs __attribute((alias("xmlFreeNs__internal_alias")));
+#define xmlFreeNs xmlFreeNs__internal_alias
+
+extern __typeof (xmlFreeNsList) xmlFreeNsList__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlFreeNsList) xmlFreeNsList __attribute((alias("xmlFreeNsList__internal_alias")));
+#define xmlFreeNsList xmlFreeNsList__internal_alias
+
+extern __typeof (xmlFreeParserCtxt) xmlFreeParserCtxt__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlFreeParserCtxt) xmlFreeParserCtxt __attribute((alias("xmlFreeParserCtxt__internal_alias")));
+#define xmlFreeParserCtxt xmlFreeParserCtxt__internal_alias
+
+extern __typeof (xmlFreeParserInputBuffer) xmlFreeParserInputBuffer__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlFreeParserInputBuffer) xmlFreeParserInputBuffer __attribute((alias("xmlFreeParserInputBuffer__internal_alias")));
+#define xmlFreeParserInputBuffer xmlFreeParserInputBuffer__internal_alias
+
+#ifdef LIBXML_PATTERN_ENABLED
+extern __typeof (xmlFreePattern) xmlFreePattern__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlFreePattern) xmlFreePattern __attribute((alias("xmlFreePattern__internal_alias")));
+#define xmlFreePattern xmlFreePattern__internal_alias
+#endif
+
+#ifdef LIBXML_PATTERN_ENABLED
+extern __typeof (xmlFreePatternList) xmlFreePatternList__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlFreePatternList) xmlFreePatternList __attribute((alias("xmlFreePatternList__internal_alias")));
+#define xmlFreePatternList xmlFreePatternList__internal_alias
+#endif
+
+extern __typeof (xmlFreeProp) xmlFreeProp__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlFreeProp) xmlFreeProp __attribute((alias("xmlFreeProp__internal_alias")));
+#define xmlFreeProp xmlFreeProp__internal_alias
+
+extern __typeof (xmlFreePropList) xmlFreePropList__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlFreePropList) xmlFreePropList __attribute((alias("xmlFreePropList__internal_alias")));
+#define xmlFreePropList xmlFreePropList__internal_alias
+
+extern __typeof (xmlFreeRMutex) xmlFreeRMutex__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlFreeRMutex) xmlFreeRMutex __attribute((alias("xmlFreeRMutex__internal_alias")));
+#define xmlFreeRMutex xmlFreeRMutex__internal_alias
+
+extern __typeof (xmlFreeRefTable) xmlFreeRefTable__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlFreeRefTable) xmlFreeRefTable __attribute((alias("xmlFreeRefTable__internal_alias")));
+#define xmlFreeRefTable xmlFreeRefTable__internal_alias
+
+#ifdef LIBXML_READER_ENABLED
+extern __typeof (xmlFreeTextReader) xmlFreeTextReader__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlFreeTextReader) xmlFreeTextReader __attribute((alias("xmlFreeTextReader__internal_alias")));
+#define xmlFreeTextReader xmlFreeTextReader__internal_alias
+#endif
+
+#ifdef LIBXML_WRITER_ENABLED
+extern __typeof (xmlFreeTextWriter) xmlFreeTextWriter__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlFreeTextWriter) xmlFreeTextWriter __attribute((alias("xmlFreeTextWriter__internal_alias")));
+#define xmlFreeTextWriter xmlFreeTextWriter__internal_alias
+#endif
+
+extern __typeof (xmlFreeURI) xmlFreeURI__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlFreeURI) xmlFreeURI __attribute((alias("xmlFreeURI__internal_alias")));
+#define xmlFreeURI xmlFreeURI__internal_alias
+
+extern __typeof (xmlFreeValidCtxt) xmlFreeValidCtxt__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlFreeValidCtxt) xmlFreeValidCtxt __attribute((alias("xmlFreeValidCtxt__internal_alias")));
+#define xmlFreeValidCtxt xmlFreeValidCtxt__internal_alias
+
+extern __typeof (xmlGcMemGet) xmlGcMemGet__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlGcMemGet) xmlGcMemGet __attribute((alias("xmlGcMemGet__internal_alias")));
+#define xmlGcMemGet xmlGcMemGet__internal_alias
+
+extern __typeof (xmlGcMemSetup) xmlGcMemSetup__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlGcMemSetup) xmlGcMemSetup __attribute((alias("xmlGcMemSetup__internal_alias")));
+#define xmlGcMemSetup xmlGcMemSetup__internal_alias
+
+extern __typeof (xmlGetBufferAllocationScheme) xmlGetBufferAllocationScheme__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlGetBufferAllocationScheme) xmlGetBufferAllocationScheme __attribute((alias("xmlGetBufferAllocationScheme__internal_alias")));
+#define xmlGetBufferAllocationScheme xmlGetBufferAllocationScheme__internal_alias
+
+extern __typeof (xmlGetCharEncodingHandler) xmlGetCharEncodingHandler__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlGetCharEncodingHandler) xmlGetCharEncodingHandler __attribute((alias("xmlGetCharEncodingHandler__internal_alias")));
+#define xmlGetCharEncodingHandler xmlGetCharEncodingHandler__internal_alias
+
+extern __typeof (xmlGetCharEncodingName) xmlGetCharEncodingName__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlGetCharEncodingName) xmlGetCharEncodingName __attribute((alias("xmlGetCharEncodingName__internal_alias")));
+#define xmlGetCharEncodingName xmlGetCharEncodingName__internal_alias
+
+extern __typeof (xmlGetCompressMode) xmlGetCompressMode__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlGetCompressMode) xmlGetCompressMode __attribute((alias("xmlGetCompressMode__internal_alias")));
+#define xmlGetCompressMode xmlGetCompressMode__internal_alias
+
+extern __typeof (xmlGetDocCompressMode) xmlGetDocCompressMode__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlGetDocCompressMode) xmlGetDocCompressMode __attribute((alias("xmlGetDocCompressMode__internal_alias")));
+#define xmlGetDocCompressMode xmlGetDocCompressMode__internal_alias
+
+extern __typeof (xmlGetDocEntity) xmlGetDocEntity__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlGetDocEntity) xmlGetDocEntity __attribute((alias("xmlGetDocEntity__internal_alias")));
+#define xmlGetDocEntity xmlGetDocEntity__internal_alias
+
+extern __typeof (xmlGetDtdAttrDesc) xmlGetDtdAttrDesc__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlGetDtdAttrDesc) xmlGetDtdAttrDesc __attribute((alias("xmlGetDtdAttrDesc__internal_alias")));
+#define xmlGetDtdAttrDesc xmlGetDtdAttrDesc__internal_alias
+
+extern __typeof (xmlGetDtdElementDesc) xmlGetDtdElementDesc__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlGetDtdElementDesc) xmlGetDtdElementDesc __attribute((alias("xmlGetDtdElementDesc__internal_alias")));
+#define xmlGetDtdElementDesc xmlGetDtdElementDesc__internal_alias
+
+extern __typeof (xmlGetDtdEntity) xmlGetDtdEntity__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlGetDtdEntity) xmlGetDtdEntity __attribute((alias("xmlGetDtdEntity__internal_alias")));
+#define xmlGetDtdEntity xmlGetDtdEntity__internal_alias
+
+extern __typeof (xmlGetDtdNotationDesc) xmlGetDtdNotationDesc__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlGetDtdNotationDesc) xmlGetDtdNotationDesc __attribute((alias("xmlGetDtdNotationDesc__internal_alias")));
+#define xmlGetDtdNotationDesc xmlGetDtdNotationDesc__internal_alias
+
+extern __typeof (xmlGetDtdQAttrDesc) xmlGetDtdQAttrDesc__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlGetDtdQAttrDesc) xmlGetDtdQAttrDesc __attribute((alias("xmlGetDtdQAttrDesc__internal_alias")));
+#define xmlGetDtdQAttrDesc xmlGetDtdQAttrDesc__internal_alias
+
+extern __typeof (xmlGetDtdQElementDesc) xmlGetDtdQElementDesc__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlGetDtdQElementDesc) xmlGetDtdQElementDesc __attribute((alias("xmlGetDtdQElementDesc__internal_alias")));
+#define xmlGetDtdQElementDesc xmlGetDtdQElementDesc__internal_alias
+
+extern __typeof (xmlGetEncodingAlias) xmlGetEncodingAlias__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlGetEncodingAlias) xmlGetEncodingAlias __attribute((alias("xmlGetEncodingAlias__internal_alias")));
+#define xmlGetEncodingAlias xmlGetEncodingAlias__internal_alias
+
+extern __typeof (xmlGetExternalEntityLoader) xmlGetExternalEntityLoader__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlGetExternalEntityLoader) xmlGetExternalEntityLoader __attribute((alias("xmlGetExternalEntityLoader__internal_alias")));
+#define xmlGetExternalEntityLoader xmlGetExternalEntityLoader__internal_alias
+
+extern __typeof (xmlGetFeature) xmlGetFeature__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlGetFeature) xmlGetFeature __attribute((alias("xmlGetFeature__internal_alias")));
+#define xmlGetFeature xmlGetFeature__internal_alias
+
+extern __typeof (xmlGetFeaturesList) xmlGetFeaturesList__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlGetFeaturesList) xmlGetFeaturesList __attribute((alias("xmlGetFeaturesList__internal_alias")));
+#define xmlGetFeaturesList xmlGetFeaturesList__internal_alias
+
+extern __typeof (xmlGetGlobalState) xmlGetGlobalState__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlGetGlobalState) xmlGetGlobalState __attribute((alias("xmlGetGlobalState__internal_alias")));
+#define xmlGetGlobalState xmlGetGlobalState__internal_alias
+
+extern __typeof (xmlGetID) xmlGetID__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlGetID) xmlGetID __attribute((alias("xmlGetID__internal_alias")));
+#define xmlGetID xmlGetID__internal_alias
+
+extern __typeof (xmlGetIntSubset) xmlGetIntSubset__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlGetIntSubset) xmlGetIntSubset __attribute((alias("xmlGetIntSubset__internal_alias")));
+#define xmlGetIntSubset xmlGetIntSubset__internal_alias
+
+extern __typeof (xmlGetLastChild) xmlGetLastChild__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlGetLastChild) xmlGetLastChild __attribute((alias("xmlGetLastChild__internal_alias")));
+#define xmlGetLastChild xmlGetLastChild__internal_alias
+
+extern __typeof (xmlGetLastError) xmlGetLastError__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlGetLastError) xmlGetLastError __attribute((alias("xmlGetLastError__internal_alias")));
+#define xmlGetLastError xmlGetLastError__internal_alias
+
+extern __typeof (xmlGetLineNo) xmlGetLineNo__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlGetLineNo) xmlGetLineNo __attribute((alias("xmlGetLineNo__internal_alias")));
+#define xmlGetLineNo xmlGetLineNo__internal_alias
+
+extern __typeof (xmlGetNoNsProp) xmlGetNoNsProp__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlGetNoNsProp) xmlGetNoNsProp __attribute((alias("xmlGetNoNsProp__internal_alias")));
+#define xmlGetNoNsProp xmlGetNoNsProp__internal_alias
+
+#ifdef LIBXML_TREE_ENABLED
+extern __typeof (xmlGetNodePath) xmlGetNodePath__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlGetNodePath) xmlGetNodePath __attribute((alias("xmlGetNodePath__internal_alias")));
+#define xmlGetNodePath xmlGetNodePath__internal_alias
+#endif
+
+#ifdef LIBXML_TREE_ENABLED
+extern __typeof (xmlGetNsList) xmlGetNsList__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlGetNsList) xmlGetNsList __attribute((alias("xmlGetNsList__internal_alias")));
+#define xmlGetNsList xmlGetNsList__internal_alias
+#endif
+
+extern __typeof (xmlGetNsProp) xmlGetNsProp__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlGetNsProp) xmlGetNsProp __attribute((alias("xmlGetNsProp__internal_alias")));
+#define xmlGetNsProp xmlGetNsProp__internal_alias
+
+extern __typeof (xmlGetParameterEntity) xmlGetParameterEntity__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlGetParameterEntity) xmlGetParameterEntity __attribute((alias("xmlGetParameterEntity__internal_alias")));
+#define xmlGetParameterEntity xmlGetParameterEntity__internal_alias
+
+extern __typeof (xmlGetPredefinedEntity) xmlGetPredefinedEntity__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlGetPredefinedEntity) xmlGetPredefinedEntity __attribute((alias("xmlGetPredefinedEntity__internal_alias")));
+#define xmlGetPredefinedEntity xmlGetPredefinedEntity__internal_alias
+
+extern __typeof (xmlGetProp) xmlGetProp__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlGetProp) xmlGetProp __attribute((alias("xmlGetProp__internal_alias")));
+#define xmlGetProp xmlGetProp__internal_alias
+
+extern __typeof (xmlGetRefs) xmlGetRefs__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlGetRefs) xmlGetRefs __attribute((alias("xmlGetRefs__internal_alias")));
+#define xmlGetRefs xmlGetRefs__internal_alias
+
+extern __typeof (xmlGetThreadId) xmlGetThreadId__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlGetThreadId) xmlGetThreadId __attribute((alias("xmlGetThreadId__internal_alias")));
+#define xmlGetThreadId xmlGetThreadId__internal_alias
+
+extern __typeof (xmlGetUTF8Char) xmlGetUTF8Char__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlGetUTF8Char) xmlGetUTF8Char __attribute((alias("xmlGetUTF8Char__internal_alias")));
+#define xmlGetUTF8Char xmlGetUTF8Char__internal_alias
+
+extern __typeof (xmlHandleEntity) xmlHandleEntity__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlHandleEntity) xmlHandleEntity __attribute((alias("xmlHandleEntity__internal_alias")));
+#define xmlHandleEntity xmlHandleEntity__internal_alias
+
+extern __typeof (xmlHasNsProp) xmlHasNsProp__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlHasNsProp) xmlHasNsProp __attribute((alias("xmlHasNsProp__internal_alias")));
+#define xmlHasNsProp xmlHasNsProp__internal_alias
+
+extern __typeof (xmlHasProp) xmlHasProp__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlHasProp) xmlHasProp __attribute((alias("xmlHasProp__internal_alias")));
+#define xmlHasProp xmlHasProp__internal_alias
+
+extern __typeof (xmlHashAddEntry) xmlHashAddEntry__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlHashAddEntry) xmlHashAddEntry __attribute((alias("xmlHashAddEntry__internal_alias")));
+#define xmlHashAddEntry xmlHashAddEntry__internal_alias
+
+extern __typeof (xmlHashAddEntry2) xmlHashAddEntry2__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlHashAddEntry2) xmlHashAddEntry2 __attribute((alias("xmlHashAddEntry2__internal_alias")));
+#define xmlHashAddEntry2 xmlHashAddEntry2__internal_alias
+
+extern __typeof (xmlHashAddEntry3) xmlHashAddEntry3__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlHashAddEntry3) xmlHashAddEntry3 __attribute((alias("xmlHashAddEntry3__internal_alias")));
+#define xmlHashAddEntry3 xmlHashAddEntry3__internal_alias
+
+extern __typeof (xmlHashCopy) xmlHashCopy__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlHashCopy) xmlHashCopy __attribute((alias("xmlHashCopy__internal_alias")));
+#define xmlHashCopy xmlHashCopy__internal_alias
+
+extern __typeof (xmlHashCreate) xmlHashCreate__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlHashCreate) xmlHashCreate __attribute((alias("xmlHashCreate__internal_alias")));
+#define xmlHashCreate xmlHashCreate__internal_alias
+
+extern __typeof (xmlHashFree) xmlHashFree__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlHashFree) xmlHashFree __attribute((alias("xmlHashFree__internal_alias")));
+#define xmlHashFree xmlHashFree__internal_alias
+
+extern __typeof (xmlHashLookup) xmlHashLookup__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlHashLookup) xmlHashLookup __attribute((alias("xmlHashLookup__internal_alias")));
+#define xmlHashLookup xmlHashLookup__internal_alias
+
+extern __typeof (xmlHashLookup2) xmlHashLookup2__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlHashLookup2) xmlHashLookup2 __attribute((alias("xmlHashLookup2__internal_alias")));
+#define xmlHashLookup2 xmlHashLookup2__internal_alias
+
+extern __typeof (xmlHashLookup3) xmlHashLookup3__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlHashLookup3) xmlHashLookup3 __attribute((alias("xmlHashLookup3__internal_alias")));
+#define xmlHashLookup3 xmlHashLookup3__internal_alias
+
+extern __typeof (xmlHashQLookup) xmlHashQLookup__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlHashQLookup) xmlHashQLookup __attribute((alias("xmlHashQLookup__internal_alias")));
+#define xmlHashQLookup xmlHashQLookup__internal_alias
+
+extern __typeof (xmlHashQLookup2) xmlHashQLookup2__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlHashQLookup2) xmlHashQLookup2 __attribute((alias("xmlHashQLookup2__internal_alias")));
+#define xmlHashQLookup2 xmlHashQLookup2__internal_alias
+
+extern __typeof (xmlHashQLookup3) xmlHashQLookup3__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlHashQLookup3) xmlHashQLookup3 __attribute((alias("xmlHashQLookup3__internal_alias")));
+#define xmlHashQLookup3 xmlHashQLookup3__internal_alias
+
+extern __typeof (xmlHashRemoveEntry) xmlHashRemoveEntry__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlHashRemoveEntry) xmlHashRemoveEntry __attribute((alias("xmlHashRemoveEntry__internal_alias")));
+#define xmlHashRemoveEntry xmlHashRemoveEntry__internal_alias
+
+extern __typeof (xmlHashRemoveEntry2) xmlHashRemoveEntry2__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlHashRemoveEntry2) xmlHashRemoveEntry2 __attribute((alias("xmlHashRemoveEntry2__internal_alias")));
+#define xmlHashRemoveEntry2 xmlHashRemoveEntry2__internal_alias
+
+extern __typeof (xmlHashRemoveEntry3) xmlHashRemoveEntry3__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlHashRemoveEntry3) xmlHashRemoveEntry3 __attribute((alias("xmlHashRemoveEntry3__internal_alias")));
+#define xmlHashRemoveEntry3 xmlHashRemoveEntry3__internal_alias
+
+extern __typeof (xmlHashScan) xmlHashScan__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlHashScan) xmlHashScan __attribute((alias("xmlHashScan__internal_alias")));
+#define xmlHashScan xmlHashScan__internal_alias
+
+extern __typeof (xmlHashScan3) xmlHashScan3__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlHashScan3) xmlHashScan3 __attribute((alias("xmlHashScan3__internal_alias")));
+#define xmlHashScan3 xmlHashScan3__internal_alias
+
+extern __typeof (xmlHashScanFull) xmlHashScanFull__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlHashScanFull) xmlHashScanFull __attribute((alias("xmlHashScanFull__internal_alias")));
+#define xmlHashScanFull xmlHashScanFull__internal_alias
+
+extern __typeof (xmlHashScanFull3) xmlHashScanFull3__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlHashScanFull3) xmlHashScanFull3 __attribute((alias("xmlHashScanFull3__internal_alias")));
+#define xmlHashScanFull3 xmlHashScanFull3__internal_alias
+
+extern __typeof (xmlHashSize) xmlHashSize__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlHashSize) xmlHashSize __attribute((alias("xmlHashSize__internal_alias")));
+#define xmlHashSize xmlHashSize__internal_alias
+
+extern __typeof (xmlHashUpdateEntry) xmlHashUpdateEntry__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlHashUpdateEntry) xmlHashUpdateEntry __attribute((alias("xmlHashUpdateEntry__internal_alias")));
+#define xmlHashUpdateEntry xmlHashUpdateEntry__internal_alias
+
+extern __typeof (xmlHashUpdateEntry2) xmlHashUpdateEntry2__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlHashUpdateEntry2) xmlHashUpdateEntry2 __attribute((alias("xmlHashUpdateEntry2__internal_alias")));
+#define xmlHashUpdateEntry2 xmlHashUpdateEntry2__internal_alias
+
+extern __typeof (xmlHashUpdateEntry3) xmlHashUpdateEntry3__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlHashUpdateEntry3) xmlHashUpdateEntry3 __attribute((alias("xmlHashUpdateEntry3__internal_alias")));
+#define xmlHashUpdateEntry3 xmlHashUpdateEntry3__internal_alias
+
+#ifdef LIBXML_FTP_ENABLED
+extern __typeof (xmlIOFTPClose) xmlIOFTPClose__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlIOFTPClose) xmlIOFTPClose __attribute((alias("xmlIOFTPClose__internal_alias")));
+#define xmlIOFTPClose xmlIOFTPClose__internal_alias
+#endif
+
+#ifdef LIBXML_FTP_ENABLED
+extern __typeof (xmlIOFTPMatch) xmlIOFTPMatch__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlIOFTPMatch) xmlIOFTPMatch __attribute((alias("xmlIOFTPMatch__internal_alias")));
+#define xmlIOFTPMatch xmlIOFTPMatch__internal_alias
+#endif
+
+#ifdef LIBXML_FTP_ENABLED
+extern __typeof (xmlIOFTPOpen) xmlIOFTPOpen__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlIOFTPOpen) xmlIOFTPOpen __attribute((alias("xmlIOFTPOpen__internal_alias")));
+#define xmlIOFTPOpen xmlIOFTPOpen__internal_alias
+#endif
+
+#ifdef LIBXML_FTP_ENABLED
+extern __typeof (xmlIOFTPRead) xmlIOFTPRead__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlIOFTPRead) xmlIOFTPRead __attribute((alias("xmlIOFTPRead__internal_alias")));
+#define xmlIOFTPRead xmlIOFTPRead__internal_alias
+#endif
+
+#ifdef LIBXML_HTTP_ENABLED
+extern __typeof (xmlIOHTTPClose) xmlIOHTTPClose__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlIOHTTPClose) xmlIOHTTPClose __attribute((alias("xmlIOHTTPClose__internal_alias")));
+#define xmlIOHTTPClose xmlIOHTTPClose__internal_alias
+#endif
+
+#ifdef LIBXML_HTTP_ENABLED
+extern __typeof (xmlIOHTTPMatch) xmlIOHTTPMatch__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlIOHTTPMatch) xmlIOHTTPMatch __attribute((alias("xmlIOHTTPMatch__internal_alias")));
+#define xmlIOHTTPMatch xmlIOHTTPMatch__internal_alias
+#endif
+
+#ifdef LIBXML_HTTP_ENABLED
+extern __typeof (xmlIOHTTPOpen) xmlIOHTTPOpen__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlIOHTTPOpen) xmlIOHTTPOpen __attribute((alias("xmlIOHTTPOpen__internal_alias")));
+#define xmlIOHTTPOpen xmlIOHTTPOpen__internal_alias
+#endif
+
+#ifdef LIBXML_HTTP_ENABLED
+extern __typeof (xmlIOHTTPOpenW) xmlIOHTTPOpenW__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlIOHTTPOpenW) xmlIOHTTPOpenW __attribute((alias("xmlIOHTTPOpenW__internal_alias")));
+#define xmlIOHTTPOpenW xmlIOHTTPOpenW__internal_alias
+#endif
+
+#ifdef LIBXML_HTTP_ENABLED
+extern __typeof (xmlIOHTTPRead) xmlIOHTTPRead__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlIOHTTPRead) xmlIOHTTPRead __attribute((alias("xmlIOHTTPRead__internal_alias")));
+#define xmlIOHTTPRead xmlIOHTTPRead__internal_alias
+#endif
+
+extern __typeof (xmlIOParseDTD) xmlIOParseDTD__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlIOParseDTD) xmlIOParseDTD __attribute((alias("xmlIOParseDTD__internal_alias")));
+#define xmlIOParseDTD xmlIOParseDTD__internal_alias
+
+extern __typeof (xmlInitCharEncodingHandlers) xmlInitCharEncodingHandlers__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlInitCharEncodingHandlers) xmlInitCharEncodingHandlers __attribute((alias("xmlInitCharEncodingHandlers__internal_alias")));
+#define xmlInitCharEncodingHandlers xmlInitCharEncodingHandlers__internal_alias
+
+extern __typeof (xmlInitGlobals) xmlInitGlobals__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlInitGlobals) xmlInitGlobals __attribute((alias("xmlInitGlobals__internal_alias")));
+#define xmlInitGlobals xmlInitGlobals__internal_alias
+
+extern __typeof (xmlInitMemory) xmlInitMemory__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlInitMemory) xmlInitMemory __attribute((alias("xmlInitMemory__internal_alias")));
+#define xmlInitMemory xmlInitMemory__internal_alias
+
+extern __typeof (xmlInitNodeInfoSeq) xmlInitNodeInfoSeq__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlInitNodeInfoSeq) xmlInitNodeInfoSeq __attribute((alias("xmlInitNodeInfoSeq__internal_alias")));
+#define xmlInitNodeInfoSeq xmlInitNodeInfoSeq__internal_alias
+
+extern __typeof (xmlInitParser) xmlInitParser__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlInitParser) xmlInitParser __attribute((alias("xmlInitParser__internal_alias")));
+#define xmlInitParser xmlInitParser__internal_alias
+
+extern __typeof (xmlInitParserCtxt) xmlInitParserCtxt__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlInitParserCtxt) xmlInitParserCtxt __attribute((alias("xmlInitParserCtxt__internal_alias")));
+#define xmlInitParserCtxt xmlInitParserCtxt__internal_alias
+
+extern __typeof (xmlInitThreads) xmlInitThreads__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlInitThreads) xmlInitThreads __attribute((alias("xmlInitThreads__internal_alias")));
+#define xmlInitThreads xmlInitThreads__internal_alias
+
+#ifdef LIBXML_CATALOG_ENABLED
+extern __typeof (xmlInitializeCatalog) xmlInitializeCatalog__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlInitializeCatalog) xmlInitializeCatalog __attribute((alias("xmlInitializeCatalog__internal_alias")));
+#define xmlInitializeCatalog xmlInitializeCatalog__internal_alias
+#endif
+
+extern __typeof (xmlInitializeGlobalState) xmlInitializeGlobalState__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlInitializeGlobalState) xmlInitializeGlobalState __attribute((alias("xmlInitializeGlobalState__internal_alias")));
+#define xmlInitializeGlobalState xmlInitializeGlobalState__internal_alias
+
+extern __typeof (xmlInitializePredefinedEntities) xmlInitializePredefinedEntities__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlInitializePredefinedEntities) xmlInitializePredefinedEntities __attribute((alias("xmlInitializePredefinedEntities__internal_alias")));
+#define xmlInitializePredefinedEntities xmlInitializePredefinedEntities__internal_alias
+
+extern __typeof (xmlIsBaseChar) xmlIsBaseChar__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlIsBaseChar) xmlIsBaseChar __attribute((alias("xmlIsBaseChar__internal_alias")));
+#define xmlIsBaseChar xmlIsBaseChar__internal_alias
+
+extern __typeof (xmlIsBlank) xmlIsBlank__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlIsBlank) xmlIsBlank __attribute((alias("xmlIsBlank__internal_alias")));
+#define xmlIsBlank xmlIsBlank__internal_alias
+
+extern __typeof (xmlIsBlankNode) xmlIsBlankNode__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlIsBlankNode) xmlIsBlankNode __attribute((alias("xmlIsBlankNode__internal_alias")));
+#define xmlIsBlankNode xmlIsBlankNode__internal_alias
+
+extern __typeof (xmlIsChar) xmlIsChar__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlIsChar) xmlIsChar __attribute((alias("xmlIsChar__internal_alias")));
+#define xmlIsChar xmlIsChar__internal_alias
+
+extern __typeof (xmlIsCombining) xmlIsCombining__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlIsCombining) xmlIsCombining __attribute((alias("xmlIsCombining__internal_alias")));
+#define xmlIsCombining xmlIsCombining__internal_alias
+
+extern __typeof (xmlIsDigit) xmlIsDigit__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlIsDigit) xmlIsDigit __attribute((alias("xmlIsDigit__internal_alias")));
+#define xmlIsDigit xmlIsDigit__internal_alias
+
+extern __typeof (xmlIsExtender) xmlIsExtender__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlIsExtender) xmlIsExtender __attribute((alias("xmlIsExtender__internal_alias")));
+#define xmlIsExtender xmlIsExtender__internal_alias
+
+extern __typeof (xmlIsID) xmlIsID__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlIsID) xmlIsID __attribute((alias("xmlIsID__internal_alias")));
+#define xmlIsID xmlIsID__internal_alias
+
+extern __typeof (xmlIsIdeographic) xmlIsIdeographic__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlIsIdeographic) xmlIsIdeographic __attribute((alias("xmlIsIdeographic__internal_alias")));
+#define xmlIsIdeographic xmlIsIdeographic__internal_alias
+
+extern __typeof (xmlIsLetter) xmlIsLetter__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlIsLetter) xmlIsLetter __attribute((alias("xmlIsLetter__internal_alias")));
+#define xmlIsLetter xmlIsLetter__internal_alias
+
+extern __typeof (xmlIsMainThread) xmlIsMainThread__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlIsMainThread) xmlIsMainThread __attribute((alias("xmlIsMainThread__internal_alias")));
+#define xmlIsMainThread xmlIsMainThread__internal_alias
+
+extern __typeof (xmlIsMixedElement) xmlIsMixedElement__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlIsMixedElement) xmlIsMixedElement __attribute((alias("xmlIsMixedElement__internal_alias")));
+#define xmlIsMixedElement xmlIsMixedElement__internal_alias
+
+extern __typeof (xmlIsPubidChar) xmlIsPubidChar__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlIsPubidChar) xmlIsPubidChar __attribute((alias("xmlIsPubidChar__internal_alias")));
+#define xmlIsPubidChar xmlIsPubidChar__internal_alias
+
+extern __typeof (xmlIsRef) xmlIsRef__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlIsRef) xmlIsRef __attribute((alias("xmlIsRef__internal_alias")));
+#define xmlIsRef xmlIsRef__internal_alias
+
+extern __typeof (xmlIsXHTML) xmlIsXHTML__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlIsXHTML) xmlIsXHTML __attribute((alias("xmlIsXHTML__internal_alias")));
+#define xmlIsXHTML xmlIsXHTML__internal_alias
+
+extern __typeof (xmlKeepBlanksDefault) xmlKeepBlanksDefault__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlKeepBlanksDefault) xmlKeepBlanksDefault __attribute((alias("xmlKeepBlanksDefault__internal_alias")));
+#define xmlKeepBlanksDefault xmlKeepBlanksDefault__internal_alias
+
+extern __typeof (xmlLineNumbersDefault) xmlLineNumbersDefault__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlLineNumbersDefault) xmlLineNumbersDefault __attribute((alias("xmlLineNumbersDefault__internal_alias")));
+#define xmlLineNumbersDefault xmlLineNumbersDefault__internal_alias
+
+extern __typeof (xmlLinkGetData) xmlLinkGetData__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlLinkGetData) xmlLinkGetData __attribute((alias("xmlLinkGetData__internal_alias")));
+#define xmlLinkGetData xmlLinkGetData__internal_alias
+
+extern __typeof (xmlListAppend) xmlListAppend__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlListAppend) xmlListAppend __attribute((alias("xmlListAppend__internal_alias")));
+#define xmlListAppend xmlListAppend__internal_alias
+
+extern __typeof (xmlListClear) xmlListClear__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlListClear) xmlListClear __attribute((alias("xmlListClear__internal_alias")));
+#define xmlListClear xmlListClear__internal_alias
+
+extern __typeof (xmlListCopy) xmlListCopy__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlListCopy) xmlListCopy __attribute((alias("xmlListCopy__internal_alias")));
+#define xmlListCopy xmlListCopy__internal_alias
+
+extern __typeof (xmlListCreate) xmlListCreate__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlListCreate) xmlListCreate __attribute((alias("xmlListCreate__internal_alias")));
+#define xmlListCreate xmlListCreate__internal_alias
+
+extern __typeof (xmlListDelete) xmlListDelete__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlListDelete) xmlListDelete __attribute((alias("xmlListDelete__internal_alias")));
+#define xmlListDelete xmlListDelete__internal_alias
+
+extern __typeof (xmlListDup) xmlListDup__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlListDup) xmlListDup __attribute((alias("xmlListDup__internal_alias")));
+#define xmlListDup xmlListDup__internal_alias
+
+extern __typeof (xmlListEmpty) xmlListEmpty__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlListEmpty) xmlListEmpty __attribute((alias("xmlListEmpty__internal_alias")));
+#define xmlListEmpty xmlListEmpty__internal_alias
+
+extern __typeof (xmlListEnd) xmlListEnd__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlListEnd) xmlListEnd __attribute((alias("xmlListEnd__internal_alias")));
+#define xmlListEnd xmlListEnd__internal_alias
+
+extern __typeof (xmlListFront) xmlListFront__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlListFront) xmlListFront __attribute((alias("xmlListFront__internal_alias")));
+#define xmlListFront xmlListFront__internal_alias
+
+extern __typeof (xmlListInsert) xmlListInsert__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlListInsert) xmlListInsert __attribute((alias("xmlListInsert__internal_alias")));
+#define xmlListInsert xmlListInsert__internal_alias
+
+extern __typeof (xmlListMerge) xmlListMerge__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlListMerge) xmlListMerge __attribute((alias("xmlListMerge__internal_alias")));
+#define xmlListMerge xmlListMerge__internal_alias
+
+extern __typeof (xmlListPopBack) xmlListPopBack__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlListPopBack) xmlListPopBack __attribute((alias("xmlListPopBack__internal_alias")));
+#define xmlListPopBack xmlListPopBack__internal_alias
+
+extern __typeof (xmlListPopFront) xmlListPopFront__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlListPopFront) xmlListPopFront __attribute((alias("xmlListPopFront__internal_alias")));
+#define xmlListPopFront xmlListPopFront__internal_alias
+
+extern __typeof (xmlListPushBack) xmlListPushBack__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlListPushBack) xmlListPushBack __attribute((alias("xmlListPushBack__internal_alias")));
+#define xmlListPushBack xmlListPushBack__internal_alias
+
+extern __typeof (xmlListPushFront) xmlListPushFront__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlListPushFront) xmlListPushFront __attribute((alias("xmlListPushFront__internal_alias")));
+#define xmlListPushFront xmlListPushFront__internal_alias
+
+extern __typeof (xmlListRemoveAll) xmlListRemoveAll__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlListRemoveAll) xmlListRemoveAll __attribute((alias("xmlListRemoveAll__internal_alias")));
+#define xmlListRemoveAll xmlListRemoveAll__internal_alias
+
+extern __typeof (xmlListRemoveFirst) xmlListRemoveFirst__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlListRemoveFirst) xmlListRemoveFirst __attribute((alias("xmlListRemoveFirst__internal_alias")));
+#define xmlListRemoveFirst xmlListRemoveFirst__internal_alias
+
+extern __typeof (xmlListRemoveLast) xmlListRemoveLast__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlListRemoveLast) xmlListRemoveLast __attribute((alias("xmlListRemoveLast__internal_alias")));
+#define xmlListRemoveLast xmlListRemoveLast__internal_alias
+
+extern __typeof (xmlListReverse) xmlListReverse__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlListReverse) xmlListReverse __attribute((alias("xmlListReverse__internal_alias")));
+#define xmlListReverse xmlListReverse__internal_alias
+
+extern __typeof (xmlListReverseSearch) xmlListReverseSearch__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlListReverseSearch) xmlListReverseSearch __attribute((alias("xmlListReverseSearch__internal_alias")));
+#define xmlListReverseSearch xmlListReverseSearch__internal_alias
+
+extern __typeof (xmlListReverseWalk) xmlListReverseWalk__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlListReverseWalk) xmlListReverseWalk __attribute((alias("xmlListReverseWalk__internal_alias")));
+#define xmlListReverseWalk xmlListReverseWalk__internal_alias
+
+extern __typeof (xmlListSearch) xmlListSearch__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlListSearch) xmlListSearch __attribute((alias("xmlListSearch__internal_alias")));
+#define xmlListSearch xmlListSearch__internal_alias
+
+extern __typeof (xmlListSize) xmlListSize__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlListSize) xmlListSize __attribute((alias("xmlListSize__internal_alias")));
+#define xmlListSize xmlListSize__internal_alias
+
+extern __typeof (xmlListSort) xmlListSort__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlListSort) xmlListSort __attribute((alias("xmlListSort__internal_alias")));
+#define xmlListSort xmlListSort__internal_alias
+
+extern __typeof (xmlListWalk) xmlListWalk__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlListWalk) xmlListWalk __attribute((alias("xmlListWalk__internal_alias")));
+#define xmlListWalk xmlListWalk__internal_alias
+
+#ifdef LIBXML_CATALOG_ENABLED
+extern __typeof (xmlLoadACatalog) xmlLoadACatalog__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlLoadACatalog) xmlLoadACatalog __attribute((alias("xmlLoadACatalog__internal_alias")));
+#define xmlLoadACatalog xmlLoadACatalog__internal_alias
+#endif
+
+#ifdef LIBXML_CATALOG_ENABLED
+extern __typeof (xmlLoadCatalog) xmlLoadCatalog__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlLoadCatalog) xmlLoadCatalog __attribute((alias("xmlLoadCatalog__internal_alias")));
+#define xmlLoadCatalog xmlLoadCatalog__internal_alias
+#endif
+
+#ifdef LIBXML_CATALOG_ENABLED
+extern __typeof (xmlLoadCatalogs) xmlLoadCatalogs__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlLoadCatalogs) xmlLoadCatalogs __attribute((alias("xmlLoadCatalogs__internal_alias")));
+#define xmlLoadCatalogs xmlLoadCatalogs__internal_alias
+#endif
+
+extern __typeof (xmlLoadExternalEntity) xmlLoadExternalEntity__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlLoadExternalEntity) xmlLoadExternalEntity __attribute((alias("xmlLoadExternalEntity__internal_alias")));
+#define xmlLoadExternalEntity xmlLoadExternalEntity__internal_alias
+
+#ifdef LIBXML_CATALOG_ENABLED
+extern __typeof (xmlLoadSGMLSuperCatalog) xmlLoadSGMLSuperCatalog__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlLoadSGMLSuperCatalog) xmlLoadSGMLSuperCatalog __attribute((alias("xmlLoadSGMLSuperCatalog__internal_alias")));
+#define xmlLoadSGMLSuperCatalog xmlLoadSGMLSuperCatalog__internal_alias
+#endif
+
+extern __typeof (xmlLockLibrary) xmlLockLibrary__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlLockLibrary) xmlLockLibrary __attribute((alias("xmlLockLibrary__internal_alias")));
+#define xmlLockLibrary xmlLockLibrary__internal_alias
+
+#ifdef LIBXML_DEBUG_ENABLED
+extern __typeof (xmlLsCountNode) xmlLsCountNode__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlLsCountNode) xmlLsCountNode __attribute((alias("xmlLsCountNode__internal_alias")));
+#define xmlLsCountNode xmlLsCountNode__internal_alias
+#endif
+
+#ifdef LIBXML_DEBUG_ENABLED
+extern __typeof (xmlLsOneNode) xmlLsOneNode__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlLsOneNode) xmlLsOneNode __attribute((alias("xmlLsOneNode__internal_alias")));
+#define xmlLsOneNode xmlLsOneNode__internal_alias
+#endif
+
+extern __typeof (xmlMallocAtomicLoc) xmlMallocAtomicLoc__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlMallocAtomicLoc) xmlMallocAtomicLoc __attribute((alias("xmlMallocAtomicLoc__internal_alias")));
+#define xmlMallocAtomicLoc xmlMallocAtomicLoc__internal_alias
+
+extern __typeof (xmlMallocLoc) xmlMallocLoc__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlMallocLoc) xmlMallocLoc __attribute((alias("xmlMallocLoc__internal_alias")));
+#define xmlMallocLoc xmlMallocLoc__internal_alias
+
+extern __typeof (xmlMemDisplay) xmlMemDisplay__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlMemDisplay) xmlMemDisplay __attribute((alias("xmlMemDisplay__internal_alias")));
+#define xmlMemDisplay xmlMemDisplay__internal_alias
+
+extern __typeof (xmlMemFree) xmlMemFree__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlMemFree) xmlMemFree __attribute((alias("xmlMemFree__internal_alias")));
+#define xmlMemFree xmlMemFree__internal_alias
+
+extern __typeof (xmlMemGet) xmlMemGet__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlMemGet) xmlMemGet __attribute((alias("xmlMemGet__internal_alias")));
+#define xmlMemGet xmlMemGet__internal_alias
+
+extern __typeof (xmlMemMalloc) xmlMemMalloc__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlMemMalloc) xmlMemMalloc __attribute((alias("xmlMemMalloc__internal_alias")));
+#define xmlMemMalloc xmlMemMalloc__internal_alias
+
+extern __typeof (xmlMemRealloc) xmlMemRealloc__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlMemRealloc) xmlMemRealloc __attribute((alias("xmlMemRealloc__internal_alias")));
+#define xmlMemRealloc xmlMemRealloc__internal_alias
+
+extern __typeof (xmlMemSetup) xmlMemSetup__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlMemSetup) xmlMemSetup __attribute((alias("xmlMemSetup__internal_alias")));
+#define xmlMemSetup xmlMemSetup__internal_alias
+
+extern __typeof (xmlMemShow) xmlMemShow__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlMemShow) xmlMemShow __attribute((alias("xmlMemShow__internal_alias")));
+#define xmlMemShow xmlMemShow__internal_alias
+
+extern __typeof (xmlMemStrdupLoc) xmlMemStrdupLoc__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlMemStrdupLoc) xmlMemStrdupLoc __attribute((alias("xmlMemStrdupLoc__internal_alias")));
+#define xmlMemStrdupLoc xmlMemStrdupLoc__internal_alias
+
+extern __typeof (xmlMemUsed) xmlMemUsed__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlMemUsed) xmlMemUsed __attribute((alias("xmlMemUsed__internal_alias")));
+#define xmlMemUsed xmlMemUsed__internal_alias
+
+extern __typeof (xmlMemoryDump) xmlMemoryDump__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlMemoryDump) xmlMemoryDump __attribute((alias("xmlMemoryDump__internal_alias")));
+#define xmlMemoryDump xmlMemoryDump__internal_alias
+
+extern __typeof (xmlMemoryStrdup) xmlMemoryStrdup__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlMemoryStrdup) xmlMemoryStrdup __attribute((alias("xmlMemoryStrdup__internal_alias")));
+#define xmlMemoryStrdup xmlMemoryStrdup__internal_alias
+
+extern __typeof (xmlMutexLock) xmlMutexLock__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlMutexLock) xmlMutexLock __attribute((alias("xmlMutexLock__internal_alias")));
+#define xmlMutexLock xmlMutexLock__internal_alias
+
+extern __typeof (xmlMutexUnlock) xmlMutexUnlock__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlMutexUnlock) xmlMutexUnlock __attribute((alias("xmlMutexUnlock__internal_alias")));
+#define xmlMutexUnlock xmlMutexUnlock__internal_alias
+
+extern __typeof (xmlNamespaceParseNCName) xmlNamespaceParseNCName__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlNamespaceParseNCName) xmlNamespaceParseNCName __attribute((alias("xmlNamespaceParseNCName__internal_alias")));
+#define xmlNamespaceParseNCName xmlNamespaceParseNCName__internal_alias
+
+extern __typeof (xmlNamespaceParseNSDef) xmlNamespaceParseNSDef__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlNamespaceParseNSDef) xmlNamespaceParseNSDef __attribute((alias("xmlNamespaceParseNSDef__internal_alias")));
+#define xmlNamespaceParseNSDef xmlNamespaceParseNSDef__internal_alias
+
+extern __typeof (xmlNamespaceParseQName) xmlNamespaceParseQName__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlNamespaceParseQName) xmlNamespaceParseQName __attribute((alias("xmlNamespaceParseQName__internal_alias")));
+#define xmlNamespaceParseQName xmlNamespaceParseQName__internal_alias
+
+#ifdef LIBXML_FTP_ENABLED
+extern __typeof (xmlNanoFTPCheckResponse) xmlNanoFTPCheckResponse__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlNanoFTPCheckResponse) xmlNanoFTPCheckResponse __attribute((alias("xmlNanoFTPCheckResponse__internal_alias")));
+#define xmlNanoFTPCheckResponse xmlNanoFTPCheckResponse__internal_alias
+#endif
+
+#ifdef LIBXML_FTP_ENABLED
+extern __typeof (xmlNanoFTPCleanup) xmlNanoFTPCleanup__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlNanoFTPCleanup) xmlNanoFTPCleanup __attribute((alias("xmlNanoFTPCleanup__internal_alias")));
+#define xmlNanoFTPCleanup xmlNanoFTPCleanup__internal_alias
+#endif
+
+#ifdef LIBXML_FTP_ENABLED
+extern __typeof (xmlNanoFTPClose) xmlNanoFTPClose__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlNanoFTPClose) xmlNanoFTPClose __attribute((alias("xmlNanoFTPClose__internal_alias")));
+#define xmlNanoFTPClose xmlNanoFTPClose__internal_alias
+#endif
+
+#ifdef LIBXML_FTP_ENABLED
+extern __typeof (xmlNanoFTPCloseConnection) xmlNanoFTPCloseConnection__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlNanoFTPCloseConnection) xmlNanoFTPCloseConnection __attribute((alias("xmlNanoFTPCloseConnection__internal_alias")));
+#define xmlNanoFTPCloseConnection xmlNanoFTPCloseConnection__internal_alias
+#endif
+
+#ifdef LIBXML_FTP_ENABLED
+extern __typeof (xmlNanoFTPConnect) xmlNanoFTPConnect__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlNanoFTPConnect) xmlNanoFTPConnect __attribute((alias("xmlNanoFTPConnect__internal_alias")));
+#define xmlNanoFTPConnect xmlNanoFTPConnect__internal_alias
+#endif
+
+#ifdef LIBXML_FTP_ENABLED
+extern __typeof (xmlNanoFTPConnectTo) xmlNanoFTPConnectTo__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlNanoFTPConnectTo) xmlNanoFTPConnectTo __attribute((alias("xmlNanoFTPConnectTo__internal_alias")));
+#define xmlNanoFTPConnectTo xmlNanoFTPConnectTo__internal_alias
+#endif
+
+#ifdef LIBXML_FTP_ENABLED
+extern __typeof (xmlNanoFTPCwd) xmlNanoFTPCwd__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlNanoFTPCwd) xmlNanoFTPCwd __attribute((alias("xmlNanoFTPCwd__internal_alias")));
+#define xmlNanoFTPCwd xmlNanoFTPCwd__internal_alias
+#endif
+
+#ifdef LIBXML_FTP_ENABLED
+extern __typeof (xmlNanoFTPDele) xmlNanoFTPDele__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlNanoFTPDele) xmlNanoFTPDele __attribute((alias("xmlNanoFTPDele__internal_alias")));
+#define xmlNanoFTPDele xmlNanoFTPDele__internal_alias
+#endif
+
+#ifdef LIBXML_FTP_ENABLED
+extern __typeof (xmlNanoFTPFreeCtxt) xmlNanoFTPFreeCtxt__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlNanoFTPFreeCtxt) xmlNanoFTPFreeCtxt __attribute((alias("xmlNanoFTPFreeCtxt__internal_alias")));
+#define xmlNanoFTPFreeCtxt xmlNanoFTPFreeCtxt__internal_alias
+#endif
+
+#ifdef LIBXML_FTP_ENABLED
+extern __typeof (xmlNanoFTPGet) xmlNanoFTPGet__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlNanoFTPGet) xmlNanoFTPGet __attribute((alias("xmlNanoFTPGet__internal_alias")));
+#define xmlNanoFTPGet xmlNanoFTPGet__internal_alias
+#endif
+
+#ifdef LIBXML_FTP_ENABLED
+extern __typeof (xmlNanoFTPGetConnection) xmlNanoFTPGetConnection__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlNanoFTPGetConnection) xmlNanoFTPGetConnection __attribute((alias("xmlNanoFTPGetConnection__internal_alias")));
+#define xmlNanoFTPGetConnection xmlNanoFTPGetConnection__internal_alias
+#endif
+
+#ifdef LIBXML_FTP_ENABLED
+extern __typeof (xmlNanoFTPGetResponse) xmlNanoFTPGetResponse__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlNanoFTPGetResponse) xmlNanoFTPGetResponse __attribute((alias("xmlNanoFTPGetResponse__internal_alias")));
+#define xmlNanoFTPGetResponse xmlNanoFTPGetResponse__internal_alias
+#endif
+
+#ifdef LIBXML_FTP_ENABLED
+extern __typeof (xmlNanoFTPGetSocket) xmlNanoFTPGetSocket__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlNanoFTPGetSocket) xmlNanoFTPGetSocket __attribute((alias("xmlNanoFTPGetSocket__internal_alias")));
+#define xmlNanoFTPGetSocket xmlNanoFTPGetSocket__internal_alias
+#endif
+
+#ifdef LIBXML_FTP_ENABLED
+extern __typeof (xmlNanoFTPInit) xmlNanoFTPInit__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlNanoFTPInit) xmlNanoFTPInit __attribute((alias("xmlNanoFTPInit__internal_alias")));
+#define xmlNanoFTPInit xmlNanoFTPInit__internal_alias
+#endif
+
+#ifdef LIBXML_FTP_ENABLED
+extern __typeof (xmlNanoFTPList) xmlNanoFTPList__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlNanoFTPList) xmlNanoFTPList __attribute((alias("xmlNanoFTPList__internal_alias")));
+#define xmlNanoFTPList xmlNanoFTPList__internal_alias
+#endif
+
+#ifdef LIBXML_FTP_ENABLED
+extern __typeof (xmlNanoFTPNewCtxt) xmlNanoFTPNewCtxt__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlNanoFTPNewCtxt) xmlNanoFTPNewCtxt __attribute((alias("xmlNanoFTPNewCtxt__internal_alias")));
+#define xmlNanoFTPNewCtxt xmlNanoFTPNewCtxt__internal_alias
+#endif
+
+#ifdef LIBXML_FTP_ENABLED
+extern __typeof (xmlNanoFTPOpen) xmlNanoFTPOpen__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlNanoFTPOpen) xmlNanoFTPOpen __attribute((alias("xmlNanoFTPOpen__internal_alias")));
+#define xmlNanoFTPOpen xmlNanoFTPOpen__internal_alias
+#endif
+
+#ifdef LIBXML_FTP_ENABLED
+extern __typeof (xmlNanoFTPProxy) xmlNanoFTPProxy__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlNanoFTPProxy) xmlNanoFTPProxy __attribute((alias("xmlNanoFTPProxy__internal_alias")));
+#define xmlNanoFTPProxy xmlNanoFTPProxy__internal_alias
+#endif
+
+#ifdef LIBXML_FTP_ENABLED
+extern __typeof (xmlNanoFTPQuit) xmlNanoFTPQuit__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlNanoFTPQuit) xmlNanoFTPQuit __attribute((alias("xmlNanoFTPQuit__internal_alias")));
+#define xmlNanoFTPQuit xmlNanoFTPQuit__internal_alias
+#endif
+
+#ifdef LIBXML_FTP_ENABLED
+extern __typeof (xmlNanoFTPRead) xmlNanoFTPRead__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlNanoFTPRead) xmlNanoFTPRead __attribute((alias("xmlNanoFTPRead__internal_alias")));
+#define xmlNanoFTPRead xmlNanoFTPRead__internal_alias
+#endif
+
+#ifdef LIBXML_FTP_ENABLED
+extern __typeof (xmlNanoFTPScanProxy) xmlNanoFTPScanProxy__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlNanoFTPScanProxy) xmlNanoFTPScanProxy __attribute((alias("xmlNanoFTPScanProxy__internal_alias")));
+#define xmlNanoFTPScanProxy xmlNanoFTPScanProxy__internal_alias
+#endif
+
+#ifdef LIBXML_FTP_ENABLED
+extern __typeof (xmlNanoFTPUpdateURL) xmlNanoFTPUpdateURL__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlNanoFTPUpdateURL) xmlNanoFTPUpdateURL __attribute((alias("xmlNanoFTPUpdateURL__internal_alias")));
+#define xmlNanoFTPUpdateURL xmlNanoFTPUpdateURL__internal_alias
+#endif
+
+#ifdef LIBXML_HTTP_ENABLED
+extern __typeof (xmlNanoHTTPAuthHeader) xmlNanoHTTPAuthHeader__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlNanoHTTPAuthHeader) xmlNanoHTTPAuthHeader __attribute((alias("xmlNanoHTTPAuthHeader__internal_alias")));
+#define xmlNanoHTTPAuthHeader xmlNanoHTTPAuthHeader__internal_alias
+#endif
+
+#ifdef LIBXML_HTTP_ENABLED
+extern __typeof (xmlNanoHTTPCleanup) xmlNanoHTTPCleanup__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlNanoHTTPCleanup) xmlNanoHTTPCleanup __attribute((alias("xmlNanoHTTPCleanup__internal_alias")));
+#define xmlNanoHTTPCleanup xmlNanoHTTPCleanup__internal_alias
+#endif
+
+#ifdef LIBXML_HTTP_ENABLED
+extern __typeof (xmlNanoHTTPClose) xmlNanoHTTPClose__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlNanoHTTPClose) xmlNanoHTTPClose __attribute((alias("xmlNanoHTTPClose__internal_alias")));
+#define xmlNanoHTTPClose xmlNanoHTTPClose__internal_alias
+#endif
+
+#ifdef LIBXML_HTTP_ENABLED
+extern __typeof (xmlNanoHTTPEncoding) xmlNanoHTTPEncoding__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlNanoHTTPEncoding) xmlNanoHTTPEncoding __attribute((alias("xmlNanoHTTPEncoding__internal_alias")));
+#define xmlNanoHTTPEncoding xmlNanoHTTPEncoding__internal_alias
+#endif
+
+#ifdef LIBXML_HTTP_ENABLED
+extern __typeof (xmlNanoHTTPFetch) xmlNanoHTTPFetch__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlNanoHTTPFetch) xmlNanoHTTPFetch __attribute((alias("xmlNanoHTTPFetch__internal_alias")));
+#define xmlNanoHTTPFetch xmlNanoHTTPFetch__internal_alias
+#endif
+
+#ifdef LIBXML_HTTP_ENABLED
+extern __typeof (xmlNanoHTTPInit) xmlNanoHTTPInit__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlNanoHTTPInit) xmlNanoHTTPInit __attribute((alias("xmlNanoHTTPInit__internal_alias")));
+#define xmlNanoHTTPInit xmlNanoHTTPInit__internal_alias
+#endif
+
+#ifdef LIBXML_HTTP_ENABLED
+extern __typeof (xmlNanoHTTPMethod) xmlNanoHTTPMethod__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlNanoHTTPMethod) xmlNanoHTTPMethod __attribute((alias("xmlNanoHTTPMethod__internal_alias")));
+#define xmlNanoHTTPMethod xmlNanoHTTPMethod__internal_alias
+#endif
+
+#ifdef LIBXML_HTTP_ENABLED
+extern __typeof (xmlNanoHTTPMethodRedir) xmlNanoHTTPMethodRedir__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlNanoHTTPMethodRedir) xmlNanoHTTPMethodRedir __attribute((alias("xmlNanoHTTPMethodRedir__internal_alias")));
+#define xmlNanoHTTPMethodRedir xmlNanoHTTPMethodRedir__internal_alias
+#endif
+
+#ifdef LIBXML_HTTP_ENABLED
+extern __typeof (xmlNanoHTTPMimeType) xmlNanoHTTPMimeType__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlNanoHTTPMimeType) xmlNanoHTTPMimeType __attribute((alias("xmlNanoHTTPMimeType__internal_alias")));
+#define xmlNanoHTTPMimeType xmlNanoHTTPMimeType__internal_alias
+#endif
+
+#ifdef LIBXML_HTTP_ENABLED
+extern __typeof (xmlNanoHTTPOpen) xmlNanoHTTPOpen__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlNanoHTTPOpen) xmlNanoHTTPOpen __attribute((alias("xmlNanoHTTPOpen__internal_alias")));
+#define xmlNanoHTTPOpen xmlNanoHTTPOpen__internal_alias
+#endif
+
+#ifdef LIBXML_HTTP_ENABLED
+extern __typeof (xmlNanoHTTPOpenRedir) xmlNanoHTTPOpenRedir__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlNanoHTTPOpenRedir) xmlNanoHTTPOpenRedir __attribute((alias("xmlNanoHTTPOpenRedir__internal_alias")));
+#define xmlNanoHTTPOpenRedir xmlNanoHTTPOpenRedir__internal_alias
+#endif
+
+#ifdef LIBXML_HTTP_ENABLED
+extern __typeof (xmlNanoHTTPRead) xmlNanoHTTPRead__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlNanoHTTPRead) xmlNanoHTTPRead __attribute((alias("xmlNanoHTTPRead__internal_alias")));
+#define xmlNanoHTTPRead xmlNanoHTTPRead__internal_alias
+#endif
+
+#ifdef LIBXML_HTTP_ENABLED
+extern __typeof (xmlNanoHTTPRedir) xmlNanoHTTPRedir__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlNanoHTTPRedir) xmlNanoHTTPRedir __attribute((alias("xmlNanoHTTPRedir__internal_alias")));
+#define xmlNanoHTTPRedir xmlNanoHTTPRedir__internal_alias
+#endif
+
+#ifdef LIBXML_HTTP_ENABLED
+extern __typeof (xmlNanoHTTPReturnCode) xmlNanoHTTPReturnCode__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlNanoHTTPReturnCode) xmlNanoHTTPReturnCode __attribute((alias("xmlNanoHTTPReturnCode__internal_alias")));
+#define xmlNanoHTTPReturnCode xmlNanoHTTPReturnCode__internal_alias
+#endif
+
+#ifdef LIBXML_HTTP_ENABLED
+#ifdef LIBXML_OUTPUT_ENABLED
+extern __typeof (xmlNanoHTTPSave) xmlNanoHTTPSave__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlNanoHTTPSave) xmlNanoHTTPSave __attribute((alias("xmlNanoHTTPSave__internal_alias")));
+#define xmlNanoHTTPSave xmlNanoHTTPSave__internal_alias
+#endif
+#endif
+
+#ifdef LIBXML_HTTP_ENABLED
+extern __typeof (xmlNanoHTTPScanProxy) xmlNanoHTTPScanProxy__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlNanoHTTPScanProxy) xmlNanoHTTPScanProxy __attribute((alias("xmlNanoHTTPScanProxy__internal_alias")));
+#define xmlNanoHTTPScanProxy xmlNanoHTTPScanProxy__internal_alias
+#endif
+
+#ifdef LIBXML_AUTOMATA_ENABLED
+extern __typeof (xmlNewAutomata) xmlNewAutomata__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlNewAutomata) xmlNewAutomata __attribute((alias("xmlNewAutomata__internal_alias")));
+#define xmlNewAutomata xmlNewAutomata__internal_alias
+#endif
+
+extern __typeof (xmlNewCDataBlock) xmlNewCDataBlock__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlNewCDataBlock) xmlNewCDataBlock __attribute((alias("xmlNewCDataBlock__internal_alias")));
+#define xmlNewCDataBlock xmlNewCDataBlock__internal_alias
+
+#ifdef LIBXML_CATALOG_ENABLED
+extern __typeof (xmlNewCatalog) xmlNewCatalog__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlNewCatalog) xmlNewCatalog __attribute((alias("xmlNewCatalog__internal_alias")));
+#define xmlNewCatalog xmlNewCatalog__internal_alias
+#endif
+
+extern __typeof (xmlNewCharEncodingHandler) xmlNewCharEncodingHandler__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlNewCharEncodingHandler) xmlNewCharEncodingHandler __attribute((alias("xmlNewCharEncodingHandler__internal_alias")));
+#define xmlNewCharEncodingHandler xmlNewCharEncodingHandler__internal_alias
+
+extern __typeof (xmlNewCharRef) xmlNewCharRef__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlNewCharRef) xmlNewCharRef __attribute((alias("xmlNewCharRef__internal_alias")));
+#define xmlNewCharRef xmlNewCharRef__internal_alias
+
+extern __typeof (xmlNewChild) xmlNewChild__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlNewChild) xmlNewChild __attribute((alias("xmlNewChild__internal_alias")));
+#define xmlNewChild xmlNewChild__internal_alias
+
+extern __typeof (xmlNewComment) xmlNewComment__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlNewComment) xmlNewComment __attribute((alias("xmlNewComment__internal_alias")));
+#define xmlNewComment xmlNewComment__internal_alias
+
+extern __typeof (xmlNewDoc) xmlNewDoc__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlNewDoc) xmlNewDoc __attribute((alias("xmlNewDoc__internal_alias")));
+#define xmlNewDoc xmlNewDoc__internal_alias
+
+extern __typeof (xmlNewDocComment) xmlNewDocComment__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlNewDocComment) xmlNewDocComment __attribute((alias("xmlNewDocComment__internal_alias")));
+#define xmlNewDocComment xmlNewDocComment__internal_alias
+
+#ifdef LIBXML_TREE_ENABLED
+extern __typeof (xmlNewDocFragment) xmlNewDocFragment__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlNewDocFragment) xmlNewDocFragment __attribute((alias("xmlNewDocFragment__internal_alias")));
+#define xmlNewDocFragment xmlNewDocFragment__internal_alias
+#endif
+
+extern __typeof (xmlNewDocNode) xmlNewDocNode__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlNewDocNode) xmlNewDocNode __attribute((alias("xmlNewDocNode__internal_alias")));
+#define xmlNewDocNode xmlNewDocNode__internal_alias
+
+extern __typeof (xmlNewDocNodeEatName) xmlNewDocNodeEatName__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlNewDocNodeEatName) xmlNewDocNodeEatName __attribute((alias("xmlNewDocNodeEatName__internal_alias")));
+#define xmlNewDocNodeEatName xmlNewDocNodeEatName__internal_alias
+
+extern __typeof (xmlNewDocProp) xmlNewDocProp__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlNewDocProp) xmlNewDocProp __attribute((alias("xmlNewDocProp__internal_alias")));
+#define xmlNewDocProp xmlNewDocProp__internal_alias
+
+extern __typeof (xmlNewDocRawNode) xmlNewDocRawNode__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlNewDocRawNode) xmlNewDocRawNode __attribute((alias("xmlNewDocRawNode__internal_alias")));
+#define xmlNewDocRawNode xmlNewDocRawNode__internal_alias
+
+extern __typeof (xmlNewDocText) xmlNewDocText__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlNewDocText) xmlNewDocText __attribute((alias("xmlNewDocText__internal_alias")));
+#define xmlNewDocText xmlNewDocText__internal_alias
+
+extern __typeof (xmlNewDocTextLen) xmlNewDocTextLen__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlNewDocTextLen) xmlNewDocTextLen __attribute((alias("xmlNewDocTextLen__internal_alias")));
+#define xmlNewDocTextLen xmlNewDocTextLen__internal_alias
+
+extern __typeof (xmlNewDtd) xmlNewDtd__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlNewDtd) xmlNewDtd __attribute((alias("xmlNewDtd__internal_alias")));
+#define xmlNewDtd xmlNewDtd__internal_alias
+
+extern __typeof (xmlNewElementContent) xmlNewElementContent__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlNewElementContent) xmlNewElementContent __attribute((alias("xmlNewElementContent__internal_alias")));
+#define xmlNewElementContent xmlNewElementContent__internal_alias
+
+extern __typeof (xmlNewEntityInputStream) xmlNewEntityInputStream__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlNewEntityInputStream) xmlNewEntityInputStream __attribute((alias("xmlNewEntityInputStream__internal_alias")));
+#define xmlNewEntityInputStream xmlNewEntityInputStream__internal_alias
+
+extern __typeof (xmlNewGlobalNs) xmlNewGlobalNs__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlNewGlobalNs) xmlNewGlobalNs __attribute((alias("xmlNewGlobalNs__internal_alias")));
+#define xmlNewGlobalNs xmlNewGlobalNs__internal_alias
+
+extern __typeof (xmlNewIOInputStream) xmlNewIOInputStream__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlNewIOInputStream) xmlNewIOInputStream __attribute((alias("xmlNewIOInputStream__internal_alias")));
+#define xmlNewIOInputStream xmlNewIOInputStream__internal_alias
+
+extern __typeof (xmlNewInputFromFile) xmlNewInputFromFile__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlNewInputFromFile) xmlNewInputFromFile __attribute((alias("xmlNewInputFromFile__internal_alias")));
+#define xmlNewInputFromFile xmlNewInputFromFile__internal_alias
+
+extern __typeof (xmlNewInputStream) xmlNewInputStream__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlNewInputStream) xmlNewInputStream __attribute((alias("xmlNewInputStream__internal_alias")));
+#define xmlNewInputStream xmlNewInputStream__internal_alias
+
+extern __typeof (xmlNewMutex) xmlNewMutex__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlNewMutex) xmlNewMutex __attribute((alias("xmlNewMutex__internal_alias")));
+#define xmlNewMutex xmlNewMutex__internal_alias
+
+extern __typeof (xmlNewNode) xmlNewNode__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlNewNode) xmlNewNode __attribute((alias("xmlNewNode__internal_alias")));
+#define xmlNewNode xmlNewNode__internal_alias
+
+extern __typeof (xmlNewNodeEatName) xmlNewNodeEatName__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlNewNodeEatName) xmlNewNodeEatName __attribute((alias("xmlNewNodeEatName__internal_alias")));
+#define xmlNewNodeEatName xmlNewNodeEatName__internal_alias
+
+extern __typeof (xmlNewNs) xmlNewNs__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlNewNs) xmlNewNs __attribute((alias("xmlNewNs__internal_alias")));
+#define xmlNewNs xmlNewNs__internal_alias
+
+extern __typeof (xmlNewNsProp) xmlNewNsProp__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlNewNsProp) xmlNewNsProp __attribute((alias("xmlNewNsProp__internal_alias")));
+#define xmlNewNsProp xmlNewNsProp__internal_alias
+
+extern __typeof (xmlNewNsPropEatName) xmlNewNsPropEatName__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlNewNsPropEatName) xmlNewNsPropEatName __attribute((alias("xmlNewNsPropEatName__internal_alias")));
+#define xmlNewNsPropEatName xmlNewNsPropEatName__internal_alias
+
+extern __typeof (xmlNewPI) xmlNewPI__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlNewPI) xmlNewPI __attribute((alias("xmlNewPI__internal_alias")));
+#define xmlNewPI xmlNewPI__internal_alias
+
+extern __typeof (xmlNewParserCtxt) xmlNewParserCtxt__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlNewParserCtxt) xmlNewParserCtxt __attribute((alias("xmlNewParserCtxt__internal_alias")));
+#define xmlNewParserCtxt xmlNewParserCtxt__internal_alias
+
+extern __typeof (xmlNewProp) xmlNewProp__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlNewProp) xmlNewProp __attribute((alias("xmlNewProp__internal_alias")));
+#define xmlNewProp xmlNewProp__internal_alias
+
+extern __typeof (xmlNewRMutex) xmlNewRMutex__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlNewRMutex) xmlNewRMutex __attribute((alias("xmlNewRMutex__internal_alias")));
+#define xmlNewRMutex xmlNewRMutex__internal_alias
+
+extern __typeof (xmlNewReference) xmlNewReference__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlNewReference) xmlNewReference __attribute((alias("xmlNewReference__internal_alias")));
+#define xmlNewReference xmlNewReference__internal_alias
+
+extern __typeof (xmlNewStringInputStream) xmlNewStringInputStream__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlNewStringInputStream) xmlNewStringInputStream __attribute((alias("xmlNewStringInputStream__internal_alias")));
+#define xmlNewStringInputStream xmlNewStringInputStream__internal_alias
+
+extern __typeof (xmlNewText) xmlNewText__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlNewText) xmlNewText __attribute((alias("xmlNewText__internal_alias")));
+#define xmlNewText xmlNewText__internal_alias
+
+extern __typeof (xmlNewTextChild) xmlNewTextChild__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlNewTextChild) xmlNewTextChild __attribute((alias("xmlNewTextChild__internal_alias")));
+#define xmlNewTextChild xmlNewTextChild__internal_alias
+
+extern __typeof (xmlNewTextLen) xmlNewTextLen__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlNewTextLen) xmlNewTextLen __attribute((alias("xmlNewTextLen__internal_alias")));
+#define xmlNewTextLen xmlNewTextLen__internal_alias
+
+#ifdef LIBXML_READER_ENABLED
+extern __typeof (xmlNewTextReader) xmlNewTextReader__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlNewTextReader) xmlNewTextReader __attribute((alias("xmlNewTextReader__internal_alias")));
+#define xmlNewTextReader xmlNewTextReader__internal_alias
+#endif
+
+#ifdef LIBXML_READER_ENABLED
+extern __typeof (xmlNewTextReaderFilename) xmlNewTextReaderFilename__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlNewTextReaderFilename) xmlNewTextReaderFilename __attribute((alias("xmlNewTextReaderFilename__internal_alias")));
+#define xmlNewTextReaderFilename xmlNewTextReaderFilename__internal_alias
+#endif
+
+#ifdef LIBXML_WRITER_ENABLED
+extern __typeof (xmlNewTextWriter) xmlNewTextWriter__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlNewTextWriter) xmlNewTextWriter __attribute((alias("xmlNewTextWriter__internal_alias")));
+#define xmlNewTextWriter xmlNewTextWriter__internal_alias
+#endif
+
+#ifdef LIBXML_WRITER_ENABLED
+extern __typeof (xmlNewTextWriterDoc) xmlNewTextWriterDoc__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlNewTextWriterDoc) xmlNewTextWriterDoc __attribute((alias("xmlNewTextWriterDoc__internal_alias")));
+#define xmlNewTextWriterDoc xmlNewTextWriterDoc__internal_alias
+#endif
+
+#ifdef LIBXML_WRITER_ENABLED
+extern __typeof (xmlNewTextWriterFilename) xmlNewTextWriterFilename__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlNewTextWriterFilename) xmlNewTextWriterFilename __attribute((alias("xmlNewTextWriterFilename__internal_alias")));
+#define xmlNewTextWriterFilename xmlNewTextWriterFilename__internal_alias
+#endif
+
+#ifdef LIBXML_WRITER_ENABLED
+extern __typeof (xmlNewTextWriterMemory) xmlNewTextWriterMemory__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlNewTextWriterMemory) xmlNewTextWriterMemory __attribute((alias("xmlNewTextWriterMemory__internal_alias")));
+#define xmlNewTextWriterMemory xmlNewTextWriterMemory__internal_alias
+#endif
+
+#ifdef LIBXML_WRITER_ENABLED
+extern __typeof (xmlNewTextWriterPushParser) xmlNewTextWriterPushParser__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlNewTextWriterPushParser) xmlNewTextWriterPushParser __attribute((alias("xmlNewTextWriterPushParser__internal_alias")));
+#define xmlNewTextWriterPushParser xmlNewTextWriterPushParser__internal_alias
+#endif
+
+#ifdef LIBXML_WRITER_ENABLED
+extern __typeof (xmlNewTextWriterTree) xmlNewTextWriterTree__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlNewTextWriterTree) xmlNewTextWriterTree __attribute((alias("xmlNewTextWriterTree__internal_alias")));
+#define xmlNewTextWriterTree xmlNewTextWriterTree__internal_alias
+#endif
+
+extern __typeof (xmlNewValidCtxt) xmlNewValidCtxt__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlNewValidCtxt) xmlNewValidCtxt __attribute((alias("xmlNewValidCtxt__internal_alias")));
+#define xmlNewValidCtxt xmlNewValidCtxt__internal_alias
+
+extern __typeof (xmlNextChar) xmlNextChar__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlNextChar) xmlNextChar __attribute((alias("xmlNextChar__internal_alias")));
+#define xmlNextChar xmlNextChar__internal_alias
+
+extern __typeof (xmlNoNetExternalEntityLoader) xmlNoNetExternalEntityLoader__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlNoNetExternalEntityLoader) xmlNoNetExternalEntityLoader __attribute((alias("xmlNoNetExternalEntityLoader__internal_alias")));
+#define xmlNoNetExternalEntityLoader xmlNoNetExternalEntityLoader__internal_alias
+
+extern __typeof (xmlNodeAddContent) xmlNodeAddContent__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlNodeAddContent) xmlNodeAddContent __attribute((alias("xmlNodeAddContent__internal_alias")));
+#define xmlNodeAddContent xmlNodeAddContent__internal_alias
+
+extern __typeof (xmlNodeAddContentLen) xmlNodeAddContentLen__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlNodeAddContentLen) xmlNodeAddContentLen __attribute((alias("xmlNodeAddContentLen__internal_alias")));
+#define xmlNodeAddContentLen xmlNodeAddContentLen__internal_alias
+
+extern __typeof (xmlNodeBufGetContent) xmlNodeBufGetContent__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlNodeBufGetContent) xmlNodeBufGetContent __attribute((alias("xmlNodeBufGetContent__internal_alias")));
+#define xmlNodeBufGetContent xmlNodeBufGetContent__internal_alias
+
+#ifdef LIBXML_OUTPUT_ENABLED
+extern __typeof (xmlNodeDump) xmlNodeDump__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlNodeDump) xmlNodeDump __attribute((alias("xmlNodeDump__internal_alias")));
+#define xmlNodeDump xmlNodeDump__internal_alias
+#endif
+
+#ifdef LIBXML_OUTPUT_ENABLED
+extern __typeof (xmlNodeDumpOutput) xmlNodeDumpOutput__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlNodeDumpOutput) xmlNodeDumpOutput __attribute((alias("xmlNodeDumpOutput__internal_alias")));
+#define xmlNodeDumpOutput xmlNodeDumpOutput__internal_alias
+#endif
+
+extern __typeof (xmlNodeGetBase) xmlNodeGetBase__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlNodeGetBase) xmlNodeGetBase __attribute((alias("xmlNodeGetBase__internal_alias")));
+#define xmlNodeGetBase xmlNodeGetBase__internal_alias
+
+extern __typeof (xmlNodeGetContent) xmlNodeGetContent__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlNodeGetContent) xmlNodeGetContent __attribute((alias("xmlNodeGetContent__internal_alias")));
+#define xmlNodeGetContent xmlNodeGetContent__internal_alias
+
+extern __typeof (xmlNodeGetLang) xmlNodeGetLang__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlNodeGetLang) xmlNodeGetLang __attribute((alias("xmlNodeGetLang__internal_alias")));
+#define xmlNodeGetLang xmlNodeGetLang__internal_alias
+
+extern __typeof (xmlNodeGetSpacePreserve) xmlNodeGetSpacePreserve__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlNodeGetSpacePreserve) xmlNodeGetSpacePreserve __attribute((alias("xmlNodeGetSpacePreserve__internal_alias")));
+#define xmlNodeGetSpacePreserve xmlNodeGetSpacePreserve__internal_alias
+
+extern __typeof (xmlNodeIsText) xmlNodeIsText__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlNodeIsText) xmlNodeIsText __attribute((alias("xmlNodeIsText__internal_alias")));
+#define xmlNodeIsText xmlNodeIsText__internal_alias
+
+#ifdef LIBXML_TREE_ENABLED
+extern __typeof (xmlNodeListGetRawString) xmlNodeListGetRawString__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlNodeListGetRawString) xmlNodeListGetRawString __attribute((alias("xmlNodeListGetRawString__internal_alias")));
+#define xmlNodeListGetRawString xmlNodeListGetRawString__internal_alias
+#endif
+
+extern __typeof (xmlNodeListGetString) xmlNodeListGetString__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlNodeListGetString) xmlNodeListGetString __attribute((alias("xmlNodeListGetString__internal_alias")));
+#define xmlNodeListGetString xmlNodeListGetString__internal_alias
+
+#ifdef LIBXML_TREE_ENABLED
+extern __typeof (xmlNodeSetBase) xmlNodeSetBase__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlNodeSetBase) xmlNodeSetBase __attribute((alias("xmlNodeSetBase__internal_alias")));
+#define xmlNodeSetBase xmlNodeSetBase__internal_alias
+#endif
+
+extern __typeof (xmlNodeSetContent) xmlNodeSetContent__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlNodeSetContent) xmlNodeSetContent __attribute((alias("xmlNodeSetContent__internal_alias")));
+#define xmlNodeSetContent xmlNodeSetContent__internal_alias
+
+#ifdef LIBXML_TREE_ENABLED
+extern __typeof (xmlNodeSetContentLen) xmlNodeSetContentLen__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlNodeSetContentLen) xmlNodeSetContentLen __attribute((alias("xmlNodeSetContentLen__internal_alias")));
+#define xmlNodeSetContentLen xmlNodeSetContentLen__internal_alias
+#endif
+
+#ifdef LIBXML_TREE_ENABLED
+extern __typeof (xmlNodeSetLang) xmlNodeSetLang__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlNodeSetLang) xmlNodeSetLang __attribute((alias("xmlNodeSetLang__internal_alias")));
+#define xmlNodeSetLang xmlNodeSetLang__internal_alias
+#endif
+
+#ifdef LIBXML_TREE_ENABLED
+extern __typeof (xmlNodeSetName) xmlNodeSetName__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlNodeSetName) xmlNodeSetName __attribute((alias("xmlNodeSetName__internal_alias")));
+#define xmlNodeSetName xmlNodeSetName__internal_alias
+#endif
+
+#ifdef LIBXML_TREE_ENABLED
+extern __typeof (xmlNodeSetSpacePreserve) xmlNodeSetSpacePreserve__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlNodeSetSpacePreserve) xmlNodeSetSpacePreserve __attribute((alias("xmlNodeSetSpacePreserve__internal_alias")));
+#define xmlNodeSetSpacePreserve xmlNodeSetSpacePreserve__internal_alias
+#endif
+
+extern __typeof (xmlNormalizeURIPath) xmlNormalizeURIPath__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlNormalizeURIPath) xmlNormalizeURIPath __attribute((alias("xmlNormalizeURIPath__internal_alias")));
+#define xmlNormalizeURIPath xmlNormalizeURIPath__internal_alias
+
+extern __typeof (xmlNormalizeWindowsPath) xmlNormalizeWindowsPath__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlNormalizeWindowsPath) xmlNormalizeWindowsPath __attribute((alias("xmlNormalizeWindowsPath__internal_alias")));
+#define xmlNormalizeWindowsPath xmlNormalizeWindowsPath__internal_alias
+
+#ifdef LIBXML_OUTPUT_ENABLED
+extern __typeof (xmlOutputBufferClose) xmlOutputBufferClose__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlOutputBufferClose) xmlOutputBufferClose __attribute((alias("xmlOutputBufferClose__internal_alias")));
+#define xmlOutputBufferClose xmlOutputBufferClose__internal_alias
+#endif
+
+#ifdef LIBXML_OUTPUT_ENABLED
+extern __typeof (xmlOutputBufferCreateFd) xmlOutputBufferCreateFd__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlOutputBufferCreateFd) xmlOutputBufferCreateFd __attribute((alias("xmlOutputBufferCreateFd__internal_alias")));
+#define xmlOutputBufferCreateFd xmlOutputBufferCreateFd__internal_alias
+#endif
+
+#ifdef LIBXML_OUTPUT_ENABLED
+extern __typeof (xmlOutputBufferCreateFile) xmlOutputBufferCreateFile__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlOutputBufferCreateFile) xmlOutputBufferCreateFile __attribute((alias("xmlOutputBufferCreateFile__internal_alias")));
+#define xmlOutputBufferCreateFile xmlOutputBufferCreateFile__internal_alias
+#endif
+
+#ifdef LIBXML_OUTPUT_ENABLED
+extern __typeof (xmlOutputBufferCreateFilename) xmlOutputBufferCreateFilename__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlOutputBufferCreateFilename) xmlOutputBufferCreateFilename __attribute((alias("xmlOutputBufferCreateFilename__internal_alias")));
+#define xmlOutputBufferCreateFilename xmlOutputBufferCreateFilename__internal_alias
+#endif
+
+extern __typeof (xmlOutputBufferCreateFilenameDefault) xmlOutputBufferCreateFilenameDefault__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlOutputBufferCreateFilenameDefault) xmlOutputBufferCreateFilenameDefault __attribute((alias("xmlOutputBufferCreateFilenameDefault__internal_alias")));
+#define xmlOutputBufferCreateFilenameDefault xmlOutputBufferCreateFilenameDefault__internal_alias
+
+#ifdef LIBXML_OUTPUT_ENABLED
+extern __typeof (xmlOutputBufferCreateIO) xmlOutputBufferCreateIO__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlOutputBufferCreateIO) xmlOutputBufferCreateIO __attribute((alias("xmlOutputBufferCreateIO__internal_alias")));
+#define xmlOutputBufferCreateIO xmlOutputBufferCreateIO__internal_alias
+#endif
+
+#ifdef LIBXML_OUTPUT_ENABLED
+extern __typeof (xmlOutputBufferFlush) xmlOutputBufferFlush__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlOutputBufferFlush) xmlOutputBufferFlush __attribute((alias("xmlOutputBufferFlush__internal_alias")));
+#define xmlOutputBufferFlush xmlOutputBufferFlush__internal_alias
+#endif
+
+#ifdef LIBXML_OUTPUT_ENABLED
+extern __typeof (xmlOutputBufferWrite) xmlOutputBufferWrite__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlOutputBufferWrite) xmlOutputBufferWrite __attribute((alias("xmlOutputBufferWrite__internal_alias")));
+#define xmlOutputBufferWrite xmlOutputBufferWrite__internal_alias
+#endif
+
+#ifdef LIBXML_OUTPUT_ENABLED
+extern __typeof (xmlOutputBufferWriteEscape) xmlOutputBufferWriteEscape__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlOutputBufferWriteEscape) xmlOutputBufferWriteEscape __attribute((alias("xmlOutputBufferWriteEscape__internal_alias")));
+#define xmlOutputBufferWriteEscape xmlOutputBufferWriteEscape__internal_alias
+#endif
+
+#ifdef LIBXML_OUTPUT_ENABLED
+extern __typeof (xmlOutputBufferWriteString) xmlOutputBufferWriteString__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlOutputBufferWriteString) xmlOutputBufferWriteString __attribute((alias("xmlOutputBufferWriteString__internal_alias")));
+#define xmlOutputBufferWriteString xmlOutputBufferWriteString__internal_alias
+#endif
+
+extern __typeof (xmlParseAttValue) xmlParseAttValue__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlParseAttValue) xmlParseAttValue __attribute((alias("xmlParseAttValue__internal_alias")));
+#define xmlParseAttValue xmlParseAttValue__internal_alias
+
+extern __typeof (xmlParseAttribute) xmlParseAttribute__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlParseAttribute) xmlParseAttribute __attribute((alias("xmlParseAttribute__internal_alias")));
+#define xmlParseAttribute xmlParseAttribute__internal_alias
+
+extern __typeof (xmlParseAttributeListDecl) xmlParseAttributeListDecl__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlParseAttributeListDecl) xmlParseAttributeListDecl __attribute((alias("xmlParseAttributeListDecl__internal_alias")));
+#define xmlParseAttributeListDecl xmlParseAttributeListDecl__internal_alias
+
+extern __typeof (xmlParseAttributeType) xmlParseAttributeType__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlParseAttributeType) xmlParseAttributeType __attribute((alias("xmlParseAttributeType__internal_alias")));
+#define xmlParseAttributeType xmlParseAttributeType__internal_alias
+
+extern __typeof (xmlParseBalancedChunkMemory) xmlParseBalancedChunkMemory__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlParseBalancedChunkMemory) xmlParseBalancedChunkMemory __attribute((alias("xmlParseBalancedChunkMemory__internal_alias")));
+#define xmlParseBalancedChunkMemory xmlParseBalancedChunkMemory__internal_alias
+
+extern __typeof (xmlParseBalancedChunkMemoryRecover) xmlParseBalancedChunkMemoryRecover__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlParseBalancedChunkMemoryRecover) xmlParseBalancedChunkMemoryRecover __attribute((alias("xmlParseBalancedChunkMemoryRecover__internal_alias")));
+#define xmlParseBalancedChunkMemoryRecover xmlParseBalancedChunkMemoryRecover__internal_alias
+
+extern __typeof (xmlParseCDSect) xmlParseCDSect__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlParseCDSect) xmlParseCDSect __attribute((alias("xmlParseCDSect__internal_alias")));
+#define xmlParseCDSect xmlParseCDSect__internal_alias
+
+#ifdef LIBXML_CATALOG_ENABLED
+extern __typeof (xmlParseCatalogFile) xmlParseCatalogFile__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlParseCatalogFile) xmlParseCatalogFile __attribute((alias("xmlParseCatalogFile__internal_alias")));
+#define xmlParseCatalogFile xmlParseCatalogFile__internal_alias
+#endif
+
+extern __typeof (xmlParseCharData) xmlParseCharData__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlParseCharData) xmlParseCharData __attribute((alias("xmlParseCharData__internal_alias")));
+#define xmlParseCharData xmlParseCharData__internal_alias
+
+extern __typeof (xmlParseCharEncoding) xmlParseCharEncoding__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlParseCharEncoding) xmlParseCharEncoding __attribute((alias("xmlParseCharEncoding__internal_alias")));
+#define xmlParseCharEncoding xmlParseCharEncoding__internal_alias
+
+extern __typeof (xmlParseCharRef) xmlParseCharRef__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlParseCharRef) xmlParseCharRef __attribute((alias("xmlParseCharRef__internal_alias")));
+#define xmlParseCharRef xmlParseCharRef__internal_alias
+
+#ifdef LIBXML_PUSH_ENABLED
+extern __typeof (xmlParseChunk) xmlParseChunk__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlParseChunk) xmlParseChunk __attribute((alias("xmlParseChunk__internal_alias")));
+#define xmlParseChunk xmlParseChunk__internal_alias
+#endif
+
+extern __typeof (xmlParseComment) xmlParseComment__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlParseComment) xmlParseComment __attribute((alias("xmlParseComment__internal_alias")));
+#define xmlParseComment xmlParseComment__internal_alias
+
+extern __typeof (xmlParseContent) xmlParseContent__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlParseContent) xmlParseContent __attribute((alias("xmlParseContent__internal_alias")));
+#define xmlParseContent xmlParseContent__internal_alias
+
+extern __typeof (xmlParseCtxtExternalEntity) xmlParseCtxtExternalEntity__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlParseCtxtExternalEntity) xmlParseCtxtExternalEntity __attribute((alias("xmlParseCtxtExternalEntity__internal_alias")));
+#define xmlParseCtxtExternalEntity xmlParseCtxtExternalEntity__internal_alias
+
+extern __typeof (xmlParseDTD) xmlParseDTD__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlParseDTD) xmlParseDTD __attribute((alias("xmlParseDTD__internal_alias")));
+#define xmlParseDTD xmlParseDTD__internal_alias
+
+extern __typeof (xmlParseDefaultDecl) xmlParseDefaultDecl__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlParseDefaultDecl) xmlParseDefaultDecl __attribute((alias("xmlParseDefaultDecl__internal_alias")));
+#define xmlParseDefaultDecl xmlParseDefaultDecl__internal_alias
+
+extern __typeof (xmlParseDoc) xmlParseDoc__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlParseDoc) xmlParseDoc __attribute((alias("xmlParseDoc__internal_alias")));
+#define xmlParseDoc xmlParseDoc__internal_alias
+
+extern __typeof (xmlParseDocTypeDecl) xmlParseDocTypeDecl__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlParseDocTypeDecl) xmlParseDocTypeDecl __attribute((alias("xmlParseDocTypeDecl__internal_alias")));
+#define xmlParseDocTypeDecl xmlParseDocTypeDecl__internal_alias
+
+extern __typeof (xmlParseDocument) xmlParseDocument__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlParseDocument) xmlParseDocument __attribute((alias("xmlParseDocument__internal_alias")));
+#define xmlParseDocument xmlParseDocument__internal_alias
+
+extern __typeof (xmlParseElement) xmlParseElement__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlParseElement) xmlParseElement __attribute((alias("xmlParseElement__internal_alias")));
+#define xmlParseElement xmlParseElement__internal_alias
+
+extern __typeof (xmlParseElementChildrenContentDecl) xmlParseElementChildrenContentDecl__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlParseElementChildrenContentDecl) xmlParseElementChildrenContentDecl __attribute((alias("xmlParseElementChildrenContentDecl__internal_alias")));
+#define xmlParseElementChildrenContentDecl xmlParseElementChildrenContentDecl__internal_alias
+
+extern __typeof (xmlParseElementContentDecl) xmlParseElementContentDecl__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlParseElementContentDecl) xmlParseElementContentDecl __attribute((alias("xmlParseElementContentDecl__internal_alias")));
+#define xmlParseElementContentDecl xmlParseElementContentDecl__internal_alias
+
+extern __typeof (xmlParseElementDecl) xmlParseElementDecl__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlParseElementDecl) xmlParseElementDecl __attribute((alias("xmlParseElementDecl__internal_alias")));
+#define xmlParseElementDecl xmlParseElementDecl__internal_alias
+
+extern __typeof (xmlParseElementMixedContentDecl) xmlParseElementMixedContentDecl__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlParseElementMixedContentDecl) xmlParseElementMixedContentDecl __attribute((alias("xmlParseElementMixedContentDecl__internal_alias")));
+#define xmlParseElementMixedContentDecl xmlParseElementMixedContentDecl__internal_alias
+
+extern __typeof (xmlParseEncName) xmlParseEncName__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlParseEncName) xmlParseEncName __attribute((alias("xmlParseEncName__internal_alias")));
+#define xmlParseEncName xmlParseEncName__internal_alias
+
+extern __typeof (xmlParseEncodingDecl) xmlParseEncodingDecl__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlParseEncodingDecl) xmlParseEncodingDecl __attribute((alias("xmlParseEncodingDecl__internal_alias")));
+#define xmlParseEncodingDecl xmlParseEncodingDecl__internal_alias
+
+extern __typeof (xmlParseEndTag) xmlParseEndTag__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlParseEndTag) xmlParseEndTag __attribute((alias("xmlParseEndTag__internal_alias")));
+#define xmlParseEndTag xmlParseEndTag__internal_alias
+
+extern __typeof (xmlParseEntity) xmlParseEntity__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlParseEntity) xmlParseEntity __attribute((alias("xmlParseEntity__internal_alias")));
+#define xmlParseEntity xmlParseEntity__internal_alias
+
+extern __typeof (xmlParseEntityDecl) xmlParseEntityDecl__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlParseEntityDecl) xmlParseEntityDecl __attribute((alias("xmlParseEntityDecl__internal_alias")));
+#define xmlParseEntityDecl xmlParseEntityDecl__internal_alias
+
+extern __typeof (xmlParseEntityRef) xmlParseEntityRef__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlParseEntityRef) xmlParseEntityRef __attribute((alias("xmlParseEntityRef__internal_alias")));
+#define xmlParseEntityRef xmlParseEntityRef__internal_alias
+
+extern __typeof (xmlParseEntityValue) xmlParseEntityValue__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlParseEntityValue) xmlParseEntityValue __attribute((alias("xmlParseEntityValue__internal_alias")));
+#define xmlParseEntityValue xmlParseEntityValue__internal_alias
+
+extern __typeof (xmlParseEnumeratedType) xmlParseEnumeratedType__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlParseEnumeratedType) xmlParseEnumeratedType __attribute((alias("xmlParseEnumeratedType__internal_alias")));
+#define xmlParseEnumeratedType xmlParseEnumeratedType__internal_alias
+
+extern __typeof (xmlParseEnumerationType) xmlParseEnumerationType__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlParseEnumerationType) xmlParseEnumerationType __attribute((alias("xmlParseEnumerationType__internal_alias")));
+#define xmlParseEnumerationType xmlParseEnumerationType__internal_alias
+
+extern __typeof (xmlParseExtParsedEnt) xmlParseExtParsedEnt__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlParseExtParsedEnt) xmlParseExtParsedEnt __attribute((alias("xmlParseExtParsedEnt__internal_alias")));
+#define xmlParseExtParsedEnt xmlParseExtParsedEnt__internal_alias
+
+extern __typeof (xmlParseExternalEntity) xmlParseExternalEntity__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlParseExternalEntity) xmlParseExternalEntity __attribute((alias("xmlParseExternalEntity__internal_alias")));
+#define xmlParseExternalEntity xmlParseExternalEntity__internal_alias
+
+extern __typeof (xmlParseExternalID) xmlParseExternalID__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlParseExternalID) xmlParseExternalID __attribute((alias("xmlParseExternalID__internal_alias")));
+#define xmlParseExternalID xmlParseExternalID__internal_alias
+
+extern __typeof (xmlParseExternalSubset) xmlParseExternalSubset__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlParseExternalSubset) xmlParseExternalSubset __attribute((alias("xmlParseExternalSubset__internal_alias")));
+#define xmlParseExternalSubset xmlParseExternalSubset__internal_alias
+
+extern __typeof (xmlParseFile) xmlParseFile__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlParseFile) xmlParseFile __attribute((alias("xmlParseFile__internal_alias")));
+#define xmlParseFile xmlParseFile__internal_alias
+
+extern __typeof (xmlParseMarkupDecl) xmlParseMarkupDecl__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlParseMarkupDecl) xmlParseMarkupDecl __attribute((alias("xmlParseMarkupDecl__internal_alias")));
+#define xmlParseMarkupDecl xmlParseMarkupDecl__internal_alias
+
+extern __typeof (xmlParseMemory) xmlParseMemory__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlParseMemory) xmlParseMemory __attribute((alias("xmlParseMemory__internal_alias")));
+#define xmlParseMemory xmlParseMemory__internal_alias
+
+extern __typeof (xmlParseMisc) xmlParseMisc__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlParseMisc) xmlParseMisc __attribute((alias("xmlParseMisc__internal_alias")));
+#define xmlParseMisc xmlParseMisc__internal_alias
+
+extern __typeof (xmlParseName) xmlParseName__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlParseName) xmlParseName __attribute((alias("xmlParseName__internal_alias")));
+#define xmlParseName xmlParseName__internal_alias
+
+extern __typeof (xmlParseNamespace) xmlParseNamespace__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlParseNamespace) xmlParseNamespace __attribute((alias("xmlParseNamespace__internal_alias")));
+#define xmlParseNamespace xmlParseNamespace__internal_alias
+
+extern __typeof (xmlParseNmtoken) xmlParseNmtoken__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlParseNmtoken) xmlParseNmtoken __attribute((alias("xmlParseNmtoken__internal_alias")));
+#define xmlParseNmtoken xmlParseNmtoken__internal_alias
+
+extern __typeof (xmlParseNotationDecl) xmlParseNotationDecl__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlParseNotationDecl) xmlParseNotationDecl __attribute((alias("xmlParseNotationDecl__internal_alias")));
+#define xmlParseNotationDecl xmlParseNotationDecl__internal_alias
+
+extern __typeof (xmlParseNotationType) xmlParseNotationType__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlParseNotationType) xmlParseNotationType __attribute((alias("xmlParseNotationType__internal_alias")));
+#define xmlParseNotationType xmlParseNotationType__internal_alias
+
+extern __typeof (xmlParsePEReference) xmlParsePEReference__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlParsePEReference) xmlParsePEReference __attribute((alias("xmlParsePEReference__internal_alias")));
+#define xmlParsePEReference xmlParsePEReference__internal_alias
+
+extern __typeof (xmlParsePI) xmlParsePI__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlParsePI) xmlParsePI __attribute((alias("xmlParsePI__internal_alias")));
+#define xmlParsePI xmlParsePI__internal_alias
+
+extern __typeof (xmlParsePITarget) xmlParsePITarget__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlParsePITarget) xmlParsePITarget __attribute((alias("xmlParsePITarget__internal_alias")));
+#define xmlParsePITarget xmlParsePITarget__internal_alias
+
+extern __typeof (xmlParsePubidLiteral) xmlParsePubidLiteral__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlParsePubidLiteral) xmlParsePubidLiteral __attribute((alias("xmlParsePubidLiteral__internal_alias")));
+#define xmlParsePubidLiteral xmlParsePubidLiteral__internal_alias
+
+extern __typeof (xmlParseQuotedString) xmlParseQuotedString__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlParseQuotedString) xmlParseQuotedString __attribute((alias("xmlParseQuotedString__internal_alias")));
+#define xmlParseQuotedString xmlParseQuotedString__internal_alias
+
+extern __typeof (xmlParseReference) xmlParseReference__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlParseReference) xmlParseReference __attribute((alias("xmlParseReference__internal_alias")));
+#define xmlParseReference xmlParseReference__internal_alias
+
+extern __typeof (xmlParseSDDecl) xmlParseSDDecl__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlParseSDDecl) xmlParseSDDecl __attribute((alias("xmlParseSDDecl__internal_alias")));
+#define xmlParseSDDecl xmlParseSDDecl__internal_alias
+
+extern __typeof (xmlParseStartTag) xmlParseStartTag__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlParseStartTag) xmlParseStartTag __attribute((alias("xmlParseStartTag__internal_alias")));
+#define xmlParseStartTag xmlParseStartTag__internal_alias
+
+extern __typeof (xmlParseSystemLiteral) xmlParseSystemLiteral__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlParseSystemLiteral) xmlParseSystemLiteral __attribute((alias("xmlParseSystemLiteral__internal_alias")));
+#define xmlParseSystemLiteral xmlParseSystemLiteral__internal_alias
+
+extern __typeof (xmlParseTextDecl) xmlParseTextDecl__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlParseTextDecl) xmlParseTextDecl __attribute((alias("xmlParseTextDecl__internal_alias")));
+#define xmlParseTextDecl xmlParseTextDecl__internal_alias
+
+extern __typeof (xmlParseURI) xmlParseURI__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlParseURI) xmlParseURI __attribute((alias("xmlParseURI__internal_alias")));
+#define xmlParseURI xmlParseURI__internal_alias
+
+extern __typeof (xmlParseURIReference) xmlParseURIReference__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlParseURIReference) xmlParseURIReference __attribute((alias("xmlParseURIReference__internal_alias")));
+#define xmlParseURIReference xmlParseURIReference__internal_alias
+
+extern __typeof (xmlParseVersionInfo) xmlParseVersionInfo__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlParseVersionInfo) xmlParseVersionInfo __attribute((alias("xmlParseVersionInfo__internal_alias")));
+#define xmlParseVersionInfo xmlParseVersionInfo__internal_alias
+
+extern __typeof (xmlParseVersionNum) xmlParseVersionNum__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlParseVersionNum) xmlParseVersionNum __attribute((alias("xmlParseVersionNum__internal_alias")));
+#define xmlParseVersionNum xmlParseVersionNum__internal_alias
+
+extern __typeof (xmlParseXMLDecl) xmlParseXMLDecl__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlParseXMLDecl) xmlParseXMLDecl __attribute((alias("xmlParseXMLDecl__internal_alias")));
+#define xmlParseXMLDecl xmlParseXMLDecl__internal_alias
+
+extern __typeof (xmlParserAddNodeInfo) xmlParserAddNodeInfo__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlParserAddNodeInfo) xmlParserAddNodeInfo __attribute((alias("xmlParserAddNodeInfo__internal_alias")));
+#define xmlParserAddNodeInfo xmlParserAddNodeInfo__internal_alias
+
+extern __typeof (xmlParserError) xmlParserError__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlParserError) xmlParserError __attribute((alias("xmlParserError__internal_alias")));
+#define xmlParserError xmlParserError__internal_alias
+
+extern __typeof (xmlParserFindNodeInfo) xmlParserFindNodeInfo__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlParserFindNodeInfo) xmlParserFindNodeInfo __attribute((alias("xmlParserFindNodeInfo__internal_alias")));
+#define xmlParserFindNodeInfo xmlParserFindNodeInfo__internal_alias
+
+extern __typeof (xmlParserFindNodeInfoIndex) xmlParserFindNodeInfoIndex__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlParserFindNodeInfoIndex) xmlParserFindNodeInfoIndex __attribute((alias("xmlParserFindNodeInfoIndex__internal_alias")));
+#define xmlParserFindNodeInfoIndex xmlParserFindNodeInfoIndex__internal_alias
+
+extern __typeof (xmlParserGetDirectory) xmlParserGetDirectory__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlParserGetDirectory) xmlParserGetDirectory __attribute((alias("xmlParserGetDirectory__internal_alias")));
+#define xmlParserGetDirectory xmlParserGetDirectory__internal_alias
+
+extern __typeof (xmlParserHandlePEReference) xmlParserHandlePEReference__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlParserHandlePEReference) xmlParserHandlePEReference __attribute((alias("xmlParserHandlePEReference__internal_alias")));
+#define xmlParserHandlePEReference xmlParserHandlePEReference__internal_alias
+
+extern __typeof (xmlParserHandleReference) xmlParserHandleReference__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlParserHandleReference) xmlParserHandleReference __attribute((alias("xmlParserHandleReference__internal_alias")));
+#define xmlParserHandleReference xmlParserHandleReference__internal_alias
+
+extern __typeof (xmlParserInputBufferCreateFd) xmlParserInputBufferCreateFd__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlParserInputBufferCreateFd) xmlParserInputBufferCreateFd __attribute((alias("xmlParserInputBufferCreateFd__internal_alias")));
+#define xmlParserInputBufferCreateFd xmlParserInputBufferCreateFd__internal_alias
+
+extern __typeof (xmlParserInputBufferCreateFile) xmlParserInputBufferCreateFile__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlParserInputBufferCreateFile) xmlParserInputBufferCreateFile __attribute((alias("xmlParserInputBufferCreateFile__internal_alias")));
+#define xmlParserInputBufferCreateFile xmlParserInputBufferCreateFile__internal_alias
+
+extern __typeof (xmlParserInputBufferCreateFilename) xmlParserInputBufferCreateFilename__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlParserInputBufferCreateFilename) xmlParserInputBufferCreateFilename __attribute((alias("xmlParserInputBufferCreateFilename__internal_alias")));
+#define xmlParserInputBufferCreateFilename xmlParserInputBufferCreateFilename__internal_alias
+
+extern __typeof (xmlParserInputBufferCreateFilenameDefault) xmlParserInputBufferCreateFilenameDefault__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlParserInputBufferCreateFilenameDefault) xmlParserInputBufferCreateFilenameDefault __attribute((alias("xmlParserInputBufferCreateFilenameDefault__internal_alias")));
+#define xmlParserInputBufferCreateFilenameDefault xmlParserInputBufferCreateFilenameDefault__internal_alias
+
+extern __typeof (xmlParserInputBufferCreateIO) xmlParserInputBufferCreateIO__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlParserInputBufferCreateIO) xmlParserInputBufferCreateIO __attribute((alias("xmlParserInputBufferCreateIO__internal_alias")));
+#define xmlParserInputBufferCreateIO xmlParserInputBufferCreateIO__internal_alias
+
+extern __typeof (xmlParserInputBufferCreateMem) xmlParserInputBufferCreateMem__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlParserInputBufferCreateMem) xmlParserInputBufferCreateMem __attribute((alias("xmlParserInputBufferCreateMem__internal_alias")));
+#define xmlParserInputBufferCreateMem xmlParserInputBufferCreateMem__internal_alias
+
+extern __typeof (xmlParserInputBufferCreateStatic) xmlParserInputBufferCreateStatic__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlParserInputBufferCreateStatic) xmlParserInputBufferCreateStatic __attribute((alias("xmlParserInputBufferCreateStatic__internal_alias")));
+#define xmlParserInputBufferCreateStatic xmlParserInputBufferCreateStatic__internal_alias
+
+extern __typeof (xmlParserInputBufferGrow) xmlParserInputBufferGrow__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlParserInputBufferGrow) xmlParserInputBufferGrow __attribute((alias("xmlParserInputBufferGrow__internal_alias")));
+#define xmlParserInputBufferGrow xmlParserInputBufferGrow__internal_alias
+
+extern __typeof (xmlParserInputBufferPush) xmlParserInputBufferPush__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlParserInputBufferPush) xmlParserInputBufferPush __attribute((alias("xmlParserInputBufferPush__internal_alias")));
+#define xmlParserInputBufferPush xmlParserInputBufferPush__internal_alias
+
+extern __typeof (xmlParserInputBufferRead) xmlParserInputBufferRead__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlParserInputBufferRead) xmlParserInputBufferRead __attribute((alias("xmlParserInputBufferRead__internal_alias")));
+#define xmlParserInputBufferRead xmlParserInputBufferRead__internal_alias
+
+extern __typeof (xmlParserInputGrow) xmlParserInputGrow__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlParserInputGrow) xmlParserInputGrow __attribute((alias("xmlParserInputGrow__internal_alias")));
+#define xmlParserInputGrow xmlParserInputGrow__internal_alias
+
+extern __typeof (xmlParserInputRead) xmlParserInputRead__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlParserInputRead) xmlParserInputRead __attribute((alias("xmlParserInputRead__internal_alias")));
+#define xmlParserInputRead xmlParserInputRead__internal_alias
+
+extern __typeof (xmlParserInputShrink) xmlParserInputShrink__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlParserInputShrink) xmlParserInputShrink __attribute((alias("xmlParserInputShrink__internal_alias")));
+#define xmlParserInputShrink xmlParserInputShrink__internal_alias
+
+extern __typeof (xmlParserPrintFileContext) xmlParserPrintFileContext__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlParserPrintFileContext) xmlParserPrintFileContext __attribute((alias("xmlParserPrintFileContext__internal_alias")));
+#define xmlParserPrintFileContext xmlParserPrintFileContext__internal_alias
+
+extern __typeof (xmlParserPrintFileInfo) xmlParserPrintFileInfo__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlParserPrintFileInfo) xmlParserPrintFileInfo __attribute((alias("xmlParserPrintFileInfo__internal_alias")));
+#define xmlParserPrintFileInfo xmlParserPrintFileInfo__internal_alias
+
+extern __typeof (xmlParserValidityError) xmlParserValidityError__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlParserValidityError) xmlParserValidityError __attribute((alias("xmlParserValidityError__internal_alias")));
+#define xmlParserValidityError xmlParserValidityError__internal_alias
+
+extern __typeof (xmlParserValidityWarning) xmlParserValidityWarning__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlParserValidityWarning) xmlParserValidityWarning __attribute((alias("xmlParserValidityWarning__internal_alias")));
+#define xmlParserValidityWarning xmlParserValidityWarning__internal_alias
+
+extern __typeof (xmlParserWarning) xmlParserWarning__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlParserWarning) xmlParserWarning __attribute((alias("xmlParserWarning__internal_alias")));
+#define xmlParserWarning xmlParserWarning__internal_alias
+
+#ifdef LIBXML_PATTERN_ENABLED
+extern __typeof (xmlPatternMatch) xmlPatternMatch__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlPatternMatch) xmlPatternMatch __attribute((alias("xmlPatternMatch__internal_alias")));
+#define xmlPatternMatch xmlPatternMatch__internal_alias
+#endif
+
+#ifdef LIBXML_PATTERN_ENABLED
+extern __typeof (xmlPatterncompile) xmlPatterncompile__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlPatterncompile) xmlPatterncompile __attribute((alias("xmlPatterncompile__internal_alias")));
+#define xmlPatterncompile xmlPatterncompile__internal_alias
+#endif
+
+extern __typeof (xmlPedanticParserDefault) xmlPedanticParserDefault__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlPedanticParserDefault) xmlPedanticParserDefault __attribute((alias("xmlPedanticParserDefault__internal_alias")));
+#define xmlPedanticParserDefault xmlPedanticParserDefault__internal_alias
+
+extern __typeof (xmlPopInput) xmlPopInput__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlPopInput) xmlPopInput __attribute((alias("xmlPopInput__internal_alias")));
+#define xmlPopInput xmlPopInput__internal_alias
+
+extern __typeof (xmlPopInputCallbacks) xmlPopInputCallbacks__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlPopInputCallbacks) xmlPopInputCallbacks __attribute((alias("xmlPopInputCallbacks__internal_alias")));
+#define xmlPopInputCallbacks xmlPopInputCallbacks__internal_alias
+
+extern __typeof (xmlPrintURI) xmlPrintURI__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlPrintURI) xmlPrintURI __attribute((alias("xmlPrintURI__internal_alias")));
+#define xmlPrintURI xmlPrintURI__internal_alias
+
+extern __typeof (xmlPushInput) xmlPushInput__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlPushInput) xmlPushInput __attribute((alias("xmlPushInput__internal_alias")));
+#define xmlPushInput xmlPushInput__internal_alias
+
+extern __typeof (xmlRMutexLock) xmlRMutexLock__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlRMutexLock) xmlRMutexLock __attribute((alias("xmlRMutexLock__internal_alias")));
+#define xmlRMutexLock xmlRMutexLock__internal_alias
+
+extern __typeof (xmlRMutexUnlock) xmlRMutexUnlock__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlRMutexUnlock) xmlRMutexUnlock __attribute((alias("xmlRMutexUnlock__internal_alias")));
+#define xmlRMutexUnlock xmlRMutexUnlock__internal_alias
+
+extern __typeof (xmlReadDoc) xmlReadDoc__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlReadDoc) xmlReadDoc __attribute((alias("xmlReadDoc__internal_alias")));
+#define xmlReadDoc xmlReadDoc__internal_alias
+
+extern __typeof (xmlReadFd) xmlReadFd__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlReadFd) xmlReadFd __attribute((alias("xmlReadFd__internal_alias")));
+#define xmlReadFd xmlReadFd__internal_alias
+
+extern __typeof (xmlReadFile) xmlReadFile__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlReadFile) xmlReadFile __attribute((alias("xmlReadFile__internal_alias")));
+#define xmlReadFile xmlReadFile__internal_alias
+
+extern __typeof (xmlReadIO) xmlReadIO__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlReadIO) xmlReadIO __attribute((alias("xmlReadIO__internal_alias")));
+#define xmlReadIO xmlReadIO__internal_alias
+
+extern __typeof (xmlReadMemory) xmlReadMemory__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlReadMemory) xmlReadMemory __attribute((alias("xmlReadMemory__internal_alias")));
+#define xmlReadMemory xmlReadMemory__internal_alias
+
+#ifdef LIBXML_READER_ENABLED
+extern __typeof (xmlReaderForDoc) xmlReaderForDoc__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlReaderForDoc) xmlReaderForDoc __attribute((alias("xmlReaderForDoc__internal_alias")));
+#define xmlReaderForDoc xmlReaderForDoc__internal_alias
+#endif
+
+#ifdef LIBXML_READER_ENABLED
+extern __typeof (xmlReaderForFd) xmlReaderForFd__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlReaderForFd) xmlReaderForFd __attribute((alias("xmlReaderForFd__internal_alias")));
+#define xmlReaderForFd xmlReaderForFd__internal_alias
+#endif
+
+#ifdef LIBXML_READER_ENABLED
+extern __typeof (xmlReaderForFile) xmlReaderForFile__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlReaderForFile) xmlReaderForFile __attribute((alias("xmlReaderForFile__internal_alias")));
+#define xmlReaderForFile xmlReaderForFile__internal_alias
+#endif
+
+#ifdef LIBXML_READER_ENABLED
+extern __typeof (xmlReaderForIO) xmlReaderForIO__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlReaderForIO) xmlReaderForIO __attribute((alias("xmlReaderForIO__internal_alias")));
+#define xmlReaderForIO xmlReaderForIO__internal_alias
+#endif
+
+#ifdef LIBXML_READER_ENABLED
+extern __typeof (xmlReaderForMemory) xmlReaderForMemory__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlReaderForMemory) xmlReaderForMemory __attribute((alias("xmlReaderForMemory__internal_alias")));
+#define xmlReaderForMemory xmlReaderForMemory__internal_alias
+#endif
+
+#ifdef LIBXML_READER_ENABLED
+extern __typeof (xmlReaderNewDoc) xmlReaderNewDoc__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlReaderNewDoc) xmlReaderNewDoc __attribute((alias("xmlReaderNewDoc__internal_alias")));
+#define xmlReaderNewDoc xmlReaderNewDoc__internal_alias
+#endif
+
+#ifdef LIBXML_READER_ENABLED
+extern __typeof (xmlReaderNewFd) xmlReaderNewFd__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlReaderNewFd) xmlReaderNewFd __attribute((alias("xmlReaderNewFd__internal_alias")));
+#define xmlReaderNewFd xmlReaderNewFd__internal_alias
+#endif
+
+#ifdef LIBXML_READER_ENABLED
+extern __typeof (xmlReaderNewFile) xmlReaderNewFile__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlReaderNewFile) xmlReaderNewFile __attribute((alias("xmlReaderNewFile__internal_alias")));
+#define xmlReaderNewFile xmlReaderNewFile__internal_alias
+#endif
+
+#ifdef LIBXML_READER_ENABLED
+extern __typeof (xmlReaderNewIO) xmlReaderNewIO__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlReaderNewIO) xmlReaderNewIO __attribute((alias("xmlReaderNewIO__internal_alias")));
+#define xmlReaderNewIO xmlReaderNewIO__internal_alias
+#endif
+
+#ifdef LIBXML_READER_ENABLED
+extern __typeof (xmlReaderNewMemory) xmlReaderNewMemory__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlReaderNewMemory) xmlReaderNewMemory __attribute((alias("xmlReaderNewMemory__internal_alias")));
+#define xmlReaderNewMemory xmlReaderNewMemory__internal_alias
+#endif
+
+#ifdef LIBXML_READER_ENABLED
+extern __typeof (xmlReaderNewWalker) xmlReaderNewWalker__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlReaderNewWalker) xmlReaderNewWalker __attribute((alias("xmlReaderNewWalker__internal_alias")));
+#define xmlReaderNewWalker xmlReaderNewWalker__internal_alias
+#endif
+
+#ifdef LIBXML_READER_ENABLED
+extern __typeof (xmlReaderWalker) xmlReaderWalker__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlReaderWalker) xmlReaderWalker __attribute((alias("xmlReaderWalker__internal_alias")));
+#define xmlReaderWalker xmlReaderWalker__internal_alias
+#endif
+
+extern __typeof (xmlReallocLoc) xmlReallocLoc__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlReallocLoc) xmlReallocLoc __attribute((alias("xmlReallocLoc__internal_alias")));
+#define xmlReallocLoc xmlReallocLoc__internal_alias
+
+extern __typeof (xmlReconciliateNs) xmlReconciliateNs__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlReconciliateNs) xmlReconciliateNs __attribute((alias("xmlReconciliateNs__internal_alias")));
+#define xmlReconciliateNs xmlReconciliateNs__internal_alias
+
+extern __typeof (xmlRecoverDoc) xmlRecoverDoc__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlRecoverDoc) xmlRecoverDoc __attribute((alias("xmlRecoverDoc__internal_alias")));
+#define xmlRecoverDoc xmlRecoverDoc__internal_alias
+
+extern __typeof (xmlRecoverFile) xmlRecoverFile__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlRecoverFile) xmlRecoverFile __attribute((alias("xmlRecoverFile__internal_alias")));
+#define xmlRecoverFile xmlRecoverFile__internal_alias
+
+extern __typeof (xmlRecoverMemory) xmlRecoverMemory__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlRecoverMemory) xmlRecoverMemory __attribute((alias("xmlRecoverMemory__internal_alias")));
+#define xmlRecoverMemory xmlRecoverMemory__internal_alias
+
+#ifdef LIBXML_REGEXP_ENABLED
+extern __typeof (xmlRegExecPushString) xmlRegExecPushString__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlRegExecPushString) xmlRegExecPushString __attribute((alias("xmlRegExecPushString__internal_alias")));
+#define xmlRegExecPushString xmlRegExecPushString__internal_alias
+#endif
+
+#ifdef LIBXML_REGEXP_ENABLED
+extern __typeof (xmlRegExecPushString2) xmlRegExecPushString2__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlRegExecPushString2) xmlRegExecPushString2 __attribute((alias("xmlRegExecPushString2__internal_alias")));
+#define xmlRegExecPushString2 xmlRegExecPushString2__internal_alias
+#endif
+
+#ifdef LIBXML_REGEXP_ENABLED
+extern __typeof (xmlRegFreeExecCtxt) xmlRegFreeExecCtxt__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlRegFreeExecCtxt) xmlRegFreeExecCtxt __attribute((alias("xmlRegFreeExecCtxt__internal_alias")));
+#define xmlRegFreeExecCtxt xmlRegFreeExecCtxt__internal_alias
+#endif
+
+#ifdef LIBXML_REGEXP_ENABLED
+extern __typeof (xmlRegFreeRegexp) xmlRegFreeRegexp__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlRegFreeRegexp) xmlRegFreeRegexp __attribute((alias("xmlRegFreeRegexp__internal_alias")));
+#define xmlRegFreeRegexp xmlRegFreeRegexp__internal_alias
+#endif
+
+#ifdef LIBXML_REGEXP_ENABLED
+extern __typeof (xmlRegNewExecCtxt) xmlRegNewExecCtxt__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlRegNewExecCtxt) xmlRegNewExecCtxt __attribute((alias("xmlRegNewExecCtxt__internal_alias")));
+#define xmlRegNewExecCtxt xmlRegNewExecCtxt__internal_alias
+#endif
+
+#ifdef LIBXML_REGEXP_ENABLED
+extern __typeof (xmlRegexpCompile) xmlRegexpCompile__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlRegexpCompile) xmlRegexpCompile __attribute((alias("xmlRegexpCompile__internal_alias")));
+#define xmlRegexpCompile xmlRegexpCompile__internal_alias
+#endif
+
+#ifdef LIBXML_REGEXP_ENABLED
+extern __typeof (xmlRegexpExec) xmlRegexpExec__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlRegexpExec) xmlRegexpExec __attribute((alias("xmlRegexpExec__internal_alias")));
+#define xmlRegexpExec xmlRegexpExec__internal_alias
+#endif
+
+#ifdef LIBXML_REGEXP_ENABLED
+extern __typeof (xmlRegexpIsDeterminist) xmlRegexpIsDeterminist__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlRegexpIsDeterminist) xmlRegexpIsDeterminist __attribute((alias("xmlRegexpIsDeterminist__internal_alias")));
+#define xmlRegexpIsDeterminist xmlRegexpIsDeterminist__internal_alias
+#endif
+
+#ifdef LIBXML_REGEXP_ENABLED
+extern __typeof (xmlRegexpPrint) xmlRegexpPrint__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlRegexpPrint) xmlRegexpPrint __attribute((alias("xmlRegexpPrint__internal_alias")));
+#define xmlRegexpPrint xmlRegexpPrint__internal_alias
+#endif
+
+extern __typeof (xmlRegisterCharEncodingHandler) xmlRegisterCharEncodingHandler__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlRegisterCharEncodingHandler) xmlRegisterCharEncodingHandler __attribute((alias("xmlRegisterCharEncodingHandler__internal_alias")));
+#define xmlRegisterCharEncodingHandler xmlRegisterCharEncodingHandler__internal_alias
+
+extern __typeof (xmlRegisterDefaultInputCallbacks) xmlRegisterDefaultInputCallbacks__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlRegisterDefaultInputCallbacks) xmlRegisterDefaultInputCallbacks __attribute((alias("xmlRegisterDefaultInputCallbacks__internal_alias")));
+#define xmlRegisterDefaultInputCallbacks xmlRegisterDefaultInputCallbacks__internal_alias
+
+#ifdef LIBXML_OUTPUT_ENABLED
+extern __typeof (xmlRegisterDefaultOutputCallbacks) xmlRegisterDefaultOutputCallbacks__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlRegisterDefaultOutputCallbacks) xmlRegisterDefaultOutputCallbacks __attribute((alias("xmlRegisterDefaultOutputCallbacks__internal_alias")));
+#define xmlRegisterDefaultOutputCallbacks xmlRegisterDefaultOutputCallbacks__internal_alias
+#endif
+
+#ifdef LIBXML_HTTP_ENABLED
+extern __typeof (xmlRegisterHTTPPostCallbacks) xmlRegisterHTTPPostCallbacks__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlRegisterHTTPPostCallbacks) xmlRegisterHTTPPostCallbacks __attribute((alias("xmlRegisterHTTPPostCallbacks__internal_alias")));
+#define xmlRegisterHTTPPostCallbacks xmlRegisterHTTPPostCallbacks__internal_alias
+#endif
+
+extern __typeof (xmlRegisterInputCallbacks) xmlRegisterInputCallbacks__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlRegisterInputCallbacks) xmlRegisterInputCallbacks __attribute((alias("xmlRegisterInputCallbacks__internal_alias")));
+#define xmlRegisterInputCallbacks xmlRegisterInputCallbacks__internal_alias
+
+extern __typeof (xmlRegisterNodeDefault) xmlRegisterNodeDefault__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlRegisterNodeDefault) xmlRegisterNodeDefault __attribute((alias("xmlRegisterNodeDefault__internal_alias")));
+#define xmlRegisterNodeDefault xmlRegisterNodeDefault__internal_alias
+
+#ifdef LIBXML_OUTPUT_ENABLED
+extern __typeof (xmlRegisterOutputCallbacks) xmlRegisterOutputCallbacks__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlRegisterOutputCallbacks) xmlRegisterOutputCallbacks __attribute((alias("xmlRegisterOutputCallbacks__internal_alias")));
+#define xmlRegisterOutputCallbacks xmlRegisterOutputCallbacks__internal_alias
+#endif
+
+#ifdef LIBXML_SCHEMAS_ENABLED
+extern __typeof (xmlRelaxNGCleanupTypes) xmlRelaxNGCleanupTypes__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlRelaxNGCleanupTypes) xmlRelaxNGCleanupTypes __attribute((alias("xmlRelaxNGCleanupTypes__internal_alias")));
+#define xmlRelaxNGCleanupTypes xmlRelaxNGCleanupTypes__internal_alias
+#endif
+
+#ifdef LIBXML_SCHEMAS_ENABLED
+#ifdef LIBXML_OUTPUT_ENABLED
+extern __typeof (xmlRelaxNGDump) xmlRelaxNGDump__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlRelaxNGDump) xmlRelaxNGDump __attribute((alias("xmlRelaxNGDump__internal_alias")));
+#define xmlRelaxNGDump xmlRelaxNGDump__internal_alias
+#endif
+#endif
+
+#ifdef LIBXML_SCHEMAS_ENABLED
+#ifdef LIBXML_OUTPUT_ENABLED
+extern __typeof (xmlRelaxNGDumpTree) xmlRelaxNGDumpTree__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlRelaxNGDumpTree) xmlRelaxNGDumpTree __attribute((alias("xmlRelaxNGDumpTree__internal_alias")));
+#define xmlRelaxNGDumpTree xmlRelaxNGDumpTree__internal_alias
+#endif
+#endif
+
+#ifdef LIBXML_SCHEMAS_ENABLED
+extern __typeof (xmlRelaxNGFree) xmlRelaxNGFree__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlRelaxNGFree) xmlRelaxNGFree __attribute((alias("xmlRelaxNGFree__internal_alias")));
+#define xmlRelaxNGFree xmlRelaxNGFree__internal_alias
+#endif
+
+#ifdef LIBXML_SCHEMAS_ENABLED
+extern __typeof (xmlRelaxNGFreeParserCtxt) xmlRelaxNGFreeParserCtxt__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlRelaxNGFreeParserCtxt) xmlRelaxNGFreeParserCtxt __attribute((alias("xmlRelaxNGFreeParserCtxt__internal_alias")));
+#define xmlRelaxNGFreeParserCtxt xmlRelaxNGFreeParserCtxt__internal_alias
+#endif
+
+#ifdef LIBXML_SCHEMAS_ENABLED
+extern __typeof (xmlRelaxNGFreeValidCtxt) xmlRelaxNGFreeValidCtxt__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlRelaxNGFreeValidCtxt) xmlRelaxNGFreeValidCtxt __attribute((alias("xmlRelaxNGFreeValidCtxt__internal_alias")));
+#define xmlRelaxNGFreeValidCtxt xmlRelaxNGFreeValidCtxt__internal_alias
+#endif
+
+#ifdef LIBXML_SCHEMAS_ENABLED
+extern __typeof (xmlRelaxNGGetParserErrors) xmlRelaxNGGetParserErrors__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlRelaxNGGetParserErrors) xmlRelaxNGGetParserErrors __attribute((alias("xmlRelaxNGGetParserErrors__internal_alias")));
+#define xmlRelaxNGGetParserErrors xmlRelaxNGGetParserErrors__internal_alias
+#endif
+
+#ifdef LIBXML_SCHEMAS_ENABLED
+extern __typeof (xmlRelaxNGGetValidErrors) xmlRelaxNGGetValidErrors__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlRelaxNGGetValidErrors) xmlRelaxNGGetValidErrors __attribute((alias("xmlRelaxNGGetValidErrors__internal_alias")));
+#define xmlRelaxNGGetValidErrors xmlRelaxNGGetValidErrors__internal_alias
+#endif
+
+#ifdef LIBXML_SCHEMAS_ENABLED
+extern __typeof (xmlRelaxNGNewDocParserCtxt) xmlRelaxNGNewDocParserCtxt__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlRelaxNGNewDocParserCtxt) xmlRelaxNGNewDocParserCtxt __attribute((alias("xmlRelaxNGNewDocParserCtxt__internal_alias")));
+#define xmlRelaxNGNewDocParserCtxt xmlRelaxNGNewDocParserCtxt__internal_alias
+#endif
+
+#ifdef LIBXML_SCHEMAS_ENABLED
+extern __typeof (xmlRelaxNGNewMemParserCtxt) xmlRelaxNGNewMemParserCtxt__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlRelaxNGNewMemParserCtxt) xmlRelaxNGNewMemParserCtxt __attribute((alias("xmlRelaxNGNewMemParserCtxt__internal_alias")));
+#define xmlRelaxNGNewMemParserCtxt xmlRelaxNGNewMemParserCtxt__internal_alias
+#endif
+
+#ifdef LIBXML_SCHEMAS_ENABLED
+extern __typeof (xmlRelaxNGNewParserCtxt) xmlRelaxNGNewParserCtxt__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlRelaxNGNewParserCtxt) xmlRelaxNGNewParserCtxt __attribute((alias("xmlRelaxNGNewParserCtxt__internal_alias")));
+#define xmlRelaxNGNewParserCtxt xmlRelaxNGNewParserCtxt__internal_alias
+#endif
+
+#ifdef LIBXML_SCHEMAS_ENABLED
+extern __typeof (xmlRelaxNGNewValidCtxt) xmlRelaxNGNewValidCtxt__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlRelaxNGNewValidCtxt) xmlRelaxNGNewValidCtxt __attribute((alias("xmlRelaxNGNewValidCtxt__internal_alias")));
+#define xmlRelaxNGNewValidCtxt xmlRelaxNGNewValidCtxt__internal_alias
+#endif
+
+#ifdef LIBXML_SCHEMAS_ENABLED
+extern __typeof (xmlRelaxNGParse) xmlRelaxNGParse__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlRelaxNGParse) xmlRelaxNGParse __attribute((alias("xmlRelaxNGParse__internal_alias")));
+#define xmlRelaxNGParse xmlRelaxNGParse__internal_alias
+#endif
+
+#ifdef LIBXML_SCHEMAS_ENABLED
+extern __typeof (xmlRelaxNGSetParserErrors) xmlRelaxNGSetParserErrors__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlRelaxNGSetParserErrors) xmlRelaxNGSetParserErrors __attribute((alias("xmlRelaxNGSetParserErrors__internal_alias")));
+#define xmlRelaxNGSetParserErrors xmlRelaxNGSetParserErrors__internal_alias
+#endif
+
+#ifdef LIBXML_SCHEMAS_ENABLED
+extern __typeof (xmlRelaxNGSetValidErrors) xmlRelaxNGSetValidErrors__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlRelaxNGSetValidErrors) xmlRelaxNGSetValidErrors __attribute((alias("xmlRelaxNGSetValidErrors__internal_alias")));
+#define xmlRelaxNGSetValidErrors xmlRelaxNGSetValidErrors__internal_alias
+#endif
+
+#ifdef LIBXML_SCHEMAS_ENABLED
+extern __typeof (xmlRelaxNGValidateDoc) xmlRelaxNGValidateDoc__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlRelaxNGValidateDoc) xmlRelaxNGValidateDoc __attribute((alias("xmlRelaxNGValidateDoc__internal_alias")));
+#define xmlRelaxNGValidateDoc xmlRelaxNGValidateDoc__internal_alias
+#endif
+
+#ifdef LIBXML_SCHEMAS_ENABLED
+extern __typeof (xmlRelaxNGValidateFullElement) xmlRelaxNGValidateFullElement__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlRelaxNGValidateFullElement) xmlRelaxNGValidateFullElement __attribute((alias("xmlRelaxNGValidateFullElement__internal_alias")));
+#define xmlRelaxNGValidateFullElement xmlRelaxNGValidateFullElement__internal_alias
+#endif
+
+#ifdef LIBXML_SCHEMAS_ENABLED
+extern __typeof (xmlRelaxNGValidatePopElement) xmlRelaxNGValidatePopElement__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlRelaxNGValidatePopElement) xmlRelaxNGValidatePopElement __attribute((alias("xmlRelaxNGValidatePopElement__internal_alias")));
+#define xmlRelaxNGValidatePopElement xmlRelaxNGValidatePopElement__internal_alias
+#endif
+
+#ifdef LIBXML_SCHEMAS_ENABLED
+extern __typeof (xmlRelaxNGValidatePushCData) xmlRelaxNGValidatePushCData__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlRelaxNGValidatePushCData) xmlRelaxNGValidatePushCData __attribute((alias("xmlRelaxNGValidatePushCData__internal_alias")));
+#define xmlRelaxNGValidatePushCData xmlRelaxNGValidatePushCData__internal_alias
+#endif
+
+#ifdef LIBXML_SCHEMAS_ENABLED
+extern __typeof (xmlRelaxNGValidatePushElement) xmlRelaxNGValidatePushElement__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlRelaxNGValidatePushElement) xmlRelaxNGValidatePushElement __attribute((alias("xmlRelaxNGValidatePushElement__internal_alias")));
+#define xmlRelaxNGValidatePushElement xmlRelaxNGValidatePushElement__internal_alias
+#endif
+
+#ifdef LIBXML_SCHEMAS_ENABLED
+extern __typeof (xmlRelaxParserSetFlag) xmlRelaxParserSetFlag__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlRelaxParserSetFlag) xmlRelaxParserSetFlag __attribute((alias("xmlRelaxParserSetFlag__internal_alias")));
+#define xmlRelaxParserSetFlag xmlRelaxParserSetFlag__internal_alias
+#endif
+
+extern __typeof (xmlRemoveID) xmlRemoveID__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlRemoveID) xmlRemoveID __attribute((alias("xmlRemoveID__internal_alias")));
+#define xmlRemoveID xmlRemoveID__internal_alias
+
+#ifdef LIBXML_TREE_ENABLED
+extern __typeof (xmlRemoveProp) xmlRemoveProp__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlRemoveProp) xmlRemoveProp __attribute((alias("xmlRemoveProp__internal_alias")));
+#define xmlRemoveProp xmlRemoveProp__internal_alias
+#endif
+
+extern __typeof (xmlRemoveRef) xmlRemoveRef__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlRemoveRef) xmlRemoveRef __attribute((alias("xmlRemoveRef__internal_alias")));
+#define xmlRemoveRef xmlRemoveRef__internal_alias
+
+#ifdef LIBXML_TREE_ENABLED
+extern __typeof (xmlReplaceNode) xmlReplaceNode__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlReplaceNode) xmlReplaceNode __attribute((alias("xmlReplaceNode__internal_alias")));
+#define xmlReplaceNode xmlReplaceNode__internal_alias
+#endif
+
+extern __typeof (xmlResetError) xmlResetError__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlResetError) xmlResetError __attribute((alias("xmlResetError__internal_alias")));
+#define xmlResetError xmlResetError__internal_alias
+
+extern __typeof (xmlResetLastError) xmlResetLastError__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlResetLastError) xmlResetLastError __attribute((alias("xmlResetLastError__internal_alias")));
+#define xmlResetLastError xmlResetLastError__internal_alias
+
+extern __typeof (xmlSAX2AttributeDecl) xmlSAX2AttributeDecl__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlSAX2AttributeDecl) xmlSAX2AttributeDecl __attribute((alias("xmlSAX2AttributeDecl__internal_alias")));
+#define xmlSAX2AttributeDecl xmlSAX2AttributeDecl__internal_alias
+
+extern __typeof (xmlSAX2CDataBlock) xmlSAX2CDataBlock__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlSAX2CDataBlock) xmlSAX2CDataBlock __attribute((alias("xmlSAX2CDataBlock__internal_alias")));
+#define xmlSAX2CDataBlock xmlSAX2CDataBlock__internal_alias
+
+extern __typeof (xmlSAX2Characters) xmlSAX2Characters__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlSAX2Characters) xmlSAX2Characters __attribute((alias("xmlSAX2Characters__internal_alias")));
+#define xmlSAX2Characters xmlSAX2Characters__internal_alias
+
+extern __typeof (xmlSAX2Comment) xmlSAX2Comment__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlSAX2Comment) xmlSAX2Comment __attribute((alias("xmlSAX2Comment__internal_alias")));
+#define xmlSAX2Comment xmlSAX2Comment__internal_alias
+
+extern __typeof (xmlSAX2ElementDecl) xmlSAX2ElementDecl__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlSAX2ElementDecl) xmlSAX2ElementDecl __attribute((alias("xmlSAX2ElementDecl__internal_alias")));
+#define xmlSAX2ElementDecl xmlSAX2ElementDecl__internal_alias
+
+extern __typeof (xmlSAX2EndDocument) xmlSAX2EndDocument__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlSAX2EndDocument) xmlSAX2EndDocument __attribute((alias("xmlSAX2EndDocument__internal_alias")));
+#define xmlSAX2EndDocument xmlSAX2EndDocument__internal_alias
+
+extern __typeof (xmlSAX2EndElement) xmlSAX2EndElement__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlSAX2EndElement) xmlSAX2EndElement __attribute((alias("xmlSAX2EndElement__internal_alias")));
+#define xmlSAX2EndElement xmlSAX2EndElement__internal_alias
+
+extern __typeof (xmlSAX2EndElementNs) xmlSAX2EndElementNs__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlSAX2EndElementNs) xmlSAX2EndElementNs __attribute((alias("xmlSAX2EndElementNs__internal_alias")));
+#define xmlSAX2EndElementNs xmlSAX2EndElementNs__internal_alias
+
+extern __typeof (xmlSAX2EntityDecl) xmlSAX2EntityDecl__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlSAX2EntityDecl) xmlSAX2EntityDecl __attribute((alias("xmlSAX2EntityDecl__internal_alias")));
+#define xmlSAX2EntityDecl xmlSAX2EntityDecl__internal_alias
+
+extern __typeof (xmlSAX2ExternalSubset) xmlSAX2ExternalSubset__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlSAX2ExternalSubset) xmlSAX2ExternalSubset __attribute((alias("xmlSAX2ExternalSubset__internal_alias")));
+#define xmlSAX2ExternalSubset xmlSAX2ExternalSubset__internal_alias
+
+extern __typeof (xmlSAX2GetColumnNumber) xmlSAX2GetColumnNumber__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlSAX2GetColumnNumber) xmlSAX2GetColumnNumber __attribute((alias("xmlSAX2GetColumnNumber__internal_alias")));
+#define xmlSAX2GetColumnNumber xmlSAX2GetColumnNumber__internal_alias
+
+extern __typeof (xmlSAX2GetEntity) xmlSAX2GetEntity__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlSAX2GetEntity) xmlSAX2GetEntity __attribute((alias("xmlSAX2GetEntity__internal_alias")));
+#define xmlSAX2GetEntity xmlSAX2GetEntity__internal_alias
+
+extern __typeof (xmlSAX2GetLineNumber) xmlSAX2GetLineNumber__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlSAX2GetLineNumber) xmlSAX2GetLineNumber __attribute((alias("xmlSAX2GetLineNumber__internal_alias")));
+#define xmlSAX2GetLineNumber xmlSAX2GetLineNumber__internal_alias
+
+extern __typeof (xmlSAX2GetParameterEntity) xmlSAX2GetParameterEntity__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlSAX2GetParameterEntity) xmlSAX2GetParameterEntity __attribute((alias("xmlSAX2GetParameterEntity__internal_alias")));
+#define xmlSAX2GetParameterEntity xmlSAX2GetParameterEntity__internal_alias
+
+extern __typeof (xmlSAX2GetPublicId) xmlSAX2GetPublicId__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlSAX2GetPublicId) xmlSAX2GetPublicId __attribute((alias("xmlSAX2GetPublicId__internal_alias")));
+#define xmlSAX2GetPublicId xmlSAX2GetPublicId__internal_alias
+
+extern __typeof (xmlSAX2GetSystemId) xmlSAX2GetSystemId__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlSAX2GetSystemId) xmlSAX2GetSystemId __attribute((alias("xmlSAX2GetSystemId__internal_alias")));
+#define xmlSAX2GetSystemId xmlSAX2GetSystemId__internal_alias
+
+extern __typeof (xmlSAX2HasExternalSubset) xmlSAX2HasExternalSubset__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlSAX2HasExternalSubset) xmlSAX2HasExternalSubset __attribute((alias("xmlSAX2HasExternalSubset__internal_alias")));
+#define xmlSAX2HasExternalSubset xmlSAX2HasExternalSubset__internal_alias
+
+extern __typeof (xmlSAX2HasInternalSubset) xmlSAX2HasInternalSubset__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlSAX2HasInternalSubset) xmlSAX2HasInternalSubset __attribute((alias("xmlSAX2HasInternalSubset__internal_alias")));
+#define xmlSAX2HasInternalSubset xmlSAX2HasInternalSubset__internal_alias
+
+extern __typeof (xmlSAX2IgnorableWhitespace) xmlSAX2IgnorableWhitespace__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlSAX2IgnorableWhitespace) xmlSAX2IgnorableWhitespace __attribute((alias("xmlSAX2IgnorableWhitespace__internal_alias")));
+#define xmlSAX2IgnorableWhitespace xmlSAX2IgnorableWhitespace__internal_alias
+
+extern __typeof (xmlSAX2InitDefaultSAXHandler) xmlSAX2InitDefaultSAXHandler__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlSAX2InitDefaultSAXHandler) xmlSAX2InitDefaultSAXHandler __attribute((alias("xmlSAX2InitDefaultSAXHandler__internal_alias")));
+#define xmlSAX2InitDefaultSAXHandler xmlSAX2InitDefaultSAXHandler__internal_alias
+
+#ifdef LIBXML_DOCB_ENABLED
+extern __typeof (xmlSAX2InitDocbDefaultSAXHandler) xmlSAX2InitDocbDefaultSAXHandler__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlSAX2InitDocbDefaultSAXHandler) xmlSAX2InitDocbDefaultSAXHandler __attribute((alias("xmlSAX2InitDocbDefaultSAXHandler__internal_alias")));
+#define xmlSAX2InitDocbDefaultSAXHandler xmlSAX2InitDocbDefaultSAXHandler__internal_alias
+#endif
+
+#ifdef LIBXML_HTML_ENABLED
+extern __typeof (xmlSAX2InitHtmlDefaultSAXHandler) xmlSAX2InitHtmlDefaultSAXHandler__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlSAX2InitHtmlDefaultSAXHandler) xmlSAX2InitHtmlDefaultSAXHandler __attribute((alias("xmlSAX2InitHtmlDefaultSAXHandler__internal_alias")));
+#define xmlSAX2InitHtmlDefaultSAXHandler xmlSAX2InitHtmlDefaultSAXHandler__internal_alias
+#endif
+
+extern __typeof (xmlSAX2InternalSubset) xmlSAX2InternalSubset__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlSAX2InternalSubset) xmlSAX2InternalSubset __attribute((alias("xmlSAX2InternalSubset__internal_alias")));
+#define xmlSAX2InternalSubset xmlSAX2InternalSubset__internal_alias
+
+extern __typeof (xmlSAX2IsStandalone) xmlSAX2IsStandalone__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlSAX2IsStandalone) xmlSAX2IsStandalone __attribute((alias("xmlSAX2IsStandalone__internal_alias")));
+#define xmlSAX2IsStandalone xmlSAX2IsStandalone__internal_alias
+
+extern __typeof (xmlSAX2NotationDecl) xmlSAX2NotationDecl__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlSAX2NotationDecl) xmlSAX2NotationDecl __attribute((alias("xmlSAX2NotationDecl__internal_alias")));
+#define xmlSAX2NotationDecl xmlSAX2NotationDecl__internal_alias
+
+extern __typeof (xmlSAX2ProcessingInstruction) xmlSAX2ProcessingInstruction__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlSAX2ProcessingInstruction) xmlSAX2ProcessingInstruction __attribute((alias("xmlSAX2ProcessingInstruction__internal_alias")));
+#define xmlSAX2ProcessingInstruction xmlSAX2ProcessingInstruction__internal_alias
+
+extern __typeof (xmlSAX2Reference) xmlSAX2Reference__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlSAX2Reference) xmlSAX2Reference __attribute((alias("xmlSAX2Reference__internal_alias")));
+#define xmlSAX2Reference xmlSAX2Reference__internal_alias
+
+extern __typeof (xmlSAX2ResolveEntity) xmlSAX2ResolveEntity__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlSAX2ResolveEntity) xmlSAX2ResolveEntity __attribute((alias("xmlSAX2ResolveEntity__internal_alias")));
+#define xmlSAX2ResolveEntity xmlSAX2ResolveEntity__internal_alias
+
+extern __typeof (xmlSAX2SetDocumentLocator) xmlSAX2SetDocumentLocator__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlSAX2SetDocumentLocator) xmlSAX2SetDocumentLocator __attribute((alias("xmlSAX2SetDocumentLocator__internal_alias")));
+#define xmlSAX2SetDocumentLocator xmlSAX2SetDocumentLocator__internal_alias
+
+extern __typeof (xmlSAX2StartDocument) xmlSAX2StartDocument__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlSAX2StartDocument) xmlSAX2StartDocument __attribute((alias("xmlSAX2StartDocument__internal_alias")));
+#define xmlSAX2StartDocument xmlSAX2StartDocument__internal_alias
+
+extern __typeof (xmlSAX2StartElement) xmlSAX2StartElement__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlSAX2StartElement) xmlSAX2StartElement __attribute((alias("xmlSAX2StartElement__internal_alias")));
+#define xmlSAX2StartElement xmlSAX2StartElement__internal_alias
+
+extern __typeof (xmlSAX2StartElementNs) xmlSAX2StartElementNs__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlSAX2StartElementNs) xmlSAX2StartElementNs __attribute((alias("xmlSAX2StartElementNs__internal_alias")));
+#define xmlSAX2StartElementNs xmlSAX2StartElementNs__internal_alias
+
+extern __typeof (xmlSAX2UnparsedEntityDecl) xmlSAX2UnparsedEntityDecl__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlSAX2UnparsedEntityDecl) xmlSAX2UnparsedEntityDecl __attribute((alias("xmlSAX2UnparsedEntityDecl__internal_alias")));
+#define xmlSAX2UnparsedEntityDecl xmlSAX2UnparsedEntityDecl__internal_alias
+
+extern __typeof (xmlSAXDefaultVersion) xmlSAXDefaultVersion__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlSAXDefaultVersion) xmlSAXDefaultVersion __attribute((alias("xmlSAXDefaultVersion__internal_alias")));
+#define xmlSAXDefaultVersion xmlSAXDefaultVersion__internal_alias
+
+extern __typeof (xmlSAXParseDTD) xmlSAXParseDTD__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlSAXParseDTD) xmlSAXParseDTD __attribute((alias("xmlSAXParseDTD__internal_alias")));
+#define xmlSAXParseDTD xmlSAXParseDTD__internal_alias
+
+extern __typeof (xmlSAXParseDoc) xmlSAXParseDoc__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlSAXParseDoc) xmlSAXParseDoc __attribute((alias("xmlSAXParseDoc__internal_alias")));
+#define xmlSAXParseDoc xmlSAXParseDoc__internal_alias
+
+extern __typeof (xmlSAXParseEntity) xmlSAXParseEntity__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlSAXParseEntity) xmlSAXParseEntity __attribute((alias("xmlSAXParseEntity__internal_alias")));
+#define xmlSAXParseEntity xmlSAXParseEntity__internal_alias
+
+extern __typeof (xmlSAXParseFile) xmlSAXParseFile__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlSAXParseFile) xmlSAXParseFile __attribute((alias("xmlSAXParseFile__internal_alias")));
+#define xmlSAXParseFile xmlSAXParseFile__internal_alias
+
+extern __typeof (xmlSAXParseFileWithData) xmlSAXParseFileWithData__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlSAXParseFileWithData) xmlSAXParseFileWithData __attribute((alias("xmlSAXParseFileWithData__internal_alias")));
+#define xmlSAXParseFileWithData xmlSAXParseFileWithData__internal_alias
+
+extern __typeof (xmlSAXParseMemory) xmlSAXParseMemory__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlSAXParseMemory) xmlSAXParseMemory __attribute((alias("xmlSAXParseMemory__internal_alias")));
+#define xmlSAXParseMemory xmlSAXParseMemory__internal_alias
+
+extern __typeof (xmlSAXParseMemoryWithData) xmlSAXParseMemoryWithData__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlSAXParseMemoryWithData) xmlSAXParseMemoryWithData __attribute((alias("xmlSAXParseMemoryWithData__internal_alias")));
+#define xmlSAXParseMemoryWithData xmlSAXParseMemoryWithData__internal_alias
+
+extern __typeof (xmlSAXUserParseFile) xmlSAXUserParseFile__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlSAXUserParseFile) xmlSAXUserParseFile __attribute((alias("xmlSAXUserParseFile__internal_alias")));
+#define xmlSAXUserParseFile xmlSAXUserParseFile__internal_alias
+
+extern __typeof (xmlSAXUserParseMemory) xmlSAXUserParseMemory__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlSAXUserParseMemory) xmlSAXUserParseMemory __attribute((alias("xmlSAXUserParseMemory__internal_alias")));
+#define xmlSAXUserParseMemory xmlSAXUserParseMemory__internal_alias
+
+extern __typeof (xmlSAXVersion) xmlSAXVersion__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlSAXVersion) xmlSAXVersion __attribute((alias("xmlSAXVersion__internal_alias")));
+#define xmlSAXVersion xmlSAXVersion__internal_alias
+
+#ifdef LIBXML_OUTPUT_ENABLED
+extern __typeof (xmlSaveClose) xmlSaveClose__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlSaveClose) xmlSaveClose __attribute((alias("xmlSaveClose__internal_alias")));
+#define xmlSaveClose xmlSaveClose__internal_alias
+#endif
+
+#ifdef LIBXML_OUTPUT_ENABLED
+extern __typeof (xmlSaveDoc) xmlSaveDoc__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlSaveDoc) xmlSaveDoc __attribute((alias("xmlSaveDoc__internal_alias")));
+#define xmlSaveDoc xmlSaveDoc__internal_alias
+#endif
+
+#ifdef LIBXML_OUTPUT_ENABLED
+extern __typeof (xmlSaveFile) xmlSaveFile__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlSaveFile) xmlSaveFile __attribute((alias("xmlSaveFile__internal_alias")));
+#define xmlSaveFile xmlSaveFile__internal_alias
+#endif
+
+#ifdef LIBXML_OUTPUT_ENABLED
+extern __typeof (xmlSaveFileEnc) xmlSaveFileEnc__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlSaveFileEnc) xmlSaveFileEnc __attribute((alias("xmlSaveFileEnc__internal_alias")));
+#define xmlSaveFileEnc xmlSaveFileEnc__internal_alias
+#endif
+
+#ifdef LIBXML_OUTPUT_ENABLED
+extern __typeof (xmlSaveFileTo) xmlSaveFileTo__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlSaveFileTo) xmlSaveFileTo __attribute((alias("xmlSaveFileTo__internal_alias")));
+#define xmlSaveFileTo xmlSaveFileTo__internal_alias
+#endif
+
+#ifdef LIBXML_OUTPUT_ENABLED
+extern __typeof (xmlSaveFlush) xmlSaveFlush__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlSaveFlush) xmlSaveFlush __attribute((alias("xmlSaveFlush__internal_alias")));
+#define xmlSaveFlush xmlSaveFlush__internal_alias
+#endif
+
+#ifdef LIBXML_OUTPUT_ENABLED
+extern __typeof (xmlSaveFormatFile) xmlSaveFormatFile__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlSaveFormatFile) xmlSaveFormatFile __attribute((alias("xmlSaveFormatFile__internal_alias")));
+#define xmlSaveFormatFile xmlSaveFormatFile__internal_alias
+#endif
+
+#ifdef LIBXML_OUTPUT_ENABLED
+extern __typeof (xmlSaveFormatFileEnc) xmlSaveFormatFileEnc__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlSaveFormatFileEnc) xmlSaveFormatFileEnc __attribute((alias("xmlSaveFormatFileEnc__internal_alias")));
+#define xmlSaveFormatFileEnc xmlSaveFormatFileEnc__internal_alias
+#endif
+
+#ifdef LIBXML_OUTPUT_ENABLED
+extern __typeof (xmlSaveFormatFileTo) xmlSaveFormatFileTo__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlSaveFormatFileTo) xmlSaveFormatFileTo __attribute((alias("xmlSaveFormatFileTo__internal_alias")));
+#define xmlSaveFormatFileTo xmlSaveFormatFileTo__internal_alias
+#endif
+
+#ifdef LIBXML_OUTPUT_ENABLED
+extern __typeof (xmlSaveSetAttrEscape) xmlSaveSetAttrEscape__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlSaveSetAttrEscape) xmlSaveSetAttrEscape __attribute((alias("xmlSaveSetAttrEscape__internal_alias")));
+#define xmlSaveSetAttrEscape xmlSaveSetAttrEscape__internal_alias
+#endif
+
+#ifdef LIBXML_OUTPUT_ENABLED
+extern __typeof (xmlSaveSetEscape) xmlSaveSetEscape__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlSaveSetEscape) xmlSaveSetEscape __attribute((alias("xmlSaveSetEscape__internal_alias")));
+#define xmlSaveSetEscape xmlSaveSetEscape__internal_alias
+#endif
+
+#ifdef LIBXML_OUTPUT_ENABLED
+extern __typeof (xmlSaveToFd) xmlSaveToFd__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlSaveToFd) xmlSaveToFd __attribute((alias("xmlSaveToFd__internal_alias")));
+#define xmlSaveToFd xmlSaveToFd__internal_alias
+#endif
+
+#ifdef LIBXML_OUTPUT_ENABLED
+extern __typeof (xmlSaveToFilename) xmlSaveToFilename__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlSaveToFilename) xmlSaveToFilename __attribute((alias("xmlSaveToFilename__internal_alias")));
+#define xmlSaveToFilename xmlSaveToFilename__internal_alias
+#endif
+
+#ifdef LIBXML_OUTPUT_ENABLED
+extern __typeof (xmlSaveToIO) xmlSaveToIO__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlSaveToIO) xmlSaveToIO __attribute((alias("xmlSaveToIO__internal_alias")));
+#define xmlSaveToIO xmlSaveToIO__internal_alias
+#endif
+
+#ifdef LIBXML_OUTPUT_ENABLED
+extern __typeof (xmlSaveTree) xmlSaveTree__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlSaveTree) xmlSaveTree __attribute((alias("xmlSaveTree__internal_alias")));
+#define xmlSaveTree xmlSaveTree__internal_alias
+#endif
+
+extern __typeof (xmlSaveUri) xmlSaveUri__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlSaveUri) xmlSaveUri __attribute((alias("xmlSaveUri__internal_alias")));
+#define xmlSaveUri xmlSaveUri__internal_alias
+
+extern __typeof (xmlScanName) xmlScanName__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlScanName) xmlScanName __attribute((alias("xmlScanName__internal_alias")));
+#define xmlScanName xmlScanName__internal_alias
+
+#ifdef LIBXML_SCHEMAS_ENABLED
+extern __typeof (xmlSchemaCheckFacet) xmlSchemaCheckFacet__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlSchemaCheckFacet) xmlSchemaCheckFacet __attribute((alias("xmlSchemaCheckFacet__internal_alias")));
+#define xmlSchemaCheckFacet xmlSchemaCheckFacet__internal_alias
+#endif
+
+#ifdef LIBXML_SCHEMAS_ENABLED
+extern __typeof (xmlSchemaCleanupTypes) xmlSchemaCleanupTypes__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlSchemaCleanupTypes) xmlSchemaCleanupTypes __attribute((alias("xmlSchemaCleanupTypes__internal_alias")));
+#define xmlSchemaCleanupTypes xmlSchemaCleanupTypes__internal_alias
+#endif
+
+#ifdef LIBXML_SCHEMAS_ENABLED
+extern __typeof (xmlSchemaCollapseString) xmlSchemaCollapseString__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlSchemaCollapseString) xmlSchemaCollapseString __attribute((alias("xmlSchemaCollapseString__internal_alias")));
+#define xmlSchemaCollapseString xmlSchemaCollapseString__internal_alias
+#endif
+
+#ifdef LIBXML_SCHEMAS_ENABLED
+extern __typeof (xmlSchemaCompareValues) xmlSchemaCompareValues__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlSchemaCompareValues) xmlSchemaCompareValues __attribute((alias("xmlSchemaCompareValues__internal_alias")));
+#define xmlSchemaCompareValues xmlSchemaCompareValues__internal_alias
+#endif
+
+#ifdef LIBXML_SCHEMAS_ENABLED
+#ifdef LIBXML_OUTPUT_ENABLED
+extern __typeof (xmlSchemaDump) xmlSchemaDump__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlSchemaDump) xmlSchemaDump __attribute((alias("xmlSchemaDump__internal_alias")));
+#define xmlSchemaDump xmlSchemaDump__internal_alias
+#endif
+#endif
+
+#ifdef LIBXML_SCHEMAS_ENABLED
+extern __typeof (xmlSchemaFree) xmlSchemaFree__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlSchemaFree) xmlSchemaFree __attribute((alias("xmlSchemaFree__internal_alias")));
+#define xmlSchemaFree xmlSchemaFree__internal_alias
+#endif
+
+#ifdef LIBXML_SCHEMAS_ENABLED
+extern __typeof (xmlSchemaFreeFacet) xmlSchemaFreeFacet__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlSchemaFreeFacet) xmlSchemaFreeFacet __attribute((alias("xmlSchemaFreeFacet__internal_alias")));
+#define xmlSchemaFreeFacet xmlSchemaFreeFacet__internal_alias
+#endif
+
+#ifdef LIBXML_SCHEMAS_ENABLED
+extern __typeof (xmlSchemaFreeParserCtxt) xmlSchemaFreeParserCtxt__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlSchemaFreeParserCtxt) xmlSchemaFreeParserCtxt __attribute((alias("xmlSchemaFreeParserCtxt__internal_alias")));
+#define xmlSchemaFreeParserCtxt xmlSchemaFreeParserCtxt__internal_alias
+#endif
+
+#ifdef LIBXML_SCHEMAS_ENABLED
+extern __typeof (xmlSchemaFreeType) xmlSchemaFreeType__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlSchemaFreeType) xmlSchemaFreeType __attribute((alias("xmlSchemaFreeType__internal_alias")));
+#define xmlSchemaFreeType xmlSchemaFreeType__internal_alias
+#endif
+
+#ifdef LIBXML_SCHEMAS_ENABLED
+extern __typeof (xmlSchemaFreeValidCtxt) xmlSchemaFreeValidCtxt__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlSchemaFreeValidCtxt) xmlSchemaFreeValidCtxt __attribute((alias("xmlSchemaFreeValidCtxt__internal_alias")));
+#define xmlSchemaFreeValidCtxt xmlSchemaFreeValidCtxt__internal_alias
+#endif
+
+#ifdef LIBXML_SCHEMAS_ENABLED
+extern __typeof (xmlSchemaFreeValue) xmlSchemaFreeValue__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlSchemaFreeValue) xmlSchemaFreeValue __attribute((alias("xmlSchemaFreeValue__internal_alias")));
+#define xmlSchemaFreeValue xmlSchemaFreeValue__internal_alias
+#endif
+
+#ifdef LIBXML_SCHEMAS_ENABLED
+extern __typeof (xmlSchemaFreeWildcard) xmlSchemaFreeWildcard__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlSchemaFreeWildcard) xmlSchemaFreeWildcard __attribute((alias("xmlSchemaFreeWildcard__internal_alias")));
+#define xmlSchemaFreeWildcard xmlSchemaFreeWildcard__internal_alias
+#endif
+
+#ifdef LIBXML_SCHEMAS_ENABLED
+extern __typeof (xmlSchemaGetBuiltInListSimpleTypeItemType) xmlSchemaGetBuiltInListSimpleTypeItemType__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlSchemaGetBuiltInListSimpleTypeItemType) xmlSchemaGetBuiltInListSimpleTypeItemType __attribute((alias("xmlSchemaGetBuiltInListSimpleTypeItemType__internal_alias")));
+#define xmlSchemaGetBuiltInListSimpleTypeItemType xmlSchemaGetBuiltInListSimpleTypeItemType__internal_alias
+#endif
+
+#ifdef LIBXML_SCHEMAS_ENABLED
+extern __typeof (xmlSchemaGetBuiltInType) xmlSchemaGetBuiltInType__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlSchemaGetBuiltInType) xmlSchemaGetBuiltInType __attribute((alias("xmlSchemaGetBuiltInType__internal_alias")));
+#define xmlSchemaGetBuiltInType xmlSchemaGetBuiltInType__internal_alias
+#endif
+
+#ifdef LIBXML_SCHEMAS_ENABLED
+extern __typeof (xmlSchemaGetPredefinedType) xmlSchemaGetPredefinedType__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlSchemaGetPredefinedType) xmlSchemaGetPredefinedType __attribute((alias("xmlSchemaGetPredefinedType__internal_alias")));
+#define xmlSchemaGetPredefinedType xmlSchemaGetPredefinedType__internal_alias
+#endif
+
+#ifdef LIBXML_SCHEMAS_ENABLED
+extern __typeof (xmlSchemaInitTypes) xmlSchemaInitTypes__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlSchemaInitTypes) xmlSchemaInitTypes __attribute((alias("xmlSchemaInitTypes__internal_alias")));
+#define xmlSchemaInitTypes xmlSchemaInitTypes__internal_alias
+#endif
+
+#ifdef LIBXML_SCHEMAS_ENABLED
+extern __typeof (xmlSchemaIsBuiltInTypeFacet) xmlSchemaIsBuiltInTypeFacet__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlSchemaIsBuiltInTypeFacet) xmlSchemaIsBuiltInTypeFacet __attribute((alias("xmlSchemaIsBuiltInTypeFacet__internal_alias")));
+#define xmlSchemaIsBuiltInTypeFacet xmlSchemaIsBuiltInTypeFacet__internal_alias
+#endif
+
+#ifdef LIBXML_SCHEMAS_ENABLED
+extern __typeof (xmlSchemaNewDocParserCtxt) xmlSchemaNewDocParserCtxt__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlSchemaNewDocParserCtxt) xmlSchemaNewDocParserCtxt __attribute((alias("xmlSchemaNewDocParserCtxt__internal_alias")));
+#define xmlSchemaNewDocParserCtxt xmlSchemaNewDocParserCtxt__internal_alias
+#endif
+
+#ifdef LIBXML_SCHEMAS_ENABLED
+extern __typeof (xmlSchemaNewFacet) xmlSchemaNewFacet__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlSchemaNewFacet) xmlSchemaNewFacet __attribute((alias("xmlSchemaNewFacet__internal_alias")));
+#define xmlSchemaNewFacet xmlSchemaNewFacet__internal_alias
+#endif
+
+#ifdef LIBXML_SCHEMAS_ENABLED
+extern __typeof (xmlSchemaNewMemParserCtxt) xmlSchemaNewMemParserCtxt__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlSchemaNewMemParserCtxt) xmlSchemaNewMemParserCtxt __attribute((alias("xmlSchemaNewMemParserCtxt__internal_alias")));
+#define xmlSchemaNewMemParserCtxt xmlSchemaNewMemParserCtxt__internal_alias
+#endif
+
+#ifdef LIBXML_SCHEMAS_ENABLED
+extern __typeof (xmlSchemaNewParserCtxt) xmlSchemaNewParserCtxt__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlSchemaNewParserCtxt) xmlSchemaNewParserCtxt __attribute((alias("xmlSchemaNewParserCtxt__internal_alias")));
+#define xmlSchemaNewParserCtxt xmlSchemaNewParserCtxt__internal_alias
+#endif
+
+#ifdef LIBXML_SCHEMAS_ENABLED
+extern __typeof (xmlSchemaNewValidCtxt) xmlSchemaNewValidCtxt__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlSchemaNewValidCtxt) xmlSchemaNewValidCtxt __attribute((alias("xmlSchemaNewValidCtxt__internal_alias")));
+#define xmlSchemaNewValidCtxt xmlSchemaNewValidCtxt__internal_alias
+#endif
+
+#ifdef LIBXML_SCHEMAS_ENABLED
+extern __typeof (xmlSchemaParse) xmlSchemaParse__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlSchemaParse) xmlSchemaParse __attribute((alias("xmlSchemaParse__internal_alias")));
+#define xmlSchemaParse xmlSchemaParse__internal_alias
+#endif
+
+#ifdef LIBXML_SCHEMAS_ENABLED
+extern __typeof (xmlSchemaSetParserErrors) xmlSchemaSetParserErrors__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlSchemaSetParserErrors) xmlSchemaSetParserErrors __attribute((alias("xmlSchemaSetParserErrors__internal_alias")));
+#define xmlSchemaSetParserErrors xmlSchemaSetParserErrors__internal_alias
+#endif
+
+#ifdef LIBXML_SCHEMAS_ENABLED
+extern __typeof (xmlSchemaSetValidErrors) xmlSchemaSetValidErrors__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlSchemaSetValidErrors) xmlSchemaSetValidErrors __attribute((alias("xmlSchemaSetValidErrors__internal_alias")));
+#define xmlSchemaSetValidErrors xmlSchemaSetValidErrors__internal_alias
+#endif
+
+#ifdef LIBXML_SCHEMAS_ENABLED
+extern __typeof (xmlSchemaValPredefTypeNode) xmlSchemaValPredefTypeNode__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlSchemaValPredefTypeNode) xmlSchemaValPredefTypeNode __attribute((alias("xmlSchemaValPredefTypeNode__internal_alias")));
+#define xmlSchemaValPredefTypeNode xmlSchemaValPredefTypeNode__internal_alias
+#endif
+
+#ifdef LIBXML_SCHEMAS_ENABLED
+extern __typeof (xmlSchemaValidateDoc) xmlSchemaValidateDoc__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlSchemaValidateDoc) xmlSchemaValidateDoc __attribute((alias("xmlSchemaValidateDoc__internal_alias")));
+#define xmlSchemaValidateDoc xmlSchemaValidateDoc__internal_alias
+#endif
+
+#ifdef LIBXML_SCHEMAS_ENABLED
+extern __typeof (xmlSchemaValidateFacet) xmlSchemaValidateFacet__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlSchemaValidateFacet) xmlSchemaValidateFacet __attribute((alias("xmlSchemaValidateFacet__internal_alias")));
+#define xmlSchemaValidateFacet xmlSchemaValidateFacet__internal_alias
+#endif
+
+#ifdef LIBXML_SCHEMAS_ENABLED
+extern __typeof (xmlSchemaValidateListSimpleTypeFacet) xmlSchemaValidateListSimpleTypeFacet__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlSchemaValidateListSimpleTypeFacet) xmlSchemaValidateListSimpleTypeFacet __attribute((alias("xmlSchemaValidateListSimpleTypeFacet__internal_alias")));
+#define xmlSchemaValidateListSimpleTypeFacet xmlSchemaValidateListSimpleTypeFacet__internal_alias
+#endif
+
+#ifdef LIBXML_SCHEMAS_ENABLED
+extern __typeof (xmlSchemaValidatePredefinedType) xmlSchemaValidatePredefinedType__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlSchemaValidatePredefinedType) xmlSchemaValidatePredefinedType __attribute((alias("xmlSchemaValidatePredefinedType__internal_alias")));
+#define xmlSchemaValidatePredefinedType xmlSchemaValidatePredefinedType__internal_alias
+#endif
+
+#ifdef LIBXML_SCHEMAS_ENABLED
+extern __typeof (xmlSchemaValidateStream) xmlSchemaValidateStream__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlSchemaValidateStream) xmlSchemaValidateStream __attribute((alias("xmlSchemaValidateStream__internal_alias")));
+#define xmlSchemaValidateStream xmlSchemaValidateStream__internal_alias
+#endif
+
+extern __typeof (xmlSearchNs) xmlSearchNs__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlSearchNs) xmlSearchNs __attribute((alias("xmlSearchNs__internal_alias")));
+#define xmlSearchNs xmlSearchNs__internal_alias
+
+extern __typeof (xmlSearchNsByHref) xmlSearchNsByHref__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlSearchNsByHref) xmlSearchNsByHref __attribute((alias("xmlSearchNsByHref__internal_alias")));
+#define xmlSearchNsByHref xmlSearchNsByHref__internal_alias
+
+extern __typeof (xmlSetBufferAllocationScheme) xmlSetBufferAllocationScheme__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlSetBufferAllocationScheme) xmlSetBufferAllocationScheme __attribute((alias("xmlSetBufferAllocationScheme__internal_alias")));
+#define xmlSetBufferAllocationScheme xmlSetBufferAllocationScheme__internal_alias
+
+extern __typeof (xmlSetCompressMode) xmlSetCompressMode__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlSetCompressMode) xmlSetCompressMode __attribute((alias("xmlSetCompressMode__internal_alias")));
+#define xmlSetCompressMode xmlSetCompressMode__internal_alias
+
+extern __typeof (xmlSetDocCompressMode) xmlSetDocCompressMode__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlSetDocCompressMode) xmlSetDocCompressMode __attribute((alias("xmlSetDocCompressMode__internal_alias")));
+#define xmlSetDocCompressMode xmlSetDocCompressMode__internal_alias
+
+extern __typeof (xmlSetEntityReferenceFunc) xmlSetEntityReferenceFunc__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlSetEntityReferenceFunc) xmlSetEntityReferenceFunc __attribute((alias("xmlSetEntityReferenceFunc__internal_alias")));
+#define xmlSetEntityReferenceFunc xmlSetEntityReferenceFunc__internal_alias
+
+extern __typeof (xmlSetExternalEntityLoader) xmlSetExternalEntityLoader__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlSetExternalEntityLoader) xmlSetExternalEntityLoader __attribute((alias("xmlSetExternalEntityLoader__internal_alias")));
+#define xmlSetExternalEntityLoader xmlSetExternalEntityLoader__internal_alias
+
+extern __typeof (xmlSetFeature) xmlSetFeature__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlSetFeature) xmlSetFeature __attribute((alias("xmlSetFeature__internal_alias")));
+#define xmlSetFeature xmlSetFeature__internal_alias
+
+extern __typeof (xmlSetGenericErrorFunc) xmlSetGenericErrorFunc__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlSetGenericErrorFunc) xmlSetGenericErrorFunc __attribute((alias("xmlSetGenericErrorFunc__internal_alias")));
+#define xmlSetGenericErrorFunc xmlSetGenericErrorFunc__internal_alias
+
+extern __typeof (xmlSetListDoc) xmlSetListDoc__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlSetListDoc) xmlSetListDoc __attribute((alias("xmlSetListDoc__internal_alias")));
+#define xmlSetListDoc xmlSetListDoc__internal_alias
+
+extern __typeof (xmlSetNs) xmlSetNs__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlSetNs) xmlSetNs __attribute((alias("xmlSetNs__internal_alias")));
+#define xmlSetNs xmlSetNs__internal_alias
+
+#ifdef LIBXML_TREE_ENABLED
+extern __typeof (xmlSetNsProp) xmlSetNsProp__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlSetNsProp) xmlSetNsProp __attribute((alias("xmlSetNsProp__internal_alias")));
+#define xmlSetNsProp xmlSetNsProp__internal_alias
+#endif
+
+#ifdef LIBXML_TREE_ENABLED
+extern __typeof (xmlSetProp) xmlSetProp__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlSetProp) xmlSetProp __attribute((alias("xmlSetProp__internal_alias")));
+#define xmlSetProp xmlSetProp__internal_alias
+#endif
+
+extern __typeof (xmlSetStructuredErrorFunc) xmlSetStructuredErrorFunc__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlSetStructuredErrorFunc) xmlSetStructuredErrorFunc __attribute((alias("xmlSetStructuredErrorFunc__internal_alias")));
+#define xmlSetStructuredErrorFunc xmlSetStructuredErrorFunc__internal_alias
+
+extern __typeof (xmlSetTreeDoc) xmlSetTreeDoc__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlSetTreeDoc) xmlSetTreeDoc __attribute((alias("xmlSetTreeDoc__internal_alias")));
+#define xmlSetTreeDoc xmlSetTreeDoc__internal_alias
+
+extern __typeof (xmlSetupParserForBuffer) xmlSetupParserForBuffer__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlSetupParserForBuffer) xmlSetupParserForBuffer __attribute((alias("xmlSetupParserForBuffer__internal_alias")));
+#define xmlSetupParserForBuffer xmlSetupParserForBuffer__internal_alias
+
+#ifdef LIBXML_DEBUG_ENABLED
+extern __typeof (xmlShell) xmlShell__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlShell) xmlShell __attribute((alias("xmlShell__internal_alias")));
+#define xmlShell xmlShell__internal_alias
+#endif
+
+#ifdef LIBXML_DEBUG_ENABLED
+extern __typeof (xmlShellBase) xmlShellBase__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlShellBase) xmlShellBase __attribute((alias("xmlShellBase__internal_alias")));
+#define xmlShellBase xmlShellBase__internal_alias
+#endif
+
+#ifdef LIBXML_DEBUG_ENABLED
+extern __typeof (xmlShellCat) xmlShellCat__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlShellCat) xmlShellCat __attribute((alias("xmlShellCat__internal_alias")));
+#define xmlShellCat xmlShellCat__internal_alias
+#endif
+
+#ifdef LIBXML_DEBUG_ENABLED
+extern __typeof (xmlShellDir) xmlShellDir__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlShellDir) xmlShellDir __attribute((alias("xmlShellDir__internal_alias")));
+#define xmlShellDir xmlShellDir__internal_alias
+#endif
+
+#ifdef LIBXML_DEBUG_ENABLED
+extern __typeof (xmlShellDu) xmlShellDu__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlShellDu) xmlShellDu __attribute((alias("xmlShellDu__internal_alias")));
+#define xmlShellDu xmlShellDu__internal_alias
+#endif
+
+#ifdef LIBXML_DEBUG_ENABLED
+extern __typeof (xmlShellList) xmlShellList__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlShellList) xmlShellList __attribute((alias("xmlShellList__internal_alias")));
+#define xmlShellList xmlShellList__internal_alias
+#endif
+
+#ifdef LIBXML_DEBUG_ENABLED
+extern __typeof (xmlShellLoad) xmlShellLoad__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlShellLoad) xmlShellLoad __attribute((alias("xmlShellLoad__internal_alias")));
+#define xmlShellLoad xmlShellLoad__internal_alias
+#endif
+
+#ifdef LIBXML_DEBUG_ENABLED
+extern __typeof (xmlShellPrintNode) xmlShellPrintNode__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlShellPrintNode) xmlShellPrintNode __attribute((alias("xmlShellPrintNode__internal_alias")));
+#define xmlShellPrintNode xmlShellPrintNode__internal_alias
+#endif
+
+#ifdef LIBXML_DEBUG_ENABLED
+extern __typeof (xmlShellPrintXPathError) xmlShellPrintXPathError__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlShellPrintXPathError) xmlShellPrintXPathError __attribute((alias("xmlShellPrintXPathError__internal_alias")));
+#define xmlShellPrintXPathError xmlShellPrintXPathError__internal_alias
+#endif
+
+#ifdef LIBXML_DEBUG_ENABLED
+extern __typeof (xmlShellPrintXPathResult) xmlShellPrintXPathResult__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlShellPrintXPathResult) xmlShellPrintXPathResult __attribute((alias("xmlShellPrintXPathResult__internal_alias")));
+#define xmlShellPrintXPathResult xmlShellPrintXPathResult__internal_alias
+#endif
+
+#ifdef LIBXML_DEBUG_ENABLED
+extern __typeof (xmlShellPwd) xmlShellPwd__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlShellPwd) xmlShellPwd __attribute((alias("xmlShellPwd__internal_alias")));
+#define xmlShellPwd xmlShellPwd__internal_alias
+#endif
+
+#ifdef LIBXML_DEBUG_ENABLED
+#ifdef LIBXML_OUTPUT_ENABLED
+extern __typeof (xmlShellSave) xmlShellSave__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlShellSave) xmlShellSave __attribute((alias("xmlShellSave__internal_alias")));
+#define xmlShellSave xmlShellSave__internal_alias
+#endif
+#endif
+
+#ifdef LIBXML_DEBUG_ENABLED
+extern __typeof (xmlShellValidate) xmlShellValidate__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlShellValidate) xmlShellValidate __attribute((alias("xmlShellValidate__internal_alias")));
+#define xmlShellValidate xmlShellValidate__internal_alias
+#endif
+
+#ifdef LIBXML_DEBUG_ENABLED
+#ifdef LIBXML_OUTPUT_ENABLED
+extern __typeof (xmlShellWrite) xmlShellWrite__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlShellWrite) xmlShellWrite __attribute((alias("xmlShellWrite__internal_alias")));
+#define xmlShellWrite xmlShellWrite__internal_alias
+#endif
+#endif
+
+extern __typeof (xmlSkipBlankChars) xmlSkipBlankChars__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlSkipBlankChars) xmlSkipBlankChars __attribute((alias("xmlSkipBlankChars__internal_alias")));
+#define xmlSkipBlankChars xmlSkipBlankChars__internal_alias
+
+extern __typeof (xmlSnprintfElementContent) xmlSnprintfElementContent__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlSnprintfElementContent) xmlSnprintfElementContent __attribute((alias("xmlSnprintfElementContent__internal_alias")));
+#define xmlSnprintfElementContent xmlSnprintfElementContent__internal_alias
+
+extern __typeof (xmlSplitQName) xmlSplitQName__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlSplitQName) xmlSplitQName __attribute((alias("xmlSplitQName__internal_alias")));
+#define xmlSplitQName xmlSplitQName__internal_alias
+
+extern __typeof (xmlSplitQName2) xmlSplitQName2__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlSplitQName2) xmlSplitQName2 __attribute((alias("xmlSplitQName2__internal_alias")));
+#define xmlSplitQName2 xmlSplitQName2__internal_alias
+
+extern __typeof (xmlSplitQName3) xmlSplitQName3__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlSplitQName3) xmlSplitQName3 __attribute((alias("xmlSplitQName3__internal_alias")));
+#define xmlSplitQName3 xmlSplitQName3__internal_alias
+
+extern __typeof (xmlSprintfElementContent) xmlSprintfElementContent__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlSprintfElementContent) xmlSprintfElementContent __attribute((alias("xmlSprintfElementContent__internal_alias")));
+#define xmlSprintfElementContent xmlSprintfElementContent__internal_alias
+
+extern __typeof (xmlStopParser) xmlStopParser__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlStopParser) xmlStopParser __attribute((alias("xmlStopParser__internal_alias")));
+#define xmlStopParser xmlStopParser__internal_alias
+
+extern __typeof (xmlStrEqual) xmlStrEqual__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlStrEqual) xmlStrEqual __attribute((alias("xmlStrEqual__internal_alias")));
+#define xmlStrEqual xmlStrEqual__internal_alias
+
+extern __typeof (xmlStrPrintf) xmlStrPrintf__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlStrPrintf) xmlStrPrintf __attribute((alias("xmlStrPrintf__internal_alias")));
+#define xmlStrPrintf xmlStrPrintf__internal_alias
+
+extern __typeof (xmlStrQEqual) xmlStrQEqual__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlStrQEqual) xmlStrQEqual __attribute((alias("xmlStrQEqual__internal_alias")));
+#define xmlStrQEqual xmlStrQEqual__internal_alias
+
+extern __typeof (xmlStrVPrintf) xmlStrVPrintf__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlStrVPrintf) xmlStrVPrintf __attribute((alias("xmlStrVPrintf__internal_alias")));
+#define xmlStrVPrintf xmlStrVPrintf__internal_alias
+
+extern __typeof (xmlStrcasecmp) xmlStrcasecmp__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlStrcasecmp) xmlStrcasecmp __attribute((alias("xmlStrcasecmp__internal_alias")));
+#define xmlStrcasecmp xmlStrcasecmp__internal_alias
+
+extern __typeof (xmlStrcasestr) xmlStrcasestr__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlStrcasestr) xmlStrcasestr __attribute((alias("xmlStrcasestr__internal_alias")));
+#define xmlStrcasestr xmlStrcasestr__internal_alias
+
+extern __typeof (xmlStrcat) xmlStrcat__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlStrcat) xmlStrcat __attribute((alias("xmlStrcat__internal_alias")));
+#define xmlStrcat xmlStrcat__internal_alias
+
+extern __typeof (xmlStrchr) xmlStrchr__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlStrchr) xmlStrchr __attribute((alias("xmlStrchr__internal_alias")));
+#define xmlStrchr xmlStrchr__internal_alias
+
+extern __typeof (xmlStrcmp) xmlStrcmp__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlStrcmp) xmlStrcmp __attribute((alias("xmlStrcmp__internal_alias")));
+#define xmlStrcmp xmlStrcmp__internal_alias
+
+extern __typeof (xmlStrdup) xmlStrdup__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlStrdup) xmlStrdup __attribute((alias("xmlStrdup__internal_alias")));
+#define xmlStrdup xmlStrdup__internal_alias
+
+extern __typeof (xmlStringCurrentChar) xmlStringCurrentChar__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlStringCurrentChar) xmlStringCurrentChar __attribute((alias("xmlStringCurrentChar__internal_alias")));
+#define xmlStringCurrentChar xmlStringCurrentChar__internal_alias
+
+extern __typeof (xmlStringDecodeEntities) xmlStringDecodeEntities__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlStringDecodeEntities) xmlStringDecodeEntities __attribute((alias("xmlStringDecodeEntities__internal_alias")));
+#define xmlStringDecodeEntities xmlStringDecodeEntities__internal_alias
+
+extern __typeof (xmlStringGetNodeList) xmlStringGetNodeList__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlStringGetNodeList) xmlStringGetNodeList __attribute((alias("xmlStringGetNodeList__internal_alias")));
+#define xmlStringGetNodeList xmlStringGetNodeList__internal_alias
+
+extern __typeof (xmlStringLenDecodeEntities) xmlStringLenDecodeEntities__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlStringLenDecodeEntities) xmlStringLenDecodeEntities __attribute((alias("xmlStringLenDecodeEntities__internal_alias")));
+#define xmlStringLenDecodeEntities xmlStringLenDecodeEntities__internal_alias
+
+extern __typeof (xmlStringLenGetNodeList) xmlStringLenGetNodeList__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlStringLenGetNodeList) xmlStringLenGetNodeList __attribute((alias("xmlStringLenGetNodeList__internal_alias")));
+#define xmlStringLenGetNodeList xmlStringLenGetNodeList__internal_alias
+
+extern __typeof (xmlStrlen) xmlStrlen__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlStrlen) xmlStrlen __attribute((alias("xmlStrlen__internal_alias")));
+#define xmlStrlen xmlStrlen__internal_alias
+
+extern __typeof (xmlStrncasecmp) xmlStrncasecmp__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlStrncasecmp) xmlStrncasecmp __attribute((alias("xmlStrncasecmp__internal_alias")));
+#define xmlStrncasecmp xmlStrncasecmp__internal_alias
+
+extern __typeof (xmlStrncat) xmlStrncat__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlStrncat) xmlStrncat __attribute((alias("xmlStrncat__internal_alias")));
+#define xmlStrncat xmlStrncat__internal_alias
+
+extern __typeof (xmlStrncatNew) xmlStrncatNew__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlStrncatNew) xmlStrncatNew __attribute((alias("xmlStrncatNew__internal_alias")));
+#define xmlStrncatNew xmlStrncatNew__internal_alias
+
+extern __typeof (xmlStrncmp) xmlStrncmp__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlStrncmp) xmlStrncmp __attribute((alias("xmlStrncmp__internal_alias")));
+#define xmlStrncmp xmlStrncmp__internal_alias
+
+extern __typeof (xmlStrndup) xmlStrndup__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlStrndup) xmlStrndup __attribute((alias("xmlStrndup__internal_alias")));
+#define xmlStrndup xmlStrndup__internal_alias
+
+extern __typeof (xmlStrstr) xmlStrstr__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlStrstr) xmlStrstr __attribute((alias("xmlStrstr__internal_alias")));
+#define xmlStrstr xmlStrstr__internal_alias
+
+extern __typeof (xmlStrsub) xmlStrsub__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlStrsub) xmlStrsub __attribute((alias("xmlStrsub__internal_alias")));
+#define xmlStrsub xmlStrsub__internal_alias
+
+extern __typeof (xmlSubstituteEntitiesDefault) xmlSubstituteEntitiesDefault__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlSubstituteEntitiesDefault) xmlSubstituteEntitiesDefault __attribute((alias("xmlSubstituteEntitiesDefault__internal_alias")));
+#define xmlSubstituteEntitiesDefault xmlSubstituteEntitiesDefault__internal_alias
+
+extern __typeof (xmlSwitchEncoding) xmlSwitchEncoding__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlSwitchEncoding) xmlSwitchEncoding __attribute((alias("xmlSwitchEncoding__internal_alias")));
+#define xmlSwitchEncoding xmlSwitchEncoding__internal_alias
+
+extern __typeof (xmlSwitchInputEncoding) xmlSwitchInputEncoding__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlSwitchInputEncoding) xmlSwitchInputEncoding __attribute((alias("xmlSwitchInputEncoding__internal_alias")));
+#define xmlSwitchInputEncoding xmlSwitchInputEncoding__internal_alias
+
+extern __typeof (xmlSwitchToEncoding) xmlSwitchToEncoding__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlSwitchToEncoding) xmlSwitchToEncoding __attribute((alias("xmlSwitchToEncoding__internal_alias")));
+#define xmlSwitchToEncoding xmlSwitchToEncoding__internal_alias
+
+extern __typeof (xmlTextConcat) xmlTextConcat__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlTextConcat) xmlTextConcat __attribute((alias("xmlTextConcat__internal_alias")));
+#define xmlTextConcat xmlTextConcat__internal_alias
+
+extern __typeof (xmlTextMerge) xmlTextMerge__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlTextMerge) xmlTextMerge __attribute((alias("xmlTextMerge__internal_alias")));
+#define xmlTextMerge xmlTextMerge__internal_alias
+
+#ifdef LIBXML_READER_ENABLED
+extern __typeof (xmlTextReaderAttributeCount) xmlTextReaderAttributeCount__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlTextReaderAttributeCount) xmlTextReaderAttributeCount __attribute((alias("xmlTextReaderAttributeCount__internal_alias")));
+#define xmlTextReaderAttributeCount xmlTextReaderAttributeCount__internal_alias
+#endif
+
+#ifdef LIBXML_READER_ENABLED
+extern __typeof (xmlTextReaderBaseUri) xmlTextReaderBaseUri__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlTextReaderBaseUri) xmlTextReaderBaseUri __attribute((alias("xmlTextReaderBaseUri__internal_alias")));
+#define xmlTextReaderBaseUri xmlTextReaderBaseUri__internal_alias
+#endif
+
+#ifdef LIBXML_READER_ENABLED
+extern __typeof (xmlTextReaderClose) xmlTextReaderClose__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlTextReaderClose) xmlTextReaderClose __attribute((alias("xmlTextReaderClose__internal_alias")));
+#define xmlTextReaderClose xmlTextReaderClose__internal_alias
+#endif
+
+#ifdef LIBXML_READER_ENABLED
+extern __typeof (xmlTextReaderConstBaseUri) xmlTextReaderConstBaseUri__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlTextReaderConstBaseUri) xmlTextReaderConstBaseUri __attribute((alias("xmlTextReaderConstBaseUri__internal_alias")));
+#define xmlTextReaderConstBaseUri xmlTextReaderConstBaseUri__internal_alias
+#endif
+
+#ifdef LIBXML_READER_ENABLED
+extern __typeof (xmlTextReaderConstLocalName) xmlTextReaderConstLocalName__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlTextReaderConstLocalName) xmlTextReaderConstLocalName __attribute((alias("xmlTextReaderConstLocalName__internal_alias")));
+#define xmlTextReaderConstLocalName xmlTextReaderConstLocalName__internal_alias
+#endif
+
+#ifdef LIBXML_READER_ENABLED
+extern __typeof (xmlTextReaderConstName) xmlTextReaderConstName__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlTextReaderConstName) xmlTextReaderConstName __attribute((alias("xmlTextReaderConstName__internal_alias")));
+#define xmlTextReaderConstName xmlTextReaderConstName__internal_alias
+#endif
+
+#ifdef LIBXML_READER_ENABLED
+extern __typeof (xmlTextReaderConstNamespaceUri) xmlTextReaderConstNamespaceUri__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlTextReaderConstNamespaceUri) xmlTextReaderConstNamespaceUri __attribute((alias("xmlTextReaderConstNamespaceUri__internal_alias")));
+#define xmlTextReaderConstNamespaceUri xmlTextReaderConstNamespaceUri__internal_alias
+#endif
+
+#ifdef LIBXML_READER_ENABLED
+extern __typeof (xmlTextReaderConstPrefix) xmlTextReaderConstPrefix__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlTextReaderConstPrefix) xmlTextReaderConstPrefix __attribute((alias("xmlTextReaderConstPrefix__internal_alias")));
+#define xmlTextReaderConstPrefix xmlTextReaderConstPrefix__internal_alias
+#endif
+
+#ifdef LIBXML_READER_ENABLED
+extern __typeof (xmlTextReaderConstString) xmlTextReaderConstString__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlTextReaderConstString) xmlTextReaderConstString __attribute((alias("xmlTextReaderConstString__internal_alias")));
+#define xmlTextReaderConstString xmlTextReaderConstString__internal_alias
+#endif
+
+#ifdef LIBXML_READER_ENABLED
+extern __typeof (xmlTextReaderConstValue) xmlTextReaderConstValue__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlTextReaderConstValue) xmlTextReaderConstValue __attribute((alias("xmlTextReaderConstValue__internal_alias")));
+#define xmlTextReaderConstValue xmlTextReaderConstValue__internal_alias
+#endif
+
+#ifdef LIBXML_READER_ENABLED
+extern __typeof (xmlTextReaderConstXmlLang) xmlTextReaderConstXmlLang__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlTextReaderConstXmlLang) xmlTextReaderConstXmlLang __attribute((alias("xmlTextReaderConstXmlLang__internal_alias")));
+#define xmlTextReaderConstXmlLang xmlTextReaderConstXmlLang__internal_alias
+#endif
+
+#ifdef LIBXML_READER_ENABLED
+extern __typeof (xmlTextReaderCurrentDoc) xmlTextReaderCurrentDoc__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlTextReaderCurrentDoc) xmlTextReaderCurrentDoc __attribute((alias("xmlTextReaderCurrentDoc__internal_alias")));
+#define xmlTextReaderCurrentDoc xmlTextReaderCurrentDoc__internal_alias
+#endif
+
+#ifdef LIBXML_READER_ENABLED
+extern __typeof (xmlTextReaderCurrentNode) xmlTextReaderCurrentNode__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlTextReaderCurrentNode) xmlTextReaderCurrentNode __attribute((alias("xmlTextReaderCurrentNode__internal_alias")));
+#define xmlTextReaderCurrentNode xmlTextReaderCurrentNode__internal_alias
+#endif
+
+#ifdef LIBXML_READER_ENABLED
+extern __typeof (xmlTextReaderDepth) xmlTextReaderDepth__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlTextReaderDepth) xmlTextReaderDepth __attribute((alias("xmlTextReaderDepth__internal_alias")));
+#define xmlTextReaderDepth xmlTextReaderDepth__internal_alias
+#endif
+
+#ifdef LIBXML_READER_ENABLED
+extern __typeof (xmlTextReaderExpand) xmlTextReaderExpand__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlTextReaderExpand) xmlTextReaderExpand __attribute((alias("xmlTextReaderExpand__internal_alias")));
+#define xmlTextReaderExpand xmlTextReaderExpand__internal_alias
+#endif
+
+#ifdef LIBXML_READER_ENABLED
+extern __typeof (xmlTextReaderGetAttribute) xmlTextReaderGetAttribute__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlTextReaderGetAttribute) xmlTextReaderGetAttribute __attribute((alias("xmlTextReaderGetAttribute__internal_alias")));
+#define xmlTextReaderGetAttribute xmlTextReaderGetAttribute__internal_alias
+#endif
+
+#ifdef LIBXML_READER_ENABLED
+extern __typeof (xmlTextReaderGetAttributeNo) xmlTextReaderGetAttributeNo__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlTextReaderGetAttributeNo) xmlTextReaderGetAttributeNo __attribute((alias("xmlTextReaderGetAttributeNo__internal_alias")));
+#define xmlTextReaderGetAttributeNo xmlTextReaderGetAttributeNo__internal_alias
+#endif
+
+#ifdef LIBXML_READER_ENABLED
+extern __typeof (xmlTextReaderGetAttributeNs) xmlTextReaderGetAttributeNs__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlTextReaderGetAttributeNs) xmlTextReaderGetAttributeNs __attribute((alias("xmlTextReaderGetAttributeNs__internal_alias")));
+#define xmlTextReaderGetAttributeNs xmlTextReaderGetAttributeNs__internal_alias
+#endif
+
+#ifdef LIBXML_READER_ENABLED
+extern __typeof (xmlTextReaderGetErrorHandler) xmlTextReaderGetErrorHandler__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlTextReaderGetErrorHandler) xmlTextReaderGetErrorHandler __attribute((alias("xmlTextReaderGetErrorHandler__internal_alias")));
+#define xmlTextReaderGetErrorHandler xmlTextReaderGetErrorHandler__internal_alias
+#endif
+
+#ifdef LIBXML_READER_ENABLED
+extern __typeof (xmlTextReaderGetParserProp) xmlTextReaderGetParserProp__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlTextReaderGetParserProp) xmlTextReaderGetParserProp __attribute((alias("xmlTextReaderGetParserProp__internal_alias")));
+#define xmlTextReaderGetParserProp xmlTextReaderGetParserProp__internal_alias
+#endif
+
+#ifdef LIBXML_READER_ENABLED
+extern __typeof (xmlTextReaderGetRemainder) xmlTextReaderGetRemainder__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlTextReaderGetRemainder) xmlTextReaderGetRemainder __attribute((alias("xmlTextReaderGetRemainder__internal_alias")));
+#define xmlTextReaderGetRemainder xmlTextReaderGetRemainder__internal_alias
+#endif
+
+#ifdef LIBXML_READER_ENABLED
+extern __typeof (xmlTextReaderHasAttributes) xmlTextReaderHasAttributes__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlTextReaderHasAttributes) xmlTextReaderHasAttributes __attribute((alias("xmlTextReaderHasAttributes__internal_alias")));
+#define xmlTextReaderHasAttributes xmlTextReaderHasAttributes__internal_alias
+#endif
+
+#ifdef LIBXML_READER_ENABLED
+extern __typeof (xmlTextReaderHasValue) xmlTextReaderHasValue__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlTextReaderHasValue) xmlTextReaderHasValue __attribute((alias("xmlTextReaderHasValue__internal_alias")));
+#define xmlTextReaderHasValue xmlTextReaderHasValue__internal_alias
+#endif
+
+#ifdef LIBXML_READER_ENABLED
+extern __typeof (xmlTextReaderIsDefault) xmlTextReaderIsDefault__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlTextReaderIsDefault) xmlTextReaderIsDefault __attribute((alias("xmlTextReaderIsDefault__internal_alias")));
+#define xmlTextReaderIsDefault xmlTextReaderIsDefault__internal_alias
+#endif
+
+#ifdef LIBXML_READER_ENABLED
+extern __typeof (xmlTextReaderIsEmptyElement) xmlTextReaderIsEmptyElement__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlTextReaderIsEmptyElement) xmlTextReaderIsEmptyElement __attribute((alias("xmlTextReaderIsEmptyElement__internal_alias")));
+#define xmlTextReaderIsEmptyElement xmlTextReaderIsEmptyElement__internal_alias
+#endif
+
+#ifdef LIBXML_READER_ENABLED
+extern __typeof (xmlTextReaderIsValid) xmlTextReaderIsValid__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlTextReaderIsValid) xmlTextReaderIsValid __attribute((alias("xmlTextReaderIsValid__internal_alias")));
+#define xmlTextReaderIsValid xmlTextReaderIsValid__internal_alias
+#endif
+
+#ifdef LIBXML_READER_ENABLED
+extern __typeof (xmlTextReaderLocalName) xmlTextReaderLocalName__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlTextReaderLocalName) xmlTextReaderLocalName __attribute((alias("xmlTextReaderLocalName__internal_alias")));
+#define xmlTextReaderLocalName xmlTextReaderLocalName__internal_alias
+#endif
+
+#ifdef LIBXML_READER_ENABLED
+extern __typeof (xmlTextReaderLocatorBaseURI) xmlTextReaderLocatorBaseURI__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlTextReaderLocatorBaseURI) xmlTextReaderLocatorBaseURI __attribute((alias("xmlTextReaderLocatorBaseURI__internal_alias")));
+#define xmlTextReaderLocatorBaseURI xmlTextReaderLocatorBaseURI__internal_alias
+#endif
+
+#ifdef LIBXML_READER_ENABLED
+extern __typeof (xmlTextReaderLocatorLineNumber) xmlTextReaderLocatorLineNumber__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlTextReaderLocatorLineNumber) xmlTextReaderLocatorLineNumber __attribute((alias("xmlTextReaderLocatorLineNumber__internal_alias")));
+#define xmlTextReaderLocatorLineNumber xmlTextReaderLocatorLineNumber__internal_alias
+#endif
+
+#ifdef LIBXML_READER_ENABLED
+extern __typeof (xmlTextReaderLookupNamespace) xmlTextReaderLookupNamespace__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlTextReaderLookupNamespace) xmlTextReaderLookupNamespace __attribute((alias("xmlTextReaderLookupNamespace__internal_alias")));
+#define xmlTextReaderLookupNamespace xmlTextReaderLookupNamespace__internal_alias
+#endif
+
+#ifdef LIBXML_READER_ENABLED
+extern __typeof (xmlTextReaderMoveToAttribute) xmlTextReaderMoveToAttribute__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlTextReaderMoveToAttribute) xmlTextReaderMoveToAttribute __attribute((alias("xmlTextReaderMoveToAttribute__internal_alias")));
+#define xmlTextReaderMoveToAttribute xmlTextReaderMoveToAttribute__internal_alias
+#endif
+
+#ifdef LIBXML_READER_ENABLED
+extern __typeof (xmlTextReaderMoveToAttributeNo) xmlTextReaderMoveToAttributeNo__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlTextReaderMoveToAttributeNo) xmlTextReaderMoveToAttributeNo __attribute((alias("xmlTextReaderMoveToAttributeNo__internal_alias")));
+#define xmlTextReaderMoveToAttributeNo xmlTextReaderMoveToAttributeNo__internal_alias
+#endif
+
+#ifdef LIBXML_READER_ENABLED
+extern __typeof (xmlTextReaderMoveToAttributeNs) xmlTextReaderMoveToAttributeNs__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlTextReaderMoveToAttributeNs) xmlTextReaderMoveToAttributeNs __attribute((alias("xmlTextReaderMoveToAttributeNs__internal_alias")));
+#define xmlTextReaderMoveToAttributeNs xmlTextReaderMoveToAttributeNs__internal_alias
+#endif
+
+#ifdef LIBXML_READER_ENABLED
+extern __typeof (xmlTextReaderMoveToElement) xmlTextReaderMoveToElement__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlTextReaderMoveToElement) xmlTextReaderMoveToElement __attribute((alias("xmlTextReaderMoveToElement__internal_alias")));
+#define xmlTextReaderMoveToElement xmlTextReaderMoveToElement__internal_alias
+#endif
+
+#ifdef LIBXML_READER_ENABLED
+extern __typeof (xmlTextReaderMoveToFirstAttribute) xmlTextReaderMoveToFirstAttribute__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlTextReaderMoveToFirstAttribute) xmlTextReaderMoveToFirstAttribute __attribute((alias("xmlTextReaderMoveToFirstAttribute__internal_alias")));
+#define xmlTextReaderMoveToFirstAttribute xmlTextReaderMoveToFirstAttribute__internal_alias
+#endif
+
+#ifdef LIBXML_READER_ENABLED
+extern __typeof (xmlTextReaderMoveToNextAttribute) xmlTextReaderMoveToNextAttribute__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlTextReaderMoveToNextAttribute) xmlTextReaderMoveToNextAttribute __attribute((alias("xmlTextReaderMoveToNextAttribute__internal_alias")));
+#define xmlTextReaderMoveToNextAttribute xmlTextReaderMoveToNextAttribute__internal_alias
+#endif
+
+#ifdef LIBXML_READER_ENABLED
+extern __typeof (xmlTextReaderName) xmlTextReaderName__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlTextReaderName) xmlTextReaderName __attribute((alias("xmlTextReaderName__internal_alias")));
+#define xmlTextReaderName xmlTextReaderName__internal_alias
+#endif
+
+#ifdef LIBXML_READER_ENABLED
+extern __typeof (xmlTextReaderNamespaceUri) xmlTextReaderNamespaceUri__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlTextReaderNamespaceUri) xmlTextReaderNamespaceUri __attribute((alias("xmlTextReaderNamespaceUri__internal_alias")));
+#define xmlTextReaderNamespaceUri xmlTextReaderNamespaceUri__internal_alias
+#endif
+
+#ifdef LIBXML_READER_ENABLED
+extern __typeof (xmlTextReaderNext) xmlTextReaderNext__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlTextReaderNext) xmlTextReaderNext __attribute((alias("xmlTextReaderNext__internal_alias")));
+#define xmlTextReaderNext xmlTextReaderNext__internal_alias
+#endif
+
+#ifdef LIBXML_READER_ENABLED
+extern __typeof (xmlTextReaderNextSibling) xmlTextReaderNextSibling__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlTextReaderNextSibling) xmlTextReaderNextSibling __attribute((alias("xmlTextReaderNextSibling__internal_alias")));
+#define xmlTextReaderNextSibling xmlTextReaderNextSibling__internal_alias
+#endif
+
+#ifdef LIBXML_READER_ENABLED
+extern __typeof (xmlTextReaderNodeType) xmlTextReaderNodeType__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlTextReaderNodeType) xmlTextReaderNodeType __attribute((alias("xmlTextReaderNodeType__internal_alias")));
+#define xmlTextReaderNodeType xmlTextReaderNodeType__internal_alias
+#endif
+
+#ifdef LIBXML_READER_ENABLED
+extern __typeof (xmlTextReaderNormalization) xmlTextReaderNormalization__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlTextReaderNormalization) xmlTextReaderNormalization __attribute((alias("xmlTextReaderNormalization__internal_alias")));
+#define xmlTextReaderNormalization xmlTextReaderNormalization__internal_alias
+#endif
+
+#ifdef LIBXML_READER_ENABLED
+extern __typeof (xmlTextReaderPrefix) xmlTextReaderPrefix__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlTextReaderPrefix) xmlTextReaderPrefix __attribute((alias("xmlTextReaderPrefix__internal_alias")));
+#define xmlTextReaderPrefix xmlTextReaderPrefix__internal_alias
+#endif
+
+#ifdef LIBXML_READER_ENABLED
+extern __typeof (xmlTextReaderPreserve) xmlTextReaderPreserve__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlTextReaderPreserve) xmlTextReaderPreserve __attribute((alias("xmlTextReaderPreserve__internal_alias")));
+#define xmlTextReaderPreserve xmlTextReaderPreserve__internal_alias
+#endif
+
+#ifdef LIBXML_READER_ENABLED
+extern __typeof (xmlTextReaderPreservePattern) xmlTextReaderPreservePattern__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlTextReaderPreservePattern) xmlTextReaderPreservePattern __attribute((alias("xmlTextReaderPreservePattern__internal_alias")));
+#define xmlTextReaderPreservePattern xmlTextReaderPreservePattern__internal_alias
+#endif
+
+#ifdef LIBXML_READER_ENABLED
+extern __typeof (xmlTextReaderQuoteChar) xmlTextReaderQuoteChar__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlTextReaderQuoteChar) xmlTextReaderQuoteChar __attribute((alias("xmlTextReaderQuoteChar__internal_alias")));
+#define xmlTextReaderQuoteChar xmlTextReaderQuoteChar__internal_alias
+#endif
+
+#ifdef LIBXML_READER_ENABLED
+extern __typeof (xmlTextReaderRead) xmlTextReaderRead__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlTextReaderRead) xmlTextReaderRead __attribute((alias("xmlTextReaderRead__internal_alias")));
+#define xmlTextReaderRead xmlTextReaderRead__internal_alias
+#endif
+
+#ifdef LIBXML_READER_ENABLED
+extern __typeof (xmlTextReaderReadAttributeValue) xmlTextReaderReadAttributeValue__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlTextReaderReadAttributeValue) xmlTextReaderReadAttributeValue __attribute((alias("xmlTextReaderReadAttributeValue__internal_alias")));
+#define xmlTextReaderReadAttributeValue xmlTextReaderReadAttributeValue__internal_alias
+#endif
+
+#ifdef LIBXML_READER_ENABLED
+extern __typeof (xmlTextReaderReadInnerXml) xmlTextReaderReadInnerXml__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlTextReaderReadInnerXml) xmlTextReaderReadInnerXml __attribute((alias("xmlTextReaderReadInnerXml__internal_alias")));
+#define xmlTextReaderReadInnerXml xmlTextReaderReadInnerXml__internal_alias
+#endif
+
+#ifdef LIBXML_READER_ENABLED
+extern __typeof (xmlTextReaderReadOuterXml) xmlTextReaderReadOuterXml__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlTextReaderReadOuterXml) xmlTextReaderReadOuterXml __attribute((alias("xmlTextReaderReadOuterXml__internal_alias")));
+#define xmlTextReaderReadOuterXml xmlTextReaderReadOuterXml__internal_alias
+#endif
+
+#ifdef LIBXML_READER_ENABLED
+extern __typeof (xmlTextReaderReadState) xmlTextReaderReadState__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlTextReaderReadState) xmlTextReaderReadState __attribute((alias("xmlTextReaderReadState__internal_alias")));
+#define xmlTextReaderReadState xmlTextReaderReadState__internal_alias
+#endif
+
+#ifdef LIBXML_READER_ENABLED
+extern __typeof (xmlTextReaderReadString) xmlTextReaderReadString__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlTextReaderReadString) xmlTextReaderReadString __attribute((alias("xmlTextReaderReadString__internal_alias")));
+#define xmlTextReaderReadString xmlTextReaderReadString__internal_alias
+#endif
+
+#ifdef LIBXML_READER_ENABLED
+#ifdef LIBXML_SCHEMAS_ENABLED
+extern __typeof (xmlTextReaderRelaxNGSetSchema) xmlTextReaderRelaxNGSetSchema__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlTextReaderRelaxNGSetSchema) xmlTextReaderRelaxNGSetSchema __attribute((alias("xmlTextReaderRelaxNGSetSchema__internal_alias")));
+#define xmlTextReaderRelaxNGSetSchema xmlTextReaderRelaxNGSetSchema__internal_alias
+#endif
+#endif
+
+#ifdef LIBXML_READER_ENABLED
+#ifdef LIBXML_SCHEMAS_ENABLED
+extern __typeof (xmlTextReaderRelaxNGValidate) xmlTextReaderRelaxNGValidate__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlTextReaderRelaxNGValidate) xmlTextReaderRelaxNGValidate __attribute((alias("xmlTextReaderRelaxNGValidate__internal_alias")));
+#define xmlTextReaderRelaxNGValidate xmlTextReaderRelaxNGValidate__internal_alias
+#endif
+#endif
+
+#ifdef LIBXML_READER_ENABLED
+extern __typeof (xmlTextReaderSetErrorHandler) xmlTextReaderSetErrorHandler__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlTextReaderSetErrorHandler) xmlTextReaderSetErrorHandler __attribute((alias("xmlTextReaderSetErrorHandler__internal_alias")));
+#define xmlTextReaderSetErrorHandler xmlTextReaderSetErrorHandler__internal_alias
+#endif
+
+#ifdef LIBXML_READER_ENABLED
+extern __typeof (xmlTextReaderSetParserProp) xmlTextReaderSetParserProp__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlTextReaderSetParserProp) xmlTextReaderSetParserProp __attribute((alias("xmlTextReaderSetParserProp__internal_alias")));
+#define xmlTextReaderSetParserProp xmlTextReaderSetParserProp__internal_alias
+#endif
+
+#ifdef LIBXML_READER_ENABLED
+extern __typeof (xmlTextReaderSetStructuredErrorHandler) xmlTextReaderSetStructuredErrorHandler__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlTextReaderSetStructuredErrorHandler) xmlTextReaderSetStructuredErrorHandler __attribute((alias("xmlTextReaderSetStructuredErrorHandler__internal_alias")));
+#define xmlTextReaderSetStructuredErrorHandler xmlTextReaderSetStructuredErrorHandler__internal_alias
+#endif
+
+#ifdef LIBXML_READER_ENABLED
+extern __typeof (xmlTextReaderValue) xmlTextReaderValue__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlTextReaderValue) xmlTextReaderValue __attribute((alias("xmlTextReaderValue__internal_alias")));
+#define xmlTextReaderValue xmlTextReaderValue__internal_alias
+#endif
+
+#ifdef LIBXML_READER_ENABLED
+extern __typeof (xmlTextReaderXmlLang) xmlTextReaderXmlLang__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlTextReaderXmlLang) xmlTextReaderXmlLang __attribute((alias("xmlTextReaderXmlLang__internal_alias")));
+#define xmlTextReaderXmlLang xmlTextReaderXmlLang__internal_alias
+#endif
+
+#ifdef LIBXML_WRITER_ENABLED
+extern __typeof (xmlTextWriterEndAttribute) xmlTextWriterEndAttribute__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlTextWriterEndAttribute) xmlTextWriterEndAttribute __attribute((alias("xmlTextWriterEndAttribute__internal_alias")));
+#define xmlTextWriterEndAttribute xmlTextWriterEndAttribute__internal_alias
+#endif
+
+#ifdef LIBXML_WRITER_ENABLED
+extern __typeof (xmlTextWriterEndCDATA) xmlTextWriterEndCDATA__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlTextWriterEndCDATA) xmlTextWriterEndCDATA __attribute((alias("xmlTextWriterEndCDATA__internal_alias")));
+#define xmlTextWriterEndCDATA xmlTextWriterEndCDATA__internal_alias
+#endif
+
+#ifdef LIBXML_WRITER_ENABLED
+extern __typeof (xmlTextWriterEndComment) xmlTextWriterEndComment__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlTextWriterEndComment) xmlTextWriterEndComment __attribute((alias("xmlTextWriterEndComment__internal_alias")));
+#define xmlTextWriterEndComment xmlTextWriterEndComment__internal_alias
+#endif
+
+#ifdef LIBXML_WRITER_ENABLED
+extern __typeof (xmlTextWriterEndDTD) xmlTextWriterEndDTD__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlTextWriterEndDTD) xmlTextWriterEndDTD __attribute((alias("xmlTextWriterEndDTD__internal_alias")));
+#define xmlTextWriterEndDTD xmlTextWriterEndDTD__internal_alias
+#endif
+
+#ifdef LIBXML_WRITER_ENABLED
+extern __typeof (xmlTextWriterEndDTDAttlist) xmlTextWriterEndDTDAttlist__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlTextWriterEndDTDAttlist) xmlTextWriterEndDTDAttlist __attribute((alias("xmlTextWriterEndDTDAttlist__internal_alias")));
+#define xmlTextWriterEndDTDAttlist xmlTextWriterEndDTDAttlist__internal_alias
+#endif
+
+#ifdef LIBXML_WRITER_ENABLED
+extern __typeof (xmlTextWriterEndDTDElement) xmlTextWriterEndDTDElement__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlTextWriterEndDTDElement) xmlTextWriterEndDTDElement __attribute((alias("xmlTextWriterEndDTDElement__internal_alias")));
+#define xmlTextWriterEndDTDElement xmlTextWriterEndDTDElement__internal_alias
+#endif
+
+#ifdef LIBXML_WRITER_ENABLED
+extern __typeof (xmlTextWriterEndDTDEntity) xmlTextWriterEndDTDEntity__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlTextWriterEndDTDEntity) xmlTextWriterEndDTDEntity __attribute((alias("xmlTextWriterEndDTDEntity__internal_alias")));
+#define xmlTextWriterEndDTDEntity xmlTextWriterEndDTDEntity__internal_alias
+#endif
+
+#ifdef LIBXML_WRITER_ENABLED
+extern __typeof (xmlTextWriterEndDocument) xmlTextWriterEndDocument__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlTextWriterEndDocument) xmlTextWriterEndDocument __attribute((alias("xmlTextWriterEndDocument__internal_alias")));
+#define xmlTextWriterEndDocument xmlTextWriterEndDocument__internal_alias
+#endif
+
+#ifdef LIBXML_WRITER_ENABLED
+extern __typeof (xmlTextWriterEndElement) xmlTextWriterEndElement__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlTextWriterEndElement) xmlTextWriterEndElement __attribute((alias("xmlTextWriterEndElement__internal_alias")));
+#define xmlTextWriterEndElement xmlTextWriterEndElement__internal_alias
+#endif
+
+#ifdef LIBXML_WRITER_ENABLED
+extern __typeof (xmlTextWriterEndPI) xmlTextWriterEndPI__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlTextWriterEndPI) xmlTextWriterEndPI __attribute((alias("xmlTextWriterEndPI__internal_alias")));
+#define xmlTextWriterEndPI xmlTextWriterEndPI__internal_alias
+#endif
+
+#ifdef LIBXML_WRITER_ENABLED
+extern __typeof (xmlTextWriterFlush) xmlTextWriterFlush__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlTextWriterFlush) xmlTextWriterFlush __attribute((alias("xmlTextWriterFlush__internal_alias")));
+#define xmlTextWriterFlush xmlTextWriterFlush__internal_alias
+#endif
+
+#ifdef LIBXML_WRITER_ENABLED
+extern __typeof (xmlTextWriterFullEndElement) xmlTextWriterFullEndElement__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlTextWriterFullEndElement) xmlTextWriterFullEndElement __attribute((alias("xmlTextWriterFullEndElement__internal_alias")));
+#define xmlTextWriterFullEndElement xmlTextWriterFullEndElement__internal_alias
+#endif
+
+#ifdef LIBXML_WRITER_ENABLED
+extern __typeof (xmlTextWriterSetIndent) xmlTextWriterSetIndent__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlTextWriterSetIndent) xmlTextWriterSetIndent __attribute((alias("xmlTextWriterSetIndent__internal_alias")));
+#define xmlTextWriterSetIndent xmlTextWriterSetIndent__internal_alias
+#endif
+
+#ifdef LIBXML_WRITER_ENABLED
+extern __typeof (xmlTextWriterSetIndentString) xmlTextWriterSetIndentString__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlTextWriterSetIndentString) xmlTextWriterSetIndentString __attribute((alias("xmlTextWriterSetIndentString__internal_alias")));
+#define xmlTextWriterSetIndentString xmlTextWriterSetIndentString__internal_alias
+#endif
+
+#ifdef LIBXML_WRITER_ENABLED
+extern __typeof (xmlTextWriterStartAttribute) xmlTextWriterStartAttribute__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlTextWriterStartAttribute) xmlTextWriterStartAttribute __attribute((alias("xmlTextWriterStartAttribute__internal_alias")));
+#define xmlTextWriterStartAttribute xmlTextWriterStartAttribute__internal_alias
+#endif
+
+#ifdef LIBXML_WRITER_ENABLED
+extern __typeof (xmlTextWriterStartAttributeNS) xmlTextWriterStartAttributeNS__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlTextWriterStartAttributeNS) xmlTextWriterStartAttributeNS __attribute((alias("xmlTextWriterStartAttributeNS__internal_alias")));
+#define xmlTextWriterStartAttributeNS xmlTextWriterStartAttributeNS__internal_alias
+#endif
+
+#ifdef LIBXML_WRITER_ENABLED
+extern __typeof (xmlTextWriterStartCDATA) xmlTextWriterStartCDATA__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlTextWriterStartCDATA) xmlTextWriterStartCDATA __attribute((alias("xmlTextWriterStartCDATA__internal_alias")));
+#define xmlTextWriterStartCDATA xmlTextWriterStartCDATA__internal_alias
+#endif
+
+#ifdef LIBXML_WRITER_ENABLED
+extern __typeof (xmlTextWriterStartComment) xmlTextWriterStartComment__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlTextWriterStartComment) xmlTextWriterStartComment __attribute((alias("xmlTextWriterStartComment__internal_alias")));
+#define xmlTextWriterStartComment xmlTextWriterStartComment__internal_alias
+#endif
+
+#ifdef LIBXML_WRITER_ENABLED
+extern __typeof (xmlTextWriterStartDTD) xmlTextWriterStartDTD__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlTextWriterStartDTD) xmlTextWriterStartDTD __attribute((alias("xmlTextWriterStartDTD__internal_alias")));
+#define xmlTextWriterStartDTD xmlTextWriterStartDTD__internal_alias
+#endif
+
+#ifdef LIBXML_WRITER_ENABLED
+extern __typeof (xmlTextWriterStartDTDAttlist) xmlTextWriterStartDTDAttlist__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlTextWriterStartDTDAttlist) xmlTextWriterStartDTDAttlist __attribute((alias("xmlTextWriterStartDTDAttlist__internal_alias")));
+#define xmlTextWriterStartDTDAttlist xmlTextWriterStartDTDAttlist__internal_alias
+#endif
+
+#ifdef LIBXML_WRITER_ENABLED
+extern __typeof (xmlTextWriterStartDTDElement) xmlTextWriterStartDTDElement__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlTextWriterStartDTDElement) xmlTextWriterStartDTDElement __attribute((alias("xmlTextWriterStartDTDElement__internal_alias")));
+#define xmlTextWriterStartDTDElement xmlTextWriterStartDTDElement__internal_alias
+#endif
+
+#ifdef LIBXML_WRITER_ENABLED
+extern __typeof (xmlTextWriterStartDTDEntity) xmlTextWriterStartDTDEntity__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlTextWriterStartDTDEntity) xmlTextWriterStartDTDEntity __attribute((alias("xmlTextWriterStartDTDEntity__internal_alias")));
+#define xmlTextWriterStartDTDEntity xmlTextWriterStartDTDEntity__internal_alias
+#endif
+
+#ifdef LIBXML_WRITER_ENABLED
+extern __typeof (xmlTextWriterStartDocument) xmlTextWriterStartDocument__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlTextWriterStartDocument) xmlTextWriterStartDocument __attribute((alias("xmlTextWriterStartDocument__internal_alias")));
+#define xmlTextWriterStartDocument xmlTextWriterStartDocument__internal_alias
+#endif
+
+#ifdef LIBXML_WRITER_ENABLED
+extern __typeof (xmlTextWriterStartElement) xmlTextWriterStartElement__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlTextWriterStartElement) xmlTextWriterStartElement __attribute((alias("xmlTextWriterStartElement__internal_alias")));
+#define xmlTextWriterStartElement xmlTextWriterStartElement__internal_alias
+#endif
+
+#ifdef LIBXML_WRITER_ENABLED
+extern __typeof (xmlTextWriterStartElementNS) xmlTextWriterStartElementNS__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlTextWriterStartElementNS) xmlTextWriterStartElementNS __attribute((alias("xmlTextWriterStartElementNS__internal_alias")));
+#define xmlTextWriterStartElementNS xmlTextWriterStartElementNS__internal_alias
+#endif
+
+#ifdef LIBXML_WRITER_ENABLED
+extern __typeof (xmlTextWriterStartPI) xmlTextWriterStartPI__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlTextWriterStartPI) xmlTextWriterStartPI __attribute((alias("xmlTextWriterStartPI__internal_alias")));
+#define xmlTextWriterStartPI xmlTextWriterStartPI__internal_alias
+#endif
+
+#ifdef LIBXML_WRITER_ENABLED
+extern __typeof (xmlTextWriterWriteAttribute) xmlTextWriterWriteAttribute__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlTextWriterWriteAttribute) xmlTextWriterWriteAttribute __attribute((alias("xmlTextWriterWriteAttribute__internal_alias")));
+#define xmlTextWriterWriteAttribute xmlTextWriterWriteAttribute__internal_alias
+#endif
+
+#ifdef LIBXML_WRITER_ENABLED
+extern __typeof (xmlTextWriterWriteAttributeNS) xmlTextWriterWriteAttributeNS__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlTextWriterWriteAttributeNS) xmlTextWriterWriteAttributeNS __attribute((alias("xmlTextWriterWriteAttributeNS__internal_alias")));
+#define xmlTextWriterWriteAttributeNS xmlTextWriterWriteAttributeNS__internal_alias
+#endif
+
+#ifdef LIBXML_WRITER_ENABLED
+extern __typeof (xmlTextWriterWriteBase64) xmlTextWriterWriteBase64__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlTextWriterWriteBase64) xmlTextWriterWriteBase64 __attribute((alias("xmlTextWriterWriteBase64__internal_alias")));
+#define xmlTextWriterWriteBase64 xmlTextWriterWriteBase64__internal_alias
+#endif
+
+#ifdef LIBXML_WRITER_ENABLED
+extern __typeof (xmlTextWriterWriteBinHex) xmlTextWriterWriteBinHex__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlTextWriterWriteBinHex) xmlTextWriterWriteBinHex __attribute((alias("xmlTextWriterWriteBinHex__internal_alias")));
+#define xmlTextWriterWriteBinHex xmlTextWriterWriteBinHex__internal_alias
+#endif
+
+#ifdef LIBXML_WRITER_ENABLED
+extern __typeof (xmlTextWriterWriteCDATA) xmlTextWriterWriteCDATA__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlTextWriterWriteCDATA) xmlTextWriterWriteCDATA __attribute((alias("xmlTextWriterWriteCDATA__internal_alias")));
+#define xmlTextWriterWriteCDATA xmlTextWriterWriteCDATA__internal_alias
+#endif
+
+#ifdef LIBXML_WRITER_ENABLED
+extern __typeof (xmlTextWriterWriteComment) xmlTextWriterWriteComment__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlTextWriterWriteComment) xmlTextWriterWriteComment __attribute((alias("xmlTextWriterWriteComment__internal_alias")));
+#define xmlTextWriterWriteComment xmlTextWriterWriteComment__internal_alias
+#endif
+
+#ifdef LIBXML_WRITER_ENABLED
+extern __typeof (xmlTextWriterWriteDTD) xmlTextWriterWriteDTD__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlTextWriterWriteDTD) xmlTextWriterWriteDTD __attribute((alias("xmlTextWriterWriteDTD__internal_alias")));
+#define xmlTextWriterWriteDTD xmlTextWriterWriteDTD__internal_alias
+#endif
+
+#ifdef LIBXML_WRITER_ENABLED
+extern __typeof (xmlTextWriterWriteDTDAttlist) xmlTextWriterWriteDTDAttlist__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlTextWriterWriteDTDAttlist) xmlTextWriterWriteDTDAttlist __attribute((alias("xmlTextWriterWriteDTDAttlist__internal_alias")));
+#define xmlTextWriterWriteDTDAttlist xmlTextWriterWriteDTDAttlist__internal_alias
+#endif
+
+#ifdef LIBXML_WRITER_ENABLED
+extern __typeof (xmlTextWriterWriteDTDElement) xmlTextWriterWriteDTDElement__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlTextWriterWriteDTDElement) xmlTextWriterWriteDTDElement __attribute((alias("xmlTextWriterWriteDTDElement__internal_alias")));
+#define xmlTextWriterWriteDTDElement xmlTextWriterWriteDTDElement__internal_alias
+#endif
+
+#ifdef LIBXML_WRITER_ENABLED
+extern __typeof (xmlTextWriterWriteDTDEntity) xmlTextWriterWriteDTDEntity__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlTextWriterWriteDTDEntity) xmlTextWriterWriteDTDEntity __attribute((alias("xmlTextWriterWriteDTDEntity__internal_alias")));
+#define xmlTextWriterWriteDTDEntity xmlTextWriterWriteDTDEntity__internal_alias
+#endif
+
+#ifdef LIBXML_WRITER_ENABLED
+extern __typeof (xmlTextWriterWriteDTDExternalEntity) xmlTextWriterWriteDTDExternalEntity__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlTextWriterWriteDTDExternalEntity) xmlTextWriterWriteDTDExternalEntity __attribute((alias("xmlTextWriterWriteDTDExternalEntity__internal_alias")));
+#define xmlTextWriterWriteDTDExternalEntity xmlTextWriterWriteDTDExternalEntity__internal_alias
+#endif
+
+#ifdef LIBXML_WRITER_ENABLED
+extern __typeof (xmlTextWriterWriteDTDExternalEntityContents) xmlTextWriterWriteDTDExternalEntityContents__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlTextWriterWriteDTDExternalEntityContents) xmlTextWriterWriteDTDExternalEntityContents __attribute((alias("xmlTextWriterWriteDTDExternalEntityContents__internal_alias")));
+#define xmlTextWriterWriteDTDExternalEntityContents xmlTextWriterWriteDTDExternalEntityContents__internal_alias
+#endif
+
+#ifdef LIBXML_WRITER_ENABLED
+extern __typeof (xmlTextWriterWriteDTDInternalEntity) xmlTextWriterWriteDTDInternalEntity__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlTextWriterWriteDTDInternalEntity) xmlTextWriterWriteDTDInternalEntity __attribute((alias("xmlTextWriterWriteDTDInternalEntity__internal_alias")));
+#define xmlTextWriterWriteDTDInternalEntity xmlTextWriterWriteDTDInternalEntity__internal_alias
+#endif
+
+#ifdef LIBXML_WRITER_ENABLED
+extern __typeof (xmlTextWriterWriteDTDNotation) xmlTextWriterWriteDTDNotation__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlTextWriterWriteDTDNotation) xmlTextWriterWriteDTDNotation __attribute((alias("xmlTextWriterWriteDTDNotation__internal_alias")));
+#define xmlTextWriterWriteDTDNotation xmlTextWriterWriteDTDNotation__internal_alias
+#endif
+
+#ifdef LIBXML_WRITER_ENABLED
+extern __typeof (xmlTextWriterWriteElement) xmlTextWriterWriteElement__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlTextWriterWriteElement) xmlTextWriterWriteElement __attribute((alias("xmlTextWriterWriteElement__internal_alias")));
+#define xmlTextWriterWriteElement xmlTextWriterWriteElement__internal_alias
+#endif
+
+#ifdef LIBXML_WRITER_ENABLED
+extern __typeof (xmlTextWriterWriteElementNS) xmlTextWriterWriteElementNS__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlTextWriterWriteElementNS) xmlTextWriterWriteElementNS __attribute((alias("xmlTextWriterWriteElementNS__internal_alias")));
+#define xmlTextWriterWriteElementNS xmlTextWriterWriteElementNS__internal_alias
+#endif
+
+#ifdef LIBXML_WRITER_ENABLED
+extern __typeof (xmlTextWriterWriteFormatAttribute) xmlTextWriterWriteFormatAttribute__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlTextWriterWriteFormatAttribute) xmlTextWriterWriteFormatAttribute __attribute((alias("xmlTextWriterWriteFormatAttribute__internal_alias")));
+#define xmlTextWriterWriteFormatAttribute xmlTextWriterWriteFormatAttribute__internal_alias
+#endif
+
+#ifdef LIBXML_WRITER_ENABLED
+extern __typeof (xmlTextWriterWriteFormatAttributeNS) xmlTextWriterWriteFormatAttributeNS__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlTextWriterWriteFormatAttributeNS) xmlTextWriterWriteFormatAttributeNS __attribute((alias("xmlTextWriterWriteFormatAttributeNS__internal_alias")));
+#define xmlTextWriterWriteFormatAttributeNS xmlTextWriterWriteFormatAttributeNS__internal_alias
+#endif
+
+#ifdef LIBXML_WRITER_ENABLED
+extern __typeof (xmlTextWriterWriteFormatCDATA) xmlTextWriterWriteFormatCDATA__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlTextWriterWriteFormatCDATA) xmlTextWriterWriteFormatCDATA __attribute((alias("xmlTextWriterWriteFormatCDATA__internal_alias")));
+#define xmlTextWriterWriteFormatCDATA xmlTextWriterWriteFormatCDATA__internal_alias
+#endif
+
+#ifdef LIBXML_WRITER_ENABLED
+extern __typeof (xmlTextWriterWriteFormatComment) xmlTextWriterWriteFormatComment__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlTextWriterWriteFormatComment) xmlTextWriterWriteFormatComment __attribute((alias("xmlTextWriterWriteFormatComment__internal_alias")));
+#define xmlTextWriterWriteFormatComment xmlTextWriterWriteFormatComment__internal_alias
+#endif
+
+#ifdef LIBXML_WRITER_ENABLED
+extern __typeof (xmlTextWriterWriteFormatDTD) xmlTextWriterWriteFormatDTD__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlTextWriterWriteFormatDTD) xmlTextWriterWriteFormatDTD __attribute((alias("xmlTextWriterWriteFormatDTD__internal_alias")));
+#define xmlTextWriterWriteFormatDTD xmlTextWriterWriteFormatDTD__internal_alias
+#endif
+
+#ifdef LIBXML_WRITER_ENABLED
+extern __typeof (xmlTextWriterWriteFormatDTDAttlist) xmlTextWriterWriteFormatDTDAttlist__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlTextWriterWriteFormatDTDAttlist) xmlTextWriterWriteFormatDTDAttlist __attribute((alias("xmlTextWriterWriteFormatDTDAttlist__internal_alias")));
+#define xmlTextWriterWriteFormatDTDAttlist xmlTextWriterWriteFormatDTDAttlist__internal_alias
+#endif
+
+#ifdef LIBXML_WRITER_ENABLED
+extern __typeof (xmlTextWriterWriteFormatDTDElement) xmlTextWriterWriteFormatDTDElement__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlTextWriterWriteFormatDTDElement) xmlTextWriterWriteFormatDTDElement __attribute((alias("xmlTextWriterWriteFormatDTDElement__internal_alias")));
+#define xmlTextWriterWriteFormatDTDElement xmlTextWriterWriteFormatDTDElement__internal_alias
+#endif
+
+#ifdef LIBXML_WRITER_ENABLED
+extern __typeof (xmlTextWriterWriteFormatDTDInternalEntity) xmlTextWriterWriteFormatDTDInternalEntity__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlTextWriterWriteFormatDTDInternalEntity) xmlTextWriterWriteFormatDTDInternalEntity __attribute((alias("xmlTextWriterWriteFormatDTDInternalEntity__internal_alias")));
+#define xmlTextWriterWriteFormatDTDInternalEntity xmlTextWriterWriteFormatDTDInternalEntity__internal_alias
+#endif
+
+#ifdef LIBXML_WRITER_ENABLED
+extern __typeof (xmlTextWriterWriteFormatElement) xmlTextWriterWriteFormatElement__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlTextWriterWriteFormatElement) xmlTextWriterWriteFormatElement __attribute((alias("xmlTextWriterWriteFormatElement__internal_alias")));
+#define xmlTextWriterWriteFormatElement xmlTextWriterWriteFormatElement__internal_alias
+#endif
+
+#ifdef LIBXML_WRITER_ENABLED
+extern __typeof (xmlTextWriterWriteFormatElementNS) xmlTextWriterWriteFormatElementNS__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlTextWriterWriteFormatElementNS) xmlTextWriterWriteFormatElementNS __attribute((alias("xmlTextWriterWriteFormatElementNS__internal_alias")));
+#define xmlTextWriterWriteFormatElementNS xmlTextWriterWriteFormatElementNS__internal_alias
+#endif
+
+#ifdef LIBXML_WRITER_ENABLED
+extern __typeof (xmlTextWriterWriteFormatPI) xmlTextWriterWriteFormatPI__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlTextWriterWriteFormatPI) xmlTextWriterWriteFormatPI __attribute((alias("xmlTextWriterWriteFormatPI__internal_alias")));
+#define xmlTextWriterWriteFormatPI xmlTextWriterWriteFormatPI__internal_alias
+#endif
+
+#ifdef LIBXML_WRITER_ENABLED
+extern __typeof (xmlTextWriterWriteFormatRaw) xmlTextWriterWriteFormatRaw__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlTextWriterWriteFormatRaw) xmlTextWriterWriteFormatRaw __attribute((alias("xmlTextWriterWriteFormatRaw__internal_alias")));
+#define xmlTextWriterWriteFormatRaw xmlTextWriterWriteFormatRaw__internal_alias
+#endif
+
+#ifdef LIBXML_WRITER_ENABLED
+extern __typeof (xmlTextWriterWriteFormatString) xmlTextWriterWriteFormatString__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlTextWriterWriteFormatString) xmlTextWriterWriteFormatString __attribute((alias("xmlTextWriterWriteFormatString__internal_alias")));
+#define xmlTextWriterWriteFormatString xmlTextWriterWriteFormatString__internal_alias
+#endif
+
+#ifdef LIBXML_WRITER_ENABLED
+extern __typeof (xmlTextWriterWritePI) xmlTextWriterWritePI__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlTextWriterWritePI) xmlTextWriterWritePI __attribute((alias("xmlTextWriterWritePI__internal_alias")));
+#define xmlTextWriterWritePI xmlTextWriterWritePI__internal_alias
+#endif
+
+#ifdef LIBXML_WRITER_ENABLED
+extern __typeof (xmlTextWriterWriteRaw) xmlTextWriterWriteRaw__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlTextWriterWriteRaw) xmlTextWriterWriteRaw __attribute((alias("xmlTextWriterWriteRaw__internal_alias")));
+#define xmlTextWriterWriteRaw xmlTextWriterWriteRaw__internal_alias
+#endif
+
+#ifdef LIBXML_WRITER_ENABLED
+extern __typeof (xmlTextWriterWriteRawLen) xmlTextWriterWriteRawLen__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlTextWriterWriteRawLen) xmlTextWriterWriteRawLen __attribute((alias("xmlTextWriterWriteRawLen__internal_alias")));
+#define xmlTextWriterWriteRawLen xmlTextWriterWriteRawLen__internal_alias
+#endif
+
+#ifdef LIBXML_WRITER_ENABLED
+extern __typeof (xmlTextWriterWriteString) xmlTextWriterWriteString__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlTextWriterWriteString) xmlTextWriterWriteString __attribute((alias("xmlTextWriterWriteString__internal_alias")));
+#define xmlTextWriterWriteString xmlTextWriterWriteString__internal_alias
+#endif
+
+#ifdef LIBXML_WRITER_ENABLED
+extern __typeof (xmlTextWriterWriteVFormatAttribute) xmlTextWriterWriteVFormatAttribute__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlTextWriterWriteVFormatAttribute) xmlTextWriterWriteVFormatAttribute __attribute((alias("xmlTextWriterWriteVFormatAttribute__internal_alias")));
+#define xmlTextWriterWriteVFormatAttribute xmlTextWriterWriteVFormatAttribute__internal_alias
+#endif
+
+#ifdef LIBXML_WRITER_ENABLED
+extern __typeof (xmlTextWriterWriteVFormatAttributeNS) xmlTextWriterWriteVFormatAttributeNS__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlTextWriterWriteVFormatAttributeNS) xmlTextWriterWriteVFormatAttributeNS __attribute((alias("xmlTextWriterWriteVFormatAttributeNS__internal_alias")));
+#define xmlTextWriterWriteVFormatAttributeNS xmlTextWriterWriteVFormatAttributeNS__internal_alias
+#endif
+
+#ifdef LIBXML_WRITER_ENABLED
+extern __typeof (xmlTextWriterWriteVFormatCDATA) xmlTextWriterWriteVFormatCDATA__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlTextWriterWriteVFormatCDATA) xmlTextWriterWriteVFormatCDATA __attribute((alias("xmlTextWriterWriteVFormatCDATA__internal_alias")));
+#define xmlTextWriterWriteVFormatCDATA xmlTextWriterWriteVFormatCDATA__internal_alias
+#endif
+
+#ifdef LIBXML_WRITER_ENABLED
+extern __typeof (xmlTextWriterWriteVFormatComment) xmlTextWriterWriteVFormatComment__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlTextWriterWriteVFormatComment) xmlTextWriterWriteVFormatComment __attribute((alias("xmlTextWriterWriteVFormatComment__internal_alias")));
+#define xmlTextWriterWriteVFormatComment xmlTextWriterWriteVFormatComment__internal_alias
+#endif
+
+#ifdef LIBXML_WRITER_ENABLED
+extern __typeof (xmlTextWriterWriteVFormatDTD) xmlTextWriterWriteVFormatDTD__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlTextWriterWriteVFormatDTD) xmlTextWriterWriteVFormatDTD __attribute((alias("xmlTextWriterWriteVFormatDTD__internal_alias")));
+#define xmlTextWriterWriteVFormatDTD xmlTextWriterWriteVFormatDTD__internal_alias
+#endif
+
+#ifdef LIBXML_WRITER_ENABLED
+extern __typeof (xmlTextWriterWriteVFormatDTDAttlist) xmlTextWriterWriteVFormatDTDAttlist__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlTextWriterWriteVFormatDTDAttlist) xmlTextWriterWriteVFormatDTDAttlist __attribute((alias("xmlTextWriterWriteVFormatDTDAttlist__internal_alias")));
+#define xmlTextWriterWriteVFormatDTDAttlist xmlTextWriterWriteVFormatDTDAttlist__internal_alias
+#endif
+
+#ifdef LIBXML_WRITER_ENABLED
+extern __typeof (xmlTextWriterWriteVFormatDTDElement) xmlTextWriterWriteVFormatDTDElement__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlTextWriterWriteVFormatDTDElement) xmlTextWriterWriteVFormatDTDElement __attribute((alias("xmlTextWriterWriteVFormatDTDElement__internal_alias")));
+#define xmlTextWriterWriteVFormatDTDElement xmlTextWriterWriteVFormatDTDElement__internal_alias
+#endif
+
+#ifdef LIBXML_WRITER_ENABLED
+extern __typeof (xmlTextWriterWriteVFormatDTDInternalEntity) xmlTextWriterWriteVFormatDTDInternalEntity__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlTextWriterWriteVFormatDTDInternalEntity) xmlTextWriterWriteVFormatDTDInternalEntity __attribute((alias("xmlTextWriterWriteVFormatDTDInternalEntity__internal_alias")));
+#define xmlTextWriterWriteVFormatDTDInternalEntity xmlTextWriterWriteVFormatDTDInternalEntity__internal_alias
+#endif
+
+#ifdef LIBXML_WRITER_ENABLED
+extern __typeof (xmlTextWriterWriteVFormatElement) xmlTextWriterWriteVFormatElement__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlTextWriterWriteVFormatElement) xmlTextWriterWriteVFormatElement __attribute((alias("xmlTextWriterWriteVFormatElement__internal_alias")));
+#define xmlTextWriterWriteVFormatElement xmlTextWriterWriteVFormatElement__internal_alias
+#endif
+
+#ifdef LIBXML_WRITER_ENABLED
+extern __typeof (xmlTextWriterWriteVFormatElementNS) xmlTextWriterWriteVFormatElementNS__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlTextWriterWriteVFormatElementNS) xmlTextWriterWriteVFormatElementNS __attribute((alias("xmlTextWriterWriteVFormatElementNS__internal_alias")));
+#define xmlTextWriterWriteVFormatElementNS xmlTextWriterWriteVFormatElementNS__internal_alias
+#endif
+
+#ifdef LIBXML_WRITER_ENABLED
+extern __typeof (xmlTextWriterWriteVFormatPI) xmlTextWriterWriteVFormatPI__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlTextWriterWriteVFormatPI) xmlTextWriterWriteVFormatPI __attribute((alias("xmlTextWriterWriteVFormatPI__internal_alias")));
+#define xmlTextWriterWriteVFormatPI xmlTextWriterWriteVFormatPI__internal_alias
+#endif
+
+#ifdef LIBXML_WRITER_ENABLED
+extern __typeof (xmlTextWriterWriteVFormatRaw) xmlTextWriterWriteVFormatRaw__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlTextWriterWriteVFormatRaw) xmlTextWriterWriteVFormatRaw __attribute((alias("xmlTextWriterWriteVFormatRaw__internal_alias")));
+#define xmlTextWriterWriteVFormatRaw xmlTextWriterWriteVFormatRaw__internal_alias
+#endif
+
+#ifdef LIBXML_WRITER_ENABLED
+extern __typeof (xmlTextWriterWriteVFormatString) xmlTextWriterWriteVFormatString__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlTextWriterWriteVFormatString) xmlTextWriterWriteVFormatString __attribute((alias("xmlTextWriterWriteVFormatString__internal_alias")));
+#define xmlTextWriterWriteVFormatString xmlTextWriterWriteVFormatString__internal_alias
+#endif
+
+extern __typeof (xmlThrDefBufferAllocScheme) xmlThrDefBufferAllocScheme__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlThrDefBufferAllocScheme) xmlThrDefBufferAllocScheme __attribute((alias("xmlThrDefBufferAllocScheme__internal_alias")));
+#define xmlThrDefBufferAllocScheme xmlThrDefBufferAllocScheme__internal_alias
+
+extern __typeof (xmlThrDefDefaultBufferSize) xmlThrDefDefaultBufferSize__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlThrDefDefaultBufferSize) xmlThrDefDefaultBufferSize __attribute((alias("xmlThrDefDefaultBufferSize__internal_alias")));
+#define xmlThrDefDefaultBufferSize xmlThrDefDefaultBufferSize__internal_alias
+
+extern __typeof (xmlThrDefDeregisterNodeDefault) xmlThrDefDeregisterNodeDefault__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlThrDefDeregisterNodeDefault) xmlThrDefDeregisterNodeDefault __attribute((alias("xmlThrDefDeregisterNodeDefault__internal_alias")));
+#define xmlThrDefDeregisterNodeDefault xmlThrDefDeregisterNodeDefault__internal_alias
+
+extern __typeof (xmlThrDefDoValidityCheckingDefaultValue) xmlThrDefDoValidityCheckingDefaultValue__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlThrDefDoValidityCheckingDefaultValue) xmlThrDefDoValidityCheckingDefaultValue __attribute((alias("xmlThrDefDoValidityCheckingDefaultValue__internal_alias")));
+#define xmlThrDefDoValidityCheckingDefaultValue xmlThrDefDoValidityCheckingDefaultValue__internal_alias
+
+extern __typeof (xmlThrDefGetWarningsDefaultValue) xmlThrDefGetWarningsDefaultValue__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlThrDefGetWarningsDefaultValue) xmlThrDefGetWarningsDefaultValue __attribute((alias("xmlThrDefGetWarningsDefaultValue__internal_alias")));
+#define xmlThrDefGetWarningsDefaultValue xmlThrDefGetWarningsDefaultValue__internal_alias
+
+extern __typeof (xmlThrDefIndentTreeOutput) xmlThrDefIndentTreeOutput__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlThrDefIndentTreeOutput) xmlThrDefIndentTreeOutput __attribute((alias("xmlThrDefIndentTreeOutput__internal_alias")));
+#define xmlThrDefIndentTreeOutput xmlThrDefIndentTreeOutput__internal_alias
+
+extern __typeof (xmlThrDefKeepBlanksDefaultValue) xmlThrDefKeepBlanksDefaultValue__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlThrDefKeepBlanksDefaultValue) xmlThrDefKeepBlanksDefaultValue __attribute((alias("xmlThrDefKeepBlanksDefaultValue__internal_alias")));
+#define xmlThrDefKeepBlanksDefaultValue xmlThrDefKeepBlanksDefaultValue__internal_alias
+
+extern __typeof (xmlThrDefLineNumbersDefaultValue) xmlThrDefLineNumbersDefaultValue__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlThrDefLineNumbersDefaultValue) xmlThrDefLineNumbersDefaultValue __attribute((alias("xmlThrDefLineNumbersDefaultValue__internal_alias")));
+#define xmlThrDefLineNumbersDefaultValue xmlThrDefLineNumbersDefaultValue__internal_alias
+
+extern __typeof (xmlThrDefLoadExtDtdDefaultValue) xmlThrDefLoadExtDtdDefaultValue__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlThrDefLoadExtDtdDefaultValue) xmlThrDefLoadExtDtdDefaultValue __attribute((alias("xmlThrDefLoadExtDtdDefaultValue__internal_alias")));
+#define xmlThrDefLoadExtDtdDefaultValue xmlThrDefLoadExtDtdDefaultValue__internal_alias
+
+extern __typeof (xmlThrDefOutputBufferCreateFilenameDefault) xmlThrDefOutputBufferCreateFilenameDefault__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlThrDefOutputBufferCreateFilenameDefault) xmlThrDefOutputBufferCreateFilenameDefault __attribute((alias("xmlThrDefOutputBufferCreateFilenameDefault__internal_alias")));
+#define xmlThrDefOutputBufferCreateFilenameDefault xmlThrDefOutputBufferCreateFilenameDefault__internal_alias
+
+extern __typeof (xmlThrDefParserDebugEntities) xmlThrDefParserDebugEntities__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlThrDefParserDebugEntities) xmlThrDefParserDebugEntities __attribute((alias("xmlThrDefParserDebugEntities__internal_alias")));
+#define xmlThrDefParserDebugEntities xmlThrDefParserDebugEntities__internal_alias
+
+extern __typeof (xmlThrDefParserInputBufferCreateFilenameDefault) xmlThrDefParserInputBufferCreateFilenameDefault__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlThrDefParserInputBufferCreateFilenameDefault) xmlThrDefParserInputBufferCreateFilenameDefault __attribute((alias("xmlThrDefParserInputBufferCreateFilenameDefault__internal_alias")));
+#define xmlThrDefParserInputBufferCreateFilenameDefault xmlThrDefParserInputBufferCreateFilenameDefault__internal_alias
+
+extern __typeof (xmlThrDefPedanticParserDefaultValue) xmlThrDefPedanticParserDefaultValue__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlThrDefPedanticParserDefaultValue) xmlThrDefPedanticParserDefaultValue __attribute((alias("xmlThrDefPedanticParserDefaultValue__internal_alias")));
+#define xmlThrDefPedanticParserDefaultValue xmlThrDefPedanticParserDefaultValue__internal_alias
+
+extern __typeof (xmlThrDefRegisterNodeDefault) xmlThrDefRegisterNodeDefault__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlThrDefRegisterNodeDefault) xmlThrDefRegisterNodeDefault __attribute((alias("xmlThrDefRegisterNodeDefault__internal_alias")));
+#define xmlThrDefRegisterNodeDefault xmlThrDefRegisterNodeDefault__internal_alias
+
+extern __typeof (xmlThrDefSaveNoEmptyTags) xmlThrDefSaveNoEmptyTags__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlThrDefSaveNoEmptyTags) xmlThrDefSaveNoEmptyTags __attribute((alias("xmlThrDefSaveNoEmptyTags__internal_alias")));
+#define xmlThrDefSaveNoEmptyTags xmlThrDefSaveNoEmptyTags__internal_alias
+
+extern __typeof (xmlThrDefSetGenericErrorFunc) xmlThrDefSetGenericErrorFunc__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlThrDefSetGenericErrorFunc) xmlThrDefSetGenericErrorFunc __attribute((alias("xmlThrDefSetGenericErrorFunc__internal_alias")));
+#define xmlThrDefSetGenericErrorFunc xmlThrDefSetGenericErrorFunc__internal_alias
+
+extern __typeof (xmlThrDefSetStructuredErrorFunc) xmlThrDefSetStructuredErrorFunc__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlThrDefSetStructuredErrorFunc) xmlThrDefSetStructuredErrorFunc __attribute((alias("xmlThrDefSetStructuredErrorFunc__internal_alias")));
+#define xmlThrDefSetStructuredErrorFunc xmlThrDefSetStructuredErrorFunc__internal_alias
+
+extern __typeof (xmlThrDefSubstituteEntitiesDefaultValue) xmlThrDefSubstituteEntitiesDefaultValue__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlThrDefSubstituteEntitiesDefaultValue) xmlThrDefSubstituteEntitiesDefaultValue __attribute((alias("xmlThrDefSubstituteEntitiesDefaultValue__internal_alias")));
+#define xmlThrDefSubstituteEntitiesDefaultValue xmlThrDefSubstituteEntitiesDefaultValue__internal_alias
+
+extern __typeof (xmlThrDefTreeIndentString) xmlThrDefTreeIndentString__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlThrDefTreeIndentString) xmlThrDefTreeIndentString __attribute((alias("xmlThrDefTreeIndentString__internal_alias")));
+#define xmlThrDefTreeIndentString xmlThrDefTreeIndentString__internal_alias
+
+#ifdef LIBXML_UNICODE_ENABLED
+extern __typeof (xmlUCSIsAegeanNumbers) xmlUCSIsAegeanNumbers__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlUCSIsAegeanNumbers) xmlUCSIsAegeanNumbers __attribute((alias("xmlUCSIsAegeanNumbers__internal_alias")));
+#define xmlUCSIsAegeanNumbers xmlUCSIsAegeanNumbers__internal_alias
+#endif
+
+#ifdef LIBXML_UNICODE_ENABLED
+extern __typeof (xmlUCSIsAlphabeticPresentationForms) xmlUCSIsAlphabeticPresentationForms__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlUCSIsAlphabeticPresentationForms) xmlUCSIsAlphabeticPresentationForms __attribute((alias("xmlUCSIsAlphabeticPresentationForms__internal_alias")));
+#define xmlUCSIsAlphabeticPresentationForms xmlUCSIsAlphabeticPresentationForms__internal_alias
+#endif
+
+#ifdef LIBXML_UNICODE_ENABLED
+extern __typeof (xmlUCSIsArabic) xmlUCSIsArabic__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlUCSIsArabic) xmlUCSIsArabic __attribute((alias("xmlUCSIsArabic__internal_alias")));
+#define xmlUCSIsArabic xmlUCSIsArabic__internal_alias
+#endif
+
+#ifdef LIBXML_UNICODE_ENABLED
+extern __typeof (xmlUCSIsArabicPresentationFormsA) xmlUCSIsArabicPresentationFormsA__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlUCSIsArabicPresentationFormsA) xmlUCSIsArabicPresentationFormsA __attribute((alias("xmlUCSIsArabicPresentationFormsA__internal_alias")));
+#define xmlUCSIsArabicPresentationFormsA xmlUCSIsArabicPresentationFormsA__internal_alias
+#endif
+
+#ifdef LIBXML_UNICODE_ENABLED
+extern __typeof (xmlUCSIsArabicPresentationFormsB) xmlUCSIsArabicPresentationFormsB__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlUCSIsArabicPresentationFormsB) xmlUCSIsArabicPresentationFormsB __attribute((alias("xmlUCSIsArabicPresentationFormsB__internal_alias")));
+#define xmlUCSIsArabicPresentationFormsB xmlUCSIsArabicPresentationFormsB__internal_alias
+#endif
+
+#ifdef LIBXML_UNICODE_ENABLED
+extern __typeof (xmlUCSIsArmenian) xmlUCSIsArmenian__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlUCSIsArmenian) xmlUCSIsArmenian __attribute((alias("xmlUCSIsArmenian__internal_alias")));
+#define xmlUCSIsArmenian xmlUCSIsArmenian__internal_alias
+#endif
+
+#ifdef LIBXML_UNICODE_ENABLED
+extern __typeof (xmlUCSIsArrows) xmlUCSIsArrows__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlUCSIsArrows) xmlUCSIsArrows __attribute((alias("xmlUCSIsArrows__internal_alias")));
+#define xmlUCSIsArrows xmlUCSIsArrows__internal_alias
+#endif
+
+#ifdef LIBXML_UNICODE_ENABLED
+extern __typeof (xmlUCSIsBasicLatin) xmlUCSIsBasicLatin__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlUCSIsBasicLatin) xmlUCSIsBasicLatin __attribute((alias("xmlUCSIsBasicLatin__internal_alias")));
+#define xmlUCSIsBasicLatin xmlUCSIsBasicLatin__internal_alias
+#endif
+
+#ifdef LIBXML_UNICODE_ENABLED
+extern __typeof (xmlUCSIsBengali) xmlUCSIsBengali__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlUCSIsBengali) xmlUCSIsBengali __attribute((alias("xmlUCSIsBengali__internal_alias")));
+#define xmlUCSIsBengali xmlUCSIsBengali__internal_alias
+#endif
+
+#ifdef LIBXML_UNICODE_ENABLED
+extern __typeof (xmlUCSIsBlock) xmlUCSIsBlock__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlUCSIsBlock) xmlUCSIsBlock __attribute((alias("xmlUCSIsBlock__internal_alias")));
+#define xmlUCSIsBlock xmlUCSIsBlock__internal_alias
+#endif
+
+#ifdef LIBXML_UNICODE_ENABLED
+extern __typeof (xmlUCSIsBlockElements) xmlUCSIsBlockElements__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlUCSIsBlockElements) xmlUCSIsBlockElements __attribute((alias("xmlUCSIsBlockElements__internal_alias")));
+#define xmlUCSIsBlockElements xmlUCSIsBlockElements__internal_alias
+#endif
+
+#ifdef LIBXML_UNICODE_ENABLED
+extern __typeof (xmlUCSIsBopomofo) xmlUCSIsBopomofo__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlUCSIsBopomofo) xmlUCSIsBopomofo __attribute((alias("xmlUCSIsBopomofo__internal_alias")));
+#define xmlUCSIsBopomofo xmlUCSIsBopomofo__internal_alias
+#endif
+
+#ifdef LIBXML_UNICODE_ENABLED
+extern __typeof (xmlUCSIsBopomofoExtended) xmlUCSIsBopomofoExtended__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlUCSIsBopomofoExtended) xmlUCSIsBopomofoExtended __attribute((alias("xmlUCSIsBopomofoExtended__internal_alias")));
+#define xmlUCSIsBopomofoExtended xmlUCSIsBopomofoExtended__internal_alias
+#endif
+
+#ifdef LIBXML_UNICODE_ENABLED
+extern __typeof (xmlUCSIsBoxDrawing) xmlUCSIsBoxDrawing__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlUCSIsBoxDrawing) xmlUCSIsBoxDrawing __attribute((alias("xmlUCSIsBoxDrawing__internal_alias")));
+#define xmlUCSIsBoxDrawing xmlUCSIsBoxDrawing__internal_alias
+#endif
+
+#ifdef LIBXML_UNICODE_ENABLED
+extern __typeof (xmlUCSIsBraillePatterns) xmlUCSIsBraillePatterns__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlUCSIsBraillePatterns) xmlUCSIsBraillePatterns __attribute((alias("xmlUCSIsBraillePatterns__internal_alias")));
+#define xmlUCSIsBraillePatterns xmlUCSIsBraillePatterns__internal_alias
+#endif
+
+#ifdef LIBXML_UNICODE_ENABLED
+extern __typeof (xmlUCSIsBuhid) xmlUCSIsBuhid__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlUCSIsBuhid) xmlUCSIsBuhid __attribute((alias("xmlUCSIsBuhid__internal_alias")));
+#define xmlUCSIsBuhid xmlUCSIsBuhid__internal_alias
+#endif
+
+#ifdef LIBXML_UNICODE_ENABLED
+extern __typeof (xmlUCSIsByzantineMusicalSymbols) xmlUCSIsByzantineMusicalSymbols__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlUCSIsByzantineMusicalSymbols) xmlUCSIsByzantineMusicalSymbols __attribute((alias("xmlUCSIsByzantineMusicalSymbols__internal_alias")));
+#define xmlUCSIsByzantineMusicalSymbols xmlUCSIsByzantineMusicalSymbols__internal_alias
+#endif
+
+#ifdef LIBXML_UNICODE_ENABLED
+extern __typeof (xmlUCSIsCJKCompatibility) xmlUCSIsCJKCompatibility__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlUCSIsCJKCompatibility) xmlUCSIsCJKCompatibility __attribute((alias("xmlUCSIsCJKCompatibility__internal_alias")));
+#define xmlUCSIsCJKCompatibility xmlUCSIsCJKCompatibility__internal_alias
+#endif
+
+#ifdef LIBXML_UNICODE_ENABLED
+extern __typeof (xmlUCSIsCJKCompatibilityForms) xmlUCSIsCJKCompatibilityForms__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlUCSIsCJKCompatibilityForms) xmlUCSIsCJKCompatibilityForms __attribute((alias("xmlUCSIsCJKCompatibilityForms__internal_alias")));
+#define xmlUCSIsCJKCompatibilityForms xmlUCSIsCJKCompatibilityForms__internal_alias
+#endif
+
+#ifdef LIBXML_UNICODE_ENABLED
+extern __typeof (xmlUCSIsCJKCompatibilityIdeographs) xmlUCSIsCJKCompatibilityIdeographs__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlUCSIsCJKCompatibilityIdeographs) xmlUCSIsCJKCompatibilityIdeographs __attribute((alias("xmlUCSIsCJKCompatibilityIdeographs__internal_alias")));
+#define xmlUCSIsCJKCompatibilityIdeographs xmlUCSIsCJKCompatibilityIdeographs__internal_alias
+#endif
+
+#ifdef LIBXML_UNICODE_ENABLED
+extern __typeof (xmlUCSIsCJKCompatibilityIdeographsSupplement) xmlUCSIsCJKCompatibilityIdeographsSupplement__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlUCSIsCJKCompatibilityIdeographsSupplement) xmlUCSIsCJKCompatibilityIdeographsSupplement __attribute((alias("xmlUCSIsCJKCompatibilityIdeographsSupplement__internal_alias")));
+#define xmlUCSIsCJKCompatibilityIdeographsSupplement xmlUCSIsCJKCompatibilityIdeographsSupplement__internal_alias
+#endif
+
+#ifdef LIBXML_UNICODE_ENABLED
+extern __typeof (xmlUCSIsCJKRadicalsSupplement) xmlUCSIsCJKRadicalsSupplement__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlUCSIsCJKRadicalsSupplement) xmlUCSIsCJKRadicalsSupplement __attribute((alias("xmlUCSIsCJKRadicalsSupplement__internal_alias")));
+#define xmlUCSIsCJKRadicalsSupplement xmlUCSIsCJKRadicalsSupplement__internal_alias
+#endif
+
+#ifdef LIBXML_UNICODE_ENABLED
+extern __typeof (xmlUCSIsCJKSymbolsandPunctuation) xmlUCSIsCJKSymbolsandPunctuation__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlUCSIsCJKSymbolsandPunctuation) xmlUCSIsCJKSymbolsandPunctuation __attribute((alias("xmlUCSIsCJKSymbolsandPunctuation__internal_alias")));
+#define xmlUCSIsCJKSymbolsandPunctuation xmlUCSIsCJKSymbolsandPunctuation__internal_alias
+#endif
+
+#ifdef LIBXML_UNICODE_ENABLED
+extern __typeof (xmlUCSIsCJKUnifiedIdeographs) xmlUCSIsCJKUnifiedIdeographs__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlUCSIsCJKUnifiedIdeographs) xmlUCSIsCJKUnifiedIdeographs __attribute((alias("xmlUCSIsCJKUnifiedIdeographs__internal_alias")));
+#define xmlUCSIsCJKUnifiedIdeographs xmlUCSIsCJKUnifiedIdeographs__internal_alias
+#endif
+
+#ifdef LIBXML_UNICODE_ENABLED
+extern __typeof (xmlUCSIsCJKUnifiedIdeographsExtensionA) xmlUCSIsCJKUnifiedIdeographsExtensionA__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlUCSIsCJKUnifiedIdeographsExtensionA) xmlUCSIsCJKUnifiedIdeographsExtensionA __attribute((alias("xmlUCSIsCJKUnifiedIdeographsExtensionA__internal_alias")));
+#define xmlUCSIsCJKUnifiedIdeographsExtensionA xmlUCSIsCJKUnifiedIdeographsExtensionA__internal_alias
+#endif
+
+#ifdef LIBXML_UNICODE_ENABLED
+extern __typeof (xmlUCSIsCJKUnifiedIdeographsExtensionB) xmlUCSIsCJKUnifiedIdeographsExtensionB__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlUCSIsCJKUnifiedIdeographsExtensionB) xmlUCSIsCJKUnifiedIdeographsExtensionB __attribute((alias("xmlUCSIsCJKUnifiedIdeographsExtensionB__internal_alias")));
+#define xmlUCSIsCJKUnifiedIdeographsExtensionB xmlUCSIsCJKUnifiedIdeographsExtensionB__internal_alias
+#endif
+
+#ifdef LIBXML_UNICODE_ENABLED
+extern __typeof (xmlUCSIsCat) xmlUCSIsCat__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlUCSIsCat) xmlUCSIsCat __attribute((alias("xmlUCSIsCat__internal_alias")));
+#define xmlUCSIsCat xmlUCSIsCat__internal_alias
+#endif
+
+#ifdef LIBXML_UNICODE_ENABLED
+extern __typeof (xmlUCSIsCatC) xmlUCSIsCatC__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlUCSIsCatC) xmlUCSIsCatC __attribute((alias("xmlUCSIsCatC__internal_alias")));
+#define xmlUCSIsCatC xmlUCSIsCatC__internal_alias
+#endif
+
+#ifdef LIBXML_UNICODE_ENABLED
+extern __typeof (xmlUCSIsCatCc) xmlUCSIsCatCc__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlUCSIsCatCc) xmlUCSIsCatCc __attribute((alias("xmlUCSIsCatCc__internal_alias")));
+#define xmlUCSIsCatCc xmlUCSIsCatCc__internal_alias
+#endif
+
+#ifdef LIBXML_UNICODE_ENABLED
+extern __typeof (xmlUCSIsCatCf) xmlUCSIsCatCf__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlUCSIsCatCf) xmlUCSIsCatCf __attribute((alias("xmlUCSIsCatCf__internal_alias")));
+#define xmlUCSIsCatCf xmlUCSIsCatCf__internal_alias
+#endif
+
+#ifdef LIBXML_UNICODE_ENABLED
+extern __typeof (xmlUCSIsCatCo) xmlUCSIsCatCo__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlUCSIsCatCo) xmlUCSIsCatCo __attribute((alias("xmlUCSIsCatCo__internal_alias")));
+#define xmlUCSIsCatCo xmlUCSIsCatCo__internal_alias
+#endif
+
+#ifdef LIBXML_UNICODE_ENABLED
+extern __typeof (xmlUCSIsCatCs) xmlUCSIsCatCs__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlUCSIsCatCs) xmlUCSIsCatCs __attribute((alias("xmlUCSIsCatCs__internal_alias")));
+#define xmlUCSIsCatCs xmlUCSIsCatCs__internal_alias
+#endif
+
+#ifdef LIBXML_UNICODE_ENABLED
+extern __typeof (xmlUCSIsCatL) xmlUCSIsCatL__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlUCSIsCatL) xmlUCSIsCatL __attribute((alias("xmlUCSIsCatL__internal_alias")));
+#define xmlUCSIsCatL xmlUCSIsCatL__internal_alias
+#endif
+
+#ifdef LIBXML_UNICODE_ENABLED
+extern __typeof (xmlUCSIsCatLl) xmlUCSIsCatLl__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlUCSIsCatLl) xmlUCSIsCatLl __attribute((alias("xmlUCSIsCatLl__internal_alias")));
+#define xmlUCSIsCatLl xmlUCSIsCatLl__internal_alias
+#endif
+
+#ifdef LIBXML_UNICODE_ENABLED
+extern __typeof (xmlUCSIsCatLm) xmlUCSIsCatLm__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlUCSIsCatLm) xmlUCSIsCatLm __attribute((alias("xmlUCSIsCatLm__internal_alias")));
+#define xmlUCSIsCatLm xmlUCSIsCatLm__internal_alias
+#endif
+
+#ifdef LIBXML_UNICODE_ENABLED
+extern __typeof (xmlUCSIsCatLo) xmlUCSIsCatLo__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlUCSIsCatLo) xmlUCSIsCatLo __attribute((alias("xmlUCSIsCatLo__internal_alias")));
+#define xmlUCSIsCatLo xmlUCSIsCatLo__internal_alias
+#endif
+
+#ifdef LIBXML_UNICODE_ENABLED
+extern __typeof (xmlUCSIsCatLt) xmlUCSIsCatLt__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlUCSIsCatLt) xmlUCSIsCatLt __attribute((alias("xmlUCSIsCatLt__internal_alias")));
+#define xmlUCSIsCatLt xmlUCSIsCatLt__internal_alias
+#endif
+
+#ifdef LIBXML_UNICODE_ENABLED
+extern __typeof (xmlUCSIsCatLu) xmlUCSIsCatLu__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlUCSIsCatLu) xmlUCSIsCatLu __attribute((alias("xmlUCSIsCatLu__internal_alias")));
+#define xmlUCSIsCatLu xmlUCSIsCatLu__internal_alias
+#endif
+
+#ifdef LIBXML_UNICODE_ENABLED
+extern __typeof (xmlUCSIsCatM) xmlUCSIsCatM__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlUCSIsCatM) xmlUCSIsCatM __attribute((alias("xmlUCSIsCatM__internal_alias")));
+#define xmlUCSIsCatM xmlUCSIsCatM__internal_alias
+#endif
+
+#ifdef LIBXML_UNICODE_ENABLED
+extern __typeof (xmlUCSIsCatMc) xmlUCSIsCatMc__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlUCSIsCatMc) xmlUCSIsCatMc __attribute((alias("xmlUCSIsCatMc__internal_alias")));
+#define xmlUCSIsCatMc xmlUCSIsCatMc__internal_alias
+#endif
+
+#ifdef LIBXML_UNICODE_ENABLED
+extern __typeof (xmlUCSIsCatMe) xmlUCSIsCatMe__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlUCSIsCatMe) xmlUCSIsCatMe __attribute((alias("xmlUCSIsCatMe__internal_alias")));
+#define xmlUCSIsCatMe xmlUCSIsCatMe__internal_alias
+#endif
+
+#ifdef LIBXML_UNICODE_ENABLED
+extern __typeof (xmlUCSIsCatMn) xmlUCSIsCatMn__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlUCSIsCatMn) xmlUCSIsCatMn __attribute((alias("xmlUCSIsCatMn__internal_alias")));
+#define xmlUCSIsCatMn xmlUCSIsCatMn__internal_alias
+#endif
+
+#ifdef LIBXML_UNICODE_ENABLED
+extern __typeof (xmlUCSIsCatN) xmlUCSIsCatN__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlUCSIsCatN) xmlUCSIsCatN __attribute((alias("xmlUCSIsCatN__internal_alias")));
+#define xmlUCSIsCatN xmlUCSIsCatN__internal_alias
+#endif
+
+#ifdef LIBXML_UNICODE_ENABLED
+extern __typeof (xmlUCSIsCatNd) xmlUCSIsCatNd__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlUCSIsCatNd) xmlUCSIsCatNd __attribute((alias("xmlUCSIsCatNd__internal_alias")));
+#define xmlUCSIsCatNd xmlUCSIsCatNd__internal_alias
+#endif
+
+#ifdef LIBXML_UNICODE_ENABLED
+extern __typeof (xmlUCSIsCatNl) xmlUCSIsCatNl__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlUCSIsCatNl) xmlUCSIsCatNl __attribute((alias("xmlUCSIsCatNl__internal_alias")));
+#define xmlUCSIsCatNl xmlUCSIsCatNl__internal_alias
+#endif
+
+#ifdef LIBXML_UNICODE_ENABLED
+extern __typeof (xmlUCSIsCatNo) xmlUCSIsCatNo__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlUCSIsCatNo) xmlUCSIsCatNo __attribute((alias("xmlUCSIsCatNo__internal_alias")));
+#define xmlUCSIsCatNo xmlUCSIsCatNo__internal_alias
+#endif
+
+#ifdef LIBXML_UNICODE_ENABLED
+extern __typeof (xmlUCSIsCatP) xmlUCSIsCatP__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlUCSIsCatP) xmlUCSIsCatP __attribute((alias("xmlUCSIsCatP__internal_alias")));
+#define xmlUCSIsCatP xmlUCSIsCatP__internal_alias
+#endif
+
+#ifdef LIBXML_UNICODE_ENABLED
+extern __typeof (xmlUCSIsCatPc) xmlUCSIsCatPc__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlUCSIsCatPc) xmlUCSIsCatPc __attribute((alias("xmlUCSIsCatPc__internal_alias")));
+#define xmlUCSIsCatPc xmlUCSIsCatPc__internal_alias
+#endif
+
+#ifdef LIBXML_UNICODE_ENABLED
+extern __typeof (xmlUCSIsCatPd) xmlUCSIsCatPd__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlUCSIsCatPd) xmlUCSIsCatPd __attribute((alias("xmlUCSIsCatPd__internal_alias")));
+#define xmlUCSIsCatPd xmlUCSIsCatPd__internal_alias
+#endif
+
+#ifdef LIBXML_UNICODE_ENABLED
+extern __typeof (xmlUCSIsCatPe) xmlUCSIsCatPe__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlUCSIsCatPe) xmlUCSIsCatPe __attribute((alias("xmlUCSIsCatPe__internal_alias")));
+#define xmlUCSIsCatPe xmlUCSIsCatPe__internal_alias
+#endif
+
+#ifdef LIBXML_UNICODE_ENABLED
+extern __typeof (xmlUCSIsCatPf) xmlUCSIsCatPf__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlUCSIsCatPf) xmlUCSIsCatPf __attribute((alias("xmlUCSIsCatPf__internal_alias")));
+#define xmlUCSIsCatPf xmlUCSIsCatPf__internal_alias
+#endif
+
+#ifdef LIBXML_UNICODE_ENABLED
+extern __typeof (xmlUCSIsCatPi) xmlUCSIsCatPi__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlUCSIsCatPi) xmlUCSIsCatPi __attribute((alias("xmlUCSIsCatPi__internal_alias")));
+#define xmlUCSIsCatPi xmlUCSIsCatPi__internal_alias
+#endif
+
+#ifdef LIBXML_UNICODE_ENABLED
+extern __typeof (xmlUCSIsCatPo) xmlUCSIsCatPo__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlUCSIsCatPo) xmlUCSIsCatPo __attribute((alias("xmlUCSIsCatPo__internal_alias")));
+#define xmlUCSIsCatPo xmlUCSIsCatPo__internal_alias
+#endif
+
+#ifdef LIBXML_UNICODE_ENABLED
+extern __typeof (xmlUCSIsCatPs) xmlUCSIsCatPs__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlUCSIsCatPs) xmlUCSIsCatPs __attribute((alias("xmlUCSIsCatPs__internal_alias")));
+#define xmlUCSIsCatPs xmlUCSIsCatPs__internal_alias
+#endif
+
+#ifdef LIBXML_UNICODE_ENABLED
+extern __typeof (xmlUCSIsCatS) xmlUCSIsCatS__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlUCSIsCatS) xmlUCSIsCatS __attribute((alias("xmlUCSIsCatS__internal_alias")));
+#define xmlUCSIsCatS xmlUCSIsCatS__internal_alias
+#endif
+
+#ifdef LIBXML_UNICODE_ENABLED
+extern __typeof (xmlUCSIsCatSc) xmlUCSIsCatSc__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlUCSIsCatSc) xmlUCSIsCatSc __attribute((alias("xmlUCSIsCatSc__internal_alias")));
+#define xmlUCSIsCatSc xmlUCSIsCatSc__internal_alias
+#endif
+
+#ifdef LIBXML_UNICODE_ENABLED
+extern __typeof (xmlUCSIsCatSk) xmlUCSIsCatSk__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlUCSIsCatSk) xmlUCSIsCatSk __attribute((alias("xmlUCSIsCatSk__internal_alias")));
+#define xmlUCSIsCatSk xmlUCSIsCatSk__internal_alias
+#endif
+
+#ifdef LIBXML_UNICODE_ENABLED
+extern __typeof (xmlUCSIsCatSm) xmlUCSIsCatSm__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlUCSIsCatSm) xmlUCSIsCatSm __attribute((alias("xmlUCSIsCatSm__internal_alias")));
+#define xmlUCSIsCatSm xmlUCSIsCatSm__internal_alias
+#endif
+
+#ifdef LIBXML_UNICODE_ENABLED
+extern __typeof (xmlUCSIsCatSo) xmlUCSIsCatSo__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlUCSIsCatSo) xmlUCSIsCatSo __attribute((alias("xmlUCSIsCatSo__internal_alias")));
+#define xmlUCSIsCatSo xmlUCSIsCatSo__internal_alias
+#endif
+
+#ifdef LIBXML_UNICODE_ENABLED
+extern __typeof (xmlUCSIsCatZ) xmlUCSIsCatZ__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlUCSIsCatZ) xmlUCSIsCatZ __attribute((alias("xmlUCSIsCatZ__internal_alias")));
+#define xmlUCSIsCatZ xmlUCSIsCatZ__internal_alias
+#endif
+
+#ifdef LIBXML_UNICODE_ENABLED
+extern __typeof (xmlUCSIsCatZl) xmlUCSIsCatZl__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlUCSIsCatZl) xmlUCSIsCatZl __attribute((alias("xmlUCSIsCatZl__internal_alias")));
+#define xmlUCSIsCatZl xmlUCSIsCatZl__internal_alias
+#endif
+
+#ifdef LIBXML_UNICODE_ENABLED
+extern __typeof (xmlUCSIsCatZp) xmlUCSIsCatZp__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlUCSIsCatZp) xmlUCSIsCatZp __attribute((alias("xmlUCSIsCatZp__internal_alias")));
+#define xmlUCSIsCatZp xmlUCSIsCatZp__internal_alias
+#endif
+
+#ifdef LIBXML_UNICODE_ENABLED
+extern __typeof (xmlUCSIsCatZs) xmlUCSIsCatZs__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlUCSIsCatZs) xmlUCSIsCatZs __attribute((alias("xmlUCSIsCatZs__internal_alias")));
+#define xmlUCSIsCatZs xmlUCSIsCatZs__internal_alias
+#endif
+
+#ifdef LIBXML_UNICODE_ENABLED
+extern __typeof (xmlUCSIsCherokee) xmlUCSIsCherokee__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlUCSIsCherokee) xmlUCSIsCherokee __attribute((alias("xmlUCSIsCherokee__internal_alias")));
+#define xmlUCSIsCherokee xmlUCSIsCherokee__internal_alias
+#endif
+
+#ifdef LIBXML_UNICODE_ENABLED
+extern __typeof (xmlUCSIsCombiningDiacriticalMarks) xmlUCSIsCombiningDiacriticalMarks__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlUCSIsCombiningDiacriticalMarks) xmlUCSIsCombiningDiacriticalMarks __attribute((alias("xmlUCSIsCombiningDiacriticalMarks__internal_alias")));
+#define xmlUCSIsCombiningDiacriticalMarks xmlUCSIsCombiningDiacriticalMarks__internal_alias
+#endif
+
+#ifdef LIBXML_UNICODE_ENABLED
+extern __typeof (xmlUCSIsCombiningDiacriticalMarksforSymbols) xmlUCSIsCombiningDiacriticalMarksforSymbols__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlUCSIsCombiningDiacriticalMarksforSymbols) xmlUCSIsCombiningDiacriticalMarksforSymbols __attribute((alias("xmlUCSIsCombiningDiacriticalMarksforSymbols__internal_alias")));
+#define xmlUCSIsCombiningDiacriticalMarksforSymbols xmlUCSIsCombiningDiacriticalMarksforSymbols__internal_alias
+#endif
+
+#ifdef LIBXML_UNICODE_ENABLED
+extern __typeof (xmlUCSIsCombiningHalfMarks) xmlUCSIsCombiningHalfMarks__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlUCSIsCombiningHalfMarks) xmlUCSIsCombiningHalfMarks __attribute((alias("xmlUCSIsCombiningHalfMarks__internal_alias")));
+#define xmlUCSIsCombiningHalfMarks xmlUCSIsCombiningHalfMarks__internal_alias
+#endif
+
+#ifdef LIBXML_UNICODE_ENABLED
+extern __typeof (xmlUCSIsCombiningMarksforSymbols) xmlUCSIsCombiningMarksforSymbols__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlUCSIsCombiningMarksforSymbols) xmlUCSIsCombiningMarksforSymbols __attribute((alias("xmlUCSIsCombiningMarksforSymbols__internal_alias")));
+#define xmlUCSIsCombiningMarksforSymbols xmlUCSIsCombiningMarksforSymbols__internal_alias
+#endif
+
+#ifdef LIBXML_UNICODE_ENABLED
+extern __typeof (xmlUCSIsControlPictures) xmlUCSIsControlPictures__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlUCSIsControlPictures) xmlUCSIsControlPictures __attribute((alias("xmlUCSIsControlPictures__internal_alias")));
+#define xmlUCSIsControlPictures xmlUCSIsControlPictures__internal_alias
+#endif
+
+#ifdef LIBXML_UNICODE_ENABLED
+extern __typeof (xmlUCSIsCurrencySymbols) xmlUCSIsCurrencySymbols__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlUCSIsCurrencySymbols) xmlUCSIsCurrencySymbols __attribute((alias("xmlUCSIsCurrencySymbols__internal_alias")));
+#define xmlUCSIsCurrencySymbols xmlUCSIsCurrencySymbols__internal_alias
+#endif
+
+#ifdef LIBXML_UNICODE_ENABLED
+extern __typeof (xmlUCSIsCypriotSyllabary) xmlUCSIsCypriotSyllabary__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlUCSIsCypriotSyllabary) xmlUCSIsCypriotSyllabary __attribute((alias("xmlUCSIsCypriotSyllabary__internal_alias")));
+#define xmlUCSIsCypriotSyllabary xmlUCSIsCypriotSyllabary__internal_alias
+#endif
+
+#ifdef LIBXML_UNICODE_ENABLED
+extern __typeof (xmlUCSIsCyrillic) xmlUCSIsCyrillic__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlUCSIsCyrillic) xmlUCSIsCyrillic __attribute((alias("xmlUCSIsCyrillic__internal_alias")));
+#define xmlUCSIsCyrillic xmlUCSIsCyrillic__internal_alias
+#endif
+
+#ifdef LIBXML_UNICODE_ENABLED
+extern __typeof (xmlUCSIsCyrillicSupplement) xmlUCSIsCyrillicSupplement__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlUCSIsCyrillicSupplement) xmlUCSIsCyrillicSupplement __attribute((alias("xmlUCSIsCyrillicSupplement__internal_alias")));
+#define xmlUCSIsCyrillicSupplement xmlUCSIsCyrillicSupplement__internal_alias
+#endif
+
+#ifdef LIBXML_UNICODE_ENABLED
+extern __typeof (xmlUCSIsDeseret) xmlUCSIsDeseret__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlUCSIsDeseret) xmlUCSIsDeseret __attribute((alias("xmlUCSIsDeseret__internal_alias")));
+#define xmlUCSIsDeseret xmlUCSIsDeseret__internal_alias
+#endif
+
+#ifdef LIBXML_UNICODE_ENABLED
+extern __typeof (xmlUCSIsDevanagari) xmlUCSIsDevanagari__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlUCSIsDevanagari) xmlUCSIsDevanagari __attribute((alias("xmlUCSIsDevanagari__internal_alias")));
+#define xmlUCSIsDevanagari xmlUCSIsDevanagari__internal_alias
+#endif
+
+#ifdef LIBXML_UNICODE_ENABLED
+extern __typeof (xmlUCSIsDingbats) xmlUCSIsDingbats__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlUCSIsDingbats) xmlUCSIsDingbats __attribute((alias("xmlUCSIsDingbats__internal_alias")));
+#define xmlUCSIsDingbats xmlUCSIsDingbats__internal_alias
+#endif
+
+#ifdef LIBXML_UNICODE_ENABLED
+extern __typeof (xmlUCSIsEnclosedAlphanumerics) xmlUCSIsEnclosedAlphanumerics__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlUCSIsEnclosedAlphanumerics) xmlUCSIsEnclosedAlphanumerics __attribute((alias("xmlUCSIsEnclosedAlphanumerics__internal_alias")));
+#define xmlUCSIsEnclosedAlphanumerics xmlUCSIsEnclosedAlphanumerics__internal_alias
+#endif
+
+#ifdef LIBXML_UNICODE_ENABLED
+extern __typeof (xmlUCSIsEnclosedCJKLettersandMonths) xmlUCSIsEnclosedCJKLettersandMonths__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlUCSIsEnclosedCJKLettersandMonths) xmlUCSIsEnclosedCJKLettersandMonths __attribute((alias("xmlUCSIsEnclosedCJKLettersandMonths__internal_alias")));
+#define xmlUCSIsEnclosedCJKLettersandMonths xmlUCSIsEnclosedCJKLettersandMonths__internal_alias
+#endif
+
+#ifdef LIBXML_UNICODE_ENABLED
+extern __typeof (xmlUCSIsEthiopic) xmlUCSIsEthiopic__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlUCSIsEthiopic) xmlUCSIsEthiopic __attribute((alias("xmlUCSIsEthiopic__internal_alias")));
+#define xmlUCSIsEthiopic xmlUCSIsEthiopic__internal_alias
+#endif
+
+#ifdef LIBXML_UNICODE_ENABLED
+extern __typeof (xmlUCSIsGeneralPunctuation) xmlUCSIsGeneralPunctuation__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlUCSIsGeneralPunctuation) xmlUCSIsGeneralPunctuation __attribute((alias("xmlUCSIsGeneralPunctuation__internal_alias")));
+#define xmlUCSIsGeneralPunctuation xmlUCSIsGeneralPunctuation__internal_alias
+#endif
+
+#ifdef LIBXML_UNICODE_ENABLED
+extern __typeof (xmlUCSIsGeometricShapes) xmlUCSIsGeometricShapes__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlUCSIsGeometricShapes) xmlUCSIsGeometricShapes __attribute((alias("xmlUCSIsGeometricShapes__internal_alias")));
+#define xmlUCSIsGeometricShapes xmlUCSIsGeometricShapes__internal_alias
+#endif
+
+#ifdef LIBXML_UNICODE_ENABLED
+extern __typeof (xmlUCSIsGeorgian) xmlUCSIsGeorgian__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlUCSIsGeorgian) xmlUCSIsGeorgian __attribute((alias("xmlUCSIsGeorgian__internal_alias")));
+#define xmlUCSIsGeorgian xmlUCSIsGeorgian__internal_alias
+#endif
+
+#ifdef LIBXML_UNICODE_ENABLED
+extern __typeof (xmlUCSIsGothic) xmlUCSIsGothic__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlUCSIsGothic) xmlUCSIsGothic __attribute((alias("xmlUCSIsGothic__internal_alias")));
+#define xmlUCSIsGothic xmlUCSIsGothic__internal_alias
+#endif
+
+#ifdef LIBXML_UNICODE_ENABLED
+extern __typeof (xmlUCSIsGreek) xmlUCSIsGreek__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlUCSIsGreek) xmlUCSIsGreek __attribute((alias("xmlUCSIsGreek__internal_alias")));
+#define xmlUCSIsGreek xmlUCSIsGreek__internal_alias
+#endif
+
+#ifdef LIBXML_UNICODE_ENABLED
+extern __typeof (xmlUCSIsGreekExtended) xmlUCSIsGreekExtended__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlUCSIsGreekExtended) xmlUCSIsGreekExtended __attribute((alias("xmlUCSIsGreekExtended__internal_alias")));
+#define xmlUCSIsGreekExtended xmlUCSIsGreekExtended__internal_alias
+#endif
+
+#ifdef LIBXML_UNICODE_ENABLED
+extern __typeof (xmlUCSIsGreekandCoptic) xmlUCSIsGreekandCoptic__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlUCSIsGreekandCoptic) xmlUCSIsGreekandCoptic __attribute((alias("xmlUCSIsGreekandCoptic__internal_alias")));
+#define xmlUCSIsGreekandCoptic xmlUCSIsGreekandCoptic__internal_alias
+#endif
+
+#ifdef LIBXML_UNICODE_ENABLED
+extern __typeof (xmlUCSIsGujarati) xmlUCSIsGujarati__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlUCSIsGujarati) xmlUCSIsGujarati __attribute((alias("xmlUCSIsGujarati__internal_alias")));
+#define xmlUCSIsGujarati xmlUCSIsGujarati__internal_alias
+#endif
+
+#ifdef LIBXML_UNICODE_ENABLED
+extern __typeof (xmlUCSIsGurmukhi) xmlUCSIsGurmukhi__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlUCSIsGurmukhi) xmlUCSIsGurmukhi __attribute((alias("xmlUCSIsGurmukhi__internal_alias")));
+#define xmlUCSIsGurmukhi xmlUCSIsGurmukhi__internal_alias
+#endif
+
+#ifdef LIBXML_UNICODE_ENABLED
+extern __typeof (xmlUCSIsHalfwidthandFullwidthForms) xmlUCSIsHalfwidthandFullwidthForms__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlUCSIsHalfwidthandFullwidthForms) xmlUCSIsHalfwidthandFullwidthForms __attribute((alias("xmlUCSIsHalfwidthandFullwidthForms__internal_alias")));
+#define xmlUCSIsHalfwidthandFullwidthForms xmlUCSIsHalfwidthandFullwidthForms__internal_alias
+#endif
+
+#ifdef LIBXML_UNICODE_ENABLED
+extern __typeof (xmlUCSIsHangulCompatibilityJamo) xmlUCSIsHangulCompatibilityJamo__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlUCSIsHangulCompatibilityJamo) xmlUCSIsHangulCompatibilityJamo __attribute((alias("xmlUCSIsHangulCompatibilityJamo__internal_alias")));
+#define xmlUCSIsHangulCompatibilityJamo xmlUCSIsHangulCompatibilityJamo__internal_alias
+#endif
+
+#ifdef LIBXML_UNICODE_ENABLED
+extern __typeof (xmlUCSIsHangulJamo) xmlUCSIsHangulJamo__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlUCSIsHangulJamo) xmlUCSIsHangulJamo __attribute((alias("xmlUCSIsHangulJamo__internal_alias")));
+#define xmlUCSIsHangulJamo xmlUCSIsHangulJamo__internal_alias
+#endif
+
+#ifdef LIBXML_UNICODE_ENABLED
+extern __typeof (xmlUCSIsHangulSyllables) xmlUCSIsHangulSyllables__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlUCSIsHangulSyllables) xmlUCSIsHangulSyllables __attribute((alias("xmlUCSIsHangulSyllables__internal_alias")));
+#define xmlUCSIsHangulSyllables xmlUCSIsHangulSyllables__internal_alias
+#endif
+
+#ifdef LIBXML_UNICODE_ENABLED
+extern __typeof (xmlUCSIsHanunoo) xmlUCSIsHanunoo__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlUCSIsHanunoo) xmlUCSIsHanunoo __attribute((alias("xmlUCSIsHanunoo__internal_alias")));
+#define xmlUCSIsHanunoo xmlUCSIsHanunoo__internal_alias
+#endif
+
+#ifdef LIBXML_UNICODE_ENABLED
+extern __typeof (xmlUCSIsHebrew) xmlUCSIsHebrew__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlUCSIsHebrew) xmlUCSIsHebrew __attribute((alias("xmlUCSIsHebrew__internal_alias")));
+#define xmlUCSIsHebrew xmlUCSIsHebrew__internal_alias
+#endif
+
+#ifdef LIBXML_UNICODE_ENABLED
+extern __typeof (xmlUCSIsHighPrivateUseSurrogates) xmlUCSIsHighPrivateUseSurrogates__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlUCSIsHighPrivateUseSurrogates) xmlUCSIsHighPrivateUseSurrogates __attribute((alias("xmlUCSIsHighPrivateUseSurrogates__internal_alias")));
+#define xmlUCSIsHighPrivateUseSurrogates xmlUCSIsHighPrivateUseSurrogates__internal_alias
+#endif
+
+#ifdef LIBXML_UNICODE_ENABLED
+extern __typeof (xmlUCSIsHighSurrogates) xmlUCSIsHighSurrogates__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlUCSIsHighSurrogates) xmlUCSIsHighSurrogates __attribute((alias("xmlUCSIsHighSurrogates__internal_alias")));
+#define xmlUCSIsHighSurrogates xmlUCSIsHighSurrogates__internal_alias
+#endif
+
+#ifdef LIBXML_UNICODE_ENABLED
+extern __typeof (xmlUCSIsHiragana) xmlUCSIsHiragana__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlUCSIsHiragana) xmlUCSIsHiragana __attribute((alias("xmlUCSIsHiragana__internal_alias")));
+#define xmlUCSIsHiragana xmlUCSIsHiragana__internal_alias
+#endif
+
+#ifdef LIBXML_UNICODE_ENABLED
+extern __typeof (xmlUCSIsIPAExtensions) xmlUCSIsIPAExtensions__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlUCSIsIPAExtensions) xmlUCSIsIPAExtensions __attribute((alias("xmlUCSIsIPAExtensions__internal_alias")));
+#define xmlUCSIsIPAExtensions xmlUCSIsIPAExtensions__internal_alias
+#endif
+
+#ifdef LIBXML_UNICODE_ENABLED
+extern __typeof (xmlUCSIsIdeographicDescriptionCharacters) xmlUCSIsIdeographicDescriptionCharacters__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlUCSIsIdeographicDescriptionCharacters) xmlUCSIsIdeographicDescriptionCharacters __attribute((alias("xmlUCSIsIdeographicDescriptionCharacters__internal_alias")));
+#define xmlUCSIsIdeographicDescriptionCharacters xmlUCSIsIdeographicDescriptionCharacters__internal_alias
+#endif
+
+#ifdef LIBXML_UNICODE_ENABLED
+extern __typeof (xmlUCSIsKanbun) xmlUCSIsKanbun__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlUCSIsKanbun) xmlUCSIsKanbun __attribute((alias("xmlUCSIsKanbun__internal_alias")));
+#define xmlUCSIsKanbun xmlUCSIsKanbun__internal_alias
+#endif
+
+#ifdef LIBXML_UNICODE_ENABLED
+extern __typeof (xmlUCSIsKangxiRadicals) xmlUCSIsKangxiRadicals__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlUCSIsKangxiRadicals) xmlUCSIsKangxiRadicals __attribute((alias("xmlUCSIsKangxiRadicals__internal_alias")));
+#define xmlUCSIsKangxiRadicals xmlUCSIsKangxiRadicals__internal_alias
+#endif
+
+#ifdef LIBXML_UNICODE_ENABLED
+extern __typeof (xmlUCSIsKannada) xmlUCSIsKannada__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlUCSIsKannada) xmlUCSIsKannada __attribute((alias("xmlUCSIsKannada__internal_alias")));
+#define xmlUCSIsKannada xmlUCSIsKannada__internal_alias
+#endif
+
+#ifdef LIBXML_UNICODE_ENABLED
+extern __typeof (xmlUCSIsKatakana) xmlUCSIsKatakana__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlUCSIsKatakana) xmlUCSIsKatakana __attribute((alias("xmlUCSIsKatakana__internal_alias")));
+#define xmlUCSIsKatakana xmlUCSIsKatakana__internal_alias
+#endif
+
+#ifdef LIBXML_UNICODE_ENABLED
+extern __typeof (xmlUCSIsKatakanaPhoneticExtensions) xmlUCSIsKatakanaPhoneticExtensions__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlUCSIsKatakanaPhoneticExtensions) xmlUCSIsKatakanaPhoneticExtensions __attribute((alias("xmlUCSIsKatakanaPhoneticExtensions__internal_alias")));
+#define xmlUCSIsKatakanaPhoneticExtensions xmlUCSIsKatakanaPhoneticExtensions__internal_alias
+#endif
+
+#ifdef LIBXML_UNICODE_ENABLED
+extern __typeof (xmlUCSIsKhmer) xmlUCSIsKhmer__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlUCSIsKhmer) xmlUCSIsKhmer __attribute((alias("xmlUCSIsKhmer__internal_alias")));
+#define xmlUCSIsKhmer xmlUCSIsKhmer__internal_alias
+#endif
+
+#ifdef LIBXML_UNICODE_ENABLED
+extern __typeof (xmlUCSIsKhmerSymbols) xmlUCSIsKhmerSymbols__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlUCSIsKhmerSymbols) xmlUCSIsKhmerSymbols __attribute((alias("xmlUCSIsKhmerSymbols__internal_alias")));
+#define xmlUCSIsKhmerSymbols xmlUCSIsKhmerSymbols__internal_alias
+#endif
+
+#ifdef LIBXML_UNICODE_ENABLED
+extern __typeof (xmlUCSIsLao) xmlUCSIsLao__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlUCSIsLao) xmlUCSIsLao __attribute((alias("xmlUCSIsLao__internal_alias")));
+#define xmlUCSIsLao xmlUCSIsLao__internal_alias
+#endif
+
+#ifdef LIBXML_UNICODE_ENABLED
+extern __typeof (xmlUCSIsLatin1Supplement) xmlUCSIsLatin1Supplement__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlUCSIsLatin1Supplement) xmlUCSIsLatin1Supplement __attribute((alias("xmlUCSIsLatin1Supplement__internal_alias")));
+#define xmlUCSIsLatin1Supplement xmlUCSIsLatin1Supplement__internal_alias
+#endif
+
+#ifdef LIBXML_UNICODE_ENABLED
+extern __typeof (xmlUCSIsLatinExtendedA) xmlUCSIsLatinExtendedA__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlUCSIsLatinExtendedA) xmlUCSIsLatinExtendedA __attribute((alias("xmlUCSIsLatinExtendedA__internal_alias")));
+#define xmlUCSIsLatinExtendedA xmlUCSIsLatinExtendedA__internal_alias
+#endif
+
+#ifdef LIBXML_UNICODE_ENABLED
+extern __typeof (xmlUCSIsLatinExtendedAdditional) xmlUCSIsLatinExtendedAdditional__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlUCSIsLatinExtendedAdditional) xmlUCSIsLatinExtendedAdditional __attribute((alias("xmlUCSIsLatinExtendedAdditional__internal_alias")));
+#define xmlUCSIsLatinExtendedAdditional xmlUCSIsLatinExtendedAdditional__internal_alias
+#endif
+
+#ifdef LIBXML_UNICODE_ENABLED
+extern __typeof (xmlUCSIsLatinExtendedB) xmlUCSIsLatinExtendedB__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlUCSIsLatinExtendedB) xmlUCSIsLatinExtendedB __attribute((alias("xmlUCSIsLatinExtendedB__internal_alias")));
+#define xmlUCSIsLatinExtendedB xmlUCSIsLatinExtendedB__internal_alias
+#endif
+
+#ifdef LIBXML_UNICODE_ENABLED
+extern __typeof (xmlUCSIsLetterlikeSymbols) xmlUCSIsLetterlikeSymbols__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlUCSIsLetterlikeSymbols) xmlUCSIsLetterlikeSymbols __attribute((alias("xmlUCSIsLetterlikeSymbols__internal_alias")));
+#define xmlUCSIsLetterlikeSymbols xmlUCSIsLetterlikeSymbols__internal_alias
+#endif
+
+#ifdef LIBXML_UNICODE_ENABLED
+extern __typeof (xmlUCSIsLimbu) xmlUCSIsLimbu__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlUCSIsLimbu) xmlUCSIsLimbu __attribute((alias("xmlUCSIsLimbu__internal_alias")));
+#define xmlUCSIsLimbu xmlUCSIsLimbu__internal_alias
+#endif
+
+#ifdef LIBXML_UNICODE_ENABLED
+extern __typeof (xmlUCSIsLinearBIdeograms) xmlUCSIsLinearBIdeograms__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlUCSIsLinearBIdeograms) xmlUCSIsLinearBIdeograms __attribute((alias("xmlUCSIsLinearBIdeograms__internal_alias")));
+#define xmlUCSIsLinearBIdeograms xmlUCSIsLinearBIdeograms__internal_alias
+#endif
+
+#ifdef LIBXML_UNICODE_ENABLED
+extern __typeof (xmlUCSIsLinearBSyllabary) xmlUCSIsLinearBSyllabary__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlUCSIsLinearBSyllabary) xmlUCSIsLinearBSyllabary __attribute((alias("xmlUCSIsLinearBSyllabary__internal_alias")));
+#define xmlUCSIsLinearBSyllabary xmlUCSIsLinearBSyllabary__internal_alias
+#endif
+
+#ifdef LIBXML_UNICODE_ENABLED
+extern __typeof (xmlUCSIsLowSurrogates) xmlUCSIsLowSurrogates__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlUCSIsLowSurrogates) xmlUCSIsLowSurrogates __attribute((alias("xmlUCSIsLowSurrogates__internal_alias")));
+#define xmlUCSIsLowSurrogates xmlUCSIsLowSurrogates__internal_alias
+#endif
+
+#ifdef LIBXML_UNICODE_ENABLED
+extern __typeof (xmlUCSIsMalayalam) xmlUCSIsMalayalam__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlUCSIsMalayalam) xmlUCSIsMalayalam __attribute((alias("xmlUCSIsMalayalam__internal_alias")));
+#define xmlUCSIsMalayalam xmlUCSIsMalayalam__internal_alias
+#endif
+
+#ifdef LIBXML_UNICODE_ENABLED
+extern __typeof (xmlUCSIsMathematicalAlphanumericSymbols) xmlUCSIsMathematicalAlphanumericSymbols__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlUCSIsMathematicalAlphanumericSymbols) xmlUCSIsMathematicalAlphanumericSymbols __attribute((alias("xmlUCSIsMathematicalAlphanumericSymbols__internal_alias")));
+#define xmlUCSIsMathematicalAlphanumericSymbols xmlUCSIsMathematicalAlphanumericSymbols__internal_alias
+#endif
+
+#ifdef LIBXML_UNICODE_ENABLED
+extern __typeof (xmlUCSIsMathematicalOperators) xmlUCSIsMathematicalOperators__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlUCSIsMathematicalOperators) xmlUCSIsMathematicalOperators __attribute((alias("xmlUCSIsMathematicalOperators__internal_alias")));
+#define xmlUCSIsMathematicalOperators xmlUCSIsMathematicalOperators__internal_alias
+#endif
+
+#ifdef LIBXML_UNICODE_ENABLED
+extern __typeof (xmlUCSIsMiscellaneousMathematicalSymbolsA) xmlUCSIsMiscellaneousMathematicalSymbolsA__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlUCSIsMiscellaneousMathematicalSymbolsA) xmlUCSIsMiscellaneousMathematicalSymbolsA __attribute((alias("xmlUCSIsMiscellaneousMathematicalSymbolsA__internal_alias")));
+#define xmlUCSIsMiscellaneousMathematicalSymbolsA xmlUCSIsMiscellaneousMathematicalSymbolsA__internal_alias
+#endif
+
+#ifdef LIBXML_UNICODE_ENABLED
+extern __typeof (xmlUCSIsMiscellaneousMathematicalSymbolsB) xmlUCSIsMiscellaneousMathematicalSymbolsB__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlUCSIsMiscellaneousMathematicalSymbolsB) xmlUCSIsMiscellaneousMathematicalSymbolsB __attribute((alias("xmlUCSIsMiscellaneousMathematicalSymbolsB__internal_alias")));
+#define xmlUCSIsMiscellaneousMathematicalSymbolsB xmlUCSIsMiscellaneousMathematicalSymbolsB__internal_alias
+#endif
+
+#ifdef LIBXML_UNICODE_ENABLED
+extern __typeof (xmlUCSIsMiscellaneousSymbols) xmlUCSIsMiscellaneousSymbols__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlUCSIsMiscellaneousSymbols) xmlUCSIsMiscellaneousSymbols __attribute((alias("xmlUCSIsMiscellaneousSymbols__internal_alias")));
+#define xmlUCSIsMiscellaneousSymbols xmlUCSIsMiscellaneousSymbols__internal_alias
+#endif
+
+#ifdef LIBXML_UNICODE_ENABLED
+extern __typeof (xmlUCSIsMiscellaneousSymbolsandArrows) xmlUCSIsMiscellaneousSymbolsandArrows__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlUCSIsMiscellaneousSymbolsandArrows) xmlUCSIsMiscellaneousSymbolsandArrows __attribute((alias("xmlUCSIsMiscellaneousSymbolsandArrows__internal_alias")));
+#define xmlUCSIsMiscellaneousSymbolsandArrows xmlUCSIsMiscellaneousSymbolsandArrows__internal_alias
+#endif
+
+#ifdef LIBXML_UNICODE_ENABLED
+extern __typeof (xmlUCSIsMiscellaneousTechnical) xmlUCSIsMiscellaneousTechnical__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlUCSIsMiscellaneousTechnical) xmlUCSIsMiscellaneousTechnical __attribute((alias("xmlUCSIsMiscellaneousTechnical__internal_alias")));
+#define xmlUCSIsMiscellaneousTechnical xmlUCSIsMiscellaneousTechnical__internal_alias
+#endif
+
+#ifdef LIBXML_UNICODE_ENABLED
+extern __typeof (xmlUCSIsMongolian) xmlUCSIsMongolian__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlUCSIsMongolian) xmlUCSIsMongolian __attribute((alias("xmlUCSIsMongolian__internal_alias")));
+#define xmlUCSIsMongolian xmlUCSIsMongolian__internal_alias
+#endif
+
+#ifdef LIBXML_UNICODE_ENABLED
+extern __typeof (xmlUCSIsMusicalSymbols) xmlUCSIsMusicalSymbols__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlUCSIsMusicalSymbols) xmlUCSIsMusicalSymbols __attribute((alias("xmlUCSIsMusicalSymbols__internal_alias")));
+#define xmlUCSIsMusicalSymbols xmlUCSIsMusicalSymbols__internal_alias
+#endif
+
+#ifdef LIBXML_UNICODE_ENABLED
+extern __typeof (xmlUCSIsMyanmar) xmlUCSIsMyanmar__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlUCSIsMyanmar) xmlUCSIsMyanmar __attribute((alias("xmlUCSIsMyanmar__internal_alias")));
+#define xmlUCSIsMyanmar xmlUCSIsMyanmar__internal_alias
+#endif
+
+#ifdef LIBXML_UNICODE_ENABLED
+extern __typeof (xmlUCSIsNumberForms) xmlUCSIsNumberForms__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlUCSIsNumberForms) xmlUCSIsNumberForms __attribute((alias("xmlUCSIsNumberForms__internal_alias")));
+#define xmlUCSIsNumberForms xmlUCSIsNumberForms__internal_alias
+#endif
+
+#ifdef LIBXML_UNICODE_ENABLED
+extern __typeof (xmlUCSIsOgham) xmlUCSIsOgham__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlUCSIsOgham) xmlUCSIsOgham __attribute((alias("xmlUCSIsOgham__internal_alias")));
+#define xmlUCSIsOgham xmlUCSIsOgham__internal_alias
+#endif
+
+#ifdef LIBXML_UNICODE_ENABLED
+extern __typeof (xmlUCSIsOldItalic) xmlUCSIsOldItalic__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlUCSIsOldItalic) xmlUCSIsOldItalic __attribute((alias("xmlUCSIsOldItalic__internal_alias")));
+#define xmlUCSIsOldItalic xmlUCSIsOldItalic__internal_alias
+#endif
+
+#ifdef LIBXML_UNICODE_ENABLED
+extern __typeof (xmlUCSIsOpticalCharacterRecognition) xmlUCSIsOpticalCharacterRecognition__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlUCSIsOpticalCharacterRecognition) xmlUCSIsOpticalCharacterRecognition __attribute((alias("xmlUCSIsOpticalCharacterRecognition__internal_alias")));
+#define xmlUCSIsOpticalCharacterRecognition xmlUCSIsOpticalCharacterRecognition__internal_alias
+#endif
+
+#ifdef LIBXML_UNICODE_ENABLED
+extern __typeof (xmlUCSIsOriya) xmlUCSIsOriya__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlUCSIsOriya) xmlUCSIsOriya __attribute((alias("xmlUCSIsOriya__internal_alias")));
+#define xmlUCSIsOriya xmlUCSIsOriya__internal_alias
+#endif
+
+#ifdef LIBXML_UNICODE_ENABLED
+extern __typeof (xmlUCSIsOsmanya) xmlUCSIsOsmanya__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlUCSIsOsmanya) xmlUCSIsOsmanya __attribute((alias("xmlUCSIsOsmanya__internal_alias")));
+#define xmlUCSIsOsmanya xmlUCSIsOsmanya__internal_alias
+#endif
+
+#ifdef LIBXML_UNICODE_ENABLED
+extern __typeof (xmlUCSIsPhoneticExtensions) xmlUCSIsPhoneticExtensions__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlUCSIsPhoneticExtensions) xmlUCSIsPhoneticExtensions __attribute((alias("xmlUCSIsPhoneticExtensions__internal_alias")));
+#define xmlUCSIsPhoneticExtensions xmlUCSIsPhoneticExtensions__internal_alias
+#endif
+
+#ifdef LIBXML_UNICODE_ENABLED
+extern __typeof (xmlUCSIsPrivateUse) xmlUCSIsPrivateUse__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlUCSIsPrivateUse) xmlUCSIsPrivateUse __attribute((alias("xmlUCSIsPrivateUse__internal_alias")));
+#define xmlUCSIsPrivateUse xmlUCSIsPrivateUse__internal_alias
+#endif
+
+#ifdef LIBXML_UNICODE_ENABLED
+extern __typeof (xmlUCSIsPrivateUseArea) xmlUCSIsPrivateUseArea__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlUCSIsPrivateUseArea) xmlUCSIsPrivateUseArea __attribute((alias("xmlUCSIsPrivateUseArea__internal_alias")));
+#define xmlUCSIsPrivateUseArea xmlUCSIsPrivateUseArea__internal_alias
+#endif
+
+#ifdef LIBXML_UNICODE_ENABLED
+extern __typeof (xmlUCSIsRunic) xmlUCSIsRunic__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlUCSIsRunic) xmlUCSIsRunic __attribute((alias("xmlUCSIsRunic__internal_alias")));
+#define xmlUCSIsRunic xmlUCSIsRunic__internal_alias
+#endif
+
+#ifdef LIBXML_UNICODE_ENABLED
+extern __typeof (xmlUCSIsShavian) xmlUCSIsShavian__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlUCSIsShavian) xmlUCSIsShavian __attribute((alias("xmlUCSIsShavian__internal_alias")));
+#define xmlUCSIsShavian xmlUCSIsShavian__internal_alias
+#endif
+
+#ifdef LIBXML_UNICODE_ENABLED
+extern __typeof (xmlUCSIsSinhala) xmlUCSIsSinhala__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlUCSIsSinhala) xmlUCSIsSinhala __attribute((alias("xmlUCSIsSinhala__internal_alias")));
+#define xmlUCSIsSinhala xmlUCSIsSinhala__internal_alias
+#endif
+
+#ifdef LIBXML_UNICODE_ENABLED
+extern __typeof (xmlUCSIsSmallFormVariants) xmlUCSIsSmallFormVariants__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlUCSIsSmallFormVariants) xmlUCSIsSmallFormVariants __attribute((alias("xmlUCSIsSmallFormVariants__internal_alias")));
+#define xmlUCSIsSmallFormVariants xmlUCSIsSmallFormVariants__internal_alias
+#endif
+
+#ifdef LIBXML_UNICODE_ENABLED
+extern __typeof (xmlUCSIsSpacingModifierLetters) xmlUCSIsSpacingModifierLetters__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlUCSIsSpacingModifierLetters) xmlUCSIsSpacingModifierLetters __attribute((alias("xmlUCSIsSpacingModifierLetters__internal_alias")));
+#define xmlUCSIsSpacingModifierLetters xmlUCSIsSpacingModifierLetters__internal_alias
+#endif
+
+#ifdef LIBXML_UNICODE_ENABLED
+extern __typeof (xmlUCSIsSpecials) xmlUCSIsSpecials__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlUCSIsSpecials) xmlUCSIsSpecials __attribute((alias("xmlUCSIsSpecials__internal_alias")));
+#define xmlUCSIsSpecials xmlUCSIsSpecials__internal_alias
+#endif
+
+#ifdef LIBXML_UNICODE_ENABLED
+extern __typeof (xmlUCSIsSuperscriptsandSubscripts) xmlUCSIsSuperscriptsandSubscripts__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlUCSIsSuperscriptsandSubscripts) xmlUCSIsSuperscriptsandSubscripts __attribute((alias("xmlUCSIsSuperscriptsandSubscripts__internal_alias")));
+#define xmlUCSIsSuperscriptsandSubscripts xmlUCSIsSuperscriptsandSubscripts__internal_alias
+#endif
+
+#ifdef LIBXML_UNICODE_ENABLED
+extern __typeof (xmlUCSIsSupplementalArrowsA) xmlUCSIsSupplementalArrowsA__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlUCSIsSupplementalArrowsA) xmlUCSIsSupplementalArrowsA __attribute((alias("xmlUCSIsSupplementalArrowsA__internal_alias")));
+#define xmlUCSIsSupplementalArrowsA xmlUCSIsSupplementalArrowsA__internal_alias
+#endif
+
+#ifdef LIBXML_UNICODE_ENABLED
+extern __typeof (xmlUCSIsSupplementalArrowsB) xmlUCSIsSupplementalArrowsB__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlUCSIsSupplementalArrowsB) xmlUCSIsSupplementalArrowsB __attribute((alias("xmlUCSIsSupplementalArrowsB__internal_alias")));
+#define xmlUCSIsSupplementalArrowsB xmlUCSIsSupplementalArrowsB__internal_alias
+#endif
+
+#ifdef LIBXML_UNICODE_ENABLED
+extern __typeof (xmlUCSIsSupplementalMathematicalOperators) xmlUCSIsSupplementalMathematicalOperators__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlUCSIsSupplementalMathematicalOperators) xmlUCSIsSupplementalMathematicalOperators __attribute((alias("xmlUCSIsSupplementalMathematicalOperators__internal_alias")));
+#define xmlUCSIsSupplementalMathematicalOperators xmlUCSIsSupplementalMathematicalOperators__internal_alias
+#endif
+
+#ifdef LIBXML_UNICODE_ENABLED
+extern __typeof (xmlUCSIsSupplementaryPrivateUseAreaA) xmlUCSIsSupplementaryPrivateUseAreaA__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlUCSIsSupplementaryPrivateUseAreaA) xmlUCSIsSupplementaryPrivateUseAreaA __attribute((alias("xmlUCSIsSupplementaryPrivateUseAreaA__internal_alias")));
+#define xmlUCSIsSupplementaryPrivateUseAreaA xmlUCSIsSupplementaryPrivateUseAreaA__internal_alias
+#endif
+
+#ifdef LIBXML_UNICODE_ENABLED
+extern __typeof (xmlUCSIsSupplementaryPrivateUseAreaB) xmlUCSIsSupplementaryPrivateUseAreaB__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlUCSIsSupplementaryPrivateUseAreaB) xmlUCSIsSupplementaryPrivateUseAreaB __attribute((alias("xmlUCSIsSupplementaryPrivateUseAreaB__internal_alias")));
+#define xmlUCSIsSupplementaryPrivateUseAreaB xmlUCSIsSupplementaryPrivateUseAreaB__internal_alias
+#endif
+
+#ifdef LIBXML_UNICODE_ENABLED
+extern __typeof (xmlUCSIsSyriac) xmlUCSIsSyriac__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlUCSIsSyriac) xmlUCSIsSyriac __attribute((alias("xmlUCSIsSyriac__internal_alias")));
+#define xmlUCSIsSyriac xmlUCSIsSyriac__internal_alias
+#endif
+
+#ifdef LIBXML_UNICODE_ENABLED
+extern __typeof (xmlUCSIsTagalog) xmlUCSIsTagalog__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlUCSIsTagalog) xmlUCSIsTagalog __attribute((alias("xmlUCSIsTagalog__internal_alias")));
+#define xmlUCSIsTagalog xmlUCSIsTagalog__internal_alias
+#endif
+
+#ifdef LIBXML_UNICODE_ENABLED
+extern __typeof (xmlUCSIsTagbanwa) xmlUCSIsTagbanwa__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlUCSIsTagbanwa) xmlUCSIsTagbanwa __attribute((alias("xmlUCSIsTagbanwa__internal_alias")));
+#define xmlUCSIsTagbanwa xmlUCSIsTagbanwa__internal_alias
+#endif
+
+#ifdef LIBXML_UNICODE_ENABLED
+extern __typeof (xmlUCSIsTags) xmlUCSIsTags__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlUCSIsTags) xmlUCSIsTags __attribute((alias("xmlUCSIsTags__internal_alias")));
+#define xmlUCSIsTags xmlUCSIsTags__internal_alias
+#endif
+
+#ifdef LIBXML_UNICODE_ENABLED
+extern __typeof (xmlUCSIsTaiLe) xmlUCSIsTaiLe__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlUCSIsTaiLe) xmlUCSIsTaiLe __attribute((alias("xmlUCSIsTaiLe__internal_alias")));
+#define xmlUCSIsTaiLe xmlUCSIsTaiLe__internal_alias
+#endif
+
+#ifdef LIBXML_UNICODE_ENABLED
+extern __typeof (xmlUCSIsTaiXuanJingSymbols) xmlUCSIsTaiXuanJingSymbols__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlUCSIsTaiXuanJingSymbols) xmlUCSIsTaiXuanJingSymbols __attribute((alias("xmlUCSIsTaiXuanJingSymbols__internal_alias")));
+#define xmlUCSIsTaiXuanJingSymbols xmlUCSIsTaiXuanJingSymbols__internal_alias
+#endif
+
+#ifdef LIBXML_UNICODE_ENABLED
+extern __typeof (xmlUCSIsTamil) xmlUCSIsTamil__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlUCSIsTamil) xmlUCSIsTamil __attribute((alias("xmlUCSIsTamil__internal_alias")));
+#define xmlUCSIsTamil xmlUCSIsTamil__internal_alias
+#endif
+
+#ifdef LIBXML_UNICODE_ENABLED
+extern __typeof (xmlUCSIsTelugu) xmlUCSIsTelugu__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlUCSIsTelugu) xmlUCSIsTelugu __attribute((alias("xmlUCSIsTelugu__internal_alias")));
+#define xmlUCSIsTelugu xmlUCSIsTelugu__internal_alias
+#endif
+
+#ifdef LIBXML_UNICODE_ENABLED
+extern __typeof (xmlUCSIsThaana) xmlUCSIsThaana__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlUCSIsThaana) xmlUCSIsThaana __attribute((alias("xmlUCSIsThaana__internal_alias")));
+#define xmlUCSIsThaana xmlUCSIsThaana__internal_alias
+#endif
+
+#ifdef LIBXML_UNICODE_ENABLED
+extern __typeof (xmlUCSIsThai) xmlUCSIsThai__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlUCSIsThai) xmlUCSIsThai __attribute((alias("xmlUCSIsThai__internal_alias")));
+#define xmlUCSIsThai xmlUCSIsThai__internal_alias
+#endif
+
+#ifdef LIBXML_UNICODE_ENABLED
+extern __typeof (xmlUCSIsTibetan) xmlUCSIsTibetan__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlUCSIsTibetan) xmlUCSIsTibetan __attribute((alias("xmlUCSIsTibetan__internal_alias")));
+#define xmlUCSIsTibetan xmlUCSIsTibetan__internal_alias
+#endif
+
+#ifdef LIBXML_UNICODE_ENABLED
+extern __typeof (xmlUCSIsUgaritic) xmlUCSIsUgaritic__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlUCSIsUgaritic) xmlUCSIsUgaritic __attribute((alias("xmlUCSIsUgaritic__internal_alias")));
+#define xmlUCSIsUgaritic xmlUCSIsUgaritic__internal_alias
+#endif
+
+#ifdef LIBXML_UNICODE_ENABLED
+extern __typeof (xmlUCSIsUnifiedCanadianAboriginalSyllabics) xmlUCSIsUnifiedCanadianAboriginalSyllabics__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlUCSIsUnifiedCanadianAboriginalSyllabics) xmlUCSIsUnifiedCanadianAboriginalSyllabics __attribute((alias("xmlUCSIsUnifiedCanadianAboriginalSyllabics__internal_alias")));
+#define xmlUCSIsUnifiedCanadianAboriginalSyllabics xmlUCSIsUnifiedCanadianAboriginalSyllabics__internal_alias
+#endif
+
+#ifdef LIBXML_UNICODE_ENABLED
+extern __typeof (xmlUCSIsVariationSelectors) xmlUCSIsVariationSelectors__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlUCSIsVariationSelectors) xmlUCSIsVariationSelectors __attribute((alias("xmlUCSIsVariationSelectors__internal_alias")));
+#define xmlUCSIsVariationSelectors xmlUCSIsVariationSelectors__internal_alias
+#endif
+
+#ifdef LIBXML_UNICODE_ENABLED
+extern __typeof (xmlUCSIsVariationSelectorsSupplement) xmlUCSIsVariationSelectorsSupplement__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlUCSIsVariationSelectorsSupplement) xmlUCSIsVariationSelectorsSupplement __attribute((alias("xmlUCSIsVariationSelectorsSupplement__internal_alias")));
+#define xmlUCSIsVariationSelectorsSupplement xmlUCSIsVariationSelectorsSupplement__internal_alias
+#endif
+
+#ifdef LIBXML_UNICODE_ENABLED
+extern __typeof (xmlUCSIsYiRadicals) xmlUCSIsYiRadicals__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlUCSIsYiRadicals) xmlUCSIsYiRadicals __attribute((alias("xmlUCSIsYiRadicals__internal_alias")));
+#define xmlUCSIsYiRadicals xmlUCSIsYiRadicals__internal_alias
+#endif
+
+#ifdef LIBXML_UNICODE_ENABLED
+extern __typeof (xmlUCSIsYiSyllables) xmlUCSIsYiSyllables__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlUCSIsYiSyllables) xmlUCSIsYiSyllables __attribute((alias("xmlUCSIsYiSyllables__internal_alias")));
+#define xmlUCSIsYiSyllables xmlUCSIsYiSyllables__internal_alias
+#endif
+
+#ifdef LIBXML_UNICODE_ENABLED
+extern __typeof (xmlUCSIsYijingHexagramSymbols) xmlUCSIsYijingHexagramSymbols__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlUCSIsYijingHexagramSymbols) xmlUCSIsYijingHexagramSymbols __attribute((alias("xmlUCSIsYijingHexagramSymbols__internal_alias")));
+#define xmlUCSIsYijingHexagramSymbols xmlUCSIsYijingHexagramSymbols__internal_alias
+#endif
+
+extern __typeof (xmlURIEscape) xmlURIEscape__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlURIEscape) xmlURIEscape __attribute((alias("xmlURIEscape__internal_alias")));
+#define xmlURIEscape xmlURIEscape__internal_alias
+
+extern __typeof (xmlURIEscapeStr) xmlURIEscapeStr__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlURIEscapeStr) xmlURIEscapeStr __attribute((alias("xmlURIEscapeStr__internal_alias")));
+#define xmlURIEscapeStr xmlURIEscapeStr__internal_alias
+
+extern __typeof (xmlURIUnescapeString) xmlURIUnescapeString__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlURIUnescapeString) xmlURIUnescapeString __attribute((alias("xmlURIUnescapeString__internal_alias")));
+#define xmlURIUnescapeString xmlURIUnescapeString__internal_alias
+
+extern __typeof (xmlUTF8Charcmp) xmlUTF8Charcmp__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlUTF8Charcmp) xmlUTF8Charcmp __attribute((alias("xmlUTF8Charcmp__internal_alias")));
+#define xmlUTF8Charcmp xmlUTF8Charcmp__internal_alias
+
+extern __typeof (xmlUTF8Size) xmlUTF8Size__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlUTF8Size) xmlUTF8Size __attribute((alias("xmlUTF8Size__internal_alias")));
+#define xmlUTF8Size xmlUTF8Size__internal_alias
+
+extern __typeof (xmlUTF8Strlen) xmlUTF8Strlen__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlUTF8Strlen) xmlUTF8Strlen __attribute((alias("xmlUTF8Strlen__internal_alias")));
+#define xmlUTF8Strlen xmlUTF8Strlen__internal_alias
+
+extern __typeof (xmlUTF8Strloc) xmlUTF8Strloc__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlUTF8Strloc) xmlUTF8Strloc __attribute((alias("xmlUTF8Strloc__internal_alias")));
+#define xmlUTF8Strloc xmlUTF8Strloc__internal_alias
+
+extern __typeof (xmlUTF8Strndup) xmlUTF8Strndup__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlUTF8Strndup) xmlUTF8Strndup __attribute((alias("xmlUTF8Strndup__internal_alias")));
+#define xmlUTF8Strndup xmlUTF8Strndup__internal_alias
+
+extern __typeof (xmlUTF8Strpos) xmlUTF8Strpos__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlUTF8Strpos) xmlUTF8Strpos __attribute((alias("xmlUTF8Strpos__internal_alias")));
+#define xmlUTF8Strpos xmlUTF8Strpos__internal_alias
+
+extern __typeof (xmlUTF8Strsize) xmlUTF8Strsize__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlUTF8Strsize) xmlUTF8Strsize __attribute((alias("xmlUTF8Strsize__internal_alias")));
+#define xmlUTF8Strsize xmlUTF8Strsize__internal_alias
+
+extern __typeof (xmlUTF8Strsub) xmlUTF8Strsub__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlUTF8Strsub) xmlUTF8Strsub __attribute((alias("xmlUTF8Strsub__internal_alias")));
+#define xmlUTF8Strsub xmlUTF8Strsub__internal_alias
+
+extern __typeof (xmlUnlinkNode) xmlUnlinkNode__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlUnlinkNode) xmlUnlinkNode __attribute((alias("xmlUnlinkNode__internal_alias")));
+#define xmlUnlinkNode xmlUnlinkNode__internal_alias
+
+extern __typeof (xmlUnlockLibrary) xmlUnlockLibrary__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlUnlockLibrary) xmlUnlockLibrary __attribute((alias("xmlUnlockLibrary__internal_alias")));
+#define xmlUnlockLibrary xmlUnlockLibrary__internal_alias
+
+#ifdef LIBXML_TREE_ENABLED
+extern __typeof (xmlUnsetNsProp) xmlUnsetNsProp__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlUnsetNsProp) xmlUnsetNsProp __attribute((alias("xmlUnsetNsProp__internal_alias")));
+#define xmlUnsetNsProp xmlUnsetNsProp__internal_alias
+#endif
+
+#ifdef LIBXML_TREE_ENABLED
+extern __typeof (xmlUnsetProp) xmlUnsetProp__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlUnsetProp) xmlUnsetProp __attribute((alias("xmlUnsetProp__internal_alias")));
+#define xmlUnsetProp xmlUnsetProp__internal_alias
+#endif
+
+#ifdef LIBXML_REGEXP_ENABLED
+extern __typeof (xmlValidBuildContentModel) xmlValidBuildContentModel__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlValidBuildContentModel) xmlValidBuildContentModel __attribute((alias("xmlValidBuildContentModel__internal_alias")));
+#define xmlValidBuildContentModel xmlValidBuildContentModel__internal_alias
+#endif
+
+#ifdef LIBXML_VALID_ENABLED
+extern __typeof (xmlValidCtxtNormalizeAttributeValue) xmlValidCtxtNormalizeAttributeValue__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlValidCtxtNormalizeAttributeValue) xmlValidCtxtNormalizeAttributeValue __attribute((alias("xmlValidCtxtNormalizeAttributeValue__internal_alias")));
+#define xmlValidCtxtNormalizeAttributeValue xmlValidCtxtNormalizeAttributeValue__internal_alias
+#endif
+
+extern __typeof (xmlValidGetPotentialChildren) xmlValidGetPotentialChildren__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlValidGetPotentialChildren) xmlValidGetPotentialChildren __attribute((alias("xmlValidGetPotentialChildren__internal_alias")));
+#define xmlValidGetPotentialChildren xmlValidGetPotentialChildren__internal_alias
+
+extern __typeof (xmlValidGetValidElements) xmlValidGetValidElements__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlValidGetValidElements) xmlValidGetValidElements __attribute((alias("xmlValidGetValidElements__internal_alias")));
+#define xmlValidGetValidElements xmlValidGetValidElements__internal_alias
+
+#ifdef LIBXML_VALID_ENABLED
+extern __typeof (xmlValidNormalizeAttributeValue) xmlValidNormalizeAttributeValue__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlValidNormalizeAttributeValue) xmlValidNormalizeAttributeValue __attribute((alias("xmlValidNormalizeAttributeValue__internal_alias")));
+#define xmlValidNormalizeAttributeValue xmlValidNormalizeAttributeValue__internal_alias
+#endif
+
+#ifdef LIBXML_VALID_ENABLED
+extern __typeof (xmlValidateAttributeDecl) xmlValidateAttributeDecl__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlValidateAttributeDecl) xmlValidateAttributeDecl __attribute((alias("xmlValidateAttributeDecl__internal_alias")));
+#define xmlValidateAttributeDecl xmlValidateAttributeDecl__internal_alias
+#endif
+
+#ifdef LIBXML_VALID_ENABLED
+extern __typeof (xmlValidateAttributeValue) xmlValidateAttributeValue__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlValidateAttributeValue) xmlValidateAttributeValue __attribute((alias("xmlValidateAttributeValue__internal_alias")));
+#define xmlValidateAttributeValue xmlValidateAttributeValue__internal_alias
+#endif
+
+#ifdef LIBXML_VALID_ENABLED
+extern __typeof (xmlValidateDocument) xmlValidateDocument__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlValidateDocument) xmlValidateDocument __attribute((alias("xmlValidateDocument__internal_alias")));
+#define xmlValidateDocument xmlValidateDocument__internal_alias
+#endif
+
+#ifdef LIBXML_VALID_ENABLED
+extern __typeof (xmlValidateDocumentFinal) xmlValidateDocumentFinal__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlValidateDocumentFinal) xmlValidateDocumentFinal __attribute((alias("xmlValidateDocumentFinal__internal_alias")));
+#define xmlValidateDocumentFinal xmlValidateDocumentFinal__internal_alias
+#endif
+
+#ifdef LIBXML_VALID_ENABLED
+extern __typeof (xmlValidateDtd) xmlValidateDtd__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlValidateDtd) xmlValidateDtd __attribute((alias("xmlValidateDtd__internal_alias")));
+#define xmlValidateDtd xmlValidateDtd__internal_alias
+#endif
+
+#ifdef LIBXML_VALID_ENABLED
+extern __typeof (xmlValidateDtdFinal) xmlValidateDtdFinal__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlValidateDtdFinal) xmlValidateDtdFinal __attribute((alias("xmlValidateDtdFinal__internal_alias")));
+#define xmlValidateDtdFinal xmlValidateDtdFinal__internal_alias
+#endif
+
+#ifdef LIBXML_VALID_ENABLED
+extern __typeof (xmlValidateElement) xmlValidateElement__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlValidateElement) xmlValidateElement __attribute((alias("xmlValidateElement__internal_alias")));
+#define xmlValidateElement xmlValidateElement__internal_alias
+#endif
+
+#ifdef LIBXML_VALID_ENABLED
+extern __typeof (xmlValidateElementDecl) xmlValidateElementDecl__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlValidateElementDecl) xmlValidateElementDecl __attribute((alias("xmlValidateElementDecl__internal_alias")));
+#define xmlValidateElementDecl xmlValidateElementDecl__internal_alias
+#endif
+
+extern __typeof (xmlValidateNCName) xmlValidateNCName__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlValidateNCName) xmlValidateNCName __attribute((alias("xmlValidateNCName__internal_alias")));
+#define xmlValidateNCName xmlValidateNCName__internal_alias
+
+extern __typeof (xmlValidateNMToken) xmlValidateNMToken__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlValidateNMToken) xmlValidateNMToken __attribute((alias("xmlValidateNMToken__internal_alias")));
+#define xmlValidateNMToken xmlValidateNMToken__internal_alias
+
+extern __typeof (xmlValidateName) xmlValidateName__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlValidateName) xmlValidateName __attribute((alias("xmlValidateName__internal_alias")));
+#define xmlValidateName xmlValidateName__internal_alias
+
+#ifdef LIBXML_VALID_ENABLED
+extern __typeof (xmlValidateNameValue) xmlValidateNameValue__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlValidateNameValue) xmlValidateNameValue __attribute((alias("xmlValidateNameValue__internal_alias")));
+#define xmlValidateNameValue xmlValidateNameValue__internal_alias
+#endif
+
+#ifdef LIBXML_VALID_ENABLED
+extern __typeof (xmlValidateNamesValue) xmlValidateNamesValue__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlValidateNamesValue) xmlValidateNamesValue __attribute((alias("xmlValidateNamesValue__internal_alias")));
+#define xmlValidateNamesValue xmlValidateNamesValue__internal_alias
+#endif
+
+#ifdef LIBXML_VALID_ENABLED
+extern __typeof (xmlValidateNmtokenValue) xmlValidateNmtokenValue__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlValidateNmtokenValue) xmlValidateNmtokenValue __attribute((alias("xmlValidateNmtokenValue__internal_alias")));
+#define xmlValidateNmtokenValue xmlValidateNmtokenValue__internal_alias
+#endif
+
+#ifdef LIBXML_VALID_ENABLED
+extern __typeof (xmlValidateNmtokensValue) xmlValidateNmtokensValue__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlValidateNmtokensValue) xmlValidateNmtokensValue __attribute((alias("xmlValidateNmtokensValue__internal_alias")));
+#define xmlValidateNmtokensValue xmlValidateNmtokensValue__internal_alias
+#endif
+
+#ifdef LIBXML_VALID_ENABLED
+extern __typeof (xmlValidateNotationDecl) xmlValidateNotationDecl__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlValidateNotationDecl) xmlValidateNotationDecl __attribute((alias("xmlValidateNotationDecl__internal_alias")));
+#define xmlValidateNotationDecl xmlValidateNotationDecl__internal_alias
+#endif
+
+#ifdef LIBXML_VALID_ENABLED
+extern __typeof (xmlValidateNotationUse) xmlValidateNotationUse__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlValidateNotationUse) xmlValidateNotationUse __attribute((alias("xmlValidateNotationUse__internal_alias")));
+#define xmlValidateNotationUse xmlValidateNotationUse__internal_alias
+#endif
+
+#ifdef LIBXML_VALID_ENABLED
+extern __typeof (xmlValidateOneAttribute) xmlValidateOneAttribute__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlValidateOneAttribute) xmlValidateOneAttribute __attribute((alias("xmlValidateOneAttribute__internal_alias")));
+#define xmlValidateOneAttribute xmlValidateOneAttribute__internal_alias
+#endif
+
+#ifdef LIBXML_VALID_ENABLED
+extern __typeof (xmlValidateOneElement) xmlValidateOneElement__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlValidateOneElement) xmlValidateOneElement __attribute((alias("xmlValidateOneElement__internal_alias")));
+#define xmlValidateOneElement xmlValidateOneElement__internal_alias
+#endif
+
+#ifdef LIBXML_VALID_ENABLED
+extern __typeof (xmlValidateOneNamespace) xmlValidateOneNamespace__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlValidateOneNamespace) xmlValidateOneNamespace __attribute((alias("xmlValidateOneNamespace__internal_alias")));
+#define xmlValidateOneNamespace xmlValidateOneNamespace__internal_alias
+#endif
+
+#ifdef LIBXML_REGEXP_ENABLED
+extern __typeof (xmlValidatePopElement) xmlValidatePopElement__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlValidatePopElement) xmlValidatePopElement __attribute((alias("xmlValidatePopElement__internal_alias")));
+#define xmlValidatePopElement xmlValidatePopElement__internal_alias
+#endif
+
+#ifdef LIBXML_REGEXP_ENABLED
+extern __typeof (xmlValidatePushCData) xmlValidatePushCData__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlValidatePushCData) xmlValidatePushCData __attribute((alias("xmlValidatePushCData__internal_alias")));
+#define xmlValidatePushCData xmlValidatePushCData__internal_alias
+#endif
+
+#ifdef LIBXML_REGEXP_ENABLED
+extern __typeof (xmlValidatePushElement) xmlValidatePushElement__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlValidatePushElement) xmlValidatePushElement __attribute((alias("xmlValidatePushElement__internal_alias")));
+#define xmlValidatePushElement xmlValidatePushElement__internal_alias
+#endif
+
+extern __typeof (xmlValidateQName) xmlValidateQName__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlValidateQName) xmlValidateQName __attribute((alias("xmlValidateQName__internal_alias")));
+#define xmlValidateQName xmlValidateQName__internal_alias
+
+#ifdef LIBXML_VALID_ENABLED
+extern __typeof (xmlValidateRoot) xmlValidateRoot__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlValidateRoot) xmlValidateRoot __attribute((alias("xmlValidateRoot__internal_alias")));
+#define xmlValidateRoot xmlValidateRoot__internal_alias
+#endif
+
+#ifdef LIBXML_XINCLUDE_ENABLED
+extern __typeof (xmlXIncludeFreeContext) xmlXIncludeFreeContext__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlXIncludeFreeContext) xmlXIncludeFreeContext __attribute((alias("xmlXIncludeFreeContext__internal_alias")));
+#define xmlXIncludeFreeContext xmlXIncludeFreeContext__internal_alias
+#endif
+
+#ifdef LIBXML_XINCLUDE_ENABLED
+extern __typeof (xmlXIncludeNewContext) xmlXIncludeNewContext__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlXIncludeNewContext) xmlXIncludeNewContext __attribute((alias("xmlXIncludeNewContext__internal_alias")));
+#define xmlXIncludeNewContext xmlXIncludeNewContext__internal_alias
+#endif
+
+#ifdef LIBXML_XINCLUDE_ENABLED
+extern __typeof (xmlXIncludeProcess) xmlXIncludeProcess__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlXIncludeProcess) xmlXIncludeProcess __attribute((alias("xmlXIncludeProcess__internal_alias")));
+#define xmlXIncludeProcess xmlXIncludeProcess__internal_alias
+#endif
+
+#ifdef LIBXML_XINCLUDE_ENABLED
+extern __typeof (xmlXIncludeProcessFlags) xmlXIncludeProcessFlags__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlXIncludeProcessFlags) xmlXIncludeProcessFlags __attribute((alias("xmlXIncludeProcessFlags__internal_alias")));
+#define xmlXIncludeProcessFlags xmlXIncludeProcessFlags__internal_alias
+#endif
+
+#ifdef LIBXML_XINCLUDE_ENABLED
+extern __typeof (xmlXIncludeProcessNode) xmlXIncludeProcessNode__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlXIncludeProcessNode) xmlXIncludeProcessNode __attribute((alias("xmlXIncludeProcessNode__internal_alias")));
+#define xmlXIncludeProcessNode xmlXIncludeProcessNode__internal_alias
+#endif
+
+#ifdef LIBXML_XINCLUDE_ENABLED
+extern __typeof (xmlXIncludeProcessTree) xmlXIncludeProcessTree__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlXIncludeProcessTree) xmlXIncludeProcessTree __attribute((alias("xmlXIncludeProcessTree__internal_alias")));
+#define xmlXIncludeProcessTree xmlXIncludeProcessTree__internal_alias
+#endif
+
+#ifdef LIBXML_XINCLUDE_ENABLED
+extern __typeof (xmlXIncludeProcessTreeFlags) xmlXIncludeProcessTreeFlags__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlXIncludeProcessTreeFlags) xmlXIncludeProcessTreeFlags __attribute((alias("xmlXIncludeProcessTreeFlags__internal_alias")));
+#define xmlXIncludeProcessTreeFlags xmlXIncludeProcessTreeFlags__internal_alias
+#endif
+
+#ifdef LIBXML_XINCLUDE_ENABLED
+extern __typeof (xmlXIncludeSetFlags) xmlXIncludeSetFlags__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlXIncludeSetFlags) xmlXIncludeSetFlags __attribute((alias("xmlXIncludeSetFlags__internal_alias")));
+#define xmlXIncludeSetFlags xmlXIncludeSetFlags__internal_alias
+#endif
+
+#ifdef LIBXML_XPATH_ENABLED
+extern __typeof (xmlXPathAddValues) xmlXPathAddValues__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlXPathAddValues) xmlXPathAddValues __attribute((alias("xmlXPathAddValues__internal_alias")));
+#define xmlXPathAddValues xmlXPathAddValues__internal_alias
+#endif
+
+#ifdef LIBXML_XPATH_ENABLED
+extern __typeof (xmlXPathBooleanFunction) xmlXPathBooleanFunction__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlXPathBooleanFunction) xmlXPathBooleanFunction __attribute((alias("xmlXPathBooleanFunction__internal_alias")));
+#define xmlXPathBooleanFunction xmlXPathBooleanFunction__internal_alias
+#endif
+
+#ifdef LIBXML_XPATH_ENABLED
+extern __typeof (xmlXPathCastBooleanToNumber) xmlXPathCastBooleanToNumber__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlXPathCastBooleanToNumber) xmlXPathCastBooleanToNumber __attribute((alias("xmlXPathCastBooleanToNumber__internal_alias")));
+#define xmlXPathCastBooleanToNumber xmlXPathCastBooleanToNumber__internal_alias
+#endif
+
+#ifdef LIBXML_XPATH_ENABLED
+extern __typeof (xmlXPathCastBooleanToString) xmlXPathCastBooleanToString__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlXPathCastBooleanToString) xmlXPathCastBooleanToString __attribute((alias("xmlXPathCastBooleanToString__internal_alias")));
+#define xmlXPathCastBooleanToString xmlXPathCastBooleanToString__internal_alias
+#endif
+
+#ifdef LIBXML_XPATH_ENABLED
+extern __typeof (xmlXPathCastNodeSetToBoolean) xmlXPathCastNodeSetToBoolean__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlXPathCastNodeSetToBoolean) xmlXPathCastNodeSetToBoolean __attribute((alias("xmlXPathCastNodeSetToBoolean__internal_alias")));
+#define xmlXPathCastNodeSetToBoolean xmlXPathCastNodeSetToBoolean__internal_alias
+#endif
+
+#ifdef LIBXML_XPATH_ENABLED
+extern __typeof (xmlXPathCastNodeSetToNumber) xmlXPathCastNodeSetToNumber__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlXPathCastNodeSetToNumber) xmlXPathCastNodeSetToNumber __attribute((alias("xmlXPathCastNodeSetToNumber__internal_alias")));
+#define xmlXPathCastNodeSetToNumber xmlXPathCastNodeSetToNumber__internal_alias
+#endif
+
+#ifdef LIBXML_XPATH_ENABLED
+extern __typeof (xmlXPathCastNodeSetToString) xmlXPathCastNodeSetToString__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlXPathCastNodeSetToString) xmlXPathCastNodeSetToString __attribute((alias("xmlXPathCastNodeSetToString__internal_alias")));
+#define xmlXPathCastNodeSetToString xmlXPathCastNodeSetToString__internal_alias
+#endif
+
+#ifdef LIBXML_XPATH_ENABLED
+extern __typeof (xmlXPathCastNodeToNumber) xmlXPathCastNodeToNumber__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlXPathCastNodeToNumber) xmlXPathCastNodeToNumber __attribute((alias("xmlXPathCastNodeToNumber__internal_alias")));
+#define xmlXPathCastNodeToNumber xmlXPathCastNodeToNumber__internal_alias
+#endif
+
+#ifdef LIBXML_XPATH_ENABLED
+extern __typeof (xmlXPathCastNodeToString) xmlXPathCastNodeToString__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlXPathCastNodeToString) xmlXPathCastNodeToString __attribute((alias("xmlXPathCastNodeToString__internal_alias")));
+#define xmlXPathCastNodeToString xmlXPathCastNodeToString__internal_alias
+#endif
+
+#ifdef LIBXML_XPATH_ENABLED
+extern __typeof (xmlXPathCastNumberToBoolean) xmlXPathCastNumberToBoolean__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlXPathCastNumberToBoolean) xmlXPathCastNumberToBoolean __attribute((alias("xmlXPathCastNumberToBoolean__internal_alias")));
+#define xmlXPathCastNumberToBoolean xmlXPathCastNumberToBoolean__internal_alias
+#endif
+
+#ifdef LIBXML_XPATH_ENABLED
+extern __typeof (xmlXPathCastNumberToString) xmlXPathCastNumberToString__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlXPathCastNumberToString) xmlXPathCastNumberToString __attribute((alias("xmlXPathCastNumberToString__internal_alias")));
+#define xmlXPathCastNumberToString xmlXPathCastNumberToString__internal_alias
+#endif
+
+#ifdef LIBXML_XPATH_ENABLED
+extern __typeof (xmlXPathCastStringToBoolean) xmlXPathCastStringToBoolean__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlXPathCastStringToBoolean) xmlXPathCastStringToBoolean __attribute((alias("xmlXPathCastStringToBoolean__internal_alias")));
+#define xmlXPathCastStringToBoolean xmlXPathCastStringToBoolean__internal_alias
+#endif
+
+#ifdef LIBXML_XPATH_ENABLED
+extern __typeof (xmlXPathCastStringToNumber) xmlXPathCastStringToNumber__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlXPathCastStringToNumber) xmlXPathCastStringToNumber __attribute((alias("xmlXPathCastStringToNumber__internal_alias")));
+#define xmlXPathCastStringToNumber xmlXPathCastStringToNumber__internal_alias
+#endif
+
+#ifdef LIBXML_XPATH_ENABLED
+extern __typeof (xmlXPathCastToBoolean) xmlXPathCastToBoolean__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlXPathCastToBoolean) xmlXPathCastToBoolean __attribute((alias("xmlXPathCastToBoolean__internal_alias")));
+#define xmlXPathCastToBoolean xmlXPathCastToBoolean__internal_alias
+#endif
+
+#ifdef LIBXML_XPATH_ENABLED
+extern __typeof (xmlXPathCastToNumber) xmlXPathCastToNumber__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlXPathCastToNumber) xmlXPathCastToNumber __attribute((alias("xmlXPathCastToNumber__internal_alias")));
+#define xmlXPathCastToNumber xmlXPathCastToNumber__internal_alias
+#endif
+
+#ifdef LIBXML_XPATH_ENABLED
+extern __typeof (xmlXPathCastToString) xmlXPathCastToString__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlXPathCastToString) xmlXPathCastToString __attribute((alias("xmlXPathCastToString__internal_alias")));
+#define xmlXPathCastToString xmlXPathCastToString__internal_alias
+#endif
+
+#ifdef LIBXML_XPATH_ENABLED
+extern __typeof (xmlXPathCeilingFunction) xmlXPathCeilingFunction__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlXPathCeilingFunction) xmlXPathCeilingFunction __attribute((alias("xmlXPathCeilingFunction__internal_alias")));
+#define xmlXPathCeilingFunction xmlXPathCeilingFunction__internal_alias
+#endif
+
+#ifdef LIBXML_XPATH_ENABLED
+extern __typeof (xmlXPathCmpNodes) xmlXPathCmpNodes__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlXPathCmpNodes) xmlXPathCmpNodes __attribute((alias("xmlXPathCmpNodes__internal_alias")));
+#define xmlXPathCmpNodes xmlXPathCmpNodes__internal_alias
+#endif
+
+#ifdef LIBXML_XPATH_ENABLED
+extern __typeof (xmlXPathCompareValues) xmlXPathCompareValues__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlXPathCompareValues) xmlXPathCompareValues __attribute((alias("xmlXPathCompareValues__internal_alias")));
+#define xmlXPathCompareValues xmlXPathCompareValues__internal_alias
+#endif
+
+#ifdef LIBXML_XPATH_ENABLED
+extern __typeof (xmlXPathCompile) xmlXPathCompile__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlXPathCompile) xmlXPathCompile __attribute((alias("xmlXPathCompile__internal_alias")));
+#define xmlXPathCompile xmlXPathCompile__internal_alias
+#endif
+
+#ifdef LIBXML_XPATH_ENABLED
+extern __typeof (xmlXPathCompiledEval) xmlXPathCompiledEval__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlXPathCompiledEval) xmlXPathCompiledEval __attribute((alias("xmlXPathCompiledEval__internal_alias")));
+#define xmlXPathCompiledEval xmlXPathCompiledEval__internal_alias
+#endif
+
+#ifdef LIBXML_XPATH_ENABLED
+extern __typeof (xmlXPathConcatFunction) xmlXPathConcatFunction__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlXPathConcatFunction) xmlXPathConcatFunction __attribute((alias("xmlXPathConcatFunction__internal_alias")));
+#define xmlXPathConcatFunction xmlXPathConcatFunction__internal_alias
+#endif
+
+#ifdef LIBXML_XPATH_ENABLED
+extern __typeof (xmlXPathContainsFunction) xmlXPathContainsFunction__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlXPathContainsFunction) xmlXPathContainsFunction __attribute((alias("xmlXPathContainsFunction__internal_alias")));
+#define xmlXPathContainsFunction xmlXPathContainsFunction__internal_alias
+#endif
+
+#ifdef LIBXML_XPATH_ENABLED
+extern __typeof (xmlXPathConvertBoolean) xmlXPathConvertBoolean__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlXPathConvertBoolean) xmlXPathConvertBoolean __attribute((alias("xmlXPathConvertBoolean__internal_alias")));
+#define xmlXPathConvertBoolean xmlXPathConvertBoolean__internal_alias
+#endif
+
+#ifdef LIBXML_XPATH_ENABLED
+extern __typeof (xmlXPathConvertNumber) xmlXPathConvertNumber__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlXPathConvertNumber) xmlXPathConvertNumber __attribute((alias("xmlXPathConvertNumber__internal_alias")));
+#define xmlXPathConvertNumber xmlXPathConvertNumber__internal_alias
+#endif
+
+#ifdef LIBXML_XPATH_ENABLED
+extern __typeof (xmlXPathConvertString) xmlXPathConvertString__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlXPathConvertString) xmlXPathConvertString __attribute((alias("xmlXPathConvertString__internal_alias")));
+#define xmlXPathConvertString xmlXPathConvertString__internal_alias
+#endif
+
+#ifdef LIBXML_XPATH_ENABLED
+extern __typeof (xmlXPathCountFunction) xmlXPathCountFunction__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlXPathCountFunction) xmlXPathCountFunction __attribute((alias("xmlXPathCountFunction__internal_alias")));
+#define xmlXPathCountFunction xmlXPathCountFunction__internal_alias
+#endif
+
+#ifdef LIBXML_XPATH_ENABLED
+extern __typeof (xmlXPathCtxtCompile) xmlXPathCtxtCompile__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlXPathCtxtCompile) xmlXPathCtxtCompile __attribute((alias("xmlXPathCtxtCompile__internal_alias")));
+#define xmlXPathCtxtCompile xmlXPathCtxtCompile__internal_alias
+#endif
+
+#ifdef LIBXML_XPATH_ENABLED
+#ifdef LIBXML_DEBUG_ENABLED
+extern __typeof (xmlXPathDebugDumpCompExpr) xmlXPathDebugDumpCompExpr__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlXPathDebugDumpCompExpr) xmlXPathDebugDumpCompExpr __attribute((alias("xmlXPathDebugDumpCompExpr__internal_alias")));
+#define xmlXPathDebugDumpCompExpr xmlXPathDebugDumpCompExpr__internal_alias
+#endif
+#endif
+
+#ifdef LIBXML_XPATH_ENABLED
+#ifdef LIBXML_DEBUG_ENABLED
+extern __typeof (xmlXPathDebugDumpObject) xmlXPathDebugDumpObject__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlXPathDebugDumpObject) xmlXPathDebugDumpObject __attribute((alias("xmlXPathDebugDumpObject__internal_alias")));
+#define xmlXPathDebugDumpObject xmlXPathDebugDumpObject__internal_alias
+#endif
+#endif
+
+#ifdef LIBXML_XPATH_ENABLED
+extern __typeof (xmlXPathDifference) xmlXPathDifference__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlXPathDifference) xmlXPathDifference __attribute((alias("xmlXPathDifference__internal_alias")));
+#define xmlXPathDifference xmlXPathDifference__internal_alias
+#endif
+
+#ifdef LIBXML_XPATH_ENABLED
+extern __typeof (xmlXPathDistinct) xmlXPathDistinct__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlXPathDistinct) xmlXPathDistinct __attribute((alias("xmlXPathDistinct__internal_alias")));
+#define xmlXPathDistinct xmlXPathDistinct__internal_alias
+#endif
+
+#ifdef LIBXML_XPATH_ENABLED
+extern __typeof (xmlXPathDistinctSorted) xmlXPathDistinctSorted__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlXPathDistinctSorted) xmlXPathDistinctSorted __attribute((alias("xmlXPathDistinctSorted__internal_alias")));
+#define xmlXPathDistinctSorted xmlXPathDistinctSorted__internal_alias
+#endif
+
+#ifdef LIBXML_XPATH_ENABLED
+extern __typeof (xmlXPathDivValues) xmlXPathDivValues__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlXPathDivValues) xmlXPathDivValues __attribute((alias("xmlXPathDivValues__internal_alias")));
+#define xmlXPathDivValues xmlXPathDivValues__internal_alias
+#endif
+
+#ifdef LIBXML_XPATH_ENABLED
+extern __typeof (xmlXPathEqualValues) xmlXPathEqualValues__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlXPathEqualValues) xmlXPathEqualValues __attribute((alias("xmlXPathEqualValues__internal_alias")));
+#define xmlXPathEqualValues xmlXPathEqualValues__internal_alias
+#endif
+
+#ifdef LIBXML_XPATH_ENABLED
+extern __typeof (xmlXPathErr) xmlXPathErr__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlXPathErr) xmlXPathErr __attribute((alias("xmlXPathErr__internal_alias")));
+#define xmlXPathErr xmlXPathErr__internal_alias
+#endif
+
+#ifdef LIBXML_XPATH_ENABLED
+extern __typeof (xmlXPathEval) xmlXPathEval__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlXPathEval) xmlXPathEval __attribute((alias("xmlXPathEval__internal_alias")));
+#define xmlXPathEval xmlXPathEval__internal_alias
+#endif
+
+#ifdef LIBXML_XPATH_ENABLED
+extern __typeof (xmlXPathEvalExpr) xmlXPathEvalExpr__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlXPathEvalExpr) xmlXPathEvalExpr __attribute((alias("xmlXPathEvalExpr__internal_alias")));
+#define xmlXPathEvalExpr xmlXPathEvalExpr__internal_alias
+#endif
+
+#ifdef LIBXML_XPATH_ENABLED
+extern __typeof (xmlXPathEvalExpression) xmlXPathEvalExpression__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlXPathEvalExpression) xmlXPathEvalExpression __attribute((alias("xmlXPathEvalExpression__internal_alias")));
+#define xmlXPathEvalExpression xmlXPathEvalExpression__internal_alias
+#endif
+
+#ifdef LIBXML_XPATH_ENABLED
+extern __typeof (xmlXPathEvalPredicate) xmlXPathEvalPredicate__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlXPathEvalPredicate) xmlXPathEvalPredicate __attribute((alias("xmlXPathEvalPredicate__internal_alias")));
+#define xmlXPathEvalPredicate xmlXPathEvalPredicate__internal_alias
+#endif
+
+#ifdef LIBXML_XPATH_ENABLED
+extern __typeof (xmlXPathEvaluatePredicateResult) xmlXPathEvaluatePredicateResult__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlXPathEvaluatePredicateResult) xmlXPathEvaluatePredicateResult __attribute((alias("xmlXPathEvaluatePredicateResult__internal_alias")));
+#define xmlXPathEvaluatePredicateResult xmlXPathEvaluatePredicateResult__internal_alias
+#endif
+
+#ifdef LIBXML_XPATH_ENABLED
+extern __typeof (xmlXPathFalseFunction) xmlXPathFalseFunction__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlXPathFalseFunction) xmlXPathFalseFunction __attribute((alias("xmlXPathFalseFunction__internal_alias")));
+#define xmlXPathFalseFunction xmlXPathFalseFunction__internal_alias
+#endif
+
+#ifdef LIBXML_XPATH_ENABLED
+extern __typeof (xmlXPathFloorFunction) xmlXPathFloorFunction__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlXPathFloorFunction) xmlXPathFloorFunction __attribute((alias("xmlXPathFloorFunction__internal_alias")));
+#define xmlXPathFloorFunction xmlXPathFloorFunction__internal_alias
+#endif
+
+#ifdef LIBXML_XPATH_ENABLED
+extern __typeof (xmlXPathFreeCompExpr) xmlXPathFreeCompExpr__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlXPathFreeCompExpr) xmlXPathFreeCompExpr __attribute((alias("xmlXPathFreeCompExpr__internal_alias")));
+#define xmlXPathFreeCompExpr xmlXPathFreeCompExpr__internal_alias
+#endif
+
+#ifdef LIBXML_XPATH_ENABLED
+extern __typeof (xmlXPathFreeContext) xmlXPathFreeContext__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlXPathFreeContext) xmlXPathFreeContext __attribute((alias("xmlXPathFreeContext__internal_alias")));
+#define xmlXPathFreeContext xmlXPathFreeContext__internal_alias
+#endif
+
+#ifdef LIBXML_XPATH_ENABLED
+extern __typeof (xmlXPathFreeNodeSet) xmlXPathFreeNodeSet__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlXPathFreeNodeSet) xmlXPathFreeNodeSet __attribute((alias("xmlXPathFreeNodeSet__internal_alias")));
+#define xmlXPathFreeNodeSet xmlXPathFreeNodeSet__internal_alias
+#endif
+
+#ifdef LIBXML_XPATH_ENABLED
+extern __typeof (xmlXPathFreeNodeSetList) xmlXPathFreeNodeSetList__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlXPathFreeNodeSetList) xmlXPathFreeNodeSetList __attribute((alias("xmlXPathFreeNodeSetList__internal_alias")));
+#define xmlXPathFreeNodeSetList xmlXPathFreeNodeSetList__internal_alias
+#endif
+
+#ifdef LIBXML_XPATH_ENABLED
+extern __typeof (xmlXPathFreeObject) xmlXPathFreeObject__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlXPathFreeObject) xmlXPathFreeObject __attribute((alias("xmlXPathFreeObject__internal_alias")));
+#define xmlXPathFreeObject xmlXPathFreeObject__internal_alias
+#endif
+
+#ifdef LIBXML_XPATH_ENABLED
+extern __typeof (xmlXPathFreeParserContext) xmlXPathFreeParserContext__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlXPathFreeParserContext) xmlXPathFreeParserContext __attribute((alias("xmlXPathFreeParserContext__internal_alias")));
+#define xmlXPathFreeParserContext xmlXPathFreeParserContext__internal_alias
+#endif
+
+#ifdef LIBXML_XPATH_ENABLED
+extern __typeof (xmlXPathFunctionLookup) xmlXPathFunctionLookup__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlXPathFunctionLookup) xmlXPathFunctionLookup __attribute((alias("xmlXPathFunctionLookup__internal_alias")));
+#define xmlXPathFunctionLookup xmlXPathFunctionLookup__internal_alias
+#endif
+
+#ifdef LIBXML_XPATH_ENABLED
+extern __typeof (xmlXPathFunctionLookupNS) xmlXPathFunctionLookupNS__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlXPathFunctionLookupNS) xmlXPathFunctionLookupNS __attribute((alias("xmlXPathFunctionLookupNS__internal_alias")));
+#define xmlXPathFunctionLookupNS xmlXPathFunctionLookupNS__internal_alias
+#endif
+
+#ifdef LIBXML_XPATH_ENABLED
+extern __typeof (xmlXPathHasSameNodes) xmlXPathHasSameNodes__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlXPathHasSameNodes) xmlXPathHasSameNodes __attribute((alias("xmlXPathHasSameNodes__internal_alias")));
+#define xmlXPathHasSameNodes xmlXPathHasSameNodes__internal_alias
+#endif
+
+#ifdef LIBXML_XPATH_ENABLED
+extern __typeof (xmlXPathIdFunction) xmlXPathIdFunction__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlXPathIdFunction) xmlXPathIdFunction __attribute((alias("xmlXPathIdFunction__internal_alias")));
+#define xmlXPathIdFunction xmlXPathIdFunction__internal_alias
+#endif
+
+#ifdef LIBXML_XPATH_ENABLED
+extern __typeof (xmlXPathInit) xmlXPathInit__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlXPathInit) xmlXPathInit __attribute((alias("xmlXPathInit__internal_alias")));
+#define xmlXPathInit xmlXPathInit__internal_alias
+#endif
+
+#ifdef LIBXML_XPATH_ENABLED
+extern __typeof (xmlXPathIntersection) xmlXPathIntersection__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlXPathIntersection) xmlXPathIntersection __attribute((alias("xmlXPathIntersection__internal_alias")));
+#define xmlXPathIntersection xmlXPathIntersection__internal_alias
+#endif
+
+#ifdef LIBXML_XPATH_ENABLED
+extern __typeof (xmlXPathIsInf) xmlXPathIsInf__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlXPathIsInf) xmlXPathIsInf __attribute((alias("xmlXPathIsInf__internal_alias")));
+#define xmlXPathIsInf xmlXPathIsInf__internal_alias
+#endif
+
+#ifdef LIBXML_XPATH_ENABLED
+extern __typeof (xmlXPathIsNaN) xmlXPathIsNaN__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlXPathIsNaN) xmlXPathIsNaN __attribute((alias("xmlXPathIsNaN__internal_alias")));
+#define xmlXPathIsNaN xmlXPathIsNaN__internal_alias
+#endif
+
+#ifdef LIBXML_XPATH_ENABLED
+extern __typeof (xmlXPathIsNodeType) xmlXPathIsNodeType__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlXPathIsNodeType) xmlXPathIsNodeType __attribute((alias("xmlXPathIsNodeType__internal_alias")));
+#define xmlXPathIsNodeType xmlXPathIsNodeType__internal_alias
+#endif
+
+#ifdef LIBXML_XPATH_ENABLED
+extern __typeof (xmlXPathLangFunction) xmlXPathLangFunction__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlXPathLangFunction) xmlXPathLangFunction __attribute((alias("xmlXPathLangFunction__internal_alias")));
+#define xmlXPathLangFunction xmlXPathLangFunction__internal_alias
+#endif
+
+#ifdef LIBXML_XPATH_ENABLED
+extern __typeof (xmlXPathLastFunction) xmlXPathLastFunction__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlXPathLastFunction) xmlXPathLastFunction __attribute((alias("xmlXPathLastFunction__internal_alias")));
+#define xmlXPathLastFunction xmlXPathLastFunction__internal_alias
+#endif
+
+#ifdef LIBXML_XPATH_ENABLED
+extern __typeof (xmlXPathLeading) xmlXPathLeading__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlXPathLeading) xmlXPathLeading __attribute((alias("xmlXPathLeading__internal_alias")));
+#define xmlXPathLeading xmlXPathLeading__internal_alias
+#endif
+
+#ifdef LIBXML_XPATH_ENABLED
+extern __typeof (xmlXPathLeadingSorted) xmlXPathLeadingSorted__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlXPathLeadingSorted) xmlXPathLeadingSorted __attribute((alias("xmlXPathLeadingSorted__internal_alias")));
+#define xmlXPathLeadingSorted xmlXPathLeadingSorted__internal_alias
+#endif
+
+#ifdef LIBXML_XPATH_ENABLED
+extern __typeof (xmlXPathLocalNameFunction) xmlXPathLocalNameFunction__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlXPathLocalNameFunction) xmlXPathLocalNameFunction __attribute((alias("xmlXPathLocalNameFunction__internal_alias")));
+#define xmlXPathLocalNameFunction xmlXPathLocalNameFunction__internal_alias
+#endif
+
+#ifdef LIBXML_XPATH_ENABLED
+extern __typeof (xmlXPathModValues) xmlXPathModValues__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlXPathModValues) xmlXPathModValues __attribute((alias("xmlXPathModValues__internal_alias")));
+#define xmlXPathModValues xmlXPathModValues__internal_alias
+#endif
+
+#ifdef LIBXML_XPATH_ENABLED
+extern __typeof (xmlXPathMultValues) xmlXPathMultValues__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlXPathMultValues) xmlXPathMultValues __attribute((alias("xmlXPathMultValues__internal_alias")));
+#define xmlXPathMultValues xmlXPathMultValues__internal_alias
+#endif
+
+#ifdef LIBXML_XPATH_ENABLED
+extern __typeof (xmlXPathNamespaceURIFunction) xmlXPathNamespaceURIFunction__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlXPathNamespaceURIFunction) xmlXPathNamespaceURIFunction __attribute((alias("xmlXPathNamespaceURIFunction__internal_alias")));
+#define xmlXPathNamespaceURIFunction xmlXPathNamespaceURIFunction__internal_alias
+#endif
+
+#ifdef LIBXML_XPATH_ENABLED
+extern __typeof (xmlXPathNewBoolean) xmlXPathNewBoolean__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlXPathNewBoolean) xmlXPathNewBoolean __attribute((alias("xmlXPathNewBoolean__internal_alias")));
+#define xmlXPathNewBoolean xmlXPathNewBoolean__internal_alias
+#endif
+
+#ifdef LIBXML_XPATH_ENABLED
+extern __typeof (xmlXPathNewCString) xmlXPathNewCString__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlXPathNewCString) xmlXPathNewCString __attribute((alias("xmlXPathNewCString__internal_alias")));
+#define xmlXPathNewCString xmlXPathNewCString__internal_alias
+#endif
+
+#ifdef LIBXML_XPATH_ENABLED
+extern __typeof (xmlXPathNewContext) xmlXPathNewContext__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlXPathNewContext) xmlXPathNewContext __attribute((alias("xmlXPathNewContext__internal_alias")));
+#define xmlXPathNewContext xmlXPathNewContext__internal_alias
+#endif
+
+#ifdef LIBXML_XPATH_ENABLED
+extern __typeof (xmlXPathNewFloat) xmlXPathNewFloat__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlXPathNewFloat) xmlXPathNewFloat __attribute((alias("xmlXPathNewFloat__internal_alias")));
+#define xmlXPathNewFloat xmlXPathNewFloat__internal_alias
+#endif
+
+#ifdef LIBXML_XPATH_ENABLED
+extern __typeof (xmlXPathNewNodeSet) xmlXPathNewNodeSet__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlXPathNewNodeSet) xmlXPathNewNodeSet __attribute((alias("xmlXPathNewNodeSet__internal_alias")));
+#define xmlXPathNewNodeSet xmlXPathNewNodeSet__internal_alias
+#endif
+
+#ifdef LIBXML_XPATH_ENABLED
+extern __typeof (xmlXPathNewNodeSetList) xmlXPathNewNodeSetList__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlXPathNewNodeSetList) xmlXPathNewNodeSetList __attribute((alias("xmlXPathNewNodeSetList__internal_alias")));
+#define xmlXPathNewNodeSetList xmlXPathNewNodeSetList__internal_alias
+#endif
+
+#ifdef LIBXML_XPATH_ENABLED
+extern __typeof (xmlXPathNewParserContext) xmlXPathNewParserContext__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlXPathNewParserContext) xmlXPathNewParserContext __attribute((alias("xmlXPathNewParserContext__internal_alias")));
+#define xmlXPathNewParserContext xmlXPathNewParserContext__internal_alias
+#endif
+
+#ifdef LIBXML_XPATH_ENABLED
+extern __typeof (xmlXPathNewString) xmlXPathNewString__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlXPathNewString) xmlXPathNewString __attribute((alias("xmlXPathNewString__internal_alias")));
+#define xmlXPathNewString xmlXPathNewString__internal_alias
+#endif
+
+#ifdef LIBXML_XPATH_ENABLED
+extern __typeof (xmlXPathNewValueTree) xmlXPathNewValueTree__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlXPathNewValueTree) xmlXPathNewValueTree __attribute((alias("xmlXPathNewValueTree__internal_alias")));
+#define xmlXPathNewValueTree xmlXPathNewValueTree__internal_alias
+#endif
+
+#ifdef LIBXML_XPATH_ENABLED
+extern __typeof (xmlXPathNextAncestor) xmlXPathNextAncestor__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlXPathNextAncestor) xmlXPathNextAncestor __attribute((alias("xmlXPathNextAncestor__internal_alias")));
+#define xmlXPathNextAncestor xmlXPathNextAncestor__internal_alias
+#endif
+
+#ifdef LIBXML_XPATH_ENABLED
+extern __typeof (xmlXPathNextAncestorOrSelf) xmlXPathNextAncestorOrSelf__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlXPathNextAncestorOrSelf) xmlXPathNextAncestorOrSelf __attribute((alias("xmlXPathNextAncestorOrSelf__internal_alias")));
+#define xmlXPathNextAncestorOrSelf xmlXPathNextAncestorOrSelf__internal_alias
+#endif
+
+#ifdef LIBXML_XPATH_ENABLED
+extern __typeof (xmlXPathNextAttribute) xmlXPathNextAttribute__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlXPathNextAttribute) xmlXPathNextAttribute __attribute((alias("xmlXPathNextAttribute__internal_alias")));
+#define xmlXPathNextAttribute xmlXPathNextAttribute__internal_alias
+#endif
+
+#ifdef LIBXML_XPATH_ENABLED
+extern __typeof (xmlXPathNextChild) xmlXPathNextChild__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlXPathNextChild) xmlXPathNextChild __attribute((alias("xmlXPathNextChild__internal_alias")));
+#define xmlXPathNextChild xmlXPathNextChild__internal_alias
+#endif
+
+#ifdef LIBXML_XPATH_ENABLED
+extern __typeof (xmlXPathNextDescendant) xmlXPathNextDescendant__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlXPathNextDescendant) xmlXPathNextDescendant __attribute((alias("xmlXPathNextDescendant__internal_alias")));
+#define xmlXPathNextDescendant xmlXPathNextDescendant__internal_alias
+#endif
+
+#ifdef LIBXML_XPATH_ENABLED
+extern __typeof (xmlXPathNextDescendantOrSelf) xmlXPathNextDescendantOrSelf__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlXPathNextDescendantOrSelf) xmlXPathNextDescendantOrSelf __attribute((alias("xmlXPathNextDescendantOrSelf__internal_alias")));
+#define xmlXPathNextDescendantOrSelf xmlXPathNextDescendantOrSelf__internal_alias
+#endif
+
+#ifdef LIBXML_XPATH_ENABLED
+extern __typeof (xmlXPathNextFollowing) xmlXPathNextFollowing__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlXPathNextFollowing) xmlXPathNextFollowing __attribute((alias("xmlXPathNextFollowing__internal_alias")));
+#define xmlXPathNextFollowing xmlXPathNextFollowing__internal_alias
+#endif
+
+#ifdef LIBXML_XPATH_ENABLED
+extern __typeof (xmlXPathNextFollowingSibling) xmlXPathNextFollowingSibling__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlXPathNextFollowingSibling) xmlXPathNextFollowingSibling __attribute((alias("xmlXPathNextFollowingSibling__internal_alias")));
+#define xmlXPathNextFollowingSibling xmlXPathNextFollowingSibling__internal_alias
+#endif
+
+#ifdef LIBXML_XPATH_ENABLED
+extern __typeof (xmlXPathNextNamespace) xmlXPathNextNamespace__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlXPathNextNamespace) xmlXPathNextNamespace __attribute((alias("xmlXPathNextNamespace__internal_alias")));
+#define xmlXPathNextNamespace xmlXPathNextNamespace__internal_alias
+#endif
+
+#ifdef LIBXML_XPATH_ENABLED
+extern __typeof (xmlXPathNextParent) xmlXPathNextParent__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlXPathNextParent) xmlXPathNextParent __attribute((alias("xmlXPathNextParent__internal_alias")));
+#define xmlXPathNextParent xmlXPathNextParent__internal_alias
+#endif
+
+#ifdef LIBXML_XPATH_ENABLED
+extern __typeof (xmlXPathNextPreceding) xmlXPathNextPreceding__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlXPathNextPreceding) xmlXPathNextPreceding __attribute((alias("xmlXPathNextPreceding__internal_alias")));
+#define xmlXPathNextPreceding xmlXPathNextPreceding__internal_alias
+#endif
+
+#ifdef LIBXML_XPATH_ENABLED
+extern __typeof (xmlXPathNextPrecedingSibling) xmlXPathNextPrecedingSibling__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlXPathNextPrecedingSibling) xmlXPathNextPrecedingSibling __attribute((alias("xmlXPathNextPrecedingSibling__internal_alias")));
+#define xmlXPathNextPrecedingSibling xmlXPathNextPrecedingSibling__internal_alias
+#endif
+
+#ifdef LIBXML_XPATH_ENABLED
+extern __typeof (xmlXPathNextSelf) xmlXPathNextSelf__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlXPathNextSelf) xmlXPathNextSelf __attribute((alias("xmlXPathNextSelf__internal_alias")));
+#define xmlXPathNextSelf xmlXPathNextSelf__internal_alias
+#endif
+
+#ifdef LIBXML_XPATH_ENABLED
+extern __typeof (xmlXPathNodeLeading) xmlXPathNodeLeading__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlXPathNodeLeading) xmlXPathNodeLeading __attribute((alias("xmlXPathNodeLeading__internal_alias")));
+#define xmlXPathNodeLeading xmlXPathNodeLeading__internal_alias
+#endif
+
+#ifdef LIBXML_XPATH_ENABLED
+extern __typeof (xmlXPathNodeLeadingSorted) xmlXPathNodeLeadingSorted__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlXPathNodeLeadingSorted) xmlXPathNodeLeadingSorted __attribute((alias("xmlXPathNodeLeadingSorted__internal_alias")));
+#define xmlXPathNodeLeadingSorted xmlXPathNodeLeadingSorted__internal_alias
+#endif
+
+#ifdef LIBXML_XPATH_ENABLED
+extern __typeof (xmlXPathNodeSetAdd) xmlXPathNodeSetAdd__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlXPathNodeSetAdd) xmlXPathNodeSetAdd __attribute((alias("xmlXPathNodeSetAdd__internal_alias")));
+#define xmlXPathNodeSetAdd xmlXPathNodeSetAdd__internal_alias
+#endif
+
+#ifdef LIBXML_XPATH_ENABLED
+extern __typeof (xmlXPathNodeSetAddNs) xmlXPathNodeSetAddNs__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlXPathNodeSetAddNs) xmlXPathNodeSetAddNs __attribute((alias("xmlXPathNodeSetAddNs__internal_alias")));
+#define xmlXPathNodeSetAddNs xmlXPathNodeSetAddNs__internal_alias
+#endif
+
+#ifdef LIBXML_XPATH_ENABLED
+extern __typeof (xmlXPathNodeSetAddUnique) xmlXPathNodeSetAddUnique__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlXPathNodeSetAddUnique) xmlXPathNodeSetAddUnique __attribute((alias("xmlXPathNodeSetAddUnique__internal_alias")));
+#define xmlXPathNodeSetAddUnique xmlXPathNodeSetAddUnique__internal_alias
+#endif
+
+#ifdef LIBXML_XPATH_ENABLED
+extern __typeof (xmlXPathNodeSetContains) xmlXPathNodeSetContains__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlXPathNodeSetContains) xmlXPathNodeSetContains __attribute((alias("xmlXPathNodeSetContains__internal_alias")));
+#define xmlXPathNodeSetContains xmlXPathNodeSetContains__internal_alias
+#endif
+
+#ifdef LIBXML_XPATH_ENABLED
+extern __typeof (xmlXPathNodeSetCreate) xmlXPathNodeSetCreate__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlXPathNodeSetCreate) xmlXPathNodeSetCreate __attribute((alias("xmlXPathNodeSetCreate__internal_alias")));
+#define xmlXPathNodeSetCreate xmlXPathNodeSetCreate__internal_alias
+#endif
+
+#ifdef LIBXML_XPATH_ENABLED
+extern __typeof (xmlXPathNodeSetDel) xmlXPathNodeSetDel__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlXPathNodeSetDel) xmlXPathNodeSetDel __attribute((alias("xmlXPathNodeSetDel__internal_alias")));
+#define xmlXPathNodeSetDel xmlXPathNodeSetDel__internal_alias
+#endif
+
+#ifdef LIBXML_XPATH_ENABLED
+extern __typeof (xmlXPathNodeSetFreeNs) xmlXPathNodeSetFreeNs__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlXPathNodeSetFreeNs) xmlXPathNodeSetFreeNs __attribute((alias("xmlXPathNodeSetFreeNs__internal_alias")));
+#define xmlXPathNodeSetFreeNs xmlXPathNodeSetFreeNs__internal_alias
+#endif
+
+#ifdef LIBXML_XPATH_ENABLED
+extern __typeof (xmlXPathNodeSetMerge) xmlXPathNodeSetMerge__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlXPathNodeSetMerge) xmlXPathNodeSetMerge __attribute((alias("xmlXPathNodeSetMerge__internal_alias")));
+#define xmlXPathNodeSetMerge xmlXPathNodeSetMerge__internal_alias
+#endif
+
+#ifdef LIBXML_XPATH_ENABLED
+extern __typeof (xmlXPathNodeSetRemove) xmlXPathNodeSetRemove__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlXPathNodeSetRemove) xmlXPathNodeSetRemove __attribute((alias("xmlXPathNodeSetRemove__internal_alias")));
+#define xmlXPathNodeSetRemove xmlXPathNodeSetRemove__internal_alias
+#endif
+
+#ifdef LIBXML_XPATH_ENABLED
+extern __typeof (xmlXPathNodeSetSort) xmlXPathNodeSetSort__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlXPathNodeSetSort) xmlXPathNodeSetSort __attribute((alias("xmlXPathNodeSetSort__internal_alias")));
+#define xmlXPathNodeSetSort xmlXPathNodeSetSort__internal_alias
+#endif
+
+#ifdef LIBXML_XPATH_ENABLED
+extern __typeof (xmlXPathNodeTrailing) xmlXPathNodeTrailing__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlXPathNodeTrailing) xmlXPathNodeTrailing __attribute((alias("xmlXPathNodeTrailing__internal_alias")));
+#define xmlXPathNodeTrailing xmlXPathNodeTrailing__internal_alias
+#endif
+
+#ifdef LIBXML_XPATH_ENABLED
+extern __typeof (xmlXPathNodeTrailingSorted) xmlXPathNodeTrailingSorted__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlXPathNodeTrailingSorted) xmlXPathNodeTrailingSorted __attribute((alias("xmlXPathNodeTrailingSorted__internal_alias")));
+#define xmlXPathNodeTrailingSorted xmlXPathNodeTrailingSorted__internal_alias
+#endif
+
+#ifdef LIBXML_XPATH_ENABLED
+extern __typeof (xmlXPathNormalizeFunction) xmlXPathNormalizeFunction__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlXPathNormalizeFunction) xmlXPathNormalizeFunction __attribute((alias("xmlXPathNormalizeFunction__internal_alias")));
+#define xmlXPathNormalizeFunction xmlXPathNormalizeFunction__internal_alias
+#endif
+
+#ifdef LIBXML_XPATH_ENABLED
+extern __typeof (xmlXPathNotEqualValues) xmlXPathNotEqualValues__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlXPathNotEqualValues) xmlXPathNotEqualValues __attribute((alias("xmlXPathNotEqualValues__internal_alias")));
+#define xmlXPathNotEqualValues xmlXPathNotEqualValues__internal_alias
+#endif
+
+#ifdef LIBXML_XPATH_ENABLED
+extern __typeof (xmlXPathNotFunction) xmlXPathNotFunction__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlXPathNotFunction) xmlXPathNotFunction __attribute((alias("xmlXPathNotFunction__internal_alias")));
+#define xmlXPathNotFunction xmlXPathNotFunction__internal_alias
+#endif
+
+#ifdef LIBXML_XPATH_ENABLED
+extern __typeof (xmlXPathNsLookup) xmlXPathNsLookup__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlXPathNsLookup) xmlXPathNsLookup __attribute((alias("xmlXPathNsLookup__internal_alias")));
+#define xmlXPathNsLookup xmlXPathNsLookup__internal_alias
+#endif
+
+#ifdef LIBXML_XPATH_ENABLED
+extern __typeof (xmlXPathNumberFunction) xmlXPathNumberFunction__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlXPathNumberFunction) xmlXPathNumberFunction __attribute((alias("xmlXPathNumberFunction__internal_alias")));
+#define xmlXPathNumberFunction xmlXPathNumberFunction__internal_alias
+#endif
+
+#ifdef LIBXML_XPATH_ENABLED
+extern __typeof (xmlXPathObjectCopy) xmlXPathObjectCopy__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlXPathObjectCopy) xmlXPathObjectCopy __attribute((alias("xmlXPathObjectCopy__internal_alias")));
+#define xmlXPathObjectCopy xmlXPathObjectCopy__internal_alias
+#endif
+
+#ifdef LIBXML_XPATH_ENABLED
+extern __typeof (xmlXPathOrderDocElems) xmlXPathOrderDocElems__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlXPathOrderDocElems) xmlXPathOrderDocElems __attribute((alias("xmlXPathOrderDocElems__internal_alias")));
+#define xmlXPathOrderDocElems xmlXPathOrderDocElems__internal_alias
+#endif
+
+#ifdef LIBXML_XPATH_ENABLED
+extern __typeof (xmlXPathParseNCName) xmlXPathParseNCName__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlXPathParseNCName) xmlXPathParseNCName __attribute((alias("xmlXPathParseNCName__internal_alias")));
+#define xmlXPathParseNCName xmlXPathParseNCName__internal_alias
+#endif
+
+#ifdef LIBXML_XPATH_ENABLED
+extern __typeof (xmlXPathParseName) xmlXPathParseName__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlXPathParseName) xmlXPathParseName __attribute((alias("xmlXPathParseName__internal_alias")));
+#define xmlXPathParseName xmlXPathParseName__internal_alias
+#endif
+
+#ifdef LIBXML_XPATH_ENABLED
+extern __typeof (xmlXPathPopBoolean) xmlXPathPopBoolean__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlXPathPopBoolean) xmlXPathPopBoolean __attribute((alias("xmlXPathPopBoolean__internal_alias")));
+#define xmlXPathPopBoolean xmlXPathPopBoolean__internal_alias
+#endif
+
+#ifdef LIBXML_XPATH_ENABLED
+extern __typeof (xmlXPathPopExternal) xmlXPathPopExternal__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlXPathPopExternal) xmlXPathPopExternal __attribute((alias("xmlXPathPopExternal__internal_alias")));
+#define xmlXPathPopExternal xmlXPathPopExternal__internal_alias
+#endif
+
+#ifdef LIBXML_XPATH_ENABLED
+extern __typeof (xmlXPathPopNodeSet) xmlXPathPopNodeSet__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlXPathPopNodeSet) xmlXPathPopNodeSet __attribute((alias("xmlXPathPopNodeSet__internal_alias")));
+#define xmlXPathPopNodeSet xmlXPathPopNodeSet__internal_alias
+#endif
+
+#ifdef LIBXML_XPATH_ENABLED
+extern __typeof (xmlXPathPopNumber) xmlXPathPopNumber__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlXPathPopNumber) xmlXPathPopNumber __attribute((alias("xmlXPathPopNumber__internal_alias")));
+#define xmlXPathPopNumber xmlXPathPopNumber__internal_alias
+#endif
+
+#ifdef LIBXML_XPATH_ENABLED
+extern __typeof (xmlXPathPopString) xmlXPathPopString__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlXPathPopString) xmlXPathPopString __attribute((alias("xmlXPathPopString__internal_alias")));
+#define xmlXPathPopString xmlXPathPopString__internal_alias
+#endif
+
+#ifdef LIBXML_XPATH_ENABLED
+extern __typeof (xmlXPathPositionFunction) xmlXPathPositionFunction__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlXPathPositionFunction) xmlXPathPositionFunction __attribute((alias("xmlXPathPositionFunction__internal_alias")));
+#define xmlXPathPositionFunction xmlXPathPositionFunction__internal_alias
+#endif
+
+#ifdef LIBXML_XPATH_ENABLED
+extern __typeof (xmlXPathRegisterAllFunctions) xmlXPathRegisterAllFunctions__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlXPathRegisterAllFunctions) xmlXPathRegisterAllFunctions __attribute((alias("xmlXPathRegisterAllFunctions__internal_alias")));
+#define xmlXPathRegisterAllFunctions xmlXPathRegisterAllFunctions__internal_alias
+#endif
+
+#ifdef LIBXML_XPATH_ENABLED
+extern __typeof (xmlXPathRegisterFunc) xmlXPathRegisterFunc__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlXPathRegisterFunc) xmlXPathRegisterFunc __attribute((alias("xmlXPathRegisterFunc__internal_alias")));
+#define xmlXPathRegisterFunc xmlXPathRegisterFunc__internal_alias
+#endif
+
+#ifdef LIBXML_XPATH_ENABLED
+extern __typeof (xmlXPathRegisterFuncLookup) xmlXPathRegisterFuncLookup__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlXPathRegisterFuncLookup) xmlXPathRegisterFuncLookup __attribute((alias("xmlXPathRegisterFuncLookup__internal_alias")));
+#define xmlXPathRegisterFuncLookup xmlXPathRegisterFuncLookup__internal_alias
+#endif
+
+#ifdef LIBXML_XPATH_ENABLED
+extern __typeof (xmlXPathRegisterFuncNS) xmlXPathRegisterFuncNS__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlXPathRegisterFuncNS) xmlXPathRegisterFuncNS __attribute((alias("xmlXPathRegisterFuncNS__internal_alias")));
+#define xmlXPathRegisterFuncNS xmlXPathRegisterFuncNS__internal_alias
+#endif
+
+#ifdef LIBXML_XPATH_ENABLED
+extern __typeof (xmlXPathRegisterNs) xmlXPathRegisterNs__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlXPathRegisterNs) xmlXPathRegisterNs __attribute((alias("xmlXPathRegisterNs__internal_alias")));
+#define xmlXPathRegisterNs xmlXPathRegisterNs__internal_alias
+#endif
+
+#ifdef LIBXML_XPATH_ENABLED
+extern __typeof (xmlXPathRegisterVariable) xmlXPathRegisterVariable__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlXPathRegisterVariable) xmlXPathRegisterVariable __attribute((alias("xmlXPathRegisterVariable__internal_alias")));
+#define xmlXPathRegisterVariable xmlXPathRegisterVariable__internal_alias
+#endif
+
+#ifdef LIBXML_XPATH_ENABLED
+extern __typeof (xmlXPathRegisterVariableLookup) xmlXPathRegisterVariableLookup__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlXPathRegisterVariableLookup) xmlXPathRegisterVariableLookup __attribute((alias("xmlXPathRegisterVariableLookup__internal_alias")));
+#define xmlXPathRegisterVariableLookup xmlXPathRegisterVariableLookup__internal_alias
+#endif
+
+#ifdef LIBXML_XPATH_ENABLED
+extern __typeof (xmlXPathRegisterVariableNS) xmlXPathRegisterVariableNS__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlXPathRegisterVariableNS) xmlXPathRegisterVariableNS __attribute((alias("xmlXPathRegisterVariableNS__internal_alias")));
+#define xmlXPathRegisterVariableNS xmlXPathRegisterVariableNS__internal_alias
+#endif
+
+#ifdef LIBXML_XPATH_ENABLED
+extern __typeof (xmlXPathRegisteredFuncsCleanup) xmlXPathRegisteredFuncsCleanup__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlXPathRegisteredFuncsCleanup) xmlXPathRegisteredFuncsCleanup __attribute((alias("xmlXPathRegisteredFuncsCleanup__internal_alias")));
+#define xmlXPathRegisteredFuncsCleanup xmlXPathRegisteredFuncsCleanup__internal_alias
+#endif
+
+#ifdef LIBXML_XPATH_ENABLED
+extern __typeof (xmlXPathRegisteredNsCleanup) xmlXPathRegisteredNsCleanup__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlXPathRegisteredNsCleanup) xmlXPathRegisteredNsCleanup __attribute((alias("xmlXPathRegisteredNsCleanup__internal_alias")));
+#define xmlXPathRegisteredNsCleanup xmlXPathRegisteredNsCleanup__internal_alias
+#endif
+
+#ifdef LIBXML_XPATH_ENABLED
+extern __typeof (xmlXPathRegisteredVariablesCleanup) xmlXPathRegisteredVariablesCleanup__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlXPathRegisteredVariablesCleanup) xmlXPathRegisteredVariablesCleanup __attribute((alias("xmlXPathRegisteredVariablesCleanup__internal_alias")));
+#define xmlXPathRegisteredVariablesCleanup xmlXPathRegisteredVariablesCleanup__internal_alias
+#endif
+
+#ifdef LIBXML_XPATH_ENABLED
+extern __typeof (xmlXPathRoot) xmlXPathRoot__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlXPathRoot) xmlXPathRoot __attribute((alias("xmlXPathRoot__internal_alias")));
+#define xmlXPathRoot xmlXPathRoot__internal_alias
+#endif
+
+#ifdef LIBXML_XPATH_ENABLED
+extern __typeof (xmlXPathRoundFunction) xmlXPathRoundFunction__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlXPathRoundFunction) xmlXPathRoundFunction __attribute((alias("xmlXPathRoundFunction__internal_alias")));
+#define xmlXPathRoundFunction xmlXPathRoundFunction__internal_alias
+#endif
+
+#ifdef LIBXML_XPATH_ENABLED
+extern __typeof (xmlXPathStartsWithFunction) xmlXPathStartsWithFunction__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlXPathStartsWithFunction) xmlXPathStartsWithFunction __attribute((alias("xmlXPathStartsWithFunction__internal_alias")));
+#define xmlXPathStartsWithFunction xmlXPathStartsWithFunction__internal_alias
+#endif
+
+#ifdef LIBXML_XPATH_ENABLED
+extern __typeof (xmlXPathStringEvalNumber) xmlXPathStringEvalNumber__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlXPathStringEvalNumber) xmlXPathStringEvalNumber __attribute((alias("xmlXPathStringEvalNumber__internal_alias")));
+#define xmlXPathStringEvalNumber xmlXPathStringEvalNumber__internal_alias
+#endif
+
+#ifdef LIBXML_XPATH_ENABLED
+extern __typeof (xmlXPathStringFunction) xmlXPathStringFunction__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlXPathStringFunction) xmlXPathStringFunction __attribute((alias("xmlXPathStringFunction__internal_alias")));
+#define xmlXPathStringFunction xmlXPathStringFunction__internal_alias
+#endif
+
+#ifdef LIBXML_XPATH_ENABLED
+extern __typeof (xmlXPathStringLengthFunction) xmlXPathStringLengthFunction__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlXPathStringLengthFunction) xmlXPathStringLengthFunction __attribute((alias("xmlXPathStringLengthFunction__internal_alias")));
+#define xmlXPathStringLengthFunction xmlXPathStringLengthFunction__internal_alias
+#endif
+
+#ifdef LIBXML_XPATH_ENABLED
+extern __typeof (xmlXPathSubValues) xmlXPathSubValues__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlXPathSubValues) xmlXPathSubValues __attribute((alias("xmlXPathSubValues__internal_alias")));
+#define xmlXPathSubValues xmlXPathSubValues__internal_alias
+#endif
+
+#ifdef LIBXML_XPATH_ENABLED
+extern __typeof (xmlXPathSubstringAfterFunction) xmlXPathSubstringAfterFunction__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlXPathSubstringAfterFunction) xmlXPathSubstringAfterFunction __attribute((alias("xmlXPathSubstringAfterFunction__internal_alias")));
+#define xmlXPathSubstringAfterFunction xmlXPathSubstringAfterFunction__internal_alias
+#endif
+
+#ifdef LIBXML_XPATH_ENABLED
+extern __typeof (xmlXPathSubstringBeforeFunction) xmlXPathSubstringBeforeFunction__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlXPathSubstringBeforeFunction) xmlXPathSubstringBeforeFunction __attribute((alias("xmlXPathSubstringBeforeFunction__internal_alias")));
+#define xmlXPathSubstringBeforeFunction xmlXPathSubstringBeforeFunction__internal_alias
+#endif
+
+#ifdef LIBXML_XPATH_ENABLED
+extern __typeof (xmlXPathSubstringFunction) xmlXPathSubstringFunction__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlXPathSubstringFunction) xmlXPathSubstringFunction __attribute((alias("xmlXPathSubstringFunction__internal_alias")));
+#define xmlXPathSubstringFunction xmlXPathSubstringFunction__internal_alias
+#endif
+
+#ifdef LIBXML_XPATH_ENABLED
+extern __typeof (xmlXPathSumFunction) xmlXPathSumFunction__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlXPathSumFunction) xmlXPathSumFunction __attribute((alias("xmlXPathSumFunction__internal_alias")));
+#define xmlXPathSumFunction xmlXPathSumFunction__internal_alias
+#endif
+
+#ifdef LIBXML_XPATH_ENABLED
+extern __typeof (xmlXPathTrailing) xmlXPathTrailing__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlXPathTrailing) xmlXPathTrailing __attribute((alias("xmlXPathTrailing__internal_alias")));
+#define xmlXPathTrailing xmlXPathTrailing__internal_alias
+#endif
+
+#ifdef LIBXML_XPATH_ENABLED
+extern __typeof (xmlXPathTrailingSorted) xmlXPathTrailingSorted__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlXPathTrailingSorted) xmlXPathTrailingSorted __attribute((alias("xmlXPathTrailingSorted__internal_alias")));
+#define xmlXPathTrailingSorted xmlXPathTrailingSorted__internal_alias
+#endif
+
+#ifdef LIBXML_XPATH_ENABLED
+extern __typeof (xmlXPathTranslateFunction) xmlXPathTranslateFunction__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlXPathTranslateFunction) xmlXPathTranslateFunction __attribute((alias("xmlXPathTranslateFunction__internal_alias")));
+#define xmlXPathTranslateFunction xmlXPathTranslateFunction__internal_alias
+#endif
+
+#ifdef LIBXML_XPATH_ENABLED
+extern __typeof (xmlXPathTrueFunction) xmlXPathTrueFunction__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlXPathTrueFunction) xmlXPathTrueFunction __attribute((alias("xmlXPathTrueFunction__internal_alias")));
+#define xmlXPathTrueFunction xmlXPathTrueFunction__internal_alias
+#endif
+
+#ifdef LIBXML_XPATH_ENABLED
+extern __typeof (xmlXPathValueFlipSign) xmlXPathValueFlipSign__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlXPathValueFlipSign) xmlXPathValueFlipSign __attribute((alias("xmlXPathValueFlipSign__internal_alias")));
+#define xmlXPathValueFlipSign xmlXPathValueFlipSign__internal_alias
+#endif
+
+#ifdef LIBXML_XPATH_ENABLED
+extern __typeof (xmlXPathVariableLookup) xmlXPathVariableLookup__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlXPathVariableLookup) xmlXPathVariableLookup __attribute((alias("xmlXPathVariableLookup__internal_alias")));
+#define xmlXPathVariableLookup xmlXPathVariableLookup__internal_alias
+#endif
+
+#ifdef LIBXML_XPATH_ENABLED
+extern __typeof (xmlXPathVariableLookupNS) xmlXPathVariableLookupNS__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlXPathVariableLookupNS) xmlXPathVariableLookupNS __attribute((alias("xmlXPathVariableLookupNS__internal_alias")));
+#define xmlXPathVariableLookupNS xmlXPathVariableLookupNS__internal_alias
+#endif
+
+#ifdef LIBXML_XPATH_ENABLED
+extern __typeof (xmlXPathWrapCString) xmlXPathWrapCString__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlXPathWrapCString) xmlXPathWrapCString __attribute((alias("xmlXPathWrapCString__internal_alias")));
+#define xmlXPathWrapCString xmlXPathWrapCString__internal_alias
+#endif
+
+#ifdef LIBXML_XPATH_ENABLED
+extern __typeof (xmlXPathWrapExternal) xmlXPathWrapExternal__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlXPathWrapExternal) xmlXPathWrapExternal __attribute((alias("xmlXPathWrapExternal__internal_alias")));
+#define xmlXPathWrapExternal xmlXPathWrapExternal__internal_alias
+#endif
+
+#ifdef LIBXML_XPATH_ENABLED
+extern __typeof (xmlXPathWrapNodeSet) xmlXPathWrapNodeSet__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlXPathWrapNodeSet) xmlXPathWrapNodeSet __attribute((alias("xmlXPathWrapNodeSet__internal_alias")));
+#define xmlXPathWrapNodeSet xmlXPathWrapNodeSet__internal_alias
+#endif
+
+#ifdef LIBXML_XPATH_ENABLED
+extern __typeof (xmlXPathWrapString) xmlXPathWrapString__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlXPathWrapString) xmlXPathWrapString __attribute((alias("xmlXPathWrapString__internal_alias")));
+#define xmlXPathWrapString xmlXPathWrapString__internal_alias
+#endif
+
+#ifdef LIBXML_XPATH_ENABLED
+extern __typeof (xmlXPatherror) xmlXPatherror__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlXPatherror) xmlXPatherror __attribute((alias("xmlXPatherror__internal_alias")));
+#define xmlXPatherror xmlXPatherror__internal_alias
+#endif
+
+#ifdef LIBXML_XPTR_ENABLED
+extern __typeof (xmlXPtrBuildNodeList) xmlXPtrBuildNodeList__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlXPtrBuildNodeList) xmlXPtrBuildNodeList __attribute((alias("xmlXPtrBuildNodeList__internal_alias")));
+#define xmlXPtrBuildNodeList xmlXPtrBuildNodeList__internal_alias
+#endif
+
+#ifdef LIBXML_XPTR_ENABLED
+extern __typeof (xmlXPtrEval) xmlXPtrEval__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlXPtrEval) xmlXPtrEval __attribute((alias("xmlXPtrEval__internal_alias")));
+#define xmlXPtrEval xmlXPtrEval__internal_alias
+#endif
+
+#ifdef LIBXML_XPTR_ENABLED
+extern __typeof (xmlXPtrEvalRangePredicate) xmlXPtrEvalRangePredicate__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlXPtrEvalRangePredicate) xmlXPtrEvalRangePredicate __attribute((alias("xmlXPtrEvalRangePredicate__internal_alias")));
+#define xmlXPtrEvalRangePredicate xmlXPtrEvalRangePredicate__internal_alias
+#endif
+
+#ifdef LIBXML_XPTR_ENABLED
+extern __typeof (xmlXPtrFreeLocationSet) xmlXPtrFreeLocationSet__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlXPtrFreeLocationSet) xmlXPtrFreeLocationSet __attribute((alias("xmlXPtrFreeLocationSet__internal_alias")));
+#define xmlXPtrFreeLocationSet xmlXPtrFreeLocationSet__internal_alias
+#endif
+
+#ifdef LIBXML_XPTR_ENABLED
+extern __typeof (xmlXPtrLocationSetAdd) xmlXPtrLocationSetAdd__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlXPtrLocationSetAdd) xmlXPtrLocationSetAdd __attribute((alias("xmlXPtrLocationSetAdd__internal_alias")));
+#define xmlXPtrLocationSetAdd xmlXPtrLocationSetAdd__internal_alias
+#endif
+
+#ifdef LIBXML_XPTR_ENABLED
+extern __typeof (xmlXPtrLocationSetCreate) xmlXPtrLocationSetCreate__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlXPtrLocationSetCreate) xmlXPtrLocationSetCreate __attribute((alias("xmlXPtrLocationSetCreate__internal_alias")));
+#define xmlXPtrLocationSetCreate xmlXPtrLocationSetCreate__internal_alias
+#endif
+
+#ifdef LIBXML_XPTR_ENABLED
+extern __typeof (xmlXPtrLocationSetDel) xmlXPtrLocationSetDel__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlXPtrLocationSetDel) xmlXPtrLocationSetDel __attribute((alias("xmlXPtrLocationSetDel__internal_alias")));
+#define xmlXPtrLocationSetDel xmlXPtrLocationSetDel__internal_alias
+#endif
+
+#ifdef LIBXML_XPTR_ENABLED
+extern __typeof (xmlXPtrLocationSetMerge) xmlXPtrLocationSetMerge__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlXPtrLocationSetMerge) xmlXPtrLocationSetMerge __attribute((alias("xmlXPtrLocationSetMerge__internal_alias")));
+#define xmlXPtrLocationSetMerge xmlXPtrLocationSetMerge__internal_alias
+#endif
+
+#ifdef LIBXML_XPTR_ENABLED
+extern __typeof (xmlXPtrLocationSetRemove) xmlXPtrLocationSetRemove__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlXPtrLocationSetRemove) xmlXPtrLocationSetRemove __attribute((alias("xmlXPtrLocationSetRemove__internal_alias")));
+#define xmlXPtrLocationSetRemove xmlXPtrLocationSetRemove__internal_alias
+#endif
+
+#ifdef LIBXML_XPTR_ENABLED
+extern __typeof (xmlXPtrNewCollapsedRange) xmlXPtrNewCollapsedRange__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlXPtrNewCollapsedRange) xmlXPtrNewCollapsedRange __attribute((alias("xmlXPtrNewCollapsedRange__internal_alias")));
+#define xmlXPtrNewCollapsedRange xmlXPtrNewCollapsedRange__internal_alias
+#endif
+
+#ifdef LIBXML_XPTR_ENABLED
+extern __typeof (xmlXPtrNewContext) xmlXPtrNewContext__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlXPtrNewContext) xmlXPtrNewContext __attribute((alias("xmlXPtrNewContext__internal_alias")));
+#define xmlXPtrNewContext xmlXPtrNewContext__internal_alias
+#endif
+
+#ifdef LIBXML_XPTR_ENABLED
+extern __typeof (xmlXPtrNewLocationSetNodeSet) xmlXPtrNewLocationSetNodeSet__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlXPtrNewLocationSetNodeSet) xmlXPtrNewLocationSetNodeSet __attribute((alias("xmlXPtrNewLocationSetNodeSet__internal_alias")));
+#define xmlXPtrNewLocationSetNodeSet xmlXPtrNewLocationSetNodeSet__internal_alias
+#endif
+
+#ifdef LIBXML_XPTR_ENABLED
+extern __typeof (xmlXPtrNewLocationSetNodes) xmlXPtrNewLocationSetNodes__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlXPtrNewLocationSetNodes) xmlXPtrNewLocationSetNodes __attribute((alias("xmlXPtrNewLocationSetNodes__internal_alias")));
+#define xmlXPtrNewLocationSetNodes xmlXPtrNewLocationSetNodes__internal_alias
+#endif
+
+#ifdef LIBXML_XPTR_ENABLED
+extern __typeof (xmlXPtrNewRange) xmlXPtrNewRange__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlXPtrNewRange) xmlXPtrNewRange __attribute((alias("xmlXPtrNewRange__internal_alias")));
+#define xmlXPtrNewRange xmlXPtrNewRange__internal_alias
+#endif
+
+#ifdef LIBXML_XPTR_ENABLED
+extern __typeof (xmlXPtrNewRangeNodeObject) xmlXPtrNewRangeNodeObject__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlXPtrNewRangeNodeObject) xmlXPtrNewRangeNodeObject __attribute((alias("xmlXPtrNewRangeNodeObject__internal_alias")));
+#define xmlXPtrNewRangeNodeObject xmlXPtrNewRangeNodeObject__internal_alias
+#endif
+
+#ifdef LIBXML_XPTR_ENABLED
+extern __typeof (xmlXPtrNewRangeNodePoint) xmlXPtrNewRangeNodePoint__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlXPtrNewRangeNodePoint) xmlXPtrNewRangeNodePoint __attribute((alias("xmlXPtrNewRangeNodePoint__internal_alias")));
+#define xmlXPtrNewRangeNodePoint xmlXPtrNewRangeNodePoint__internal_alias
+#endif
+
+#ifdef LIBXML_XPTR_ENABLED
+extern __typeof (xmlXPtrNewRangeNodes) xmlXPtrNewRangeNodes__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlXPtrNewRangeNodes) xmlXPtrNewRangeNodes __attribute((alias("xmlXPtrNewRangeNodes__internal_alias")));
+#define xmlXPtrNewRangeNodes xmlXPtrNewRangeNodes__internal_alias
+#endif
+
+#ifdef LIBXML_XPTR_ENABLED
+extern __typeof (xmlXPtrNewRangePointNode) xmlXPtrNewRangePointNode__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlXPtrNewRangePointNode) xmlXPtrNewRangePointNode __attribute((alias("xmlXPtrNewRangePointNode__internal_alias")));
+#define xmlXPtrNewRangePointNode xmlXPtrNewRangePointNode__internal_alias
+#endif
+
+#ifdef LIBXML_XPTR_ENABLED
+extern __typeof (xmlXPtrNewRangePoints) xmlXPtrNewRangePoints__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlXPtrNewRangePoints) xmlXPtrNewRangePoints __attribute((alias("xmlXPtrNewRangePoints__internal_alias")));
+#define xmlXPtrNewRangePoints xmlXPtrNewRangePoints__internal_alias
+#endif
+
+#ifdef LIBXML_XPTR_ENABLED
+extern __typeof (xmlXPtrRangeToFunction) xmlXPtrRangeToFunction__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlXPtrRangeToFunction) xmlXPtrRangeToFunction __attribute((alias("xmlXPtrRangeToFunction__internal_alias")));
+#define xmlXPtrRangeToFunction xmlXPtrRangeToFunction__internal_alias
+#endif
+
+#ifdef LIBXML_XPTR_ENABLED
+extern __typeof (xmlXPtrWrapLocationSet) xmlXPtrWrapLocationSet__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlXPtrWrapLocationSet) xmlXPtrWrapLocationSet __attribute((alias("xmlXPtrWrapLocationSet__internal_alias")));
+#define xmlXPtrWrapLocationSet xmlXPtrWrapLocationSet__internal_alias
+#endif
+
diff --git a/example/Makefile.am b/example/Makefile.am
index 0138775..9eb6a76 100644
--- a/example/Makefile.am
+++ b/example/Makefile.am
@@ -1,10 +1,10 @@
noinst_PROGRAMS = gjobread
-INCLUDES = \
- -I$(top_builddir) -I$(top_srcdir) \
- -I$(top_builddir)/include \
- -I$(top_srcdir)/include -I@srcdir@
-
-LDADD = $(top_builddir)/libxml2.la @THREAD_LIBS@ @Z_LIBS@ $(ICONV_LIBS) -lm @WIN32_EXTRA_LIBADD@
-
-
+INCLUDES = -I$(top_builddir)/include -I$(top_srcdir)/include -I@srcdir@/include @THREAD_CFLAGS@ @Z_CFLAGS@
+DEPS = $(top_builddir)/libxml2.la
+LDADDS = @STATIC_BINARIES@ $(top_builddir)/libxml2.la @THREAD_LIBS@ @Z_LIBS@ $(ICONV_LIBS) -lm @WIN32_EXTRA_LIBADD@
+
+gjobread_SOURCES=gjobread.c
+gjobread_LDFLAGS=
+gjobread_DEPENDENCIES= $(DEPS)
+gjobread_LDADD= @RDL_LIBS@ $(LDADDS)
diff --git a/example/Makefile.in b/example/Makefile.in
index 19768e3..45d7a4c 100644
--- a/example/Makefile.in
+++ b/example/Makefile.in
@@ -14,7 +14,7 @@
@SET_MAKE@
-SOURCES = gjobread.c
+SOURCES = $(gjobread_SOURCES)
srcdir = @srcdir@
top_srcdir = @top_srcdir@
@@ -49,12 +49,10 @@ mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
CONFIG_HEADER = $(top_builddir)/config.h
CONFIG_CLEAN_FILES =
PROGRAMS = $(noinst_PROGRAMS)
-gjobread_SOURCES = gjobread.c
-gjobread_OBJECTS = gjobread.$(OBJEXT)
-gjobread_LDADD = $(LDADD)
+am_gjobread_OBJECTS = gjobread.$(OBJEXT)
+gjobread_OBJECTS = $(am_gjobread_OBJECTS)
am__DEPENDENCIES_1 =
-gjobread_DEPENDENCIES = $(top_builddir)/libxml2.la \
- $(am__DEPENDENCIES_1)
+am__DEPENDENCIES_2 = $(top_builddir)/libxml2.la $(am__DEPENDENCIES_1)
DEFAULT_INCLUDES = -I. -I$(srcdir) -I$(top_builddir)
depcomp = $(SHELL) $(top_srcdir)/depcomp
am__depfiles_maybe = depfiles
@@ -67,8 +65,8 @@ LTCOMPILE = $(LIBTOOL) --mode=compile $(CC) $(DEFS) \
CCLD = $(CC)
LINK = $(LIBTOOL) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
$(AM_LDFLAGS) $(LDFLAGS) -o $@
-SOURCES = gjobread.c
-DIST_SOURCES = gjobread.c
+SOURCES = $(gjobread_SOURCES)
+DIST_SOURCES = $(gjobread_SOURCES)
ETAGS = etags
CTAGS = ctags
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
@@ -266,12 +264,13 @@ sbindir = @sbindir@
sharedstatedir = @sharedstatedir@
sysconfdir = @sysconfdir@
target_alias = @target_alias@
-INCLUDES = \
- -I$(top_builddir) -I$(top_srcdir) \
- -I$(top_builddir)/include \
- -I$(top_srcdir)/include -I@srcdir@
-
-LDADD = $(top_builddir)/libxml2.la @THREAD_LIBS@ @Z_LIBS@ $(ICONV_LIBS) -lm @WIN32_EXTRA_LIBADD@
+INCLUDES = -I$(top_builddir)/include -I$(top_srcdir)/include -I@srcdir@/include @THREAD_CFLAGS@ @Z_CFLAGS@
+DEPS = $(top_builddir)/libxml2.la
+LDADDS = @STATIC_BINARIES@ $(top_builddir)/libxml2.la @THREAD_LIBS@ @Z_LIBS@ $(ICONV_LIBS) -lm @WIN32_EXTRA_LIBADD@
+gjobread_SOURCES = gjobread.c
+gjobread_LDFLAGS =
+gjobread_DEPENDENCIES = $(DEPS)
+gjobread_LDADD = @RDL_LIBS@ $(LDADDS)
all: all-am
.SUFFIXES:
diff --git a/globals.c b/globals.c
index f1aa150..2105157 100644
--- a/globals.c
+++ b/globals.c
@@ -71,6 +71,12 @@ void xmlCleanupGlobals()
/*
* Memory allocation routines
*/
+#undef xmlFree
+#undef xmlMalloc
+#undef xmlMallocAtomic
+#undef xmlMemStrdup
+#undef xmlRealloc
+
#if defined(DEBUG_MEMORY_LOCATION) || defined(DEBUG_MEMORY)
#ifndef __DEBUG_MEMORY_ALLOC__
extern void xmlMemFree(void *ptr);
@@ -163,12 +169,8 @@ xmlStrdupFunc xmlMemStrdup = (xmlStrdupFunc) xmlStrdup;
#undef xmlDeregisterNodeDefaultValue
#undef xmlLastError
-#undef xmlFree
-#undef xmlMalloc
-#undef xmlMallocAtomic
-#undef xmlMemStrdup
-#undef xmlRealloc
-
+#undef xmlParserInputBufferCreateFilenameValue
+#undef xmlOutputBufferCreateFilenameValue
/**
* xmlParserVersion:
*
@@ -282,6 +284,12 @@ static xmlRegisterNodeFunc xmlRegisterNodeDefaultValueThrDef = NULL;
xmlDeregisterNodeFunc xmlDeregisterNodeDefaultValue = NULL;
static xmlDeregisterNodeFunc xmlDeregisterNodeDefaultValueThrDef = NULL;
+xmlParserInputBufferCreateFilenameFunc xmlParserInputBufferCreateFilenameValue = NULL;
+static xmlParserInputBufferCreateFilenameFunc xmlParserInputBufferCreateFilenameValueThrDef = NULL;
+
+xmlOutputBufferCreateFilenameFunc xmlOutputBufferCreateFilenameValue = NULL;
+static xmlOutputBufferCreateFilenameFunc xmlOutputBufferCreateFilenameValueThrDef = NULL;
+
/*
* Error handling
*/
@@ -545,6 +553,9 @@ xmlInitializeGlobalState(xmlGlobalStatePtr gs)
gs->xmlGenericErrorContext = xmlGenericErrorContextThrDef;
gs->xmlRegisterNodeDefaultValue = xmlRegisterNodeDefaultValueThrDef;
gs->xmlDeregisterNodeDefaultValue = xmlDeregisterNodeDefaultValueThrDef;
+
+ gs->xmlParserInputBufferCreateFilenameValue = xmlParserInputBufferCreateFilenameValueThrDef;
+ gs->xmlOutputBufferCreateFilenameValue = xmlOutputBufferCreateFilenameValueThrDef;
memset(&gs->xmlLastError, 0, sizeof(xmlError));
xmlMutexUnlock(xmlThrDefMutex);
@@ -639,6 +650,40 @@ xmlThrDefDeregisterNodeDefault(xmlDeregisterNodeFunc func)
return(old);
}
+xmlParserInputBufferCreateFilenameFunc
+xmlThrDefParserInputBufferCreateFilenameDefault(xmlParserInputBufferCreateFilenameFunc func)
+{
+ xmlParserInputBufferCreateFilenameFunc old;
+
+ xmlMutexLock(xmlThrDefMutex);
+ old = xmlParserInputBufferCreateFilenameValueThrDef;
+ if (old == NULL) {
+ old = __xmlParserInputBufferCreateFilename;
+ }
+
+ xmlParserInputBufferCreateFilenameValueThrDef = func;
+ xmlMutexUnlock(xmlThrDefMutex);
+
+ return(old);
+}
+
+xmlOutputBufferCreateFilenameFunc
+xmlThrDefOutputBufferCreateFilenameDefault(xmlOutputBufferCreateFilenameFunc func)
+{
+ xmlOutputBufferCreateFilenameFunc old;
+
+ xmlMutexLock(xmlThrDefMutex);
+ old = xmlOutputBufferCreateFilenameValueThrDef;
+#ifdef LIBXML_OUTPUT_ENABLED
+ if (old == NULL) {
+ old = __xmlOutputBufferCreateFilename;
+ }
+#endif
+ xmlOutputBufferCreateFilenameValueThrDef = func;
+ xmlMutexUnlock(xmlThrDefMutex);
+
+ return(old);
+}
#ifdef LIBXML_DOCB_ENABLED
#undef docbDefaultSAXHandler
@@ -672,6 +717,58 @@ __xmlLastError(void) {
}
/*
+ * The following memory routines were apparently lost at some point,
+ * and were re-inserted at this point on June 10, 2004. Hope it's
+ * the right place for them :-)
+ */
+#if defined(LIBXML_THREAD_ALLOC_ENABLED) && defined(LIBXML_THREAD_ENABLED)
+#undef xmlMalloc
+xmlMallocFunc *
+__xmlMalloc(void){
+ if (IS_MAIN_THREAD)
+ return (&xmlMalloc);
+ else
+ return (&xmlGetGlobalState()->xmlMalloc);
+}
+
+#undef xmlMallocAtomic
+xmlMallocFunc *
+__xmlMallocAtomic(void){
+ if (IS_MAIN_THREAD)
+ return (&xmlMallocAtomic);
+ else
+ return (&xmlGetGlobalState()->xmlMallocAtomic);
+}
+
+#undef xmlRealloc
+xmlReallocFunc *
+__xmlRealloc(void){
+ if (IS_MAIN_THREAD)
+ return (&xmlRealloc);
+ else
+ return (&xmlGetGlobalState()->xmlRealloc);
+}
+
+#undef xmlFree
+xmlFreeFunc *
+__xmlFree(void){
+ if (IS_MAIN_THREAD)
+ return (&xmlFree);
+ else
+ return (&xmlGetGlobalState()->xmlFree);
+}
+
+xmlStrdupFunc *
+__xmlMemStrdup(void){
+ if (IS_MAIN_THREAD)
+ return (&xmlMemStrdup);
+ else
+ return (&xmlGetGlobalState()->xmlMemStrdup);
+}
+
+#endif
+
+/*
* Everything starting from the line below is
* Automatically generated by build_glob.py.
* Do not modify the previous line.
@@ -981,3 +1078,21 @@ __xmlDeregisterNodeDefaultValue(void) {
else
return (&xmlGetGlobalState()->xmlDeregisterNodeDefaultValue);
}
+
+#undef xmlParserInputBufferCreateFilenameValue
+xmlParserInputBufferCreateFilenameFunc *
+__xmlParserInputBufferCreateFilenameValue(void) {
+ if (IS_MAIN_THREAD)
+ return (&xmlParserInputBufferCreateFilenameValue);
+ else
+ return (&xmlGetGlobalState()->xmlParserInputBufferCreateFilenameValue);
+}
+
+#undef xmlOutputBufferCreateFilenameValue
+xmlOutputBufferCreateFilenameFunc *
+__xmlOutputBufferCreateFilenameValue(void) {
+ if (IS_MAIN_THREAD)
+ return (&xmlOutputBufferCreateFilenameValue);
+ else
+ return (&xmlGetGlobalState()->xmlOutputBufferCreateFilenameValue);
+}
diff --git a/include/libxml/DOCBparser.h b/include/libxml/DOCBparser.h
index d30aaea..461d4ee 100644
--- a/include/libxml/DOCBparser.h
+++ b/include/libxml/DOCBparser.h
@@ -11,6 +11,9 @@
#ifndef __DOCB_PARSER_H__
#define __DOCB_PARSER_H__
#include <libxml/xmlversion.h>
+
+#ifdef LIBXML_DOCB_ENABLED
+
#include <libxml/parser.h>
#include <libxml/parserInternals.h>
@@ -87,4 +90,7 @@ XMLPUBFUN int XMLCALL
#ifdef __cplusplus
}
#endif
+
+#endif /* LIBXML_DOCB_ENABLED */
+
#endif /* __DOCB_PARSER_H__ */
diff --git a/include/libxml/HTMLparser.h b/include/libxml/HTMLparser.h
index f39f0bb..2604d86 100644
--- a/include/libxml/HTMLparser.h
+++ b/include/libxml/HTMLparser.h
@@ -15,6 +15,8 @@
#include <libxml/xmlversion.h>
#include <libxml/parser.h>
+#ifdef LIBXML_HTML_ENABLED
+
#ifdef __cplusplus
extern "C" {
#endif
@@ -292,4 +294,5 @@ XMLPUBFUN htmlStatus XMLCALL htmlNodeStatus(const htmlNodePtr, int) ;
}
#endif
+#endif /* LIBXML_HTML_ENABLED */
#endif /* __HTML_PARSER_H__ */
diff --git a/include/libxml/HTMLtree.h b/include/libxml/HTMLtree.h
index 157aa67..50b8544 100644
--- a/include/libxml/HTMLtree.h
+++ b/include/libxml/HTMLtree.h
@@ -16,6 +16,7 @@
#include <libxml/tree.h>
#include <libxml/HTMLparser.h>
+#ifdef LIBXML_HTML_ENABLED
#ifdef __cplusplus
extern "C" {
@@ -135,5 +136,7 @@ XMLPUBFUN int XMLCALL
}
#endif
+#endif /* LIBXML_HTML_ENABLED */
+
#endif /* __HTML_TREE_H__ */
diff --git a/include/libxml/SAX.h b/include/libxml/SAX.h
index a305b69..91b3fbc 100644
--- a/include/libxml/SAX.h
+++ b/include/libxml/SAX.h
@@ -18,6 +18,8 @@
#include <libxml/parser.h>
#include <libxml/xlink.h>
+#ifdef LIBXML_SAX1_ENABLED
+
#ifdef __cplusplus
extern "C" {
#endif
@@ -162,4 +164,7 @@ XMLPUBFUN void XMLCALL
#ifdef __cplusplus
}
#endif
+
+#endif /* LIBXML_SAX1_ENABLED */
+
#endif /* __XML_SAX_H__ */
diff --git a/include/libxml/c14n.h b/include/libxml/c14n.h
index 4bc441c..9f4c6c0 100644
--- a/include/libxml/c14n.h
+++ b/include/libxml/c14n.h
@@ -16,6 +16,7 @@
*/
#ifndef __XML_C14N_H__
#define __XML_C14N_H__
+#ifdef LIBXML_C14N_ENABLED
#ifdef LIBXML_OUTPUT_ENABLED
#ifdef __cplusplus
@@ -99,5 +100,6 @@ XMLPUBFUN int XMLCALL
#endif /* __cplusplus */
#endif /* LIBXML_OUTPUT_ENABLED */
+#endif /* LIBXML_C14N_ENABLED */
#endif /* __XML_C14N_H__ */
diff --git a/include/libxml/globals.h b/include/libxml/globals.h
index 1be2d1f..1173a8f 100644
--- a/include/libxml/globals.h
+++ b/include/libxml/globals.h
@@ -28,6 +28,13 @@ extern "C" {
XMLPUBFUN void XMLCALL xmlInitGlobals(void);
XMLPUBFUN void XMLCALL xmlCleanupGlobals(void);
+typedef xmlParserInputBufferPtr (*xmlParserInputBufferCreateFilenameFunc) (const char *URI, xmlCharEncoding enc);
+typedef xmlOutputBufferPtr (*xmlOutputBufferCreateFilenameFunc) (const char *URI, xmlCharEncodingHandlerPtr encoder, int compression);
+XMLPUBFUN xmlParserInputBufferCreateFilenameFunc
+XMLCALL xmlParserInputBufferCreateFilenameDefault (xmlParserInputBufferCreateFilenameFunc func);
+XMLPUBFUN xmlOutputBufferCreateFilenameFunc
+XMLCALL xmlOutputBufferCreateFilenameDefault (xmlOutputBufferCreateFilenameFunc func);
+
/*
* Externally global symbols which need to be protected for backwards
* compatibility support.
@@ -63,6 +70,8 @@ XMLPUBFUN void XMLCALL xmlCleanupGlobals(void);
#undef xmlRegisterNodeDefaultValue
#undef xmlDeregisterNodeDefaultValue
#undef xmlLastError
+#undef xmlParserInputBufferCreateFilenameValue
+#undef xmlOutputBufferCreateFilenameValue
typedef void (*xmlRegisterNodeFunc) (xmlNodePtr node);
typedef void (*xmlDeregisterNodeFunc) (xmlNodePtr node);
@@ -110,6 +119,9 @@ struct _xmlGlobalState
xmlMallocFunc xmlMallocAtomic;
xmlError xmlLastError;
+
+ xmlParserInputBufferCreateFilenameFunc xmlParserInputBufferCreateFilenameValue;
+ xmlOutputBufferCreateFilenameFunc xmlOutputBufferCreateFilenameValue;
};
#ifdef __cplusplus
@@ -131,6 +143,11 @@ XMLPUBFUN xmlRegisterNodeFunc XMLCALL xmlThrDefRegisterNodeDefault(xmlRegisterNo
XMLPUBFUN xmlDeregisterNodeFunc XMLCALL xmlDeregisterNodeDefault(xmlDeregisterNodeFunc func);
XMLPUBFUN xmlDeregisterNodeFunc XMLCALL xmlThrDefDeregisterNodeDefault(xmlDeregisterNodeFunc func);
+XMLPUBFUN xmlOutputBufferCreateFilenameFunc XMLCALL
+ xmlThrDefOutputBufferCreateFilenameDefault(xmlOutputBufferCreateFilenameFunc func);
+XMLPUBFUN xmlParserInputBufferCreateFilenameFunc XMLCALL
+ xmlThrDefParserInputBufferCreateFilenameDefault(xmlParserInputBufferCreateFilenameFunc func);
+
/** DOC_DISABLE */
/*
* In general the memory allocation entry points are not kept
@@ -415,6 +432,22 @@ XMLPUBFUN xmlDeregisterNodeFunc * XMLCALL __xmlDeregisterNodeDefaultValue(void);
XMLPUBVAR xmlDeregisterNodeFunc xmlDeregisterNodeDefaultValue;
#endif
+XMLPUBFUN xmlParserInputBufferCreateFilenameFunc * XMLCALL __xmlParserInputBufferCreateFilenameValue(void);
+#ifdef LIBXML_THREAD_ENABLED
+#define xmlParserInputBufferCreateFilenameValue \
+(*(__xmlParserInputBufferCreateFilenameValue()))
+#else
+XMLPUBVAR xmlParserInputBufferCreateFilenameFunc xmlParserInputBufferCreateFilenameValue;
+#endif
+
+XMLPUBFUN xmlOutputBufferCreateFilenameFunc * XMLCALL __xmlOutputBufferCreateFilenameValue(void);
+#ifdef LIBXML_THREAD_ENABLED
+#define xmlOutputBufferCreateFilenameValue \
+(*(__xmlOutputBufferCreateFilenameValue()))
+#else
+XMLPUBVAR xmlOutputBufferCreateFilenameFunc xmlOutputBufferCreateFilenameValue;
+#endif
+
#ifdef __cplusplus
}
#endif
diff --git a/include/libxml/nanoftp.h b/include/libxml/nanoftp.h
index 01fadb8..95280db 100644
--- a/include/libxml/nanoftp.h
+++ b/include/libxml/nanoftp.h
@@ -138,6 +138,6 @@ XMLPUBFUN int XMLCALL
#ifdef __cplusplus
}
-#endif /* LIBXML_FTP_ENABLED */
#endif
+#endif /* LIBXML_FTP_ENABLED */
#endif /* __NANO_FTP_H__ */
diff --git a/include/libxml/parser.h b/include/libxml/parser.h
index 2cecb20..2826c2b 100644
--- a/include/libxml/parser.h
+++ b/include/libxml/parser.h
@@ -156,6 +156,20 @@ typedef enum {
#define XML_SKIP_IDS 8
/**
+ * xmlParserMode:
+ *
+ * A parser can operate in various modes
+ */
+typedef enum {
+ XML_PARSE_UNKNOWN = 0,
+ XML_PARSE_DOM = 1,
+ XML_PARSE_SAX = 2,
+ XML_PARSE_PUSH_DOM = 3,
+ XML_PARSE_PUSH_SAX = 4,
+ XML_PARSE_READER = 5
+} xmlParserMode;
+
+/**
* xmlParserCtxt:
*
* The parser context.
@@ -240,7 +254,7 @@ struct _xmlParserCtxt {
int loadsubset; /* should the external subset be loaded */
int linenumbers; /* set line number in element content */
- void *catalogs; /* document's own catalog */
+ void *catalogs; /* document's own catalog */
int recovery; /* run in recovery mode */
int progressive; /* is this a progressive parsing */
xmlDictPtr dict; /* dictionnary for the parser */
@@ -282,6 +296,7 @@ struct _xmlParserCtxt {
* the complete error informations for the last error.
*/
xmlError lastError;
+ xmlParserMode parseMode; /* the parser mode */
};
/**
diff --git a/include/libxml/pattern.h b/include/libxml/pattern.h
index 9db9c4e..02c833b 100644
--- a/include/libxml/pattern.h
+++ b/include/libxml/pattern.h
@@ -15,6 +15,8 @@
#include <libxml/tree.h>
#include <libxml/dict.h>
+#ifdef LIBXML_PATTERN_ENABLED
+
#ifdef __cplusplus
extern "C" {
#endif
@@ -45,4 +47,7 @@ XMLPUBFUN int XMLCALL
#ifdef __cplusplus
}
#endif
+
+#endif /* LIBXML_PATTERN_ENABLED */
+
#endif /* __XML_PATTERN_H__ */
diff --git a/include/libxml/relaxng.h b/include/libxml/relaxng.h
index e970289..3254400 100644
--- a/include/libxml/relaxng.h
+++ b/include/libxml/relaxng.h
@@ -14,6 +14,8 @@
#include <libxml/hash.h>
#include <libxml/xmlstring.h>
+#ifdef LIBXML_SCHEMAS_ENABLED
+
#ifdef __cplusplus
extern "C" {
#endif
@@ -176,4 +178,7 @@ XMLPUBFUN int XMLCALL
#ifdef __cplusplus
}
#endif
+
+#endif /* LIBXML_SCHEMAS_ENABLED */
+
#endif /* __XML_RELAX_NG__ */
diff --git a/include/libxml/schemasInternals.h b/include/libxml/schemasInternals.h
index 5f42ddf..8433499 100644
--- a/include/libxml/schemasInternals.h
+++ b/include/libxml/schemasInternals.h
@@ -24,12 +24,61 @@
extern "C" {
#endif
+typedef enum {
+ XML_SCHEMAS_UNKNOWN = 0,
+ XML_SCHEMAS_STRING,
+ XML_SCHEMAS_NORMSTRING,
+ XML_SCHEMAS_DECIMAL,
+ XML_SCHEMAS_TIME,
+ XML_SCHEMAS_GDAY,
+ XML_SCHEMAS_GMONTH,
+ XML_SCHEMAS_GMONTHDAY,
+ XML_SCHEMAS_GYEAR,
+ XML_SCHEMAS_GYEARMONTH,
+ XML_SCHEMAS_DATE,
+ XML_SCHEMAS_DATETIME,
+ XML_SCHEMAS_DURATION,
+ XML_SCHEMAS_FLOAT,
+ XML_SCHEMAS_DOUBLE,
+ XML_SCHEMAS_BOOLEAN,
+ XML_SCHEMAS_TOKEN,
+ XML_SCHEMAS_LANGUAGE,
+ XML_SCHEMAS_NMTOKEN,
+ XML_SCHEMAS_NMTOKENS,
+ XML_SCHEMAS_NAME,
+ XML_SCHEMAS_QNAME,
+ XML_SCHEMAS_NCNAME,
+ XML_SCHEMAS_ID,
+ XML_SCHEMAS_IDREF,
+ XML_SCHEMAS_IDREFS,
+ XML_SCHEMAS_ENTITY,
+ XML_SCHEMAS_ENTITIES,
+ XML_SCHEMAS_NOTATION,
+ XML_SCHEMAS_ANYURI,
+ XML_SCHEMAS_INTEGER,
+ XML_SCHEMAS_NPINTEGER,
+ XML_SCHEMAS_NINTEGER,
+ XML_SCHEMAS_NNINTEGER,
+ XML_SCHEMAS_PINTEGER,
+ XML_SCHEMAS_INT,
+ XML_SCHEMAS_UINT,
+ XML_SCHEMAS_LONG,
+ XML_SCHEMAS_ULONG,
+ XML_SCHEMAS_SHORT,
+ XML_SCHEMAS_USHORT,
+ XML_SCHEMAS_BYTE,
+ XML_SCHEMAS_UBYTE,
+ XML_SCHEMAS_HEXBINARY,
+ XML_SCHEMAS_BASE64BINARY,
+ XML_SCHEMAS_ANYTYPE,
+ XML_SCHEMAS_ANYSIMPLETYPE
+} xmlSchemaValType;
/*
* XML Schemas defines multiple type of types.
*/
typedef enum {
- XML_SCHEMA_TYPE_BASIC = 1,
+ XML_SCHEMA_TYPE_BASIC = 1, /* A built-in datatype */
XML_SCHEMA_TYPE_ANY,
XML_SCHEMA_TYPE_FACET,
XML_SCHEMA_TYPE_SIMPLE,
@@ -70,7 +119,7 @@ typedef enum {
XML_SCHEMA_CONTENT_ELEMENTS,
XML_SCHEMA_CONTENT_MIXED,
XML_SCHEMA_CONTENT_SIMPLE,
- XML_SCHEMA_CONTENT_MIXED_OR_ELEMENTS,
+ XML_SCHEMA_CONTENT_MIXED_OR_ELEMENTS, /* obsolete, not used */
XML_SCHEMA_CONTENT_BASIC,
XML_SCHEMA_CONTENT_ANY
} xmlSchemaContentType;
@@ -98,41 +147,68 @@ struct _xmlSchemaAnnot {
* XML_SCHEMAS_ANYATTR_SKIP:
*
* Skip unknown attribute from validation
+ * Obsolete, not used anymore.
*/
#define XML_SCHEMAS_ANYATTR_SKIP 1
/**
* XML_SCHEMAS_ANYATTR_LAX:
*
* Ignore validation non definition on attributes
+ * Obsolete, not used anymore.
*/
#define XML_SCHEMAS_ANYATTR_LAX 2
/**
* XML_SCHEMAS_ANYATTR_STRICT:
*
* Apply strict validation rules on attributes
+ * Obsolete, not used anymore.
*/
#define XML_SCHEMAS_ANYATTR_STRICT 3
-
+/**
+ * XML_SCHEMAS_ANY_SKIP:
+ *
+ * Skip unknown attribute from validation
+ */
+#define XML_SCHEMAS_ANY_SKIP 1
+/**
+ * XML_SCHEMAS_ANY_LAX:
+ *
+ * Used by wildcards.
+ * Validate if type found, don't worry if not found
+ */
+#define XML_SCHEMAS_ANY_LAX 2
+/**
+ * XML_SCHEMAS_ANY_STRICT:
+ *
+ * Used by wildcards.
+ * Apply strict validation rules
+ */
+#define XML_SCHEMAS_ANY_STRICT 3
/**
* XML_SCHEMAS_ATTR_USE_PROHIBITED:
*
+ * Used by wildcards.
* The attribute is prohibited.
*/
#define XML_SCHEMAS_ATTR_USE_PROHIBITED 0
-
/**
* XML_SCHEMAS_ATTR_USE_REQUIRED:
*
* The attribute is required.
*/
#define XML_SCHEMAS_ATTR_USE_REQUIRED 1
-
/**
* XML_SCHEMAS_ATTR_USE_OPTIONAL:
*
* The attribute is optional.
*/
#define XML_SCHEMAS_ATTR_USE_OPTIONAL 2
+/**
+ * XML_SCHEMAS_ATTR_GLOABAL:
+ *
+ * allow elements in no namespace
+ */
+#define XML_SCHEMAS_ATTR_GLOBAL 1 << 0
/**
* XML_SCHEMAS_ATTR_NSDEFAULT:
@@ -169,6 +245,68 @@ struct _xmlSchemaAttribute {
};
/**
+ * xmlSchemaAttributeLink:
+ * Used to build a list of attribute uses on complexType definitions.
+ */
+typedef struct _xmlSchemaAttributeLink xmlSchemaAttributeLink;
+typedef xmlSchemaAttributeLink *xmlSchemaAttributeLinkPtr;
+struct _xmlSchemaAttributeLink {
+ struct _xmlSchemaAttributeLink *next;/* the next attribute link ... */
+ struct _xmlSchemaAttribute *attr;/* the linked attribute */
+};
+
+/**
+ * XML_SCHEMAS_WILDCARD_COMPLETE:
+ *
+ * If the wildcard is complete.
+ */
+#define XML_SCHEMAS_WILDCARD_COMPLETE 1 << 0
+
+/**
+ * xmlSchemaCharValueLink:
+ * Used to build a list of namespaces on wildcards.
+ */
+typedef struct _xmlSchemaWildcardNs xmlSchemaWildcardNs;
+typedef xmlSchemaWildcardNs *xmlSchemaWildcardNsPtr;
+struct _xmlSchemaWildcardNs {
+ struct _xmlSchemaWildcardNs *next;/* the next constraint link ... */
+ const xmlChar *value;/* the value */
+};
+
+/**
+ * xmlSchemaWildcard.
+ * A wildcard.
+ */
+typedef struct _xmlSchemaWildcard xmlSchemaWildcard;
+typedef xmlSchemaWildcard *xmlSchemaWildcardPtr;
+struct _xmlSchemaWildcard {
+ xmlSchemaTypeType type; /* The kind of type */
+ const xmlChar *id;
+ xmlSchemaAnnotPtr annot;
+ xmlNodePtr node;
+ int minOccurs;
+ int maxOccurs;
+ int processContents;
+ int any; /* Indicates if the ns constraint is of ##any */
+ xmlSchemaWildcardNsPtr nsSet; /* The list of allowed namespaces */
+ xmlSchemaWildcardNsPtr negNsSet; /* The negated namespace */
+ int flags;
+};
+
+/**
+ * XML_SCHEMAS_ATTRGROUP_WILDCARD_BUILDED:
+ *
+ * The attribute wildcard has been already builded.
+ */
+#define XML_SCHEMAS_ATTRGROUP_WILDCARD_BUILDED 1 << 0
+/**
+ * XML_SCHEMAS_ATTRGROUP_GLOBAL:
+ *
+ * The attribute wildcard has been already builded.
+ */
+#define XML_SCHEMAS_ATTRGROUP_GLOBAL 1 << 1
+
+/**
* An attribute group definition.
*
* xmlSchemaAttribute and xmlSchemaAttributeGroup start of structures
@@ -187,8 +325,32 @@ struct _xmlSchemaAttributeGroup {
xmlSchemaAttributePtr attributes;
xmlNodePtr node;
+ int flags;
+ xmlSchemaWildcardPtr attributeWildcard;
};
+/**
+ * xmlSchemaTypeLink:
+ * Used to build a list of types (e.g. member types of
+ * simpleType with variety "union").
+ */
+typedef struct _xmlSchemaTypeLink xmlSchemaTypeLink;
+typedef xmlSchemaTypeLink *xmlSchemaTypeLinkPtr;
+struct _xmlSchemaTypeLink {
+ struct _xmlSchemaTypeLink *next;/* the next type link ... */
+ xmlSchemaTypePtr type;/* the linked type*/
+};
+
+/**
+ * xmlSchemaFacetLink:
+ * Used to build a list of facets.
+ */
+typedef struct _xmlSchemaFacetLink xmlSchemaFacetLink;
+typedef xmlSchemaFacetLink *xmlSchemaFacetLinkPtr;
+struct _xmlSchemaFacetLink {
+ struct _xmlSchemaFacetLink *next;/* the next facet link ... */
+ xmlSchemaFacetPtr facet;/* the linked facet */
+};
/**
* XML_SCHEMAS_TYPE_MIXED:
@@ -196,6 +358,91 @@ struct _xmlSchemaAttributeGroup {
* the element content type is mixed
*/
#define XML_SCHEMAS_TYPE_MIXED 1 << 0
+/**
+ * XML_SCHEMAS_TYPE_DERIVATION_METHOD_EXTENSION:
+ *
+ * the simple or complex type has a derivation method of "extension".
+ */
+#define XML_SCHEMAS_TYPE_DERIVATION_METHOD_EXTENSION 1 << 1
+/**
+ * XML_SCHEMAS_TYPE_DERIVATION_METHOD_RESTRICTION:
+ *
+ * the simple or complex type has a derivation method of "restriction".
+ */
+#define XML_SCHEMAS_TYPE_DERIVATION_METHOD_RESTRICTION 1 << 2
+/**
+ * XML_SCHEMAS_TYPE_GLOBAL:
+ *
+ * the type is global
+ */
+#define XML_SCHEMAS_TYPE_GLOBAL 1 << 3
+/**
+ * XML_SCHEMAS_TYPE_OWNED_ATTR_WILDCARD:
+ *
+ * the complexType owns an attribute wildcard, i.e.
+ * it can be freed by the complexType
+ */
+#define XML_SCHEMAS_TYPE_OWNED_ATTR_WILDCARD 1 << 4
+/**
+ * XML_SCHEMAS_TYPE_VARIETY_ABSENT:
+ *
+ * the simpleType has a variety of "absent".
+ */
+#define XML_SCHEMAS_TYPE_VARIETY_ABSENT 1 << 5
+/**
+ * XML_SCHEMAS_TYPE_VARIETY_LIST:
+ *
+ * the simpleType has a variety of "list".
+ */
+#define XML_SCHEMAS_TYPE_VARIETY_LIST 1 << 6
+/**
+ * XML_SCHEMAS_TYPE_VARIETY_UNION:
+ *
+ * the simpleType has a variety of "union".
+ */
+#define XML_SCHEMAS_TYPE_VARIETY_UNION 1 << 7
+/**
+ * XML_SCHEMAS_TYPE_VARIETY_ATOMIC:
+ *
+ * the simpleType has a variety of "union".
+ */
+#define XML_SCHEMAS_TYPE_VARIETY_ATOMIC 1 << 8
+/**
+ * XML_SCHEMAS_TYPE_FINAL_EXTENSION:
+ *
+ * the complexType has a final of "extension".
+ */
+#define XML_SCHEMAS_TYPE_FINAL_EXTENSION 1 << 9
+/**
+ * XML_SCHEMAS_TYPE_FINAL_RESTRICTION:
+ *
+ * the simpleType/complexType has a final of "restriction".
+ */
+#define XML_SCHEMAS_TYPE_FINAL_RESTRICTION 1 << 10
+/**
+ * XML_SCHEMAS_TYPE_FINAL_LIST:
+ *
+ * the simpleType has a final of "list".
+ */
+#define XML_SCHEMAS_TYPE_FINAL_LIST 1 << 11
+/**
+ * XML_SCHEMAS_TYPE_FINAL_UNION:
+ *
+ * the simpleType has a final of "union".
+ */
+#define XML_SCHEMAS_TYPE_FINAL_UNION 1 << 12
+/**
+ * XML_SCHEMAS_TYPE_FINAL_UNION:
+ *
+ * the simpleType has a final of "union".
+ */
+#define XML_SCHEMAS_TYPE_FINAL_DEFAULT 1 << 13
+/**
+ * XML_SCHEMAS_TYPE_FINAL_UNION:
+ *
+ * the simpleType has a final of "union".
+ */
+#define XML_SCHEMAS_TYPE_BUILTIN_PRIMITIVE 1 << 14
/**
* _xmlSchemaType:
@@ -224,6 +471,11 @@ struct _xmlSchemaType {
xmlSchemaFacetPtr facets;
struct _xmlSchemaType *redef;/* possible redefinitions for the type */
int recurse;
+ xmlSchemaAttributeLinkPtr attributeUses;
+ xmlSchemaWildcardPtr attributeWildcard;
+ int builtInType;
+ xmlSchemaTypeLinkPtr memberTypes;
+ xmlSchemaFacetLinkPtr facetSet;
};
/*
@@ -267,6 +519,7 @@ struct _xmlSchemaType {
* XML_SCHEMAS_ELEM_TOPLEVEL:
*
* the element is top level
+ * obsolete: use XML_SCHEMAS_ELEM_GLOBAL instead
*/
#define XML_SCHEMAS_ELEM_TOPLEVEL 1 << 5
/**
@@ -279,6 +532,7 @@ struct _xmlSchemaType {
* XML_SCHEMAS_ELEM_NSDEFAULT:
*
* allow elements in no namespace
+ * Obsolete, not used anymore.
*/
#define XML_SCHEMAS_ELEM_NSDEFAULT 1 << 7
@@ -335,7 +589,6 @@ struct _xmlSchemaElement {
* collapse the types of the facet
*/
#define XML_SCHEMAS_FACET_COLLAPSE 3
-
/**
* A facet definition.
*/
@@ -375,7 +628,31 @@ struct _xmlSchemaNotation {
*
* the shemas requires qualified attributes
*/
-#define XML_SCHEMAS_QUALIF_ATTR 1 << 1
+#define XML_SCHEMAS_QUALIF_ATTR 1 << 1
+/**
+ * XML_SCHEMAS_FINAL_DEFAULT_EXTENSION:
+ *
+ * the shema has "extension" in the set of finalDefault.
+ */
+#define XML_SCHEMAS_FINAL_DEFAULT_EXTENSION 1 << 2
+/**
+ * XML_SCHEMAS_FINAL_DEFAULT_RESTRICTION:
+ *
+ * the shema has "restriction" in the set of finalDefault.
+ */
+#define XML_SCHEMAS_FINAL_DEFAULT_RESTRICTION 1 << 3
+/**
+ * XML_SCHEMAS_FINAL_DEFAULT_LIST:
+ *
+ * the shema has "list" in the set of finalDefault.
+ */
+#define XML_SCHEMAS_FINAL_DEFAULT_LIST 1 << 4
+/**
+ * XML_SCHEMAS_FINAL_DEFAULT_UNION:
+ *
+ * the shema has "union" in the set of finalDefault.
+ */
+#define XML_SCHEMAS_FINAL_DEFAULT_UNION 1 << 5
/**
* _xmlSchema:
*
@@ -406,6 +683,7 @@ struct _xmlSchema {
};
XMLPUBFUN void XMLCALL xmlSchemaFreeType (xmlSchemaTypePtr type);
+XMLPUBFUN void XMLCALL xmlSchemaFreeWildcard(xmlSchemaWildcardPtr wildcard);
#ifdef __cplusplus
}
@@ -414,4 +692,3 @@ XMLPUBFUN void XMLCALL xmlSchemaFreeType (xmlSchemaTypePtr type);
#endif /* LIBXML_SCHEMAS_ENABLED */
#endif /* __XML_SCHEMA_INTERNALS_H__ */
-
diff --git a/include/libxml/uri.h b/include/libxml/uri.h
index 5e29e63..90ed06e 100644
--- a/include/libxml/uri.h
+++ b/include/libxml/uri.h
@@ -47,8 +47,11 @@ struct _xmlURI {
XMLPUBFUN xmlURIPtr XMLCALL
xmlCreateURI (void);
XMLPUBFUN xmlChar * XMLCALL
- xmlBuildURI (const xmlChar *URI,
- const xmlChar *base);
+ xmlBuildURI (const xmlChar *URI,
+ const xmlChar *base);
+XMLPUBFUN xmlChar * XMLCALL
+ xmlBuildRelativeURI (const xmlChar *URI,
+ const xmlChar *base);
XMLPUBFUN xmlURIPtr XMLCALL
xmlParseURI (const char *str);
XMLPUBFUN int XMLCALL
diff --git a/include/libxml/valid.h b/include/libxml/valid.h
index 004bb90..ec34ef0 100644
--- a/include/libxml/valid.h
+++ b/include/libxml/valid.h
@@ -269,7 +269,7 @@ XMLPUBFUN xmlListPtr XMLCALL
/**
* The public function calls related to validity checking.
*/
-
+#ifdef LIBXML_VALID_ENABLED
XMLPUBFUN int XMLCALL
xmlValidateRoot (xmlValidCtxtPtr ctxt,
xmlDocPtr doc);
@@ -337,6 +337,8 @@ XMLPUBFUN int XMLCALL
xmlValidateNotationUse (xmlValidCtxtPtr ctxt,
xmlDocPtr doc,
const xmlChar *notationName);
+#endif /* LIBXML_VALID_ENABLED */
+
XMLPUBFUN int XMLCALL
xmlIsMixedElement (xmlDocPtr doc,
const xmlChar *name);
@@ -370,6 +372,9 @@ XMLPUBFUN int XMLCALL
const xmlChar **list,
int *len,
int max);
+
+#ifdef LIBXML_VALID_ENABLED
+
XMLPUBFUN int XMLCALL
xmlValidateNameValue (const xmlChar *value);
XMLPUBFUN int XMLCALL
@@ -379,6 +384,7 @@ XMLPUBFUN int XMLCALL
XMLPUBFUN int XMLCALL
xmlValidateNmtokensValue(const xmlChar *value);
+#endif /* LIBXML_VALID_ENABLED */
#ifdef LIBXML_REGEXP_ENABLED
/*
* Validation based on the regexp support
diff --git a/include/libxml/xinclude.h b/include/libxml/xinclude.h
index 880a280..4bb0aab 100644
--- a/include/libxml/xinclude.h
+++ b/include/libxml/xinclude.h
@@ -16,6 +16,8 @@
#include <libxml/xmlversion.h>
#include <libxml/tree.h>
+#ifdef LIBXML_XINCLUDE_ENABLED
+
#ifdef __cplusplus
extern "C" {
#endif
@@ -113,4 +115,7 @@ XMLPUBFUN int XMLCALL
#ifdef __cplusplus
}
#endif
+
+#endif /* LIBXML_XINCLUDE_ENABLED */
+
#endif /* __XML_XINCLUDE_H__ */
diff --git a/include/libxml/xmlIO.h b/include/libxml/xmlIO.h
index 9c7dc33..f50a3f9 100644
--- a/include/libxml/xmlIO.h
+++ b/include/libxml/xmlIO.h
@@ -206,6 +206,11 @@ XMLPUBFUN int XMLCALL
xmlInputOpenCallback openFunc,
xmlInputReadCallback readFunc,
xmlInputCloseCallback closeFunc);
+
+xmlParserInputBufferPtr
+ __xmlParserInputBufferCreateFilename(const char *URI,
+ xmlCharEncoding enc);
+
#ifdef LIBXML_OUTPUT_ENABLED
/*
* Interfaces for output
@@ -258,6 +263,11 @@ XMLPUBFUN int XMLCALL
xmlOutputOpenCallback openFunc,
xmlOutputWriteCallback writeFunc,
xmlOutputCloseCallback closeFunc);
+
+xmlOutputBufferPtr
+ __xmlOutputBufferCreateFilename(const char *URI,
+ xmlCharEncodingHandlerPtr encoder,
+ int compression);
#endif /* LIBXML_OUTPUT_ENABLED */
/* This function only exists if HTTP support built into the library */
diff --git a/include/libxml/xmlerror.h b/include/libxml/xmlerror.h
index 048ecf3..513c244 100644
--- a/include/libxml/xmlerror.h
+++ b/include/libxml/xmlerror.h
@@ -555,6 +555,25 @@ typedef enum {
XML_SCHEMAP_MISSING_SIMPLETYPE_CHILD, /* 1778 */
XML_SCHEMAP_INVALID_ATTR_NAME, /* 1779 */
XML_SCHEMAP_REF_AND_CONTENT, /* 1780 */
+ XML_SCHEMAP_CT_PROPS_CORRECT_1, /* 1781 */
+ XML_SCHEMAP_CT_PROPS_CORRECT_2, /* 1782 */
+ XML_SCHEMAP_CT_PROPS_CORRECT_3, /* 1783 */
+ XML_SCHEMAP_CT_PROPS_CORRECT_4, /* 1784 */
+ XML_SCHEMAP_CT_PROPS_CORRECT_5, /* 1785 */
+ XML_SCHEMAP_DERIVATION_OK_RESTRICTION_1, /* 1786 */
+ XML_SCHEMAP_DERIVATION_OK_RESTRICTION_2_1_1, /* 1787 */
+ XML_SCHEMAP_DERIVATION_OK_RESTRICTION_2_1_2, /* 1788 */
+ XML_SCHEMAP_DERIVATION_OK_RESTRICTION_2_2, /* 1789 */
+ XML_SCHEMAP_DERIVATION_OK_RESTRICTION_3, /* 1790 */
+ XML_SCHEMAP_WILDCARD_INVALID_NS_MEMBER, /* 1791 */
+ XML_SCHEMAP_INTERSECTION_NOT_EXPRESSIBLE, /* 1792 */
+ XML_SCHEMAP_UNION_NOT_EXPRESSIBLE, /* 1793 */
+ XML_SCHEMAP_SRC_IMPORT_3_1, /* 1794 */
+ XML_SCHEMAP_SRC_IMPORT_3_2, /* 1795 */
+ XML_SCHEMAP_DERIVATION_OK_RESTRICTION_4_1, /* 1796 */
+ XML_SCHEMAP_DERIVATION_OK_RESTRICTION_4_2, /* 1797 */
+ XML_SCHEMAP_DERIVATION_OK_RESTRICTION_4_3, /* 1798 */
+ XML_SCHEMAP_COS_CT_EXTENDS_1_3, /* 1799 */
XML_SCHEMAV_NOROOT = 1800,
XML_SCHEMAV_UNDECLAREDELEM, /* 1801 */
XML_SCHEMAV_NOTTOPLEVEL, /* 1802 */
@@ -578,7 +597,28 @@ typedef enum {
XML_SCHEMAV_ATTRINVALID, /* 1820 */
XML_SCHEMAV_VALUE, /* 1821 */
XML_SCHEMAV_FACET, /* 1822 */
- XML_XPTR_UNKNOWN_SCHEME = 1900,
+ XML_SCHEMAV_CVC_DATATYPE_VALID_1_2_1, /* 1823 */
+ XML_SCHEMAV_CVC_DATATYPE_VALID_1_2_2, /* 1824 */
+ XML_SCHEMAV_CVC_DATATYPE_VALID_1_2_3, /* 1825 */
+ XML_SCHEMAV_CVC_TYPE_3_1_1, /* 1826 */
+ XML_SCHEMAV_CVC_TYPE_3_1_2, /* 1827 */
+ XML_SCHEMAV_CVC_FACET_VALID, /* 1828 */
+ XML_SCHEMAV_CVC_LENGTH_VALID, /* 1829 */
+ XML_SCHEMAV_CVC_MINLENGTH_VALID, /* 1830 */
+ XML_SCHEMAV_CVC_MAXLENGTH_VALID, /* 1831 */
+ XML_SCHEMAV_CVC_MININCLUSIVE_VALID, /* 1832 */
+ XML_SCHEMAV_CVC_MAXINCLUSIVE_VALID, /* 1833 */
+ XML_SCHEMAV_CVC_MINEXCLUSIVE_VALID, /* 1834 */
+ XML_SCHEMAV_CVC_MAXEXCLUSIVE_VALID, /* 1835 */
+ XML_SCHEMAV_CVC_TOTALDIGITS_VALID, /* 1836 */
+ XML_SCHEMAV_CVC_FRACTIONDIGITS_VALID, /* 1837 */
+ XML_SCHEMAV_CVC_PATTERN_VALID, /* 1838 */
+ XML_SCHEMAV_CVC_ENUMERATION_VALID, /* 1839 */
+ XML_SCHEMAV_CVC_COMPLEX_TYPE_2_1, /* 1840 */
+ XML_SCHEMAV_CVC_COMPLEX_TYPE_2_2, /* 1841 */
+ XML_SCHEMAV_CVC_COMPLEX_TYPE_2_3, /* 1842 */
+ XML_SCHEMAV_CVC_COMPLEX_TYPE_2_4, /* 1843 */
+ XML_XPTR_UNKNOWN_SCHEME = 1900,
XML_XPTR_CHILDSEQ_START, /* 1901 */
XML_XPTR_EVAL_FAILED, /* 1902 */
XML_XPTR_EXTRA_OBJECTS, /* 1903 */
@@ -591,7 +631,44 @@ typedef enum {
XML_FTP_ACCNT, /* 2002 */
XML_HTTP_URL_SYNTAX = 2020,
XML_HTTP_USE_IP, /* 2021 */
- XML_HTTP_UNKNOWN_HOST /* 2022 */
+ XML_HTTP_UNKNOWN_HOST, /* 2022 */
+ XML_SCHEMAP_SRC_SIMPLE_TYPE_1 = 3000,
+ XML_SCHEMAP_SRC_SIMPLE_TYPE_2, /* 3001 */
+ XML_SCHEMAP_SRC_SIMPLE_TYPE_3, /* 3002 */
+ XML_SCHEMAP_SRC_SIMPLE_TYPE_4, /* 3003 */
+ XML_SCHEMAP_SRC_RESOLVE, /* 3004 */
+ XML_SCHEMAP_SRC_RESTRICTION_BASE_OR_SIMPLETYPE, /* 3004 */
+ XML_SCHEMAP_SRC_LIST_ITEMTYPE_OR_SIMPLETYPE, /* 3005 */
+ XML_SCHEMAP_SRC_UNION_MEMBERTYPES_OR_SIMPLETYPES, /* 3006 */
+ XML_SCHEMAP_ST_PROPS_CORRECT_1, /* 3007 */
+ XML_SCHEMAP_ST_PROPS_CORRECT_2, /* 3008 */
+ XML_SCHEMAP_ST_PROPS_CORRECT_3, /* 3009 */
+ XML_SCHEMAP_COS_ST_RESTRICTS_1_1, /* 3010 */
+ XML_SCHEMAP_COS_ST_RESTRICTS_1_2, /* 3011 */
+ XML_SCHEMAP_COS_ST_RESTRICTS_1_3_1, /* 3012 */
+ XML_SCHEMAP_COS_ST_RESTRICTS_1_3_2, /* 3013 */
+ XML_SCHEMAP_COS_ST_RESTRICTS_2_1, /* 3014 */
+ XML_SCHEMAP_COS_ST_RESTRICTS_2_3_1_1, /* 3015 */
+ XML_SCHEMAP_COS_ST_RESTRICTS_2_3_1_2, /* 3016 */
+ XML_SCHEMAP_COS_ST_RESTRICTS_2_3_2_1, /* 3017 */
+ XML_SCHEMAP_COS_ST_RESTRICTS_2_3_2_2, /* 3018 */
+ XML_SCHEMAP_COS_ST_RESTRICTS_2_3_2_3, /* 3019 */
+ XML_SCHEMAP_COS_ST_RESTRICTS_2_3_2_4, /* 3021 */
+ XML_SCHEMAP_COS_ST_RESTRICTS_2_3_2_5, /* 3022 */
+ XML_SCHEMAP_COS_ST_RESTRICTS_3_1, /* 3023 */
+ XML_SCHEMAP_COS_ST_RESTRICTS_3_3_1, /* 3024 */
+ XML_SCHEMAP_COS_ST_RESTRICTS_3_3_1_2, /* 3025 */
+ XML_SCHEMAP_COS_ST_RESTRICTS_3_3_2_2, /* 3026 */
+ XML_SCHEMAP_COS_ST_RESTRICTS_3_3_2_1, /* 3027 */
+ XML_SCHEMAP_COS_ST_RESTRICTS_3_3_2_3, /* 3028 */
+ XML_SCHEMAP_COS_ST_RESTRICTS_3_3_2_4, /* 3029 */
+ XML_SCHEMAP_COS_ST_RESTRICTS_3_3_2_5, /* 3030 */
+ XML_SCHEMAP_COS_ST_DERIVED_OK_2_1, /* 3031 */
+ XML_SCHEMAP_COS_ST_DERIVED_OK_2_2, /* 3032 */
+ XML_SCHEMAP_S4S_ELEM_NOT_ALLOWED, /* 3033 */
+ XML_SCHEMAP_S4S_ELEM_MISSING, /* 3034 */
+ XML_SCHEMAP_S4S_ATTR_NOT_ALLOWED, /* 3035 */
+ XML_SCHEMAP_S4S_ATTR_MISSING /* 3036 */
} xmlParserErrors;
/**
diff --git a/include/libxml/xmlreader.h b/include/libxml/xmlreader.h
index de13041..e810468 100644
--- a/include/libxml/xmlreader.h
+++ b/include/libxml/xmlreader.h
@@ -17,6 +17,8 @@
#include <libxml/relaxng.h>
#endif
+#ifdef LIBXML_READER_ENABLED
+
#ifdef __cplusplus
extern "C" {
#endif
@@ -359,5 +361,8 @@ XMLPUBFUN void XMLCALL
#ifdef __cplusplus
}
#endif
+
+#endif /* LIBXML_READER_ENABLED */
+
#endif /* __XML_XMLREADER_H__ */
diff --git a/include/libxml/xmlsave.h b/include/libxml/xmlsave.h
index d83038e..be5971d 100644
--- a/include/libxml/xmlsave.h
+++ b/include/libxml/xmlsave.h
@@ -31,10 +31,14 @@ XMLPUBFUN xmlSaveCtxtPtr XMLCALL
xmlSaveToFilename (const char *filename,
const char *encoding,
int options);
+/******
+ Not yet implemented.
+
XMLPUBFUN xmlSaveCtxtPtr XMLCALL
xmlSaveToBuffer (xmlBufferPtr buffer,
const char *encoding,
int options);
+ ******/
XMLPUBFUN xmlSaveCtxtPtr XMLCALL
xmlSaveToIO (xmlOutputWriteCallback iowrite,
xmlOutputCloseCallback ioclose,
diff --git a/include/libxml/xmlschemastypes.h b/include/libxml/xmlschemastypes.h
index 4514c59..b81e9b4 100644
--- a/include/libxml/xmlschemastypes.h
+++ b/include/libxml/xmlschemastypes.h
@@ -58,6 +58,20 @@ XMLPUBFUN void XMLCALL
XMLPUBFUN int XMLCALL
xmlSchemaCompareValues (xmlSchemaValPtr x,
xmlSchemaValPtr y);
+XMLPUBFUN xmlSchemaTypePtr XMLCALL
+ xmlSchemaGetBuiltInListSimpleTypeItemType(xmlSchemaTypePtr type);
+XMLPUBFUN int XMLCALL
+xmlSchemaValidateListSimpleTypeFacet(xmlSchemaFacetPtr facet,
+ const xmlChar *value,
+ unsigned long actualLen,
+ unsigned long *expectedLen);
+XMLPUBFUN xmlSchemaTypePtr XMLCALL
+xmlSchemaGetBuiltInType(xmlSchemaValType type);
+XMLPUBFUN int XMLCALL
+xmlSchemaIsBuiltInTypeFacet(xmlSchemaTypePtr type,
+ int facetType);
+XMLPUBFUN xmlChar * XMLCALL
+xmlSchemaCollapseString(const xmlChar *value);
#ifdef __cplusplus
}
diff --git a/include/libxml/xmlunicode.h b/include/libxml/xmlunicode.h
index b8537dc..3882b1f 100644
--- a/include/libxml/xmlunicode.h
+++ b/include/libxml/xmlunicode.h
@@ -17,6 +17,8 @@
#include <libxml/xmlversion.h>
+#ifdef LIBXML_UNICODE_ENABLED
+
#ifdef __cplusplus
extern "C" {
#endif
@@ -194,4 +196,7 @@ XMLPUBFUN int XMLCALL xmlUCSIsCat (int code, const char *cat);
#ifdef __cplusplus
}
#endif
+
+#endif /* LIBXML_UNICODE_ENABLED */
+
#endif /* __XML_UNICODE_H__ */
diff --git a/include/libxml/xmlversion.h b/include/libxml/xmlversion.h
index a2ab03d..85d1eec 100644
--- a/include/libxml/xmlversion.h
+++ b/include/libxml/xmlversion.h
@@ -29,21 +29,21 @@ XMLPUBFUN void XMLCALL xmlCheckVersion(int version);
*
* the version string like "1.2.3"
*/
-#define LIBXML_DOTTED_VERSION "2.6.10"
+#define LIBXML_DOTTED_VERSION "2.6.11"
/**
* LIBXML_VERSION:
*
* the version number: 1.2.3 value is 1002003
*/
-#define LIBXML_VERSION 20610
+#define LIBXML_VERSION 20611
/**
* LIBXML_VERSION_STRING:
*
* the version number string, 1.2.3 value is "1002003"
*/
-#define LIBXML_VERSION_STRING "20610"
+#define LIBXML_VERSION_STRING "20611"
/**
* LIBXML_TEST_VERSION:
@@ -51,7 +51,7 @@ XMLPUBFUN void XMLCALL xmlCheckVersion(int version);
* Macro to check that the libxml version in use is compatible with
* the version the software has been compiled against
*/
-#define LIBXML_TEST_VERSION xmlCheckVersion(20610);
+#define LIBXML_TEST_VERSION xmlCheckVersion(20611);
#ifndef VMS
#if 0
diff --git a/include/libxml/xmlwriter.h b/include/libxml/xmlwriter.h
index f1e1fd8..31ceb5f 100644
--- a/include/libxml/xmlwriter.h
+++ b/include/libxml/xmlwriter.h
@@ -11,6 +11,10 @@
#ifndef __XML_XMLWRITER_H__
#define __XML_XMLWRITER_H__
+#include <libxml/xmlversion.h>
+
+#ifdef LIBXML_WRITER_ENABLED
+
#include <stdarg.h>
#include <libxml/xmlIO.h>
#include <libxml/list.h>
@@ -449,4 +453,7 @@ extern "C" {
#ifdef __cplusplus
}
#endif
+
+#endif /* LIBXML_WRITER_ENABLED */
+
#endif /* __XML_XMLWRITER_H__ */
diff --git a/include/libxml/xpath.h b/include/libxml/xpath.h
index 41def0c..8a2e210 100644
--- a/include/libxml/xpath.h
+++ b/include/libxml/xpath.h
@@ -20,6 +20,9 @@
#define __XML_XPATH_H__
#include <libxml/xmlversion.h>
+
+#ifdef LIBXML_XPATH_ENABLED
+
#include <libxml/xmlerror.h>
#include <libxml/tree.h>
#include <libxml/hash.h>
@@ -464,4 +467,6 @@ XMLPUBFUN void XMLCALL
#ifdef __cplusplus
}
#endif
+
+#endif /* LIBXML_XPATH_ENABLED */
#endif /* ! __XML_XPATH_H__ */
diff --git a/include/libxml/xpathInternals.h b/include/libxml/xpathInternals.h
index 75e5d74..4ee1965 100644
--- a/include/libxml/xpathInternals.h
+++ b/include/libxml/xpathInternals.h
@@ -15,6 +15,8 @@
#include <libxml/xmlversion.h>
#include <libxml/xpath.h>
+#ifdef LIBXML_XPATH_ENABLED
+
#ifdef __cplusplus
extern "C" {
#endif
@@ -650,4 +652,6 @@ XMLPUBFUN void XMLCALL xmlXPathNodeSetFreeNs(xmlNsPtr ns);
#ifdef __cplusplus
}
#endif
+
+#endif /* LIBXML_XPATH_ENABLED */
#endif /* ! __XML_XPATH_INTERNALS_H__ */
diff --git a/include/libxml/xpointer.h b/include/libxml/xpointer.h
index 2285b0e..dde1dfb 100644
--- a/include/libxml/xpointer.h
+++ b/include/libxml/xpointer.h
@@ -18,6 +18,9 @@
#define __XML_XPTR_H__
#include <libxml/xmlversion.h>
+
+#ifdef LIBXML_XPTR_ENABLED
+
#include <libxml/tree.h>
#include <libxml/xpath.h>
@@ -106,4 +109,6 @@ XMLPUBFUN void XMLCALL
#ifdef __cplusplus
}
#endif
+
+#endif /* LIBXML_XPTR_ENABLED */
#endif /* __XML_XPTR_H__ */
diff --git a/libxml.h b/libxml.h
index 69e02a2..a524f06 100644
--- a/libxml.h
+++ b/libxml.h
@@ -49,4 +49,12 @@ extern int __xmlRegisterCallbacks;
*/
void __xmlIOErr(int domain, int code, const char *extra);
void __xmlLoaderErr(void *ctx, const char *msg, const char *filename);
+
+#ifdef IN_LIBXML
+#ifdef __GNUC__
+#ifdef linux
+#include "elfgcchack.h"
+#endif
+#endif
+#endif
#endif /* ! __XML_LIBXML_H__ */
diff --git a/libxml.m4 b/libxml.m4
index 85814bf..68cd824 100644
--- a/libxml.m4
+++ b/libxml.m4
@@ -1,206 +1,13 @@
# Configure paths for LIBXML2
-# Toshio Kuratomi 2001-04-21
-# Adapted from:
-# Configure paths for GLIB
-# Owen Taylor 97-11-3
-
-dnl AM_PATH_XML([MINIMUM-VERSION, [ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND]]])
-dnl Test for XML, and define XML_CFLAGS and XML_LIBS
-dnl
-AC_DEFUN([AM_PATH_XML],[
-AC_ARG_WITH(xml-prefix,
- [ --with-xml-prefix=PFX Prefix where libxml is installed (optional)],
- xml_config_prefix="$withval", xml_config_prefix="")
-AC_ARG_WITH(xml-exec-prefix,
- [ --with-xml-exec-prefix=PFX Exec prefix where libxml is installed (optional)],
- xml_config_exec_prefix="$withval", xml_config_exec_prefix="")
-AC_ARG_ENABLE(xmltest,
- [ --disable-xmltest Do not try to compile and run a test LIBXML program],,
- enable_xmltest=yes)
-
- if test x$xml_config_exec_prefix != x ; then
- xml_config_args="$xml_config_args --exec-prefix=$xml_config_exec_prefix"
- if test x${XML_CONFIG+set} != xset ; then
- XML_CONFIG=$xml_config_exec_prefix/bin/xml-config
- fi
- fi
- if test x$xml_config_prefix != x ; then
- xml_config_args="$xml_config_args --prefix=$xml_config_prefix"
- if test x${XML_CONFIG+set} != xset ; then
- XML_CONFIG=$xml_config_prefix/bin/xml-config
- fi
- fi
-
- AC_PATH_PROG(XML_CONFIG, xml-config, no)
- min_xml_version=ifelse([$1], ,1.0.0,[$1])
- AC_MSG_CHECKING(for libxml - version >= $min_xml_version)
- no_xml=""
- if test "$XML_CONFIG" = "no" ; then
- no_xml=yes
- else
- XML_CFLAGS=`$XML_CONFIG $xml_config_args --cflags`
- XML_LIBS=`$XML_CONFIG $xml_config_args --libs`
- xml_config_major_version=`$XML_CONFIG $xml_config_args --version | \
- sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\1/'`
- xml_config_minor_version=`$XML_CONFIG $xml_config_args --version | \
- sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\2/'`
- xml_config_micro_version=`$XML_CONFIG $xml_config_args --version | \
- sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\3/'`
- if test "x$enable_xmltest" = "xyes" ; then
- ac_save_CFLAGS="$CFLAGS"
- ac_save_LIBS="$LIBS"
- CFLAGS="$CFLAGS $XML_CFLAGS"
- LIBS="$XML_LIBS $LIBS"
-dnl
-dnl Now check if the installed libxml is sufficiently new.
-dnl (Also sanity checks the results of xml-config to some extent)
-dnl
- rm -f conf.xmltest
- AC_TRY_RUN([
-#include <stdlib.h>
-#include <stdio.h>
-#include <string.h>
-#include <libxml/tree.h>
-
-int
-main()
-{
- int xml_major_version, xml_minor_version, xml_micro_version;
- int major, minor, micro;
- char *tmp_version;
- int tmp_int_version;
-
- system("touch conf.xmltest");
-
- /* Capture xml-config output via autoconf/configure variables */
- /* HP/UX 9 (%@#!) writes to sscanf strings */
- tmp_version = (char *)strdup("$min_xml_version");
- if (sscanf(tmp_version, "%d.%d.%d", &major, &minor, &micro) != 3) {
- printf("%s, bad version string from xml-config\n", "$min_xml_version");
- exit(1);
- }
- free(tmp_version);
-
- /* Capture the version information from the header files */
- tmp_int_version = LIBXML_VERSION;
- xml_major_version=tmp_int_version / 10000;
- xml_minor_version=(tmp_int_version - xml_major_version * 10000) / 100;
- xml_micro_version=(tmp_int_version - xml_minor_version * 100 - xml_major_version * 10000);
-
- /* Compare xml-config output to the libxml headers */
- if ((xml_major_version != $xml_config_major_version) ||
- (xml_minor_version != $xml_config_minor_version)
-#if 0
- ||
-/* The last released version of libxml-1.x has an incorrect micro version in
- * the header file so neither the includes nor the library will match the
- * micro_version to the output of xml-config
- */
- (xml_micro_version != $xml_config_micro_version)
-#endif
- )
-
- {
- printf("*** libxml header files (version %d.%d.%d) do not match\n",
- xml_major_version, xml_minor_version, xml_micro_version);
- printf("*** xml-config (version %d.%d.%d)\n",
- $xml_config_major_version, $xml_config_minor_version, $xml_config_micro_version);
- return 1;
- }
-/* Compare the headers to the library to make sure we match */
- /* Less than ideal -- doesn't provide us with return value feedback,
- * only exits if there's a serious mismatch between header and library.
- */
- LIBXML_TEST_VERSION;
-
- /* Test that the library is greater than our minimum version */
- if (($xml_config_major_version > major) ||
- (($xml_config_major_version == major) && ($xml_config_minor_version > minor)) ||
- (($xml_config_major_version == major) && ($xml_config_minor_version == minor) &&
- ($xml_config_micro_version >= micro)))
- {
- return 0;
- }
- else
- {
- printf("\n*** An old version of libxml (%d.%d.%d) was found.\n",
- xml_major_version, xml_minor_version, xml_micro_version);
- printf("*** You need a version of libxml newer than %d.%d.%d. The latest version of\n",
- major, minor, micro);
- printf("*** libxml is always available from ftp://ftp.xmlsoft.org.\n");
- printf("***\n");
- printf("*** If you have already installed a sufficiently new version, this error\n");
- printf("*** probably means that the wrong copy of the xml-config shell script is\n");
- printf("*** being found. The easiest way to fix this is to remove the old version\n");
- printf("*** of LIBXML, but you can also set the XML_CONFIG environment to point to the\n");
- printf("*** correct copy of xml-config. (In this case, you will have to\n");
- printf("*** modify your LD_LIBRARY_PATH enviroment variable, or edit /etc/ld.so.conf\n");
- printf("*** so that the correct libraries are found at run-time))\n");
- }
- return 1;
-}
-],, no_xml=yes,[echo $ac_n "cross compiling; assumed OK... $ac_c"])
- CFLAGS="$ac_save_CFLAGS"
- LIBS="$ac_save_LIBS"
- fi
- fi
-
- if test "x$no_xml" = x ; then
- AC_MSG_RESULT(yes (version $xml_config_major_version.$xml_config_minor_version.$xml_config_micro_version))
- ifelse([$2], , :, [$2])
- else
- AC_MSG_RESULT(no)
- if test "$XML_CONFIG" = "no" ; then
- echo "*** The xml-config script installed by LIBXML could not be found"
- echo "*** If libxml was installed in PREFIX, make sure PREFIX/bin is in"
- echo "*** your path, or set the XML_CONFIG environment variable to the"
- echo "*** full path to xml-config."
- else
- if test -f conf.xmltest ; then
- :
- else
- echo "*** Could not run libxml test program, checking why..."
- CFLAGS="$CFLAGS $XML_CFLAGS"
- LIBS="$LIBS $XML_LIBS"
- AC_TRY_LINK([
-#include <libxml/tree.h>
-#include <stdio.h>
-], [ LIBXML_TEST_VERSION; return 0;],
- [ echo "*** The test program compiled, but did not run. This usually means"
- echo "*** that the run-time linker is not finding LIBXML or finding the wrong"
- echo "*** version of LIBXML. If it is not finding LIBXML, you'll need to set your"
- echo "*** LD_LIBRARY_PATH environment variable, or edit /etc/ld.so.conf to point"
- echo "*** to the installed location Also, make sure you have run ldconfig if that"
- echo "*** is required on your system"
- echo "***"
- echo "*** If you have an old version installed, it is best to remove it, although"
- echo "*** you may also be able to get things to work by modifying LD_LIBRARY_PATH" ],
- [ echo "*** The test program failed to compile or link. See the file config.log for the"
- echo "*** exact error that occured. This usually means LIBXML was incorrectly installed"
- echo "*** or that you have moved LIBXML since it was installed. In the latter case, you"
- echo "*** may want to edit the xml-config script: $XML_CONFIG" ])
- CFLAGS="$ac_save_CFLAGS"
- LIBS="$ac_save_LIBS"
- fi
- fi
-
- XML_CFLAGS=""
- XML_LIBS=""
- ifelse([$3], , :, [$3])
- fi
- AC_SUBST(XML_CFLAGS)
- AC_SUBST(XML_LIBS)
- rm -f conf.xmltest
-])
-
-# Configure paths for LIBXML2
+# Mike Hommey 2004-06-19
+# use CPPFLAGS instead of CFLAGS
# Toshio Kuratomi 2001-04-21
# Adapted from:
# Configure paths for GLIB
# Owen Taylor 97-11-3
dnl AM_PATH_XML2([MINIMUM-VERSION, [ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND]]])
-dnl Test for XML, and define XML_CFLAGS and XML_LIBS
+dnl Test for XML, and define XML_CPPFLAGS and XML_LIBS
dnl
AC_DEFUN([AM_PATH_XML2],[
AC_ARG_WITH(xml-prefix,
@@ -233,7 +40,7 @@ AC_ARG_ENABLE(xmltest,
if test "$XML2_CONFIG" = "no" ; then
no_xml=yes
else
- XML_CFLAGS=`$XML2_CONFIG $xml_config_args --cflags`
+ XML_CPPFLAGS=`$XML2_CONFIG $xml_config_args --cflags`
XML_LIBS=`$XML2_CONFIG $xml_config_args --libs`
xml_config_major_version=`$XML2_CONFIG $xml_config_args --version | \
sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\1/'`
@@ -242,9 +49,9 @@ AC_ARG_ENABLE(xmltest,
xml_config_micro_version=`$XML2_CONFIG $xml_config_args --version | \
sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\3/'`
if test "x$enable_xmltest" = "xyes" ; then
- ac_save_CFLAGS="$CFLAGS"
+ ac_save_CPPFLAGS="$CPPFLAGS"
ac_save_LIBS="$LIBS"
- CFLAGS="$CFLAGS $XML_CFLAGS"
+ CPPFLAGS="$CPPFLAGS $XML_CPPFLAGS"
LIBS="$XML_LIBS $LIBS"
dnl
dnl Now check if the installed libxml is sufficiently new.
@@ -327,7 +134,7 @@ main()
return 1;
}
],, no_xml=yes,[echo $ac_n "cross compiling; assumed OK... $ac_c"])
- CFLAGS="$ac_save_CFLAGS"
+ CPPFLAGS="$ac_save_CPPFLAGS"
LIBS="$ac_save_LIBS"
fi
fi
@@ -347,7 +154,7 @@ main()
:
else
echo "*** Could not run libxml test program, checking why..."
- CFLAGS="$CFLAGS $XML_CFLAGS"
+ CPPFLAGS="$CPPFLAGS $XML_CPPFLAGS"
LIBS="$LIBS $XML_LIBS"
AC_TRY_LINK([
#include <libxml/xmlversion.h>
@@ -366,16 +173,16 @@ main()
echo "*** exact error that occured. This usually means LIBXML was incorrectly installed"
echo "*** or that you have moved LIBXML since it was installed. In the latter case, you"
echo "*** may want to edit the xml2-config script: $XML2_CONFIG" ])
- CFLAGS="$ac_save_CFLAGS"
+ CPPFLAGS="$ac_save_CPPFLAGS"
LIBS="$ac_save_LIBS"
fi
fi
- XML_CFLAGS=""
+ XML_CPPFLAGS=""
XML_LIBS=""
ifelse([$3], , :, [$3])
fi
- AC_SUBST(XML_CFLAGS)
+ AC_SUBST(XML_CPPFLAGS)
AC_SUBST(XML_LIBS)
rm -f conf.xmltest
])
diff --git a/libxml.spec.in b/libxml.spec.in
index 27d9752..31e3898 100644
--- a/libxml.spec.in
+++ b/libxml.spec.in
@@ -60,8 +60,46 @@ at parse time or later once the document has been modified.
%setup -q
%build
-%configure
-make
+#
+# try to use compiler profiling, based on Arjan van de Ven <arjanv@redhat.com>
+# initial test spec. This really doesn't work okay for most tests done.
+#
+GCC_VERSION=`gcc --version | grep "^gcc" | awk '{ print $3 }' | sed 's+\([0-9]\)\.\([0-9]\)\..*+\1\2+'`
+#if [ $GCC_VERSION -eq 32 ]
+#then
+# PROF_GEN='-fprofile-arcs'
+# PROF_USE='-fbranch-probabilities'
+#else if [ $GCC_VERSION -eq 33 ]
+#then
+# PROF_GEN='-fprofile-arcs'
+# PROF_USE='-fbranch-probabilities -ftracer'
+#else
+if [ $GCC_VERSION -ge 34 ]
+then
+ PROF_GEN='-fprofile-generate'
+ PROF_USE='-fprofile-use'
+fi
+#fi
+#fi
+
+if [ "$PROF_GEN" != "" ]
+then
+ # First generate a profiling version
+ CFLAGS="${RPM_OPT_FLAGS} ${PROF_GEN}" %configure
+ make
+ # Run a few sampling
+ make dba100000.xml
+ ./xmllint --noout dba100000.xml
+ ./xmllint --stream dba100000.xml
+ ./xmllint --noout --valid test/valid/REC-xml-19980210.xml
+ ./xmllint --stream --valid test/valid/REC-xml-19980210.xml
+ # Then generate code based on profile
+ CFLAGS="${RPM_OPT_FLAGS} ${PROF_USE}" %configure
+ make
+else
+ %configure
+ make
+fi
(cd doc/examples ; make clean)
gzip -9 ChangeLog
diff --git a/libxml2.spec b/libxml2.spec
index 54370be..152c3f0 100644
--- a/libxml2.spec
+++ b/libxml2.spec
@@ -1,6 +1,6 @@
Summary: Library providing XML and HTML support
Name: libxml2
-Version: 2.6.10
+Version: 2.6.11
Release: 1
License: MIT
Group: Development/Libraries
@@ -60,8 +60,46 @@ at parse time or later once the document has been modified.
%setup -q
%build
-%configure
-make
+#
+# try to use compiler profiling, based on Arjan van de Ven <arjanv@redhat.com>
+# initial test spec. This really doesn't work okay for most tests done.
+#
+GCC_VERSION=`gcc --version | grep "^gcc" | awk '{ print $3 }' | sed 's+\([0-9]\)\.\([0-9]\)\..*+\1\2+'`
+#if [ $GCC_VERSION -eq 32 ]
+#then
+# PROF_GEN='-fprofile-arcs'
+# PROF_USE='-fbranch-probabilities'
+#else if [ $GCC_VERSION -eq 33 ]
+#then
+# PROF_GEN='-fprofile-arcs'
+# PROF_USE='-fbranch-probabilities -ftracer'
+#else
+if [ $GCC_VERSION -ge 34 ]
+then
+ PROF_GEN='-fprofile-generate'
+ PROF_USE='-fprofile-use'
+fi
+#fi
+#fi
+
+if [ "$PROF_GEN" != "" ]
+then
+ # First generate a profiling version
+ CFLAGS="${RPM_OPT_FLAGS} ${PROF_GEN}" %configure
+ make
+ # Run a few sampling
+ make dba100000.xml
+ ./xmllint --noout dba100000.xml
+ ./xmllint --stream dba100000.xml
+ ./xmllint --noout --valid test/valid/REC-xml-19980210.xml
+ ./xmllint --stream --valid test/valid/REC-xml-19980210.xml
+ # Then generate code based on profile
+ CFLAGS="${RPM_OPT_FLAGS} ${PROF_USE}" %configure
+ make
+else
+ %configure
+ make
+fi
(cd doc/examples ; make clean)
gzip -9 ChangeLog
@@ -121,8 +159,8 @@ rm -fr %{buildroot}
%doc doc/python.html
%changelog
-* Mon May 17 2004 Daniel Veillard <veillard@redhat.com>
-- upstream release 2.6.10 see http://xmlsoft.org/news.html
+* Mon Jul 5 2004 Daniel Veillard <veillard@redhat.com>
+- upstream release 2.6.11 see http://xmlsoft.org/news.html
* Thu Jan 2 2003 Daniel Veillard <veillard@redhat.com>
- integrated drv_libxml2 xml.sax driver from Stéphane Bidoul
diff --git a/ltconfig b/ltconfig
deleted file mode 100755
index c14d83c..0000000
--- a/ltconfig
+++ /dev/null
@@ -1,3114 +0,0 @@
-#! /bin/sh
-
-# ltconfig - Create a system-specific libtool.
-# Copyright (C) 1996-1999 Free Software Foundation, Inc.
-# Originally by Gordon Matzigkeit <gord@gnu.ai.mit.edu>, 1996
-#
-# 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 2 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, write to the Free Software
-# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-#
-# 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.
-
-# A lot of this script is taken from autoconf-2.10.
-
-# Check that we are running under the correct shell.
-SHELL=${CONFIG_SHELL-/bin/sh}
-echo=echo
-if test "X$1" = X--no-reexec; then
- # Discard the --no-reexec flag, and continue.
- shift
-elif test "X$1" = X--fallback-echo; then
- # Avoid inline document here, it may be left over
- :
-elif test "X`($echo '\t') 2>/dev/null`" = 'X\t'; then
- # Yippee, $echo works!
- :
-else
- # Restart under the correct shell.
- exec "$SHELL" "$0" --no-reexec ${1+"$@"}
-fi
-
-if test "X$1" = X--fallback-echo; then
- # used as fallback echo
- shift
- cat <<EOF
-$*
-EOF
- exit 0
-fi
-
-# Find the correct PATH separator. Usually this is `:', but
-# DJGPP uses `;' like DOS.
-if test "X${PATH_SEPARATOR+set}" != Xset; then
- UNAME=${UNAME-`uname 2>/dev/null`}
- case X$UNAME in
- *-DOS) PATH_SEPARATOR=';' ;;
- *) PATH_SEPARATOR=':' ;;
- esac
-fi
-
-# The HP-UX ksh and POSIX shell print the target directory to stdout
-# if CDPATH is set.
-if test "X${CDPATH+set}" = Xset; then CDPATH=:; export CDPATH; fi
-
-if test "X${echo_test_string+set}" != Xset; then
- # find a string as large as possible, as long as the shell can cope with it
- for cmd in 'sed 50q "$0"' 'sed 20q "$0"' 'sed 10q "$0"' 'sed 2q "$0"' 'echo test'; do
- # expected sizes: less than 2Kb, 1Kb, 512 bytes, 16 bytes, ...
- if (echo_test_string="`eval $cmd`") 2>/dev/null &&
- echo_test_string="`eval $cmd`" &&
- (test "X$echo_test_string" = "X$echo_test_string") 2>/dev/null; then
- break
- fi
- done
-fi
-
-if test "X`($echo '\t') 2>/dev/null`" != 'X\t' ||
- test "X`($echo "$echo_test_string") 2>/dev/null`" != X"$echo_test_string"; then
- # The Solaris, AIX, and Digital Unix default echo programs unquote
- # backslashes. This makes it impossible to quote backslashes using
- # echo "$something" | sed 's/\\/\\\\/g'
- #
- # So, first we look for a working echo in the user's PATH.
-
- IFS="${IFS= }"; save_ifs="$IFS"; IFS="${IFS}${PATH_SEPARATOR}"
- for dir in $PATH /usr/ucb; do
- if (test -f $dir/echo || test -f $dir/echo$ac_exeext) &&
- test "X`($dir/echo '\t') 2>/dev/null`" = 'X\t' &&
- test "X`($dir/echo "$echo_test_string") 2>/dev/null`" = X"$echo_test_string"; then
- echo="$dir/echo"
- break
- fi
- done
- IFS="$save_ifs"
-
- if test "X$echo" = Xecho; then
- # We didn't find a better echo, so look for alternatives.
- if test "X`(print -r '\t') 2>/dev/null`" = 'X\t' &&
- test "X`(print -r "$echo_test_string") 2>/dev/null`" = X"$echo_test_string"; then
- # This shell has a builtin print -r that does the trick.
- echo='print -r'
- elif (test -f /bin/ksh || test -f /bin/ksh$ac_exeext) &&
- test "X$CONFIG_SHELL" != X/bin/ksh; then
- # If we have ksh, try running ltconfig again with it.
- ORIGINAL_CONFIG_SHELL="${CONFIG_SHELL-/bin/sh}"
- export ORIGINAL_CONFIG_SHELL
- CONFIG_SHELL=/bin/ksh
- export CONFIG_SHELL
- exec "$CONFIG_SHELL" "$0" --no-reexec ${1+"$@"}
- else
- # Try using printf.
- echo='printf "%s\n"'
- if test "X`($echo '\t') 2>/dev/null`" = 'X\t' &&
- test "X`($echo "$echo_test_string") 2>/dev/null`" = X"$echo_test_string"; then
- # Cool, printf works
- :
- elif test "X`("$ORIGINAL_CONFIG_SHELL" "$0" --fallback-echo '\t') 2>/dev/null`" = 'X\t' &&
- test "X`("$ORIGINAL_CONFIG_SHELL" "$0" --fallback-echo "$echo_test_string") 2>/dev/null`" = X"$echo_test_string"; then
- CONFIG_SHELL="$ORIGINAL_CONFIG_SHELL"
- export CONFIG_SHELL
- SHELL="$CONFIG_SHELL"
- export SHELL
- echo="$CONFIG_SHELL $0 --fallback-echo"
- elif test "X`("$CONFIG_SHELL" "$0" --fallback-echo '\t') 2>/dev/null`" = 'X\t' &&
- test "X`("$CONFIG_SHELL" "$0" --fallback-echo "$echo_test_string") 2>/dev/null`" = X"$echo_test_string"; then
- echo="$CONFIG_SHELL $0 --fallback-echo"
- else
- # maybe with a smaller string...
- prev=:
-
- for cmd in 'echo test' 'sed 2q "$0"' 'sed 10q "$0"' 'sed 20q "$0"' 'sed 50q "$0"'; do
- if (test "X$echo_test_string" = "X`eval $cmd`") 2>/dev/null; then
- break
- fi
- prev="$cmd"
- done
-
- if test "$prev" != 'sed 50q "$0"'; then
- echo_test_string=`eval $prev`
- export echo_test_string
- exec "${ORIGINAL_CONFIG_SHELL}" "$0" ${1+"$@"}
- else
- # Oops. We lost completely, so just stick with echo.
- echo=echo
- fi
- fi
- fi
- fi
-fi
-
-# Sed substitution that helps us do robust quoting. It backslashifies
-# metacharacters that are still active within double-quoted strings.
-Xsed='sed -e s/^X//'
-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'
-
-# The name of this program.
-progname=`$echo "X$0" | $Xsed -e 's%^.*/%%'`
-
-# Constants:
-PROGRAM=ltconfig
-PACKAGE=libtool
-VERSION=1.3.5
-TIMESTAMP=" (1.385.2.206 2000/05/27 11:12:27)"
-ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5'
-ac_link='${CC-cc} -o conftest $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5'
-rm="rm -f"
-
-help="Try \`$progname --help' for more information."
-
-# Global variables:
-default_ofile=libtool
-can_build_shared=yes
-enable_shared=yes
-# All known linkers require a `.a' archive for static linking (except M$VC,
-# which needs '.lib').
-enable_static=yes
-enable_fast_install=yes
-enable_dlopen=unknown
-enable_win32_dll=no
-ltmain=
-silent=
-srcdir=
-ac_config_guess=
-ac_config_sub=
-host=
-nonopt=
-ofile="$default_ofile"
-verify_host=yes
-with_gcc=no
-with_gnu_ld=no
-need_locks=yes
-ac_ext=c
-objext=o
-libext=a
-exeext=
-cache_file=
-
-old_AR="$AR"
-old_CC="$CC"
-old_CFLAGS="$CFLAGS"
-old_CPPFLAGS="$CPPFLAGS"
-old_LDFLAGS="$LDFLAGS"
-old_LD="$LD"
-old_LN_S="$LN_S"
-old_LIBS="$LIBS"
-old_NM="$NM"
-old_RANLIB="$RANLIB"
-old_DLLTOOL="$DLLTOOL"
-old_OBJDUMP="$OBJDUMP"
-old_AS="$AS"
-
-# Parse the command line options.
-args=
-prev=
-for option
-do
- case "$option" in
- -*=*) optarg=`echo "$option" | sed 's/[-_a-zA-Z0-9]*=//'` ;;
- *) optarg= ;;
- esac
-
- # If the previous option needs an argument, assign it.
- if test -n "$prev"; then
- eval "$prev=\$option"
- prev=
- continue
- fi
-
- case "$option" in
- --help) cat <<EOM
-Usage: $progname [OPTION]... [HOST [LTMAIN]]
-
-Generate a system-specific libtool script.
-
- --debug enable verbose shell tracing
- --disable-shared do not build shared libraries
- --disable-static do not build static libraries
- --disable-fast-install do not optimize for fast installation
- --enable-dlopen enable dlopen support
- --enable-win32-dll enable building dlls on win32 hosts
- --help display this help and exit
- --no-verify do not verify that HOST is a valid host type
--o, --output=FILE specify the output file [default=$default_ofile]
- --quiet same as \`--silent'
- --silent do not print informational messages
- --srcdir=DIR find \`config.guess' in DIR
- --version output version information and exit
- --with-gcc assume that the GNU C compiler will be used
- --with-gnu-ld assume that the C compiler uses the GNU linker
- --disable-lock disable file locking
- --cache-file=FILE configure cache file
-
-LTMAIN is the \`ltmain.sh' shell script fragment or \`ltmain.c' program
-that provides basic libtool functionality.
-
-HOST is the canonical host system name [default=guessed].
-EOM
- exit 0
- ;;
-
- --debug)
- echo "$progname: enabling shell trace mode"
- set -x
- ;;
-
- --disable-shared) enable_shared=no ;;
-
- --disable-static) enable_static=no ;;
-
- --disable-fast-install) enable_fast_install=no ;;
-
- --enable-dlopen) enable_dlopen=yes ;;
-
- --enable-win32-dll) enable_win32_dll=yes ;;
-
- --quiet | --silent) silent=yes ;;
-
- --srcdir) prev=srcdir ;;
- --srcdir=*) srcdir="$optarg" ;;
-
- --no-verify) verify_host=no ;;
-
- --output | -o) prev=ofile ;;
- --output=*) ofile="$optarg" ;;
-
- --version) echo "$PROGRAM (GNU $PACKAGE) $VERSION$TIMESTAMP"; exit 0 ;;
-
- --with-gcc) with_gcc=yes ;;
- --with-gnu-ld) with_gnu_ld=yes ;;
-
- --disable-lock) need_locks=no ;;
-
- --cache-file=*) cache_file="$optarg" ;;
-
- -*)
- echo "$progname: unrecognized option \`$option'" 1>&2
- echo "$help" 1>&2
- exit 1
- ;;
-
- *)
- if test -z "$ltmain"; then
- ltmain="$option"
- elif test -z "$host"; then
-# This generates an unnecessary warning for sparc-sun-solaris4.1.3_U1
-# if test -n "`echo $option| sed 's/[-a-z0-9.]//g'`"; then
-# echo "$progname: warning \`$option' is not a valid host type" 1>&2
-# fi
- host="$option"
- else
- echo "$progname: too many arguments" 1>&2
- echo "$help" 1>&2
- exit 1
- fi ;;
- esac
-done
-
-if test -z "$ltmain"; then
- echo "$progname: you must specify a LTMAIN file" 1>&2
- echo "$help" 1>&2
- exit 1
-fi
-
-if test ! -f "$ltmain"; then
- echo "$progname: \`$ltmain' does not exist" 1>&2
- echo "$help" 1>&2
- exit 1
-fi
-
-# Quote any args containing shell metacharacters.
-ltconfig_args=
-for arg
-do
- case "$arg" in
- *" "*|*" "*|*[\[\]\~\#\$\^\&\*\(\)\{\}\\\|\;\<\>\?]*)
- ltconfig_args="$ltconfig_args '$arg'" ;;
- *) ltconfig_args="$ltconfig_args $arg" ;;
- esac
-done
-
-# A relevant subset of AC_INIT.
-
-# File descriptor usage:
-# 0 standard input
-# 1 file creation
-# 2 errors and warnings
-# 3 some systems may open it to /dev/tty
-# 4 used on the Kubota Titan
-# 5 compiler messages saved in config.log
-# 6 checking for... messages and results
-if test "$silent" = yes; then
- exec 6>/dev/null
-else
- exec 6>&1
-fi
-exec 5>>./config.log
-
-# NLS nuisances.
-# Only set LANG and LC_ALL to C if already set.
-# These must not be set unconditionally because not all systems understand
-# e.g. LANG=C (notably SCO).
-if test "X${LC_ALL+set}" = Xset; then LC_ALL=C; export LC_ALL; fi
-if test "X${LANG+set}" = Xset; then LANG=C; export LANG; fi
-
-if test -n "$cache_file" && test -r "$cache_file"; then
- echo "loading cache $cache_file within ltconfig"
- . $cache_file
-fi
-
-if (echo "testing\c"; echo 1,2,3) | grep c >/dev/null; then
- # Stardent Vistra SVR4 grep lacks -e, says ghazi@caip.rutgers.edu.
- if (echo -n testing; echo 1,2,3) | sed s/-n/xn/ | grep xn >/dev/null; then
- ac_n= ac_c='
-' ac_t=' '
- else
- ac_n=-n ac_c= ac_t=
- fi
-else
- ac_n= ac_c='\c' ac_t=
-fi
-
-if test -z "$srcdir"; then
- # Assume the source directory is the same one as the path to LTMAIN.
- srcdir=`$echo "X$ltmain" | $Xsed -e 's%/[^/]*$%%'`
- test "$srcdir" = "$ltmain" && srcdir=.
-fi
-
-trap "$rm conftest*; exit 1" 1 2 15
-if test "$verify_host" = yes; then
- # Check for config.guess and config.sub.
- ac_aux_dir=
- for ac_dir in $srcdir $srcdir/.. $srcdir/../..; do
- if test -f $ac_dir/config.guess; then
- ac_aux_dir=$ac_dir
- break
- fi
- done
- if test -z "$ac_aux_dir"; then
- echo "$progname: cannot find config.guess in $srcdir $srcdir/.. $srcdir/../.." 1>&2
- echo "$help" 1>&2
- exit 1
- fi
- ac_config_guess=$ac_aux_dir/config.guess
- ac_config_sub=$ac_aux_dir/config.sub
-
- # Make sure we can run config.sub.
- if $SHELL $ac_config_sub sun4 >/dev/null 2>&1; then :
- else
- echo "$progname: cannot run $ac_config_sub" 1>&2
- echo "$help" 1>&2
- exit 1
- fi
-
- echo $ac_n "checking host system type""... $ac_c" 1>&6
-
- host_alias=$host
- case "$host_alias" in
- "")
- if host_alias=`$SHELL $ac_config_guess`; then :
- else
- echo "$progname: cannot guess host type; you must specify one" 1>&2
- echo "$help" 1>&2
- exit 1
- fi ;;
- esac
- host=`$SHELL $ac_config_sub $host_alias`
- echo "$ac_t$host" 1>&6
-
- # Make sure the host verified.
- test -z "$host" && exit 1
-
-elif test -z "$host"; then
- echo "$progname: you must specify a host type if you use \`--no-verify'" 1>&2
- echo "$help" 1>&2
- exit 1
-else
- host_alias=$host
-fi
-
-# Transform linux* to *-*-linux-gnu*, to support old configure scripts.
-case "$host_os" in
-linux-gnu*) ;;
-linux*) host=`echo $host | sed 's/^\(.*-.*-linux\)\(.*\)$/\1-gnu\2/'`
-esac
-
-host_cpu=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'`
-host_vendor=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'`
-host_os=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'`
-
-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 "X${COLLECT_NAMES+set}" != Xset; then
- COLLECT_NAMES=
- export COLLECT_NAMES
- fi
- ;;
-esac
-
-# Determine commands to create old-style static archives.
-old_archive_cmds='$AR cru $oldlib$oldobjs'
-old_postinstall_cmds='chmod 644 $oldlib'
-old_postuninstall_cmds=
-
-# Set a sane default for `AR'.
-test -z "$AR" && AR=ar
-
-# Set a sane default for `OBJDUMP'.
-test -z "$OBJDUMP" && OBJDUMP=objdump
-
-# If RANLIB is not set, then run the test.
-if test "${RANLIB+set}" != "set"; then
- result=no
-
- echo $ac_n "checking for ranlib... $ac_c" 1>&6
- IFS="${IFS= }"; save_ifs="$IFS"; IFS="${IFS}${PATH_SEPARATOR}"
- for dir in $PATH; do
- test -z "$dir" && dir=.
- if test -f $dir/ranlib || test -f $dir/ranlib$ac_exeext; then
- RANLIB="ranlib"
- result="ranlib"
- break
- fi
- done
- IFS="$save_ifs"
-
- echo "$ac_t$result" 1>&6
-fi
-
-if test -n "$RANLIB"; then
- old_archive_cmds="$old_archive_cmds~\$RANLIB \$oldlib"
- old_postinstall_cmds="\$RANLIB \$oldlib~$old_postinstall_cmds"
-fi
-
-# Set sane defaults for `DLLTOOL', `OBJDUMP', and `AS', used on cygwin.
-test -z "$DLLTOOL" && DLLTOOL=dlltool
-test -z "$OBJDUMP" && OBJDUMP=objdump
-test -z "$AS" && AS=as
-
-# Check to see if we are using GCC.
-if test "$with_gcc" != yes || test -z "$CC"; then
- # If CC is not set, then try to find GCC or a usable CC.
- if test -z "$CC"; then
- echo $ac_n "checking for gcc... $ac_c" 1>&6
- IFS="${IFS= }"; save_ifs="$IFS"; IFS="${IFS}${PATH_SEPARATOR}"
- for dir in $PATH; do
- test -z "$dir" && dir=.
- if test -f $dir/gcc || test -f $dir/gcc$ac_exeext; then
- CC="gcc"
- break
- fi
- done
- IFS="$save_ifs"
-
- if test -n "$CC"; then
- echo "$ac_t$CC" 1>&6
- else
- echo "$ac_t"no 1>&6
- fi
- fi
-
- # Not "gcc", so try "cc", rejecting "/usr/ucb/cc".
- if test -z "$CC"; then
- echo $ac_n "checking for cc... $ac_c" 1>&6
- IFS="${IFS= }"; save_ifs="$IFS"; IFS="${IFS}${PATH_SEPARATOR}"
- cc_rejected=no
- for dir in $PATH; do
- test -z "$dir" && dir=.
- if test -f $dir/cc || test -f $dir/cc$ac_exeext; then
- if test "$dir/cc" = "/usr/ucb/cc"; then
- cc_rejected=yes
- continue
- fi
- CC="cc"
- break
- fi
- done
- IFS="$save_ifs"
- if test $cc_rejected = yes; then
- # We found a bogon in the path, so make sure we never use it.
- set dummy $CC
- shift
- if test $# -gt 0; then
- # We chose a different compiler from the bogus one.
- # However, it has the same name, so the bogon will be chosen
- # first if we set CC to just the name; use the full file name.
- shift
- set dummy "$dir/cc" "$@"
- shift
- CC="$@"
- fi
- fi
-
- if test -n "$CC"; then
- echo "$ac_t$CC" 1>&6
- else
- echo "$ac_t"no 1>&6
- fi
-
- if test -z "$CC"; then
- echo "$progname: error: no acceptable cc found in \$PATH" 1>&2
- exit 1
- fi
- fi
-
- # Now see if the compiler is really GCC.
- with_gcc=no
- echo $ac_n "checking whether we are using GNU C... $ac_c" 1>&6
- echo "$progname:581: checking whether we are using GNU C" >&5
-
- $rm conftest.c
- cat > conftest.c <<EOF
-#ifdef __GNUC__
- yes;
-#endif
-EOF
- if { ac_try='${CC-cc} -E conftest.c'; { (eval echo $progname:589: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then
- with_gcc=yes
- fi
- $rm conftest.c
- echo "$ac_t$with_gcc" 1>&6
-fi
-
-# Allow CC to be a program name with arguments.
-set dummy $CC
-compiler="$2"
-
-echo $ac_n "checking for object suffix... $ac_c" 1>&6
-$rm conftest*
-echo 'int i = 1;' > conftest.c
-echo "$progname:603: checking for object suffix" >& 5
-if { (eval echo $progname:604: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>conftest.err; }; then
- # Append any warnings to the config.log.
- cat conftest.err 1>&5
-
- for ac_file in conftest.*; do
- case $ac_file in
- *.c) ;;
- *) objext=`echo $ac_file | sed -e s/conftest.//` ;;
- esac
- done
-else
- cat conftest.err 1>&5
- echo "$progname: failed program was:" >&5
- cat conftest.c >&5
-fi
-$rm conftest*
-echo "$ac_t$objext" 1>&6
-
-echo $ac_n "checking for executable suffix... $ac_c" 1>&6
-if eval "test \"`echo '$''{'ac_cv_exeext'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- ac_cv_exeext="no"
- $rm conftest*
- echo 'main () { return 0; }' > conftest.c
- echo "$progname:629: checking for executable suffix" >& 5
- if { (eval echo $progname:630: \"$ac_link\") 1>&5; (eval $ac_link) 2>conftest.err; }; then
- # Append any warnings to the config.log.
- cat conftest.err 1>&5
-
- for ac_file in conftest.*; do
- case $ac_file in
- *.c | *.err | *.$objext ) ;;
- *) ac_cv_exeext=.`echo $ac_file | sed -e s/conftest.//` ;;
- esac
- done
- else
- cat conftest.err 1>&5
- echo "$progname: failed program was:" >&5
- cat conftest.c >&5
- fi
- $rm conftest*
-fi
-if test "X$ac_cv_exeext" = Xno; then
- exeext=""
-else
- exeext="$ac_cv_exeext"
-fi
-echo "$ac_t$ac_cv_exeext" 1>&6
-
-echo $ac_n "checking for $compiler option to produce PIC... $ac_c" 1>&6
-pic_flag=
-special_shlib_compile_flags=
-wl=
-link_static_flag=
-no_builtin_flag=
-
-if test "$with_gcc" = yes; then
- wl='-Wl,'
- link_static_flag='-static'
-
- case "$host_os" in
- beos* | irix5* | irix6* | osf3* | osf4* | osf5*)
- # PIC is the default for these OSes.
- ;;
- aix*)
- # Below there is a dirty hack to force normal static linking with -ldl
- # The problem is because libdl dynamically linked with both libc and
- # libC (AIX C++ library), which obviously doesn't included in libraries
- # list by gcc. This cause undefined symbols with -static flags.
- # This hack allows C programs to be linked with "-static -ldl", but
- # we not sure about C++ programs.
- link_static_flag="$link_static_flag ${wl}-lC"
- ;;
- cygwin* | mingw* | os2*)
- # We can build DLLs from non-PIC.
- ;;
- amigaos*)
- # FIXME: we need at least 68020 code to build shared libraries, but
- # adding the `-m68020' flag to GCC prevents building anything better,
- # like `-m68040'.
- pic_flag='-m68020 -resident32 -malways-restore-a4'
- ;;
- sysv4*MP*)
- if test -d /usr/nec; then
- pic_flag=-Kconform_pic
- fi
- ;;
- *)
- pic_flag='-fPIC'
- ;;
- esac
-else
- # PORTME Check for PIC flags for the system compiler.
- case "$host_os" in
- aix3* | aix4*)
- # All AIX code is PIC.
- link_static_flag='-bnso -bI:/lib/syscalls.exp'
- ;;
-
- hpux9* | hpux10* | hpux11*)
- # Is there a better link_static_flag that works with the bundled CC?
- wl='-Wl,'
- link_static_flag="${wl}-a ${wl}archive"
- pic_flag='+Z'
- ;;
-
- irix5* | irix6*)
- wl='-Wl,'
- link_static_flag='-non_shared'
- # PIC (with -KPIC) is the default.
- ;;
-
- cygwin* | mingw* | os2*)
- # We can build DLLs from non-PIC.
- ;;
-
- osf3* | osf4* | osf5*)
- # All OSF/1 code is PIC.
- wl='-Wl,'
- link_static_flag='-non_shared'
- ;;
-
- sco3.2v5*)
- pic_flag='-Kpic'
- link_static_flag='-dn'
- special_shlib_compile_flags='-belf'
- ;;
-
- solaris*)
- pic_flag='-KPIC'
- link_static_flag='-Bstatic'
- wl='-Wl,'
- ;;
-
- sunos4*)
- pic_flag='-PIC'
- link_static_flag='-Bstatic'
- wl='-Qoption ld '
- ;;
-
- sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*)
- pic_flag='-KPIC'
- link_static_flag='-Bstatic'
- wl='-Wl,'
- ;;
-
- uts4*)
- pic_flag='-pic'
- link_static_flag='-Bstatic'
- ;;
- sysv4*MP*)
- if test -d /usr/nec ;then
- pic_flag='-Kconform_pic'
- link_static_flag='-Bstatic'
- fi
- ;;
- *)
- can_build_shared=no
- ;;
- esac
-fi
-
-if test -n "$pic_flag"; then
- echo "$ac_t$pic_flag" 1>&6
-
- # Check to make sure the pic_flag actually works.
- echo $ac_n "checking if $compiler PIC flag $pic_flag works... $ac_c" 1>&6
- $rm conftest*
- echo "int some_variable = 0;" > conftest.c
- save_CFLAGS="$CFLAGS"
- CFLAGS="$CFLAGS $pic_flag -DPIC"
- echo "$progname:776: checking if $compiler PIC flag $pic_flag works" >&5
- if { (eval echo $progname:777: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>conftest.err; } && test -s conftest.$objext; then
- # Append any warnings to the config.log.
- cat conftest.err 1>&5
-
- case "$host_os" in
- hpux9* | hpux10* | hpux11*)
- # On HP-UX, both CC and GCC only warn that PIC is supported... then they
- # create non-PIC objects. So, if there were any warnings, we assume that
- # PIC is not supported.
- if test -s conftest.err; then
- echo "$ac_t"no 1>&6
- can_build_shared=no
- pic_flag=
- else
- echo "$ac_t"yes 1>&6
- pic_flag=" $pic_flag"
- fi
- ;;
- *)
- echo "$ac_t"yes 1>&6
- pic_flag=" $pic_flag"
- ;;
- esac
- else
- # Append any errors to the config.log.
- cat conftest.err 1>&5
- can_build_shared=no
- pic_flag=
- echo "$ac_t"no 1>&6
- fi
- CFLAGS="$save_CFLAGS"
- $rm conftest*
-else
- echo "$ac_t"none 1>&6
-fi
-
-# Check to see if options -o and -c are simultaneously supported by compiler
-echo $ac_n "checking if $compiler supports -c -o file.o... $ac_c" 1>&6
-$rm -r conftest 2>/dev/null
-mkdir conftest
-cd conftest
-$rm conftest*
-echo "int some_variable = 0;" > conftest.c
-mkdir out
-# According to Tom Tromey, Ian Lance Taylor reported there are C compilers
-# that will create temporary files in the current directory regardless of
-# the output directory. Thus, making CWD read-only will cause this test
-# to fail, enabling locking or at least warning the user not to do parallel
-# builds.
-chmod -w .
-save_CFLAGS="$CFLAGS"
-CFLAGS="$CFLAGS -o out/conftest2.o"
-echo "$progname:829: checking if $compiler supports -c -o file.o" >&5
-if { (eval echo $progname:830: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>out/conftest.err; } && test -s out/conftest2.o; then
-
- # The compiler can only warn and ignore the option if not recognized
- # So say no if there are warnings
- if test -s out/conftest.err; then
- echo "$ac_t"no 1>&6
- compiler_c_o=no
- else
- echo "$ac_t"yes 1>&6
- compiler_c_o=yes
- fi
-else
- # Append any errors to the config.log.
- cat out/conftest.err 1>&5
- compiler_c_o=no
- echo "$ac_t"no 1>&6
-fi
-CFLAGS="$save_CFLAGS"
-chmod u+w .
-$rm conftest* out/*
-rmdir out
-cd ..
-rmdir conftest
-$rm -r conftest 2>/dev/null
-
-if test x"$compiler_c_o" = x"yes"; then
- # Check to see if we can write to a .lo
- echo $ac_n "checking if $compiler supports -c -o file.lo... $ac_c" 1>&6
- $rm conftest*
- echo "int some_variable = 0;" > conftest.c
- save_CFLAGS="$CFLAGS"
- CFLAGS="$CFLAGS -c -o conftest.lo"
- echo "$progname:862: checking if $compiler supports -c -o file.lo" >&5
-if { (eval echo $progname:863: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>conftest.err; } && test -s conftest.lo; then
-
- # The compiler can only warn and ignore the option if not recognized
- # So say no if there are warnings
- if test -s conftest.err; then
- echo "$ac_t"no 1>&6
- compiler_o_lo=no
- else
- echo "$ac_t"yes 1>&6
- compiler_o_lo=yes
- fi
- else
- # Append any errors to the config.log.
- cat conftest.err 1>&5
- compiler_o_lo=no
- echo "$ac_t"no 1>&6
- fi
- CFLAGS="$save_CFLAGS"
- $rm conftest*
-else
- compiler_o_lo=no
-fi
-
-# Check to see if we can do hard links to lock some files if needed
-hard_links="nottested"
-if test "$compiler_c_o" = no && test "$need_locks" != no; then
- # do not overwrite the value of need_locks provided by the user
- echo $ac_n "checking if we can lock with hard links... $ac_c" 1>&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
- echo "$ac_t$hard_links" 1>&6
- $rm conftest*
- if test "$hard_links" = no; then
- echo "*** WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&2
- need_locks=warn
- fi
-else
- need_locks=no
-fi
-
-if test "$with_gcc" = yes; then
- # Check to see if options -fno-rtti -fno-exceptions are supported by compiler
- echo $ac_n "checking if $compiler supports -fno-rtti -fno-exceptions ... $ac_c" 1>&6
- $rm conftest*
- echo "int some_variable = 0;" > conftest.c
- save_CFLAGS="$CFLAGS"
- CFLAGS="$CFLAGS -fno-rtti -fno-exceptions -c conftest.c"
- echo "$progname:914: checking if $compiler supports -fno-rtti -fno-exceptions" >&5
- if { (eval echo $progname:915: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>conftest.err; } && test -s conftest.o; then
-
- # The compiler can only warn and ignore the option if not recognized
- # So say no if there are warnings
- if test -s conftest.err; then
- echo "$ac_t"no 1>&6
- compiler_rtti_exceptions=no
- else
- echo "$ac_t"yes 1>&6
- compiler_rtti_exceptions=yes
- fi
- else
- # Append any errors to the config.log.
- cat conftest.err 1>&5
- compiler_rtti_exceptions=no
- echo "$ac_t"no 1>&6
- fi
- CFLAGS="$save_CFLAGS"
- $rm conftest*
-
- if test "$compiler_rtti_exceptions" = "yes"; then
- no_builtin_flag=' -fno-builtin -fno-rtti -fno-exceptions'
- else
- no_builtin_flag=' -fno-builtin'
- fi
-
-fi
-
-# Check for any special shared library compilation flags.
-if test -n "$special_shlib_compile_flags"; then
- echo "$progname: warning: \`$CC' requires \`$special_shlib_compile_flags' to build shared libraries" 1>&2
- if echo "$old_CC $old_CFLAGS " | egrep -e "[ ]$special_shlib_compile_flags[ ]" >/dev/null; then :
- else
- echo "$progname: add \`$special_shlib_compile_flags' to the CC or CFLAGS env variable and reconfigure" 1>&2
- can_build_shared=no
- fi
-fi
-
-echo $ac_n "checking if $compiler static flag $link_static_flag works... $ac_c" 1>&6
-$rm conftest*
-echo 'main(){return(0);}' > conftest.c
-save_LDFLAGS="$LDFLAGS"
-LDFLAGS="$LDFLAGS $link_static_flag"
-echo "$progname:958: checking if $compiler static flag $link_static_flag works" >&5
-if { (eval echo $progname:959: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
- echo "$ac_t$link_static_flag" 1>&6
-else
- echo "$ac_t"none 1>&6
- link_static_flag=
-fi
-LDFLAGS="$save_LDFLAGS"
-$rm conftest*
-
-if test -z "$LN_S"; then
- # Check to see if we can use ln -s, or we need hard links.
- echo $ac_n "checking whether ln -s works... $ac_c" 1>&6
- $rm conftest.dat
- if ln -s X conftest.dat 2>/dev/null; then
- $rm conftest.dat
- LN_S="ln -s"
- else
- LN_S=ln
- fi
- if test "$LN_S" = "ln -s"; then
- echo "$ac_t"yes 1>&6
- else
- echo "$ac_t"no 1>&6
- fi
-fi
-
-# Make sure LD is an absolute path.
-if test -z "$LD"; then
- ac_prog=ld
- if test "$with_gcc" = yes; then
- # Check if gcc -print-prog-name=ld gives a path.
- echo $ac_n "checking for ld used by GCC... $ac_c" 1>&6
- echo "$progname:991: checking for ld used by GCC" >&5
- ac_prog=`($CC -print-prog-name=ld) 2>&5`
- case "$ac_prog" in
- # Accept absolute paths.
- [\\/]* | [A-Za-z]:[\\/]*)
- re_direlt='/[^/][^/]*/\.\./'
- # Canonicalize the path 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 are not using GCC.
- ac_prog=ld
- ;;
- *)
- # If it is relative, then search for the first ld in PATH.
- with_gnu_ld=unknown
- ;;
- esac
- elif test "$with_gnu_ld" = yes; then
- echo $ac_n "checking for GNU ld... $ac_c" 1>&6
- echo "$progname:1015: checking for GNU ld" >&5
- else
- echo $ac_n "checking for non-GNU ld""... $ac_c" 1>&6
- echo "$progname:1018: checking for non-GNU ld" >&5
- fi
-
- if test -z "$LD"; then
- IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}${PATH_SEPARATOR}"
- for ac_dir in $PATH; do
- test -z "$ac_dir" && ac_dir=.
- if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then
- LD="$ac_dir/$ac_prog"
- # Check to see if the program is GNU ld. I'd rather use --version,
- # but apparently some GNU ld's only accept -v.
- # Break only if it was the GNU/non-GNU ld that we prefer.
- if "$LD" -v 2>&1 < /dev/null | egrep '(GNU|with BFD)' > /dev/null; then
- test "$with_gnu_ld" != no && break
- else
- test "$with_gnu_ld" != yes && break
- fi
- fi
- done
- IFS="$ac_save_ifs"
- fi
-
- if test -n "$LD"; then
- echo "$ac_t$LD" 1>&6
- else
- echo "$ac_t"no 1>&6
- fi
-
- if test -z "$LD"; then
- echo "$progname: error: no acceptable ld found in \$PATH" 1>&2
- exit 1
- fi
-fi
-
-# Check to see if it really is or is not GNU ld.
-echo $ac_n "checking if the linker ($LD) is GNU ld... $ac_c" 1>&6
-# I'd rather use --version here, but apparently some GNU ld's only accept -v.
-if $LD -v 2>&1 </dev/null | egrep '(GNU|with BFD)' 1>&5; then
- with_gnu_ld=yes
-else
- with_gnu_ld=no
-fi
-echo "$ac_t$with_gnu_ld" 1>&6
-
-# See if the linker supports building shared libraries.
-echo $ac_n "checking whether the linker ($LD) supports shared libraries... $ac_c" 1>&6
-
-allow_undefined_flag=
-no_undefined_flag=
-need_lib_prefix=unknown
-need_version=unknown
-# when you set need_version to no, make sure it does not cause -set_version
-# flags to be left without arguments
-archive_cmds=
-archive_expsym_cmds=
-old_archive_from_new_cmds=
-export_dynamic_flag_spec=
-whole_archive_flag_spec=
-thread_safe_flag_spec=
-hardcode_libdir_flag_spec=
-hardcode_libdir_separator=
-hardcode_direct=no
-hardcode_minus_L=no
-hardcode_shlibpath_var=unsupported
-runpath_var=
-always_export_symbols=no
-export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | sed '\''s/.* //'\'' | sort | uniq > $export_symbols'
-# 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 egrep regular expression 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_"
-# 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.
-
-case "$host_os" in
-cygwin* | mingw*)
- # 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 "$with_gcc" != yes; then
- with_gnu_ld=no
- fi
- ;;
-
-esac
-
-ld_shlibs=yes
-if test "$with_gnu_ld" = yes; then
- # If archive_cmds runs LD, not CC, wlarc should be empty
- wlarc='${wl}'
-
- # See if GNU ld supports shared libraries.
- case "$host_os" in
- aix3* | aix4*)
- # On AIX, the GNU linker is very broken
- ld_shlibs=no
- cat <<EOF 1>&2
-
-*** Warning: the GNU linker, at least up to release 2.9.1, 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 modify your PATH
-*** so that a non-GNU linker is found, and then restart.
-
-EOF
- ;;
-
- amigaos*)
- archive_cmds='$rm $objdir/a2ixlibrary.data~$echo "#define NAME $libname" > $objdir/a2ixlibrary.data~$echo "#define LIBRARY_ID 1" >> $objdir/a2ixlibrary.data~$echo "#define VERSION $major" >> $objdir/a2ixlibrary.data~$echo "#define REVISION $revision" >> $objdir/a2ixlibrary.data~$AR cru $lib $libobjs~$RANLIB $lib~(cd $objdir && a2ixlibrary -32)'
- hardcode_libdir_flag_spec='-L$libdir'
- hardcode_minus_L=yes
-
- # Samuel A. Falvo II <kc5tja@dolphin.openprojects.net> reports
- # that the semantics of dynamic libraries on AmigaOS, at least up
- # to version 4, is to share data among multiple programs linked
- # with the same dynamic library. Since this doesn't match the
- # behavior of shared libraries on other platforms, we can use
- # them.
- ld_shlibs=no
- ;;
-
- beos*)
- if $LD --help 2>&1 | egrep ': 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 $linkopts ${wl}-soname $wl$soname -o $lib'
- else
- ld_shlibs=no
- fi
- ;;
-
- cygwin* | mingw*)
- # hardcode_libdir_flag_spec is actually meaningless, as there is
- # no search path for DLLs.
- hardcode_libdir_flag_spec='-L$libdir'
- allow_undefined_flag=unsupported
- always_export_symbols=yes
-
- # Extract the symbol export list from an `--export-all' def file,
- # then regenerate the def file from the symbol export list, so that
- # the compiled dll only exports the symbol export list.
- # Be careful not to strip the DATA tag left by newer dlltools.
- export_symbols_cmds='test -f $objdir/$soname-ltdll.c || sed -e "/^# \/\* ltdll\.c starts here \*\//,/^# \/\* ltdll.c ends here \*\// { s/^# //; p; }" -e d < $0 > $objdir/$soname-ltdll.c~
- test -f $objdir/$soname-ltdll.$objext || (cd $objdir && $CC -c $soname-ltdll.c)~
- $DLLTOOL --export-all --exclude-symbols DllMain@12,_cygwin_dll_entry@12,_cygwin_noncygwin_dll_entry@12 --output-def $objdir/$soname-def $objdir/$soname-ltdll.$objext $libobjs $convenience~
- sed -e "1,/EXPORTS/d" -e "s/ @ [0-9]*//" -e "s/ *;.*$//" < $objdir/$soname-def > $export_symbols'
-
- # If DATA tags from a recent dlltool are present, honour them!
- archive_expsym_cmds='echo EXPORTS > $objdir/$soname-def~
- _lt_hint=1;
- cat $export_symbols | while read symbol; do
- set dummy \$symbol;
- case \$# in
- 2) echo " \$2 @ \$_lt_hint ; " >> $objdir/$soname-def;;
- *) echo " \$2 @ \$_lt_hint \$3 ; " >> $objdir/$soname-def;;
- esac;
- _lt_hint=`expr 1 + \$_lt_hint`;
- done~
- test -f $objdir/$soname-ltdll.c || sed -e "/^# \/\* ltdll\.c starts here \*\//,/^# \/\* ltdll.c ends here \*\// { s/^# //; p; }" -e d < $0 > $objdir/$soname-ltdll.c~
- test -f $objdir/$soname-ltdll.$objext || (cd $objdir && $CC -c $soname-ltdll.c)~
- $CC -Wl,--base-file,$objdir/$soname-base -Wl,--dll -nostartfiles -Wl,-e,__cygwin_dll_entry@12 -o $lib $objdir/$soname-ltdll.$objext $libobjs $deplibs $linkopts~
- $DLLTOOL --as=$AS --dllname $soname --exclude-symbols DllMain@12,_cygwin_dll_entry@12,_cygwin_noncygwin_dll_entry@12 --def $objdir/$soname-def --base-file $objdir/$soname-base --output-exp $objdir/$soname-exp~
- $CC -Wl,--base-file,$objdir/$soname-base $objdir/$soname-exp -Wl,--dll -nostartfiles -Wl,-e,__cygwin_dll_entry@12 -o $lib $objdir/$soname-ltdll.$objext $libobjs $deplibs $linkopts~
- $DLLTOOL --as=$AS --dllname $soname --exclude-symbols DllMain@12,_cygwin_dll_entry@12,_cygwin_noncygwin_dll_entry@12 --def $objdir/$soname-def --base-file $objdir/$soname-base --output-exp $objdir/$soname-exp~
- $CC $objdir/$soname-exp -Wl,--dll -nostartfiles -Wl,-e,__cygwin_dll_entry@12 -o $lib $objdir/$soname-ltdll.$objext $libobjs $deplibs $linkopts'
-
- old_archive_from_new_cmds='$DLLTOOL --as=$AS --dllname $soname --def $objdir/$soname-def --output-lib $objdir/$libname.a'
- ;;
-
- netbsd*)
- if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then
- archive_cmds='$CC -shared $libobjs $deplibs $linkopts ${wl}-soname $wl$soname -o $lib'
- archive_expsym_cmds='$CC -shared $libobjs $deplibs $linkopts ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
- else
- archive_cmds='$LD -Bshareable $libobjs $deplibs $linkopts -o $lib'
- # can we support soname and/or expsyms with a.out? -oliva
- fi
- ;;
-
- solaris* | sysv5*)
- if $LD -v 2>&1 | egrep 'BFD 2\.8' > /dev/null; then
- ld_shlibs=no
- cat <<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.
-
-EOF
- elif $LD --help 2>&1 | egrep ': supported targets:.* elf' > /dev/null; then
- archive_cmds='$CC -shared $libobjs $deplibs $linkopts ${wl}-soname $wl$soname -o $lib'
- archive_expsym_cmds='$CC -shared $libobjs $deplibs $linkopts ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
- else
- ld_shlibs=no
- fi
- ;;
-
- sunos4*)
- archive_cmds='$LD -assert pure-text -Bshareable -o $lib $libobjs $deplibs $linkopts'
- wlarc=
- hardcode_direct=yes
- hardcode_shlibpath_var=no
- ;;
-
- *)
- if $LD --help 2>&1 | egrep ': supported targets:.* elf' > /dev/null; then
- archive_cmds='$CC -shared $libobjs $deplibs $linkopts ${wl}-soname $wl$soname -o $lib'
- archive_expsym_cmds='$CC -shared $libobjs $deplibs $linkopts ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
- else
- ld_shlibs=no
- fi
- ;;
- esac
-
- if test "$ld_shlibs" = yes; then
- runpath_var=LD_RUN_PATH
- hardcode_libdir_flag_spec='${wl}--rpath ${wl}$libdir'
- export_dynamic_flag_spec='${wl}--export-dynamic'
- case $host_os in
- cygwin* | mingw*)
- # dlltool doesn't understand --whole-archive et. al.
- whole_archive_flag_spec=
- ;;
- *)
- # ancient GNU ld didn't support --whole-archive et. al.
- if $LD --help 2>&1 | egrep 'no-whole-archive' > /dev/null; then
- whole_archive_flag_spec="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive'
- else
- whole_archive_flag_spec=
- fi
- ;;
- esac
- 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 $objdir/$soname $libobjs $deplibs $linkopts -bE:$export_symbols -T512 -H512 -bM:SRE~$AR cru $lib $objdir/$soname'
- # Note: this linker hardcodes the directories in LIBPATH if there
- # are no directories specified by -L.
- hardcode_minus_L=yes
- if test "$with_gcc" = yes && test -z "$link_static_flag"; then
- # Neither direct hardcoding nor static linking is supported with a
- # broken collect2.
- hardcode_direct=unsupported
- fi
- ;;
-
- aix4*)
- hardcode_libdir_flag_spec='${wl}-b ${wl}nolibpath ${wl}-b ${wl}libpath:$libdir:/usr/lib:/lib'
- hardcode_libdir_separator=':'
- if test "$with_gcc" = yes; then
- collect2name=`${CC} -print-prog-name=collect2`
- if test -f "$collect2name" && \
- strings "$collect2name" | grep resolve_lib_name >/dev/null
- then
- # We have reworked collect2
- hardcode_direct=yes
- 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
- shared_flag='-shared'
- else
- shared_flag='${wl}-bM:SRE'
- hardcode_direct=yes
- fi
- allow_undefined_flag=' ${wl}-berok'
- archive_cmds="\$CC $shared_flag"' -o $objdir/$soname $libobjs $deplibs $linkopts ${wl}-bexpall ${wl}-bnoentry${allow_undefined_flag}'
- archive_expsym_cmds="\$CC $shared_flag"' -o $objdir/$soname $libobjs $deplibs $linkopts ${wl}-bE:$export_symbols ${wl}-bnoentry${allow_undefined_flag}'
- case "$host_os" in aix4.[01]|aix4.[01].*)
- # According to Greg Wooledge, -bexpall is only supported from AIX 4.2 on
- always_export_symbols=yes ;;
- esac
- ;;
-
- amigaos*)
- archive_cmds='$rm $objdir/a2ixlibrary.data~$echo "#define NAME $libname" > $objdir/a2ixlibrary.data~$echo "#define LIBRARY_ID 1" >> $objdir/a2ixlibrary.data~$echo "#define VERSION $major" >> $objdir/a2ixlibrary.data~$echo "#define REVISION $revision" >> $objdir/a2ixlibrary.data~$AR cru $lib $libobjs~$RANLIB $lib~(cd $objdir && a2ixlibrary -32)'
- hardcode_libdir_flag_spec='-L$libdir'
- hardcode_minus_L=yes
- # see comment about different semantics on the GNU ld section
- ld_shlibs=no
- ;;
-
- cygwin* | mingw*)
- # 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.
- hardcode_libdir_flag_spec=' '
- allow_undefined_flag=unsupported
- # Tell ltmain to make .lib files, not .a files.
- libext=lib
- # FIXME: Setting linknames here is a bad hack.
- archive_cmds='$CC -o $lib $libobjs $linkopts `echo "$deplibs" | sed -e '\''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'
- fix_srcfile_path='`cygpath -w $srcfile`'
- ;;
-
- freebsd1*)
- ld_shlibs=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 $linkopts /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 $linkopts'
- hardcode_direct=yes
- hardcode_minus_L=yes
- hardcode_shlibpath_var=no
- ;;
-
- # FreeBSD 3 and greater uses gcc -shared to do shared libraries.
- freebsd*)
- archive_cmds='$CC -shared -o $lib $libobjs $deplibs $linkopts'
- hardcode_libdir_flag_spec='-R$libdir'
- hardcode_direct=yes
- hardcode_shlibpath_var=no
- ;;
-
- hpux9* | hpux10* | hpux11*)
- case "$host_os" in
- hpux9*) archive_cmds='$rm $objdir/$soname~$LD -b +b $install_libdir -o $objdir/$soname $libobjs $deplibs $linkopts~test $objdir/$soname = $lib || mv $objdir/$soname $lib' ;;
- *) archive_cmds='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linkopts' ;;
- esac
- hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir'
- hardcode_libdir_separator=:
- hardcode_direct=yes
- hardcode_minus_L=yes # Not in the search PATH, but as the default
- # location of the library.
- export_dynamic_flag_spec='${wl}-E'
- ;;
-
- irix5* | irix6*)
- if test "$with_gcc" = yes; then
- archive_cmds='$CC -shared $libobjs $deplibs $linkopts ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${objdir}/so_locations -o $lib'
- else
- archive_cmds='$LD -shared $libobjs $deplibs $linkopts -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${objdir}/so_locations -o $lib'
- fi
- hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
- hardcode_libdir_separator=:
- ;;
-
- netbsd*)
- if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then
- archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linkopts' # a.out
- else
- archive_cmds='$LD -shared -o $lib $libobjs $deplibs $linkopts' # ELF
- fi
- hardcode_libdir_flag_spec='${wl}-R$libdir'
- hardcode_direct=yes
- hardcode_shlibpath_var=no
- ;;
-
- openbsd*)
- archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linkopts'
- hardcode_libdir_flag_spec='-R$libdir'
- hardcode_direct=yes
- hardcode_shlibpath_var=no
- ;;
-
- os2*)
- hardcode_libdir_flag_spec='-L$libdir'
- hardcode_minus_L=yes
- allow_undefined_flag=unsupported
- archive_cmds='$echo "LIBRARY $libname INITINSTANCE" > $objdir/$libname.def~$echo "DESCRIPTION \"$libname\"" >> $objdir/$libname.def~$echo DATA >> $objdir/$libname.def~$echo " SINGLE NONSHARED" >> $objdir/$libname.def~$echo EXPORTS >> $objdir/$libname.def~emxexp $libobjs >> $objdir/$libname.def~$CC -Zdll -Zcrtdll -o $lib $libobjs $deplibs $linkopts $objdir/$libname.def'
- old_archive_from_new_cmds='emximp -o $objdir/$libname.a $objdir/$libname.def'
- ;;
-
- osf3*)
- if test "$with_gcc" = yes; then
- allow_undefined_flag=' ${wl}-expect_unresolved ${wl}\*'
- archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $linkopts ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${objdir}/so_locations -o $lib'
- else
- allow_undefined_flag=' -expect_unresolved \*'
- archive_cmds='$LD -shared${allow_undefined_flag} $libobjs $deplibs $linkopts -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${objdir}/so_locations -o $lib'
- fi
- hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
- hardcode_libdir_separator=:
- ;;
-
- osf4* | osf5*) # As osf3* with the addition of the -msym flag
- if test "$with_gcc" = yes; then
- allow_undefined_flag=' ${wl}-expect_unresolved ${wl}\*'
- archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $linkopts ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${objdir}/so_locations -o $lib'
- else
- allow_undefined_flag=' -expect_unresolved \*'
- archive_cmds='$LD -shared${allow_undefined_flag} $libobjs $deplibs $linkopts -msym -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${objdir}/so_locations -o $lib'
- fi
- hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
- hardcode_libdir_separator=:
- ;;
- rhapsody*)
- archive_cmds='$CC -bundle -undefined suppress -o $lib $libobjs $deplibs $linkopts'
- hardcode_libdir_flags_spec='-L$libdir'
- hardcode_direct=yes
- hardcode_shlibpath_var=no
- ;;
-
- sco3.2v5*)
- archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linkopts'
- hardcode_shlibpath_var=no
- runpath_var=LD_RUN_PATH
- hardcode_runpath_var=yes
- ;;
-
- solaris*)
- no_undefined_flag=' -z text'
- # $CC -shared without GNU ld will not create a library from C++
- # object files and a static libstdc++, better avoid it by now
- archive_cmds='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linkopts'
- 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 $linkopts~$rm $lib.exp'
- hardcode_libdir_flag_spec='-R$libdir'
- hardcode_shlibpath_var=no
- case "$host_os" in
- solaris2.[0-5] | solaris2.[0-5].*) ;;
- *) # Supported since Solaris 2.6 (maybe 2.5.1?)
- whole_archive_flag_spec='-z allextract$convenience -z defaultextract' ;;
- esac
- ;;
-
- sunos4*)
- archive_cmds='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs $linkopts'
- hardcode_libdir_flag_spec='-L$libdir'
- hardcode_direct=yes
- hardcode_minus_L=yes
- hardcode_shlibpath_var=no
- ;;
-
- sysv4)
- if test "x$host_vendor" = xsequent; 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 $linkopts'
- else
- archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linkopts'
- fi
- runpath_var='LD_RUN_PATH'
- hardcode_shlibpath_var=no
- hardcode_direct=no #Motorola manual says yes, but my tests say they lie
- ;;
-
- sysv4.3*)
- archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linkopts'
- hardcode_shlibpath_var=no
- export_dynamic_flag_spec='-Bexport'
- ;;
-
- sysv5*)
- no_undefined_flag=' -z text'
- # $CC -shared without GNU ld will not create a library from C++
- # object files and a static libstdc++, better avoid it by now
- archive_cmds='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linkopts'
- 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 $linkopts~$rm $lib.exp'
- hardcode_libdir_flag_spec=
- hardcode_shlibpath_var=no
- runpath_var='LD_RUN_PATH'
- ;;
-
- uts4*)
- archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linkopts'
- hardcode_libdir_flag_spec='-L$libdir'
- hardcode_shlibpath_var=no
- ;;
-
- dgux*)
- archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linkopts'
- hardcode_libdir_flag_spec='-L$libdir'
- hardcode_shlibpath_var=no
- ;;
-
- sysv4*MP*)
- if test -d /usr/nec; then
- archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linkopts'
- hardcode_shlibpath_var=no
- runpath_var=LD_RUN_PATH
- hardcode_runpath_var=yes
- ld_shlibs=yes
- fi
- ;;
-
- sysv4.2uw2*)
- archive_cmds='$LD -G -o $lib $libobjs $deplibs $linkopts'
- hardcode_direct=yes
- hardcode_minus_L=no
- hardcode_shlibpath_var=no
- hardcode_runpath_var=yes
- runpath_var=LD_RUN_PATH
- ;;
-
- unixware7*)
- archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linkopts'
- runpath_var='LD_RUN_PATH'
- hardcode_shlibpath_var=no
- ;;
-
- *)
- ld_shlibs=no
- ;;
- esac
-fi
-echo "$ac_t$ld_shlibs" 1>&6
-test "$ld_shlibs" = no && can_build_shared=no
-
-if test -z "$NM"; then
- echo $ac_n "checking for BSD-compatible nm... $ac_c" 1>&6
- case "$NM" in
- [\\/]* | [A-Za-z]:[\\/]*) ;; # Let the user override the test with a path.
- *)
- IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}${PATH_SEPARATOR}"
- for ac_dir in $PATH /usr/ucb /usr/ccs/bin /bin; do
- test -z "$ac_dir" && ac_dir=.
- if test -f $ac_dir/nm || test -f $ac_dir/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
- if ($ac_dir/nm -B /dev/null 2>&1 | sed '1q'; exit 0) | egrep /dev/null >/dev/null; then
- NM="$ac_dir/nm -B"
- break
- elif ($ac_dir/nm -p /dev/null 2>&1 | sed '1q'; exit 0) | egrep /dev/null >/dev/null; then
- NM="$ac_dir/nm -p"
- break
- else
- NM=${NM="$ac_dir/nm"} # keep the first match, but
- continue # so that we can try to find one that supports BSD flags
- fi
- fi
- done
- IFS="$ac_save_ifs"
- test -z "$NM" && NM=nm
- ;;
- esac
- echo "$ac_t$NM" 1>&6
-fi
-
-# Check for command to grab the raw symbol name followed by C symbol from nm.
-echo $ac_n "checking command to parse $NM output... $ac_c" 1>&6
-
-# 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]*\)'
-
-# Transform the above into a raw symbol and a C symbol.
-symxfrm='\1 \2\3 \3'
-
-# Transform an extracted symbol line into a proper C declaration
-global_symbol_to_cdecl="sed -n -e 's/^. .* \(.*\)$/extern char \1;/p'"
-
-# Define system-specific variables.
-case "$host_os" in
-aix*)
- symcode='[BCDT]'
- ;;
-cygwin* | mingw*)
- symcode='[ABCDGISTW]'
- ;;
-hpux*) # Its linker distinguishes data from code symbols
- global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern char \1();/p' -e 's/^. .* \(.*\)$/extern char \1;/p'"
- ;;
-irix*)
- symcode='[BCDEGRST]'
- ;;
-solaris*)
- symcode='[BDT]'
- ;;
-sysv4)
- symcode='[DFNSTU]'
- ;;
-esac
-
-# If we're using GNU nm, then use its standard symbol codes.
-if $NM -V 2>&1 | egrep '(GNU|with BFD)' > /dev/null; then
- symcode='[ABCDGISTW]'
-fi
-
-# Try without a prefix undercore, then with it.
-for ac_symprfx in "" "_"; do
-
- # Write the raw and C identifiers.
- global_symbol_pipe="sed -n -e 's/^.*[ ]\($symcode\)[ ][ ]*\($ac_symprfx\)$sympat$/$symxfrm/p'"
-
- # Check to see that the pipe works correctly.
- pipe_works=no
- $rm conftest*
- cat > conftest.c <<EOF
-#ifdef __cplusplus
-extern "C" {
-#endif
-char nm_test_var;
-void nm_test_func(){}
-#ifdef __cplusplus
-}
-#endif
-main(){nm_test_var='a';nm_test_func();return(0);}
-EOF
-
- echo "$progname:1653: checking if global_symbol_pipe works" >&5
- if { (eval echo $progname:1654: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; } && test -s conftest.$objext; then
- # Now try to grab the symbols.
- nlist=conftest.nm
- if { echo "$progname:1657: eval \"$NM conftest.$objext | $global_symbol_pipe > $nlist\"" >&5; eval "$NM conftest.$objext | $global_symbol_pipe > $nlist 2>&5"; } && 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 egrep ' nm_test_var$' "$nlist" >/dev/null; then
- if egrep ' nm_test_func$' "$nlist" >/dev/null; then
- cat <<EOF > conftest.c
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-EOF
- # Now generate the symbol file.
- eval "$global_symbol_to_cdecl"' < "$nlist" >> conftest.c'
-
- cat <<EOF >> conftest.c
-#if defined (__STDC__) && __STDC__
-# define lt_ptr_t void *
-#else
-# define lt_ptr_t char *
-# define const
-#endif
-
-/* The mapping between symbol names and symbols. */
-const struct {
- const char *name;
- lt_ptr_t address;
-}
-lt_preloaded_symbols[] =
-{
-EOF
- sed 's/^. \(.*\) \(.*\)$/ {"\2", (lt_ptr_t) \&\2},/' < "$nlist" >> conftest.c
- cat <<\EOF >> conftest.c
- {0, (lt_ptr_t) 0}
-};
-
-#ifdef __cplusplus
-}
-#endif
-EOF
- # Now try linking the two files.
- mv conftest.$objext conftstm.$objext
- save_LIBS="$LIBS"
- save_CFLAGS="$CFLAGS"
- LIBS="conftstm.$objext"
- CFLAGS="$CFLAGS$no_builtin_flag"
- if { (eval echo $progname:1709: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
- pipe_works=yes
- else
- echo "$progname: failed program was:" >&5
- cat conftest.c >&5
- fi
- LIBS="$save_LIBS"
- 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 $global_symbol_pipe" >&5
- fi
- else
- echo "$progname: failed program was:" >&5
- cat conftest.c >&5
- fi
- $rm conftest* conftst*
-
- # Do not use the global_symbol_pipe unless it works.
- if test "$pipe_works" = yes; then
- break
- else
- global_symbol_pipe=
- fi
-done
-if test "$pipe_works" = yes; then
- echo "${ac_t}ok" 1>&6
-else
- echo "${ac_t}failed" 1>&6
-fi
-
-if test -z "$global_symbol_pipe"; then
- global_symbol_to_cdecl=
-fi
-
-# Check hardcoding attributes.
-echo $ac_n "checking how to hardcode library paths into programs... $ac_c" 1>&6
-hardcode_action=
-if test -n "$hardcode_libdir_flag_spec" || \
- test -n "$runpath_var"; then
-
- # We can hardcode non-existant directories.
- if test "$hardcode_direct" != no &&
- # 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 "$hardcode_shlibpath_var" != no &&
- test "$hardcode_minus_L" != no; 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
-echo "$ac_t$hardcode_action" 1>&6
-
-
-reload_flag=
-reload_cmds='$LD$reload_flag -o $output$reload_objs'
-echo $ac_n "checking for $LD option to reload object files... $ac_c" 1>&6
-# PORTME Some linkers may need a different reload flag.
-reload_flag='-r'
-echo "$ac_t$reload_flag" 1>&6
-test -n "$reload_flag" && reload_flag=" $reload_flag"
-
-# PORTME Fill in your ld.so characteristics
-library_names_spec=
-libname_spec='lib$name'
-soname_spec=
-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"
-sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib"
-file_magic_cmd=
-file_magic_test_file=
-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
-# which responds to the $file_magic_cmd with a given egrep 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.
-echo $ac_n "checking dynamic linker characteristics... $ac_c" 1>&6
-case "$host_os" in
-aix3*)
- version_type=linux
- library_names_spec='${libname}${release}.so$versuffix $libname.a'
- shlibpath_var=LIBPATH
-
- # AIX has no versioning support, so we append a major version to the name.
- soname_spec='${libname}${release}.so$major'
- ;;
-
-aix4*)
- version_type=linux
- # AIX has no versioning support, so currently we can not hardcode correct
- # soname into executable. Probably we can add versioning support to
- # collect2, so additional links can be useful in future.
- # We preserve .a as extension for shared libraries though AIX4.2
- # and later linker supports .so
- library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.a'
- shlibpath_var=LIBPATH
- deplibs_check_method=pass_all
- ;;
-
-amigaos*)
- 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=`$echo "X$lib" | $Xsed -e '\''s%^.*/\([^/]*\)\.ixlibrary$%\1%'\''`; test $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'
- ;;
-
-beos*)
- library_names_spec='${libname}.so'
- dynamic_linker="$host_os ld.so"
- shlibpath_var=LIBRARY_PATH
- deplibs_check_method=pass_all
- lt_cv_dlopen="load_add_on"
- lt_cv_dlopen_libs=
- lt_cv_dlopen_self=yes
- ;;
-
-bsdi4*)
- version_type=linux
- need_version=no
- library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so'
- soname_spec='${libname}${release}.so$major'
- finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir'
- shlibpath_var=LD_LIBRARY_PATH
- deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (shared object|dynamic lib)'
- file_magic_cmd=/usr/bin/file
- file_magic_test_file=/shlib/libc.so
- 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"
- export_dynamic_flag_spec=-rdynamic
- # 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*)
- version_type=windows
- need_version=no
- need_lib_prefix=no
- if test "$with_gcc" = yes; then
- library_names_spec='${libname}`echo ${release} | sed -e 's/[.]/-/g'`${versuffix}.dll $libname.a'
- else
- library_names_spec='${libname}`echo ${release} | sed -e 's/[.]/-/g'`${versuffix}.dll $libname.lib'
- fi
- dynamic_linker='Win32 ld.exe'
- deplibs_check_method='file_magic file format pei*-i386(.*architecture: i386)?'
- file_magic_cmd='${OBJDUMP} -f'
- # FIXME: first we should search . and the directory the executable is in
- shlibpath_var=PATH
- lt_cv_dlopen="LoadLibrary"
- lt_cv_dlopen_libs=
- ;;
-
-freebsd1*)
- dynamic_linker=no
- ;;
-
-freebsd*)
- objformat=`test -x /usr/bin/objformat && /usr/bin/objformat || echo aout`
- version_type=freebsd-$objformat
- case "$version_type" in
- freebsd-elf*)
- deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [LM]SB shared object'
- file_magic_cmd=/usr/bin/file
- file_magic_test_file=`echo /usr/lib/libc.so*`
- library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so $libname.so'
- need_version=no
- need_lib_prefix=no
- ;;
- freebsd-*)
- deplibs_check_method=unknown
- library_names_spec='${libname}${release}.so$versuffix $libname.so$versuffix'
- need_version=yes
- ;;
- esac
- shlibpath_var=LD_LIBRARY_PATH
- case "$host_os" in
- freebsd2* | freebsd3.[01]* | freebsdelf3.[01]*)
- shlibpath_overrides_runpath=yes
- ;;
- *) # from 3.2 on
- shlibpath_overrides_runpath=no
- ;;
- esac
- ;;
-
-gnu*)
- version_type=linux
- need_lib_prefix=no
- need_version=no
- library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so${major} ${libname}.so'
- soname_spec='${libname}${release}.so$major'
- shlibpath_var=LD_LIBRARY_PATH
- ;;
-
-hpux9* | hpux10* | hpux11*)
- # Give a soname corresponding to the major version so that dld.sl refuses to
- # link against other versions.
- dynamic_linker="$host_os dld.sl"
- version_type=sunos
- need_lib_prefix=no
- need_version=no
- shlibpath_var=SHLIB_PATH
- shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH
- library_names_spec='${libname}${release}.sl$versuffix ${libname}${release}.sl$major $libname.sl'
- soname_spec='${libname}${release}.sl$major'
- # HP-UX runs *really* slowly unless shared libraries are mode 555.
- postinstall_cmds='chmod 555 $lib'
- case "$host_os" in
- hpux10.20*)
- # TODO: Does this work for hpux-11 too?
- deplibs_check_method='file_magic (s[0-9][0-9][0-9]|PA-RISC[0-9].[0-9]) shared library'
- file_magic_cmd=/usr/bin/file
- file_magic_test_file=/usr/lib/libc.sl
- ;;
- esac
- ;;
-
-irix5* | irix6*)
- version_type=irix
- need_lib_prefix=no
- need_version=no
- soname_spec='${libname}${release}.so.$major'
- library_names_spec='${libname}${release}.so.$versuffix ${libname}${release}.so.$major ${libname}${release}.so $libname.so'
- case "$host_os" in
- irix5*)
- libsuff= shlibsuff=
- # this will be overridden with pass_all, but let us keep it just in case
- deplibs_check_method="file_magic ELF 32-bit MSB dynamic lib MIPS - version 1"
- ;;
- *)
- case "$LD" in # libtool.m4 will add one of these switches to LD
- *-32|*"-32 ") libsuff= shlibsuff= libmagic=32-bit;;
- *-n32|*"-n32 ") libsuff=32 shlibsuff=N32 libmagic=N32;;
- *-64|*"-64 ") 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}"
- file_magic_cmd=/usr/bin/file
- file_magic_test_file=`echo /lib${libsuff}/libc.so*`
- deplibs_check_method='pass_all'
- ;;
-
-# No shared lib support for Linux oldld, aout, or coff.
-linux-gnuoldld* | linux-gnuaout* | linux-gnucoff*)
- dynamic_linker=no
- ;;
-
-# This must be Linux ELF.
-linux-gnu*)
- version_type=linux
- need_lib_prefix=no
- need_version=no
- library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so'
- soname_spec='${libname}${release}.so$major'
- finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir'
- shlibpath_var=LD_LIBRARY_PATH
- shlibpath_overrides_runpath=no
- deplibs_check_method=pass_all
-
- if test -f /lib/ld.so.1; then
- dynamic_linker='GNU ld.so'
- else
- # Only the GNU ld.so supports shared libraries on MkLinux.
- case "$host_cpu" in
- powerpc*) dynamic_linker=no ;;
- *) dynamic_linker='Linux ld.so' ;;
- esac
- fi
- ;;
-
-netbsd*)
- version_type=sunos
- if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then
- library_names_spec='${libname}${release}.so$versuffix ${libname}.so$versuffix'
- finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir'
- dynamic_linker='NetBSD (a.out) ld.so'
- else
- library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major ${libname}${release}.so ${libname}.so'
- soname_spec='${libname}${release}.so$major'
- dynamic_linker='NetBSD ld.elf_so'
- fi
- shlibpath_var=LD_LIBRARY_PATH
- ;;
-
-openbsd*)
- version_type=sunos
- if test "$with_gnu_ld" = yes; then
- need_lib_prefix=no
- need_version=no
- fi
- library_names_spec='${libname}${release}.so$versuffix ${libname}.so$versuffix'
- finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir'
- shlibpath_var=LD_LIBRARY_PATH
- ;;
-
-os2*)
- libname_spec='$name'
- need_lib_prefix=no
- library_names_spec='$libname.dll $libname.a'
- dynamic_linker='OS/2 ld.exe'
- shlibpath_var=LIBPATH
- ;;
-
-osf3* | osf4* | osf5*)
- version_type=osf
- need_version=no
- soname_spec='${libname}${release}.so'
- library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so $libname.so'
- shlibpath_var=LD_LIBRARY_PATH
- # this will be overridden with pass_all, but let us keep it just in case
- deplibs_check_method='file_magic COFF format alpha shared library'
- file_magic_cmd=/usr/bin/file
- file_magic_test_file=/shlib/libc.so
- deplibs_check_method='pass_all'
- 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"
- ;;
-
-rhapsody*)
- version_type=sunos
- library_names_spec='${libname}.so'
- soname_spec='${libname}.so'
- shlibpath_var=DYLD_LIBRARY_PATH
- deplibs_check_method=pass_all
- ;;
-
-sco3.2v5*)
- version_type=osf
- soname_spec='${libname}${release}.so$major'
- library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so'
- shlibpath_var=LD_LIBRARY_PATH
- ;;
-
-solaris*)
- version_type=linux
- need_lib_prefix=no
- need_version=no
- library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so'
- soname_spec='${libname}${release}.so$major'
- shlibpath_var=LD_LIBRARY_PATH
- shlibpath_overrides_runpath=yes
- # ldd complains unless libraries are executable
- postinstall_cmds='chmod +x $lib'
- deplibs_check_method="file_magic ELF [0-9][0-9]-bit [LM]SB dynamic lib"
- file_magic_cmd=/usr/bin/file
- file_magic_test_file=/lib/libc.so
- ;;
-
-sunos4*)
- version_type=sunos
- library_names_spec='${libname}${release}.so$versuffix ${libname}.so$versuffix'
- finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir'
- shlibpath_var=LD_LIBRARY_PATH
- shlibpath_overrides_runpath=yes
- if test "$with_gnu_ld" = yes; then
- need_lib_prefix=no
- fi
- need_version=yes
- ;;
-
-sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*)
- version_type=linux
- library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so'
- soname_spec='${libname}${release}.so$major'
- shlibpath_var=LD_LIBRARY_PATH
- case "$host_vendor" in
- sequent)
- file_magic_cmd='/bin/file'
- deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [LM]SB (shared object|dynamic lib )'
- ;;
- ncr)
- deplibs_check_method='pass_all'
- ;;
- motorola)
- need_lib_prefix=no
- need_version=no
- shlibpath_overrides_runpath=no
- sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib'
- 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]'
- file_magic_cmd=/usr/bin/file
- file_magic_test_file=`echo /usr/lib/libc.so*`
- ;;
- esac
- ;;
-
-uts4*)
- version_type=linux
- library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so'
- soname_spec='${libname}${release}.so$major'
- shlibpath_var=LD_LIBRARY_PATH
- ;;
-
-dgux*)
- version_type=linux
- need_lib_prefix=no
- need_version=no
- library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so'
- soname_spec='${libname}${release}.so$major'
- shlibpath_var=LD_LIBRARY_PATH
- ;;
-
-sysv4*MP*)
- if test -d /usr/nec ;then
- version_type=linux
- library_names_spec='$libname.so.$versuffix $libname.so.$major $libname.so'
- soname_spec='$libname.so.$major'
- shlibpath_var=LD_LIBRARY_PATH
- fi
- ;;
-
-*)
- dynamic_linker=no
- ;;
-esac
-echo "$ac_t$dynamic_linker" 1>&6
-test "$dynamic_linker" = no && can_build_shared=no
-
-# Report the final consequences.
-echo "checking if libtool supports shared libraries... $can_build_shared" 1>&6
-
-# Only try to build win32 dlls if AC_LIBTOOL_WIN32_DLL was used in
-# configure.in, otherwise build static only libraries.
-case "$host_os" in
-cygwin* | mingw* | os2*)
- if test x$can_build_shared = xyes; then
- test x$enable_win32_dll = xno && can_build_shared=no
- echo "checking if package supports dlls... $can_build_shared" 1>&6
- fi
-;;
-esac
-
-if test -n "$file_magic_test_file" && test -n "$file_magic_cmd"; then
- case "$deplibs_check_method" in
- "file_magic "*)
- file_magic_regex="`expr \"$deplibs_check_method\" : \"file_magic \(.*\)\"`"
- if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null |
- egrep "$file_magic_regex" > /dev/null; then
- :
- else
- cat <<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
-
-EOF
- fi ;;
- esac
-fi
-
-echo $ac_n "checking whether to build shared libraries... $ac_c" 1>&6
-test "$can_build_shared" = "no" && 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 "$enable_shared" = yes && enable_static=no
- if test -n "$RANLIB"; then
- archive_cmds="$archive_cmds~\$RANLIB \$lib"
- postinstall_cmds='$RANLIB $lib'
- fi
- ;;
-
-aix4*)
- test "$enable_shared" = yes && enable_static=no
- ;;
-esac
-
-echo "$ac_t$enable_shared" 1>&6
-
-# Make sure either enable_shared or enable_static is yes.
-test "$enable_shared" = yes || enable_static=yes
-
-echo "checking whether to build static libraries... $enable_static" 1>&6
-
-if test "$hardcode_action" = relink; then
- # Fast installation is not supported
- enable_fast_install=no
-elif test "$shlibpath_overrides_runpath" = yes ||
- test "$enable_shared" = no; then
- # Fast installation is not necessary
- enable_fast_install=needless
-fi
-
-echo $ac_n "checking for objdir... $ac_c" 1>&6
-rm -f .libs 2>/dev/null
-mkdir .libs 2>/dev/null
-if test -d .libs; then
- objdir=.libs
-else
- # MS-DOS does not allow filenames that begin with a dot.
- objdir=_libs
-fi
-rmdir .libs 2>/dev/null
-echo "$ac_t$objdir" 1>&6
-
-if test "x$enable_dlopen" != xyes; then
- enable_dlopen=unknown
- enable_dlopen_self=unknown
- enable_dlopen_self_static=unknown
-else
-if eval "test \"`echo '$''{'lt_cv_dlopen'+set}'`\" != set"; then
- lt_cv_dlopen=no lt_cv_dlopen_libs=
-echo $ac_n "checking for dlopen in -ldl""... $ac_c" 1>&6
-echo "$progname:2248: checking for dlopen in -ldl" >&5
-ac_lib_var=`echo dl'_'dlopen | sed 'y%./+-%__p_%'`
-if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- ac_save_LIBS="$LIBS"
-LIBS="-ldl $LIBS"
-cat > conftest.$ac_ext <<EOF
-#line 2256 "ltconfig"
-/* Override any gcc2 internal prototype to avoid an error. */
-/* We use char because int might match the return type of a gcc2
- builtin and then its argument prototype would still apply. */
-#ifdef __cplusplus
-extern "C"
-#endif
-char dlopen();
-
-int main() {
-dlopen()
-; return 0; }
-EOF
-if { (eval echo $progname:2269: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
- rm -rf conftest*
- eval "ac_cv_lib_$ac_lib_var=yes"
-else
- echo "$progname: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -rf conftest*
- eval "ac_cv_lib_$ac_lib_var=no"
-fi
-rm -f conftest*
-LIBS="$ac_save_LIBS"
-
-fi
-if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
- echo "$ac_t""yes" 1>&6
- lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl"
-else
- echo "$ac_t""no" 1>&6
-echo $ac_n "checking for dlopen""... $ac_c" 1>&6
-echo "$progname:2288: checking for dlopen" >&5
-if eval "test \"`echo '$''{'ac_cv_func_dlopen'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- cat > conftest.$ac_ext <<EOF
-#line 2293 "ltconfig"
-/* System header to define __stub macros and hopefully few prototypes,
- which can conflict with char dlopen(); below. */
-#include <assert.h>
-/* Override any gcc2 internal prototype to avoid an error. */
-/* We use char because int might match the return type of a gcc2
- builtin and then its argument prototype would still apply. */
-#ifdef __cplusplus
-extern "C"
-#endif
-char dlopen();
-
-int main() {
-
-/* 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_dlopen) || defined (__stub___dlopen)
-choke me
-#else
-dlopen();
-#endif
-
-; return 0; }
-EOF
-if { (eval echo $progname:2318: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
- rm -rf conftest*
- eval "ac_cv_func_dlopen=yes"
-else
- echo "$progname: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -rf conftest*
- eval "ac_cv_func_dlopen=no"
-fi
-rm -f conftest*
-fi
-if eval "test \"`echo '$ac_cv_func_'dlopen`\" = yes"; then
- echo "$ac_t""yes" 1>&6
- lt_cv_dlopen="dlopen"
-else
- echo "$ac_t""no" 1>&6
-echo $ac_n "checking for dld_link in -ldld""... $ac_c" 1>&6
-echo "$progname:2335: checking for dld_link in -ldld" >&5
-ac_lib_var=`echo dld'_'dld_link | sed 'y%./+-%__p_%'`
-if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- ac_save_LIBS="$LIBS"
-LIBS="-ldld $LIBS"
-cat > conftest.$ac_ext <<EOF
-#line 2343 "ltconfig"
-/* Override any gcc2 internal prototype to avoid an error. */
-/* We use char because int might match the return type of a gcc2
- builtin and then its argument prototype would still apply. */
-#ifdef __cplusplus
-extern "C"
-#endif
-char dld_link();
-
-int main() {
-dld_link()
-; return 0; }
-EOF
-if { (eval echo $progname:2356: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
- rm -rf conftest*
- eval "ac_cv_lib_$ac_lib_var=yes"
-else
- echo "$progname: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -rf conftest*
- eval "ac_cv_lib_$ac_lib_var=no"
-fi
-rm -f conftest*
-LIBS="$ac_save_LIBS"
-
-fi
-if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
- echo "$ac_t""yes" 1>&6
- lt_cv_dlopen="dld_link" lt_cv_dlopen_libs="-ldld"
-else
- echo "$ac_t""no" 1>&6
-echo $ac_n "checking for shl_load""... $ac_c" 1>&6
-echo "$progname:2375: checking for shl_load" >&5
-if eval "test \"`echo '$''{'ac_cv_func_shl_load'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- cat > conftest.$ac_ext <<EOF
-#line 2380 "ltconfig"
-/* System header to define __stub macros and hopefully few prototypes,
- which can conflict with char shl_load(); below. */
-#include <assert.h>
-/* Override any gcc2 internal prototype to avoid an error. */
-/* We use char because int might match the return type of a gcc2
- builtin and then its argument prototype would still apply. */
-#ifdef __cplusplus
-extern "C"
-#endif
-char shl_load();
-
-int main() {
-
-/* 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_shl_load) || defined (__stub___shl_load)
-choke me
-#else
-shl_load();
-#endif
-
-; return 0; }
-EOF
-if { (eval echo $progname:2405: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
- rm -rf conftest*
- eval "ac_cv_func_shl_load=yes"
-else
- echo "$progname: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -rf conftest*
- eval "ac_cv_func_shl_load=no"
-fi
-rm -f conftest*
-fi
-
-if eval "test \"`echo '$ac_cv_func_'shl_load`\" = yes"; then
- echo "$ac_t""yes" 1>&6
- lt_cv_dlopen="shl_load"
-else
- echo "$ac_t""no" 1>&6
-echo $ac_n "checking for shl_load in -ldld""... $ac_c" 1>&6
-echo "$progname:2423: checking for shl_load in -ldld" >&5
-ac_lib_var=`echo dld'_'shl_load | sed 'y%./+-%__p_%'`
-if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- ac_save_LIBS="$LIBS"
-LIBS="-ldld $LIBS"
-cat > conftest.$ac_ext <<EOF
-#line 2431 "ltconfig"
-#include "confdefs.h"
-/* Override any gcc2 internal prototype to avoid an error. */
-/* We use char because int might match the return type of a gcc2
- builtin and then its argument prototype would still apply. */
-#ifdef __cplusplus
-extern "C"
-#endif
-char shl_load();
-
-int main() {
-shl_load()
-; return 0; }
-EOF
-if { (eval echo $progname:2445: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
- rm -rf conftest*
- eval "ac_cv_lib_$ac_lib_var=yes"
-else
- echo "$progname: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -rf conftest*
- eval "ac_cv_lib_$ac_lib_var=no"
-fi
-rm -f conftest*
-LIBS="$ac_save_LIBS"
-
-fi
-if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
- echo "$ac_t""yes" 1>&6
- lt_cv_dlopen="shl_load" lt_cv_dlopen_libs="-ldld"
-else
- echo "$ac_t""no" 1>&6
-fi
-
-
-fi
-
-
-fi
-
-
-fi
-
-
-fi
-
-fi
-
- if test "x$lt_cv_dlopen" != xno; then
- enable_dlopen=yes
- fi
-
- case "$lt_cv_dlopen" in
- dlopen)
-for ac_hdr in dlfcn.h; do
-ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
-echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
-echo "$progname:2488: checking for $ac_hdr" >&5
-if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- cat > conftest.$ac_ext <<EOF
-#line 2493 "ltconfig"
-#include <$ac_hdr>
-int fnord = 0;
-EOF
-ac_try="$ac_compile >/dev/null 2>conftest.out"
-{ (eval echo $progname:2498: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
-ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
-if test -z "$ac_err"; then
- rm -rf conftest*
- eval "ac_cv_header_$ac_safe=yes"
-else
- echo "$ac_err" >&5
- echo "$progname: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -rf conftest*
- eval "ac_cv_header_$ac_safe=no"
-fi
-rm -f conftest*
-fi
-if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then
- echo "$ac_t""yes" 1>&6
-else
- echo "$ac_t""no" 1>&6
-fi
-done
-
- if test "x$ac_cv_header_dlfcn_h" = xyes; then
- CPPFLAGS="$CPPFLAGS -DHAVE_DLFCN_H"
- fi
- eval LDFLAGS=\"\$LDFLAGS $export_dynamic_flag_spec\"
- LIBS="$lt_cv_dlopen_libs $LIBS"
-
- echo $ac_n "checking whether a program can dlopen itself""... $ac_c" 1>&6
-echo "$progname:2526: checking whether a program can dlopen itself" >&5
-if test "${lt_cv_dlopen_self+set}" = set; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- if test "$cross_compiling" = yes; then
- lt_cv_dlopen_self=cross
- else
- cat > conftest.c <<EOF
-#line 2534 "ltconfig"
-
-#if HAVE_DLFCN_H
-#include <dlfcn.h>
-#endif
-
-#include <stdio.h>
-
-#ifdef RTLD_GLOBAL
-# define LTDL_GLOBAL RTLD_GLOBAL
-#else
-# ifdef DL_GLOBAL
-# define LTDL_GLOBAL DL_GLOBAL
-# else
-# define LTDL_GLOBAL 0
-# endif
-#endif
-
-/* We may have to define LTDL_LAZY_OR_NOW in the command line if we
- find out it does not work in some platform. */
-#ifndef LTDL_LAZY_OR_NOW
-# ifdef RTLD_LAZY
-# define LTDL_LAZY_OR_NOW RTLD_LAZY
-# else
-# ifdef DL_LAZY
-# define LTDL_LAZY_OR_NOW DL_LAZY
-# else
-# ifdef RTLD_NOW
-# define LTDL_LAZY_OR_NOW RTLD_NOW
-# else
-# ifdef DL_NOW
-# define LTDL_LAZY_OR_NOW DL_NOW
-# else
-# define LTDL_LAZY_OR_NOW 0
-# endif
-# endif
-# endif
-# endif
-#endif
-
-fnord() { int i=42;}
-main() { void *self, *ptr1, *ptr2; self=dlopen(0,LTDL_GLOBAL|LTDL_LAZY_OR_NOW);
- if(self) { ptr1=dlsym(self,"fnord"); ptr2=dlsym(self,"_fnord");
- if(ptr1 || ptr2) { dlclose(self); exit(0); } } exit(1); }
-
-EOF
-if { (eval echo $progname:2580: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>/dev/null
-then
- lt_cv_dlopen_self=yes
-else
- echo "$progname: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -fr conftest*
- lt_cv_dlopen_self=no
-fi
-rm -fr conftest*
-fi
-
-fi
-
-echo "$ac_t""$lt_cv_dlopen_self" 1>&6
-
- if test "$lt_cv_dlopen_self" = yes; then
- LDFLAGS="$LDFLAGS $link_static_flag"
- echo $ac_n "checking whether a statically linked program can dlopen itself""... $ac_c" 1>&6
-echo "$progname:2599: checking whether a statically linked program can dlopen itself" >&5
-if test "${lt_cv_dlopen_self_static+set}" = set; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- if test "$cross_compiling" = yes; then
- lt_cv_dlopen_self_static=cross
- else
- cat > conftest.c <<EOF
-#line 2607 "ltconfig"
-
-#if HAVE_DLFCN_H
-#include <dlfcn.h>
-#endif
-
-#include <stdio.h>
-
-#ifdef RTLD_GLOBAL
-# define LTDL_GLOBAL RTLD_GLOBAL
-#else
-# ifdef DL_GLOBAL
-# define LTDL_GLOBAL DL_GLOBAL
-# else
-# define LTDL_GLOBAL 0
-# endif
-#endif
-
-/* We may have to define LTDL_LAZY_OR_NOW in the command line if we
- find out it does not work in some platform. */
-#ifndef LTDL_LAZY_OR_NOW
-# ifdef RTLD_LAZY
-# define LTDL_LAZY_OR_NOW RTLD_LAZY
-# else
-# ifdef DL_LAZY
-# define LTDL_LAZY_OR_NOW DL_LAZY
-# else
-# ifdef RTLD_NOW
-# define LTDL_LAZY_OR_NOW RTLD_NOW
-# else
-# ifdef DL_NOW
-# define LTDL_LAZY_OR_NOW DL_NOW
-# else
-# define LTDL_LAZY_OR_NOW 0
-# endif
-# endif
-# endif
-# endif
-#endif
-
-fnord() { int i=42;}
-main() { void *self, *ptr1, *ptr2; self=dlopen(0,LTDL_GLOBAL|LTDL_LAZY_OR_NOW);
- if(self) { ptr1=dlsym(self,"fnord"); ptr2=dlsym(self,"_fnord");
- if(ptr1 || ptr2) { dlclose(self); exit(0); } } exit(1); }
-
-EOF
-if { (eval echo $progname:2653: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>/dev/null
-then
- lt_cv_dlopen_self_static=yes
-else
- echo "$progname: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -fr conftest*
- lt_cv_dlopen_self_static=no
-fi
-rm -fr conftest*
-fi
-
-fi
-
-echo "$ac_t""$lt_cv_dlopen_self_static" 1>&6
-fi
- ;;
- 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
-
-# Copy echo and quote the copy, instead of the original, because it is
-# used later.
-ltecho="$echo"
-if test "X$ltecho" = "X$CONFIG_SHELL $0 --fallback-echo"; then
- ltecho="$CONFIG_SHELL \$0 --fallback-echo"
-fi
-LTSHELL="$SHELL"
-
-LTCONFIG_VERSION="$VERSION"
-
-# Only quote variables if we're using ltmain.sh.
-case "$ltmain" in
-*.sh)
- # Now quote all the things that may contain metacharacters.
- for var in ltecho old_CC old_CFLAGS old_CPPFLAGS \
- old_LD old_LDFLAGS old_LIBS \
- old_NM old_RANLIB old_LN_S old_DLLTOOL old_OBJDUMP old_AS \
- AR CC LD LN_S NM LTSHELL LTCONFIG_VERSION \
- reload_flag reload_cmds wl \
- pic_flag link_static_flag no_builtin_flag export_dynamic_flag_spec \
- thread_safe_flag_spec whole_archive_flag_spec libname_spec \
- library_names_spec soname_spec \
- RANLIB old_archive_cmds old_archive_from_new_cmds old_postinstall_cmds \
- old_postuninstall_cmds archive_cmds archive_expsym_cmds postinstall_cmds postuninstall_cmds \
- file_magic_cmd export_symbols_cmds deplibs_check_method allow_undefined_flag no_undefined_flag \
- finish_cmds finish_eval global_symbol_pipe global_symbol_to_cdecl \
- hardcode_libdir_flag_spec hardcode_libdir_separator \
- sys_lib_search_path_spec sys_lib_dlsearch_path_spec \
- compiler_c_o compiler_o_lo need_locks exclude_expsyms include_expsyms; do
-
- case "$var" in
- reload_cmds | old_archive_cmds | old_archive_from_new_cmds | \
- old_postinstall_cmds | old_postuninstall_cmds | \
- export_symbols_cmds | archive_cmds | archive_expsym_cmds | \
- postinstall_cmds | postuninstall_cmds | \
- finish_cmds | sys_lib_search_path_spec | sys_lib_dlsearch_path_spec)
- # Double-quote double-evaled strings.
- eval "$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$double_quote_subst\" -e \"\$sed_quote_subst\" -e \"\$delay_variable_subst\"\`\\\""
- ;;
- *)
- eval "$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$sed_quote_subst\"\`\\\""
- ;;
- esac
- done
-
- case "$ltecho" in
- *'\$0 --fallback-echo"')
- ltecho=`$echo "X$ltecho" | $Xsed -e 's/\\\\\\\$0 --fallback-echo"$/$0 --fallback-echo"/'`
- ;;
- esac
-
- trap "$rm \"$ofile\"; exit 1" 1 2 15
- echo "creating $ofile"
- $rm "$ofile"
- cat <<EOF > "$ofile"
-#! $SHELL
-
-# `$echo "$ofile" | sed 's%^.*/%%'` - Provide generalized library-building support services.
-# Generated automatically by $PROGRAM (GNU $PACKAGE $VERSION$TIMESTAMP)
-# NOTE: Changes made to this file will be lost: look at ltconfig or ltmain.sh.
-#
-# Copyright (C) 1996-1999 Free Software Foundation, Inc.
-# Originally by Gordon Matzigkeit <gord@gnu.ai.mit.edu>, 1996
-#
-# 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 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, write to the Free Software
-# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-#
-# 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.
-
-# Sed that helps us avoid accidentally triggering echo(1) options like -n.
-Xsed="sed -e s/^X//"
-
-# The HP-UX ksh and POSIX shell print the target directory to stdout
-# if CDPATH is set.
-if test "X\${CDPATH+set}" = Xset; then CDPATH=:; export CDPATH; fi
-
-### BEGIN LIBTOOL CONFIG
-EOF
- cfgfile="$ofile"
- ;;
-
-*)
- # Double-quote the variables that need it (for aesthetics).
- for var in old_CC old_CFLAGS old_CPPFLAGS \
- old_LD old_LDFLAGS old_LIBS \
- old_NM old_RANLIB old_LN_S old_DLLTOOL old_OBJDUMP old_AS; do
- eval "$var=\\\"\$var\\\""
- done
-
- # Just create a config file.
- cfgfile="$ofile.cfg"
- trap "$rm \"$cfgfile\"; exit 1" 1 2 15
- echo "creating $cfgfile"
- $rm "$cfgfile"
- cat <<EOF > "$cfgfile"
-# `$echo "$cfgfile" | sed 's%^.*/%%'` - Libtool configuration file.
-# Generated automatically by $PROGRAM (GNU $PACKAGE $VERSION$TIMESTAMP)
-EOF
- ;;
-esac
-
-cat <<EOF >> "$cfgfile"
-# Libtool was configured as follows, on host `(hostname || uname -n) 2>/dev/null | sed 1q`:
-#
-# CC=$old_CC CFLAGS=$old_CFLAGS CPPFLAGS=$old_CPPFLAGS \\
-# LD=$old_LD LDFLAGS=$old_LDFLAGS LIBS=$old_LIBS \\
-# NM=$old_NM RANLIB=$old_RANLIB LN_S=$old_LN_S \\
-# DLLTOOL=$old_DLLTOOL OBJDUMP=$old_OBJDUMP AS=$old_AS \\
-# $0$ltconfig_args
-#
-# Compiler and other test output produced by $progname, useful for
-# debugging $progname, is in ./config.log if it exists.
-
-# The version of $progname that generated this script.
-LTCONFIG_VERSION=$LTCONFIG_VERSION
-
-# Shell to use when invoking shell scripts.
-SHELL=$LTSHELL
-
-# Whether or not to build shared libraries.
-build_libtool_libs=$enable_shared
-
-# Whether or not to build static libraries.
-build_old_libs=$enable_static
-
-# Whether or not to optimize for fast installation.
-fast_install=$enable_fast_install
-
-# The host system.
-host_alias=$host_alias
-host=$host
-
-# An echo program that does not interpret backslashes.
-echo=$ltecho
-
-# The archiver.
-AR=$AR
-
-# The default C compiler.
-CC=$CC
-
-# The linker used to build libraries.
-LD=$LD
-
-# Whether we need hard or soft links.
-LN_S=$LN_S
-
-# A BSD-compatible nm program.
-NM=$NM
-
-# Used on cygwin: DLL creation program.
-DLLTOOL="$DLLTOOL"
-
-# Used on cygwin: object dumper.
-OBJDUMP="$OBJDUMP"
-
-# Used on cygwin: assembler.
-AS="$AS"
-
-# The name of the directory that contains temporary libtool files.
-objdir=$objdir
-
-# How to create reloadable object files.
-reload_flag=$reload_flag
-reload_cmds=$reload_cmds
-
-# How to pass a linker flag through the compiler.
-wl=$wl
-
-# Object file suffix (normally "o").
-objext="$objext"
-
-# Old archive suffix (normally "a").
-libext="$libext"
-
-# Executable file suffix (normally "").
-exeext="$exeext"
-
-# Additional compiler flags for building library objects.
-pic_flag=$pic_flag
-
-# Does compiler simultaneously support -c and -o options?
-compiler_c_o=$compiler_c_o
-
-# Can we write directly to a .lo ?
-compiler_o_lo=$compiler_o_lo
-
-# Must we lock files when doing compilation ?
-need_locks=$need_locks
-
-# 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
-
-# Whether dlopen is supported.
-dlopen=$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
-
-# Compiler flag to prevent dynamic linking.
-link_static_flag=$link_static_flag
-
-# Compiler flag to turn off builtin functions.
-no_builtin_flag=$no_builtin_flag
-
-# Compiler flag to allow reflexive dlopens.
-export_dynamic_flag_spec=$export_dynamic_flag_spec
-
-# Compiler flag to generate shared objects directly from archives.
-whole_archive_flag_spec=$whole_archive_flag_spec
-
-# Compiler flag to generate thread-safe objects.
-thread_safe_flag_spec=$thread_safe_flag_spec
-
-# Library versioning type.
-version_type=$version_type
-
-# Format of library name prefix.
-libname_spec=$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=$library_names_spec
-
-# The coded name of the library, if different from the real name.
-soname_spec=$soname_spec
-
-# Commands used to build and install an old-style archive.
-RANLIB=$RANLIB
-old_archive_cmds=$old_archive_cmds
-old_postinstall_cmds=$old_postinstall_cmds
-old_postuninstall_cmds=$old_postuninstall_cmds
-
-# Create an old-style archive from a shared archive.
-old_archive_from_new_cmds=$old_archive_from_new_cmds
-
-# Commands used to build and install a shared archive.
-archive_cmds=$archive_cmds
-archive_expsym_cmds=$archive_expsym_cmds
-postinstall_cmds=$postinstall_cmds
-postuninstall_cmds=$postuninstall_cmds
-
-# Method to check whether dependent libraries are shared objects.
-deplibs_check_method=$deplibs_check_method
-
-# Command to use when deplibs_check_method == file_magic.
-file_magic_cmd=$file_magic_cmd
-
-# Flag that allows shared libraries with undefined symbols to be built.
-allow_undefined_flag=$allow_undefined_flag
-
-# Flag that forces no undefined symbols.
-no_undefined_flag=$no_undefined_flag
-
-# Commands used to finish a libtool library installation in a directory.
-finish_cmds=$finish_cmds
-
-# Same as above, but a single script fragment to be evaled but not shown.
-finish_eval=$finish_eval
-
-# Take the output of nm and produce a listing of raw symbols and C names.
-global_symbol_pipe=$global_symbol_pipe
-
-# Transform the output of nm in a proper C declaration
-global_symbol_to_cdecl=$global_symbol_to_cdecl
-
-# This is the shared library runtime path variable.
-runpath_var=$runpath_var
-
-# This is the shared library path variable.
-shlibpath_var=$shlibpath_var
-
-# Is shlibpath searched before the hard-coded library search path?
-shlibpath_overrides_runpath=$shlibpath_overrides_runpath
-
-# How to hardcode a shared library path into an executable.
-hardcode_action=$hardcode_action
-
-# Flag to hardcode \$libdir into a binary during linking.
-# This must work even if \$libdir does not exist.
-hardcode_libdir_flag_spec=$hardcode_libdir_flag_spec
-
-# Whether we need a single -rpath flag with a separated argument.
-hardcode_libdir_separator=$hardcode_libdir_separator
-
-# Set to yes if using DIR/libNAME.so during linking hardcodes DIR into the
-# resulting binary.
-hardcode_direct=$hardcode_direct
-
-# 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
-
-# Compile-time system search path for libraries
-sys_lib_search_path_spec=$sys_lib_search_path_spec
-
-# Run-time system search path for libraries
-sys_lib_dlsearch_path_spec=$sys_lib_dlsearch_path_spec
-
-# Fix the shell variable \$srcfile for the compiler.
-fix_srcfile_path="$fix_srcfile_path"
-
-# Set to yes if exported symbols are required.
-always_export_symbols=$always_export_symbols
-
-# The commands to list exported symbols.
-export_symbols_cmds=$export_symbols_cmds
-
-# Symbols that should not be listed in the preloaded symbols.
-exclude_expsyms=$exclude_expsyms
-
-# Symbols that must always be exported.
-include_expsyms=$include_expsyms
-
-EOF
-
-case "$ltmain" in
-*.sh)
- echo '### END LIBTOOL CONFIG' >> "$ofile"
- echo >> "$ofile"
- case "$host_os" in
- aix3*)
- cat <<\EOF >> "$ofile"
-
-# 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 "X${COLLECT_NAMES+set}" != Xset; then
- COLLECT_NAMES=
- export COLLECT_NAMES
-fi
-EOF
- ;;
- esac
-
- # Append the ltmain.sh script.
- sed '$q' "$ltmain" >> "$ofile" || (rm -f "$ofile"; exit 1)
- # 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?
-
- chmod +x "$ofile"
- ;;
-
-*)
- # Compile the libtool program.
- echo "FIXME: would compile $ltmain"
- ;;
-esac
-
-test -n "$cache_file" || exit 0
-
-# AC_CACHE_SAVE
-trap '' 1 2 15
-cat > confcache <<\EOF
-# 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. It is not useful on other systems.
-# If it contains results you don't want to keep, you may remove or edit it.
-#
-# By default, configure uses ./config.cache as the cache file,
-# creating it if it does not exist already. You can give configure
-# the --cache-file=FILE option to use a different cache file; that is
-# what configure does when it calls configure scripts in
-# subdirectories, so they share the cache.
-# Giving --cache-file=/dev/null disables caching, for debugging configure.
-# config.status only pays attention to the cache file if you give it the
-# --recheck option to rerun configure.
-#
-EOF
-# The following way of writing the cache mishandles newlines in values,
-# but we know of no workaround that is simple, portable, and efficient.
-# So, don't put newlines in cache variables' values.
-# 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.
-(set) 2>&1 |
- case `(ac_space=' '; set | grep ac_space) 2>&1` in
- *ac_space=\ *)
- # `set' does not quote correctly, so add quotes (double-quote substitution
- # turns \\\\ into \\, and sed turns \\ into \).
- sed -n \
- -e "s/'/'\\\\''/g" \
- -e "s/^\\([a-zA-Z0-9_]*_cv_[a-zA-Z0-9_]*\\)=\\(.*\\)/\\1=\${\\1='\\2'}/p"
- ;;
- *)
- # `set' quotes correctly as required by POSIX, so do not add quotes.
- sed -n -e 's/^\([a-zA-Z0-9_]*_cv_[a-zA-Z0-9_]*\)=\(.*\)/\1=${\1=\2}/p'
- ;;
- esac >> confcache
-if cmp -s $cache_file confcache; then
- :
-else
- if test -w $cache_file; then
- echo "updating cache $cache_file"
- cat confcache > $cache_file
- else
- echo "not updating unwritable cache $cache_file"
- fi
-fi
-rm -f confcache
-
-exit 0
-
-# Local Variables:
-# mode:shell-script
-# sh-indentation:2
-# End:
diff --git a/nanohttp.c b/nanohttp.c
index 9f3c75a..23923b6 100644
--- a/nanohttp.c
+++ b/nanohttp.c
@@ -158,7 +158,7 @@ static char *proxy = NULL; /* the proxy name if any */
static int proxyPort; /* the proxy port if any */
static unsigned int timeout = 60;/* the select() timeout in seconds */
-int xmlNanoHTTPFetchContent( void * ctx, char ** ptr, int * len );
+static int xmlNanoHTTPFetchContent( void * ctx, char ** ptr, int * len );
int xmlNanoHTTPContentLength( void * ctx );
/**
@@ -1710,7 +1710,7 @@ xmlNanoHTTPMimeType( void * ctx ) {
* -1 if received content length was less than specified or an error
* occurred.
*/
-int
+static int
xmlNanoHTTPFetchContent( void * ctx, char ** ptr, int * len ) {
xmlNanoHTTPCtxtPtr ctxt = (xmlNanoHTTPCtxtPtr)ctx;
diff --git a/parser.c b/parser.c
index d038e46..77a12f5 100644
--- a/parser.c
+++ b/parser.c
@@ -1039,6 +1039,8 @@ nodePop(xmlParserCtxtPtr ctxt)
ctxt->nodeTab[ctxt->nodeNr] = 0;
return (ret);
}
+
+#ifdef LIBXML_PUSH_ENABLED
/**
* nameNsPush:
* @ctxt: an XML parser context
@@ -1109,6 +1111,7 @@ nameNsPop(xmlParserCtxtPtr ctxt)
ctxt->nameTab[ctxt->nameNr] = NULL;
return (ret);
}
+#endif /* LIBXML_PUSH_ENABLED */
/**
* namePush:
@@ -1456,6 +1459,7 @@ int
xmlParseCharRef(xmlParserCtxtPtr ctxt) {
unsigned int val = 0;
int count = 0;
+ unsigned int outofrange = 0;
/*
* Using RAW/CUR/NEXT is okay since we are working on ASCII range here
@@ -1480,6 +1484,9 @@ xmlParseCharRef(xmlParserCtxtPtr ctxt) {
val = 0;
break;
}
+ if (val > 0x10FFFF)
+ outofrange = val;
+
NEXT;
count++;
}
@@ -1504,6 +1511,9 @@ xmlParseCharRef(xmlParserCtxtPtr ctxt) {
val = 0;
break;
}
+ if (val > 0x10FFFF)
+ outofrange = val;
+
NEXT;
count++;
}
@@ -1522,7 +1532,7 @@ xmlParseCharRef(xmlParserCtxtPtr ctxt) {
* Characters referred to using character references must match the
* production for Char.
*/
- if (IS_CHAR(val)) {
+ if ((IS_CHAR(val) && (outofrange == 0))) {
return(val);
} else {
xmlFatalErrMsgInt(ctxt, XML_ERR_INVALID_CHAR,
@@ -1554,7 +1564,8 @@ static int
xmlParseStringCharRef(xmlParserCtxtPtr ctxt, const xmlChar **str) {
const xmlChar *ptr;
xmlChar cur;
- int val = 0;
+ unsigned int val = 0;
+ unsigned int outofrange = 0;
if ((str == NULL) || (*str == NULL)) return(0);
ptr = *str;
@@ -1574,6 +1585,9 @@ xmlParseStringCharRef(xmlParserCtxtPtr ctxt, const xmlChar **str) {
val = 0;
break;
}
+ if (val > 0x10FFFF)
+ outofrange = val;
+
ptr++;
cur = *ptr;
}
@@ -1590,6 +1604,9 @@ xmlParseStringCharRef(xmlParserCtxtPtr ctxt, const xmlChar **str) {
val = 0;
break;
}
+ if (val > 0x10FFFF)
+ outofrange = val;
+
ptr++;
cur = *ptr;
}
@@ -1606,7 +1623,7 @@ xmlParseStringCharRef(xmlParserCtxtPtr ctxt, const xmlChar **str) {
* Characters referred to using character references must match the
* production for Char.
*/
- if (IS_CHAR(val)) {
+ if ((IS_CHAR(val) && (outofrange == 0))) {
return(val);
} else {
xmlFatalErrMsgInt(ctxt, XML_ERR_INVALID_CHAR,
@@ -5500,8 +5517,9 @@ xmlParseReference(xmlParserCtxtPtr ctxt) {
* Prune it directly in the generated document
* except for single text nodes.
*/
- if ((list->type == XML_TEXT_NODE) &&
- (list->next == NULL)) {
+ if (((list->type == XML_TEXT_NODE) &&
+ (list->next == NULL)) ||
+ (ctxt->parseMode == XML_PARSE_READER)) {
list->parent = (xmlNodePtr) ent;
list = NULL;
ent->owner = 1;
@@ -5554,10 +5572,21 @@ xmlParseReference(xmlParserCtxtPtr ctxt) {
/*
* Seems we are generating the DOM content, do
* a simple tree copy for all references except the first
- * In the first occurrence list contains the replacement
+ * In the first occurrence list contains the replacement.
+ * progressive == 2 means we are operating on the Reader
+ * and since nodes are discarded we must copy all the time.
*/
- if ((list == NULL) && (ent->owner == 0)) {
+ if (((list == NULL) && (ent->owner == 0)) ||
+ (ctxt->parseMode == XML_PARSE_READER)) {
xmlNodePtr nw = NULL, cur, firstChild = NULL;
+
+ /*
+ * when operating on a reader, the entities definitions
+ * are always owning the entities subtree.
+ if (ctxt->parseMode == XML_PARSE_READER)
+ ent->owner = 1;
+ */
+
cur = ent->children;
while (cur != NULL) {
nw = xmlCopyNode(cur, 1);
@@ -5566,10 +5595,20 @@ xmlParseReference(xmlParserCtxtPtr ctxt) {
if (firstChild == NULL){
firstChild = nw;
}
- xmlAddChild(ctxt->node, nw);
+ nw = xmlAddChild(ctxt->node, nw);
}
- if (cur == ent->last)
+ if (cur == ent->last) {
+ /*
+ * needed to detect some strange empty
+ * node cases in the reader tests
+ */
+ if ((ctxt->parseMode == XML_PARSE_READER) &&
+ (nw->type == XML_ELEMENT_NODE) &&
+ (nw->children == NULL))
+ nw->extra = 1;
+
break;
+ }
cur = cur->next;
}
#ifdef LIBXML_LEGACY_ENABLED
@@ -8776,32 +8815,40 @@ xmlParseGetLasts(xmlParserCtxtPtr ctxt, const xmlChar **lastlt,
"Internal error: xmlParseGetLasts\n");
return;
}
- if ((ctxt->progressive == 1) && (ctxt->inputNr == 1)) {
+ if ((ctxt->progressive != 0) && (ctxt->inputNr == 1)) {
tmp = ctxt->input->end;
tmp--;
- while ((tmp >= ctxt->input->base) && (*tmp != '<') &&
- (*tmp != '>')) tmp--;
+ while ((tmp >= ctxt->input->base) && (*tmp != '<')) tmp--;
if (tmp < ctxt->input->base) {
*lastlt = NULL;
*lastgt = NULL;
- } else if (*tmp == '<') {
+ } else {
*lastlt = tmp;
- tmp--;
- while ((tmp >= ctxt->input->base) && (*tmp != '>')) tmp--;
- if (tmp < ctxt->input->base)
- *lastgt = NULL;
- else
+ tmp++;
+ while ((tmp < ctxt->input->end) && (*tmp != '>')) {
+ if (*tmp == '\'') {
+ tmp++;
+ while ((tmp < ctxt->input->end) && (*tmp != '\'')) tmp++;
+ if (tmp < ctxt->input->end) tmp++;
+ } else if (*tmp == '"') {
+ tmp++;
+ while ((tmp < ctxt->input->end) && (*tmp != '"')) tmp++;
+ if (tmp < ctxt->input->end) tmp++;
+ } else
+ tmp++;
+ }
+ if (tmp < ctxt->input->end)
*lastgt = tmp;
- } else {
- *lastgt = tmp;
- tmp--;
- while ((tmp >= ctxt->input->base) && (*tmp != '<')) tmp--;
- if (tmp < ctxt->input->base)
- *lastlt = NULL;
- else
- *lastlt = tmp;
+ else {
+ tmp = *lastlt;
+ tmp--;
+ while ((tmp >= ctxt->input->base) && (*tmp != '>')) tmp--;
+ if (tmp >= ctxt->input->base)
+ *lastgt = tmp;
+ else
+ *lastgt = NULL;
+ }
}
-
} else {
*lastlt = NULL;
*lastgt = NULL;
@@ -9057,7 +9104,7 @@ xmlParseTryOrFinish(xmlParserCtxtPtr ctxt, int terminate) {
if (!terminate) {
if (ctxt->progressive) {
/* > can be found unescaped in attribute values */
- if ((lastlt == NULL) || (ctxt->input->cur >= lastlt))
+ if ((lastgt == NULL) || (ctxt->input->cur >= lastgt))
goto done;
} else if (xmlParseLookupSequence(ctxt, '>', 0, 0) < 0) {
goto done;
@@ -9235,7 +9282,8 @@ xmlParseTryOrFinish(xmlParserCtxtPtr ctxt, int terminate) {
goto done;
if (!terminate) {
if (ctxt->progressive) {
- if ((lastgt == NULL) || (ctxt->input->cur > lastgt))
+ /* > can be found unescaped in attribute values */
+ if ((lastgt == NULL) || (ctxt->input->cur >= lastgt))
goto done;
} else if (xmlParseLookupSequence(ctxt, '>', 0, 0) < 0) {
goto done;
@@ -9423,7 +9471,8 @@ xmlParseTryOrFinish(xmlParserCtxtPtr ctxt, int terminate) {
goto done;
} else {
ctxt->instate = XML_PARSER_START_TAG;
- ctxt->progressive = 1;
+ if (ctxt->progressive == 0)
+ ctxt->progressive = 1;
xmlParseGetLasts(ctxt, &lastlt, &lastgt);
#ifdef DEBUG_PUSH
xmlGenericError(xmlGenericErrorContext,
diff --git a/python/generator.py b/python/generator.py
index 4c6c8ab..3ae5729 100755
--- a/python/generator.py
+++ b/python/generator.py
@@ -302,6 +302,8 @@ def skip_function(name):
return 1
if name == "xmlFreeParserCtxt":
return 1
+ if name == "xmlCleanupParser":
+ return 1
if name == "xmlFreeTextReader":
return 1
# if name[0:11] == "xmlXPathNew":
@@ -1037,17 +1039,25 @@ def buildWrappers():
classes.write(" self.%s = None\n" % ref[1])
classes.write(" if _obj != None:self._o = _obj;return\n")
classes.write(" self._o = None\n\n");
+ destruct=None
if classes_destructors.has_key(classname):
classes.write(" def __del__(self):\n")
classes.write(" if self._o != None:\n")
classes.write(" libxml2mod.%s(self._o)\n" %
classes_destructors[classname]);
classes.write(" self._o = None\n\n");
+ destruct=classes_destructors[classname]
flist = function_classes[classname]
flist.sort(functionCompare)
oldfile = ""
for info in flist:
(index, func, name, ret, args, file) = info
+ #
+ # Do not provide as method the destructors for the class
+ # to avoid double free
+ #
+ if name == destruct:
+ continue;
if file != oldfile:
if file == "python_accessor":
classes.write(" # accessors for %s\n" % (classname))
diff --git a/python/libxml.c b/python/libxml.c
index 4ab69fb..3db0f5f 100644
--- a/python/libxml.c
+++ b/python/libxml.c
@@ -52,6 +52,22 @@ void initlibxml2mod(void);
xmlGenericError(xmlGenericErrorContext, \
"Unimplemented block at %s:%d\n", \
__FILE__, __LINE__);
+/*
+ * the following vars are used for XPath extensions, but
+ * are also referenced within the parser cleanup routine.
+ */
+static int libxml_xpathCallbacksInitialized = 0;
+
+typedef struct libxml_xpathCallback {
+ xmlXPathContextPtr ctx;
+ xmlChar *name;
+ xmlChar *ns_uri;
+ PyObject *function;
+} libxml_xpathCallback, *libxml_xpathCallbackPtr;
+typedef libxml_xpathCallback libxml_xpathCallbackArray[];
+static int libxml_xpathCallbacksAllocd = 10;
+static libxml_xpathCallbackArray *libxml_xpathCallbacks = NULL;
+static int libxml_xpathCallbacksNb = 0;
/************************************************************************
* *
@@ -75,6 +91,21 @@ static xmlMallocFunc mallocFunc = NULL;
static xmlReallocFunc reallocFunc = NULL;
static xmlStrdupFunc strdupFunc = NULL;
+static void
+libxml_xmlErrorInitialize(void); /* forward declare */
+
+PyObject *
+libxml_xmlMemoryUsed(ATTRIBUTE_UNUSED PyObject * self, PyObject * args)
+{
+ long ret;
+ PyObject *py_retval;
+
+ ret = xmlMemUsed();
+
+ py_retval = libxml_longWrap(ret);
+ return (py_retval);
+}
+
PyObject *
libxml_xmlDebugMemory(ATTRIBUTE_UNUSED PyObject * self, PyObject * args)
{
@@ -104,13 +135,21 @@ libxml_xmlDebugMemory(ATTRIBUTE_UNUSED PyObject * self, PyObject * args)
(strdupFunc == xmlMemoryStrdup)) {
libxmlMemoryAllocatedBase = xmlMemUsed();
} else {
+ /*
+ * cleanup first, because some memory has been
+ * allocated with the non-debug malloc in xmlInitParser
+ * when the python module was imported
+ */
+ xmlCleanupParser();
ret = (long) xmlMemSetup(xmlMemFree, xmlMemMalloc,
xmlMemRealloc, xmlMemoryStrdup);
if (ret < 0)
goto error;
libxmlMemoryAllocatedBase = xmlMemUsed();
+ /* reinitialize */
+ xmlInitParser();
+ libxml_xmlErrorInitialize();
}
- xmlInitParser();
ret = 0;
} else if (libxmlMemoryDebugActivated == 0) {
libxmlMemoryAllocatedBase = xmlMemUsed();
@@ -133,6 +172,46 @@ libxml_xmlDebugMemory(ATTRIBUTE_UNUSED PyObject * self, PyObject * args)
}
PyObject *
+libxml_xmlPythonCleanupParser(PyObject *self ATTRIBUTE_UNUSED,
+ PyObject *args ATTRIBUTE_UNUSED) {
+
+ int ix;
+ long freed = -1;
+
+ if (libxmlMemoryDebug) {
+ freed = xmlMemUsed();
+ }
+
+ xmlCleanupParser();
+ /*
+ * Need to confirm whether we really want to do this (required for
+ * memcheck) in all cases...
+ */
+
+ if (libxml_xpathCallbacks != NULL) { /* if ext funcs declared */
+ for (ix=0; ix<libxml_xpathCallbacksNb; ix++) {
+ if ((*libxml_xpathCallbacks)[ix].name != NULL)
+ xmlFree((*libxml_xpathCallbacks)[ix].name);
+ if ((*libxml_xpathCallbacks)[ix].ns_uri != NULL)
+ xmlFree((*libxml_xpathCallbacks)[ix].ns_uri);
+ }
+ libxml_xpathCallbacksNb = 0;
+ xmlFree(libxml_xpathCallbacks);
+ libxml_xpathCallbacks = NULL;
+ }
+
+ if (libxmlMemoryDebug) {
+ freed -= xmlMemUsed();
+ libxmlMemoryAllocatedBase -= freed;
+ if (libxmlMemoryAllocatedBase < 0)
+ libxmlMemoryAllocatedBase = 0;
+ }
+
+ Py_INCREF(Py_None);
+ return(Py_None);
+}
+
+PyObject *
libxml_xmlDumpMemory(ATTRIBUTE_UNUSED PyObject * self,
ATTRIBUTE_UNUSED PyObject * args)
{
@@ -1386,7 +1465,7 @@ libxml_xmlRegisterErrorHandler(ATTRIBUTE_UNUSED PyObject * self,
return (NULL);
#ifdef DEBUG_ERROR
- printf("libxml_registerXPathFunction(%p, %p) called\n", pyobj_ctx,
+ printf("libxml_xmlRegisterErrorHandler(%p, %p) called\n", pyobj_ctx,
pyobj_f);
#endif
@@ -1776,18 +1855,6 @@ libxml_xmlFreeTextReader(ATTRIBUTE_UNUSED PyObject *self, PyObject *args) {
* *
************************************************************************/
-static int libxml_xpathCallbacksInitialized = 0;
-
-typedef struct libxml_xpathCallback {
- xmlXPathContextPtr ctx;
- xmlChar *name;
- xmlChar *ns_uri;
- PyObject *function;
-} libxml_xpathCallback, *libxml_xpathCallbackPtr;
-static libxml_xpathCallback libxml_xpathCallbacks[10];
-static int libxml_xpathCallbacksNb = 0;
-static int libxml_xpathCallbacksMax = 10;
-
static void
libxml_xmlXPathFuncCallback(xmlXPathParserContextPtr ctxt, int nargs)
{
@@ -1816,9 +1883,9 @@ libxml_xmlXPathFuncCallback(xmlXPathParserContextPtr ctxt, int nargs)
*/
for (i = 0; i < libxml_xpathCallbacksNb; i++) {
if ( /* TODO (ctxt == libxml_xpathCallbacks[i].ctx) && */
- (xmlStrEqual(name, libxml_xpathCallbacks[i].name)) &&
- (xmlStrEqual(ns_uri, libxml_xpathCallbacks[i].ns_uri))) {
- current_function = libxml_xpathCallbacks[i].function;
+ (xmlStrEqual(name, (*libxml_xpathCallbacks)[i].name)) &&
+ (xmlStrEqual(ns_uri, (*libxml_xpathCallbacks)[i].ns_uri))) {
+ current_function = (*libxml_xpathCallbacks)[i].function;
}
}
if (current_function == NULL) {
@@ -1859,9 +1926,9 @@ libxml_xmlXPathFuncLookupFunc(void *ctxt, const xmlChar * name,
* and functionURI fields.
*/
for (i = 0; i < libxml_xpathCallbacksNb; i++) {
- if ((ctxt == libxml_xpathCallbacks[i].ctx) &&
- (xmlStrEqual(name, libxml_xpathCallbacks[i].name)) &&
- (xmlStrEqual(ns_uri, libxml_xpathCallbacks[i].ns_uri))) {
+ if ((ctxt == (*libxml_xpathCallbacks)[i].ctx) &&
+ (xmlStrEqual(name, (*libxml_xpathCallbacks)[i].name)) &&
+ (xmlStrEqual(ns_uri, (*libxml_xpathCallbacks)[i].ns_uri))) {
return (libxml_xmlXPathFuncCallback);
}
}
@@ -1879,12 +1946,14 @@ libxml_xpathCallbacksInitialize(void)
#ifdef DEBUG_XPATH
printf("libxml_xpathCallbacksInitialized called\n");
#endif
+ libxml_xpathCallbacks = (libxml_xpathCallbackArray*)xmlMalloc(
+ libxml_xpathCallbacksAllocd*sizeof(libxml_xpathCallback));
- for (i = 0; i < libxml_xpathCallbacksMax; i++) {
- libxml_xpathCallbacks[i].ctx = NULL;
- libxml_xpathCallbacks[i].name = NULL;
- libxml_xpathCallbacks[i].ns_uri = NULL;
- libxml_xpathCallbacks[i].function = NULL;
+ for (i = 0; i < libxml_xpathCallbacksAllocd; i++) {
+ (*libxml_xpathCallbacks)[i].ctx = NULL;
+ (*libxml_xpathCallbacks)[i].name = NULL;
+ (*libxml_xpathCallbacks)[i].ns_uri = NULL;
+ (*libxml_xpathCallbacks)[i].function = NULL;
}
libxml_xpathCallbacksInitialized = 1;
}
@@ -1921,27 +1990,30 @@ libxml_xmlRegisterXPathFunction(ATTRIBUTE_UNUSED PyObject * self,
ctx, name, ns_uri);
#endif
for (i = 0; i < libxml_xpathCallbacksNb; i++) {
- if ((ctx == libxml_xpathCallbacks[i].ctx) &&
- (xmlStrEqual(name, libxml_xpathCallbacks[i].name)) &&
- (xmlStrEqual(ns_uri, libxml_xpathCallbacks[i].ns_uri))) {
+ if ((ctx == (*libxml_xpathCallbacks)[i].ctx) &&
+ (xmlStrEqual(name, (*libxml_xpathCallbacks)[i].name)) &&
+ (xmlStrEqual(ns_uri, (*libxml_xpathCallbacks)[i].ns_uri))) {
Py_XINCREF(pyobj_f);
- Py_XDECREF(libxml_xpathCallbacks[i].function);
- libxml_xpathCallbacks[i].function = pyobj_f;
+ Py_XDECREF((*libxml_xpathCallbacks)[i].function);
+ (*libxml_xpathCallbacks)[i].function = pyobj_f;
c_retval = 1;
goto done;
}
}
- if (libxml_xpathCallbacksNb >= libxml_xpathCallbacksMax) {
- printf("libxml_registerXPathFunction() table full\n");
- } else {
- i = libxml_xpathCallbacksNb++;
- Py_XINCREF(pyobj_f);
- libxml_xpathCallbacks[i].ctx = ctx;
- libxml_xpathCallbacks[i].name = xmlStrdup(name);
- libxml_xpathCallbacks[i].ns_uri = xmlStrdup(ns_uri);
- libxml_xpathCallbacks[i].function = pyobj_f;
+ if (libxml_xpathCallbacksNb >= libxml_xpathCallbacksAllocd) {
+ libxml_xpathCallbacksAllocd+=10;
+ libxml_xpathCallbacks = (libxml_xpathCallbackArray*)xmlRealloc(
+ libxml_xpathCallbacks,
+ libxml_xpathCallbacksAllocd*sizeof(libxml_xpathCallback));
+ }
+ i = libxml_xpathCallbacksNb++;
+ Py_XINCREF(pyobj_f);
+ (*libxml_xpathCallbacks)[i].ctx = ctx;
+ (*libxml_xpathCallbacks)[i].name = xmlStrdup(name);
+ (*libxml_xpathCallbacks)[i].ns_uri = xmlStrdup(ns_uri);
+ (*libxml_xpathCallbacks)[i].function = pyobj_f;
c_retval = 1;
- }
+
done:
py_retval = libxml_intWrap((int) c_retval);
return (py_retval);
@@ -3228,20 +3300,19 @@ void
initlibxml2mod(void)
{
static int initialized = 0;
- PyObject *m;
if (initialized != 0)
return;
- /* XXX xmlInitParser does much more than this */
- xmlInitGlobals();
-#ifdef LIBXML_OUTPUT_ENABLED
- xmlRegisterDefaultOutputCallbacks();
-#endif /* LIBXML_OUTPUT_ENABLED */
- xmlRegisterDefaultInputCallbacks();
- m = Py_InitModule((char *) "libxml2mod", libxmlMethods);
- initialized = 1;
+
+ /* intialize the python extension module */
+ Py_InitModule((char *) "libxml2mod", libxmlMethods);
+
+ /* initialize libxml2 */
+ xmlInitParser();
libxml_xmlErrorInitialize();
+ initialized = 1;
+
#ifdef MERGED_MODULES
initlibxsltmod();
#endif
diff --git a/python/libxml.py b/python/libxml.py
index 0c3ba6c..5980974 100644
--- a/python/libxml.py
+++ b/python/libxml.py
@@ -618,6 +618,11 @@ class xmlTextReaderCore:
# assert f is _xmlTextReaderErrorFunc
return arg
+#
+# The cleanup now goes though a wrappe in libxml.c
+#
+def cleanupParser():
+ libxml2mod.xmlPythonCleanupParser()
# WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING
#
diff --git a/python/libxml2-py.c b/python/libxml2-py.c
index f70d4f8..a0a6958 100644
--- a/python/libxml2-py.c
+++ b/python/libxml2-py.c
@@ -123,6 +123,22 @@ libxml_xmlReaderForFile(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) {
return(py_retval);
}
+#ifdef LIBXML_XPATH_ENABLED
+PyObject *
+libxml_xmlXPathNewFloat(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) {
+ PyObject *py_retval;
+ xmlXPathObjectPtr c_retval;
+ double val;
+
+ if (!PyArg_ParseTuple(args, (char *)"d:xmlXPathNewFloat", &val))
+ return(NULL);
+
+ c_retval = xmlXPathNewFloat(val);
+ py_retval = libxml_xmlXPathObjectPtrWrap((xmlXPathObjectPtr) c_retval);
+ return(py_retval);
+}
+
+#endif /* LIBXML_XPATH_ENABLED */
PyObject *
libxml_xmlTextReaderExpand(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) {
PyObject *py_retval;
@@ -1771,23 +1787,6 @@ libxml_xmlNormalizeURIPath(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) {
}
PyObject *
-libxml_xmlNewTextReader(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) {
- PyObject *py_retval;
- xmlTextReaderPtr c_retval;
- xmlParserInputBufferPtr input;
- PyObject *pyobj_input;
- char * URI;
-
- if (!PyArg_ParseTuple(args, (char *)"Oz:xmlNewTextReader", &pyobj_input, &URI))
- return(NULL);
- input = (xmlParserInputBufferPtr) PyinputBuffer_Get(pyobj_input);
-
- c_retval = xmlNewTextReader(input, URI);
- py_retval = libxml_xmlTextReaderPtrWrap((xmlTextReaderPtr) c_retval);
- return(py_retval);
-}
-
-PyObject *
libxml_xmlUCSIsCombiningDiacriticalMarksforSymbols(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) {
PyObject *py_retval;
int c_retval;
@@ -1855,24 +1854,6 @@ libxml_xmlParserInputBufferRead(PyObject *self ATTRIBUTE_UNUSED, PyObject *args)
return(py_retval);
}
-#ifdef LIBXML_XPATH_ENABLED
-PyObject *
-libxml_xmlXPathOrderDocElems(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) {
- PyObject *py_retval;
- long c_retval;
- xmlDocPtr doc;
- PyObject *pyobj_doc;
-
- if (!PyArg_ParseTuple(args, (char *)"O:xmlXPathOrderDocElems", &pyobj_doc))
- return(NULL);
- doc = (xmlDocPtr) PyxmlNode_Get(pyobj_doc);
-
- c_retval = xmlXPathOrderDocElems(doc);
- py_retval = libxml_intWrap((int) c_retval);
- return(py_retval);
-}
-
-#endif /* LIBXML_XPATH_ENABLED */
PyObject *
libxml_xmlUCSIsLinearBIdeograms(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) {
PyObject *py_retval;
@@ -1967,22 +1948,6 @@ libxml_xmlCtxtReadFile(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) {
#ifdef LIBXML_XPATH_ENABLED
PyObject *
-libxml_xmlXPathNewFloat(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) {
- PyObject *py_retval;
- xmlXPathObjectPtr c_retval;
- double val;
-
- if (!PyArg_ParseTuple(args, (char *)"d:xmlXPathNewFloat", &val))
- return(NULL);
-
- c_retval = xmlXPathNewFloat(val);
- py_retval = libxml_xmlXPathObjectPtrWrap((xmlXPathObjectPtr) c_retval);
- return(py_retval);
-}
-
-#endif /* LIBXML_XPATH_ENABLED */
-#ifdef LIBXML_XPATH_ENABLED
-PyObject *
libxml_xmlXPathRegisterNs(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) {
PyObject *py_retval;
int c_retval;
@@ -2641,27 +2606,6 @@ libxml_xmlRelaxNGValidateDoc(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) {
#endif /* LIBXML_SCHEMAS_ENABLED */
PyObject *
-libxml_xmlNewChild(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) {
- PyObject *py_retval;
- xmlNodePtr c_retval;
- xmlNodePtr parent;
- PyObject *pyobj_parent;
- xmlNsPtr ns;
- PyObject *pyobj_ns;
- xmlChar * name;
- xmlChar * content;
-
- if (!PyArg_ParseTuple(args, (char *)"OOzz:xmlNewChild", &pyobj_parent, &pyobj_ns, &name, &content))
- return(NULL);
- parent = (xmlNodePtr) PyxmlNode_Get(pyobj_parent);
- ns = (xmlNsPtr) PyxmlNode_Get(pyobj_ns);
-
- c_retval = xmlNewChild(parent, ns, name, content);
- py_retval = libxml_xmlNodePtrWrap((xmlNodePtr) c_retval);
- return(py_retval);
-}
-
-PyObject *
libxml_xmlSearchNs(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) {
PyObject *py_retval;
xmlNsPtr c_retval;
@@ -2886,23 +2830,6 @@ libxml_xmlXPathNextNamespace(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) {
#endif /* LIBXML_XPATH_ENABLED */
PyObject *
-libxml_xmlTextReaderRelaxNGValidate(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) {
- PyObject *py_retval;
- int c_retval;
- xmlTextReaderPtr reader;
- PyObject *pyobj_reader;
- char * rng;
-
- if (!PyArg_ParseTuple(args, (char *)"Oz:xmlTextReaderRelaxNGValidate", &pyobj_reader, &rng))
- return(NULL);
- reader = (xmlTextReaderPtr) PyxmlTextReader_Get(pyobj_reader);
-
- c_retval = xmlTextReaderRelaxNGValidate(reader, rng);
- py_retval = libxml_intWrap((int) c_retval);
- return(py_retval);
-}
-
-PyObject *
libxml_xmlNewDocText(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) {
PyObject *py_retval;
xmlNodePtr c_retval;
@@ -3102,25 +3029,27 @@ libxml_xmlThrDefLineNumbersDefaultValue(PyObject *self ATTRIBUTE_UNUSED, PyObjec
return(py_retval);
}
-#ifdef LIBXML_XINCLUDE_ENABLED
PyObject *
-libxml_xmlXIncludeProcessTreeFlags(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) {
+libxml_xmlNewChild(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) {
PyObject *py_retval;
- int c_retval;
- xmlNodePtr tree;
- PyObject *pyobj_tree;
- int flags;
+ xmlNodePtr c_retval;
+ xmlNodePtr parent;
+ PyObject *pyobj_parent;
+ xmlNsPtr ns;
+ PyObject *pyobj_ns;
+ xmlChar * name;
+ xmlChar * content;
- if (!PyArg_ParseTuple(args, (char *)"Oi:xmlXIncludeProcessTreeFlags", &pyobj_tree, &flags))
+ if (!PyArg_ParseTuple(args, (char *)"OOzz:xmlNewChild", &pyobj_parent, &pyobj_ns, &name, &content))
return(NULL);
- tree = (xmlNodePtr) PyxmlNode_Get(pyobj_tree);
+ parent = (xmlNodePtr) PyxmlNode_Get(pyobj_parent);
+ ns = (xmlNsPtr) PyxmlNode_Get(pyobj_ns);
- c_retval = xmlXIncludeProcessTreeFlags(tree, flags);
- py_retval = libxml_intWrap((int) c_retval);
+ c_retval = xmlNewChild(parent, ns, name, content);
+ py_retval = libxml_xmlNodePtrWrap((xmlNodePtr) c_retval);
return(py_retval);
}
-#endif /* LIBXML_XINCLUDE_ENABLED */
PyObject *
libxml_xmlGetID(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) {
PyObject *py_retval;
@@ -4058,6 +3987,20 @@ libxml_xmlConvertSGMLCatalog(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) {
}
PyObject *
+libxml_xmlParserHandleReference(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) {
+ xmlParserCtxtPtr ctxt;
+ PyObject *pyobj_ctxt;
+
+ if (!PyArg_ParseTuple(args, (char *)"O:xmlParserHandleReference", &pyobj_ctxt))
+ return(NULL);
+ ctxt = (xmlParserCtxtPtr) PyparserCtxt_Get(pyobj_ctxt);
+
+ xmlParserHandleReference(ctxt);
+ Py_INCREF(Py_None);
+ return(Py_None);
+}
+
+PyObject *
libxml_xmlEncodeEntitiesReentrant(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) {
PyObject *py_retval;
xmlChar * c_retval;
@@ -5153,6 +5096,20 @@ libxml_xmlNewReference(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) {
}
PyObject *
+libxml_xmlUCSIsCJKSymbolsandPunctuation(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) {
+ PyObject *py_retval;
+ int c_retval;
+ int code;
+
+ if (!PyArg_ParseTuple(args, (char *)"i:xmlUCSIsCJKSymbolsandPunctuation", &code))
+ return(NULL);
+
+ c_retval = xmlUCSIsCJKSymbolsandPunctuation(code);
+ py_retval = libxml_intWrap((int) c_retval);
+ return(py_retval);
+}
+
+PyObject *
libxml_xmlUCSIsOgham(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) {
PyObject *py_retval;
int c_retval;
@@ -6021,22 +5978,6 @@ libxml_xmlXPathPopString(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) {
#endif /* LIBXML_XPATH_ENABLED */
PyObject *
-libxml_xmlURIGetPort(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) {
- PyObject *py_retval;
- int c_retval;
- xmlURIPtr URI;
- PyObject *pyobj_URI;
-
- if (!PyArg_ParseTuple(args, (char *)"O:xmlURIGetPort", &pyobj_URI))
- return(NULL);
- URI = (xmlURIPtr) PyURI_Get(pyobj_URI);
-
- c_retval = URI->port;
- py_retval = libxml_intWrap((int) c_retval);
- return(py_retval);
-}
-
-PyObject *
libxml_xmlUCSIsCatC(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) {
PyObject *py_retval;
int c_retval;
@@ -6307,14 +6248,6 @@ libxml_xmlXPtrNewCollapsedRange(PyObject *self ATTRIBUTE_UNUSED, PyObject *args)
#endif /* LIBXML_XPTR_ENABLED */
PyObject *
-libxml_xmlCleanupParser(PyObject *self ATTRIBUTE_UNUSED, PyObject *args ATTRIBUTE_UNUSED) {
-
- xmlCleanupParser();
- Py_INCREF(Py_None);
- return(Py_None);
-}
-
-PyObject *
libxml_xmlTextConcat(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) {
PyObject *py_retval;
int c_retval;
@@ -6706,17 +6639,20 @@ libxml_xmlStrchr(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) {
}
PyObject *
-libxml_xmlParserHandleReference(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) {
- xmlParserCtxtPtr ctxt;
- PyObject *pyobj_ctxt;
+libxml_xmlNewTextReader(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) {
+ PyObject *py_retval;
+ xmlTextReaderPtr c_retval;
+ xmlParserInputBufferPtr input;
+ PyObject *pyobj_input;
+ char * URI;
- if (!PyArg_ParseTuple(args, (char *)"O:xmlParserHandleReference", &pyobj_ctxt))
+ if (!PyArg_ParseTuple(args, (char *)"Oz:xmlNewTextReader", &pyobj_input, &URI))
return(NULL);
- ctxt = (xmlParserCtxtPtr) PyparserCtxt_Get(pyobj_ctxt);
+ input = (xmlParserInputBufferPtr) PyinputBuffer_Get(pyobj_input);
- xmlParserHandleReference(ctxt);
- Py_INCREF(Py_None);
- return(Py_None);
+ c_retval = xmlNewTextReader(input, URI);
+ py_retval = libxml_xmlTextReaderPtrWrap((xmlTextReaderPtr) c_retval);
+ return(py_retval);
}
PyObject *
@@ -9212,6 +9148,21 @@ libxml_xmlNanoHTTPCleanup(PyObject *self ATTRIBUTE_UNUSED, PyObject *args ATTRIB
}
PyObject *
+libxml_xmlBuildRelativeURI(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) {
+ PyObject *py_retval;
+ xmlChar * c_retval;
+ xmlChar * URI;
+ xmlChar * base;
+
+ if (!PyArg_ParseTuple(args, (char *)"zz:xmlBuildRelativeURI", &URI, &base))
+ return(NULL);
+
+ c_retval = xmlBuildRelativeURI(URI, base);
+ py_retval = libxml_xmlCharPtrWrap((xmlChar *) c_retval);
+ return(py_retval);
+}
+
+PyObject *
libxml_xmlParseQuotedString(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) {
PyObject *py_retval;
xmlChar * c_retval;
@@ -9381,20 +9332,6 @@ libxml_xmlCatalogConvert(PyObject *self ATTRIBUTE_UNUSED, PyObject *args ATTRIBU
}
PyObject *
-libxml_xmlUCSIsCJKSymbolsandPunctuation(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) {
- PyObject *py_retval;
- int c_retval;
- int code;
-
- if (!PyArg_ParseTuple(args, (char *)"i:xmlUCSIsCJKSymbolsandPunctuation", &code))
- return(NULL);
-
- c_retval = xmlUCSIsCJKSymbolsandPunctuation(code);
- py_retval = libxml_intWrap((int) c_retval);
- return(py_retval);
-}
-
-PyObject *
libxml_xmlUCSIsTaiXuanJingSymbols(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) {
PyObject *py_retval;
int c_retval;
@@ -9430,6 +9367,23 @@ libxml_htmlDocDump(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) {
#endif /* LIBXML_HTML_ENABLED */
PyObject *
+libxml_xmlTextReaderRelaxNGValidate(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) {
+ PyObject *py_retval;
+ int c_retval;
+ xmlTextReaderPtr reader;
+ PyObject *pyobj_reader;
+ char * rng;
+
+ if (!PyArg_ParseTuple(args, (char *)"Oz:xmlTextReaderRelaxNGValidate", &pyobj_reader, &rng))
+ return(NULL);
+ reader = (xmlTextReaderPtr) PyxmlTextReader_Get(pyobj_reader);
+
+ c_retval = xmlTextReaderRelaxNGValidate(reader, rng);
+ py_retval = libxml_intWrap((int) c_retval);
+ return(py_retval);
+}
+
+PyObject *
libxml_xmlNanoFTPInit(PyObject *self ATTRIBUTE_UNUSED, PyObject *args ATTRIBUTE_UNUSED) {
xmlNanoFTPInit();
@@ -9763,6 +9717,22 @@ libxml_xmlXPathConcatFunction(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) {
}
#endif /* LIBXML_XPATH_ENABLED */
+#ifdef LIBXML_SCHEMAS_ENABLED
+PyObject *
+libxml_xmlSchemaCollapseString(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) {
+ PyObject *py_retval;
+ xmlChar * c_retval;
+ xmlChar * value;
+
+ if (!PyArg_ParseTuple(args, (char *)"z:xmlSchemaCollapseString", &value))
+ return(NULL);
+
+ c_retval = xmlSchemaCollapseString(value);
+ py_retval = libxml_xmlCharPtrWrap((xmlChar *) c_retval);
+ return(py_retval);
+}
+
+#endif /* LIBXML_SCHEMAS_ENABLED */
PyObject *
libxml_xmlTextReaderConstNamespaceUri(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) {
PyObject *py_retval;
@@ -9838,6 +9808,25 @@ libxml_xmlStrdup(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) {
return(py_retval);
}
+#ifdef LIBXML_XINCLUDE_ENABLED
+PyObject *
+libxml_xmlXIncludeProcessTreeFlags(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) {
+ PyObject *py_retval;
+ int c_retval;
+ xmlNodePtr tree;
+ PyObject *pyobj_tree;
+ int flags;
+
+ if (!PyArg_ParseTuple(args, (char *)"Oi:xmlXIncludeProcessTreeFlags", &pyobj_tree, &flags))
+ return(NULL);
+ tree = (xmlNodePtr) PyxmlNode_Get(pyobj_tree);
+
+ c_retval = xmlXIncludeProcessTreeFlags(tree, flags);
+ py_retval = libxml_intWrap((int) c_retval);
+ return(py_retval);
+}
+
+#endif /* LIBXML_XINCLUDE_ENABLED */
#ifdef LIBXML_XPATH_ENABLED
PyObject *
libxml_xmlXPathNamespaceURIFunction(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) {
@@ -10536,6 +10525,22 @@ libxml_xmlXPathMultValues(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) {
#endif /* LIBXML_XPATH_ENABLED */
PyObject *
+libxml_xmlURIGetPort(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) {
+ PyObject *py_retval;
+ int c_retval;
+ xmlURIPtr URI;
+ PyObject *pyobj_URI;
+
+ if (!PyArg_ParseTuple(args, (char *)"O:xmlURIGetPort", &pyobj_URI))
+ return(NULL);
+ URI = (xmlURIPtr) PyURI_Get(pyobj_URI);
+
+ c_retval = URI->port;
+ py_retval = libxml_intWrap((int) c_retval);
+ return(py_retval);
+}
+
+PyObject *
libxml_xmlParseFile(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) {
PyObject *py_retval;
xmlDocPtr c_retval;
@@ -11274,6 +11279,24 @@ libxml_xmlUCSIsBoxDrawing(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) {
return(py_retval);
}
+#ifdef LIBXML_XPATH_ENABLED
+PyObject *
+libxml_xmlXPathOrderDocElems(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) {
+ PyObject *py_retval;
+ long c_retval;
+ xmlDocPtr doc;
+ PyObject *pyobj_doc;
+
+ if (!PyArg_ParseTuple(args, (char *)"O:xmlXPathOrderDocElems", &pyobj_doc))
+ return(NULL);
+ doc = (xmlDocPtr) PyxmlNode_Get(pyobj_doc);
+
+ c_retval = xmlXPathOrderDocElems(doc);
+ py_retval = libxml_intWrap((int) c_retval);
+ return(py_retval);
+}
+
+#endif /* LIBXML_XPATH_ENABLED */
#ifdef LIBXML_HTML_ENABLED
PyObject *
libxml_htmlNodeDumpFormatOutput(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) {
diff --git a/python/libxml2-python-api.xml b/python/libxml2-python-api.xml
index d5a4cbe..b933290 100644
--- a/python/libxml2-python-api.xml
+++ b/python/libxml2-python-api.xml
@@ -306,5 +306,13 @@
<return type='int' info="The error line" field="line"/>
<arg name='Error' type='xmlErrorPtr' info='the Error'/>
</function>
+ <function name='xmlPythonCleanupParser' file='python'>
+ <info>Cleanup function for the XML library. It tries to reclaim all parsing related global memory allocated for the library processing. It doesn't deallocate any document related memory. Calling this function should not prevent reusing the library but one should call xmlCleanupParser() only when the process has finished using the library or XML document built with it.</info>
+ <return type='void'/>
+ </function>
+ <function name='xmlMemoryUsed' file='python'>
+ <info>Returns the total amount of memory allocated by libxml2</info>
+ <return type='int' info='number of bytes allocated'/>
+ </function>
</symbols>
</api>
diff --git a/python/setup.py b/python/setup.py
index 5bafd54..eb39621 100755
--- a/python/setup.py
+++ b/python/setup.py
@@ -226,7 +226,7 @@ else:
setup (name = "libxml2-python",
# On *nix, the version number is created from setup.py.in
# On windows, it is set by configure.js
- version = "2.6.10",
+ version = "2.6.11",
description = descr,
author = "Daniel Veillard",
author_email = "veillard@redhat.com",
diff --git a/python/tests/Makefile.am b/python/tests/Makefile.am
index bf04878..259a1bf 100644
--- a/python/tests/Makefile.am
+++ b/python/tests/Makefile.am
@@ -33,6 +33,7 @@ PYTESTS= \
readererr.py\
relaxng.py \
thread2.py \
+ sync.py \
tstLastError.py \
indexes.py
@@ -45,8 +46,13 @@ EXTRA_DIST = $(PYTESTS) $(XMLS)
if WITH_PYTHON
tests: $(PYTESTS)
- -@(PYTHONPATH="..:../.libs:$(srcdir)/..:$$PYTHONPATH" ; export PYTHONPATH; \
- for test in $(PYTESTS) ; do echo "-- $$test" ; $(PYTHON) $(srcdir)/$$test ; done)
+ echo "## running Python regression tests"
+ -@(PYTHONPATH="..:../.libs:$(srcdir)/..:$$PYTHONPATH" ; \
+ export PYTHONPATH; \
+ for test in $(PYTESTS) ; \
+ do log=`$(PYTHON) $(srcdir)/$$test` ; \
+ if [ "`echo $$log | grep OK`" = "" ] ; then \
+ echo "-- $$test" ; echo "$$log" ; fi ; done)
else
tests:
endif
diff --git a/python/tests/Makefile.in b/python/tests/Makefile.in
index 893a517..f5e50ec 100644
--- a/python/tests/Makefile.in
+++ b/python/tests/Makefile.in
@@ -275,6 +275,7 @@ PYTESTS = \
readererr.py\
relaxng.py \
thread2.py \
+ sync.py \
tstLastError.py \
indexes.py
@@ -444,8 +445,13 @@ uninstall-am: uninstall-info-am
@WITH_PYTHON_TRUE@tests: $(PYTESTS)
-@WITH_PYTHON_TRUE@ -@(PYTHONPATH="..:../.libs:$(srcdir)/..:$$PYTHONPATH" ; export PYTHONPATH; \
-@WITH_PYTHON_TRUE@ for test in $(PYTESTS) ; do echo "-- $$test" ; $(PYTHON) $(srcdir)/$$test ; done)
+@WITH_PYTHON_TRUE@ echo "## running Python regression tests"
+@WITH_PYTHON_TRUE@ -@(PYTHONPATH="..:../.libs:$(srcdir)/..:$$PYTHONPATH" ; \
+@WITH_PYTHON_TRUE@ export PYTHONPATH; \
+@WITH_PYTHON_TRUE@ for test in $(PYTESTS) ; \
+@WITH_PYTHON_TRUE@ do log=`$(PYTHON) $(srcdir)/$$test` ; \
+@WITH_PYTHON_TRUE@ if [ "`echo $$log | grep OK`" = "" ] ; then \
+@WITH_PYTHON_TRUE@ echo "-- $$test" ; echo "$$log" ; fi ; done)
@WITH_PYTHON_FALSE@tests:
clean:
diff --git a/python/tests/sync.py b/python/tests/sync.py
new file mode 100755
index 0000000..2141875
--- /dev/null
+++ b/python/tests/sync.py
@@ -0,0 +1,135 @@
+#!/usr/bin/python -u
+import sys
+import libxml2
+
+# Memory debug specific
+libxml2.debugMemory(1)
+
+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()
+
+log=""
+chunk="""<foo><bar2/>"""
+ctxt = libxml2.createPushParser(handler, None, 0, "test.xml")
+ctxt.parseChunk(chunk, len(chunk), 0)
+ctxt=None
+
+reference = "startDocument:startElement foo None:startElement bar2 None:endElement bar2:"
+if log != reference:
+ print "Error got: %s" % log
+ print "Exprected: %s" % reference
+ sys.exit(1)
+
+log=""
+chunk="""<foo><bar2></bar2>"""
+ctxt = libxml2.createPushParser(handler, None, 0, "test.xml")
+ctxt.parseChunk(chunk, len(chunk), 0)
+ctxt=None
+
+reference = "startDocument:startElement foo None:startElement bar2 None:endElement bar2:"
+if log != reference:
+ print "Error got: %s" % log
+ print "Exprected: %s" % reference
+ sys.exit(1)
+
+log=""
+chunk="""<foo><bar2>"""
+ctxt = libxml2.createPushParser(handler, None, 0, "test.xml")
+ctxt.parseChunk(chunk, len(chunk), 0)
+ctxt=None
+
+reference = "startDocument:startElement foo None:startElement bar2 None:"
+if log != reference:
+ print "Error got: %s" % log
+ print "Exprected: %s" % reference
+ sys.exit(1)
+
+log=""
+chunk="""<foo><bar2 a="1" b='2' />"""
+ctxt = libxml2.createPushParser(handler, None, 0, "test.xml")
+ctxt.parseChunk(chunk, len(chunk), 0)
+ctxt=None
+
+reference = "startDocument:startElement foo None:startElement bar2 {'a': '1', 'b': '2'}:endElement bar2:"
+if log != reference:
+ print "Error got: %s" % log
+ print "Exprected: %s" % reference
+ sys.exit(1)
+
+log=""
+chunk="""<foo><bar2 a="1" b='2' >"""
+ctxt = libxml2.createPushParser(handler, None, 0, "test.xml")
+ctxt.parseChunk(chunk, len(chunk), 0)
+ctxt=None
+
+reference = "startDocument:startElement foo None:startElement bar2 {'a': '1', 'b': '2'}:"
+if log != reference:
+ print "Error got: %s" % log
+ print "Exprected: %s" % reference
+ sys.exit(1)
+
+log=""
+chunk="""<foo><bar2 a="1" b='2' ></bar2>"""
+ctxt = libxml2.createPushParser(handler, None, 0, "test.xml")
+ctxt.parseChunk(chunk, len(chunk), 0)
+ctxt=None
+
+reference = "startDocument:startElement foo None:startElement bar2 {'a': '1', 'b': '2'}:endElement bar2:"
+if log != reference:
+ print "Error got: %s" % log
+ print "Exprected: %s" % reference
+ sys.exit(1)
+
+log=""
+chunk="""<foo><bar2 a="b='1' />"""
+ctxt = libxml2.createPushParser(handler, None, 0, "test.xml")
+ctxt.parseChunk(chunk, len(chunk), 0)
+ctxt=None
+
+reference = "startDocument:startElement foo None:"
+if log != reference:
+ print "Error got: %s" % log
+ print "Exprected: %s" % reference
+ sys.exit(1)
+
+# Memory debug specific
+libxml2.cleanupParser()
+if libxml2.debugMemory(1) == 0:
+ print "OK"
+else:
+ print "Memory leak %d bytes" % (libxml2.debugMemory(1))
+ libxml2.dumpMemory()
diff --git a/regressions.py b/regressions.py
new file mode 100755
index 0000000..0e813c2
--- /dev/null
+++ b/regressions.py
@@ -0,0 +1,350 @@
+#!/usr/bin/python -u
+import glob, os, string, sys, thread, time
+# import difflib
+import libxml2
+
+###
+#
+# This is a "Work in Progress" attempt at a python script to run the
+# various regression tests. The rationale for this is that it should be
+# possible to run this on most major platforms, including those (such as
+# Windows) which don't support gnu Make.
+#
+# The script is driven by a parameter file which defines the various tests
+# to be run, together with the unique settings for each of these tests. A
+# script for Linux is included (regressions.xml), with comments indicating
+# the significance of the various parameters. To run the tests under Windows,
+# edit regressions.xml and remove the comment around the default parameter
+# "<execpath>" (i.e. make it point to the location of the binary executables).
+#
+# Note that this current version requires the Python bindings for libxml2 to
+# have been previously installed and accessible
+#
+# See Copyright for the status of this software.
+# William Brack (wbrack@mmm.com.hk)
+#
+###
+defaultParams = {} # will be used as a dictionary to hold the parsed params
+
+# This routine is used for comparing the expected stdout / stdin with the results.
+# The expected data has already been read in; the result is a file descriptor.
+# Within the two sets of data, lines may begin with a path string. If so, the
+# code "relativises" it by removing the path component. The first argument is a
+# list already read in by a separate thread; the second is a file descriptor.
+# The two 'base' arguments are to let me "relativise" the results files, allowing
+# the script to be run from any directory.
+def compFiles(res, expected, base1, base2):
+ l1 = len(base1)
+ exp = expected.readlines()
+ expected.close()
+ # the "relativisation" is done here
+ for i in range(len(res)):
+ j = string.find(res[i],base1)
+ if (j == 0) or ((j == 2) and (res[i][0:2] == './')):
+ col = string.find(res[i],':')
+ if col > 0:
+ start = string.rfind(res[i][:col], '/')
+ if start > 0:
+ res[i] = res[i][start+1:]
+
+ for i in range(len(exp)):
+ j = string.find(exp[i],base2)
+ if (j == 0) or ((j == 2) and (exp[i][0:2] == './')):
+ col = string.find(exp[i],':')
+ if col > 0:
+ start = string.rfind(exp[i][:col], '/')
+ if start > 0:
+ exp[i] = exp[i][start+1:]
+
+ ret = 0
+ # ideally we would like to use difflib functions here to do a
+ # nice comparison of the two sets. Unfortunately, during testing
+ # (using python 2.3.3 and 2.3.4) the following code went into
+ # a dead loop under windows. I'll pursue this later.
+# diff = difflib.ndiff(res, exp)
+# diff = list(diff)
+# for line in diff:
+# if line[:2] != ' ':
+# print string.strip(line)
+# ret = -1
+
+ # the following simple compare is fine for when the two data sets
+ # (actual result vs. expected result) are equal, which should be true for
+ # us. Unfortunately, if the test fails it's not nice at all.
+ rl = len(res)
+ el = len(exp)
+ if el != rl:
+ print 'Length of expected is %d, result is %d' % (el, rl)
+ ret = -1
+ for i in range(min(el, rl)):
+ if string.strip(res[i]) != string.strip(exp[i]):
+ print '+:%s-:%s' % (res[i], exp[i])
+ ret = -1
+ if el > rl:
+ for i in range(rl, el):
+ print '-:%s' % exp[i]
+ ret = -1
+ elif rl > el:
+ for i in range (el, rl):
+ print '+:%s' % res[i]
+ ret = -1
+ return ret
+
+# Separate threads to handle stdout and stderr are created to run this function
+def readPfile(file, list, flag):
+ data = file.readlines() # no call by reference, so I cheat
+ for l in data:
+ list.append(l)
+ file.close()
+ flag.append('ok')
+
+# This routine runs the test program (e.g. xmllint)
+def runOneTest(testDescription, filename, inbase, errbase):
+ if 'execpath' in testDescription:
+ dir = testDescription['execpath'] + '/'
+ else:
+ dir = ''
+ cmd = os.path.abspath(dir + testDescription['testprog'])
+ if 'flag' in testDescription:
+ for f in string.split(testDescription['flag']):
+ cmd += ' ' + f
+ if 'stdin' not in testDescription:
+ cmd += ' ' + inbase + filename
+ if 'extarg' in testDescription:
+ cmd += ' ' + testDescription['extarg']
+
+ noResult = 0
+ expout = None
+ if 'resext' in testDescription:
+ if testDescription['resext'] == 'None':
+ noResult = 1
+ else:
+ ext = '.' + testDescription['resext']
+ else:
+ ext = ''
+ if not noResult:
+ try:
+ fname = errbase + filename + ext
+ expout = open(fname, 'rt')
+ except:
+ print "Can't open result file %s - bypassing test" % fname
+ return
+
+ noErrors = 0
+ if 'reserrext' in testDescription:
+ if testDescription['reserrext'] == 'None':
+ noErrors = 1
+ else:
+ if len(testDescription['reserrext'])>0:
+ ext = '.' + testDescription['reserrext']
+ else:
+ ext = ''
+ else:
+ ext = ''
+ if not noErrors:
+ try:
+ fname = errbase + filename + ext
+ experr = open(fname, 'rt')
+ except:
+ experr = None
+ else:
+ experr = None
+
+ pin, pout, perr = os.popen3(cmd)
+ if 'stdin' in testDescription:
+ infile = open(inbase + filename, 'rt')
+ pin.writelines(infile.readlines())
+ infile.close()
+ pin.close()
+
+ # popen is great fun, but can lead to the old "deadly embrace", because
+ # synchronizing the writing (by the task being run) of stdout and stderr
+ # with respect to the reading (by this task) is basically impossible. I
+ # tried several ways to cheat, but the only way I have found which works
+ # is to do a *very* elementary multi-threading approach. We can only hope
+ # that Python threads are implemented on the target system (it's okay for
+ # Linux and Windows)
+
+ th1Flag = [] # flags to show when threads finish
+ th2Flag = []
+ outfile = [] # lists to contain the pipe data
+ errfile = []
+ th1 = thread.start_new_thread(readPfile, (pout, outfile, th1Flag))
+ th2 = thread.start_new_thread(readPfile, (perr, errfile, th2Flag))
+ while (len(th1Flag)==0) or (len(th2Flag)==0):
+ time.sleep(0.001)
+ if not noResult:
+ ret = compFiles(outfile, expout, inbase, 'test/')
+ if ret != 0:
+ print 'trouble with %s' % cmd
+ else:
+ if len(outfile) != 0:
+ for l in outfile:
+ print l
+ print 'trouble with %s' % cmd
+ if experr != None:
+ ret = compFiles(errfile, experr, inbase, 'test/')
+ if ret != 0:
+ print 'trouble with %s' % cmd
+ else:
+ if not noErrors:
+ if len(errfile) != 0:
+ for l in errfile:
+ print l
+ print 'trouble with %s' % cmd
+
+ if 'stdin' not in testDescription:
+ pin.close()
+
+# This routine is called by the parameter decoding routine whenever the end of a
+# 'test' section is encountered. Depending upon file globbing, a large number of
+# individual tests may be run.
+def runTest(description):
+ testDescription = defaultParams.copy() # set defaults
+ testDescription.update(description) # override with current ent
+ if 'testname' in testDescription:
+ print "## %s" % testDescription['testname']
+ if not 'file' in testDescription:
+ print "No file specified - can't run this test!"
+ return
+ # Set up the source and results directory paths from the decoded params
+ dir = ''
+ if 'srcdir' in testDescription:
+ dir += testDescription['srcdir'] + '/'
+ if 'srcsub' in testDescription:
+ dir += testDescription['srcsub'] + '/'
+
+ rdir = ''
+ if 'resdir' in testDescription:
+ rdir += testDescription['resdir'] + '/'
+ if 'ressub' in testDescription:
+ rdir += testDescription['ressub'] + '/'
+
+ testFiles = glob.glob(os.path.abspath(dir + testDescription['file']))
+ if testFiles == []:
+ print "No files result from '%s'" % testDescription['file']
+ return
+
+ # Some test programs just don't work (yet). For now we exclude them.
+ count = 0
+ excl = []
+ if 'exclfile' in testDescription:
+ for f in string.split(testDescription['exclfile']):
+ glb = glob.glob(dir + f)
+ for g in glb:
+ excl.append(os.path.abspath(g))
+
+ # Run the specified test program
+ for f in testFiles:
+ if not os.path.isdir(f):
+ if f not in excl:
+ count = count + 1
+ runOneTest(testDescription, os.path.basename(f), dir, rdir)
+
+#
+# The following classes are used with the xmlreader interface to interpret the
+# parameter file. Once a test section has been identified, runTest is called
+# with a dictionary containing the parsed results of the interpretation.
+#
+
+class testDefaults:
+ curText = '' # accumulates text content of parameter
+
+ def addToDict(self, key):
+ txt = string.strip(self.curText)
+# if txt == '':
+# return
+ if key not in defaultParams:
+ defaultParams[key] = txt
+ else:
+ defaultParams[key] += ' ' + txt
+
+ def processNode(self, reader, curClass):
+ if reader.Depth() == 2:
+ if reader.NodeType() == 1:
+ self.curText = '' # clear the working variable
+ elif reader.NodeType() == 15:
+ if (reader.Name() != '#text') and (reader.Name() != '#comment'):
+ self.addToDict(reader.Name())
+ elif reader.Depth() == 3:
+ if reader.Name() == '#text':
+ self.curText += reader.Value()
+
+ elif reader.NodeType() == 15: # end of element
+ print "Defaults have been set to:"
+ for k in defaultParams.keys():
+ print " %s : '%s'" % (k, defaultParams[k])
+ curClass = rootClass()
+ return curClass
+
+
+class testClass:
+ def __init__(self):
+ self.testParams = {} # start with an empty set of params
+ self.curText = '' # and empty text
+
+ def addToDict(self, key):
+ data = string.strip(self.curText)
+ if key not in self.testParams:
+ self.testParams[key] = data
+ else:
+ if self.testParams[key] != '':
+ data = ' ' + data
+ self.testParams[key] += data
+
+ def processNode(self, reader, curClass):
+ if reader.Depth() == 2:
+ if reader.NodeType() == 1:
+ self.curText = '' # clear the working variable
+ if reader.Name() not in self.testParams:
+ self.testParams[reader.Name()] = ''
+ elif reader.NodeType() == 15:
+ if (reader.Name() != '#text') and (reader.Name() != '#comment'):
+ self.addToDict(reader.Name())
+ elif reader.Depth() == 3:
+ if reader.Name() == '#text':
+ self.curText += reader.Value()
+
+ elif reader.NodeType() == 15: # end of element
+ runTest(self.testParams)
+ curClass = rootClass()
+ return curClass
+
+
+class rootClass:
+ def processNode(self, reader, curClass):
+ if reader.Depth() == 0:
+ return curClass
+ if reader.Depth() != 1:
+ print "Unexpected junk: Level %d, type %d, name %s" % (
+ reader.Depth(), reader.NodeType(), reader.Name())
+ return curClass
+ if reader.Name() == 'test':
+ curClass = testClass()
+ curClass.testParams = {}
+ elif reader.Name() == 'defaults':
+ curClass = testDefaults()
+ return curClass
+
+def streamFile(filename):
+ try:
+ reader = libxml2.newTextReaderFilename(filename)
+ except:
+ print "unable to open %s" % (filename)
+ return
+
+ curClass = rootClass()
+ ret = reader.Read()
+ while ret == 1:
+ curClass = curClass.processNode(reader, curClass)
+ ret = reader.Read()
+
+ if ret != 0:
+ print "%s : failed to parse" % (filename)
+
+# OK, we're finished with all the routines. Now for the main program:-
+if len(sys.argv) != 2:
+ print "Usage: maketest {filename}"
+ sys.exit(-1)
+
+streamFile(sys.argv[1])
diff --git a/regressions.xml b/regressions.xml
new file mode 100644
index 0000000..c78838a
--- /dev/null
+++ b/regressions.xml
@@ -0,0 +1,226 @@
+<RegressionTests>
+<!--
+ Within the following test descriptions the possible elements are:
+ Element Name Description
+ testname Plain text name of test
+ execpath pathname for test program(s)
+ testprog program to run for the test
+ flag flags for program (may have several)
+ file filename of input file (several, or glob ok)
+ exclfile filename to be excuded (several, or glob ok)
+ srcdir global source directory for input file(s)
+ srcsub subdirectory for input
+ resdir directory for results file(s)
+ ressub subdirectory for results
+ resext extension for expected result
+ reserrext extension for error result ('None' => no chk)
+ extarg additional argument for command
+ errexcl string to ignore when checking diffs
+ stdin pipe input file to stdin
+-->
+
+<!--
+ Note: These defaults are set to run from the root of the build directory
+-->
+ <defaults>
+ <testname>noname</testname>
+<!-- <execpath>win32/bin.msvc</execpath> -->
+ <execpath>.</execpath>
+ <testprog>xmllint</testprog>
+ <srcdir>test</srcdir>
+ <resdir>result</resdir>
+ <file>*.xml</file>
+ <reserrext>err</reserrext>
+ <errexcl/>
+ </defaults>
+
+ <test>
+ <testname>XML Regression Tests</testname>
+ <errexcl>failed to load external entity</errexcl>
+ </test>
+ <test>
+ <testname>XML Entity Subst Regression Tests</testname>
+ <ressub>noent</ressub>
+ <flag>--noent</flag>
+ </test>
+ <test>
+ <testname>XML Namespaces Regression Tests</testname>
+ <srcsub>namespaces</srcsub>
+ <ressub>namespaces</ressub>
+ </test>
+ <test>
+ <testname>xml:id Regression Tests</testname>
+ <testprog>testXPath</testprog>
+ <srcsub>xmlid</srcsub>
+ <ressub>xmlid</ressub>
+ <flag>-i</flag>
+ <file>id_*.xml</file>
+ <extarg>"id('bar')"</extarg>
+ </test>
+ <test>
+ <testname>Error Cases Regression Tests</testname>
+ <srcsub>errors</srcsub>
+ <ressub>errors</ressub>
+ </test>
+ <test>
+ <testname>Error Cases Stream Regression Tests</testname>
+ <srcsub>errors</srcsub>
+ <ressub>errors</ressub>
+ <reserrext>str</reserrext>
+ <flag>--stream</flag>
+ </test>
+ <test>
+ <testname>Reader Regression Tests</testname>
+ <resext>rdr</resext>
+ <flag>--nonet</flag>
+ <flag>--debug</flag>
+ <flag>--stream</flag>
+ <file>*</file>
+ <reserrext>None</reserrext>
+ </test>
+ <test>
+ <testname>Walker Regression Tests</testname>
+ <resext>rdr</resext>
+ <flag>--nonet</flag>
+ <flag>--debug</flag>
+ <flag>--walker</flag>
+ <file>*</file>
+ <reserrext>None</reserrext>
+ </test>
+ <test>
+ <testname>Reader Entities Substitution Regression Tests</testname>
+ <resext>rde</resext>
+ <flag>--nonet</flag>
+ <flag>--debug</flag>
+ <flag>--stream</flag>
+ <flag>--noent</flag>
+ <file>*</file>
+ <reserrext>None</reserrext>
+ </test>
+ <test>
+ <testname>SAX Callbacks Regression Tests</testname>
+ <testprog>testSAX</testprog>
+ <resext>sax</resext>
+ <file>*</file>
+ <exclfile>utf16*.xml</exclfile>
+ <reserrext>None</reserrext>
+ </test>
+ <test>
+ <testname>XML Push Regression Tests</testname>
+ <flag>--push</flag>
+ <errexcl>failed to load external entity</errexcl>
+ </test>
+ <test>
+ <testname>HTML Regression Tests</testname>
+ <testprog>testHTML</testprog>
+ <srcsub>HTML</srcsub>
+ <ressub>HTML</ressub>
+ <file>*</file>
+ <exclfile>wired.html</exclfile>
+ </test>
+ <test>
+ <testname>Push HTML Regression Tests</testname>
+ <testprog>testHTML</testprog>
+ <flag>--push</flag>
+ <srcsub>HTML</srcsub>
+ <ressub>HTML</ressub>
+ <file>*</file>
+ </test>
+ <test>
+ <testname>HTML SAX Regression Tests</testname>
+ <testprog>testHTML</testprog>
+ <flag>--sax</flag>
+ <srcsub>HTML</srcsub>
+ <ressub>HTML</ressub>
+ <resext>sax</resext>
+ <reserrext>None</reserrext>
+ <file>*</file>
+ </test>
+ <test>
+ <testname>Push HTML SAX Regression Tests</testname>
+ <testprog>testHTML</testprog>
+ <flag>--sax</flag>
+ <flag>--push</flag>
+ <srcsub>HTML</srcsub>
+ <ressub>HTML</ressub>
+ <resext>sax</resext>
+ <reserrext>None</reserrext>
+ <file>*</file>
+ </test>
+ <test>
+ <testname>Valid Documents Regression Tests</testname>
+ <srcsub>VCM</srcsub>
+ <ressub>VCM</ressub>
+ <resext>None</resext>
+ <reserrext>None</reserrext>
+ <file>*</file>
+ <flag>--valid</flag>
+ <flag>--noout</flag>
+ <flag>--nowarning</flag>
+ </test>
+ <test>
+ <testname>Validity Checking Regression Tests</testname>
+ <srcsub>VC</srcsub>
+ <ressub>VC</ressub>
+ <resext>None</resext>
+ <reserrext/>
+ <file>*</file>
+ <flag>--valid</flag>
+ <flag>--noout</flag>
+ </test>
+ <test>
+ <testname>General Documents Valid Regression Tests</testname>
+ <srcsub>valid</srcsub>
+ <ressub>valid</ressub>
+ <file>*</file>
+ <flag>--valid</flag>
+ </test>
+ <test>
+ <testname>URI Module Regression Tests (1)</testname>
+ <testprog>testURI</testprog>
+ <srcsub>URI</srcsub>
+ <stdin/>
+ <ressub>URI</ressub>
+ <reserrext>None</reserrext>
+ <file>*.data</file>
+ <!-- Note - the following arg needs to use ", not ' -->
+ <flag>-base "http://foo.com/path/to/index.html?orig#help"</flag>
+ </test>
+ <test>
+ <testname>URI Module Regression Tests (2)</testname>
+ <testprog>testURI</testprog>
+ <srcsub>URI</srcsub>
+ <stdin/>
+ <ressub>URI</ressub>
+ <reserrext>None</reserrext>
+ <file>*.uri</file>
+ </test>
+ <test>
+ <testname>XPath Regression Tests (1)</testname>
+ <testprog>testXPath</testprog>
+ <srcsub>XPath/expr</srcsub>
+ <ressub>XPath/expr</ressub>
+ <file>*</file>
+ <flag>-f</flag>
+ <flag>--expr</flag>
+ </test>
+ <test>
+ <testname>XInclude Regression Tests</testname>
+ <srcsub>XInclude/docs</srcsub>
+ <ressub>XInclude</ressub>
+ <file>*</file>
+ <flag>--nowarning</flag>
+ <flag>--xinclude</flag>
+ </test>
+ <test>
+ <testname>XInclude xmlReader Regression Tests</testname>
+ <srcsub>XInclude/docs</srcsub>
+ <ressub>XInclude</ressub>
+ <resext>rdr</resext>
+ <file>*</file>
+ <flag>--nowarning</flag>
+ <flag>--xinclude</flag>
+ <flag>--stream</flag>
+ <flag>--debug</flag>
+ </test>
+</RegressionTests>
diff --git a/relaxng.c b/relaxng.c
index 6bf62ee..29cdb19 100644
--- a/relaxng.c
+++ b/relaxng.c
@@ -7182,6 +7182,20 @@ xmlRelaxNGCleanupTree(xmlRelaxNGParserCtxtPtr ctxt, xmlNodePtr root)
}
if (ns != NULL)
xmlFree(ns);
+ /*
+ * Since we are about to delete cur, if it's nsDef is non-NULL we
+ * need to preserve it (it contains the ns definitions for the
+ * children we just moved). We'll just stick it on to the end
+ * of cur->parent's list, since it's never going to be re-serialized
+ * (bug 143738).
+ */
+ if (cur->nsDef != NULL) {
+ xmlNsPtr parDef = (xmlNsPtr)&cur->parent->nsDef;
+ while (parDef->next != NULL)
+ parDef = parDef->next;
+ parDef->next = cur->nsDef;
+ cur->nsDef = NULL;
+ }
delete = cur;
goto skip_children;
}
diff --git a/result/XInclude/docids.xml b/result/XInclude/docids.xml
index 389a216..ad8e6e6 100644
--- a/result/XInclude/docids.xml
+++ b/result/XInclude/docids.xml
@@ -11,7 +11,7 @@
<isid myid="dup"/>
</doc>
<!-- including another XML document with IDs -->
-<doc xml:base="test/XInclude/ents/ids.xml">
+<doc xml:base="../ents/ids.xml">
<isid myid="dup"/>
<isid myid="foo"/>
<isid myid="bar"/>
diff --git a/result/XInclude/include.xml b/result/XInclude/include.xml
index bee9da2..3a9366d 100644
--- a/result/XInclude/include.xml
+++ b/result/XInclude/include.xml
@@ -1,7 +1,7 @@
<?xml version="1.0"?>
<x xmlns:xinclude="http://www.w3.org/2001/XInclude">
<!-- Simple test of including another XML document -->
- <doc xml:base="test/XInclude/ents/something.xml">
+ <doc xml:base="../ents/something.xml">
<p>something</p>
<p>really</p>
<p>simple</p>
diff --git a/result/XInclude/nodes.xml b/result/XInclude/nodes.xml
index 301b70d..48030d1 100644
--- a/result/XInclude/nodes.xml
+++ b/result/XInclude/nodes.xml
@@ -1,5 +1,5 @@
<?xml version="1.0"?>
<x xmlns:xinclude="http://www.w3.org/2001/XInclude">
<!-- Simple test of including a set of nodes from an XML document -->
- <p xml:base="test/XInclude/ents/something.xml">something</p><p xml:base="test/XInclude/ents/something.xml">really</p><p xml:base="test/XInclude/ents/something.xml">simple</p>
+ <p xml:base="../ents/something.xml">something</p><p xml:base="../ents/something.xml">really</p><p xml:base="../ents/something.xml">simple</p>
</x>
diff --git a/result/XInclude/nodes2.xml b/result/XInclude/nodes2.xml
index 34ef5f0..fac2d82 100644
--- a/result/XInclude/nodes2.xml
+++ b/result/XInclude/nodes2.xml
@@ -1,5 +1,5 @@
<?xml version="1.0"?>
<x xmlns:xinclude="http://www.w3.org/2003/XInclude">
<!-- Simple test of including a set of nodes from an XML document -->
- <p xml:base="test/XInclude/ents/something.xml">something</p><p xml:base="test/XInclude/ents/something.xml">really</p><p xml:base="test/XInclude/ents/something.xml">simple</p>
+ <p xml:base="../ents/something.xml">something</p><p xml:base="../ents/something.xml">really</p><p xml:base="../ents/something.xml">simple</p>
</x>
diff --git a/result/XInclude/recursive.xml b/result/XInclude/recursive.xml
index c218c7d..4af1738 100644
--- a/result/XInclude/recursive.xml
+++ b/result/XInclude/recursive.xml
@@ -1,3 +1,3 @@
<?xml version="1.0"?>
-<this><sub-inc xml:base="test/XInclude/ents/sub-inc.ent">is a test
+<this><sub-inc xml:base="../ents/sub-inc.ent">is a test
</sub-inc></this>
diff --git a/result/att1.rde b/result/att1.rde
new file mode 100644
index 0000000..9f92263
--- /dev/null
+++ b/result/att1.rde
@@ -0,0 +1 @@
+0 1 doc 1 0
diff --git a/result/att2.rde b/result/att2.rde
new file mode 100644
index 0000000..9f92263
--- /dev/null
+++ b/result/att2.rde
@@ -0,0 +1 @@
+0 1 doc 1 0
diff --git a/result/att3.rde b/result/att3.rde
new file mode 100644
index 0000000..d1e72cc
--- /dev/null
+++ b/result/att3.rde
@@ -0,0 +1,3 @@
+0 1 select 0 0
+1 3 #text 0 1 f oo
+0 15 select 0 0
diff --git a/result/att4.rde b/result/att4.rde
new file mode 100644
index 0000000..746643e
--- /dev/null
+++ b/result/att4.rde
@@ -0,0 +1,27785 @@
+0 8 #comment 0 1 edited with XML Spy v4.4 U (http://www.xmlspy.com) by Slava (GIVC)
+0 1 electroxml 0 0
+1 14 #text 0 1
+
+1 1 data 0 0
+2 14 #text 0 1
+
+2 1 select 0 0
+3 14 #text 0 1
+
+3 1 device 0 0
+4 14 #text 0 1
+
+4 1 par 0 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+4 15 par 0 0
+4 14 #text 0 1
+
+4 1 par 0 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+4 15 par 0 0
+4 14 #text 0 1
+
+4 1 par 0 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+4 15 par 0 0
+4 14 #text 0 1
+
+4 1 par 0 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+4 15 par 0 0
+4 14 #text 0 1
+
+4 1 par 0 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+4 15 par 0 0
+4 14 #text 0 1
+
+4 1 par 0 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+4 15 par 0 0
+4 14 #text 0 1
+
+4 1 par 0 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+4 15 par 0 0
+4 14 #text 0 1
+
+4 1 par 0 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+4 15 par 0 0
+4 14 #text 0 1
+
+4 1 par 0 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+4 15 par 0 0
+4 14 #text 0 1
+
+4 1 par 0 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+4 15 par 0 0
+4 14 #text 0 1
+
+4 1 par 0 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+4 15 par 0 0
+4 14 #text 0 1
+
+4 1 par 0 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+4 15 par 0 0
+4 14 #text 0 1
+
+4 1 par 0 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+4 15 par 0 0
+4 14 #text 0 1
+
+4 1 par 0 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+4 15 par 0 0
+4 14 #text 0 1
+
+4 1 par 0 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+4 15 par 0 0
+4 14 #text 0 1
+
+4 1 par 0 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+4 15 par 0 0
+4 14 #text 0 1
+
+4 1 par 0 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+4 15 par 0 0
+4 14 #text 0 1
+
+4 1 par 0 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+4 15 par 0 0
+4 14 #text 0 1
+
+4 1 par 0 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+4 15 par 0 0
+4 14 #text 0 1
+
+4 1 par 0 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+4 15 par 0 0
+4 14 #text 0 1
+
+4 1 par 0 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+4 15 par 0 0
+4 14 #text 0 1
+
+4 1 par 0 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+4 15 par 0 0
+4 14 #text 0 1
+
+4 1 par 0 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+4 15 par 0 0
+4 14 #text 0 1
+
+4 1 par 0 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+4 15 par 0 0
+4 14 #text 0 1
+
+4 1 par 0 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+4 15 par 0 0
+4 14 #text 0 1
+
+4 1 par 0 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+4 15 par 0 0
+4 14 #text 0 1
+
+4 1 par 0 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+4 15 par 0 0
+4 14 #text 0 1
+
+4 1 par 0 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+4 15 par 0 0
+4 14 #text 0 1
+
+4 1 par 0 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+4 15 par 0 0
+4 14 #text 0 1
+
+4 1 par 0 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+4 15 par 0 0
+4 14 #text 0 1
+
+4 1 par 0 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+4 15 par 0 0
+4 14 #text 0 1
+
+4 1 par 0 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+4 15 par 0 0
+4 14 #text 0 1
+
+4 1 par 0 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+5 1 val 1 0
+5 14 #text 0 1
+
+4 15 par 0 0
+4 14 #text 0 1
+
+3 15 device 0 0
+3 14 #text 0 1
+
+2 15 select 0 0
+2 14 #text 0 1
+
+1 15 data 0 0
+1 14 #text 0 1
+
+0 15 electroxml 0 0
diff --git a/result/att5.rde b/result/att5.rde
new file mode 100644
index 0000000..35220b0
--- /dev/null
+++ b/result/att5.rde
@@ -0,0 +1,109 @@
+0 10 doc 0 0
+0 1 doc 0 0
+1 14 #text 0 1
+
+1 8 #comment 0 1 no normalization
+1 14 #text 0 1
+
+1 1 norm 1 0
+1 14 #text 0 1
+
+1 1 norm 1 0
+1 14 #text 0 1
+
+1 1 norm 1 0
+1 14 #text 0 1
+
+1 1 norm 1 0
+1 14 #text 0 1
+
+1 1 norm 1 0
+1 14 #text 0 1
+
+1 1 norm 1 0
+1 14 #text 0 1
+
+1 1 norm 1 0
+1 14 #text 0 1
+
+1 1 norm 1 0
+1 14 #text 0 1
+
+1 1 norm 1 0
+1 14 #text 0 1
+
+1 1 norm 1 0
+1 14 #text 0 1
+
+1 1 norm 1 0
+1 14 #text 0 1
+
+1 1 norm 1 0
+1 14 #text 0 1
+
+1 1 norm 1 0
+1 14 #text 0 1
+
+1 1 norm 1 0
+1 14 #text 0 1
+
+1 1 norm 1 0
+1 14 #text 0 1
+
+1 1 norm 1 0
+1 14 #text 0 1
+
+1 8 #comment 0 1 normalization
+1 14 #text 0 1
+
+1 1 normId 1 0
+1 14 #text 0 1
+
+1 1 normId 1 0
+1 14 #text 0 1
+
+1 1 normId 1 0
+1 14 #text 0 1
+
+1 1 normId 1 0
+1 14 #text 0 1
+
+1 1 normId 1 0
+1 14 #text 0 1
+
+1 1 normId 1 0
+1 14 #text 0 1
+
+1 1 normId 1 0
+1 14 #text 0 1
+
+1 1 normId 1 0
+1 14 #text 0 1
+
+1 1 normId 1 0
+1 14 #text 0 1
+
+1 1 normId 1 0
+1 14 #text 0 1
+
+1 1 normId 1 0
+1 14 #text 0 1
+
+1 1 normId 1 0
+1 14 #text 0 1
+
+1 1 normId 1 0
+1 14 #text 0 1
+
+1 1 normId 1 0
+1 14 #text 0 1
+
+1 1 normId 1 0
+1 14 #text 0 1
+
+1 1 normId 1 0
+1 14 #text 0 1
+1 8 #comment 0 1 PBM serializing back
+1 14 #text 0 1
+
+0 15 doc 0 0
diff --git a/result/att6.rde b/result/att6.rde
new file mode 100644
index 0000000..6d39352
--- /dev/null
+++ b/result/att6.rde
@@ -0,0 +1,15 @@
+0 1 Invoice 0 0
+1 14 #text 0 1
+
+1 1 cat:ReferencedOrder 0 0
+2 14 #text 0 1
+
+2 1 cat:SellersOrderID 0 0
+3 3 #text 0 1 pvalue->ReferencedOrder.SellersOrderID
+2 15 cat:SellersOrderID 0 0
+2 14 #text 0 1
+
+1 15 cat:ReferencedOrder 0 0
+1 14 #text 0 1
+
+0 15 Invoice 0 0
diff --git a/result/att7.rde b/result/att7.rde
new file mode 100644
index 0000000..afcef5f
--- /dev/null
+++ b/result/att7.rde
@@ -0,0 +1,12 @@
+0 10 x 0 0
+0 1 x 0 0
+1 14 #text 0 1
+
+1 1 test 1 0
+1 14 #text 0 1
+
+1 1 test 0 0
+1 15 test 0 0
+1 14 #text 0 1
+
+0 15 x 0 0
diff --git a/result/att8.rde b/result/att8.rde
new file mode 100644
index 0000000..52fde32
--- /dev/null
+++ b/result/att8.rde
@@ -0,0 +1,22 @@
+0 1 ino:response 0 0
+1 1 xql:query 0 0
+2 3 #text 0 1 /bsk:DocPart[@docId='20040308152601345236' and @docPartNo=1]
+1 15 xql:query 0 0
+1 1 ino:message 0 0
+2 1 ino:messageline 0 0
+3 3 #text 0 1 XQL Request processing
+2 15 ino:messageline 0 0
+1 15 ino:message 0 0
+1 1 xql:result 0 0
+2 1 bsk:DocPart 0 0
+3 1 bsk:File 0 0
+4 14 #text 0 1
+3 15 bsk:File 0 0
+2 15 bsk:DocPart 0 0
+1 15 xql:result 0 0
+1 1 ino:message 0 0
+2 1 ino:messageline 0 0
+3 3 #text 0 1 XQL Request processed
+2 15 ino:messageline 0 0
+1 15 ino:message 0 0
+0 15 ino:response 0 0
diff --git a/result/attrib.xml.rde b/result/attrib.xml.rde
new file mode 100644
index 0000000..de6325a
--- /dev/null
+++ b/result/attrib.xml.rde
@@ -0,0 +1 @@
+0 1 item 1 0
diff --git a/result/bigentname.xml.rde b/result/bigentname.xml.rde
new file mode 100644
index 0000000..c2d4cc0
--- /dev/null
+++ b/result/bigentname.xml.rde
@@ -0,0 +1,4 @@
+0 10 doc 0 0
+0 1 doc 0 0
+1 3 #text 0 1 He said "Yes"
+0 15 doc 0 0
diff --git a/result/bigname.xml.rde b/result/bigname.xml.rde
new file mode 100644
index 0000000..71284c1
--- /dev/null
+++ b/result/bigname.xml.rde
@@ -0,0 +1 @@
+0 1 this_is_a_very_large_name_01234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789_end_of_the_very_large_name 1 0
diff --git a/result/bigname2.xml.rde b/result/bigname2.xml.rde
new file mode 100644
index 0000000..6de9dd7
--- /dev/null
+++ b/result/bigname2.xml.rde
@@ -0,0 +1 @@
+0 1 this_is_a_very_large_qualified_name_01234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789_end_of_prefix:start_nc_name_01234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789_end_of_the_very_large_name 1 0
diff --git a/result/cdata.rde b/result/cdata.rde
new file mode 100644
index 0000000..316b8bf
--- /dev/null
+++ b/result/cdata.rde
@@ -0,0 +1,7 @@
+0 1 doc 0 0
+1 14 #text 0 1
+
+1 4 #cdata-section 0 1 <greeting>Hello, world!</greeting>
+1 14 #text 0 1
+
+0 15 doc 0 0
diff --git a/result/cdata2.rde b/result/cdata2.rde
new file mode 100644
index 0000000..e69a672
--- /dev/null
+++ b/result/cdata2.rde
@@ -0,0 +1,13 @@
+0 1 collection 0 0
+1 14 #text 0 1
+
+1 1 test 0 0
+2 4 #cdata-section 0 1
+ <![CDATA[abc]
+2 3 #text 0 1 ]>
+2 4 #cdata-section 0 1
+
+1 15 test 0 0
+1 14 #text 0 1
+
+0 15 collection 0 0
diff --git a/result/comment.xml.rde b/result/comment.xml.rde
new file mode 100644
index 0000000..9551ced
--- /dev/null
+++ b/result/comment.xml.rde
@@ -0,0 +1,13 @@
+0 1 doc 0 0
+1 14 #text 0 1
+
+1 8 #comment 0 1 document start
+1 14 #text 0 1
+
+1 1 empty 1 0
+1 14 #text 0 1
+
+1 8 #comment 0 1 document end
+1 14 #text 0 1
+
+0 15 doc 0 0
diff --git a/result/comment2.xml.rde b/result/comment2.xml.rde
new file mode 100644
index 0000000..4a3279d
--- /dev/null
+++ b/result/comment2.xml.rde
@@ -0,0 +1,9 @@
+0 8 #comment 0 1 document start
+0 1 doc 0 0
+1 14 #text 0 1
+
+1 1 empty 1 0
+1 14 #text 0 1
+
+0 15 doc 0 0
+0 8 #comment 0 1 document end
diff --git a/result/dav1.rde b/result/dav1.rde
new file mode 100644
index 0000000..d8d44e6
--- /dev/null
+++ b/result/dav1.rde
@@ -0,0 +1,78 @@
+0 1 D:multistatus 0 0
+1 14 #text 0 1
+
+1 1 D:response 0 0
+2 14 #text 0 1
+
+2 1 D:prop 0 0
+3 14 #text 0 1
+
+3 1 R:bigbox 0 0
+4 14 #text 0 1
+
+4 1 R:BoxType 0 0
+5 3 #text 0 1 Box type A
+4 15 R:BoxType 0 0
+4 14 #text 0 1
+
+3 15 R:bigbox 0 0
+3 14 #text 0 1
+
+3 1 R:author 0 0
+4 14 #text 0 1
+
+4 1 R:Name 0 0
+5 3 #text 0 1 J.J. Dingleheimerschmidt
+4 15 R:Name 0 0
+4 14 #text 0 1
+
+3 15 R:author 0 0
+3 14 #text 0 1
+
+2 15 D:prop 0 0
+2 14 #text 0 1
+
+2 1 D:status 0 0
+3 3 #text 0 1 HTTP/1.1 200 OK
+2 15 D:status 0 0
+2 14 #text 0 1
+
+1 15 D:response 0 0
+1 14 #text 0 1
+
+1 1 D:response 0 0
+2 14 #text 0 1
+
+2 1 D:prop 0 0
+3 14 #text 0 1
+
+3 1 R:DingALing 1 0
+3 14 #text 0 1
+
+3 1 R:Random 1 0
+3 14 #text 0 1
+
+2 15 D:prop 0 0
+2 14 #text 0 1
+
+2 1 D:status 0 0
+3 3 #text 0 1 HTTP/1.1 403 Forbidden
+2 15 D:status 0 0
+2 14 #text 0 1
+
+2 1 D:responsedescription 0 0
+3 3 #text 0 1 The user does not have access to the DingALing property.
+
+2 15 D:responsedescription 0 0
+2 14 #text 0 1
+
+1 15 D:response 0 0
+1 14 #text 0 1
+
+1 1 D:responsedescription 0 0
+2 3 #text 0 1 There has been an access violation error.
+
+1 15 D:responsedescription 0 0
+1 14 #text 0 1
+
+0 15 D:multistatus 0 0
diff --git a/result/dav10.rde b/result/dav10.rde
new file mode 100644
index 0000000..bfb552d
--- /dev/null
+++ b/result/dav10.rde
@@ -0,0 +1,9 @@
+0 1 D:owner 0 0
+1 14 #text 0 1
+
+1 1 D:href 0 0
+2 3 #text 0 1 http://www.ics.uci.edu/~ejw/contact.html
+1 15 D:href 0 0
+1 14 #text 0 1
+
+0 15 D:owner 0 0
diff --git a/result/dav11.rde b/result/dav11.rde
new file mode 100644
index 0000000..088afeb
--- /dev/null
+++ b/result/dav11.rde
@@ -0,0 +1,60 @@
+0 1 D:prop 0 0
+1 14 #text 0 1
+
+1 1 D:lockdiscovery 0 0
+2 14 #text 0 1
+
+2 1 D:activelock 0 0
+3 14 #text 0 1
+
+3 1 D:locktype 0 0
+4 3 #text 0 1 write
+3 15 D:locktype 0 0
+3 14 #text 0 1
+
+3 1 D:lockscope 0 0
+4 3 #text 0 1 exclusive
+3 15 D:lockscope 0 0
+3 14 #text 0 1
+
+3 1 D:addlocks 1 0
+3 14 #text 0 1
+
+3 1 D:owner 0 0
+4 14 #text 0 1
+
+4 1 D:href 0 0
+5 3 #text 0 1
+ http://www.ics.uci.edu/~ejw/contact.html
+
+4 15 D:href 0 0
+4 14 #text 0 1
+
+3 15 D:owner 0 0
+3 14 #text 0 1
+
+3 1 D:timeout 0 0
+4 3 #text 0 1 Second-604800
+3 15 D:timeout 0 0
+3 14 #text 0 1
+
+3 1 D:locktoken 0 0
+4 14 #text 0 1
+
+4 1 D:href 0 0
+5 3 #text 0 1
+ opaquelocktoken:xyz122393481230912asdfa09s8df09s7df
+
+4 15 D:href 0 0
+4 14 #text 0 1
+
+3 15 D:locktoken 0 0
+3 14 #text 0 1
+
+2 15 D:activelock 0 0
+2 14 #text 0 1
+
+1 15 D:lockdiscovery 0 0
+1 14 #text 0 1
+
+0 15 D:prop 0 0
diff --git a/result/dav12.rde b/result/dav12.rde
new file mode 100644
index 0000000..0df7943
--- /dev/null
+++ b/result/dav12.rde
@@ -0,0 +1,3 @@
+0 1 D:href 0 0
+1 3 #text 0 1 http://www.ics.uci.edu/~ejw/contact.html
+0 15 D:href 0 0
diff --git a/result/dav13.rde b/result/dav13.rde
new file mode 100644
index 0000000..ffe978d
--- /dev/null
+++ b/result/dav13.rde
@@ -0,0 +1,45 @@
+0 1 D:multistatus 0 0
+1 14 #text 0 1
+
+1 1 D:response 0 0
+2 14 #text 0 1
+
+2 1 D:href 0 0
+3 3 #text 0 1
+ http://webdav.sb.aol.com/workspace/webdav/proposal.doc
+
+2 15 D:href 0 0
+2 14 #text 0 1
+
+2 1 D:href 0 0
+3 3 #text 0 1
+ http://webdav.sb.aol.com/workspace/webdav/
+
+2 15 D:href 0 0
+2 14 #text 0 1
+
+2 1 D:status 0 0
+3 3 #text 0 1 HTTP/1.1 202 Accepted
+2 15 D:status 0 0
+2 14 #text 0 1
+
+1 15 D:response 0 0
+1 14 #text 0 1
+
+1 1 D:response 0 0
+2 14 #text 0 1
+
+2 1 D:href 0 0
+3 3 #text 0 1 http://foo.bar/blah
+2 15 D:href 0 0
+2 14 #text 0 1
+
+2 1 D:status 0 0
+3 3 #text 0 1 HTTP/1.1 403 Forbidden
+2 15 D:status 0 0
+2 14 #text 0 1
+
+1 15 D:response 0 0
+1 14 #text 0 1
+
+0 15 D:multistatus 0 0
diff --git a/result/dav15.rde b/result/dav15.rde
new file mode 100644
index 0000000..a4a4e7c
--- /dev/null
+++ b/result/dav15.rde
@@ -0,0 +1,73 @@
+0 1 D:prop 0 0
+1 14 #text 0 1
+
+1 1 D:Source 0 0
+2 14 #text 0 1
+
+2 1 D:link 0 0
+3 14 #text 0 1
+
+3 1 F:projfiles 0 0
+4 3 #text 0 1 Source
+3 15 F:projfiles 0 0
+3 14 #text 0 1
+
+3 1 D:src 0 0
+4 3 #text 0 1 http://foo.bar/program
+3 15 D:src 0 0
+3 14 #text 0 1
+
+3 1 D:dst 0 0
+4 3 #text 0 1 http://foo.bar/src/main.c
+3 15 D:dst 0 0
+3 14 #text 0 1
+
+2 15 D:link 0 0
+2 14 #text 0 1
+
+2 1 D:link 0 0
+3 14 #text 0 1
+
+3 1 F:projfiles 0 0
+4 3 #text 0 1 Library
+3 15 F:projfiles 0 0
+3 14 #text 0 1
+
+3 1 D:src 0 0
+4 3 #text 0 1 http://foo.bar/program
+3 15 D:src 0 0
+3 14 #text 0 1
+
+3 1 D:dst 0 0
+4 3 #text 0 1 http://foo.bar/src/main.lib
+3 15 D:dst 0 0
+3 14 #text 0 1
+
+2 15 D:link 0 0
+2 14 #text 0 1
+
+2 1 D:link 0 0
+3 14 #text 0 1
+
+3 1 F:projfiles 0 0
+4 3 #text 0 1 Makefile
+3 15 F:projfiles 0 0
+3 14 #text 0 1
+
+3 1 D:src 0 0
+4 3 #text 0 1 http://foo.bar/program
+3 15 D:src 0 0
+3 14 #text 0 1
+
+3 1 D:dst 0 0
+4 3 #text 0 1 http://foo.bar/src/makefile
+3 15 D:dst 0 0
+3 14 #text 0 1
+
+2 15 D:link 0 0
+2 14 #text 0 1
+
+1 15 D:Source 0 0
+1 14 #text 0 1
+
+0 15 D:prop 0 0
diff --git a/result/dav16.rde b/result/dav16.rde
new file mode 100644
index 0000000..97a9933
--- /dev/null
+++ b/result/dav16.rde
@@ -0,0 +1,13 @@
+0 1 D:propfind 0 0
+1 14 #text 0 1
+
+1 1 D:prop 0 0
+2 14 #text 0 1
+
+2 1 lockdiscovery 1 0
+2 14 #text 0 1
+
+1 15 D:prop 0 0
+1 14 #text 0 1
+
+0 15 D:propfind 0 0
diff --git a/result/dav17.rde b/result/dav17.rde
new file mode 100644
index 0000000..a47b64e
--- /dev/null
+++ b/result/dav17.rde
@@ -0,0 +1,75 @@
+0 1 D:multistatus 0 0
+1 14 #text 0 1
+
+1 1 D:response 0 0
+2 14 #text 0 1
+
+2 1 D:prop 0 0
+3 14 #text 0 1
+
+3 1 D:lockdiscovery 0 0
+4 14 #text 0 1
+
+4 1 D:activelock 0 0
+5 14 #text 0 1
+
+5 1 D:locktype 0 0
+6 3 #text 0 1 write
+5 15 D:locktype 0 0
+5 14 #text 0 1
+
+5 1 D:lockscope 0 0
+6 3 #text 0 1 exclusive
+5 15 D:lockscope 0 0
+5 14 #text 0 1
+
+5 1 D:addlocks 0 0
+6 14 #text 0 1
+
+6 1 D:href 0 0
+7 3 #text 0 1 http://foo.com/doc/
+6 15 D:href 0 0
+6 14 #text 0 1
+
+5 15 D:addlocks 0 0
+5 14 #text 0 1
+
+5 1 D:owner 0 0
+6 3 #text 0 1 Jane Smith
+5 15 D:owner 0 0
+5 14 #text 0 1
+
+5 1 D:timeout 0 0
+6 3 #text 0 1 Infinite
+5 15 D:timeout 0 0
+5 14 #text 0 1
+
+5 1 D:locktoken 0 0
+6 14 #text 0 1
+
+6 1 D:href 0 0
+7 3 #text 0 1 iamuri:unique!!!!!
+6 15 D:href 0 0
+6 14 #text 0 1
+
+5 15 D:locktoken 0 0
+5 14 #text 0 1
+
+4 15 D:activelock 0 0
+4 14 #text 0 1
+
+3 15 D:lockdiscovery 0 0
+3 14 #text 0 1
+
+2 15 D:prop 0 0
+2 14 #text 0 1
+
+2 1 D:status 0 0
+3 3 #text 0 1 HTTP/1.1 200 OK
+2 15 D:status 0 0
+2 14 #text 0 1
+
+1 15 D:response 0 0
+1 14 #text 0 1
+
+0 15 D:multistatus 0 0
diff --git a/result/dav18.rde b/result/dav18.rde
new file mode 100644
index 0000000..9de17af
--- /dev/null
+++ b/result/dav18.rde
@@ -0,0 +1,13 @@
+0 1 D:propfind 0 0
+1 14 #text 0 1
+
+1 1 D:prop 0 0
+2 14 #text 0 1
+
+2 1 supportedlock 1 0
+2 14 #text 0 1
+
+1 15 D:prop 0 0
+1 14 #text 0 1
+
+0 15 D:propfind 0 0
diff --git a/result/dav19.rde b/result/dav19.rde
new file mode 100644
index 0000000..d2c1e00
--- /dev/null
+++ b/result/dav19.rde
@@ -0,0 +1,59 @@
+0 1 D:multistatus 0 0
+1 14 #text 0 1
+
+1 1 D:response 0 0
+2 14 #text 0 1
+
+2 1 D:prop 0 0
+3 14 #text 0 1
+
+3 1 D:supportedlock 0 0
+4 14 #text 0 1
+
+4 1 D:LockEntry 0 0
+5 14 #text 0 1
+
+5 1 D:locktype 0 0
+6 3 #text 0 1 Write
+5 15 D:locktype 0 0
+5 14 #text 0 1
+
+5 1 D:lockscope 0 0
+6 3 #text 0 1 Exclusive
+5 15 D:lockscope 0 0
+5 14 #text 0 1
+
+4 15 D:LockEntry 0 0
+4 14 #text 0 1
+
+4 1 D:LockEntry 0 0
+5 14 #text 0 1
+
+5 1 D:locktype 0 0
+6 3 #text 0 1 Write
+5 15 D:locktype 0 0
+5 14 #text 0 1
+
+5 1 D:lockscope 0 0
+6 3 #text 0 1 Shared
+5 15 D:lockscope 0 0
+5 14 #text 0 1
+
+4 15 D:LockEntry 0 0
+4 14 #text 0 1
+
+3 15 D:supportedlock 0 0
+3 14 #text 0 1
+
+2 15 D:prop 0 0
+2 14 #text 0 1
+
+2 1 D:status 0 0
+3 3 #text 0 1 HTTP/1.1 200 OK
+2 15 D:status 0 0
+2 14 #text 0 1
+
+1 15 D:response 0 0
+1 14 #text 0 1
+
+0 15 D:multistatus 0 0
diff --git a/result/dav2.rde b/result/dav2.rde
new file mode 100644
index 0000000..41fc86d
--- /dev/null
+++ b/result/dav2.rde
@@ -0,0 +1,81 @@
+0 1 S:multistatus 0 0
+1 14 #text 0 1
+
+1 1 S:response 0 0
+2 14 #text 0 1
+
+2 1 S:href 0 0
+3 3 #text 0 1 http://www.foo.bar/container/
+2 15 S:href 0 0
+2 14 #text 0 1
+
+2 1 S:prop 0 0
+3 14 #text 0 1
+
+3 1 R:bigbox 0 0
+4 14 #text 0 1
+
+4 1 R:BoxType 0 0
+5 3 #text 0 1 Box type A
+4 15 R:BoxType 0 0
+4 14 #text 0 1
+
+3 15 R:bigbox 0 0
+3 14 #text 0 1
+
+3 1 R:author 0 0
+4 14 #text 0 1
+
+4 1 R:Name 0 0
+5 3 #text 0 1 Hadrian
+4 15 R:Name 0 0
+4 14 #text 0 1
+
+3 15 R:author 0 0
+3 14 #text 0 1
+
+2 15 S:prop 0 0
+2 14 #text 0 1
+
+2 1 S:status 0 0
+3 3 #text 0 1 HTTP 1.1 200 OK
+2 15 S:status 0 0
+2 14 #text 0 1
+
+1 15 S:response 0 0
+1 14 #text 0 1
+
+1 1 S:response 0 0
+2 14 #text 0 1
+
+2 1 S:href 0 0
+3 3 #text 0 1 http://www.foo.bar/container/index.html
+2 15 S:href 0 0
+2 14 #text 0 1
+
+2 1 S:prop 0 0
+3 14 #text 0 1
+
+3 1 R:bigbox 0 0
+4 14 #text 0 1
+
+4 1 R:BoxType 0 0
+5 3 #text 0 1 Box type B
+4 15 R:BoxType 0 0
+4 14 #text 0 1
+
+3 15 R:bigbox 0 0
+3 14 #text 0 1
+
+2 15 S:prop 0 0
+2 14 #text 0 1
+
+2 1 S:status 0 0
+3 3 #text 0 1 HTTP 1.1 200 OK
+2 15 S:status 0 0
+2 14 #text 0 1
+
+1 15 S:response 0 0
+1 14 #text 0 1
+
+0 15 S:multistatus 0 0
diff --git a/result/dav3.rde b/result/dav3.rde
new file mode 100644
index 0000000..f106f17
--- /dev/null
+++ b/result/dav3.rde
@@ -0,0 +1,57 @@
+0 1 D:multistatus 0 0
+1 14 #text 0 1
+
+1 1 D:response 0 0
+2 14 #text 0 1
+
+2 1 D:href 0 0
+3 3 #text 0 1 http://www.foo.bar/container/
+2 15 D:href 0 0
+2 14 #text 0 1
+
+2 1 D:prop 0 0
+3 14 #text 0 1
+
+3 1 R:bigbox 1 0
+3 14 #text 0 1
+
+3 1 R:author 1 0
+3 14 #text 0 1
+
+2 15 D:prop 0 0
+2 14 #text 0 1
+
+2 1 D:status 0 0
+3 3 #text 0 1 HTTP 1.1 200 OK
+2 15 D:status 0 0
+2 14 #text 0 1
+
+1 15 D:response 0 0
+1 14 #text 0 1
+
+1 1 D:response 0 0
+2 14 #text 0 1
+
+2 1 D:href 0 0
+3 3 #text 0 1 http://www.foo.bar/container/index.html
+2 15 D:href 0 0
+2 14 #text 0 1
+
+2 1 D:prop 0 0
+3 14 #text 0 1
+
+3 1 R:bigbox 1 0
+3 14 #text 0 1
+
+2 15 D:prop 0 0
+2 14 #text 0 1
+
+2 1 D:status 0 0
+3 3 #text 0 1 HTTP 1.1 200 OK
+2 15 D:status 0 0
+2 14 #text 0 1
+
+1 15 D:response 0 0
+1 14 #text 0 1
+
+0 15 D:multistatus 0 0
diff --git a/result/dav4.rde b/result/dav4.rde
new file mode 100644
index 0000000..e764047
--- /dev/null
+++ b/result/dav4.rde
@@ -0,0 +1,47 @@
+0 1 D:propertyupdate 0 0
+1 14 #text 0 1
+
+1 1 D:set 0 0
+2 14 #text 0 1
+
+2 1 D:prop 0 0
+3 14 #text 0 1
+
+3 1 Z:authors 0 0
+4 14 #text 0 1
+
+4 1 Z:Author 0 0
+5 3 #text 0 1 Jim Whitehead
+4 15 Z:Author 0 0
+4 14 #text 0 1
+
+4 1 Z:Author 0 0
+5 3 #text 0 1 Roy Fielding
+4 15 Z:Author 0 0
+4 14 #text 0 1
+
+3 15 Z:authors 0 0
+3 14 #text 0 1
+
+2 15 D:prop 0 0
+2 14 #text 0 1
+
+1 15 D:set 0 0
+1 14 #text 0 1
+
+1 1 D:remove 0 0
+2 14 #text 0 1
+
+2 1 D:prop 0 0
+3 14 #text 0 1
+
+3 1 Z:Copyright-Owner 1 0
+3 14 #text 0 1
+
+2 15 D:prop 0 0
+2 14 #text 0 1
+
+1 15 D:remove 0 0
+1 14 #text 0 1
+
+0 15 D:propertyupdate 0 0
diff --git a/result/dav5.rde b/result/dav5.rde
new file mode 100644
index 0000000..c92d177
--- /dev/null
+++ b/result/dav5.rde
@@ -0,0 +1,50 @@
+0 1 D:multistatus 0 0
+1 14 #text 0 1
+
+1 1 D:response 0 0
+2 14 #text 0 1
+
+2 1 D:prop 0 0
+3 14 #text 0 1
+
+3 1 Z:Authors 1 0
+3 14 #text 0 1
+
+2 15 D:prop 0 0
+2 14 #text 0 1
+
+2 1 D:status 0 0
+3 3 #text 0 1 HTTP/1.1 420 Method Failure
+2 15 D:status 0 0
+2 14 #text 0 1
+
+1 15 D:response 0 0
+1 14 #text 0 1
+
+1 1 D:response 0 0
+2 14 #text 0 1
+
+2 1 D:prop 0 0
+3 14 #text 0 1
+
+3 1 Z:Copyright-Owner 1 0
+3 14 #text 0 1
+
+2 15 D:prop 0 0
+2 14 #text 0 1
+
+2 1 D:status 0 0
+3 3 #text 0 1 HTTP/1.1 409 Conflict
+2 15 D:status 0 0
+2 14 #text 0 1
+
+1 15 D:response 0 0
+1 14 #text 0 1
+
+1 1 D:responsedescription 0 0
+2 3 #text 0 1 Copyright Owner can not be deleted or
+altered.
+1 15 D:responsedescription 0 0
+1 14 #text 0 1
+
+0 15 D:multistatus 0 0
diff --git a/result/dav6.rde b/result/dav6.rde
new file mode 100644
index 0000000..726e3c2
--- /dev/null
+++ b/result/dav6.rde
@@ -0,0 +1,63 @@
+0 1 D:multistatus 0 0
+1 14 #text 0 1
+
+1 1 D:response 0 0
+2 14 #text 0 1
+
+2 1 D:href 0 0
+3 3 #text 0 1 http://www.microsoft.com/user/yarong/dav_drafts/
+
+2 15 D:href 0 0
+2 14 #text 0 1
+
+2 1 D:prop 0 0
+3 14 #text 0 1
+
+3 1 D:resourcetype 0 0
+4 14 #text 0 1
+
+4 1 D:collection 1 0
+4 14 #text 0 1
+
+3 15 D:resourcetype 0 0
+3 14 #text 0 1
+
+2 15 D:prop 0 0
+2 14 #text 0 1
+
+2 1 D:status 0 0
+3 3 #text 0 1 HTTP 1.1 200 OK
+2 15 D:status 0 0
+2 14 #text 0 1
+
+1 15 D:response 0 0
+1 14 #text 0 1
+
+1 1 D:response 0 0
+2 14 #text 0 1
+
+2 1 D:href 0 0
+3 3 #text 0 1
+ http://www.microsoft.com/user/yarong/dav_drafts/base
+
+2 15 D:href 0 0
+2 14 #text 0 1
+
+2 1 D:prop 0 0
+3 14 #text 0 1
+
+3 1 D:resourcetype 1 0
+3 14 #text 0 1
+
+2 15 D:prop 0 0
+2 14 #text 0 1
+
+2 1 D:status 0 0
+3 3 #text 0 1 HTTP 1.1 200 OK
+2 15 D:status 0 0
+2 14 #text 0 1
+
+1 15 D:response 0 0
+1 14 #text 0 1
+
+0 15 D:multistatus 0 0
diff --git a/result/dav7.rde b/result/dav7.rde
new file mode 100644
index 0000000..3f98328
--- /dev/null
+++ b/result/dav7.rde
@@ -0,0 +1,57 @@
+0 1 d:multistatus 0 0
+1 14 #text 0 1
+
+1 1 d:response 0 0
+2 14 #text 0 1
+
+2 1 d:href 0 0
+3 3 #text 0 1 http://www.foo.bar/container/resource1
+2 15 d:href 0 0
+2 14 #text 0 1
+
+2 1 d:href 0 0
+3 3 #text 0 1 http://www.foo.bar/container/resource2
+2 15 d:href 0 0
+2 14 #text 0 1
+
+2 1 d:status 0 0
+3 3 #text 0 1 HTTP/1.1 200 OK
+2 15 d:status 0 0
+2 14 #text 0 1
+
+1 15 d:response 0 0
+1 14 #text 0 1
+
+1 1 d:response 0 0
+2 14 #text 0 1
+
+2 1 d:href 0 0
+3 3 #text 0 1 http://www.foo.bar/container/
+2 15 d:href 0 0
+2 14 #text 0 1
+
+2 1 d:status 0 0
+3 3 #text 0 1 HTTP/1.1 420 Method Failure
+2 15 d:status 0 0
+2 14 #text 0 1
+
+1 15 d:response 0 0
+1 14 #text 0 1
+
+1 1 d:response 0 0
+2 14 #text 0 1
+
+2 1 d:href 0 0
+3 3 #text 0 1 http://www.foo.bar/container/resource3
+2 15 d:href 0 0
+2 14 #text 0 1
+
+2 1 d:status 0 0
+3 3 #text 0 1 HTTP/1.1 412 Precondition Failed
+2 15 d:status 0 0
+2 14 #text 0 1
+
+1 15 d:response 0 0
+1 14 #text 0 1
+
+0 15 d:multistatus 0 0
diff --git a/result/dav8.rde b/result/dav8.rde
new file mode 100644
index 0000000..f14225e
--- /dev/null
+++ b/result/dav8.rde
@@ -0,0 +1,51 @@
+0 1 d:multistatus 0 0
+1 14 #text 0 1
+
+1 1 d:response 0 0
+2 14 #text 0 1
+
+2 1 d:href 0 0
+3 3 #text 0 1 http://www.foo.bar/othercontainer/resource1
+2 15 d:href 0 0
+2 14 #text 0 1
+
+2 1 d:href 0 0
+3 3 #text 0 1 http://www.foo.bar/othercontainer/resource2
+2 15 d:href 0 0
+2 14 #text 0 1
+
+2 1 d:href 0 0
+3 3 #text 0 1 http://www.foo.bar/othercontainer/
+2 15 d:href 0 0
+2 14 #text 0 1
+
+2 1 d:href 0 0
+3 3 #text 0 1 http://www.foo.bar/othercontainer/R2/D2
+2 15 d:href 0 0
+2 14 #text 0 1
+
+2 1 d:status 0 0
+3 3 #text 0 1 HTTP/1.1 201 Created
+2 15 d:status 0 0
+2 14 #text 0 1
+
+1 15 d:response 0 0
+1 14 #text 0 1
+
+1 1 d:response 0 0
+2 14 #text 0 1
+
+2 1 d:href 0 0
+3 3 #text 0 1 http://www.foo.bar/othercontainer/R2/
+2 15 d:href 0 0
+2 14 #text 0 1
+
+2 1 d:status 0 0
+3 3 #text 0 1 HTTP/1.1 412 Precondition Failed
+2 15 d:status 0 0
+2 14 #text 0 1
+
+1 15 d:response 0 0
+1 14 #text 0 1
+
+0 15 d:multistatus 0 0
diff --git a/result/dav9.rde b/result/dav9.rde
new file mode 100644
index 0000000..943ab96
--- /dev/null
+++ b/result/dav9.rde
@@ -0,0 +1,67 @@
+0 1 d:multistatus 0 0
+1 14 #text 0 1
+
+1 1 d:response 0 0
+2 14 #text 0 1
+
+2 1 d:href 0 0
+3 3 #text 0 1 http://www.foo.bar/container/resource1
+2 15 d:href 0 0
+2 14 #text 0 1
+
+2 1 d:href 0 0
+3 3 #text 0 1 http://www.foo.bar/container/resource2
+2 15 d:href 0 0
+2 14 #text 0 1
+
+2 1 d:href 0 0
+3 3 #text 0 1 http://www.foo.bar/container/
+2 15 d:href 0 0
+2 14 #text 0 1
+
+2 1 d:href 0 0
+3 3 #text 0 1 http://www.foo.bar/container/C2/R2
+2 15 d:href 0 0
+2 14 #text 0 1
+
+2 1 d:status 0 0
+3 3 #text 0 1 HTTP/1.1 201 Created
+2 15 d:status 0 0
+2 14 #text 0 1
+
+1 15 d:response 0 0
+1 14 #text 0 1
+
+1 1 d:response 0 0
+2 14 #text 0 1
+
+2 1 d:href 0 0
+3 3 #text 0 1 http://www.foo.bar/container/C2
+2 15 d:href 0 0
+2 14 #text 0 1
+
+2 1 d:status 0 0
+3 3 #text 0 1 HTTP/1.1 420 Method Failure
+2 15 d:status 0 0
+2 14 #text 0 1
+
+1 15 d:response 0 0
+1 14 #text 0 1
+
+1 1 d:response 0 0
+2 14 #text 0 1
+
+2 1 d:href 0 0
+3 3 #text 0 1 http://www.foo.bar/othercontainer/C2
+2 15 d:href 0 0
+2 14 #text 0 1
+
+2 1 d:status 0 0
+3 3 #text 0 1 HTTP/1.1 409 Conflict
+2 15 d:status 0 0
+2 14 #text 0 1
+
+1 15 d:response 0 0
+1 14 #text 0 1
+
+0 15 d:multistatus 0 0
diff --git a/result/defattr.xml.rde b/result/defattr.xml.rde
new file mode 100644
index 0000000..9b0a34d
--- /dev/null
+++ b/result/defattr.xml.rde
@@ -0,0 +1,2 @@
+0 10 doc 0 0
+0 1 doc 1 0
diff --git a/result/defattr2.xml.rde b/result/defattr2.xml.rde
new file mode 100644
index 0000000..9b0a34d
--- /dev/null
+++ b/result/defattr2.xml.rde
@@ -0,0 +1,2 @@
+0 10 doc 0 0
+0 1 doc 1 0
diff --git a/result/dia1.rde b/result/dia1.rde
new file mode 100644
index 0000000..3767325
--- /dev/null
+++ b/result/dia1.rde
@@ -0,0 +1,292 @@
+0 1 dia:diagram 0 0
+1 14 #text 0 1
+
+1 1 dia:diagramdata 0 0
+2 14 #text 0 1
+
+2 1 dia:attribute 0 0
+3 14 #text 0 1
+
+3 1 dia:color 1 0
+3 14 #text 0 1
+
+2 15 dia:attribute 0 0
+2 14 #text 0 1
+
+1 15 dia:diagramdata 0 0
+1 14 #text 0 1
+
+1 1 dia:layer 0 0
+2 14 #text 0 1
+
+2 1 dia:object 0 0
+3 14 #text 0 1
+
+3 1 dia:attribute 0 0
+4 14 #text 0 1
+
+4 1 dia:point 1 0
+4 14 #text 0 1
+
+3 15 dia:attribute 0 0
+3 14 #text 0 1
+
+3 1 dia:attribute 0 0
+4 14 #text 0 1
+
+4 1 dia:rectangle 1 0
+4 14 #text 0 1
+
+3 15 dia:attribute 0 0
+3 14 #text 0 1
+
+3 1 dia:attribute 0 0
+4 14 #text 0 1
+
+4 1 dia:point 1 0
+4 14 #text 0 1
+
+4 1 dia:point 1 0
+4 14 #text 0 1
+
+3 15 dia:attribute 0 0
+3 14 #text 0 1
+
+3 1 dia:attribute 0 0
+4 14 #text 0 1
+
+4 1 dia:color 1 0
+4 14 #text 0 1
+
+3 15 dia:attribute 0 0
+3 14 #text 0 1
+
+3 1 dia:attribute 0 0
+4 14 #text 0 1
+
+4 1 dia:real 1 0
+4 14 #text 0 1
+
+3 15 dia:attribute 0 0
+3 14 #text 0 1
+
+3 1 dia:attribute 0 0
+4 14 #text 0 1
+
+4 1 dia:enum 1 0
+4 14 #text 0 1
+
+3 15 dia:attribute 0 0
+3 14 #text 0 1
+
+3 1 dia:attribute 0 0
+4 14 #text 0 1
+
+4 1 dia:enum 1 0
+4 14 #text 0 1
+
+3 15 dia:attribute 0 0
+3 14 #text 0 1
+
+3 1 dia:attribute 0 0
+4 14 #text 0 1
+
+4 1 dia:enum 1 0
+4 14 #text 0 1
+
+3 15 dia:attribute 0 0
+3 14 #text 0 1
+
+3 1 dia:connections 0 0
+4 14 #text 0 1
+
+4 1 dia:connection 1 0
+4 14 #text 0 1
+
+3 15 dia:connections 0 0
+3 14 #text 0 1
+
+2 15 dia:object 0 0
+2 14 #text 0 1
+
+2 1 dia:object 0 0
+3 14 #text 0 1
+
+3 1 dia:attribute 0 0
+4 14 #text 0 1
+
+4 1 dia:point 1 0
+4 14 #text 0 1
+
+3 15 dia:attribute 0 0
+3 14 #text 0 1
+
+3 1 dia:attribute 0 0
+4 14 #text 0 1
+
+4 1 dia:rectangle 1 0
+4 14 #text 0 1
+
+3 15 dia:attribute 0 0
+3 14 #text 0 1
+
+3 1 dia:attribute 0 0
+4 14 #text 0 1
+
+4 1 dia:composite 0 0
+5 14 #text 0 1
+
+5 1 dia:attribute 0 0
+6 14 #text 0 1
+
+6 1 dia:string 1 0
+6 14 #text 0 1
+
+5 15 dia:attribute 0 0
+5 14 #text 0 1
+
+5 1 dia:attribute 0 0
+6 14 #text 0 1
+
+6 1 dia:font 1 0
+6 14 #text 0 1
+
+5 15 dia:attribute 0 0
+5 14 #text 0 1
+
+5 1 dia:attribute 0 0
+6 14 #text 0 1
+
+6 1 dia:real 1 0
+6 14 #text 0 1
+
+5 15 dia:attribute 0 0
+5 14 #text 0 1
+
+5 1 dia:attribute 0 0
+6 14 #text 0 1
+
+6 1 dia:point 1 0
+6 14 #text 0 1
+
+5 15 dia:attribute 0 0
+5 14 #text 0 1
+
+5 1 dia:attribute 0 0
+6 14 #text 0 1
+
+6 1 dia:color 1 0
+6 14 #text 0 1
+
+5 15 dia:attribute 0 0
+5 14 #text 0 1
+
+5 1 dia:attribute 0 0
+6 14 #text 0 1
+
+6 1 dia:enum 1 0
+6 14 #text 0 1
+
+5 15 dia:attribute 0 0
+5 14 #text 0 1
+
+4 15 dia:composite 0 0
+4 14 #text 0 1
+
+3 15 dia:attribute 0 0
+3 14 #text 0 1
+
+2 15 dia:object 0 0
+2 14 #text 0 1
+
+2 1 dia:object 0 0
+3 14 #text 0 1
+
+3 1 dia:attribute 0 0
+4 14 #text 0 1
+
+4 1 dia:point 1 0
+4 14 #text 0 1
+
+3 15 dia:attribute 0 0
+3 14 #text 0 1
+
+3 1 dia:attribute 0 0
+4 14 #text 0 1
+
+4 1 dia:rectangle 1 0
+4 14 #text 0 1
+
+3 15 dia:attribute 0 0
+3 14 #text 0 1
+
+3 1 dia:attribute 0 0
+4 14 #text 0 1
+
+4 1 dia:point 1 0
+4 14 #text 0 1
+
+3 15 dia:attribute 0 0
+3 14 #text 0 1
+
+3 1 dia:attribute 0 0
+4 14 #text 0 1
+
+4 1 dia:real 1 0
+4 14 #text 0 1
+
+3 15 dia:attribute 0 0
+3 14 #text 0 1
+
+3 1 dia:attribute 0 0
+4 14 #text 0 1
+
+4 1 dia:real 1 0
+4 14 #text 0 1
+
+3 15 dia:attribute 0 0
+3 14 #text 0 1
+
+3 1 dia:attribute 0 0
+4 14 #text 0 1
+
+4 1 dia:real 1 0
+4 14 #text 0 1
+
+3 15 dia:attribute 0 0
+3 14 #text 0 1
+
+3 1 dia:attribute 0 0
+4 14 #text 0 1
+
+4 1 dia:color 1 0
+4 14 #text 0 1
+
+3 15 dia:attribute 0 0
+3 14 #text 0 1
+
+3 1 dia:attribute 0 0
+4 14 #text 0 1
+
+4 1 dia:color 1 0
+4 14 #text 0 1
+
+3 15 dia:attribute 0 0
+3 14 #text 0 1
+
+3 1 dia:attribute 0 0
+4 14 #text 0 1
+
+4 1 dia:enum 1 0
+4 14 #text 0 1
+
+3 15 dia:attribute 0 0
+3 14 #text 0 1
+
+2 15 dia:object 0 0
+2 14 #text 0 1
+
+1 15 dia:layer 0 0
+1 14 #text 0 1
+
+0 15 dia:diagram 0 0
diff --git a/result/dia2.rde b/result/dia2.rde
new file mode 100644
index 0000000..3767325
--- /dev/null
+++ b/result/dia2.rde
@@ -0,0 +1,292 @@
+0 1 dia:diagram 0 0
+1 14 #text 0 1
+
+1 1 dia:diagramdata 0 0
+2 14 #text 0 1
+
+2 1 dia:attribute 0 0
+3 14 #text 0 1
+
+3 1 dia:color 1 0
+3 14 #text 0 1
+
+2 15 dia:attribute 0 0
+2 14 #text 0 1
+
+1 15 dia:diagramdata 0 0
+1 14 #text 0 1
+
+1 1 dia:layer 0 0
+2 14 #text 0 1
+
+2 1 dia:object 0 0
+3 14 #text 0 1
+
+3 1 dia:attribute 0 0
+4 14 #text 0 1
+
+4 1 dia:point 1 0
+4 14 #text 0 1
+
+3 15 dia:attribute 0 0
+3 14 #text 0 1
+
+3 1 dia:attribute 0 0
+4 14 #text 0 1
+
+4 1 dia:rectangle 1 0
+4 14 #text 0 1
+
+3 15 dia:attribute 0 0
+3 14 #text 0 1
+
+3 1 dia:attribute 0 0
+4 14 #text 0 1
+
+4 1 dia:point 1 0
+4 14 #text 0 1
+
+4 1 dia:point 1 0
+4 14 #text 0 1
+
+3 15 dia:attribute 0 0
+3 14 #text 0 1
+
+3 1 dia:attribute 0 0
+4 14 #text 0 1
+
+4 1 dia:color 1 0
+4 14 #text 0 1
+
+3 15 dia:attribute 0 0
+3 14 #text 0 1
+
+3 1 dia:attribute 0 0
+4 14 #text 0 1
+
+4 1 dia:real 1 0
+4 14 #text 0 1
+
+3 15 dia:attribute 0 0
+3 14 #text 0 1
+
+3 1 dia:attribute 0 0
+4 14 #text 0 1
+
+4 1 dia:enum 1 0
+4 14 #text 0 1
+
+3 15 dia:attribute 0 0
+3 14 #text 0 1
+
+3 1 dia:attribute 0 0
+4 14 #text 0 1
+
+4 1 dia:enum 1 0
+4 14 #text 0 1
+
+3 15 dia:attribute 0 0
+3 14 #text 0 1
+
+3 1 dia:attribute 0 0
+4 14 #text 0 1
+
+4 1 dia:enum 1 0
+4 14 #text 0 1
+
+3 15 dia:attribute 0 0
+3 14 #text 0 1
+
+3 1 dia:connections 0 0
+4 14 #text 0 1
+
+4 1 dia:connection 1 0
+4 14 #text 0 1
+
+3 15 dia:connections 0 0
+3 14 #text 0 1
+
+2 15 dia:object 0 0
+2 14 #text 0 1
+
+2 1 dia:object 0 0
+3 14 #text 0 1
+
+3 1 dia:attribute 0 0
+4 14 #text 0 1
+
+4 1 dia:point 1 0
+4 14 #text 0 1
+
+3 15 dia:attribute 0 0
+3 14 #text 0 1
+
+3 1 dia:attribute 0 0
+4 14 #text 0 1
+
+4 1 dia:rectangle 1 0
+4 14 #text 0 1
+
+3 15 dia:attribute 0 0
+3 14 #text 0 1
+
+3 1 dia:attribute 0 0
+4 14 #text 0 1
+
+4 1 dia:composite 0 0
+5 14 #text 0 1
+
+5 1 dia:attribute 0 0
+6 14 #text 0 1
+
+6 1 dia:string 1 0
+6 14 #text 0 1
+
+5 15 dia:attribute 0 0
+5 14 #text 0 1
+
+5 1 dia:attribute 0 0
+6 14 #text 0 1
+
+6 1 dia:font 1 0
+6 14 #text 0 1
+
+5 15 dia:attribute 0 0
+5 14 #text 0 1
+
+5 1 dia:attribute 0 0
+6 14 #text 0 1
+
+6 1 dia:real 1 0
+6 14 #text 0 1
+
+5 15 dia:attribute 0 0
+5 14 #text 0 1
+
+5 1 dia:attribute 0 0
+6 14 #text 0 1
+
+6 1 dia:point 1 0
+6 14 #text 0 1
+
+5 15 dia:attribute 0 0
+5 14 #text 0 1
+
+5 1 dia:attribute 0 0
+6 14 #text 0 1
+
+6 1 dia:color 1 0
+6 14 #text 0 1
+
+5 15 dia:attribute 0 0
+5 14 #text 0 1
+
+5 1 dia:attribute 0 0
+6 14 #text 0 1
+
+6 1 dia:enum 1 0
+6 14 #text 0 1
+
+5 15 dia:attribute 0 0
+5 14 #text 0 1
+
+4 15 dia:composite 0 0
+4 14 #text 0 1
+
+3 15 dia:attribute 0 0
+3 14 #text 0 1
+
+2 15 dia:object 0 0
+2 14 #text 0 1
+
+2 1 dia:object 0 0
+3 14 #text 0 1
+
+3 1 dia:attribute 0 0
+4 14 #text 0 1
+
+4 1 dia:point 1 0
+4 14 #text 0 1
+
+3 15 dia:attribute 0 0
+3 14 #text 0 1
+
+3 1 dia:attribute 0 0
+4 14 #text 0 1
+
+4 1 dia:rectangle 1 0
+4 14 #text 0 1
+
+3 15 dia:attribute 0 0
+3 14 #text 0 1
+
+3 1 dia:attribute 0 0
+4 14 #text 0 1
+
+4 1 dia:point 1 0
+4 14 #text 0 1
+
+3 15 dia:attribute 0 0
+3 14 #text 0 1
+
+3 1 dia:attribute 0 0
+4 14 #text 0 1
+
+4 1 dia:real 1 0
+4 14 #text 0 1
+
+3 15 dia:attribute 0 0
+3 14 #text 0 1
+
+3 1 dia:attribute 0 0
+4 14 #text 0 1
+
+4 1 dia:real 1 0
+4 14 #text 0 1
+
+3 15 dia:attribute 0 0
+3 14 #text 0 1
+
+3 1 dia:attribute 0 0
+4 14 #text 0 1
+
+4 1 dia:real 1 0
+4 14 #text 0 1
+
+3 15 dia:attribute 0 0
+3 14 #text 0 1
+
+3 1 dia:attribute 0 0
+4 14 #text 0 1
+
+4 1 dia:color 1 0
+4 14 #text 0 1
+
+3 15 dia:attribute 0 0
+3 14 #text 0 1
+
+3 1 dia:attribute 0 0
+4 14 #text 0 1
+
+4 1 dia:color 1 0
+4 14 #text 0 1
+
+3 15 dia:attribute 0 0
+3 14 #text 0 1
+
+3 1 dia:attribute 0 0
+4 14 #text 0 1
+
+4 1 dia:enum 1 0
+4 14 #text 0 1
+
+3 15 dia:attribute 0 0
+3 14 #text 0 1
+
+2 15 dia:object 0 0
+2 14 #text 0 1
+
+1 15 dia:layer 0 0
+1 14 #text 0 1
+
+0 15 dia:diagram 0 0
diff --git a/result/dtd1.rde b/result/dtd1.rde
new file mode 100644
index 0000000..6bb39b8
--- /dev/null
+++ b/result/dtd1.rde
@@ -0,0 +1,5 @@
+0 10 MEMO 0 0
+0 1 MEMO 0 0
+1 14 #text 0 1
+
+0 15 MEMO 0 0
diff --git a/result/dtd10.rde b/result/dtd10.rde
new file mode 100644
index 0000000..1df24c7
--- /dev/null
+++ b/result/dtd10.rde
@@ -0,0 +1,12 @@
+0 10 doc 0 0
+0 1 doc 0 0
+1 1 b 0 0
+2 3 #text 0 1 This
+1 15 b 0 0
+1 1 c 0 0
+2 3 #text 0 1 is a
+1 15 c 0 0
+1 1 d 0 0
+2 3 #text 0 1 valid document
+1 15 d 0 0
+0 15 doc 0 0
diff --git a/result/dtd11.rde b/result/dtd11.rde
new file mode 100644
index 0000000..9b0a34d
--- /dev/null
+++ b/result/dtd11.rde
@@ -0,0 +1,2 @@
+0 10 doc 0 0
+0 1 doc 1 0
diff --git a/result/dtd12.rde b/result/dtd12.rde
new file mode 100644
index 0000000..c2d4cc0
--- /dev/null
+++ b/result/dtd12.rde
@@ -0,0 +1,4 @@
+0 10 doc 0 0
+0 1 doc 0 0
+1 3 #text 0 1 He said "Yes"
+0 15 doc 0 0
diff --git a/result/dtd13.rde b/result/dtd13.rde
new file mode 100644
index 0000000..f567ccb
--- /dev/null
+++ b/result/dtd13.rde
@@ -0,0 +1,4 @@
+0 8 #comment 0 1 comment before the DTD
+0 10 doc 0 0
+0 8 #comment 0 1 comment after the DTD
+0 1 doc 1 0
diff --git a/result/dtd2.rde b/result/dtd2.rde
new file mode 100644
index 0000000..20cbf2a
--- /dev/null
+++ b/result/dtd2.rde
@@ -0,0 +1,4 @@
+0 10 doc 0 0
+0 1 doc 0 0
+1 3 #text 0 1 This is a valid document !
+0 15 doc 0 0
diff --git a/result/dtd3.rde b/result/dtd3.rde
new file mode 100644
index 0000000..20cbf2a
--- /dev/null
+++ b/result/dtd3.rde
@@ -0,0 +1,4 @@
+0 10 doc 0 0
+0 1 doc 0 0
+1 3 #text 0 1 This is a valid document !
+0 15 doc 0 0
diff --git a/result/dtd4.rde b/result/dtd4.rde
new file mode 100644
index 0000000..9b0a34d
--- /dev/null
+++ b/result/dtd4.rde
@@ -0,0 +1,2 @@
+0 10 doc 0 0
+0 1 doc 1 0
diff --git a/result/dtd5.rde b/result/dtd5.rde
new file mode 100644
index 0000000..66773a3
--- /dev/null
+++ b/result/dtd5.rde
@@ -0,0 +1,11 @@
+0 10 doc 0 0
+0 1 doc 0 0
+1 1 a 0 0
+2 3 #text 0 1 This
+1 15 a 0 0
+1 3 #text 0 1 is a
+1 1 b 0 0
+2 3 #text 0 1 valid
+1 15 b 0 0
+1 3 #text 0 1 document
+0 15 doc 0 0
diff --git a/result/dtd6.rde b/result/dtd6.rde
new file mode 100644
index 0000000..a941e6a
--- /dev/null
+++ b/result/dtd6.rde
@@ -0,0 +1,12 @@
+0 10 doc 0 0
+0 1 doc 0 0
+1 1 a 0 0
+2 3 #text 0 1 This
+1 15 a 0 0
+1 1 b 0 0
+2 3 #text 0 1 is a valid
+1 15 b 0 0
+1 1 a 0 0
+2 3 #text 0 1 document
+1 15 a 0 0
+0 15 doc 0 0
diff --git a/result/dtd7.rde b/result/dtd7.rde
new file mode 100644
index 0000000..a477613
--- /dev/null
+++ b/result/dtd7.rde
@@ -0,0 +1,9 @@
+0 10 doc 0 0
+0 1 doc 0 0
+1 1 a 0 0
+2 3 #text 0 1 This
+1 15 a 0 0
+1 1 b 0 0
+2 3 #text 0 1 is a valid document
+1 15 b 0 0
+0 15 doc 0 0
diff --git a/result/dtd8.rde b/result/dtd8.rde
new file mode 100644
index 0000000..15ee010
--- /dev/null
+++ b/result/dtd8.rde
@@ -0,0 +1,9 @@
+0 10 doc 0 0
+0 1 doc 0 0
+1 1 b 0 0
+2 3 #text 0 1 This
+1 15 b 0 0
+1 1 c 0 0
+2 3 #text 0 1 is a valid document
+1 15 c 0 0
+0 15 doc 0 0
diff --git a/result/dtd9.rde b/result/dtd9.rde
new file mode 100644
index 0000000..2e2b2e9
--- /dev/null
+++ b/result/dtd9.rde
@@ -0,0 +1,9 @@
+0 10 doc 0 0
+0 1 doc 0 0
+1 1 b 0 0
+2 3 #text 0 1 This
+1 15 b 0 0
+1 1 d 0 0
+2 3 #text 0 1 is a valid document
+1 15 d 0 0
+0 15 doc 0 0
diff --git a/result/ent1.rde b/result/ent1.rde
new file mode 100644
index 0000000..d806d24
--- /dev/null
+++ b/result/ent1.rde
@@ -0,0 +1,6 @@
+0 10 EXAMPLE 0 0
+0 1 EXAMPLE 0 0
+1 3 #text 0 1
+ Extensible Markup Language
+
+0 15 EXAMPLE 0 0
diff --git a/result/ent2.rde b/result/ent2.rde
new file mode 100644
index 0000000..7fe3aa8
--- /dev/null
+++ b/result/ent2.rde
@@ -0,0 +1,15 @@
+0 10 EXAMPLE 0 0
+0 1 EXAMPLE 0 0
+1 14 #text 0 1
+
+
+1 1 title 0 0
+2 3 #text 0 1 my title
+1 15 title 0 0
+1 3 #text 0 1
+
+ This text is about XML, the Extensible Markup Language and this is an embedded
+1 1 IMG 1 0
+1 14 #text 0 1
+
+0 15 EXAMPLE 0 0
diff --git a/result/ent3.rde b/result/ent3.rde
new file mode 100644
index 0000000..740442d
--- /dev/null
+++ b/result/ent3.rde
@@ -0,0 +1,6 @@
+0 10 EXAMPLE 0 0
+0 1 EXAMPLE 0 0
+1 3 #text 0 1
+ Test of entities in attributes.
+
+0 15 EXAMPLE 0 0
diff --git a/result/ent4.rde b/result/ent4.rde
new file mode 100644
index 0000000..7b65485
--- /dev/null
+++ b/result/ent4.rde
@@ -0,0 +1,6 @@
+0 10 EXAMPLE 0 0
+0 1 EXAMPLE 0 0
+1 3 #text 0 1
+ Test of &amp; behaviour a&b .
+
+0 15 EXAMPLE 0 0
diff --git a/result/ent5.rde b/result/ent5.rde
new file mode 100644
index 0000000..c570c31
--- /dev/null
+++ b/result/ent5.rde
@@ -0,0 +1,6 @@
+0 1 EXAMPLE 0 0
+1 3 #text 0 1
+ This is an inverted exclamation sign ¡
+ This is a space
+
+0 15 EXAMPLE 0 0
diff --git a/result/ent6.rde b/result/ent6.rde
new file mode 100644
index 0000000..9b0a34d
--- /dev/null
+++ b/result/ent6.rde
@@ -0,0 +1,2 @@
+0 10 doc 0 0
+0 1 doc 1 0
diff --git a/result/ent7.rde b/result/ent7.rde
new file mode 100644
index 0000000..fa74b0f
--- /dev/null
+++ b/result/ent7.rde
@@ -0,0 +1,6 @@
+0 10 item 0 0
+0 1 item 0 0
+1 1 para 0 0
+2 3 #text 0 1 'they called me the hyacinth girl'
+1 15 para 0 0
+0 15 item 0 0
diff --git a/result/ent8.rde b/result/ent8.rde
new file mode 100644
index 0000000..fb87667
--- /dev/null
+++ b/result/ent8.rde
@@ -0,0 +1,20 @@
+0 10 doc 0 0
+0 1 doc 0 0
+1 14 #text 0 1
+
+1 1 Content 0 0
+2 3 #text 0 1 Retenção
+1 15 Content 0 0
+1 14 #text 0 1
+
+1 1 Content 0 0
+2 3 #text 0 1 <>
+1 15 Content 0 0
+1 14 #text 0 1
+
+1 1 Content 0 0
+2 3 #text 0 1 test 1test 2
+1 15 Content 0 0
+1 14 #text 0 1
+
+0 15 doc 0 0
diff --git a/result/ent9 b/result/ent9
new file mode 100644
index 0000000..1ce3089
--- /dev/null
+++ b/result/ent9
@@ -0,0 +1,61 @@
+<?xml version="1.0"?>
+<!DOCTYPE doc [
+<!ENTITY test1 "<a/>,<b/>,<c/>,<d/>">
+]>
+<doc>
+ <ent>&test1;</ent>
+ <p> WE need lot of garbage now to trigger the problem</p>
+ <p> WE need lot of garbage now to trigger the problem</p>
+ <p> WE need lot of garbage now to trigger the problem</p>
+ <p> WE need lot of garbage now to trigger the problem</p>
+ <p> WE need lot of garbage now to trigger the problem</p>
+ <p> WE need lot of garbage now to trigger the problem</p>
+ <p> WE need lot of garbage now to trigger the problem</p>
+ <p> WE need lot of garbage now to trigger the problem</p>
+ <p> WE need lot of garbage now to trigger the problem</p>
+ <p> WE need lot of garbage now to trigger the problem</p>
+ <p> WE need lot of garbage now to trigger the problem</p>
+ <p> WE need lot of garbage now to trigger the problem</p>
+ <p> WE need lot of garbage now to trigger the problem</p>
+ <p> WE need lot of garbage now to trigger the problem</p>
+ <p> WE need lot of garbage now to trigger the problem</p>
+ <p> WE need lot of garbage now to trigger the problem</p>
+ <p> WE need lot of garbage now to trigger the problem</p>
+ <p> WE need lot of garbage now to trigger the problem</p>
+ <p> WE need lot of garbage now to trigger the problem</p>
+ <p> WE need lot of garbage now to trigger the problem</p>
+ <p> WE need lot of garbage now to trigger the problem</p>
+ <p> WE need lot of garbage now to trigger the problem</p>
+ <p> WE need lot of garbage now to trigger the problem</p>
+ <p> WE need lot of garbage now to trigger the problem</p>
+ <p> WE need lot of garbage now to trigger the problem</p>
+ <p> WE need lot of garbage now to trigger the problem</p>
+ <p> WE need lot of garbage now to trigger the problem</p>
+ <p> WE need lot of garbage now to trigger the problem</p>
+ <p> WE need lot of garbage now to trigger the problem</p>
+ <p> WE need lot of garbage now to trigger the problem</p>
+ <p> WE need lot of garbage now to trigger the problem</p>
+ <p> WE need lot of garbage now to trigger the problem</p>
+ <p> WE need lot of garbage now to trigger the problem</p>
+ <p> WE need lot of garbage now to trigger the problem</p>
+ <p> WE need lot of garbage now to trigger the problem</p>
+ <p> WE need lot of garbage now to trigger the problem</p>
+ <p> WE need lot of garbage now to trigger the problem</p>
+ <p> WE need lot of garbage now to trigger the problem</p>
+ <p> WE need lot of garbage now to trigger the problem</p>
+ <p> WE need lot of garbage now to trigger the problem</p>
+ <p> WE need lot of garbage now to trigger the problem</p>
+ <p> WE need lot of garbage now to trigger the problem</p>
+ <p> WE need lot of garbage now to trigger the problem</p>
+ <p> WE need lot of garbage now to trigger the problem</p>
+ <p> WE need lot of garbage now to trigger the problem</p>
+ <p> WE need lot of garbage now to trigger the problem</p>
+ <p> WE need lot of garbage now to trigger the problem</p>
+ <p> WE need lot of garbage now to trigger the problem</p>
+ <p> WE need lot of garbage now to trigger the problem</p>
+ <p> WE need lot of garbage now to trigger the problem</p>
+ <p> WE need lot of garbage now to trigger the problem</p>
+ <p> WE need lot of garbage now to trigger the problem</p>
+ <p> WE need lot of garbage now to trigger the problem</p>
+ <ent>&test1;</ent>
+</doc>
diff --git a/result/ent9.rde b/result/ent9.rde
new file mode 100644
index 0000000..38b9f43
--- /dev/null
+++ b/result/ent9.rde
@@ -0,0 +1,300 @@
+0 10 doc 0 0
+0 1 doc 0 0
+1 14 #text 0 1
+
+1 1 ent 0 0
+2 1 a 0 0
+2 15 a 0 0
+2 3 #text 0 1 ,
+2 1 b 0 0
+2 15 b 0 0
+2 3 #text 0 1 ,
+2 1 c 0 0
+2 15 c 0 0
+2 3 #text 0 1 ,
+2 1 d 0 0
+2 15 d 0 0
+1 15 ent 0 0
+1 14 #text 0 1
+
+1 1 p 0 0
+2 3 #text 0 1 WE need lot of garbage now to trigger the problem
+1 15 p 0 0
+1 14 #text 0 1
+
+1 1 p 0 0
+2 3 #text 0 1 WE need lot of garbage now to trigger the problem
+1 15 p 0 0
+1 14 #text 0 1
+
+1 1 p 0 0
+2 3 #text 0 1 WE need lot of garbage now to trigger the problem
+1 15 p 0 0
+1 14 #text 0 1
+
+1 1 p 0 0
+2 3 #text 0 1 WE need lot of garbage now to trigger the problem
+1 15 p 0 0
+1 14 #text 0 1
+
+1 1 p 0 0
+2 3 #text 0 1 WE need lot of garbage now to trigger the problem
+1 15 p 0 0
+1 14 #text 0 1
+
+1 1 p 0 0
+2 3 #text 0 1 WE need lot of garbage now to trigger the problem
+1 15 p 0 0
+1 14 #text 0 1
+
+1 1 p 0 0
+2 3 #text 0 1 WE need lot of garbage now to trigger the problem
+1 15 p 0 0
+1 14 #text 0 1
+
+1 1 p 0 0
+2 3 #text 0 1 WE need lot of garbage now to trigger the problem
+1 15 p 0 0
+1 14 #text 0 1
+
+1 1 p 0 0
+2 3 #text 0 1 WE need lot of garbage now to trigger the problem
+1 15 p 0 0
+1 14 #text 0 1
+
+1 1 p 0 0
+2 3 #text 0 1 WE need lot of garbage now to trigger the problem
+1 15 p 0 0
+1 14 #text 0 1
+
+1 1 p 0 0
+2 3 #text 0 1 WE need lot of garbage now to trigger the problem
+1 15 p 0 0
+1 14 #text 0 1
+
+1 1 p 0 0
+2 3 #text 0 1 WE need lot of garbage now to trigger the problem
+1 15 p 0 0
+1 14 #text 0 1
+
+1 1 p 0 0
+2 3 #text 0 1 WE need lot of garbage now to trigger the problem
+1 15 p 0 0
+1 14 #text 0 1
+
+1 1 p 0 0
+2 3 #text 0 1 WE need lot of garbage now to trigger the problem
+1 15 p 0 0
+1 14 #text 0 1
+
+1 1 p 0 0
+2 3 #text 0 1 WE need lot of garbage now to trigger the problem
+1 15 p 0 0
+1 14 #text 0 1
+
+1 1 p 0 0
+2 3 #text 0 1 WE need lot of garbage now to trigger the problem
+1 15 p 0 0
+1 14 #text 0 1
+
+1 1 p 0 0
+2 3 #text 0 1 WE need lot of garbage now to trigger the problem
+1 15 p 0 0
+1 14 #text 0 1
+
+1 1 p 0 0
+2 3 #text 0 1 WE need lot of garbage now to trigger the problem
+1 15 p 0 0
+1 14 #text 0 1
+
+1 1 p 0 0
+2 3 #text 0 1 WE need lot of garbage now to trigger the problem
+1 15 p 0 0
+1 14 #text 0 1
+
+1 1 p 0 0
+2 3 #text 0 1 WE need lot of garbage now to trigger the problem
+1 15 p 0 0
+1 14 #text 0 1
+
+1 1 p 0 0
+2 3 #text 0 1 WE need lot of garbage now to trigger the problem
+1 15 p 0 0
+1 14 #text 0 1
+
+1 1 p 0 0
+2 3 #text 0 1 WE need lot of garbage now to trigger the problem
+1 15 p 0 0
+1 14 #text 0 1
+
+1 1 p 0 0
+2 3 #text 0 1 WE need lot of garbage now to trigger the problem
+1 15 p 0 0
+1 14 #text 0 1
+
+1 1 p 0 0
+2 3 #text 0 1 WE need lot of garbage now to trigger the problem
+1 15 p 0 0
+1 14 #text 0 1
+
+1 1 p 0 0
+2 3 #text 0 1 WE need lot of garbage now to trigger the problem
+1 15 p 0 0
+1 14 #text 0 1
+
+1 1 p 0 0
+2 3 #text 0 1 WE need lot of garbage now to trigger the problem
+1 15 p 0 0
+1 14 #text 0 1
+
+1 1 p 0 0
+2 3 #text 0 1 WE need lot of garbage now to trigger the problem
+1 15 p 0 0
+1 14 #text 0 1
+
+1 1 p 0 0
+2 3 #text 0 1 WE need lot of garbage now to trigger the problem
+1 15 p 0 0
+1 14 #text 0 1
+
+1 1 p 0 0
+2 3 #text 0 1 WE need lot of garbage now to trigger the problem
+1 15 p 0 0
+1 14 #text 0 1
+
+1 1 p 0 0
+2 3 #text 0 1 WE need lot of garbage now to trigger the problem
+1 15 p 0 0
+1 14 #text 0 1
+
+1 1 p 0 0
+2 3 #text 0 1 WE need lot of garbage now to trigger the problem
+1 15 p 0 0
+1 14 #text 0 1
+
+1 1 p 0 0
+2 3 #text 0 1 WE need lot of garbage now to trigger the problem
+1 15 p 0 0
+1 14 #text 0 1
+
+1 1 p 0 0
+2 3 #text 0 1 WE need lot of garbage now to trigger the problem
+1 15 p 0 0
+1 14 #text 0 1
+
+1 1 p 0 0
+2 3 #text 0 1 WE need lot of garbage now to trigger the problem
+1 15 p 0 0
+1 14 #text 0 1
+
+1 1 p 0 0
+2 3 #text 0 1 WE need lot of garbage now to trigger the problem
+1 15 p 0 0
+1 14 #text 0 1
+
+1 1 p 0 0
+2 3 #text 0 1 WE need lot of garbage now to trigger the problem
+1 15 p 0 0
+1 14 #text 0 1
+
+1 1 p 0 0
+2 3 #text 0 1 WE need lot of garbage now to trigger the problem
+1 15 p 0 0
+1 14 #text 0 1
+
+1 1 p 0 0
+2 3 #text 0 1 WE need lot of garbage now to trigger the problem
+1 15 p 0 0
+1 14 #text 0 1
+
+1 1 p 0 0
+2 3 #text 0 1 WE need lot of garbage now to trigger the problem
+1 15 p 0 0
+1 14 #text 0 1
+
+1 1 p 0 0
+2 3 #text 0 1 WE need lot of garbage now to trigger the problem
+1 15 p 0 0
+1 14 #text 0 1
+
+1 1 p 0 0
+2 3 #text 0 1 WE need lot of garbage now to trigger the problem
+1 15 p 0 0
+1 14 #text 0 1
+
+1 1 p 0 0
+2 3 #text 0 1 WE need lot of garbage now to trigger the problem
+1 15 p 0 0
+1 14 #text 0 1
+
+1 1 p 0 0
+2 3 #text 0 1 WE need lot of garbage now to trigger the problem
+1 15 p 0 0
+1 14 #text 0 1
+
+1 1 p 0 0
+2 3 #text 0 1 WE need lot of garbage now to trigger the problem
+1 15 p 0 0
+1 14 #text 0 1
+
+1 1 p 0 0
+2 3 #text 0 1 WE need lot of garbage now to trigger the problem
+1 15 p 0 0
+1 14 #text 0 1
+
+1 1 p 0 0
+2 3 #text 0 1 WE need lot of garbage now to trigger the problem
+1 15 p 0 0
+1 14 #text 0 1
+
+1 1 p 0 0
+2 3 #text 0 1 WE need lot of garbage now to trigger the problem
+1 15 p 0 0
+1 14 #text 0 1
+
+1 1 p 0 0
+2 3 #text 0 1 WE need lot of garbage now to trigger the problem
+1 15 p 0 0
+1 14 #text 0 1
+
+1 1 p 0 0
+2 3 #text 0 1 WE need lot of garbage now to trigger the problem
+1 15 p 0 0
+1 14 #text 0 1
+
+1 1 p 0 0
+2 3 #text 0 1 WE need lot of garbage now to trigger the problem
+1 15 p 0 0
+1 14 #text 0 1
+
+1 1 p 0 0
+2 3 #text 0 1 WE need lot of garbage now to trigger the problem
+1 15 p 0 0
+1 14 #text 0 1
+
+1 1 p 0 0
+2 3 #text 0 1 WE need lot of garbage now to trigger the problem
+1 15 p 0 0
+1 14 #text 0 1
+
+1 1 p 0 0
+2 3 #text 0 1 WE need lot of garbage now to trigger the problem
+1 15 p 0 0
+1 14 #text 0 1
+
+1 1 ent 0 0
+2 1 a 0 0
+2 15 a 0 0
+2 3 #text 0 1 ,
+2 1 b 0 0
+2 15 b 0 0
+2 3 #text 0 1 ,
+2 1 c 0 0
+2 15 c 0 0
+2 3 #text 0 1 ,
+2 1 d 0 0
+2 15 d 0 0
+1 15 ent 0 0
+1 14 #text 0 1
+
+0 15 doc 0 0
diff --git a/result/ent9.rdr b/result/ent9.rdr
new file mode 100644
index 0000000..42f8a5f
--- /dev/null
+++ b/result/ent9.rdr
@@ -0,0 +1,280 @@
+0 10 doc 0 0
+0 1 doc 0 0
+1 14 #text 0 1
+
+1 1 ent 0 0
+2 5 test1 0 0
+1 15 ent 0 0
+1 14 #text 0 1
+
+1 1 p 0 0
+2 3 #text 0 1 WE need lot of garbage now to trigger the problem
+1 15 p 0 0
+1 14 #text 0 1
+
+1 1 p 0 0
+2 3 #text 0 1 WE need lot of garbage now to trigger the problem
+1 15 p 0 0
+1 14 #text 0 1
+
+1 1 p 0 0
+2 3 #text 0 1 WE need lot of garbage now to trigger the problem
+1 15 p 0 0
+1 14 #text 0 1
+
+1 1 p 0 0
+2 3 #text 0 1 WE need lot of garbage now to trigger the problem
+1 15 p 0 0
+1 14 #text 0 1
+
+1 1 p 0 0
+2 3 #text 0 1 WE need lot of garbage now to trigger the problem
+1 15 p 0 0
+1 14 #text 0 1
+
+1 1 p 0 0
+2 3 #text 0 1 WE need lot of garbage now to trigger the problem
+1 15 p 0 0
+1 14 #text 0 1
+
+1 1 p 0 0
+2 3 #text 0 1 WE need lot of garbage now to trigger the problem
+1 15 p 0 0
+1 14 #text 0 1
+
+1 1 p 0 0
+2 3 #text 0 1 WE need lot of garbage now to trigger the problem
+1 15 p 0 0
+1 14 #text 0 1
+
+1 1 p 0 0
+2 3 #text 0 1 WE need lot of garbage now to trigger the problem
+1 15 p 0 0
+1 14 #text 0 1
+
+1 1 p 0 0
+2 3 #text 0 1 WE need lot of garbage now to trigger the problem
+1 15 p 0 0
+1 14 #text 0 1
+
+1 1 p 0 0
+2 3 #text 0 1 WE need lot of garbage now to trigger the problem
+1 15 p 0 0
+1 14 #text 0 1
+
+1 1 p 0 0
+2 3 #text 0 1 WE need lot of garbage now to trigger the problem
+1 15 p 0 0
+1 14 #text 0 1
+
+1 1 p 0 0
+2 3 #text 0 1 WE need lot of garbage now to trigger the problem
+1 15 p 0 0
+1 14 #text 0 1
+
+1 1 p 0 0
+2 3 #text 0 1 WE need lot of garbage now to trigger the problem
+1 15 p 0 0
+1 14 #text 0 1
+
+1 1 p 0 0
+2 3 #text 0 1 WE need lot of garbage now to trigger the problem
+1 15 p 0 0
+1 14 #text 0 1
+
+1 1 p 0 0
+2 3 #text 0 1 WE need lot of garbage now to trigger the problem
+1 15 p 0 0
+1 14 #text 0 1
+
+1 1 p 0 0
+2 3 #text 0 1 WE need lot of garbage now to trigger the problem
+1 15 p 0 0
+1 14 #text 0 1
+
+1 1 p 0 0
+2 3 #text 0 1 WE need lot of garbage now to trigger the problem
+1 15 p 0 0
+1 14 #text 0 1
+
+1 1 p 0 0
+2 3 #text 0 1 WE need lot of garbage now to trigger the problem
+1 15 p 0 0
+1 14 #text 0 1
+
+1 1 p 0 0
+2 3 #text 0 1 WE need lot of garbage now to trigger the problem
+1 15 p 0 0
+1 14 #text 0 1
+
+1 1 p 0 0
+2 3 #text 0 1 WE need lot of garbage now to trigger the problem
+1 15 p 0 0
+1 14 #text 0 1
+
+1 1 p 0 0
+2 3 #text 0 1 WE need lot of garbage now to trigger the problem
+1 15 p 0 0
+1 14 #text 0 1
+
+1 1 p 0 0
+2 3 #text 0 1 WE need lot of garbage now to trigger the problem
+1 15 p 0 0
+1 14 #text 0 1
+
+1 1 p 0 0
+2 3 #text 0 1 WE need lot of garbage now to trigger the problem
+1 15 p 0 0
+1 14 #text 0 1
+
+1 1 p 0 0
+2 3 #text 0 1 WE need lot of garbage now to trigger the problem
+1 15 p 0 0
+1 14 #text 0 1
+
+1 1 p 0 0
+2 3 #text 0 1 WE need lot of garbage now to trigger the problem
+1 15 p 0 0
+1 14 #text 0 1
+
+1 1 p 0 0
+2 3 #text 0 1 WE need lot of garbage now to trigger the problem
+1 15 p 0 0
+1 14 #text 0 1
+
+1 1 p 0 0
+2 3 #text 0 1 WE need lot of garbage now to trigger the problem
+1 15 p 0 0
+1 14 #text 0 1
+
+1 1 p 0 0
+2 3 #text 0 1 WE need lot of garbage now to trigger the problem
+1 15 p 0 0
+1 14 #text 0 1
+
+1 1 p 0 0
+2 3 #text 0 1 WE need lot of garbage now to trigger the problem
+1 15 p 0 0
+1 14 #text 0 1
+
+1 1 p 0 0
+2 3 #text 0 1 WE need lot of garbage now to trigger the problem
+1 15 p 0 0
+1 14 #text 0 1
+
+1 1 p 0 0
+2 3 #text 0 1 WE need lot of garbage now to trigger the problem
+1 15 p 0 0
+1 14 #text 0 1
+
+1 1 p 0 0
+2 3 #text 0 1 WE need lot of garbage now to trigger the problem
+1 15 p 0 0
+1 14 #text 0 1
+
+1 1 p 0 0
+2 3 #text 0 1 WE need lot of garbage now to trigger the problem
+1 15 p 0 0
+1 14 #text 0 1
+
+1 1 p 0 0
+2 3 #text 0 1 WE need lot of garbage now to trigger the problem
+1 15 p 0 0
+1 14 #text 0 1
+
+1 1 p 0 0
+2 3 #text 0 1 WE need lot of garbage now to trigger the problem
+1 15 p 0 0
+1 14 #text 0 1
+
+1 1 p 0 0
+2 3 #text 0 1 WE need lot of garbage now to trigger the problem
+1 15 p 0 0
+1 14 #text 0 1
+
+1 1 p 0 0
+2 3 #text 0 1 WE need lot of garbage now to trigger the problem
+1 15 p 0 0
+1 14 #text 0 1
+
+1 1 p 0 0
+2 3 #text 0 1 WE need lot of garbage now to trigger the problem
+1 15 p 0 0
+1 14 #text 0 1
+
+1 1 p 0 0
+2 3 #text 0 1 WE need lot of garbage now to trigger the problem
+1 15 p 0 0
+1 14 #text 0 1
+
+1 1 p 0 0
+2 3 #text 0 1 WE need lot of garbage now to trigger the problem
+1 15 p 0 0
+1 14 #text 0 1
+
+1 1 p 0 0
+2 3 #text 0 1 WE need lot of garbage now to trigger the problem
+1 15 p 0 0
+1 14 #text 0 1
+
+1 1 p 0 0
+2 3 #text 0 1 WE need lot of garbage now to trigger the problem
+1 15 p 0 0
+1 14 #text 0 1
+
+1 1 p 0 0
+2 3 #text 0 1 WE need lot of garbage now to trigger the problem
+1 15 p 0 0
+1 14 #text 0 1
+
+1 1 p 0 0
+2 3 #text 0 1 WE need lot of garbage now to trigger the problem
+1 15 p 0 0
+1 14 #text 0 1
+
+1 1 p 0 0
+2 3 #text 0 1 WE need lot of garbage now to trigger the problem
+1 15 p 0 0
+1 14 #text 0 1
+
+1 1 p 0 0
+2 3 #text 0 1 WE need lot of garbage now to trigger the problem
+1 15 p 0 0
+1 14 #text 0 1
+
+1 1 p 0 0
+2 3 #text 0 1 WE need lot of garbage now to trigger the problem
+1 15 p 0 0
+1 14 #text 0 1
+
+1 1 p 0 0
+2 3 #text 0 1 WE need lot of garbage now to trigger the problem
+1 15 p 0 0
+1 14 #text 0 1
+
+1 1 p 0 0
+2 3 #text 0 1 WE need lot of garbage now to trigger the problem
+1 15 p 0 0
+1 14 #text 0 1
+
+1 1 p 0 0
+2 3 #text 0 1 WE need lot of garbage now to trigger the problem
+1 15 p 0 0
+1 14 #text 0 1
+
+1 1 p 0 0
+2 3 #text 0 1 WE need lot of garbage now to trigger the problem
+1 15 p 0 0
+1 14 #text 0 1
+
+1 1 p 0 0
+2 3 #text 0 1 WE need lot of garbage now to trigger the problem
+1 15 p 0 0
+1 14 #text 0 1
+
+1 1 ent 0 0
+2 5 test1 0 0
+1 15 ent 0 0
+1 14 #text 0 1
+
+0 15 doc 0 0
diff --git a/result/ent9.sax b/result/ent9.sax
new file mode 100644
index 0000000..aca2ad1
--- /dev/null
+++ b/result/ent9.sax
@@ -0,0 +1,310 @@
+SAX.setDocumentLocator()
+SAX.startDocument()
+SAX.internalSubset(doc, , )
+SAX.entityDecl(test1, 1, (null), (null), <a/>,<b/>,<c/>,<d/>)
+SAX.getEntity(test1)
+SAX.externalSubset(doc, , )
+SAX.startElement(doc)
+SAX.characters(
+ , 4)
+SAX.startElement(ent)
+SAX.getEntity(test1)
+SAX.startElement(a)
+SAX.endElement(a)
+SAX.characters(,, 1)
+SAX.startElement(b)
+SAX.endElement(b)
+SAX.characters(,, 1)
+SAX.startElement(c)
+SAX.endElement(c)
+SAX.characters(,, 1)
+SAX.startElement(d)
+SAX.endElement(d)
+SAX.reference(test1)
+SAX.endElement(ent)
+SAX.characters(
+ , 4)
+SAX.startElement(p)
+SAX.characters( WE need lot of garbage now to, 50)
+SAX.endElement(p)
+SAX.characters(
+ , 4)
+SAX.startElement(p)
+SAX.characters( WE need lot of garbage now to, 50)
+SAX.endElement(p)
+SAX.characters(
+ , 4)
+SAX.startElement(p)
+SAX.characters( WE need lot of garbage now to, 50)
+SAX.endElement(p)
+SAX.characters(
+ , 4)
+SAX.startElement(p)
+SAX.characters( WE need lot of garbage now to, 50)
+SAX.endElement(p)
+SAX.characters(
+ , 4)
+SAX.startElement(p)
+SAX.characters( WE need lot of garbage now to, 50)
+SAX.endElement(p)
+SAX.characters(
+ , 4)
+SAX.startElement(p)
+SAX.characters( WE need lot of garbage now to, 50)
+SAX.endElement(p)
+SAX.characters(
+ , 4)
+SAX.startElement(p)
+SAX.characters( WE need lot of garbage now to, 50)
+SAX.endElement(p)
+SAX.characters(
+ , 4)
+SAX.startElement(p)
+SAX.characters( WE need lot of garbage now to, 50)
+SAX.endElement(p)
+SAX.characters(
+ , 4)
+SAX.startElement(p)
+SAX.characters( WE need lot of garbage now to, 50)
+SAX.endElement(p)
+SAX.characters(
+ , 4)
+SAX.startElement(p)
+SAX.characters( WE need lot of garbage now to, 50)
+SAX.endElement(p)
+SAX.characters(
+ , 4)
+SAX.startElement(p)
+SAX.characters( WE need lot of garbage now to, 50)
+SAX.endElement(p)
+SAX.characters(
+ , 4)
+SAX.startElement(p)
+SAX.characters( WE need lot of garbage now to, 50)
+SAX.endElement(p)
+SAX.characters(
+ , 4)
+SAX.startElement(p)
+SAX.characters( WE need lot of garbage now to, 50)
+SAX.endElement(p)
+SAX.characters(
+ , 4)
+SAX.startElement(p)
+SAX.characters( WE need lot of garbage now to, 50)
+SAX.endElement(p)
+SAX.characters(
+ , 4)
+SAX.startElement(p)
+SAX.characters( WE need lot of garbage now to, 50)
+SAX.endElement(p)
+SAX.characters(
+ , 4)
+SAX.startElement(p)
+SAX.characters( WE need lot of garbage now to, 50)
+SAX.endElement(p)
+SAX.characters(
+ , 4)
+SAX.startElement(p)
+SAX.characters( WE need lot of garbage now to, 50)
+SAX.endElement(p)
+SAX.characters(
+ , 4)
+SAX.startElement(p)
+SAX.characters( WE need lot of garbage now to, 50)
+SAX.endElement(p)
+SAX.characters(
+ , 4)
+SAX.startElement(p)
+SAX.characters( WE need lot of garbage now to, 50)
+SAX.endElement(p)
+SAX.characters(
+ , 4)
+SAX.startElement(p)
+SAX.characters( WE need lot of garbage now to, 50)
+SAX.endElement(p)
+SAX.characters(
+ , 4)
+SAX.startElement(p)
+SAX.characters( WE need lot of garbage now to, 50)
+SAX.endElement(p)
+SAX.characters(
+ , 4)
+SAX.startElement(p)
+SAX.characters( WE need lot of garbage now to, 50)
+SAX.endElement(p)
+SAX.characters(
+ , 4)
+SAX.startElement(p)
+SAX.characters( WE need lot of garbage now to, 50)
+SAX.endElement(p)
+SAX.characters(
+ , 4)
+SAX.startElement(p)
+SAX.characters( WE need lot of garbage now to, 50)
+SAX.endElement(p)
+SAX.characters(
+ , 4)
+SAX.startElement(p)
+SAX.characters( WE need lot of garbage now to, 50)
+SAX.endElement(p)
+SAX.characters(
+ , 4)
+SAX.startElement(p)
+SAX.characters( WE need lot of garbage now to, 50)
+SAX.endElement(p)
+SAX.characters(
+ , 4)
+SAX.startElement(p)
+SAX.characters( WE need lot of garbage now to, 50)
+SAX.endElement(p)
+SAX.characters(
+ , 4)
+SAX.startElement(p)
+SAX.characters( WE need lot of garbage now to, 50)
+SAX.endElement(p)
+SAX.characters(
+ , 4)
+SAX.startElement(p)
+SAX.characters( WE need lot of garbage now to, 50)
+SAX.endElement(p)
+SAX.characters(
+ , 4)
+SAX.startElement(p)
+SAX.characters( WE need lot of garbage now to, 50)
+SAX.endElement(p)
+SAX.characters(
+ , 4)
+SAX.startElement(p)
+SAX.characters( WE need lot of garbage now to, 50)
+SAX.endElement(p)
+SAX.characters(
+ , 4)
+SAX.startElement(p)
+SAX.characters( WE need lot of garbage now to, 50)
+SAX.endElement(p)
+SAX.characters(
+ , 4)
+SAX.startElement(p)
+SAX.characters( WE need lot of garbage now to, 50)
+SAX.endElement(p)
+SAX.characters(
+ , 4)
+SAX.startElement(p)
+SAX.characters( WE need lot of garbage now to, 50)
+SAX.endElement(p)
+SAX.characters(
+ , 4)
+SAX.startElement(p)
+SAX.characters( WE need lot of garbage now to, 50)
+SAX.endElement(p)
+SAX.characters(
+ , 4)
+SAX.startElement(p)
+SAX.characters( WE need lot of garbage now to, 50)
+SAX.endElement(p)
+SAX.characters(
+ , 4)
+SAX.startElement(p)
+SAX.characters( WE need lot of garbage now to, 50)
+SAX.endElement(p)
+SAX.characters(
+ , 4)
+SAX.startElement(p)
+SAX.characters( WE need lot of garbage now to, 50)
+SAX.endElement(p)
+SAX.characters(
+ , 4)
+SAX.startElement(p)
+SAX.characters( WE need lot of garbage now to, 50)
+SAX.endElement(p)
+SAX.characters(
+ , 4)
+SAX.startElement(p)
+SAX.characters( WE need lot of garbage now to, 50)
+SAX.endElement(p)
+SAX.characters(
+ , 4)
+SAX.startElement(p)
+SAX.characters( WE need lot of garbage now to, 50)
+SAX.endElement(p)
+SAX.characters(
+ , 4)
+SAX.startElement(p)
+SAX.characters( WE need lot of garbage now to, 50)
+SAX.endElement(p)
+SAX.characters(
+ , 4)
+SAX.startElement(p)
+SAX.characters( WE need lot of garbage now to, 50)
+SAX.endElement(p)
+SAX.characters(
+ , 4)
+SAX.startElement(p)
+SAX.characters( WE need lot of garbage now to, 50)
+SAX.endElement(p)
+SAX.characters(
+ , 4)
+SAX.startElement(p)
+SAX.characters( WE need lot of garbage now to, 50)
+SAX.endElement(p)
+SAX.characters(
+ , 4)
+SAX.startElement(p)
+SAX.characters( WE need lot of garbage now to, 50)
+SAX.endElement(p)
+SAX.characters(
+ , 4)
+SAX.startElement(p)
+SAX.characters( WE need lot of garbage now to, 50)
+SAX.endElement(p)
+SAX.characters(
+ , 4)
+SAX.startElement(p)
+SAX.characters( WE need lot of garbage now to, 50)
+SAX.endElement(p)
+SAX.characters(
+ , 4)
+SAX.startElement(p)
+SAX.characters( WE need lot of garbage now to, 50)
+SAX.endElement(p)
+SAX.characters(
+ , 4)
+SAX.startElement(p)
+SAX.characters( WE need lot of garbage now to, 50)
+SAX.endElement(p)
+SAX.characters(
+ , 4)
+SAX.startElement(p)
+SAX.characters( WE need lot of garbage now to, 50)
+SAX.endElement(p)
+SAX.characters(
+ , 4)
+SAX.startElement(p)
+SAX.characters( WE need lot of garbage now to, 50)
+SAX.endElement(p)
+SAX.characters(
+ , 4)
+SAX.startElement(p)
+SAX.characters( WE need lot of garbage now to, 50)
+SAX.endElement(p)
+SAX.characters(
+ , 4)
+SAX.startElement(ent)
+SAX.getEntity(test1)
+SAX.startElement(a)
+SAX.endElement(a)
+SAX.characters(,, 1)
+SAX.startElement(b)
+SAX.endElement(b)
+SAX.characters(,, 1)
+SAX.startElement(c)
+SAX.endElement(c)
+SAX.characters(,, 1)
+SAX.startElement(d)
+SAX.endElement(d)
+SAX.reference(test1)
+SAX.endElement(ent)
+SAX.characters(
+, 1)
+SAX.endElement(doc)
+SAX.endDocument()
diff --git a/result/errors/attr1.xml.str b/result/errors/attr1.xml.str
index e1e76c0..718d23c 100644
--- a/result/errors/attr1.xml.str
+++ b/result/errors/attr1.xml.str
@@ -1,6 +1,10 @@
./test/errors/attr1.xml:2: parser error : AttValue: ' expected
^
-./test/errors/attr1.xml:2: parser error : Extra content at the end of the document
-<foo foo="oooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooo
- ^
+./test/errors/attr1.xml:2: parser error : attributes construct error
+
+^
+./test/errors/attr1.xml:2: parser error : Couldn't find end of Start Tag foo
+
+^
+./test/errors/attr1.xml : failed to parse
diff --git a/result/errors/attr2.xml.str b/result/errors/attr2.xml.str
index f190a76..13b08a7 100644
--- a/result/errors/attr2.xml.str
+++ b/result/errors/attr2.xml.str
@@ -1,6 +1,10 @@
./test/errors/attr2.xml:2: parser error : AttValue: ' expected
^
-./test/errors/attr2.xml:2: parser error : Extra content at the end of the document
-<foo foo=">ooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooo
- ^
+./test/errors/attr2.xml:2: parser error : attributes construct error
+
+^
+./test/errors/attr2.xml:2: parser error : Couldn't find end of Start Tag foo
+
+^
+./test/errors/attr2.xml : failed to parse
diff --git a/result/errors/charref1.xml b/result/errors/charref1.xml
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/result/errors/charref1.xml
diff --git a/result/errors/charref1.xml.err b/result/errors/charref1.xml.err
new file mode 100644
index 0000000..aa43bcf
--- /dev/null
+++ b/result/errors/charref1.xml.err
@@ -0,0 +1,3 @@
+./test/errors/charref1.xml:1: parser error : xmlParseCharRef: invalid xmlChar value 60
+<bla>&#010100000000000000000000000000000000000000000000000060;</bla>
+ ^
diff --git a/result/errors/charref1.xml.str b/result/errors/charref1.xml.str
new file mode 100644
index 0000000..467b4f6
--- /dev/null
+++ b/result/errors/charref1.xml.str
@@ -0,0 +1,4 @@
+./test/errors/charref1.xml:1: parser error : xmlParseCharRef: invalid xmlChar value 60
+<bla>&#010100000000000000000000000000000000000000000000000060;</bla>
+ ^
+./test/errors/charref1.xml : failed to parse
diff --git a/result/errors/name.xml.str b/result/errors/name.xml.str
index 1c93e20..fd4af59 100644
--- a/result/errors/name.xml.str
+++ b/result/errors/name.xml.str
@@ -1,3 +1,4 @@
-./test/errors/name.xml:3: parser error : Couldn't find end of Start Tag foooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooo line 1
+./test/errors/name.xml:2: parser error : Couldn't find end of Start Tag foooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooo
^
+./test/errors/name.xml : failed to parse
diff --git a/result/errors/name2.xml.str b/result/errors/name2.xml.str
index df61fd2..daee090 100644
--- a/result/errors/name2.xml.str
+++ b/result/errors/name2.xml.str
@@ -1,6 +1,10 @@
./test/errors/name2.xml:2: parser error : Specification mandate value for attribute foooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooo
^
-./test/errors/name2.xml:2: parser error : Extra content at the end of the document
-<foo foooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooo
- ^
+./test/errors/name2.xml:2: parser error : attributes construct error
+
+^
+./test/errors/name2.xml:2: parser error : Couldn't find end of Start Tag foo
+
+^
+./test/errors/name2.xml : failed to parse
diff --git a/result/eve.xml.rde b/result/eve.xml.rde
new file mode 100644
index 0000000..6f08c55
--- /dev/null
+++ b/result/eve.xml.rde
@@ -0,0 +1,5 @@
+0 10 spec 0 0
+0 1 spec 0 0
+1 14 #text 0 1
+
+0 15 spec 0 0
diff --git a/result/intsubset.xml.rde b/result/intsubset.xml.rde
new file mode 100644
index 0000000..7503422
--- /dev/null
+++ b/result/intsubset.xml.rde
@@ -0,0 +1,2 @@
+0 10 root 0 0
+0 1 root 1 0
diff --git a/result/isolat1.rde b/result/isolat1.rde
new file mode 100644
index 0000000..e289b2f
--- /dev/null
+++ b/result/isolat1.rde
@@ -0,0 +1,3 @@
+0 1 très 0 0
+1 3 #text 0 1 là
+0 15 très 0 0
diff --git a/result/isolat2.rde b/result/isolat2.rde
new file mode 100644
index 0000000..524cb3e
--- /dev/null
+++ b/result/isolat2.rde
@@ -0,0 +1,108 @@
+0 1 tst 0 0
+1 3 #text 0 1
+
+ The following table displays the characters in ISO 8859
+ Latin-1, which are printable and unlisted in the ascii
+ manual page.
+
+ Oct Dec Hex Char Description
+ --------------------------------------------------------------------
+ 240 160 A0 NO-BREAK SPACE
+ 241 161 A1 ¡ INVERTED EXCLAMATION MARK
+ 242 162 A2 ¢ CENT SIGN
+ 243 163 A3 £ POUND SIGN
+ 244 164 A4 ¤ CURRENCY SIGN
+ 245 165 A5 ¥ YEN SIGN
+ 246 166 A6 ¦ BROKEN BAR
+ 247 167 A7 § SECTION SIGN
+ 250 168 A8 ¨ DIAERESIS
+ 251 169 A9 © COPYRIGHT SIGN
+ 252 170 AA ª FEMININE ORDINAL INDICATOR
+ 253 171 AB « LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
+ 254 172 AC ¬ NOT SIGN
+ 255 173 AD ­ SOFT HYPHEN
+ 256 174 AE ® REGISTERED SIGN
+ 257 175 AF ¯ MACRON
+ 260 176 B0 ° DEGREE SIGN
+ 261 177 B1 ± PLUS-MINUS SIGN
+ 262 178 B2 ² SUPERSCRIPT TWO
+ 263 179 B3 ³ SUPERSCRIPT THREE
+ 264 180 B4 ´ ACUTE ACCENT
+ 265 181 B5 µ MICRO SIGN
+ 266 182 B6 ¶ PILCROW SIGN
+ 267 183 B7 · MIDDLE DOT
+ 270 184 B8 ¸ CEDILLA
+ 271 185 B9 ¹ SUPERSCRIPT ONE
+ 272 186 BA º MASCULINE ORDINAL INDICATOR
+ 273 187 BB » RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
+ 274 188 BC ¼ VULGAR FRACTION ONE QUARTER
+ 275 189 BD ½ VULGAR FRACTION ONE HALF
+ 276 190 BE ¾ VULGAR FRACTION THREE QUARTERS
+ 277 191 BF ¿ INVERTED QUESTION MARK
+ 300 192 C0 À LATIN CAPITAL LETTER A WITH GRAVE
+ 301 193 C1 Ã LATIN CAPITAL LETTER A WITH ACUTE
+ 302 194 C2 Â LATIN CAPITAL LETTER A WITH CIRCUMFLEX
+ 303 195 C3 Ã LATIN CAPITAL LETTER A WITH TILDE
+ 304 196 C4 Ä LATIN CAPITAL LETTER A WITH DIAERESIS
+ 305 197 C5 Ã… LATIN CAPITAL LETTER A WITH RING ABOVE
+ 306 198 C6 Æ LATIN CAPITAL LETTER AE
+ 307 199 C7 Ç LATIN CAPITAL LETTER C WITH CEDILLA
+ 310 200 C8 È LATIN CAPITAL LETTER E WITH GRAVE
+ 311 201 C9 É LATIN CAPITAL LETTER E WITH ACUTE
+ 312 202 CA Ê LATIN CAPITAL LETTER E WITH CIRCUMFLEX
+ 313 203 CB Ë LATIN CAPITAL LETTER E WITH DIAERESIS
+ 314 204 CC Ì LATIN CAPITAL LETTER I WITH GRAVE
+ 315 205 CD Ã LATIN CAPITAL LETTER I WITH ACUTE
+ 316 206 CE ÃŽ LATIN CAPITAL LETTER I WITH CIRCUMFLEX
+ 317 207 CF Ã LATIN CAPITAL LETTER I WITH DIAERESIS
+ 320 208 D0 Ã LATIN CAPITAL LETTER ETH
+ 321 209 D1 Ñ LATIN CAPITAL LETTER N WITH TILDE
+ 322 210 D2 Ã’ LATIN CAPITAL LETTER O WITH GRAVE
+ 323 211 D3 Ó LATIN CAPITAL LETTER O WITH ACUTE
+ 324 212 D4 Ô LATIN CAPITAL LETTER O WITH CIRCUMFLEX
+ 325 213 D5 Õ LATIN CAPITAL LETTER O WITH TILDE
+ 326 214 D6 Ö LATIN CAPITAL LETTER O WITH DIAERESIS
+ 327 215 D7 × MULTIPLICATION SIGN
+ 330 216 D8 Ø LATIN CAPITAL LETTER O WITH STROKE
+ 331 217 D9 Ù LATIN CAPITAL LETTER U WITH GRAVE
+ 332 218 DA Ú LATIN CAPITAL LETTER U WITH ACUTE
+ 333 219 DB Û LATIN CAPITAL LETTER U WITH CIRCUMFLEX
+ 334 220 DC Ü LATIN CAPITAL LETTER U WITH DIAERESIS
+ 335 221 DD Ã LATIN CAPITAL LETTER Y WITH ACUTE
+ 336 222 DE Þ LATIN CAPITAL LETTER THORN
+ 337 223 DF ß LATIN SMALL LETTER SHARP S
+ 340 224 E0 à LATIN SMALL LETTER A WITH GRAVE
+ 341 225 E1 á LATIN SMALL LETTER A WITH ACUTE
+ 342 226 E2 â LATIN SMALL LETTER A WITH CIRCUMFLEX
+ 343 227 E3 ã LATIN SMALL LETTER A WITH TILDE
+ 344 228 E4 ä LATIN SMALL LETTER A WITH DIAERESIS
+ 345 229 E5 å LATIN SMALL LETTER A WITH RING ABOVE
+ 346 230 E6 æ LATIN SMALL LETTER AE
+ 347 231 E7 ç LATIN SMALL LETTER C WITH CEDILLA
+ 350 232 E8 è LATIN SMALL LETTER E WITH GRAVE
+ 351 233 E9 é LATIN SMALL LETTER E WITH ACUTE
+ 352 234 EA ê LATIN SMALL LETTER E WITH CIRCUMFLEX
+ 353 235 EB ë LATIN SMALL LETTER E WITH DIAERESIS
+ 354 236 EC ì LATIN SMALL LETTER I WITH GRAVE
+ 355 237 ED í LATIN SMALL LETTER I WITH ACUTE
+ 356 238 EE î LATIN SMALL LETTER I WITH CIRCUMFLEX
+ 357 239 EF ï LATIN SMALL LETTER I WITH DIAERESIS
+ 360 240 F0 ð LATIN SMALL LETTER ETH
+ 361 241 F1 ñ LATIN SMALL LETTER N WITH TILDE
+ 362 242 F2 ò LATIN SMALL LETTER O WITH GRAVE
+ 363 243 F3 ó LATIN SMALL LETTER O WITH ACUTE
+ 364 244 F4 ô LATIN SMALL LETTER O WITH CIRCUMFLEX
+ 365 245 F5 õ LATIN SMALL LETTER O WITH TILDE
+ 366 246 F6 ö LATIN SMALL LETTER O WITH DIAERESIS
+ 367 247 F7 ÷ DIVISION SIGN
+ 370 248 F8 ø LATIN SMALL LETTER O WITH STROKE
+ 371 249 F9 ù LATIN SMALL LETTER U WITH GRAVE
+ 372 250 FA ú LATIN SMALL LETTER U WITH ACUTE
+ 373 251 FB û LATIN SMALL LETTER U WITH CIRCUMFLEX
+ 374 252 FC ü LATIN SMALL LETTER U WITH DIAERESIS
+ 375 253 FD ý LATIN SMALL LETTER Y WITH ACUTE
+ 376 254 FE þ LATIN SMALL LETTER THORN
+ 377 255 FF ÿ LATIN SMALL LETTER Y WITH DIAERESIS
+
+
+0 15 tst 0 0
diff --git a/result/isolat3.rde b/result/isolat3.rde
new file mode 100644
index 0000000..1067c0f
--- /dev/null
+++ b/result/isolat3.rde
@@ -0,0 +1,23 @@
+0 1 rec 0 0
+1 14 #text 0 1
+
+1 1 eg 0 0
+2 4 #cdata-section 0 1 <!ENTITY % pub "&#xc9;ditions Gallimard" >
+<!ENTITY rights "All rights reserved" >
+<!ENTITY book "La Peste: Albert Camus,
+&#xA9; 1947 %pub;. &rights;" >
+1 15 eg 0 0
+1 3 #text 0 1
+then the replacement text for the entity "
+1 1 code 0 0
+2 3 #text 0 1 book
+1 15 code 0 0
+1 3 #text 0 1 " is:
+
+1 1 eg 0 0
+2 3 #text 0 1 La Peste: Albert Camus,
+© 1947 Éditions Gallimard. &rights;
+1 15 eg 0 0
+1 14 #text 0 1
+
+0 15 rec 0 0
diff --git a/result/noent/ent9 b/result/noent/ent9
new file mode 100644
index 0000000..b930e4c
--- /dev/null
+++ b/result/noent/ent9
@@ -0,0 +1,61 @@
+<?xml version="1.0"?>
+<!DOCTYPE doc [
+<!ENTITY test1 "<a/>,<b/>,<c/>,<d/>">
+]>
+<doc>
+ <ent><a/>,<b/>,<c/>,<d/></ent>
+ <p> WE need lot of garbage now to trigger the problem</p>
+ <p> WE need lot of garbage now to trigger the problem</p>
+ <p> WE need lot of garbage now to trigger the problem</p>
+ <p> WE need lot of garbage now to trigger the problem</p>
+ <p> WE need lot of garbage now to trigger the problem</p>
+ <p> WE need lot of garbage now to trigger the problem</p>
+ <p> WE need lot of garbage now to trigger the problem</p>
+ <p> WE need lot of garbage now to trigger the problem</p>
+ <p> WE need lot of garbage now to trigger the problem</p>
+ <p> WE need lot of garbage now to trigger the problem</p>
+ <p> WE need lot of garbage now to trigger the problem</p>
+ <p> WE need lot of garbage now to trigger the problem</p>
+ <p> WE need lot of garbage now to trigger the problem</p>
+ <p> WE need lot of garbage now to trigger the problem</p>
+ <p> WE need lot of garbage now to trigger the problem</p>
+ <p> WE need lot of garbage now to trigger the problem</p>
+ <p> WE need lot of garbage now to trigger the problem</p>
+ <p> WE need lot of garbage now to trigger the problem</p>
+ <p> WE need lot of garbage now to trigger the problem</p>
+ <p> WE need lot of garbage now to trigger the problem</p>
+ <p> WE need lot of garbage now to trigger the problem</p>
+ <p> WE need lot of garbage now to trigger the problem</p>
+ <p> WE need lot of garbage now to trigger the problem</p>
+ <p> WE need lot of garbage now to trigger the problem</p>
+ <p> WE need lot of garbage now to trigger the problem</p>
+ <p> WE need lot of garbage now to trigger the problem</p>
+ <p> WE need lot of garbage now to trigger the problem</p>
+ <p> WE need lot of garbage now to trigger the problem</p>
+ <p> WE need lot of garbage now to trigger the problem</p>
+ <p> WE need lot of garbage now to trigger the problem</p>
+ <p> WE need lot of garbage now to trigger the problem</p>
+ <p> WE need lot of garbage now to trigger the problem</p>
+ <p> WE need lot of garbage now to trigger the problem</p>
+ <p> WE need lot of garbage now to trigger the problem</p>
+ <p> WE need lot of garbage now to trigger the problem</p>
+ <p> WE need lot of garbage now to trigger the problem</p>
+ <p> WE need lot of garbage now to trigger the problem</p>
+ <p> WE need lot of garbage now to trigger the problem</p>
+ <p> WE need lot of garbage now to trigger the problem</p>
+ <p> WE need lot of garbage now to trigger the problem</p>
+ <p> WE need lot of garbage now to trigger the problem</p>
+ <p> WE need lot of garbage now to trigger the problem</p>
+ <p> WE need lot of garbage now to trigger the problem</p>
+ <p> WE need lot of garbage now to trigger the problem</p>
+ <p> WE need lot of garbage now to trigger the problem</p>
+ <p> WE need lot of garbage now to trigger the problem</p>
+ <p> WE need lot of garbage now to trigger the problem</p>
+ <p> WE need lot of garbage now to trigger the problem</p>
+ <p> WE need lot of garbage now to trigger the problem</p>
+ <p> WE need lot of garbage now to trigger the problem</p>
+ <p> WE need lot of garbage now to trigger the problem</p>
+ <p> WE need lot of garbage now to trigger the problem</p>
+ <p> WE need lot of garbage now to trigger the problem</p>
+ <ent><a/>,<b/>,<c/>,<d/></ent>
+</doc>
diff --git a/result/ns.rde b/result/ns.rde
new file mode 100644
index 0000000..513d135
--- /dev/null
+++ b/result/ns.rde
@@ -0,0 +1,7 @@
+0 1 dia:diagram 0 0
+1 14 #text 0 1
+
+1 1 dia:diagramdata 1 0
+1 14 #text 0 1
+
+0 15 dia:diagram 0 0
diff --git a/result/ns2.rde b/result/ns2.rde
new file mode 100644
index 0000000..58ca0ac
--- /dev/null
+++ b/result/ns2.rde
@@ -0,0 +1 @@
+0 1 dia:diagram 1 0
diff --git a/result/ns3.rde b/result/ns3.rde
new file mode 100644
index 0000000..58ca0ac
--- /dev/null
+++ b/result/ns3.rde
@@ -0,0 +1 @@
+0 1 dia:diagram 1 0
diff --git a/result/ns4.rde b/result/ns4.rde
new file mode 100644
index 0000000..6f5dda7
--- /dev/null
+++ b/result/ns4.rde
@@ -0,0 +1 @@
+0 1 diagram 1 0
diff --git a/result/p3p.rde b/result/p3p.rde
new file mode 100644
index 0000000..0c01f50
--- /dev/null
+++ b/result/p3p.rde
@@ -0,0 +1,55 @@
+0 1 RDF:RDF 0 0
+1 14 #text 0 1
+
+1 1 PROP 0 0
+2 14 #text 0 1
+
+2 1 USES 0 0
+3 14 #text 0 1
+
+3 1 STATEMENT 0 0
+4 14 #text 0 1
+
+4 1 WITH 0 0
+5 1 PREFIX 0 0
+6 14 #text 0 1
+
+6 1 REF 1 0
+6 14 #text 0 1
+
+6 1 REF 1 0
+6 14 #text 0 1
+
+6 1 REF 1 0
+6 14 #text 0 1
+
+5 15 PREFIX 0 0
+4 15 WITH 0 0
+4 14 #text 0 1
+
+3 15 STATEMENT 0 0
+3 14 #text 0 1
+
+2 15 USES 0 0
+2 14 #text 0 1
+
+2 1 USES 0 0
+3 14 #text 0 1
+
+3 1 STATEMENT 0 0
+4 14 #text 0 1
+
+4 1 REF 1 0
+4 14 #text 0 1
+
+3 15 STATEMENT 0 0
+3 14 #text 0 1
+
+2 15 USES 0 0
+2 14 #text 0 1
+
+2 1 DISCLOSURE 1 0
+2 14 #text 0 1
+
+1 15 PROP 0 0
+0 15 RDF:RDF 0 0
diff --git a/result/pi.xml.rde b/result/pi.xml.rde
new file mode 100644
index 0000000..cdc8a8d
--- /dev/null
+++ b/result/pi.xml.rde
@@ -0,0 +1,13 @@
+0 1 doc 0 0
+1 14 #text 0 1
+
+1 7 document-start 0 1 doc
+1 14 #text 0 1
+
+1 1 empty 1 0
+1 14 #text 0 1
+
+1 7 document-end 0 1 doc
+1 14 #text 0 1
+
+0 15 doc 0 0
diff --git a/result/pi2.xml.rde b/result/pi2.xml.rde
new file mode 100644
index 0000000..52b3b9d
--- /dev/null
+++ b/result/pi2.xml.rde
@@ -0,0 +1,9 @@
+0 7 document-start 0 1 doc
+0 1 doc 0 0
+1 14 #text 0 1
+
+1 1 empty 1 0
+1 14 #text 0 1
+
+0 15 doc 0 0
+0 7 document-end 0 1 doc
diff --git a/result/rdf1.rde b/result/rdf1.rde
new file mode 100644
index 0000000..b34399c
--- /dev/null
+++ b/result/rdf1.rde
@@ -0,0 +1,214 @@
+0 1 RDF:RDF 0 0
+1 14 #text 0 1
+
+1 1 RDF:Description 0 0
+2 14 #text 0 1
+
+2 1 RPM:Name 0 0
+3 3 #text 0 1 rpm
+2 15 RPM:Name 0 0
+2 14 #text 0 1
+
+2 1 RPM:Version 0 0
+3 3 #text 0 1 2.5
+2 15 RPM:Version 0 0
+2 14 #text 0 1
+
+2 1 RPM:Release 0 0
+3 3 #text 0 1 2
+2 15 RPM:Release 0 0
+2 14 #text 0 1
+
+2 1 RPM:Arch 0 0
+3 3 #text 0 1 i386
+2 15 RPM:Arch 0 0
+2 14 #text 0 1
+
+2 1 RPM:Os 0 0
+3 3 #text 0 1 Linux
+2 15 RPM:Os 0 0
+2 14 #text 0 1
+
+2 1 RPM:Distribution 0 0
+3 3 #text 0 1 Manhattan
+2 15 RPM:Distribution 0 0
+2 14 #text 0 1
+
+2 1 RPM:Vendor 0 0
+3 3 #text 0 1 Red Hat Software
+2 15 RPM:Vendor 0 0
+2 14 #text 0 1
+
+2 1 RPM:Packager 0 0
+3 3 #text 0 1 Red Hat Software <bugs@redhat.com>
+2 15 RPM:Packager 0 0
+2 14 #text 0 1
+
+2 1 RPM:Group 0 0
+3 3 #text 0 1 Utilities/System
+2 15 RPM:Group 0 0
+2 14 #text 0 1
+
+2 1 RPM:Summary 0 0
+3 3 #text 0 1 Red Hat Package Manager
+2 15 RPM:Summary 0 0
+2 14 #text 0 1
+
+2 1 RPM:Description 0 0
+3 3 #text 0 1 RPM is a powerful package manager, which can be used to build, install,
+query, verify, update, and uninstall individual software packages. A
+package consists of an archive of files, and package information, including
+name, version, and description.
+2 15 RPM:Description 0 0
+2 14 #text 0 1
+
+2 1 RPM:Copyright 0 0
+3 3 #text 0 1 GPL
+2 15 RPM:Copyright 0 0
+2 14 #text 0 1
+
+2 1 RPM:Changelog 0 0
+3 3 #text 0 1 * Sun May 10 1998 Prospector System <bugs@redhat.com>
+ - translations modified for de, fr, tr
+
+2 15 RPM:Changelog 0 0
+2 14 #text 0 1
+
+2 1 RPM:Sources 0 0
+3 3 #text 0 1 rpm-2.5-2.src.rpm
+2 15 RPM:Sources 0 0
+2 14 #text 0 1
+
+2 1 RPM:SourcesFtp 0 0
+3 3 #text 0 1 ftp://ftp.redhat.com/pub/redhat/redhat-5.1/SRPMS
+2 15 RPM:SourcesFtp 0 0
+2 14 #text 0 1
+
+2 1 RPM:BuildDate 0 0
+3 3 #text 0 1 Sun May 10 14:52:32 1998
+2 15 RPM:BuildDate 0 0
+2 14 #text 0 1
+
+2 1 RPM:Date 0 0
+3 3 #text 0 1 894826352
+2 15 RPM:Date 0 0
+2 14 #text 0 1
+
+2 1 RPM:Size 0 0
+3 3 #text 0 1 850599
+2 15 RPM:Size 0 0
+2 14 #text 0 1
+
+2 1 RPM:BuildHost 0 0
+3 3 #text 0 1 porky.redhat.com
+2 15 RPM:BuildHost 0 0
+2 14 #text 0 1
+
+2 1 RPM:Provides 0 0
+3 14 #text 0 1
+
+3 1 RDF:Bag 0 0
+4 14 #text 0 1
+
+4 1 RPM:Resource 0 0
+5 3 #text 0 1 rpm
+4 15 RPM:Resource 0 0
+4 14 #text 0 1
+
+3 15 RDF:Bag 0 0
+3 14 #text 0 1
+
+2 15 RPM:Provides 0 0
+2 14 #text 0 1
+
+2 1 RPM:Requires 0 0
+3 14 #text 0 1
+
+3 1 RDF:Bag 0 0
+4 14 #text 0 1
+
+4 1 RPM:Resource 0 0
+5 3 #text 0 1 /bin/sh
+4 15 RPM:Resource 0 0
+4 14 #text 0 1
+
+4 1 RPM:Resource 0 0
+5 3 #text 0 1 ld-linux.so.2
+4 15 RPM:Resource 0 0
+4 14 #text 0 1
+
+4 1 RPM:Resource 0 0
+5 3 #text 0 1 libc.so.6
+4 15 RPM:Resource 0 0
+4 14 #text 0 1
+
+4 1 RPM:Resource 0 0
+5 3 #text 0 1 libdb.so.2
+4 15 RPM:Resource 0 0
+4 14 #text 0 1
+
+4 1 RPM:Resource 0 0
+5 3 #text 0 1 libz.so.1
+4 15 RPM:Resource 0 0
+4 14 #text 0 1
+
+4 1 RPM:Resource 0 0
+5 3 #text 0 1 /bin/bash
+4 15 RPM:Resource 0 0
+4 14 #text 0 1
+
+4 1 RPM:Resource 0 0
+5 3 #text 0 1 /bin/sh
+4 15 RPM:Resource 0 0
+4 14 #text 0 1
+
+3 15 RDF:Bag 0 0
+3 14 #text 0 1
+
+2 15 RPM:Requires 0 0
+2 14 #text 0 1
+
+2 1 RPM:Files 0 0
+3 3 #text 0 1 /bin/rpm
+/usr/bin/find-provides
+/usr/bin/find-requires
+/usr/bin/gendiff
+/usr/bin/rpm2cpio
+/usr/doc/rpm-2.5
+/usr/doc/rpm-2.5/CHANGES
+/usr/doc/rpm-2.5/RPM-PGP-KEY
+/usr/doc/rpm-2.5/buildroot
+/usr/doc/rpm-2.5/dependencies
+/usr/doc/rpm-2.5/format
+/usr/doc/rpm-2.5/groups
+/usr/doc/rpm-2.5/macros
+/usr/doc/rpm-2.5/queryformat
+/usr/doc/rpm-2.5/relocatable
+/usr/doc/rpm-2.5/signatures
+/usr/doc/rpm-2.5/spec
+/usr/doc/rpm-2.5/triggers
+/usr/lib/rpmpopt
+/usr/lib/rpmrc
+/usr/man/man8/rpm.8
+/usr/man/man8/rpm2cpio.8
+/usr/share/locale/de/LC_MESSAGES/rpm.mo
+/usr/share/locale/fr/LC_MESSAGES/rpm.mo
+/usr/share/locale/pt-br/LC_MESSAGES/rpm.mo
+/usr/share/locale/sv/LC_MESSAGES/rpm.mo
+/usr/share/locale/tr/LC_MESSAGES/rpm.mo
+/usr/src/redhat
+/usr/src/redhat/BUILD
+/usr/src/redhat/RPMS
+/usr/src/redhat/RPMS/i386
+/usr/src/redhat/RPMS/noarch
+/usr/src/redhat/SOURCES
+/usr/src/redhat/SPECS
+/usr/src/redhat/SRPMS
+
+2 15 RPM:Files 0 0
+2 14 #text 0 1
+
+1 15 RDF:Description 0 0
+1 14 #text 0 1
+
+0 15 RDF:RDF 0 0
diff --git a/result/rdf2.rde b/result/rdf2.rde
new file mode 100644
index 0000000..15e5e97
--- /dev/null
+++ b/result/rdf2.rde
@@ -0,0 +1,2008 @@
+0 1 RDF:RDF 0 0
+1 14 #text 0 1
+
+1 1 RDF:Description 0 0
+2 14 #text 0 1
+
+2 1 RPM:Name 0 0
+3 3 #text 0 1 ncurses4
+2 15 RPM:Name 0 0
+2 14 #text 0 1
+
+2 1 RPM:Version 0 0
+3 3 #text 0 1 4.2
+2 15 RPM:Version 0 0
+2 14 #text 0 1
+
+2 1 RPM:Release 0 0
+3 3 #text 0 1 3
+2 15 RPM:Release 0 0
+2 14 #text 0 1
+
+2 1 RPM:Arch 0 0
+3 3 #text 0 1 i386
+2 15 RPM:Arch 0 0
+2 14 #text 0 1
+
+2 1 RPM:Os 0 0
+3 3 #text 0 1 Linux
+2 15 RPM:Os 0 0
+2 14 #text 0 1
+
+2 1 RPM:Distribution 0 0
+3 3 #text 0 1 DLD
+2 15 RPM:Distribution 0 0
+2 14 #text 0 1
+
+2 1 RPM:Vendor 0 0
+3 3 #text 0 1 delix Computer GmbH
+2 15 RPM:Vendor 0 0
+2 14 #text 0 1
+
+2 1 RPM:Packager 0 0
+3 3 #text 0 1 Till Bubeck <bubeck@delix.de>, Ngo Than <than@delix.de>
+2 15 RPM:Packager 0 0
+2 14 #text 0 1
+
+2 1 RPM:Group 0 0
+3 3 #text 0 1 Libraries
+2 15 RPM:Group 0 0
+2 14 #text 0 1
+
+2 1 RPM:Summary 0 0
+3 3 #text 0 1 Bibliothek zur Ansteuerung von Terminals
+2 15 RPM:Summary 0 0
+2 14 #text 0 1
+
+2 1 RPM:Description 0 0
+3 3 #text 0 1 Diese Library stellt dem Programmierer vom Terminal unabhängige
+Routinen zur Ansteuerung Ihres Bildschirms zur Verfügung, die
+speziell optimiert sind.
+Diese Version ist die 'new curses' (ncurses) Variante und ist der
+anerkannte Ersatz für die klassische Curses-Library, die nicht mehr
+weiterentwickelt wird.
+2 15 RPM:Description 0 0
+2 14 #text 0 1
+
+2 1 RPM:Copyright 0 0
+3 3 #text 0 1 GPL
+2 15 RPM:Copyright 0 0
+2 14 #text 0 1
+
+2 1 RPM:Sources 0 0
+3 3 #text 0 1 ncurses4-4.2-3.src.rpm
+2 15 RPM:Sources 0 0
+2 14 #text 0 1
+
+2 1 RPM:BuildDate 0 0
+3 3 #text 0 1 Tue May 12 19:30:26 1998
+2 15 RPM:BuildDate 0 0
+2 14 #text 0 1
+
+2 1 RPM:Date 0 0
+3 3 #text 0 1 895015826
+2 15 RPM:Date 0 0
+2 14 #text 0 1
+
+2 1 RPM:Size 0 0
+3 3 #text 0 1 1373513
+2 15 RPM:Size 0 0
+2 14 #text 0 1
+
+2 1 RPM:BuildHost 0 0
+3 3 #text 0 1 erdbeere.delix.de
+2 15 RPM:BuildHost 0 0
+2 14 #text 0 1
+
+2 1 RPM:Provides 0 0
+3 14 #text 0 1
+
+3 1 RDF:Bag 0 0
+4 14 #text 0 1
+
+4 1 RPM:Resource 0 0
+5 3 #text 0 1 ncurses4
+4 15 RPM:Resource 0 0
+4 14 #text 0 1
+
+4 1 RPM:Resource 0 0
+5 3 #text 0 1 libpanel.so.4
+4 15 RPM:Resource 0 0
+4 14 #text 0 1
+
+4 1 RPM:Resource 0 0
+5 3 #text 0 1 libncurses.so.4
+4 15 RPM:Resource 0 0
+4 14 #text 0 1
+
+4 1 RPM:Resource 0 0
+5 3 #text 0 1 libmenu.so.4
+4 15 RPM:Resource 0 0
+4 14 #text 0 1
+
+4 1 RPM:Resource 0 0
+5 3 #text 0 1 libform.so.4
+4 15 RPM:Resource 0 0
+4 14 #text 0 1
+
+4 1 RPM:Resource 0 0
+5 3 #text 0 1 ncurses
+4 15 RPM:Resource 0 0
+4 14 #text 0 1
+
+3 15 RDF:Bag 0 0
+3 14 #text 0 1
+
+2 15 RPM:Provides 0 0
+2 14 #text 0 1
+
+2 1 RPM:Files 0 0
+3 3 #text 0 1 /lib/libncurses.so.4
+/lib/libncurses.so.4.2
+/usr/doc/ncurses4-4.2-3
+/usr/doc/ncurses4-4.2-3/ANNOUNCE.gz
+/usr/doc/ncurses4-4.2-3/NEWS.gz
+/usr/doc/ncurses4-4.2-3/README.gz
+/usr/doc/ncurses4-4.2-3/TO-DO.gz
+/usr/lib/libform.so.4
+/usr/lib/libform.so.4.2
+/usr/lib/libmenu.so.4
+/usr/lib/libmenu.so.4.2
+/usr/lib/libpanel.so.4
+/usr/lib/libpanel.so.4.2
+/usr/share/ncurses4
+/usr/share/ncurses4/tabset
+/usr/share/ncurses4/tabset/std
+/usr/share/ncurses4/tabset/stdcrt
+/usr/share/ncurses4/tabset/vt100
+/usr/share/ncurses4/tabset/vt300
+/usr/share/ncurses4/terminfo
+/usr/share/ncurses4/terminfo/1
+/usr/share/ncurses4/terminfo/1/1178
+/usr/share/ncurses4/terminfo/1/1730-lm
+/usr/share/ncurses4/terminfo/2
+/usr/share/ncurses4/terminfo/2/2621
+/usr/share/ncurses4/terminfo/2/2621-wl
+/usr/share/ncurses4/terminfo/2/2621A
+/usr/share/ncurses4/terminfo/2/2621a
+/usr/share/ncurses4/terminfo/3
+/usr/share/ncurses4/terminfo/3/386at
+/usr/share/ncurses4/terminfo/3/3b1
+/usr/share/ncurses4/terminfo/4
+/usr/share/ncurses4/terminfo/4/4025ex
+/usr/share/ncurses4/terminfo/4/4027ex
+/usr/share/ncurses4/terminfo/4/4410-w
+/usr/share/ncurses4/terminfo/5
+/usr/share/ncurses4/terminfo/5/5051
+/usr/share/ncurses4/terminfo/5/5410-w
+/usr/share/ncurses4/terminfo/5/5620
+/usr/share/ncurses4/terminfo/5/5630-24
+/usr/share/ncurses4/terminfo/5/5630DMD-24
+/usr/share/ncurses4/terminfo/6
+/usr/share/ncurses4/terminfo/6/630-lm
+/usr/share/ncurses4/terminfo/6/630MTG-24
+/usr/share/ncurses4/terminfo/7
+/usr/share/ncurses4/terminfo/7/730MTG-24
+/usr/share/ncurses4/terminfo/7/730MTG-41
+/usr/share/ncurses4/terminfo/7/730MTG-41r
+/usr/share/ncurses4/terminfo/7/730MTGr
+/usr/share/ncurses4/terminfo/7/730MTGr-24
+/usr/share/ncurses4/terminfo/8
+/usr/share/ncurses4/terminfo/8/8510
+/usr/share/ncurses4/terminfo/9
+/usr/share/ncurses4/terminfo/9/955-hb
+/usr/share/ncurses4/terminfo/9/955-w
+/usr/share/ncurses4/terminfo/P
+/usr/share/ncurses4/terminfo/P/P12
+/usr/share/ncurses4/terminfo/P/P12-M
+/usr/share/ncurses4/terminfo/P/P12-M-W
+/usr/share/ncurses4/terminfo/P/P12-W
+/usr/share/ncurses4/terminfo/P/P14
+/usr/share/ncurses4/terminfo/P/P14-M
+/usr/share/ncurses4/terminfo/P/P14-M-W
+/usr/share/ncurses4/terminfo/P/P14-W
+/usr/share/ncurses4/terminfo/P/P4
+/usr/share/ncurses4/terminfo/P/P5
+/usr/share/ncurses4/terminfo/P/P7
+/usr/share/ncurses4/terminfo/P/P8
+/usr/share/ncurses4/terminfo/P/P8-W
+/usr/share/ncurses4/terminfo/P/P9
+/usr/share/ncurses4/terminfo/P/P9-8
+/usr/share/ncurses4/terminfo/P/P9-8-W
+/usr/share/ncurses4/terminfo/P/P9-W
+/usr/share/ncurses4/terminfo/X
+/usr/share/ncurses4/terminfo/X/X-hpterm
+/usr/share/ncurses4/terminfo/a
+/usr/share/ncurses4/terminfo/a/a210
+/usr/share/ncurses4/terminfo/a/a80
+/usr/share/ncurses4/terminfo/a/a980
+/usr/share/ncurses4/terminfo/a/aa4080
+/usr/share/ncurses4/terminfo/a/aaa
+/usr/share/ncurses4/terminfo/a/aaa+dec
+/usr/share/ncurses4/terminfo/a/aaa+rv
+/usr/share/ncurses4/terminfo/a/aaa+unk
+/usr/share/ncurses4/terminfo/a/aaa-18
+/usr/share/ncurses4/terminfo/a/aaa-18-rv
+/usr/share/ncurses4/terminfo/a/aaa-20
+/usr/share/ncurses4/terminfo/a/aaa-22
+/usr/share/ncurses4/terminfo/a/aaa-24
+/usr/share/ncurses4/terminfo/a/aaa-24-rv
+/usr/share/ncurses4/terminfo/a/aaa-26
+/usr/share/ncurses4/terminfo/a/aaa-28
+/usr/share/ncurses4/terminfo/a/aaa-30
+/usr/share/ncurses4/terminfo/a/aaa-30-ctxt
+/usr/share/ncurses4/terminfo/a/aaa-30-rv
+/usr/share/ncurses4/terminfo/a/aaa-30-rv-ctxt
+/usr/share/ncurses4/terminfo/a/aaa-30-s
+/usr/share/ncurses4/terminfo/a/aaa-30-s-ctxt
+/usr/share/ncurses4/terminfo/a/aaa-30-s-rv
+/usr/share/ncurses4/terminfo/a/aaa-30-s-rv-ct
+/usr/share/ncurses4/terminfo/a/aaa-36
+/usr/share/ncurses4/terminfo/a/aaa-36-rv
+/usr/share/ncurses4/terminfo/a/aaa-40
+/usr/share/ncurses4/terminfo/a/aaa-40-rv
+/usr/share/ncurses4/terminfo/a/aaa-48
+/usr/share/ncurses4/terminfo/a/aaa-48-rv
+/usr/share/ncurses4/terminfo/a/aaa-60
+/usr/share/ncurses4/terminfo/a/aaa-60-dec-rv
+/usr/share/ncurses4/terminfo/a/aaa-60-rv
+/usr/share/ncurses4/terminfo/a/aaa-60-s
+/usr/share/ncurses4/terminfo/a/aaa-60-s-rv
+/usr/share/ncurses4/terminfo/a/aaa-ctxt
+/usr/share/ncurses4/terminfo/a/aaa-db
+/usr/share/ncurses4/terminfo/a/aaa-rv
+/usr/share/ncurses4/terminfo/a/aaa-rv-ctxt
+/usr/share/ncurses4/terminfo/a/aaa-rv-unk
+/usr/share/ncurses4/terminfo/a/aaa-s
+/usr/share/ncurses4/terminfo/a/aaa-s-ctxt
+/usr/share/ncurses4/terminfo/a/aaa-s-rv
+/usr/share/ncurses4/terminfo/a/aaa-s-rv-ctxt
+/usr/share/ncurses4/terminfo/a/aaa-unk
+/usr/share/ncurses4/terminfo/a/aas1901
+/usr/share/ncurses4/terminfo/a/abm80
+/usr/share/ncurses4/terminfo/a/abm85
+/usr/share/ncurses4/terminfo/a/abm85e
+/usr/share/ncurses4/terminfo/a/abm85h
+/usr/share/ncurses4/terminfo/a/abm85h-old
+/usr/share/ncurses4/terminfo/a/act4
+/usr/share/ncurses4/terminfo/a/act5
+/usr/share/ncurses4/terminfo/a/addrinfo
+/usr/share/ncurses4/terminfo/a/adds980
+/usr/share/ncurses4/terminfo/a/addsviewpoint
+/usr/share/ncurses4/terminfo/a/addsvp60
+/usr/share/ncurses4/terminfo/a/adm+sgr
+/usr/share/ncurses4/terminfo/a/adm1
+/usr/share/ncurses4/terminfo/a/adm11
+/usr/share/ncurses4/terminfo/a/adm1178
+/usr/share/ncurses4/terminfo/a/adm12
+/usr/share/ncurses4/terminfo/a/adm1a
+/usr/share/ncurses4/terminfo/a/adm2
+/usr/share/ncurses4/terminfo/a/adm20
+/usr/share/ncurses4/terminfo/a/adm21
+/usr/share/ncurses4/terminfo/a/adm22
+/usr/share/ncurses4/terminfo/a/adm3
+/usr/share/ncurses4/terminfo/a/adm31
+/usr/share/ncurses4/terminfo/a/adm31-old
+/usr/share/ncurses4/terminfo/a/adm36
+/usr/share/ncurses4/terminfo/a/adm3a
+/usr/share/ncurses4/terminfo/a/adm3a+
+/usr/share/ncurses4/terminfo/a/adm42
+/usr/share/ncurses4/terminfo/a/adm42-ns
+/usr/share/ncurses4/terminfo/a/adm5
+/usr/share/ncurses4/terminfo/a/aepro
+/usr/share/ncurses4/terminfo/a/aixterm-m
+/usr/share/ncurses4/terminfo/a/aixterm-m-old
+/usr/share/ncurses4/terminfo/a/aj
+/usr/share/ncurses4/terminfo/a/aj510
+/usr/share/ncurses4/terminfo/a/aj830
+/usr/share/ncurses4/terminfo/a/aj832
+/usr/share/ncurses4/terminfo/a/alt2
+/usr/share/ncurses4/terminfo/a/alt3
+/usr/share/ncurses4/terminfo/a/alt4
+/usr/share/ncurses4/terminfo/a/alt5
+/usr/share/ncurses4/terminfo/a/alt7
+/usr/share/ncurses4/terminfo/a/alt7pc
+/usr/share/ncurses4/terminfo/a/alto-h19
+/usr/share/ncurses4/terminfo/a/alto-heath
+/usr/share/ncurses4/terminfo/a/altoh19
+/usr/share/ncurses4/terminfo/a/altoheath
+/usr/share/ncurses4/terminfo/a/altos-2
+/usr/share/ncurses4/terminfo/a/altos-3
+/usr/share/ncurses4/terminfo/a/altos-4
+/usr/share/ncurses4/terminfo/a/altos-5
+/usr/share/ncurses4/terminfo/a/altos2
+/usr/share/ncurses4/terminfo/a/altos3
+/usr/share/ncurses4/terminfo/a/altos4
+/usr/share/ncurses4/terminfo/a/altos5
+/usr/share/ncurses4/terminfo/a/altos7
+/usr/share/ncurses4/terminfo/a/altos7pc
+/usr/share/ncurses4/terminfo/a/ambas
+/usr/share/ncurses4/terminfo/a/ambassador
+/usr/share/ncurses4/terminfo/a/amiga
+/usr/share/ncurses4/terminfo/a/amiga-h
+/usr/share/ncurses4/terminfo/a/amp219
+/usr/share/ncurses4/terminfo/a/amp219w
+/usr/share/ncurses4/terminfo/a/ampex-219
+/usr/share/ncurses4/terminfo/a/ampex-219w
+/usr/share/ncurses4/terminfo/a/ampex-232
+/usr/share/ncurses4/terminfo/a/ampex175
+/usr/share/ncurses4/terminfo/a/ampex175-b
+/usr/share/ncurses4/terminfo/a/ampex210
+/usr/share/ncurses4/terminfo/a/ampex219
+/usr/share/ncurses4/terminfo/a/ampex219w
+/usr/share/ncurses4/terminfo/a/ampex232
+/usr/share/ncurses4/terminfo/a/ampex232w
+/usr/share/ncurses4/terminfo/a/ampex80
+/usr/share/ncurses4/terminfo/a/annarbor4080
+/usr/share/ncurses4/terminfo/a/ansi
+/usr/share/ncurses4/terminfo/a/ansi-color-2-emx
+/usr/share/ncurses4/terminfo/a/ansi-color-3-emx
+/usr/share/ncurses4/terminfo/a/ansi-emx
+/usr/share/ncurses4/terminfo/a/ansi-m
+/usr/share/ncurses4/terminfo/a/ansi-mini
+/usr/share/ncurses4/terminfo/a/ansi-mono
+/usr/share/ncurses4/terminfo/a/ansi-nt
+/usr/share/ncurses4/terminfo/a/ansi.sys
+/usr/share/ncurses4/terminfo/a/ansi.sys-old
+/usr/share/ncurses4/terminfo/a/ansi.sysk
+/usr/share/ncurses4/terminfo/a/ansi43m
+/usr/share/ncurses4/terminfo/a/ansi77
+/usr/share/ncurses4/terminfo/a/ansi80x25
+/usr/share/ncurses4/terminfo/a/ansi80x25-mono
+/usr/share/ncurses4/terminfo/a/ansi80x25-raw
+/usr/share/ncurses4/terminfo/a/ansi80x30
+/usr/share/ncurses4/terminfo/a/ansi80x30-mono
+/usr/share/ncurses4/terminfo/a/ansi80x43
+/usr/share/ncurses4/terminfo/a/ansi80x43-mono
+/usr/share/ncurses4/terminfo/a/ansi80x50
+/usr/share/ncurses4/terminfo/a/ansi80x50-mono
+/usr/share/ncurses4/terminfo/a/ansi80x60
+/usr/share/ncurses4/terminfo/a/ansi80x60-mono
+/usr/share/ncurses4/terminfo/a/ansil
+/usr/share/ncurses4/terminfo/a/ansil-mono
+/usr/share/ncurses4/terminfo/a/ansis
+/usr/share/ncurses4/terminfo/a/ansis-mono
+/usr/share/ncurses4/terminfo/a/ansisysk
+/usr/share/ncurses4/terminfo/a/ansiw
+/usr/share/ncurses4/terminfo/a/ap-vm80
+/usr/share/ncurses4/terminfo/a/apl
+/usr/share/ncurses4/terminfo/a/apollo
+/usr/share/ncurses4/terminfo/a/apollo_15P
+/usr/share/ncurses4/terminfo/a/apollo_19L
+/usr/share/ncurses4/terminfo/a/apollo_color
+/usr/share/ncurses4/terminfo/a/apple-80
+/usr/share/ncurses4/terminfo/a/apple-ae
+/usr/share/ncurses4/terminfo/a/apple-soroc
+/usr/share/ncurses4/terminfo/a/apple-uterm
+/usr/share/ncurses4/terminfo/a/apple-uterm-vb
+/usr/share/ncurses4/terminfo/a/apple-videx
+/usr/share/ncurses4/terminfo/a/apple-videx2
+/usr/share/ncurses4/terminfo/a/apple-videx3
+/usr/share/ncurses4/terminfo/a/apple-vm80
+/usr/share/ncurses4/terminfo/a/apple2e
+/usr/share/ncurses4/terminfo/a/apple2e-p
+/usr/share/ncurses4/terminfo/a/apple80p
+/usr/share/ncurses4/terminfo/a/appleII
+/usr/share/ncurses4/terminfo/a/appleIIc
+/usr/share/ncurses4/terminfo/a/appleIIe
+/usr/share/ncurses4/terminfo/a/appleIIgs
+/usr/share/ncurses4/terminfo/a/at386
+/usr/share/ncurses4/terminfo/a/atari
+/usr/share/ncurses4/terminfo/a/att2300
+/usr/share/ncurses4/terminfo/a/att2350
+/usr/share/ncurses4/terminfo/a/att4410
+/usr/share/ncurses4/terminfo/a/att4410-w
+/usr/share/ncurses4/terminfo/a/att4410v1
+/usr/share/ncurses4/terminfo/a/att4410v1-w
+/usr/share/ncurses4/terminfo/a/att4415
+/usr/share/ncurses4/terminfo/a/att4415+nl
+/usr/share/ncurses4/terminfo/a/att4415-nl
+/usr/share/ncurses4/terminfo/a/att4415-rv
+/usr/share/ncurses4/terminfo/a/att4415-rv-nl
+/usr/share/ncurses4/terminfo/a/att4415-w
+/usr/share/ncurses4/terminfo/a/att4415-w-nl
+/usr/share/ncurses4/terminfo/a/att4415-w-rv
+/usr/share/ncurses4/terminfo/a/att4415-w-rv-n
+/usr/share/ncurses4/terminfo/a/att4418
+/usr/share/ncurses4/terminfo/a/att4418-w
+/usr/share/ncurses4/terminfo/a/att4420
+/usr/share/ncurses4/terminfo/a/att4424
+/usr/share/ncurses4/terminfo/a/att4424-1
+/usr/share/ncurses4/terminfo/a/att4424m
+/usr/share/ncurses4/terminfo/a/att4425
+/usr/share/ncurses4/terminfo/a/att4425-nl
+/usr/share/ncurses4/terminfo/a/att4425-w
+/usr/share/ncurses4/terminfo/a/att4426
+/usr/share/ncurses4/terminfo/a/att500
+/usr/share/ncurses4/terminfo/a/att505
+/usr/share/ncurses4/terminfo/a/att505-24
+/usr/share/ncurses4/terminfo/a/att510a
+/usr/share/ncurses4/terminfo/a/att510d
+/usr/share/ncurses4/terminfo/a/att513
+/usr/share/ncurses4/terminfo/a/att5310
+/usr/share/ncurses4/terminfo/a/att5320
+/usr/share/ncurses4/terminfo/a/att5410
+/usr/share/ncurses4/terminfo/a/att5410-w
+/usr/share/ncurses4/terminfo/a/att5410v1
+/usr/share/ncurses4/terminfo/a/att5410v1-w
+/usr/share/ncurses4/terminfo/a/att5418
+/usr/share/ncurses4/terminfo/a/att5418-w
+/usr/share/ncurses4/terminfo/a/att5420
+/usr/share/ncurses4/terminfo/a/att5420+nl
+/usr/share/ncurses4/terminfo/a/att5420-nl
+/usr/share/ncurses4/terminfo/a/att5420-rv
+/usr/share/ncurses4/terminfo/a/att5420-rv-nl
+/usr/share/ncurses4/terminfo/a/att5420-w
+/usr/share/ncurses4/terminfo/a/att5420-w-nl
+/usr/share/ncurses4/terminfo/a/att5420-w-rv
+/usr/share/ncurses4/terminfo/a/att5420-w-rv-n
+/usr/share/ncurses4/terminfo/a/att5420_2
+/usr/share/ncurses4/terminfo/a/att5420_2-w
+/usr/share/ncurses4/terminfo/a/att5425
+/usr/share/ncurses4/terminfo/a/att5425-nl
+/usr/share/ncurses4/terminfo/a/att5425-w
+/usr/share/ncurses4/terminfo/a/att5430
+/usr/share/ncurses4/terminfo/a/att5620
+/usr/share/ncurses4/terminfo/a/att5620-1
+/usr/share/ncurses4/terminfo/a/att5620-24
+/usr/share/ncurses4/terminfo/a/att5620-34
+/usr/share/ncurses4/terminfo/a/att5620-s
+/usr/share/ncurses4/terminfo/a/att605
+/usr/share/ncurses4/terminfo/a/att605-pc
+/usr/share/ncurses4/terminfo/a/att605-w
+/usr/share/ncurses4/terminfo/a/att610
+/usr/share/ncurses4/terminfo/a/att610-103k
+/usr/share/ncurses4/terminfo/a/att610-103k-w
+/usr/share/ncurses4/terminfo/a/att610-w
+/usr/share/ncurses4/terminfo/a/att615
+/usr/share/ncurses4/terminfo/a/att615-103k
+/usr/share/ncurses4/terminfo/a/att615-103k-w
+/usr/share/ncurses4/terminfo/a/att615-w
+/usr/share/ncurses4/terminfo/a/att620
+/usr/share/ncurses4/terminfo/a/att620-103k
+/usr/share/ncurses4/terminfo/a/att620-103k-w
+/usr/share/ncurses4/terminfo/a/att620-w
+/usr/share/ncurses4/terminfo/a/att630
+/usr/share/ncurses4/terminfo/a/att630-24
+/usr/share/ncurses4/terminfo/a/att6386
+/usr/share/ncurses4/terminfo/a/att730
+/usr/share/ncurses4/terminfo/a/att730-24
+/usr/share/ncurses4/terminfo/a/att730-41
+/usr/share/ncurses4/terminfo/a/att7300
+/usr/share/ncurses4/terminfo/a/att730r
+/usr/share/ncurses4/terminfo/a/att730r-24
+/usr/share/ncurses4/terminfo/a/att730r-41
+/usr/share/ncurses4/terminfo/a/avatar
+/usr/share/ncurses4/terminfo/a/avatar0
+/usr/share/ncurses4/terminfo/a/avatar0+
+/usr/share/ncurses4/terminfo/a/avatar1
+/usr/share/ncurses4/terminfo/a/avt
+/usr/share/ncurses4/terminfo/a/avt+s
+/usr/share/ncurses4/terminfo/a/avt-ns
+/usr/share/ncurses4/terminfo/a/avt-rv
+/usr/share/ncurses4/terminfo/a/avt-rv-ns
+/usr/share/ncurses4/terminfo/a/avt-rv-s
+/usr/share/ncurses4/terminfo/a/avt-s
+/usr/share/ncurses4/terminfo/a/avt-w
+/usr/share/ncurses4/terminfo/a/avt-w-ns
+/usr/share/ncurses4/terminfo/a/avt-w-rv
+/usr/share/ncurses4/terminfo/a/avt-w-rv-ns
+/usr/share/ncurses4/terminfo/a/avt-w-rv-s
+/usr/share/ncurses4/terminfo/a/avt-w-s
+/usr/share/ncurses4/terminfo/a/aws
+/usr/share/ncurses4/terminfo/a/awsc
+/usr/share/ncurses4/terminfo/b
+/usr/share/ncurses4/terminfo/b/b-128
+/usr/share/ncurses4/terminfo/b/bantam
+/usr/share/ncurses4/terminfo/b/basic4
+/usr/share/ncurses4/terminfo/b/basis
+/usr/share/ncurses4/terminfo/b/bct510a
+/usr/share/ncurses4/terminfo/b/bct510d
+/usr/share/ncurses4/terminfo/b/beacon
+/usr/share/ncurses4/terminfo/b/bee
+/usr/share/ncurses4/terminfo/b/beehive
+/usr/share/ncurses4/terminfo/b/beehive3
+/usr/share/ncurses4/terminfo/b/beehive4
+/usr/share/ncurses4/terminfo/b/beehiveIIIm
+/usr/share/ncurses4/terminfo/b/beterm
+/usr/share/ncurses4/terminfo/b/bg1.25
+/usr/share/ncurses4/terminfo/b/bg1.25nv
+/usr/share/ncurses4/terminfo/b/bg1.25rv
+/usr/share/ncurses4/terminfo/b/bg2.0
+/usr/share/ncurses4/terminfo/b/bg2.0nv
+/usr/share/ncurses4/terminfo/b/bg2.0rv
+/usr/share/ncurses4/terminfo/b/bg3.10
+/usr/share/ncurses4/terminfo/b/bg3.10nv
+/usr/share/ncurses4/terminfo/b/bg3.10rv
+/usr/share/ncurses4/terminfo/b/bh3m
+/usr/share/ncurses4/terminfo/b/bh4
+/usr/share/ncurses4/terminfo/b/bitgraph
+/usr/share/ncurses4/terminfo/b/blit
+/usr/share/ncurses4/terminfo/b/bobcat
+/usr/share/ncurses4/terminfo/b/bsdos
+/usr/share/ncurses4/terminfo/b/bsdos-bold
+/usr/share/ncurses4/terminfo/c
+/usr/share/ncurses4/terminfo/c/c100
+/usr/share/ncurses4/terminfo/c/c100-1p
+/usr/share/ncurses4/terminfo/c/c100-4p
+/usr/share/ncurses4/terminfo/c/c100-rv
+/usr/share/ncurses4/terminfo/c/c100-rv-4p
+/usr/share/ncurses4/terminfo/c/c104
+/usr/share/ncurses4/terminfo/c/c108
+/usr/share/ncurses4/terminfo/c/c108-4p
+/usr/share/ncurses4/terminfo/c/c108-8p
+/usr/share/ncurses4/terminfo/c/c108-rv
+/usr/share/ncurses4/terminfo/c/c108-rv-4p
+/usr/share/ncurses4/terminfo/c/c108-rv-8p
+/usr/share/ncurses4/terminfo/c/c108-w
+/usr/share/ncurses4/terminfo/c/c108-w-8p
+/usr/share/ncurses4/terminfo/c/c300
+/usr/share/ncurses4/terminfo/c/c301
+/usr/share/ncurses4/terminfo/c/c321
+/usr/share/ncurses4/terminfo/c/ca22851
+/usr/share/ncurses4/terminfo/c/cad68-2
+/usr/share/ncurses4/terminfo/c/cad68-3
+/usr/share/ncurses4/terminfo/c/cbblit
+/usr/share/ncurses4/terminfo/c/cbunix
+/usr/share/ncurses4/terminfo/c/cci
+/usr/share/ncurses4/terminfo/c/cci1
+/usr/share/ncurses4/terminfo/c/cdc456
+/usr/share/ncurses4/terminfo/c/cdc721
+/usr/share/ncurses4/terminfo/c/cdc721-esc
+/usr/share/ncurses4/terminfo/c/cdc721ll
+/usr/share/ncurses4/terminfo/c/cdc752
+/usr/share/ncurses4/terminfo/c/cdc756
+/usr/share/ncurses4/terminfo/c/cg7900
+/usr/share/ncurses4/terminfo/c/cgc2
+/usr/share/ncurses4/terminfo/c/cgc3
+/usr/share/ncurses4/terminfo/c/chromatics
+/usr/share/ncurses4/terminfo/c/ci8510
+/usr/share/ncurses4/terminfo/c/cit-80
+/usr/share/ncurses4/terminfo/c/cit101
+/usr/share/ncurses4/terminfo/c/cit101e
+/usr/share/ncurses4/terminfo/c/cit101e-132
+/usr/share/ncurses4/terminfo/c/cit101e-n
+/usr/share/ncurses4/terminfo/c/cit101e-n132
+/usr/share/ncurses4/terminfo/c/cit101e-rv
+/usr/share/ncurses4/terminfo/c/cit500
+/usr/share/ncurses4/terminfo/c/cit80
+/usr/share/ncurses4/terminfo/c/citc
+/usr/share/ncurses4/terminfo/c/citoh
+/usr/share/ncurses4/terminfo/c/citoh-6lpi
+/usr/share/ncurses4/terminfo/c/citoh-8lpi
+/usr/share/ncurses4/terminfo/c/citoh-comp
+/usr/share/ncurses4/terminfo/c/citoh-elite
+/usr/share/ncurses4/terminfo/c/citoh-pica
+/usr/share/ncurses4/terminfo/c/citoh-prop
+/usr/share/ncurses4/terminfo/c/citoh-ps
+/usr/share/ncurses4/terminfo/c/coco3
+/usr/share/ncurses4/terminfo/c/coherent
+/usr/share/ncurses4/terminfo/c/color_xterm
+/usr/share/ncurses4/terminfo/c/colorscan
+/usr/share/ncurses4/terminfo/c/commodore
+/usr/share/ncurses4/terminfo/c/concept
+/usr/share/ncurses4/terminfo/c/concept-avt
+/usr/share/ncurses4/terminfo/c/concept100
+/usr/share/ncurses4/terminfo/c/concept100-rv
+/usr/share/ncurses4/terminfo/c/concept108
+/usr/share/ncurses4/terminfo/c/concept108-4p
+/usr/share/ncurses4/terminfo/c/concept108-8p
+/usr/share/ncurses4/terminfo/c/concept108-w-8
+/usr/share/ncurses4/terminfo/c/concept108-w8p
+/usr/share/ncurses4/terminfo/c/concept108rv4p
+/usr/share/ncurses4/terminfo/c/cons25
+/usr/share/ncurses4/terminfo/c/cons25-iso-m
+/usr/share/ncurses4/terminfo/c/cons25-iso8859
+/usr/share/ncurses4/terminfo/c/cons25-koi8-r
+/usr/share/ncurses4/terminfo/c/cons25-koi8r-m
+/usr/share/ncurses4/terminfo/c/cons25-m
+/usr/share/ncurses4/terminfo/c/cons25l1
+/usr/share/ncurses4/terminfo/c/cons25l1-m
+/usr/share/ncurses4/terminfo/c/cons25r
+/usr/share/ncurses4/terminfo/c/cons25r-m
+/usr/share/ncurses4/terminfo/c/cons25w
+/usr/share/ncurses4/terminfo/c/cons30
+/usr/share/ncurses4/terminfo/c/cons30-m
+/usr/share/ncurses4/terminfo/c/cons43
+/usr/share/ncurses4/terminfo/c/cons43-m
+/usr/share/ncurses4/terminfo/c/cons50
+/usr/share/ncurses4/terminfo/c/cons50-iso-m
+/usr/share/ncurses4/terminfo/c/cons50-iso8859
+/usr/share/ncurses4/terminfo/c/cons50-koi8r
+/usr/share/ncurses4/terminfo/c/cons50-koi8r-m
+/usr/share/ncurses4/terminfo/c/cons50-m
+/usr/share/ncurses4/terminfo/c/cons50l1
+/usr/share/ncurses4/terminfo/c/cons50l1-m
+/usr/share/ncurses4/terminfo/c/cons50r
+/usr/share/ncurses4/terminfo/c/cons50r-m
+/usr/share/ncurses4/terminfo/c/cons60
+/usr/share/ncurses4/terminfo/c/cons60-iso
+/usr/share/ncurses4/terminfo/c/cons60-iso-m
+/usr/share/ncurses4/terminfo/c/cons60-koi8r
+/usr/share/ncurses4/terminfo/c/cons60-koi8r-m
+/usr/share/ncurses4/terminfo/c/cons60-m
+/usr/share/ncurses4/terminfo/c/cons60l1
+/usr/share/ncurses4/terminfo/c/cons60l1-m
+/usr/share/ncurses4/terminfo/c/cons60r
+/usr/share/ncurses4/terminfo/c/cons60r-m
+/usr/share/ncurses4/terminfo/c/contel300
+/usr/share/ncurses4/terminfo/c/contel301
+/usr/share/ncurses4/terminfo/c/contel320
+/usr/share/ncurses4/terminfo/c/contel321
+/usr/share/ncurses4/terminfo/c/cops
+/usr/share/ncurses4/terminfo/c/cops-10
+/usr/share/ncurses4/terminfo/c/cops10
+/usr/share/ncurses4/terminfo/c/cs10
+/usr/share/ncurses4/terminfo/c/cs10-w
+/usr/share/ncurses4/terminfo/c/ct82
+/usr/share/ncurses4/terminfo/c/ct8500
+/usr/share/ncurses4/terminfo/c/ctrm
+/usr/share/ncurses4/terminfo/c/cx
+/usr/share/ncurses4/terminfo/c/cx100
+/usr/share/ncurses4/terminfo/c/cyb110
+/usr/share/ncurses4/terminfo/c/cyb83
+/usr/share/ncurses4/terminfo/d
+/usr/share/ncurses4/terminfo/d/d132
+/usr/share/ncurses4/terminfo/d/d80
+/usr/share/ncurses4/terminfo/d/d800
+/usr/share/ncurses4/terminfo/d/datagraphix
+/usr/share/ncurses4/terminfo/d/datamedia2500
+/usr/share/ncurses4/terminfo/d/datapoint
+/usr/share/ncurses4/terminfo/d/dataspeed40
+/usr/share/ncurses4/terminfo/d/dd5000
+/usr/share/ncurses4/terminfo/d/ddr
+/usr/share/ncurses4/terminfo/d/ddr3180
+/usr/share/ncurses4/terminfo/d/dec-vt100
+/usr/share/ncurses4/terminfo/d/dec-vt220
+/usr/share/ncurses4/terminfo/d/dec-vt330
+/usr/share/ncurses4/terminfo/d/dec-vt340
+/usr/share/ncurses4/terminfo/d/dec-vt400
+/usr/share/ncurses4/terminfo/d/decpro
+/usr/share/ncurses4/terminfo/d/decwriter
+/usr/share/ncurses4/terminfo/d/delta
+/usr/share/ncurses4/terminfo/d/dg-ansi
+/usr/share/ncurses4/terminfo/d/dg100
+/usr/share/ncurses4/terminfo/d/dg200
+/usr/share/ncurses4/terminfo/d/dg210
+/usr/share/ncurses4/terminfo/d/dg211
+/usr/share/ncurses4/terminfo/d/dg450
+/usr/share/ncurses4/terminfo/d/dg460-ansi
+/usr/share/ncurses4/terminfo/d/dg6053
+/usr/share/ncurses4/terminfo/d/dg6134
+/usr/share/ncurses4/terminfo/d/diablo
+/usr/share/ncurses4/terminfo/d/diablo-lm
+/usr/share/ncurses4/terminfo/d/diablo1620
+/usr/share/ncurses4/terminfo/d/diablo1620-m8
+/usr/share/ncurses4/terminfo/d/diablo1640
+/usr/share/ncurses4/terminfo/d/diablo1640-lm
+/usr/share/ncurses4/terminfo/d/diablo1640-m8
+/usr/share/ncurses4/terminfo/d/diablo1720
+/usr/share/ncurses4/terminfo/d/diablo1730
+/usr/share/ncurses4/terminfo/d/diablo1740
+/usr/share/ncurses4/terminfo/d/diablo1740-lm
+/usr/share/ncurses4/terminfo/d/diablo450
+/usr/share/ncurses4/terminfo/d/diablo630
+/usr/share/ncurses4/terminfo/d/dialogue
+/usr/share/ncurses4/terminfo/d/dialogue80
+/usr/share/ncurses4/terminfo/d/digilog
+/usr/share/ncurses4/terminfo/d/dku7003
+/usr/share/ncurses4/terminfo/d/dku7003-dumb
+/usr/share/ncurses4/terminfo/d/dm1520
+/usr/share/ncurses4/terminfo/d/dm1521
+/usr/share/ncurses4/terminfo/d/dm2500
+/usr/share/ncurses4/terminfo/d/dm3025
+/usr/share/ncurses4/terminfo/d/dm3045
+/usr/share/ncurses4/terminfo/d/dm80
+/usr/share/ncurses4/terminfo/d/dm80w
+/usr/share/ncurses4/terminfo/d/dmchat
+/usr/share/ncurses4/terminfo/d/dmd
+/usr/share/ncurses4/terminfo/d/dmd-24
+/usr/share/ncurses4/terminfo/d/dmd-34
+/usr/share/ncurses4/terminfo/d/dmd1
+/usr/share/ncurses4/terminfo/d/dmdt80
+/usr/share/ncurses4/terminfo/d/dmdt80w
+/usr/share/ncurses4/terminfo/d/dmterm
+/usr/share/ncurses4/terminfo/d/dp3360
+/usr/share/ncurses4/terminfo/d/dp8242
+/usr/share/ncurses4/terminfo/d/ds40
+/usr/share/ncurses4/terminfo/d/ds40-2
+/usr/share/ncurses4/terminfo/d/dt-100
+/usr/share/ncurses4/terminfo/d/dt-100w
+/usr/share/ncurses4/terminfo/d/dt100
+/usr/share/ncurses4/terminfo/d/dt100w
+/usr/share/ncurses4/terminfo/d/dt110
+/usr/share/ncurses4/terminfo/d/dt80
+/usr/share/ncurses4/terminfo/d/dt80-sas
+/usr/share/ncurses4/terminfo/d/dt80w
+/usr/share/ncurses4/terminfo/d/dtc300s
+/usr/share/ncurses4/terminfo/d/dtc382
+/usr/share/ncurses4/terminfo/d/dtterm
+/usr/share/ncurses4/terminfo/d/dumb
+/usr/share/ncurses4/terminfo/d/dw
+/usr/share/ncurses4/terminfo/d/dw1
+/usr/share/ncurses4/terminfo/d/dw2
+/usr/share/ncurses4/terminfo/d/dw3
+/usr/share/ncurses4/terminfo/d/dw4
+/usr/share/ncurses4/terminfo/d/dwk
+/usr/share/ncurses4/terminfo/d/dwk-vt
+/usr/share/ncurses4/terminfo/e
+/usr/share/ncurses4/terminfo/e/ecma+color
+/usr/share/ncurses4/terminfo/e/ecma+sgr
+/usr/share/ncurses4/terminfo/e/emots
+/usr/share/ncurses4/terminfo/e/emu
+/usr/share/ncurses4/terminfo/e/env230
+/usr/share/ncurses4/terminfo/e/envision230
+/usr/share/ncurses4/terminfo/e/ep40
+/usr/share/ncurses4/terminfo/e/ep4000
+/usr/share/ncurses4/terminfo/e/ep4080
+/usr/share/ncurses4/terminfo/e/ep48
+/usr/share/ncurses4/terminfo/e/ergo4000
+/usr/share/ncurses4/terminfo/e/esprit
+/usr/share/ncurses4/terminfo/e/esprit-am
+/usr/share/ncurses4/terminfo/e/eterm
+/usr/share/ncurses4/terminfo/e/ex155
+/usr/share/ncurses4/terminfo/e/excel62
+/usr/share/ncurses4/terminfo/e/excel62-rv
+/usr/share/ncurses4/terminfo/e/excel62-w
+/usr/share/ncurses4/terminfo/e/excel64
+/usr/share/ncurses4/terminfo/e/excel64-rv
+/usr/share/ncurses4/terminfo/e/excel64-w
+/usr/share/ncurses4/terminfo/e/exec80
+/usr/share/ncurses4/terminfo/f
+/usr/share/ncurses4/terminfo/f/f100
+/usr/share/ncurses4/terminfo/f/f100-rv
+/usr/share/ncurses4/terminfo/f/f110
+/usr/share/ncurses4/terminfo/f/f110-14
+/usr/share/ncurses4/terminfo/f/f110-14w
+/usr/share/ncurses4/terminfo/f/f110-w
+/usr/share/ncurses4/terminfo/f/f1720
+/usr/share/ncurses4/terminfo/f/f1720a
+/usr/share/ncurses4/terminfo/f/f200
+/usr/share/ncurses4/terminfo/f/f200-w
+/usr/share/ncurses4/terminfo/f/f200vi
+/usr/share/ncurses4/terminfo/f/f200vi-w
+/usr/share/ncurses4/terminfo/f/falco
+/usr/share/ncurses4/terminfo/f/falco-p
+/usr/share/ncurses4/terminfo/f/fenix
+/usr/share/ncurses4/terminfo/f/fenixw
+/usr/share/ncurses4/terminfo/f/fixterm
+/usr/share/ncurses4/terminfo/f/fortune
+/usr/share/ncurses4/terminfo/f/fos
+/usr/share/ncurses4/terminfo/f/fox
+/usr/share/ncurses4/terminfo/f/freedom
+/usr/share/ncurses4/terminfo/f/freedom-rv
+/usr/share/ncurses4/terminfo/f/freedom100
+/usr/share/ncurses4/terminfo/f/freedom110
+/usr/share/ncurses4/terminfo/f/freedom200
+/usr/share/ncurses4/terminfo/g
+/usr/share/ncurses4/terminfo/g/gator
+/usr/share/ncurses4/terminfo/g/gator-52
+/usr/share/ncurses4/terminfo/g/gator-52t
+/usr/share/ncurses4/terminfo/g/gator-t
+/usr/share/ncurses4/terminfo/g/gigi
+/usr/share/ncurses4/terminfo/g/glasstty
+/usr/share/ncurses4/terminfo/g/go-225
+/usr/share/ncurses4/terminfo/g/go140
+/usr/share/ncurses4/terminfo/g/go140w
+/usr/share/ncurses4/terminfo/g/go225
+/usr/share/ncurses4/terminfo/g/graphos
+/usr/share/ncurses4/terminfo/g/graphos-30
+/usr/share/ncurses4/terminfo/g/gs5430
+/usr/share/ncurses4/terminfo/g/gs5430-22
+/usr/share/ncurses4/terminfo/g/gs5430-24
+/usr/share/ncurses4/terminfo/g/gs6300
+/usr/share/ncurses4/terminfo/g/gsi
+/usr/share/ncurses4/terminfo/g/gt100
+/usr/share/ncurses4/terminfo/g/gt100a
+/usr/share/ncurses4/terminfo/g/gt40
+/usr/share/ncurses4/terminfo/g/gt42
+/usr/share/ncurses4/terminfo/g/guru
+/usr/share/ncurses4/terminfo/g/guru+rv
+/usr/share/ncurses4/terminfo/g/guru+s
+/usr/share/ncurses4/terminfo/g/guru+unk
+/usr/share/ncurses4/terminfo/g/guru-24
+/usr/share/ncurses4/terminfo/g/guru-33
+/usr/share/ncurses4/terminfo/g/guru-33-rv
+/usr/share/ncurses4/terminfo/g/guru-33-s
+/usr/share/ncurses4/terminfo/g/guru-44
+/usr/share/ncurses4/terminfo/g/guru-44-s
+/usr/share/ncurses4/terminfo/g/guru-76
+/usr/share/ncurses4/terminfo/g/guru-76-lp
+/usr/share/ncurses4/terminfo/g/guru-76-s
+/usr/share/ncurses4/terminfo/g/guru-76-w
+/usr/share/ncurses4/terminfo/g/guru-76-w-s
+/usr/share/ncurses4/terminfo/g/guru-76-wm
+/usr/share/ncurses4/terminfo/g/guru-lp
+/usr/share/ncurses4/terminfo/g/guru-nctxt
+/usr/share/ncurses4/terminfo/g/guru-rv
+/usr/share/ncurses4/terminfo/g/guru-s
+/usr/share/ncurses4/terminfo/h
+/usr/share/ncurses4/terminfo/h/h-100
+/usr/share/ncurses4/terminfo/h/h-100bw
+/usr/share/ncurses4/terminfo/h/h100
+/usr/share/ncurses4/terminfo/h/h100bw
+/usr/share/ncurses4/terminfo/h/h19
+/usr/share/ncurses4/terminfo/h/h19-a
+/usr/share/ncurses4/terminfo/h/h19-b
+/usr/share/ncurses4/terminfo/h/h19-bs
+/usr/share/ncurses4/terminfo/h/h19-g
+/usr/share/ncurses4/terminfo/h/h19-smul
+/usr/share/ncurses4/terminfo/h/h19-u
+/usr/share/ncurses4/terminfo/h/h19-us
+/usr/share/ncurses4/terminfo/h/h19a
+/usr/share/ncurses4/terminfo/h/h19g
+/usr/share/ncurses4/terminfo/h/h19k
+/usr/share/ncurses4/terminfo/h/h19kermit
+/usr/share/ncurses4/terminfo/h/h19us
+/usr/share/ncurses4/terminfo/h/h29a-kc-bc
+/usr/share/ncurses4/terminfo/h/h29a-kc-uc
+/usr/share/ncurses4/terminfo/h/h29a-nkc-bc
+/usr/share/ncurses4/terminfo/h/h29a-nkc-uc
+/usr/share/ncurses4/terminfo/h/h80
+/usr/share/ncurses4/terminfo/h/ha8675
+/usr/share/ncurses4/terminfo/h/ha8686
+/usr/share/ncurses4/terminfo/h/hazel
+/usr/share/ncurses4/terminfo/h/hds200
+/usr/share/ncurses4/terminfo/h/he80
+/usr/share/ncurses4/terminfo/h/heath
+/usr/share/ncurses4/terminfo/h/heath-19
+/usr/share/ncurses4/terminfo/h/heath-ansi
+/usr/share/ncurses4/terminfo/h/heathkit
+/usr/share/ncurses4/terminfo/h/heathkit-a
+/usr/share/ncurses4/terminfo/h/hft
+/usr/share/ncurses4/terminfo/h/hft-c
+/usr/share/ncurses4/terminfo/h/hirez100
+/usr/share/ncurses4/terminfo/h/hirez100-w
+/usr/share/ncurses4/terminfo/h/hmod1
+/usr/share/ncurses4/terminfo/h/hp
+/usr/share/ncurses4/terminfo/h/hp+arrows
+/usr/share/ncurses4/terminfo/h/hp+color
+/usr/share/ncurses4/terminfo/h/hp+labels
+/usr/share/ncurses4/terminfo/h/hp+pfk+arrows
+/usr/share/ncurses4/terminfo/h/hp+pfk+cr
+/usr/share/ncurses4/terminfo/h/hp+pfk-cr
+/usr/share/ncurses4/terminfo/h/hp+printer
+/usr/share/ncurses4/terminfo/h/hp110
+/usr/share/ncurses4/terminfo/h/hp150
+/usr/share/ncurses4/terminfo/h/hp2
+/usr/share/ncurses4/terminfo/h/hp236
+/usr/share/ncurses4/terminfo/h/hp2382
+/usr/share/ncurses4/terminfo/h/hp2382a
+/usr/share/ncurses4/terminfo/h/hp2392
+/usr/share/ncurses4/terminfo/h/hp2397
+/usr/share/ncurses4/terminfo/h/hp2397a
+/usr/share/ncurses4/terminfo/h/hp2621
+/usr/share/ncurses4/terminfo/h/hp2621-48
+/usr/share/ncurses4/terminfo/h/hp2621-a
+/usr/share/ncurses4/terminfo/h/hp2621-ba
+/usr/share/ncurses4/terminfo/h/hp2621-fl
+/usr/share/ncurses4/terminfo/h/hp2621-k45
+/usr/share/ncurses4/terminfo/h/hp2621-nl
+/usr/share/ncurses4/terminfo/h/hp2621-nt
+/usr/share/ncurses4/terminfo/h/hp2621-wl
+/usr/share/ncurses4/terminfo/h/hp2621A
+/usr/share/ncurses4/terminfo/h/hp2621a
+/usr/share/ncurses4/terminfo/h/hp2621a-a
+/usr/share/ncurses4/terminfo/h/hp2621b
+/usr/share/ncurses4/terminfo/h/hp2621b-kx
+/usr/share/ncurses4/terminfo/h/hp2621b-kx-p
+/usr/share/ncurses4/terminfo/h/hp2621b-p
+/usr/share/ncurses4/terminfo/h/hp2621k45
+/usr/share/ncurses4/terminfo/h/hp2621p
+/usr/share/ncurses4/terminfo/h/hp2621p-a
+/usr/share/ncurses4/terminfo/h/hp2622
+/usr/share/ncurses4/terminfo/h/hp2622a
+/usr/share/ncurses4/terminfo/h/hp2623
+/usr/share/ncurses4/terminfo/h/hp2623a
+/usr/share/ncurses4/terminfo/h/hp2624
+/usr/share/ncurses4/terminfo/h/hp2624-10p
+/usr/share/ncurses4/terminfo/h/hp2624a
+/usr/share/ncurses4/terminfo/h/hp2624a-10p
+/usr/share/ncurses4/terminfo/h/hp2624b
+/usr/share/ncurses4/terminfo/h/hp2624b-10p
+/usr/share/ncurses4/terminfo/h/hp2624b-10p-p
+/usr/share/ncurses4/terminfo/h/hp2624b-4p
+/usr/share/ncurses4/terminfo/h/hp2624b-4p-p
+/usr/share/ncurses4/terminfo/h/hp2624b-p
+/usr/share/ncurses4/terminfo/h/hp2626
+/usr/share/ncurses4/terminfo/h/hp2626-12
+/usr/share/ncurses4/terminfo/h/hp2626-12-s
+/usr/share/ncurses4/terminfo/h/hp2626-12x40
+/usr/share/ncurses4/terminfo/h/hp2626-ns
+/usr/share/ncurses4/terminfo/h/hp2626-s
+/usr/share/ncurses4/terminfo/h/hp2626-x40
+/usr/share/ncurses4/terminfo/h/hp2626a
+/usr/share/ncurses4/terminfo/h/hp2626p
+/usr/share/ncurses4/terminfo/h/hp2627a
+/usr/share/ncurses4/terminfo/h/hp2627a-rev
+/usr/share/ncurses4/terminfo/h/hp2627c
+/usr/share/ncurses4/terminfo/h/hp262x
+/usr/share/ncurses4/terminfo/h/hp2640a
+/usr/share/ncurses4/terminfo/h/hp2640b
+/usr/share/ncurses4/terminfo/h/hp2641a
+/usr/share/ncurses4/terminfo/h/hp2644a
+/usr/share/ncurses4/terminfo/h/hp2645
+/usr/share/ncurses4/terminfo/h/hp2645a
+/usr/share/ncurses4/terminfo/h/hp2647a
+/usr/share/ncurses4/terminfo/h/hp2648
+/usr/share/ncurses4/terminfo/h/hp2648a
+/usr/share/ncurses4/terminfo/h/hp300h
+/usr/share/ncurses4/terminfo/h/hp45
+/usr/share/ncurses4/terminfo/h/hp700
+/usr/share/ncurses4/terminfo/h/hp700-wy
+/usr/share/ncurses4/terminfo/h/hp70092
+/usr/share/ncurses4/terminfo/h/hp70092A
+/usr/share/ncurses4/terminfo/h/hp70092a
+/usr/share/ncurses4/terminfo/h/hp9837
+/usr/share/ncurses4/terminfo/h/hp9845
+/usr/share/ncurses4/terminfo/h/hp98550
+/usr/share/ncurses4/terminfo/h/hp98550a
+/usr/share/ncurses4/terminfo/h/hp98720
+/usr/share/ncurses4/terminfo/h/hp98721
+/usr/share/ncurses4/terminfo/h/hpansi
+/usr/share/ncurses4/terminfo/h/hpex
+/usr/share/ncurses4/terminfo/h/hpex2
+/usr/share/ncurses4/terminfo/h/hpgeneric
+/usr/share/ncurses4/terminfo/h/hpsub
+/usr/share/ncurses4/terminfo/h/hpterm
+/usr/share/ncurses4/terminfo/h/htx11
+/usr/share/ncurses4/terminfo/h/hz1000
+/usr/share/ncurses4/terminfo/h/hz1420
+/usr/share/ncurses4/terminfo/h/hz1500
+/usr/share/ncurses4/terminfo/h/hz1510
+/usr/share/ncurses4/terminfo/h/hz1520
+/usr/share/ncurses4/terminfo/h/hz1520-noesc
+/usr/share/ncurses4/terminfo/h/hz1552
+/usr/share/ncurses4/terminfo/h/hz1552-rv
+/usr/share/ncurses4/terminfo/h/hz2000
+/usr/share/ncurses4/terminfo/i
+/usr/share/ncurses4/terminfo/i/i100
+/usr/share/ncurses4/terminfo/i/i3101
+/usr/share/ncurses4/terminfo/i/i3151
+/usr/share/ncurses4/terminfo/i/i3164
+/usr/share/ncurses4/terminfo/i/i400
+/usr/share/ncurses4/terminfo/i/ibcs2
+/usr/share/ncurses4/terminfo/i/ibm-apl
+/usr/share/ncurses4/terminfo/i/ibm-pc
+/usr/share/ncurses4/terminfo/i/ibm-system1
+/usr/share/ncurses4/terminfo/i/ibm3101
+/usr/share/ncurses4/terminfo/i/ibm3151
+/usr/share/ncurses4/terminfo/i/ibm3161
+/usr/share/ncurses4/terminfo/i/ibm3163
+/usr/share/ncurses4/terminfo/i/ibm3164
+/usr/share/ncurses4/terminfo/i/ibm327x
+/usr/share/ncurses4/terminfo/i/ibm5051
+/usr/share/ncurses4/terminfo/i/ibm5081
+/usr/share/ncurses4/terminfo/i/ibm5081-c
+/usr/share/ncurses4/terminfo/i/ibm5151
+/usr/share/ncurses4/terminfo/i/ibm5154
+/usr/share/ncurses4/terminfo/i/ibm5154-c
+/usr/share/ncurses4/terminfo/i/ibm6153
+/usr/share/ncurses4/terminfo/i/ibm6154
+/usr/share/ncurses4/terminfo/i/ibm6154-c
+/usr/share/ncurses4/terminfo/i/ibm6155
+/usr/share/ncurses4/terminfo/i/ibm8512
+/usr/share/ncurses4/terminfo/i/ibm8513
+/usr/share/ncurses4/terminfo/i/ibm8514
+/usr/share/ncurses4/terminfo/i/ibm8514-c
+/usr/share/ncurses4/terminfo/i/ibmaed
+/usr/share/ncurses4/terminfo/i/ibmapa16
+/usr/share/ncurses4/terminfo/i/ibmapa8
+/usr/share/ncurses4/terminfo/i/ibmapa8c
+/usr/share/ncurses4/terminfo/i/ibmapa8c-c
+/usr/share/ncurses4/terminfo/i/ibmega
+/usr/share/ncurses4/terminfo/i/ibmega-c
+/usr/share/ncurses4/terminfo/i/ibmmono
+/usr/share/ncurses4/terminfo/i/ibmmpel
+/usr/share/ncurses4/terminfo/i/ibmmpel-c
+/usr/share/ncurses4/terminfo/i/ibmpc
+/usr/share/ncurses4/terminfo/i/ibmpc3
+/usr/share/ncurses4/terminfo/i/ibmpc3r
+/usr/share/ncurses4/terminfo/i/ibmpc3r-mono
+/usr/share/ncurses4/terminfo/i/ibmpcx
+/usr/share/ncurses4/terminfo/i/ibmvga
+/usr/share/ncurses4/terminfo/i/ibmvga-c
+/usr/share/ncurses4/terminfo/i/ibmx
+/usr/share/ncurses4/terminfo/i/ifmr
+/usr/share/ncurses4/terminfo/i/ims-ansi
+/usr/share/ncurses4/terminfo/i/ims950
+/usr/share/ncurses4/terminfo/i/ims950-b
+/usr/share/ncurses4/terminfo/i/ims950-rv
+/usr/share/ncurses4/terminfo/i/infoton
+/usr/share/ncurses4/terminfo/i/intertec
+/usr/share/ncurses4/terminfo/i/intertube
+/usr/share/ncurses4/terminfo/i/intertube2
+/usr/share/ncurses4/terminfo/i/intext
+/usr/share/ncurses4/terminfo/i/intext2
+/usr/share/ncurses4/terminfo/i/intextii
+/usr/share/ncurses4/terminfo/i/ips
+/usr/share/ncurses4/terminfo/i/ipsi
+/usr/share/ncurses4/terminfo/i/iq120
+/usr/share/ncurses4/terminfo/i/iq140
+/usr/share/ncurses4/terminfo/i/iris-ansi
+/usr/share/ncurses4/terminfo/i/iris-ansi-ap
+/usr/share/ncurses4/terminfo/i/iris-color
+/usr/share/ncurses4/terminfo/i/iris40
+/usr/share/ncurses4/terminfo/j
+/usr/share/ncurses4/terminfo/j/jaixterm-m
+/usr/share/ncurses4/terminfo/j/jerq
+/usr/share/ncurses4/terminfo/k
+/usr/share/ncurses4/terminfo/k/k45
+/usr/share/ncurses4/terminfo/k/kaypro
+/usr/share/ncurses4/terminfo/k/kaypro2
+/usr/share/ncurses4/terminfo/k/kermit
+/usr/share/ncurses4/terminfo/k/kermit-am
+/usr/share/ncurses4/terminfo/k/klone+acs
+/usr/share/ncurses4/terminfo/k/klone+color
+/usr/share/ncurses4/terminfo/k/klone+koi8acs
+/usr/share/ncurses4/terminfo/k/klone+sgr
+/usr/share/ncurses4/terminfo/k/klone+sgr-dumb
+/usr/share/ncurses4/terminfo/k/kt7
+/usr/share/ncurses4/terminfo/k/kt7ix
+/usr/share/ncurses4/terminfo/k/kterm
+/usr/share/ncurses4/terminfo/k/ktm
+/usr/share/ncurses4/terminfo/l
+/usr/share/ncurses4/terminfo/l/la120
+/usr/share/ncurses4/terminfo/l/layer
+/usr/share/ncurses4/terminfo/l/linux
+/usr/share/ncurses4/terminfo/l/linux-c
+/usr/share/ncurses4/terminfo/l/linux-c-nc
+/usr/share/ncurses4/terminfo/l/linux-koi8
+/usr/share/ncurses4/terminfo/l/linux-koi8r
+/usr/share/ncurses4/terminfo/l/linux-m
+/usr/share/ncurses4/terminfo/l/linux-nic
+/usr/share/ncurses4/terminfo/l/lisa
+/usr/share/ncurses4/terminfo/l/lisaterm
+/usr/share/ncurses4/terminfo/l/lisaterm-w
+/usr/share/ncurses4/terminfo/l/liswb
+/usr/share/ncurses4/terminfo/l/ln03
+/usr/share/ncurses4/terminfo/l/ln03-w
+/usr/share/ncurses4/terminfo/l/lpr
+/usr/share/ncurses4/terminfo/l/luna
+/usr/share/ncurses4/terminfo/l/luna68k
+/usr/share/ncurses4/terminfo/m
+/usr/share/ncurses4/terminfo/m/m2-nam
+/usr/share/ncurses4/terminfo/m/mac
+/usr/share/ncurses4/terminfo/m/mac-w
+/usr/share/ncurses4/terminfo/m/macintosh
+/usr/share/ncurses4/terminfo/m/macterminal-w
+/usr/share/ncurses4/terminfo/m/mai
+/usr/share/ncurses4/terminfo/m/masscomp
+/usr/share/ncurses4/terminfo/m/masscomp1
+/usr/share/ncurses4/terminfo/m/masscomp2
+/usr/share/ncurses4/terminfo/m/mdl110
+/usr/share/ncurses4/terminfo/m/megatek
+/usr/share/ncurses4/terminfo/m/memhp
+/usr/share/ncurses4/terminfo/m/mgr
+/usr/share/ncurses4/terminfo/m/mgr-linux
+/usr/share/ncurses4/terminfo/m/mgr-sun
+/usr/share/ncurses4/terminfo/m/microb
+/usr/share/ncurses4/terminfo/m/microbee
+/usr/share/ncurses4/terminfo/m/microterm
+/usr/share/ncurses4/terminfo/m/microterm5
+/usr/share/ncurses4/terminfo/m/mime
+/usr/share/ncurses4/terminfo/m/mime-3ax
+/usr/share/ncurses4/terminfo/m/mime-fb
+/usr/share/ncurses4/terminfo/m/mime-hb
+/usr/share/ncurses4/terminfo/m/mime1
+/usr/share/ncurses4/terminfo/m/mime2
+/usr/share/ncurses4/terminfo/m/mime2a
+/usr/share/ncurses4/terminfo/m/mime2a-s
+/usr/share/ncurses4/terminfo/m/mime2a-v
+/usr/share/ncurses4/terminfo/m/mime314
+/usr/share/ncurses4/terminfo/m/mime340
+/usr/share/ncurses4/terminfo/m/mime3a
+/usr/share/ncurses4/terminfo/m/mime3ax
+/usr/share/ncurses4/terminfo/m/mimei
+/usr/share/ncurses4/terminfo/m/mimeii
+/usr/share/ncurses4/terminfo/m/minitel
+/usr/share/ncurses4/terminfo/m/minitel-2
+/usr/share/ncurses4/terminfo/m/minitel-2-nam
+/usr/share/ncurses4/terminfo/m/minix
+/usr/share/ncurses4/terminfo/m/minix-old
+/usr/share/ncurses4/terminfo/m/minix-old-am
+/usr/share/ncurses4/terminfo/m/mm314
+/usr/share/ncurses4/terminfo/m/mm340
+/usr/share/ncurses4/terminfo/m/mod
+/usr/share/ncurses4/terminfo/m/mod24
+/usr/share/ncurses4/terminfo/m/modgraph
+/usr/share/ncurses4/terminfo/m/modgraph2
+/usr/share/ncurses4/terminfo/m/modgraph48
+/usr/share/ncurses4/terminfo/m/mono-emx
+/usr/share/ncurses4/terminfo/m/msk227
+/usr/share/ncurses4/terminfo/m/msk22714
+/usr/share/ncurses4/terminfo/m/msk227am
+/usr/share/ncurses4/terminfo/m/mskermit227
+/usr/share/ncurses4/terminfo/m/mskermit22714
+/usr/share/ncurses4/terminfo/m/mskermit227am
+/usr/share/ncurses4/terminfo/m/mt-70
+/usr/share/ncurses4/terminfo/m/mt4520-rv
+/usr/share/ncurses4/terminfo/m/mt70
+/usr/share/ncurses4/terminfo/n
+/usr/share/ncurses4/terminfo/n/nansi.sys
+/usr/share/ncurses4/terminfo/n/nansi.sysk
+/usr/share/ncurses4/terminfo/n/nansisys
+/usr/share/ncurses4/terminfo/n/nansisysk
+/usr/share/ncurses4/terminfo/n/ncr7900
+/usr/share/ncurses4/terminfo/n/ncr7900i
+/usr/share/ncurses4/terminfo/n/ncr7900iv
+/usr/share/ncurses4/terminfo/n/ncr7901
+/usr/share/ncurses4/terminfo/n/nec
+/usr/share/ncurses4/terminfo/n/nec5520
+/usr/share/ncurses4/terminfo/n/newhp
+/usr/share/ncurses4/terminfo/n/newhpkeyboard
+/usr/share/ncurses4/terminfo/n/news
+/usr/share/ncurses4/terminfo/n/news-29
+/usr/share/ncurses4/terminfo/n/news-29-euc
+/usr/share/ncurses4/terminfo/n/news-29-sjis
+/usr/share/ncurses4/terminfo/n/news-33
+/usr/share/ncurses4/terminfo/n/news-33-euc
+/usr/share/ncurses4/terminfo/n/news-33-sjis
+/usr/share/ncurses4/terminfo/n/news-42
+/usr/share/ncurses4/terminfo/n/news-42-euc
+/usr/share/ncurses4/terminfo/n/news-42-sjis
+/usr/share/ncurses4/terminfo/n/news-a
+/usr/share/ncurses4/terminfo/n/news-o
+/usr/share/ncurses4/terminfo/n/news-old-unk
+/usr/share/ncurses4/terminfo/n/news-unk
+/usr/share/ncurses4/terminfo/n/news28
+/usr/share/ncurses4/terminfo/n/news28-a
+/usr/share/ncurses4/terminfo/n/news29
+/usr/share/ncurses4/terminfo/n/news31
+/usr/share/ncurses4/terminfo/n/news31-a
+/usr/share/ncurses4/terminfo/n/news31-o
+/usr/share/ncurses4/terminfo/n/news33
+/usr/share/ncurses4/terminfo/n/news40
+/usr/share/ncurses4/terminfo/n/news40-a
+/usr/share/ncurses4/terminfo/n/news40-o
+/usr/share/ncurses4/terminfo/n/news42
+/usr/share/ncurses4/terminfo/n/newscbm
+/usr/share/ncurses4/terminfo/n/newscbm-a
+/usr/share/ncurses4/terminfo/n/newscbm-o
+/usr/share/ncurses4/terminfo/n/newscbm33
+/usr/share/ncurses4/terminfo/n/next
+/usr/share/ncurses4/terminfo/n/nextshell
+/usr/share/ncurses4/terminfo/n/northstar
+/usr/share/ncurses4/terminfo/n/nwe501
+/usr/share/ncurses4/terminfo/n/nwe501-a
+/usr/share/ncurses4/terminfo/n/nwe501-o
+/usr/share/ncurses4/terminfo/n/nwp-511
+/usr/share/ncurses4/terminfo/n/nwp-517
+/usr/share/ncurses4/terminfo/n/nwp-517-w
+/usr/share/ncurses4/terminfo/n/nwp251-a
+/usr/share/ncurses4/terminfo/n/nwp251-o
+/usr/share/ncurses4/terminfo/n/nwp511
+/usr/share/ncurses4/terminfo/n/nwp512
+/usr/share/ncurses4/terminfo/n/nwp512-a
+/usr/share/ncurses4/terminfo/n/nwp512-o
+/usr/share/ncurses4/terminfo/n/nwp513
+/usr/share/ncurses4/terminfo/n/nwp513-a
+/usr/share/ncurses4/terminfo/n/nwp513-o
+/usr/share/ncurses4/terminfo/n/nwp514
+/usr/share/ncurses4/terminfo/n/nwp514-a
+/usr/share/ncurses4/terminfo/n/nwp514-o
+/usr/share/ncurses4/terminfo/n/nwp517
+/usr/share/ncurses4/terminfo/n/nwp517-w
+/usr/share/ncurses4/terminfo/n/nwp518
+/usr/share/ncurses4/terminfo/n/nwp518-a
+/usr/share/ncurses4/terminfo/n/nwp518-o
+/usr/share/ncurses4/terminfo/o
+/usr/share/ncurses4/terminfo/o/o31
+/usr/share/ncurses4/terminfo/o/o4112-nd
+/usr/share/ncurses4/terminfo/o/o85h
+/usr/share/ncurses4/terminfo/o/oabm85h
+/usr/share/ncurses4/terminfo/o/oblit
+/usr/share/ncurses4/terminfo/o/oc100
+/usr/share/ncurses4/terminfo/o/oconcept
+/usr/share/ncurses4/terminfo/o/ojerq
+/usr/share/ncurses4/terminfo/o/oldibmpc3
+/usr/share/ncurses4/terminfo/o/oldpc3
+/usr/share/ncurses4/terminfo/o/oldsun
+/usr/share/ncurses4/terminfo/o/omron
+/usr/share/ncurses4/terminfo/o/opus3n1+
+/usr/share/ncurses4/terminfo/o/origibmpc3
+/usr/share/ncurses4/terminfo/o/origpc3
+/usr/share/ncurses4/terminfo/o/os9LII
+/usr/share/ncurses4/terminfo/o/osborne
+/usr/share/ncurses4/terminfo/o/osborne-w
+/usr/share/ncurses4/terminfo/o/osborne1
+/usr/share/ncurses4/terminfo/o/osborne1-w
+/usr/share/ncurses4/terminfo/o/osexec
+/usr/share/ncurses4/terminfo/o/otek4112
+/usr/share/ncurses4/terminfo/o/otek4113
+/usr/share/ncurses4/terminfo/o/otek4114
+/usr/share/ncurses4/terminfo/o/otek4115
+/usr/share/ncurses4/terminfo/o/owl
+/usr/share/ncurses4/terminfo/p
+/usr/share/ncurses4/terminfo/p/p12
+/usr/share/ncurses4/terminfo/p/p12-m
+/usr/share/ncurses4/terminfo/p/p12-m-w
+/usr/share/ncurses4/terminfo/p/p12-w
+/usr/share/ncurses4/terminfo/p/p14
+/usr/share/ncurses4/terminfo/p/p14-m
+/usr/share/ncurses4/terminfo/p/p14-m-w
+/usr/share/ncurses4/terminfo/p/p14-w
+/usr/share/ncurses4/terminfo/p/p19
+/usr/share/ncurses4/terminfo/p/p4
+/usr/share/ncurses4/terminfo/p/p5
+/usr/share/ncurses4/terminfo/p/p7
+/usr/share/ncurses4/terminfo/p/p8
+/usr/share/ncurses4/terminfo/p/p8-w
+/usr/share/ncurses4/terminfo/p/p8gl
+/usr/share/ncurses4/terminfo/p/p9
+/usr/share/ncurses4/terminfo/p/p9-8
+/usr/share/ncurses4/terminfo/p/p9-8-w
+/usr/share/ncurses4/terminfo/p/p9-w
+/usr/share/ncurses4/terminfo/p/pc-coherent
+/usr/share/ncurses4/terminfo/p/pc-minix
+/usr/share/ncurses4/terminfo/p/pc-venix
+/usr/share/ncurses4/terminfo/p/pc3
+/usr/share/ncurses4/terminfo/p/pc3-bold
+/usr/share/ncurses4/terminfo/p/pc3r
+/usr/share/ncurses4/terminfo/p/pc3r-m
+/usr/share/ncurses4/terminfo/p/pc6300plus
+/usr/share/ncurses4/terminfo/p/pc7300
+/usr/share/ncurses4/terminfo/p/pcansi
+/usr/share/ncurses4/terminfo/p/pcansi-25
+/usr/share/ncurses4/terminfo/p/pcansi-25-m
+/usr/share/ncurses4/terminfo/p/pcansi-33
+/usr/share/ncurses4/terminfo/p/pcansi-33-m
+/usr/share/ncurses4/terminfo/p/pcansi-43
+/usr/share/ncurses4/terminfo/p/pcansi-43-m
+/usr/share/ncurses4/terminfo/p/pcansi-m
+/usr/share/ncurses4/terminfo/p/pcansi-mono
+/usr/share/ncurses4/terminfo/p/pcansi25
+/usr/share/ncurses4/terminfo/p/pcansi25m
+/usr/share/ncurses4/terminfo/p/pcansi33
+/usr/share/ncurses4/terminfo/p/pcansi33m
+/usr/share/ncurses4/terminfo/p/pcansi43
+/usr/share/ncurses4/terminfo/p/pccons
+/usr/share/ncurses4/terminfo/p/pcconsole
+/usr/share/ncurses4/terminfo/p/pcix
+/usr/share/ncurses4/terminfo/p/pckermit
+/usr/share/ncurses4/terminfo/p/pckermit12
+/usr/share/ncurses4/terminfo/p/pckermit120
+/usr/share/ncurses4/terminfo/p/pcplot
+/usr/share/ncurses4/terminfo/p/pcvt25
+/usr/share/ncurses4/terminfo/p/pcvt25w
+/usr/share/ncurses4/terminfo/p/pcvt28
+/usr/share/ncurses4/terminfo/p/pcvt28w
+/usr/share/ncurses4/terminfo/p/pcvt35
+/usr/share/ncurses4/terminfo/p/pcvt35w
+/usr/share/ncurses4/terminfo/p/pcvt40
+/usr/share/ncurses4/terminfo/p/pcvt40w
+/usr/share/ncurses4/terminfo/p/pcvt43
+/usr/share/ncurses4/terminfo/p/pcvt43w
+/usr/share/ncurses4/terminfo/p/pcvt50
+/usr/share/ncurses4/terminfo/p/pcvt50w
+/usr/share/ncurses4/terminfo/p/pcvtXX
+/usr/share/ncurses4/terminfo/p/pcz19
+/usr/share/ncurses4/terminfo/p/pe1100
+/usr/share/ncurses4/terminfo/p/pe1200
+/usr/share/ncurses4/terminfo/p/pe1251
+/usr/share/ncurses4/terminfo/p/pe550
+/usr/share/ncurses4/terminfo/p/pe6100
+/usr/share/ncurses4/terminfo/p/pe6300
+/usr/share/ncurses4/terminfo/p/pe6312
+/usr/share/ncurses4/terminfo/p/pe7000c
+/usr/share/ncurses4/terminfo/p/pe7000m
+/usr/share/ncurses4/terminfo/p/pilot
+/usr/share/ncurses4/terminfo/p/printer
+/usr/share/ncurses4/terminfo/p/prism12
+/usr/share/ncurses4/terminfo/p/prism12-m
+/usr/share/ncurses4/terminfo/p/prism12-m-w
+/usr/share/ncurses4/terminfo/p/prism12-w
+/usr/share/ncurses4/terminfo/p/prism14
+/usr/share/ncurses4/terminfo/p/prism14-m
+/usr/share/ncurses4/terminfo/p/prism14-m-w
+/usr/share/ncurses4/terminfo/p/prism14-w
+/usr/share/ncurses4/terminfo/p/prism2
+/usr/share/ncurses4/terminfo/p/prism4
+/usr/share/ncurses4/terminfo/p/prism5
+/usr/share/ncurses4/terminfo/p/prism7
+/usr/share/ncurses4/terminfo/p/prism8
+/usr/share/ncurses4/terminfo/p/prism8-w
+/usr/share/ncurses4/terminfo/p/prism8gl
+/usr/share/ncurses4/terminfo/p/prism9
+/usr/share/ncurses4/terminfo/p/prism9-8
+/usr/share/ncurses4/terminfo/p/prism9-8-w
+/usr/share/ncurses4/terminfo/p/prism9-w
+/usr/share/ncurses4/terminfo/p/pro350
+/usr/share/ncurses4/terminfo/p/ps300
+/usr/share/ncurses4/terminfo/p/psterm
+/usr/share/ncurses4/terminfo/p/psterm-80x24
+/usr/share/ncurses4/terminfo/p/psterm-90x28
+/usr/share/ncurses4/terminfo/p/psterm-96x48
+/usr/share/ncurses4/terminfo/p/psterm-basic
+/usr/share/ncurses4/terminfo/p/psterm-fast
+/usr/share/ncurses4/terminfo/p/psx_ansi
+/usr/share/ncurses4/terminfo/p/pt100
+/usr/share/ncurses4/terminfo/p/pt100w
+/usr/share/ncurses4/terminfo/p/pt200
+/usr/share/ncurses4/terminfo/p/pt200w
+/usr/share/ncurses4/terminfo/p/pt210
+/usr/share/ncurses4/terminfo/p/pt250
+/usr/share/ncurses4/terminfo/p/pt250w
+/usr/share/ncurses4/terminfo/p/pt505
+/usr/share/ncurses4/terminfo/p/pt505-22
+/usr/share/ncurses4/terminfo/p/pt505-24
+/usr/share/ncurses4/terminfo/p/pty
+/usr/share/ncurses4/terminfo/q
+/usr/share/ncurses4/terminfo/q/qdcons
+/usr/share/ncurses4/terminfo/q/qdss
+/usr/share/ncurses4/terminfo/q/qnx
+/usr/share/ncurses4/terminfo/q/qnx4
+/usr/share/ncurses4/terminfo/q/qume
+/usr/share/ncurses4/terminfo/q/qume5
+/usr/share/ncurses4/terminfo/q/qvt101
+/usr/share/ncurses4/terminfo/q/qvt101+
+/usr/share/ncurses4/terminfo/q/qvt101p
+/usr/share/ncurses4/terminfo/q/qvt102
+/usr/share/ncurses4/terminfo/q/qvt103
+/usr/share/ncurses4/terminfo/q/qvt103-w
+/usr/share/ncurses4/terminfo/q/qvt108
+/usr/share/ncurses4/terminfo/q/qvt119
+/usr/share/ncurses4/terminfo/q/qvt119+
+/usr/share/ncurses4/terminfo/q/qvt119+-25
+/usr/share/ncurses4/terminfo/q/qvt119+-25-w
+/usr/share/ncurses4/terminfo/q/qvt119+-w
+/usr/share/ncurses4/terminfo/q/qvt119-25-w
+/usr/share/ncurses4/terminfo/q/qvt119-w
+/usr/share/ncurses4/terminfo/q/qvt119p
+/usr/share/ncurses4/terminfo/q/qvt119p-25
+/usr/share/ncurses4/terminfo/q/qvt119p-25-w
+/usr/share/ncurses4/terminfo/q/qvt119p-w
+/usr/share/ncurses4/terminfo/q/qvt203
+/usr/share/ncurses4/terminfo/q/qvt203+
+/usr/share/ncurses4/terminfo/q/qvt203-25
+/usr/share/ncurses4/terminfo/q/qvt203-25-w
+/usr/share/ncurses4/terminfo/q/qvt203-w
+/usr/share/ncurses4/terminfo/q/qvt203-w-am
+/usr/share/ncurses4/terminfo/r
+/usr/share/ncurses4/terminfo/r/rbcomm
+/usr/share/ncurses4/terminfo/r/rbcomm-nam
+/usr/share/ncurses4/terminfo/r/rbcomm-w
+/usr/share/ncurses4/terminfo/r/rca
+/usr/share/ncurses4/terminfo/r/rebus3180
+/usr/share/ncurses4/terminfo/r/regent
+/usr/share/ncurses4/terminfo/r/regent100
+/usr/share/ncurses4/terminfo/r/regent20
+/usr/share/ncurses4/terminfo/r/regent200
+/usr/share/ncurses4/terminfo/r/regent25
+/usr/share/ncurses4/terminfo/r/regent40
+/usr/share/ncurses4/terminfo/r/regent40+
+/usr/share/ncurses4/terminfo/r/regent60
+/usr/share/ncurses4/terminfo/r/rt6221
+/usr/share/ncurses4/terminfo/r/rt6221-w
+/usr/share/ncurses4/terminfo/r/rtpc
+/usr/share/ncurses4/terminfo/r/rxvt
+/usr/share/ncurses4/terminfo/r/rxvt-basic
+/usr/share/ncurses4/terminfo/s
+/usr/share/ncurses4/terminfo/s/s
+/usr/share/ncurses4/terminfo/s/s4
+/usr/share/ncurses4/terminfo/s/sb1
+/usr/share/ncurses4/terminfo/s/sb2
+/usr/share/ncurses4/terminfo/s/sb3
+/usr/share/ncurses4/terminfo/s/sbi
+/usr/share/ncurses4/terminfo/s/sbobcat
+/usr/share/ncurses4/terminfo/s/sc410
+/usr/share/ncurses4/terminfo/s/sc415
+/usr/share/ncurses4/terminfo/s/scanset
+/usr/share/ncurses4/terminfo/s/scoansi
+/usr/share/ncurses4/terminfo/s/screen
+/usr/share/ncurses4/terminfo/s/screen-w
+/usr/share/ncurses4/terminfo/s/screen2
+/usr/share/ncurses4/terminfo/s/screen3
+/usr/share/ncurses4/terminfo/s/screwpoint
+/usr/share/ncurses4/terminfo/s/scrhp
+/usr/share/ncurses4/terminfo/s/simterm
+/usr/share/ncurses4/terminfo/s/soroc
+/usr/share/ncurses4/terminfo/s/soroc120
+/usr/share/ncurses4/terminfo/s/soroc140
+/usr/share/ncurses4/terminfo/s/spinwriter
+/usr/share/ncurses4/terminfo/s/st52
+/usr/share/ncurses4/terminfo/s/sun
+/usr/share/ncurses4/terminfo/s/sun-1
+/usr/share/ncurses4/terminfo/s/sun-12
+/usr/share/ncurses4/terminfo/s/sun-17
+/usr/share/ncurses4/terminfo/s/sun-24
+/usr/share/ncurses4/terminfo/s/sun-34
+/usr/share/ncurses4/terminfo/s/sun-48
+/usr/share/ncurses4/terminfo/s/sun-c
+/usr/share/ncurses4/terminfo/s/sun-cmd
+/usr/share/ncurses4/terminfo/s/sun-e
+/usr/share/ncurses4/terminfo/s/sun-e-s
+/usr/share/ncurses4/terminfo/s/sun-il
+/usr/share/ncurses4/terminfo/s/sun-nic
+/usr/share/ncurses4/terminfo/s/sun-s
+/usr/share/ncurses4/terminfo/s/sun-s-e
+/usr/share/ncurses4/terminfo/s/sun-ss5
+/usr/share/ncurses4/terminfo/s/sun1
+/usr/share/ncurses4/terminfo/s/sun2
+/usr/share/ncurses4/terminfo/s/sune
+/usr/share/ncurses4/terminfo/s/superbee
+/usr/share/ncurses4/terminfo/s/superbee-xsb
+/usr/share/ncurses4/terminfo/s/superbeeic
+/usr/share/ncurses4/terminfo/s/superbrain
+/usr/share/ncurses4/terminfo/s/sv80
+/usr/share/ncurses4/terminfo/s/swtp
+/usr/share/ncurses4/terminfo/s/synertek
+/usr/share/ncurses4/terminfo/s/synertek380
+/usr/share/ncurses4/terminfo/s/system1
+/usr/share/ncurses4/terminfo/t
+/usr/share/ncurses4/terminfo/t/t10
+/usr/share/ncurses4/terminfo/t/t1061
+/usr/share/ncurses4/terminfo/t/t1061f
+/usr/share/ncurses4/terminfo/t/t16
+/usr/share/ncurses4/terminfo/t/t3700
+/usr/share/ncurses4/terminfo/t/t3800
+/usr/share/ncurses4/terminfo/t/t653x
+/usr/share/ncurses4/terminfo/t/tab
+/usr/share/ncurses4/terminfo/t/tab132
+/usr/share/ncurses4/terminfo/t/tab132-15
+/usr/share/ncurses4/terminfo/t/tab132-rv
+/usr/share/ncurses4/terminfo/t/tab132-w
+/usr/share/ncurses4/terminfo/t/tab132-w-rv
+/usr/share/ncurses4/terminfo/t/tandem6510
+/usr/share/ncurses4/terminfo/t/tandem653
+/usr/share/ncurses4/terminfo/t/tek
+/usr/share/ncurses4/terminfo/t/tek4012
+/usr/share/ncurses4/terminfo/t/tek4013
+/usr/share/ncurses4/terminfo/t/tek4014
+/usr/share/ncurses4/terminfo/t/tek4014-sm
+/usr/share/ncurses4/terminfo/t/tek4015
+/usr/share/ncurses4/terminfo/t/tek4015-sm
+/usr/share/ncurses4/terminfo/t/tek4023
+/usr/share/ncurses4/terminfo/t/tek4024
+/usr/share/ncurses4/terminfo/t/tek4025
+/usr/share/ncurses4/terminfo/t/tek4025-17
+/usr/share/ncurses4/terminfo/t/tek4025-17-ws
+/usr/share/ncurses4/terminfo/t/tek4025-cr
+/usr/share/ncurses4/terminfo/t/tek4025-ex
+/usr/share/ncurses4/terminfo/t/tek4025a
+/usr/share/ncurses4/terminfo/t/tek4025ex
+/usr/share/ncurses4/terminfo/t/tek4027
+/usr/share/ncurses4/terminfo/t/tek4027-ex
+/usr/share/ncurses4/terminfo/t/tek4105
+/usr/share/ncurses4/terminfo/t/tek4105-30
+/usr/share/ncurses4/terminfo/t/tek4105a
+/usr/share/ncurses4/terminfo/t/tek4106brl
+/usr/share/ncurses4/terminfo/t/tek4107
+/usr/share/ncurses4/terminfo/t/tek4107brl
+/usr/share/ncurses4/terminfo/t/tek4109
+/usr/share/ncurses4/terminfo/t/tek4109brl
+/usr/share/ncurses4/terminfo/t/tek4112
+/usr/share/ncurses4/terminfo/t/tek4112-5
+/usr/share/ncurses4/terminfo/t/tek4112-nd
+/usr/share/ncurses4/terminfo/t/tek4113
+/usr/share/ncurses4/terminfo/t/tek4113-34
+/usr/share/ncurses4/terminfo/t/tek4113-nd
+/usr/share/ncurses4/terminfo/t/tek4114
+/usr/share/ncurses4/terminfo/t/tek4115
+/usr/share/ncurses4/terminfo/t/tek4125
+/usr/share/ncurses4/terminfo/t/tek4205
+/usr/share/ncurses4/terminfo/t/tek4207
+/usr/share/ncurses4/terminfo/t/tek4207-s
+/usr/share/ncurses4/terminfo/t/tek4404
+/usr/share/ncurses4/terminfo/t/teleray
+/usr/share/ncurses4/terminfo/t/teletec
+/usr/share/ncurses4/terminfo/t/terminet
+/usr/share/ncurses4/terminfo/t/terminet1200
+/usr/share/ncurses4/terminfo/t/terminet300
+/usr/share/ncurses4/terminfo/t/tgtelnet
+/usr/share/ncurses4/terminfo/t/ti700
+/usr/share/ncurses4/terminfo/t/ti733
+/usr/share/ncurses4/terminfo/t/ti735
+/usr/share/ncurses4/terminfo/t/ti745
+/usr/share/ncurses4/terminfo/t/ti800
+/usr/share/ncurses4/terminfo/t/ti916
+/usr/share/ncurses4/terminfo/t/ti916-132
+/usr/share/ncurses4/terminfo/t/ti916-220-7
+/usr/share/ncurses4/terminfo/t/ti916-220-8
+/usr/share/ncurses4/terminfo/t/ti916-8
+/usr/share/ncurses4/terminfo/t/ti916-8-132
+/usr/share/ncurses4/terminfo/t/ti924
+/usr/share/ncurses4/terminfo/t/ti924-8
+/usr/share/ncurses4/terminfo/t/ti924-8w
+/usr/share/ncurses4/terminfo/t/ti924w
+/usr/share/ncurses4/terminfo/t/ti926
+/usr/share/ncurses4/terminfo/t/ti926-8
+/usr/share/ncurses4/terminfo/t/ti928
+/usr/share/ncurses4/terminfo/t/ti928-8
+/usr/share/ncurses4/terminfo/t/ti931
+/usr/share/ncurses4/terminfo/t/ti_ansi
+/usr/share/ncurses4/terminfo/t/tn1200
+/usr/share/ncurses4/terminfo/t/tn300
+/usr/share/ncurses4/terminfo/t/trs16
+/usr/share/ncurses4/terminfo/t/trs2
+/usr/share/ncurses4/terminfo/t/trs80II
+/usr/share/ncurses4/terminfo/t/trsII
+/usr/share/ncurses4/terminfo/t/ts-1
+/usr/share/ncurses4/terminfo/t/ts-1p
+/usr/share/ncurses4/terminfo/t/ts1
+/usr/share/ncurses4/terminfo/t/ts100
+/usr/share/ncurses4/terminfo/t/ts100-ctxt
+/usr/share/ncurses4/terminfo/t/ts100-sp
+/usr/share/ncurses4/terminfo/t/ts1p
+/usr/share/ncurses4/terminfo/t/tt505-22
+/usr/share/ncurses4/terminfo/t/tty33
+/usr/share/ncurses4/terminfo/t/tty35
+/usr/share/ncurses4/terminfo/t/tty37
+/usr/share/ncurses4/terminfo/t/tty40
+/usr/share/ncurses4/terminfo/t/tty43
+/usr/share/ncurses4/terminfo/t/tty4420
+/usr/share/ncurses4/terminfo/t/tty4424
+/usr/share/ncurses4/terminfo/t/tty4424-1
+/usr/share/ncurses4/terminfo/t/tty4424m
+/usr/share/ncurses4/terminfo/t/tty4426
+/usr/share/ncurses4/terminfo/t/tty5410
+/usr/share/ncurses4/terminfo/t/tty5410-w
+/usr/share/ncurses4/terminfo/t/tty5410v1
+/usr/share/ncurses4/terminfo/t/tty5410v1-w
+/usr/share/ncurses4/terminfo/t/tty5420
+/usr/share/ncurses4/terminfo/t/tty5420+nl
+/usr/share/ncurses4/terminfo/t/tty5420-nl
+/usr/share/ncurses4/terminfo/t/tty5420-rv
+/usr/share/ncurses4/terminfo/t/tty5420-rv-nl
+/usr/share/ncurses4/terminfo/t/tty5420-w
+/usr/share/ncurses4/terminfo/t/tty5420-w-nl
+/usr/share/ncurses4/terminfo/t/tty5420-w-rv
+/usr/share/ncurses4/terminfo/t/tty5420-w-rv-n
+/usr/share/ncurses4/terminfo/t/tty5425
+/usr/share/ncurses4/terminfo/t/tty5425-nl
+/usr/share/ncurses4/terminfo/t/tty5425-w
+/usr/share/ncurses4/terminfo/t/tty5620
+/usr/share/ncurses4/terminfo/t/tty5620-1
+/usr/share/ncurses4/terminfo/t/tty5620-24
+/usr/share/ncurses4/terminfo/t/tty5620-34
+/usr/share/ncurses4/terminfo/t/tty5620-s
+/usr/share/ncurses4/terminfo/t/ttydmd
+/usr/share/ncurses4/terminfo/t/tvi-2p
+/usr/share/ncurses4/terminfo/t/tvi803
+/usr/share/ncurses4/terminfo/t/tvi9065
+/usr/share/ncurses4/terminfo/t/tvi910
+/usr/share/ncurses4/terminfo/t/tvi910+
+/usr/share/ncurses4/terminfo/t/tvi912
+/usr/share/ncurses4/terminfo/t/tvi912-2p
+/usr/share/ncurses4/terminfo/t/tvi912b
+/usr/share/ncurses4/terminfo/t/tvi912c
+/usr/share/ncurses4/terminfo/t/tvi912cc
+/usr/share/ncurses4/terminfo/t/tvi914
+/usr/share/ncurses4/terminfo/t/tvi920
+/usr/share/ncurses4/terminfo/t/tvi920-2p
+/usr/share/ncurses4/terminfo/t/tvi920b
+/usr/share/ncurses4/terminfo/t/tvi920c
+/usr/share/ncurses4/terminfo/t/tvi921
+/usr/share/ncurses4/terminfo/t/tvi924
+/usr/share/ncurses4/terminfo/t/tvi925
+/usr/share/ncurses4/terminfo/t/tvi925-hi
+/usr/share/ncurses4/terminfo/t/tvi92B
+/usr/share/ncurses4/terminfo/t/tvi92D
+/usr/share/ncurses4/terminfo/t/tvi950
+/usr/share/ncurses4/terminfo/t/tvi950-2p
+/usr/share/ncurses4/terminfo/t/tvi950-4p
+/usr/share/ncurses4/terminfo/t/tvi950-rv
+/usr/share/ncurses4/terminfo/t/tvi950-rv-2p
+/usr/share/ncurses4/terminfo/t/tvi950-rv-4p
+/usr/share/ncurses4/terminfo/t/tvi955
+/usr/share/ncurses4/terminfo/t/tvi955-hb
+/usr/share/ncurses4/terminfo/t/tvi955-w
+/usr/share/ncurses4/terminfo/t/tvi970
+/usr/share/ncurses4/terminfo/t/tvi970-2p
+/usr/share/ncurses4/terminfo/t/tvi970-vb
+/usr/share/ncurses4/terminfo/t/tvipt
+/usr/share/ncurses4/terminfo/u
+/usr/share/ncurses4/terminfo/u/ultima2
+/usr/share/ncurses4/terminfo/u/ultimaII
+/usr/share/ncurses4/terminfo/u/uniterm
+/usr/share/ncurses4/terminfo/u/uniterm49
+/usr/share/ncurses4/terminfo/u/unixpc
+/usr/share/ncurses4/terminfo/u/unknown
+/usr/share/ncurses4/terminfo/u/uts30
+/usr/share/ncurses4/terminfo/v
+/usr/share/ncurses4/terminfo/v/v200-nam
+/usr/share/ncurses4/terminfo/v/v320n
+/usr/share/ncurses4/terminfo/v/v3220
+/usr/share/ncurses4/terminfo/v/v5410
+/usr/share/ncurses4/terminfo/v/vapple
+/usr/share/ncurses4/terminfo/v/vc103
+/usr/share/ncurses4/terminfo/v/vc203
+/usr/share/ncurses4/terminfo/v/vc303
+/usr/share/ncurses4/terminfo/v/vc303a
+/usr/share/ncurses4/terminfo/v/vc403a
+/usr/share/ncurses4/terminfo/v/vc404
+/usr/share/ncurses4/terminfo/v/vc404-s
+/usr/share/ncurses4/terminfo/v/vc414
+/usr/share/ncurses4/terminfo/v/vc414h
+/usr/share/ncurses4/terminfo/v/vc415
+/usr/share/ncurses4/terminfo/v/venix
+/usr/share/ncurses4/terminfo/v/versaterm
+/usr/share/ncurses4/terminfo/v/vi200
+/usr/share/ncurses4/terminfo/v/vi200-f
+/usr/share/ncurses4/terminfo/v/vi200-rv
+/usr/share/ncurses4/terminfo/v/vi300
+/usr/share/ncurses4/terminfo/v/vi300-old
+/usr/share/ncurses4/terminfo/v/vi50
+/usr/share/ncurses4/terminfo/v/vi500
+/usr/share/ncurses4/terminfo/v/vi50adm
+/usr/share/ncurses4/terminfo/v/vi55
+/usr/share/ncurses4/terminfo/v/vi550
+/usr/share/ncurses4/terminfo/v/vi603
+/usr/share/ncurses4/terminfo/v/viewpoint
+/usr/share/ncurses4/terminfo/v/viewpoint3a+
+/usr/share/ncurses4/terminfo/v/viewpoint60
+/usr/share/ncurses4/terminfo/v/viewpoint90
+/usr/share/ncurses4/terminfo/v/visa50
+/usr/share/ncurses4/terminfo/v/visual603
+/usr/share/ncurses4/terminfo/v/vitty
+/usr/share/ncurses4/terminfo/v/vk100
+/usr/share/ncurses4/terminfo/v/vp3a+
+/usr/share/ncurses4/terminfo/v/vp60
+/usr/share/ncurses4/terminfo/v/vp90
+/usr/share/ncurses4/terminfo/v/vremote
+/usr/share/ncurses4/terminfo/v/vs100
+/usr/share/ncurses4/terminfo/v/vs100-x10
+/usr/share/ncurses4/terminfo/v/vsc
+/usr/share/ncurses4/terminfo/v/vt-61
+/usr/share/ncurses4/terminfo/v/vt100
+/usr/share/ncurses4/terminfo/v/vt100-am
+/usr/share/ncurses4/terminfo/v/vt100-bm
+/usr/share/ncurses4/terminfo/v/vt100-bm-o
+/usr/share/ncurses4/terminfo/v/vt100-bot-s
+/usr/share/ncurses4/terminfo/v/vt100-nam
+/usr/share/ncurses4/terminfo/v/vt100-nam-w
+/usr/share/ncurses4/terminfo/v/vt100-nav
+/usr/share/ncurses4/terminfo/v/vt100-nav-w
+/usr/share/ncurses4/terminfo/v/vt100-s
+/usr/share/ncurses4/terminfo/v/vt100-s-bot
+/usr/share/ncurses4/terminfo/v/vt100-s-top
+/usr/share/ncurses4/terminfo/v/vt100-top-s
+/usr/share/ncurses4/terminfo/v/vt100-vb
+/usr/share/ncurses4/terminfo/v/vt100-w
+/usr/share/ncurses4/terminfo/v/vt100-w-am
+/usr/share/ncurses4/terminfo/v/vt100-w-nam
+/usr/share/ncurses4/terminfo/v/vt100-w-nav
+/usr/share/ncurses4/terminfo/v/vt100nam
+/usr/share/ncurses4/terminfo/v/vt102
+/usr/share/ncurses4/terminfo/v/vt102-nsgr
+/usr/share/ncurses4/terminfo/v/vt102-w
+/usr/share/ncurses4/terminfo/v/vt125
+/usr/share/ncurses4/terminfo/v/vt131
+/usr/share/ncurses4/terminfo/v/vt132
+/usr/share/ncurses4/terminfo/v/vt200
+/usr/share/ncurses4/terminfo/v/vt200-js
+/usr/share/ncurses4/terminfo/v/vt200-w
+/usr/share/ncurses4/terminfo/v/vt220
+/usr/share/ncurses4/terminfo/v/vt220-8
+/usr/share/ncurses4/terminfo/v/vt220-js
+/usr/share/ncurses4/terminfo/v/vt220-nam
+/usr/share/ncurses4/terminfo/v/vt220-w
+/usr/share/ncurses4/terminfo/v/vt220d
+/usr/share/ncurses4/terminfo/v/vt300
+/usr/share/ncurses4/terminfo/v/vt300-nam
+/usr/share/ncurses4/terminfo/v/vt300-w
+/usr/share/ncurses4/terminfo/v/vt300-w-nam
+/usr/share/ncurses4/terminfo/v/vt320
+/usr/share/ncurses4/terminfo/v/vt320-k3
+/usr/share/ncurses4/terminfo/v/vt320-k311
+/usr/share/ncurses4/terminfo/v/vt320-nam
+/usr/share/ncurses4/terminfo/v/vt320-w
+/usr/share/ncurses4/terminfo/v/vt320-w-nam
+/usr/share/ncurses4/terminfo/v/vt320nam
+/usr/share/ncurses4/terminfo/v/vt330
+/usr/share/ncurses4/terminfo/v/vt340
+/usr/share/ncurses4/terminfo/v/vt400
+/usr/share/ncurses4/terminfo/v/vt400-24
+/usr/share/ncurses4/terminfo/v/vt420
+/usr/share/ncurses4/terminfo/v/vt420f
+/usr/share/ncurses4/terminfo/v/vt420pc
+/usr/share/ncurses4/terminfo/v/vt420pcdos
+/usr/share/ncurses4/terminfo/v/vt50
+/usr/share/ncurses4/terminfo/v/vt50h
+/usr/share/ncurses4/terminfo/v/vt510
+/usr/share/ncurses4/terminfo/v/vt510pc
+/usr/share/ncurses4/terminfo/v/vt510pcdos
+/usr/share/ncurses4/terminfo/v/vt52
+/usr/share/ncurses4/terminfo/v/vt520
+/usr/share/ncurses4/terminfo/v/vt525
+/usr/share/ncurses4/terminfo/v/vt61
+/usr/share/ncurses4/terminfo/v/vt61.5
+/usr/share/ncurses4/terminfo/w
+/usr/share/ncurses4/terminfo/w/wren
+/usr/share/ncurses4/terminfo/w/wrenw
+/usr/share/ncurses4/terminfo/w/wsiris
+/usr/share/ncurses4/terminfo/w/wy-75ap
+/usr/share/ncurses4/terminfo/w/wy100
+/usr/share/ncurses4/terminfo/w/wy100q
+/usr/share/ncurses4/terminfo/w/wy120
+/usr/share/ncurses4/terminfo/w/wy120-25
+/usr/share/ncurses4/terminfo/w/wy120-25-w
+/usr/share/ncurses4/terminfo/w/wy120-vb
+/usr/share/ncurses4/terminfo/w/wy120-w
+/usr/share/ncurses4/terminfo/w/wy120-w-vb
+/usr/share/ncurses4/terminfo/w/wy120-wvb
+/usr/share/ncurses4/terminfo/w/wy150
+/usr/share/ncurses4/terminfo/w/wy150-25
+/usr/share/ncurses4/terminfo/w/wy150-25-w
+/usr/share/ncurses4/terminfo/w/wy150-vb
+/usr/share/ncurses4/terminfo/w/wy150-w
+/usr/share/ncurses4/terminfo/w/wy150-w-vb
+/usr/share/ncurses4/terminfo/w/wy160
+/usr/share/ncurses4/terminfo/w/wy160-25
+/usr/share/ncurses4/terminfo/w/wy160-25-w
+/usr/share/ncurses4/terminfo/w/wy160-42
+/usr/share/ncurses4/terminfo/w/wy160-42-w
+/usr/share/ncurses4/terminfo/w/wy160-43
+/usr/share/ncurses4/terminfo/w/wy160-43-w
+/usr/share/ncurses4/terminfo/w/wy160-tek
+/usr/share/ncurses4/terminfo/w/wy160-vb
+/usr/share/ncurses4/terminfo/w/wy160-w
+/usr/share/ncurses4/terminfo/w/wy160-w-vb
+/usr/share/ncurses4/terminfo/w/wy160-wvb
+/usr/share/ncurses4/terminfo/w/wy185
+/usr/share/ncurses4/terminfo/w/wy185-24
+/usr/share/ncurses4/terminfo/w/wy185-vb
+/usr/share/ncurses4/terminfo/w/wy185-w
+/usr/share/ncurses4/terminfo/w/wy185-wvb
+/usr/share/ncurses4/terminfo/w/wy30
+/usr/share/ncurses4/terminfo/w/wy30-mc
+/usr/share/ncurses4/terminfo/w/wy30-vb
+/usr/share/ncurses4/terminfo/w/wy325
+/usr/share/ncurses4/terminfo/w/wy325-25
+/usr/share/ncurses4/terminfo/w/wy325-25w
+/usr/share/ncurses4/terminfo/w/wy325-42
+/usr/share/ncurses4/terminfo/w/wy325-42w
+/usr/share/ncurses4/terminfo/w/wy325-42w-vb
+/usr/share/ncurses4/terminfo/w/wy325-42wvb
+/usr/share/ncurses4/terminfo/w/wy325-43
+/usr/share/ncurses4/terminfo/w/wy325-43w
+/usr/share/ncurses4/terminfo/w/wy325-43w-vb
+/usr/share/ncurses4/terminfo/w/wy325-43wvb
+/usr/share/ncurses4/terminfo/w/wy325-80
+/usr/share/ncurses4/terminfo/w/wy325-vb
+/usr/share/ncurses4/terminfo/w/wy325-w
+/usr/share/ncurses4/terminfo/w/wy325-w-vb
+/usr/share/ncurses4/terminfo/w/wy325-wvb
+/usr/share/ncurses4/terminfo/w/wy325w-24
+/usr/share/ncurses4/terminfo/w/wy350
+/usr/share/ncurses4/terminfo/w/wy350-vb
+/usr/share/ncurses4/terminfo/w/wy350-w
+/usr/share/ncurses4/terminfo/w/wy350-wvb
+/usr/share/ncurses4/terminfo/w/wy370
+/usr/share/ncurses4/terminfo/w/wy370-101k
+/usr/share/ncurses4/terminfo/w/wy370-105k
+/usr/share/ncurses4/terminfo/w/wy370-EPC
+/usr/share/ncurses4/terminfo/w/wy370-nk
+/usr/share/ncurses4/terminfo/w/wy370-rv
+/usr/share/ncurses4/terminfo/w/wy370-tek
+/usr/share/ncurses4/terminfo/w/wy370-vb
+/usr/share/ncurses4/terminfo/w/wy370-w
+/usr/share/ncurses4/terminfo/w/wy370-wvb
+/usr/share/ncurses4/terminfo/w/wy50
+/usr/share/ncurses4/terminfo/w/wy50-mc
+/usr/share/ncurses4/terminfo/w/wy50-vb
+/usr/share/ncurses4/terminfo/w/wy50-w
+/usr/share/ncurses4/terminfo/w/wy50-wvb
+/usr/share/ncurses4/terminfo/w/wy520
+/usr/share/ncurses4/terminfo/w/wy520-24
+/usr/share/ncurses4/terminfo/w/wy520-36
+/usr/share/ncurses4/terminfo/w/wy520-36pc
+/usr/share/ncurses4/terminfo/w/wy520-36w
+/usr/share/ncurses4/terminfo/w/wy520-36wpc
+/usr/share/ncurses4/terminfo/w/wy520-48
+/usr/share/ncurses4/terminfo/w/wy520-48pc
+/usr/share/ncurses4/terminfo/w/wy520-48w
+/usr/share/ncurses4/terminfo/w/wy520-48wpc
+/usr/share/ncurses4/terminfo/w/wy520-epc
+/usr/share/ncurses4/terminfo/w/wy520-epc-24
+/usr/share/ncurses4/terminfo/w/wy520-epc-vb
+/usr/share/ncurses4/terminfo/w/wy520-epc-w
+/usr/share/ncurses4/terminfo/w/wy520-epc-wvb
+/usr/share/ncurses4/terminfo/w/wy520-vb
+/usr/share/ncurses4/terminfo/w/wy520-w
+/usr/share/ncurses4/terminfo/w/wy520-wvb
+/usr/share/ncurses4/terminfo/w/wy60
+/usr/share/ncurses4/terminfo/w/wy60-25
+/usr/share/ncurses4/terminfo/w/wy60-25-w
+/usr/share/ncurses4/terminfo/w/wy60-316X
+/usr/share/ncurses4/terminfo/w/wy60-42
+/usr/share/ncurses4/terminfo/w/wy60-42-w
+/usr/share/ncurses4/terminfo/w/wy60-43
+/usr/share/ncurses4/terminfo/w/wy60-43-w
+/usr/share/ncurses4/terminfo/w/wy60-vb
+/usr/share/ncurses4/terminfo/w/wy60-w
+/usr/share/ncurses4/terminfo/w/wy60-w-vb
+/usr/share/ncurses4/terminfo/w/wy60-wvb
+/usr/share/ncurses4/terminfo/w/wy75
+/usr/share/ncurses4/terminfo/w/wy75-mc
+/usr/share/ncurses4/terminfo/w/wy75-vb
+/usr/share/ncurses4/terminfo/w/wy75-w
+/usr/share/ncurses4/terminfo/w/wy75-wvb
+/usr/share/ncurses4/terminfo/w/wy75ap
+/usr/share/ncurses4/terminfo/w/wy85
+/usr/share/ncurses4/terminfo/w/wy85-vb
+/usr/share/ncurses4/terminfo/w/wy85-w
+/usr/share/ncurses4/terminfo/w/wy85-wvb
+/usr/share/ncurses4/terminfo/w/wy99gt
+/usr/share/ncurses4/terminfo/w/wy99gt-25
+/usr/share/ncurses4/terminfo/w/wy99gt-25-w
+/usr/share/ncurses4/terminfo/w/wy99gt-tek
+/usr/share/ncurses4/terminfo/w/wy99gt-vb
+/usr/share/ncurses4/terminfo/w/wy99gt-w
+/usr/share/ncurses4/terminfo/w/wy99gt-w-vb
+/usr/share/ncurses4/terminfo/w/wy99gt-wvb
+/usr/share/ncurses4/terminfo/w/wyse-325
+/usr/share/ncurses4/terminfo/w/wyse-75ap
+/usr/share/ncurses4/terminfo/w/wyse-vp
+/usr/share/ncurses4/terminfo/w/wyse120
+/usr/share/ncurses4/terminfo/w/wyse120-25
+/usr/share/ncurses4/terminfo/w/wyse120-25-w
+/usr/share/ncurses4/terminfo/w/wyse120-vb
+/usr/share/ncurses4/terminfo/w/wyse120-w
+/usr/share/ncurses4/terminfo/w/wyse120-wvb
+/usr/share/ncurses4/terminfo/w/wyse150
+/usr/share/ncurses4/terminfo/w/wyse150-25
+/usr/share/ncurses4/terminfo/w/wyse150-25-w
+/usr/share/ncurses4/terminfo/w/wyse150-vb
+/usr/share/ncurses4/terminfo/w/wyse150-w
+/usr/share/ncurses4/terminfo/w/wyse150-w-vb
+/usr/share/ncurses4/terminfo/w/wyse160
+/usr/share/ncurses4/terminfo/w/wyse160-25
+/usr/share/ncurses4/terminfo/w/wyse160-25-w
+/usr/share/ncurses4/terminfo/w/wyse160-42
+/usr/share/ncurses4/terminfo/w/wyse160-42-w
+/usr/share/ncurses4/terminfo/w/wyse160-43
+/usr/share/ncurses4/terminfo/w/wyse160-43-w
+/usr/share/ncurses4/terminfo/w/wyse160-vb
+/usr/share/ncurses4/terminfo/w/wyse160-w
+/usr/share/ncurses4/terminfo/w/wyse160-wvb
+/usr/share/ncurses4/terminfo/w/wyse185
+/usr/share/ncurses4/terminfo/w/wyse185-24
+/usr/share/ncurses4/terminfo/w/wyse185-vb
+/usr/share/ncurses4/terminfo/w/wyse185-w
+/usr/share/ncurses4/terminfo/w/wyse185-wvb
+/usr/share/ncurses4/terminfo/w/wyse30
+/usr/share/ncurses4/terminfo/w/wyse30-mc
+/usr/share/ncurses4/terminfo/w/wyse30-vb
+/usr/share/ncurses4/terminfo/w/wyse325
+/usr/share/ncurses4/terminfo/w/wyse325-25
+/usr/share/ncurses4/terminfo/w/wyse325-25w
+/usr/share/ncurses4/terminfo/w/wyse325-42
+/usr/share/ncurses4/terminfo/w/wyse325-42w
+/usr/share/ncurses4/terminfo/w/wyse325-43
+/usr/share/ncurses4/terminfo/w/wyse325-43w
+/usr/share/ncurses4/terminfo/w/wyse325-vb
+/usr/share/ncurses4/terminfo/w/wyse325-w
+/usr/share/ncurses4/terminfo/w/wyse325-wvb
+/usr/share/ncurses4/terminfo/w/wyse350
+/usr/share/ncurses4/terminfo/w/wyse350-vb
+/usr/share/ncurses4/terminfo/w/wyse350-w
+/usr/share/ncurses4/terminfo/w/wyse350-wvb
+/usr/share/ncurses4/terminfo/w/wyse370
+/usr/share/ncurses4/terminfo/w/wyse50
+/usr/share/ncurses4/terminfo/w/wyse50-mc
+/usr/share/ncurses4/terminfo/w/wyse50-vb
+/usr/share/ncurses4/terminfo/w/wyse50-w
+/usr/share/ncurses4/terminfo/w/wyse50-wvb
+/usr/share/ncurses4/terminfo/w/wyse520
+/usr/share/ncurses4/terminfo/w/wyse520-24
+/usr/share/ncurses4/terminfo/w/wyse520-36
+/usr/share/ncurses4/terminfo/w/wyse520-36pc
+/usr/share/ncurses4/terminfo/w/wyse520-36w
+/usr/share/ncurses4/terminfo/w/wyse520-36wpc
+/usr/share/ncurses4/terminfo/w/wyse520-48
+/usr/share/ncurses4/terminfo/w/wyse520-48pc
+/usr/share/ncurses4/terminfo/w/wyse520-48w
+/usr/share/ncurses4/terminfo/w/wyse520-48wpc
+/usr/share/ncurses4/terminfo/w/wyse520-epc
+/usr/share/ncurses4/terminfo/w/wyse520-epc-w
+/usr/share/ncurses4/terminfo/w/wyse520-p-wvb
+/usr/share/ncurses4/terminfo/w/wyse520-pc-24
+/usr/share/ncurses4/terminfo/w/wyse520-pc-vb
+/usr/share/ncurses4/terminfo/w/wyse520-vb
+/usr/share/ncurses4/terminfo/w/wyse520-w
+/usr/share/ncurses4/terminfo/w/wyse520-wvb
+/usr/share/ncurses4/terminfo/w/wyse60
+/usr/share/ncurses4/terminfo/w/wyse60-25
+/usr/share/ncurses4/terminfo/w/wyse60-25-w
+/usr/share/ncurses4/terminfo/w/wyse60-316X
+/usr/share/ncurses4/terminfo/w/wyse60-42
+/usr/share/ncurses4/terminfo/w/wyse60-42-w
+/usr/share/ncurses4/terminfo/w/wyse60-43
+/usr/share/ncurses4/terminfo/w/wyse60-43-w
+/usr/share/ncurses4/terminfo/w/wyse60-vb
+/usr/share/ncurses4/terminfo/w/wyse60-w
+/usr/share/ncurses4/terminfo/w/wyse60-wvb
+/usr/share/ncurses4/terminfo/w/wyse75
+/usr/share/ncurses4/terminfo/w/wyse75-mc
+/usr/share/ncurses4/terminfo/w/wyse75-vb
+/usr/share/ncurses4/terminfo/w/wyse75-w
+/usr/share/ncurses4/terminfo/w/wyse75-wvb
+/usr/share/ncurses4/terminfo/w/wyse75ap
+/usr/share/ncurses4/terminfo/w/wyse85
+/usr/share/ncurses4/terminfo/w/wyse85-vb
+/usr/share/ncurses4/terminfo/w/wyse85-w
+/usr/share/ncurses4/terminfo/w/wyse85-wvb
+/usr/share/ncurses4/terminfo/w/wyse99gt
+/usr/share/ncurses4/terminfo/w/wyse99gt-25
+/usr/share/ncurses4/terminfo/w/wyse99gt-25-w
+/usr/share/ncurses4/terminfo/w/wyse99gt-vb
+/usr/share/ncurses4/terminfo/w/wyse99gt-w
+/usr/share/ncurses4/terminfo/w/wyse99gt-wvb
+/usr/share/ncurses4/terminfo/x
+/usr/share/ncurses4/terminfo/x/x10term
+/usr/share/ncurses4/terminfo/x/x1700
+/usr/share/ncurses4/terminfo/x/x1700-lm
+/usr/share/ncurses4/terminfo/x/x1720
+/usr/share/ncurses4/terminfo/x/x1750
+/usr/share/ncurses4/terminfo/x/x68k
+/usr/share/ncurses4/terminfo/x/x68k-ite
+/usr/share/ncurses4/terminfo/x/x820
+/usr/share/ncurses4/terminfo/x/xenix
+/usr/share/ncurses4/terminfo/x/xerox
+/usr/share/ncurses4/terminfo/x/xerox-lm
+/usr/share/ncurses4/terminfo/x/xerox1720
+/usr/share/ncurses4/terminfo/x/xerox820
+/usr/share/ncurses4/terminfo/x/xl83
+/usr/share/ncurses4/terminfo/x/xtalk
+/usr/share/ncurses4/terminfo/x/xterm
+/usr/share/ncurses4/terminfo/x/xterm+sl
+/usr/share/ncurses4/terminfo/x/xterm+sl-twm
+/usr/share/ncurses4/terminfo/x/xterm-16color
+/usr/share/ncurses4/terminfo/x/xterm-8bit
+/usr/share/ncurses4/terminfo/x/xterm-bold
+/usr/share/ncurses4/terminfo/x/xterm-nic
+/usr/share/ncurses4/terminfo/x/xterm-old
+/usr/share/ncurses4/terminfo/x/xterm-pcolor
+/usr/share/ncurses4/terminfo/x/xterm-r5
+/usr/share/ncurses4/terminfo/x/xterm-r6
+/usr/share/ncurses4/terminfo/x/xterm-sun
+/usr/share/ncurses4/terminfo/x/xterm-xf86-v32
+/usr/share/ncurses4/terminfo/x/xterm-xf86-v33
+/usr/share/ncurses4/terminfo/x/xterm-xf86-v40
+/usr/share/ncurses4/terminfo/x/xterm-xi
+/usr/share/ncurses4/terminfo/x/xterm1
+/usr/share/ncurses4/terminfo/x/xterms
+/usr/share/ncurses4/terminfo/x/xterms-sun
+/usr/share/ncurses4/terminfo/x/xwsh
+/usr/share/ncurses4/terminfo/z
+/usr/share/ncurses4/terminfo/z/z-100
+/usr/share/ncurses4/terminfo/z/z-100bw
+/usr/share/ncurses4/terminfo/z/z100
+/usr/share/ncurses4/terminfo/z/z100bw
+/usr/share/ncurses4/terminfo/z/z110
+/usr/share/ncurses4/terminfo/z/z110bw
+/usr/share/ncurses4/terminfo/z/z19
+/usr/share/ncurses4/terminfo/z/z29
+/usr/share/ncurses4/terminfo/z/z29a
+/usr/share/ncurses4/terminfo/z/z29a-kc-bc
+/usr/share/ncurses4/terminfo/z/z29a-kc-uc
+/usr/share/ncurses4/terminfo/z/z29a-nkc-bc
+/usr/share/ncurses4/terminfo/z/z29a-nkc-uc
+/usr/share/ncurses4/terminfo/z/z29b
+/usr/share/ncurses4/terminfo/z/z30
+/usr/share/ncurses4/terminfo/z/z340
+/usr/share/ncurses4/terminfo/z/z340-nam
+/usr/share/ncurses4/terminfo/z/z39-a
+/usr/share/ncurses4/terminfo/z/z39a
+/usr/share/ncurses4/terminfo/z/z50
+/usr/share/ncurses4/terminfo/z/z8001
+/usr/share/ncurses4/terminfo/z/zen30
+/usr/share/ncurses4/terminfo/z/zen50
+/usr/share/ncurses4/terminfo/z/zen8001
+/usr/share/ncurses4/terminfo/z/zenith
+/usr/share/ncurses4/terminfo/z/zenith29
+/usr/share/ncurses4/terminfo/z/zenith39-a
+/usr/share/ncurses4/terminfo/z/zenith39-ansi
+/usr/share/ncurses4/terminfo/z/zt-1
+/usr/share/ncurses4/terminfo/z/ztx
+/usr/share/ncurses4/terminfo/z/ztx-1-a
+/usr/share/ncurses4/terminfo/z/ztx11
+
+2 15 RPM:Files 0 0
+2 14 #text 0 1
+
+1 15 RDF:Description 0 0
+1 14 #text 0 1
+
+0 15 RDF:RDF 0 0
diff --git a/result/schemas/anyAttr-derive-errors1_0_0 b/result/schemas/anyAttr-derive-errors1_0_0
new file mode 100644
index 0000000..d8e465e
--- /dev/null
+++ b/result/schemas/anyAttr-derive-errors1_0_0
@@ -0,0 +1 @@
+./test/schemas/anyAttr-derive-errors1_0.xml validates
diff --git a/result/schemas/anyAttr-derive-errors1_0_0.err b/result/schemas/anyAttr-derive-errors1_0_0.err
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/result/schemas/anyAttr-derive-errors1_0_0.err
diff --git a/result/schemas/anyAttr-derive1_0_0 b/result/schemas/anyAttr-derive1_0_0
new file mode 100644
index 0000000..adae13d
--- /dev/null
+++ b/result/schemas/anyAttr-derive1_0_0
@@ -0,0 +1 @@
+./test/schemas/anyAttr-derive1_0.xml validates
diff --git a/result/schemas/anyAttr-derive1_0_0.err b/result/schemas/anyAttr-derive1_0_0.err
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/result/schemas/anyAttr-derive1_0_0.err
diff --git a/result/schemas/anyAttr-derive2_0_0 b/result/schemas/anyAttr-derive2_0_0
new file mode 100644
index 0000000..dccc6e2
--- /dev/null
+++ b/result/schemas/anyAttr-derive2_0_0
@@ -0,0 +1 @@
+./test/schemas/anyAttr-derive2_0.xml validates
diff --git a/result/schemas/anyAttr-derive2_0_0.err b/result/schemas/anyAttr-derive2_0_0.err
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/result/schemas/anyAttr-derive2_0_0.err
diff --git a/result/schemas/anyAttr-processContents-err1_0_0 b/result/schemas/anyAttr-processContents-err1_0_0
new file mode 100644
index 0000000..43e77aa
--- /dev/null
+++ b/result/schemas/anyAttr-processContents-err1_0_0
@@ -0,0 +1 @@
+./test/schemas/anyAttr-processContents-err1_0.xml fails to validate
diff --git a/result/schemas/anyAttr-processContents-err1_0_0.err b/result/schemas/anyAttr-processContents-err1_0_0.err
new file mode 100644
index 0000000..b09e268
--- /dev/null
+++ b/result/schemas/anyAttr-processContents-err1_0_0.err
@@ -0,0 +1,3 @@
+./test/schemas/anyAttr-processContents-err1_0.xml:11: element elem.lax: Schemas validity error : The value is not valid.
+./test/schemas/anyAttr-processContents-err1_0.xml:11: element elem.lax: Schemas validity error : Attribute "bar": the value is not valid.
+./test/schemas/anyAttr-processContents-err1_0.xml:12: element elem.strict: Schemas validity error : Attribute "barB" is not allowed.
diff --git a/result/schemas/anyAttr-processContents1_0_0 b/result/schemas/anyAttr-processContents1_0_0
new file mode 100644
index 0000000..30d0cc2
--- /dev/null
+++ b/result/schemas/anyAttr-processContents1_0_0
@@ -0,0 +1 @@
+./test/schemas/anyAttr-processContents1_0.xml validates
diff --git a/result/schemas/anyAttr-processContents1_0_0.err b/result/schemas/anyAttr-processContents1_0_0.err
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/result/schemas/anyAttr-processContents1_0_0.err
diff --git a/result/schemas/anyAttr1_0_0 b/result/schemas/anyAttr1_0_0
new file mode 100644
index 0000000..8afc23a
--- /dev/null
+++ b/result/schemas/anyAttr1_0_0
@@ -0,0 +1 @@
+./test/schemas/anyAttr1_0.xml validates
diff --git a/result/schemas/anyAttr1_0_0.err b/result/schemas/anyAttr1_0_0.err
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/result/schemas/anyAttr1_0_0.err
diff --git a/result/schemas/attruse_0_1.err b/result/schemas/attruse_0_1.err
index ad0290b..19ef72a 100644
--- a/result/schemas/attruse_0_1.err
+++ b/result/schemas/attruse_0_1.err
@@ -1,3 +1 @@
-./test/schemas/attruse_0_1.xml:3: element barA: Schemas validity error : required attribute attr on barA is missing
-./test/schemas/attruse_0_1.xml:3: element barA: Schemas validity error : required attribute attr on barA is missing
-./test/schemas/attruse_0_1.xml:3: element barA: Schemas validity error : required attribute attr on barA is missing
+./test/schemas/attruse_0_1.xml:3: element barA: Schemas validity error : Attribute "attr" is required but missing.
diff --git a/result/schemas/attruse_0_2.err b/result/schemas/attruse_0_2.err
index e34fe66..d68db7b 100644
--- a/result/schemas/attruse_0_2.err
+++ b/result/schemas/attruse_0_2.err
@@ -1,3 +1 @@
-./test/schemas/attruse_0_2.xml:6: element barC: Schemas validity error : attribute attr on barC is prohibited
-./test/schemas/attruse_0_2.xml:6: element barC: Schemas validity error : attribute attr on barC is prohibited
-./test/schemas/attruse_0_2.xml:6: element barC: Schemas validity error : attribute attr on barC is prohibited
+./test/schemas/attruse_0_2.xml:6: element barC: Schemas validity error : Attribute "attr" is not allowed.
diff --git a/result/schemas/bug141312_0_0 b/result/schemas/bug141312_0_0
new file mode 100644
index 0000000..d8048a7
--- /dev/null
+++ b/result/schemas/bug141312_0_0
@@ -0,0 +1 @@
+./test/schemas/bug141312_0.xml validates
diff --git a/result/schemas/bug141312_0_0.err b/result/schemas/bug141312_0_0.err
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/result/schemas/bug141312_0_0.err
diff --git a/result/schemas/bug143951_0_0 b/result/schemas/bug143951_0_0
new file mode 100644
index 0000000..2d0e3e7
--- /dev/null
+++ b/result/schemas/bug143951_0_0
@@ -0,0 +1 @@
+./test/schemas/bug143951_0.xml validates
diff --git a/result/schemas/bug143951_0_0.err b/result/schemas/bug143951_0_0.err
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/result/schemas/bug143951_0_0.err
diff --git a/result/schemas/cos-ct-extends-1-3_0_0 b/result/schemas/cos-ct-extends-1-3_0_0
new file mode 100644
index 0000000..5dd5bd7
--- /dev/null
+++ b/result/schemas/cos-ct-extends-1-3_0_0
@@ -0,0 +1 @@
+./test/schemas/cos-ct-extends-1-3_0.xml validates
diff --git a/result/schemas/cos-ct-extends-1-3_0_0.err b/result/schemas/cos-ct-extends-1-3_0_0.err
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/result/schemas/cos-ct-extends-1-3_0_0.err
diff --git a/result/schemas/cos-st-restricts-1-2-err_0_0 b/result/schemas/cos-st-restricts-1-2-err_0_0
new file mode 100644
index 0000000..dc34253
--- /dev/null
+++ b/result/schemas/cos-st-restricts-1-2-err_0_0
@@ -0,0 +1 @@
+./test/schemas/cos-st-restricts-1-2-err_0.xml fails to validate
diff --git a/result/schemas/cos-st-restricts-1-2-err_0_0.err b/result/schemas/cos-st-restricts-1-2-err_0_0.err
new file mode 100644
index 0000000..44a5cba
--- /dev/null
+++ b/result/schemas/cos-st-restricts-1-2-err_0_0.err
@@ -0,0 +1 @@
+./test/schemas/cos-st-restricts-1-2-err_0.xml:3: element foo: Schemas validity error : The value with length "2" is not facet-valid with respect to length = "3".
diff --git a/result/schemas/derivation-ok-extension-err_0_0 b/result/schemas/derivation-ok-extension-err_0_0
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/result/schemas/derivation-ok-extension-err_0_0
diff --git a/result/schemas/derivation-ok-extension-err_0_0.err b/result/schemas/derivation-ok-extension-err_0_0.err
new file mode 100644
index 0000000..ba7c2a8
--- /dev/null
+++ b/result/schemas/derivation-ok-extension-err_0_0.err
@@ -0,0 +1 @@
+./test/schemas/derivation-ok-extension-err_0.xsd:17: element attribute: Schemas parser error : ct-props-correct.4: Duplicate attribute use with the name "barA_1" specified
diff --git a/result/schemas/derivation-ok-extension_0_0 b/result/schemas/derivation-ok-extension_0_0
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/result/schemas/derivation-ok-extension_0_0
diff --git a/result/schemas/derivation-ok-extension_0_0.err b/result/schemas/derivation-ok-extension_0_0.err
new file mode 100644
index 0000000..8064fd2
--- /dev/null
+++ b/result/schemas/derivation-ok-extension_0_0.err
@@ -0,0 +1 @@
+./test/schemas/derivation-ok-extension_0.xsd:17: element attribute: Schemas parser error : ct-props-correct.4: Duplicate attribute use with the name "barA_1" specified
diff --git a/result/schemas/derivation-ok-restriction-2-1-1_0_0 b/result/schemas/derivation-ok-restriction-2-1-1_0_0
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/result/schemas/derivation-ok-restriction-2-1-1_0_0
diff --git a/result/schemas/derivation-ok-restriction-2-1-1_0_0.err b/result/schemas/derivation-ok-restriction-2-1-1_0_0.err
new file mode 100644
index 0000000..d006620
--- /dev/null
+++ b/result/schemas/derivation-ok-restriction-2-1-1_0_0.err
@@ -0,0 +1,6 @@
+./test/schemas/derivation-ok-restriction-2-1-1_0.xsd:16: element attribute: Schemas parser error : derivation-ok-restriction.2.1.1: The "optional" attribute use "barB_1" is inconsistent with a matching "required" attribute use of the base type
+./test/schemas/derivation-ok-restriction-2-1-1_0.xsd:20: element attribute: Schemas parser error : derivation-ok-restriction.3: The "required" attribute use "barB_3" of the base type does not have a matching attribute use in the derived type
+./test/schemas/derivation-ok-restriction-2-1-1_0.xsd:23: element attribute: Schemas parser error : derivation-ok-restriction.2.2: The attribute use "barC_1" has neither a matching attribute use, nor a matching wildcard in the base type
+./test/schemas/derivation-ok-restriction-2-1-1_0.xsd:25: element attribute: Schemas parser error : derivation-ok-restriction.2.2: The attribute use "barC_2" has neither a matching attribute use, nor a matching wildcard in the base type
+./test/schemas/derivation-ok-restriction-2-1-1_0.xsd:30: element attribute: Schemas parser error : derivation-ok-restriction.2.2: The attribute use "barD_1" has neither a matching attribute use, nor a matching wildcard in the base type
+./test/schemas/derivation-ok-restriction-2-1-1_0.xsd:32: element attribute: Schemas parser error : derivation-ok-restriction.2.2: The attribute use "barD_2" has neither a matching attribute use, nor a matching wildcard in the base type
diff --git a/result/schemas/derivation-ok-restriction-4-1-err_0_0 b/result/schemas/derivation-ok-restriction-4-1-err_0_0
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/result/schemas/derivation-ok-restriction-4-1-err_0_0
diff --git a/result/schemas/derivation-ok-restriction-4-1-err_0_0.err b/result/schemas/derivation-ok-restriction-4-1-err_0_0.err
new file mode 100644
index 0000000..4117353
--- /dev/null
+++ b/result/schemas/derivation-ok-restriction-4-1-err_0_0.err
@@ -0,0 +1,3 @@
+./test/schemas/derivation-ok-restriction-4-1-err_0.xsd:33: element complexType: Schemas parser error : The derived type "type.A" has an attribute wildcard, but the base type "base.type.A" does not have one.
+./test/schemas/derivation-ok-restriction-4-1-err_0.xsd:45: element complexType: Schemas parser error : The wildcard in the derived type "type.B" is not a valid subset of the one in the base type "base.type.B".
+./test/schemas/derivation-ok-restriction-4-1-err_0.xsd:57: element complexType: Schemas parser error : The process contents of the wildcard in the derived type "type.C" is weaker than that in the base type "base.type.C".
diff --git a/result/schemas/derivation-restriction-anyAttr_0_0 b/result/schemas/derivation-restriction-anyAttr_0_0
new file mode 100644
index 0000000..4e04176
--- /dev/null
+++ b/result/schemas/derivation-restriction-anyAttr_0_0
@@ -0,0 +1 @@
+./test/schemas/derivation-restriction-anyAttr_0.xml validates
diff --git a/result/schemas/derivation-restriction-anyAttr_0_0.err b/result/schemas/derivation-restriction-anyAttr_0_0.err
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/result/schemas/derivation-restriction-anyAttr_0_0.err
diff --git a/result/schemas/extension1_0_1.err b/result/schemas/extension1_0_1.err
index 7997de7..84d16bc 100644
--- a/result/schemas/extension1_0_1.err
+++ b/result/schemas/extension1_0_1.err
@@ -1 +1 @@
-./test/schemas/extension1_1.xml:1: element title: Schemas validity error : Attribute langue on title is unknown
+./test/schemas/extension1_1.xml:1: element title: Schemas validity error : Attribute "langue" is not allowed.
diff --git a/result/schemas/extension1_0_2.err b/result/schemas/extension1_0_2.err
index 516d200..4eaa663 100644
--- a/result/schemas/extension1_0_2.err
+++ b/result/schemas/extension1_0_2.err
@@ -1 +1 @@
-./test/schemas/extension1_2.xml:1: element title: Schemas validity error : Element title: child salut should not be present
+./test/schemas/extension1_2.xml:1: element title: Schemas validity error : Element children are not allowed, because the content type is a simple type.
diff --git a/result/schemas/facet-unionST-err1_0_0 b/result/schemas/facet-unionST-err1_0_0
new file mode 100644
index 0000000..baf8280
--- /dev/null
+++ b/result/schemas/facet-unionST-err1_0_0
@@ -0,0 +1 @@
+./test/schemas/facet-unionST-err1_0.xml fails to validate
diff --git a/result/schemas/facet-unionST-err1_0_0.err b/result/schemas/facet-unionST-err1_0_0.err
new file mode 100644
index 0000000..f757848
--- /dev/null
+++ b/result/schemas/facet-unionST-err1_0_0.err
@@ -0,0 +1,2 @@
+./test/schemas/facet-unionST-err1_0.xml:3: element foo: Schemas validity error : The value failed to validate against the facet "enumeration".
+./test/schemas/facet-unionST-err1_0.xml:3: element foo: Schemas validity error : The value is not valid.
diff --git a/result/schemas/hexbinary_0_1.err b/result/schemas/hexbinary_0_1.err
index c134ddb..b9f1933 100644
--- a/result/schemas/hexbinary_0_1.err
+++ b/result/schemas/hexbinary_0_1.err
@@ -1,9 +1,12 @@
-./test/schemas/hexbinary_1.xml:4: element hex: Schemas validity error : Element hex: failed to validate basic type hexBinary
-./test/schemas/hexbinary_1.xml:5: element hex: Schemas validity error : Element hex: failed to validate basic type hexBinary
-./test/schemas/hexbinary_1.xml:6: element hex: Schemas validity error : Element hex: failed to validate basic type hexBinary
-./test/schemas/hexbinary_1.xml:7: element hex: Schemas validity error : Element hex: failed to validate basic type hexBinary
-./test/schemas/hexbinary_1.xml:8: element hex: Schemas validity error : Element hex: failed to validate basic type hexBinary
-./test/schemas/hexbinary_1.xml:9: element hex: Schemas validity error : Element hex: failed to validate basic type hexBinary
-./test/schemas/hexbinary_1.xml:11: element hex2: Schemas validity error : Failed to validate type with facet maxLength
-./test/schemas/hexbinary_1.xml:13: element hex3: Schemas validity error : Failed to validate type with facet length
-./test/schemas/hexbinary_1.xml:14: element hex3: Schemas validity error : Failed to validate type with facet length
+./test/schemas/hexbinary_1.xml:4: element hex: Schemas validity error : The value is not valid.
+./test/schemas/hexbinary_1.xml:5: element hex: Schemas validity error : The value is not valid.
+./test/schemas/hexbinary_1.xml:6: element hex: Schemas validity error : The value is not valid.
+./test/schemas/hexbinary_1.xml:7: element hex: Schemas validity error : The value is not valid.
+./test/schemas/hexbinary_1.xml:8: element hex: Schemas validity error : The value is not valid.
+./test/schemas/hexbinary_1.xml:9: element hex: Schemas validity error : The value is not valid.
+./test/schemas/hexbinary_1.xml:11: element hex2: Schemas validity error : The value failed to validate against the facet "maxLength".
+./test/schemas/hexbinary_1.xml:11: element hex2: Schemas validity error : The value is not valid.
+./test/schemas/hexbinary_1.xml:13: element hex3: Schemas validity error : The value failed to validate against the facet "length".
+./test/schemas/hexbinary_1.xml:13: element hex3: Schemas validity error : The value is not valid.
+./test/schemas/hexbinary_1.xml:14: element hex3: Schemas validity error : The value failed to validate against the facet "length".
+./test/schemas/hexbinary_1.xml:14: element hex3: Schemas validity error : The value is not valid.
diff --git a/result/schemas/length3_0_0.err b/result/schemas/length3_0_0.err
index 048a3c6..753136f 100644
--- a/result/schemas/length3_0_0.err
+++ b/result/schemas/length3_0_0.err
@@ -1 +1 @@
-./test/schemas/length3_0.xsd:5: element element: Schemas parser error : Schemas: element size type non-positive-integer not found
+./test/schemas/length3_0.xsd:5: element element: Schemas parser error : Element "size": the QName "non-positive-integer" of the attribute "type" does not resolve to a schema component.
diff --git a/result/schemas/ns0_0_3.err b/result/schemas/ns0_0_3.err
index 6578c9e..25e5bf3 100644
--- a/result/schemas/ns0_0_3.err
+++ b/result/schemas/ns0_0_3.err
@@ -1 +1 @@
-./test/schemas/ns0_3.xml:1: element foo: Schemas validity error : Attribute id on foo is unknown
+./test/schemas/ns0_3.xml:1: element foo: Schemas validity error : Attribute "id" is not allowed.
diff --git a/result/schemas/ns0_0_4.err b/result/schemas/ns0_0_4.err
index 14b949d..fc6efc0 100644
--- a/result/schemas/ns0_0_4.err
+++ b/result/schemas/ns0_0_4.err
@@ -1 +1 @@
-./test/schemas/ns0_4.xml:2: element foo: Schemas validity error : Attribute id on foo is unknown
+./test/schemas/ns0_4.xml:2: element foo: Schemas validity error : Attribute "id" is not allowed.
diff --git a/result/schemas/ns0_1_0.err b/result/schemas/ns0_1_0.err
index 6e5ba4a..83b2fc9 100644
--- a/result/schemas/ns0_1_0.err
+++ b/result/schemas/ns0_1_0.err
@@ -1 +1 @@
-./test/schemas/ns0_0.xml:1: element foo: Schemas validity error : Attribute id on foo is unknown
+./test/schemas/ns0_0.xml:1: element foo: Schemas validity error : Attribute "id" is not allowed.
diff --git a/result/schemas/ns0_1_1.err b/result/schemas/ns0_1_1.err
index 008b122..f61c19b 100644
--- a/result/schemas/ns0_1_1.err
+++ b/result/schemas/ns0_1_1.err
@@ -1 +1 @@
-./test/schemas/ns0_1.xml:1: element foo: Schemas validity error : Attribute id on foo is unknown
+./test/schemas/ns0_1.xml:1: element foo: Schemas validity error : Attribute "id" is not allowed.
diff --git a/result/schemas/scc-no-xmlns_0_0 b/result/schemas/scc-no-xmlns_0_0
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/result/schemas/scc-no-xmlns_0_0
diff --git a/result/schemas/scc-no-xmlns_0_0.err b/result/schemas/scc-no-xmlns_0_0.err
new file mode 100644
index 0000000..536bdfe
--- /dev/null
+++ b/result/schemas/scc-no-xmlns_0_0.err
@@ -0,0 +1 @@
+./test/schemas/scc-no-xmlns_0.xsd:7: element attribute: Schemas parser error : The name of an attribute declaration must not match "xmlns".
diff --git a/result/schemas/scc-no-xsi_0_0 b/result/schemas/scc-no-xsi_0_0
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/result/schemas/scc-no-xsi_0_0
diff --git a/result/schemas/scc-no-xsi_0_0.err b/result/schemas/scc-no-xsi_0_0.err
new file mode 100644
index 0000000..576d194
--- /dev/null
+++ b/result/schemas/scc-no-xsi_0_0.err
@@ -0,0 +1 @@
+./test/schemas/scc-no-xsi_0.xsd:7: element attribute: Schemas parser error : The target namespace of an attribute declaration, must not match "http://www.w3.org/2001/XMLSchema-instance"
diff --git a/result/schemas/src-attribute1_0_0 b/result/schemas/src-attribute1_0_0
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/result/schemas/src-attribute1_0_0
diff --git a/result/schemas/src-attribute1_0_0.err b/result/schemas/src-attribute1_0_0.err
new file mode 100644
index 0000000..c2b7cf7
--- /dev/null
+++ b/result/schemas/src-attribute1_0_0.err
@@ -0,0 +1 @@
+./test/schemas/src-attribute1_0.xsd:9: element attribute: Schemas parser error : Attribute declaration has both, "default" and "fixed"
diff --git a/result/schemas/src-attribute2_0_0 b/result/schemas/src-attribute2_0_0
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/result/schemas/src-attribute2_0_0
diff --git a/result/schemas/src-attribute2_0_0.err b/result/schemas/src-attribute2_0_0.err
new file mode 100644
index 0000000..4c8bd6c
--- /dev/null
+++ b/result/schemas/src-attribute2_0_0.err
@@ -0,0 +1 @@
+./test/schemas/src-attribute2_0.xsd:9: element attribute: Schemas parser error : Attribute declaration has "default" but "use" is not "optional"
diff --git a/result/schemas/src-attribute3-1_0_0 b/result/schemas/src-attribute3-1_0_0
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/result/schemas/src-attribute3-1_0_0
diff --git a/result/schemas/src-attribute3-1_0_0.err b/result/schemas/src-attribute3-1_0_0.err
new file mode 100644
index 0000000..27c4881
--- /dev/null
+++ b/result/schemas/src-attribute3-1_0_0.err
@@ -0,0 +1 @@
+./test/schemas/src-attribute3-1_0.xsd:9: element attribute: Schemas parser error : Attribute declaration "bar" has both, "name" and "ref"
diff --git a/result/schemas/src-attribute3-2-form_0_0 b/result/schemas/src-attribute3-2-form_0_0
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/result/schemas/src-attribute3-2-form_0_0
diff --git a/result/schemas/src-attribute3-2-form_0_0.err b/result/schemas/src-attribute3-2-form_0_0.err
new file mode 100644
index 0000000..fe224f2
--- /dev/null
+++ b/result/schemas/src-attribute3-2-form_0_0.err
@@ -0,0 +1 @@
+./test/schemas/src-attribute3-2-form_0.xsd:10: element attribute: Schemas parser error : Attribute declaration anonattr 2 has "ref", thus "form" must be absent
diff --git a/result/schemas/src-attribute3-2-st_0_0 b/result/schemas/src-attribute3-2-st_0_0
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/result/schemas/src-attribute3-2-st_0_0
diff --git a/result/schemas/src-attribute3-2-st_0_0.err b/result/schemas/src-attribute3-2-st_0_0.err
new file mode 100644
index 0000000..d873881
--- /dev/null
+++ b/result/schemas/src-attribute3-2-st_0_0.err
@@ -0,0 +1 @@
+./test/schemas/src-attribute3-2-st_0.xsd:11: element simpleType: Schemas parser error : Attribute declaration anonattr 2 has both ("ref" or "type") and <simpleType>
diff --git a/result/schemas/src-attribute3-2-type_0_0 b/result/schemas/src-attribute3-2-type_0_0
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/result/schemas/src-attribute3-2-type_0_0
diff --git a/result/schemas/src-attribute3-2-type_0_0.err b/result/schemas/src-attribute3-2-type_0_0.err
new file mode 100644
index 0000000..6b324fc
--- /dev/null
+++ b/result/schemas/src-attribute3-2-type_0_0.err
@@ -0,0 +1 @@
+./test/schemas/src-attribute3-2-type_0.xsd:10: element attribute: Schemas parser error : Attribute declaration anonattr 2 has "ref", thus "type" must be absent
diff --git a/result/schemas/src-attribute4_0_0 b/result/schemas/src-attribute4_0_0
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/result/schemas/src-attribute4_0_0
diff --git a/result/schemas/src-attribute4_0_0.err b/result/schemas/src-attribute4_0_0.err
new file mode 100644
index 0000000..3aab45b
--- /dev/null
+++ b/result/schemas/src-attribute4_0_0.err
@@ -0,0 +1 @@
+./test/schemas/src-attribute4_0.xsd:8: element simpleType: Schemas parser error : Attribute declaration bar has both ("ref" or "type") and <simpleType>
diff --git a/result/schemas/src-element1_0_0 b/result/schemas/src-element1_0_0
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/result/schemas/src-element1_0_0
diff --git a/result/schemas/src-element1_0_0.err b/result/schemas/src-element1_0_0.err
new file mode 100644
index 0000000..fdcbbc9
--- /dev/null
+++ b/result/schemas/src-element1_0_0.err
@@ -0,0 +1 @@
+./test/schemas/src-element1_0.xsd:7: element element: Schemas parser error : Element foo has both default and fixed
diff --git a/result/schemas/src-element2-1_0_0 b/result/schemas/src-element2-1_0_0
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/result/schemas/src-element2-1_0_0
diff --git a/result/schemas/src-element2-1_0_0.err b/result/schemas/src-element2-1_0_0.err
new file mode 100644
index 0000000..f99cb3b
--- /dev/null
+++ b/result/schemas/src-element2-1_0_0.err
@@ -0,0 +1 @@
+./test/schemas/src-element2-1_0.xsd:12: element element: Schemas parser error : Element declaration has both, "name" and "ref"
diff --git a/result/schemas/src-element2-2_0_0 b/result/schemas/src-element2-2_0_0
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/result/schemas/src-element2-2_0_0
diff --git a/result/schemas/src-element2-2_0_0.err b/result/schemas/src-element2-2_0_0.err
new file mode 100644
index 0000000..3250472
--- /dev/null
+++ b/result/schemas/src-element2-2_0_0.err
@@ -0,0 +1,8 @@
+./test/schemas/src-element2-2_0.xsd:23: element complexType: Schemas parser error : Element declaration anonelem 6: only annotation is allowed as content in addition to ref
+./test/schemas/src-element2-2_0.xsd:29: element simpleType: Schemas parser error : Element declaration anonelem 7: only annotation is allowed as content in addition to ref
+./test/schemas/src-element2-2_0.xsd:36: element element: Schemas parser error : Element declaration anonelem 8: only minOccurs, maxOccurs and id are allowed in addition to ref
+./test/schemas/src-element2-2_0.xsd:37: element element: Schemas parser error : Element declaration anonelem 9: only minOccurs, maxOccurs and id are allowed in addition to ref
+./test/schemas/src-element2-2_0.xsd:38: element element: Schemas parser error : Element declaration anonelem 10: only minOccurs, maxOccurs and id are allowed in addition to ref
+./test/schemas/src-element2-2_0.xsd:39: element element: Schemas parser error : Element declaration anonelem 11: only minOccurs, maxOccurs and id are allowed in addition to ref
+./test/schemas/src-element2-2_0.xsd:40: element element: Schemas parser error : Element declaration anonelem 12: only minOccurs, maxOccurs and id are allowed in addition to ref
+./test/schemas/src-element2-2_0.xsd:41: element element: Schemas parser error : Element declaration anonelem 13: only minOccurs, maxOccurs and id are allowed in addition to ref
diff --git a/result/schemas/src-element3_0_0 b/result/schemas/src-element3_0_0
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/result/schemas/src-element3_0_0
diff --git a/result/schemas/src-element3_0_0.err b/result/schemas/src-element3_0_0.err
new file mode 100644
index 0000000..0e38d17
--- /dev/null
+++ b/result/schemas/src-element3_0_0.err
@@ -0,0 +1,2 @@
+./test/schemas/src-element3_0.xsd:8: element complexType: Schemas parser error : Element declaration foo has both "type" and a local complex type
+./test/schemas/src-element3_0.xsd:16: element simpleType: Schemas parser error : Element declaration bar has both "type" and a local simple type
diff --git a/result/schemas/vdv-first4_0_1.err b/result/schemas/vdv-first4_0_1.err
index 6eafb62..155f906 100644
--- a/result/schemas/vdv-first4_0_1.err
+++ b/result/schemas/vdv-first4_0_1.err
@@ -1 +1 @@
-./test/schemas/vdv-first4_1.xml:14: element born: Schemas validity error : Failed to validate basic type date
+./test/schemas/vdv-first4_1.xml:14: element born: Schemas validity error : The value is not valid.
diff --git a/result/schemas/vdv-first4_0_2.err b/result/schemas/vdv-first4_0_2.err
index d37271a..42a1900 100644
--- a/result/schemas/vdv-first4_0_2.err
+++ b/result/schemas/vdv-first4_0_2.err
@@ -1 +1,2 @@
-./test/schemas/vdv-first4_2.xml:24: element born: Schemas validity error : Failed to validate type with facet pattern
+./test/schemas/vdv-first4_2.xml:24: element born: Schemas validity error : The value failed to validate against the facet "pattern".
+./test/schemas/vdv-first4_2.xml:24: element born: Schemas validity error : The value is not valid.
diff --git a/result/schemas/xsd-simpleType-varieties_0_0 b/result/schemas/xsd-simpleType-varieties_0_0
new file mode 100644
index 0000000..a66506a
--- /dev/null
+++ b/result/schemas/xsd-simpleType-varieties_0_0
@@ -0,0 +1 @@
+./test/schemas/xsd-simpleType-varieties_0.xml validates
diff --git a/result/schemas/xsd-simpleType-varieties_0_0.err b/result/schemas/xsd-simpleType-varieties_0_0.err
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/result/schemas/xsd-simpleType-varieties_0_0.err
diff --git a/result/slashdot.rdf.rde b/result/slashdot.rdf.rde
new file mode 100644
index 0000000..fecd24d
--- /dev/null
+++ b/result/slashdot.rdf.rde
@@ -0,0 +1,218 @@
+0 1 rdf:RDF 0 0
+1 14 #text 0 1
+
+
+1 1 channel 0 0
+2 14 #text 0 1
+
+2 1 title 0 0
+3 3 #text 0 1 Slashdot:News for Nerds. Stuff that Matters.
+2 15 title 0 0
+2 14 #text 0 1
+
+2 1 link 0 0
+3 3 #text 0 1 http://slashdot.org/
+2 15 link 0 0
+2 14 #text 0 1
+
+2 1 description 0 0
+3 3 #text 0 1 News for Nerds. Stuff that Matters
+2 15 description 0 0
+2 14 #text 0 1
+
+1 15 channel 0 0
+1 14 #text 0 1
+
+
+1 1 image 0 0
+2 14 #text 0 1
+
+2 1 title 0 0
+3 3 #text 0 1 Slashdot
+2 15 title 0 0
+2 14 #text 0 1
+
+2 1 url 0 0
+3 3 #text 0 1 http://slashdot.org/images/slashdotlg.gif
+2 15 url 0 0
+2 14 #text 0 1
+
+2 1 link 0 0
+3 3 #text 0 1 http://slashdot.org
+2 15 link 0 0
+2 14 #text 0 1
+
+1 15 image 0 0
+1 14 #text 0 1
+
+
+1 1 item 0 0
+2 14 #text 0 1
+
+2 1 title 0 0
+3 3 #text 0 1 100 Mbit/s on Fibre to the home
+2 15 title 0 0
+2 14 #text 0 1
+
+2 1 link 0 0
+3 3 #text 0 1 http://slashdot.org/articles/99/06/06/1440211.shtml
+2 15 link 0 0
+2 14 #text 0 1
+
+1 15 item 0 0
+1 14 #text 0 1
+
+
+1 1 item 0 0
+2 14 #text 0 1
+
+2 1 title 0 0
+3 3 #text 0 1 Gimp 1.2 Preview
+2 15 title 0 0
+2 14 #text 0 1
+
+2 1 link 0 0
+3 3 #text 0 1 http://slashdot.org/articles/99/06/06/1438246.shtml
+2 15 link 0 0
+2 14 #text 0 1
+
+1 15 item 0 0
+1 14 #text 0 1
+
+
+1 1 item 0 0
+2 14 #text 0 1
+
+2 1 title 0 0
+3 3 #text 0 1 Sony's AIBO robot Sold Out
+2 15 title 0 0
+2 14 #text 0 1
+
+2 1 link 0 0
+3 3 #text 0 1 http://slashdot.org/articles/99/06/06/1432256.shtml
+2 15 link 0 0
+2 14 #text 0 1
+
+1 15 item 0 0
+1 14 #text 0 1
+
+
+1 1 item 0 0
+2 14 #text 0 1
+
+2 1 title 0 0
+3 3 #text 0 1 Ask Slashdot: Another Word for "Hacker"?
+2 15 title 0 0
+2 14 #text 0 1
+
+2 1 link 0 0
+3 3 #text 0 1 http://slashdot.org/askslashdot/99/06/05/1815225.shtml
+2 15 link 0 0
+2 14 #text 0 1
+
+1 15 item 0 0
+1 14 #text 0 1
+
+
+1 1 item 0 0
+2 14 #text 0 1
+
+2 1 title 0 0
+3 3 #text 0 1 Corel Linux FAQ
+2 15 title 0 0
+2 14 #text 0 1
+
+2 1 link 0 0
+3 3 #text 0 1 http://slashdot.org/articles/99/06/05/1842218.shtml
+2 15 link 0 0
+2 14 #text 0 1
+
+1 15 item 0 0
+1 14 #text 0 1
+
+
+1 1 item 0 0
+2 14 #text 0 1
+
+2 1 title 0 0
+3 3 #text 0 1 Upside downsides MP3.COM.
+2 15 title 0 0
+2 14 #text 0 1
+
+2 1 link 0 0
+3 3 #text 0 1 http://slashdot.org/articles/99/06/05/1558210.shtml
+2 15 link 0 0
+2 14 #text 0 1
+
+1 15 item 0 0
+1 14 #text 0 1
+
+
+1 1 item 0 0
+2 14 #text 0 1
+
+2 1 title 0 0
+3 3 #text 0 1 2 Terabits of Bandwidth
+2 15 title 0 0
+2 14 #text 0 1
+
+2 1 link 0 0
+3 3 #text 0 1 http://slashdot.org/articles/99/06/05/1554258.shtml
+2 15 link 0 0
+2 14 #text 0 1
+
+1 15 item 0 0
+1 14 #text 0 1
+
+
+1 1 item 0 0
+2 14 #text 0 1
+
+2 1 title 0 0
+3 3 #text 0 1 Suppression of cold fusion research?
+2 15 title 0 0
+2 14 #text 0 1
+
+2 1 link 0 0
+3 3 #text 0 1 http://slashdot.org/articles/99/06/04/2313200.shtml
+2 15 link 0 0
+2 14 #text 0 1
+
+1 15 item 0 0
+1 14 #text 0 1
+
+
+1 1 item 0 0
+2 14 #text 0 1
+
+2 1 title 0 0
+3 3 #text 0 1 California Gov. Halts Wage Info Sale
+2 15 title 0 0
+2 14 #text 0 1
+
+2 1 link 0 0
+3 3 #text 0 1 http://slashdot.org/articles/99/06/04/235256.shtml
+2 15 link 0 0
+2 14 #text 0 1
+
+1 15 item 0 0
+1 14 #text 0 1
+
+
+1 1 item 0 0
+2 14 #text 0 1
+
+2 1 title 0 0
+3 3 #text 0 1 Red Hat Announces IPO
+2 15 title 0 0
+2 14 #text 0 1
+
+2 1 link 0 0
+3 3 #text 0 1 http://slashdot.org/articles/99/06/04/0849207.shtml
+2 15 link 0 0
+2 14 #text 0 1
+
+1 15 item 0 0
+1 14 #text 0 1
+
+0 15 rdf:RDF 0 0
diff --git a/result/slashdot.xml.rde b/result/slashdot.xml.rde
new file mode 100644
index 0000000..56b6836
--- /dev/null
+++ b/result/slashdot.xml.rde
@@ -0,0 +1,514 @@
+0 1 ultramode 0 0
+1 14 #text 0 1
+
+1 1 story 0 0
+2 14 #text 0 1
+
+2 1 title 0 0
+3 3 #text 0 1 100 Mbit/s on Fibre to the home
+2 15 title 0 0
+2 14 #text 0 1
+
+2 1 url 0 0
+3 3 #text 0 1 http://slashdot.org/articles/99/06/06/1440211.shtml
+2 15 url 0 0
+2 14 #text 0 1
+
+2 1 time 0 0
+3 3 #text 0 1 1999-06-06 14:39:59
+2 15 time 0 0
+2 14 #text 0 1
+
+2 1 author 0 0
+3 3 #text 0 1 CmdrTaco
+2 15 author 0 0
+2 14 #text 0 1
+
+2 1 department 0 0
+3 3 #text 0 1 wouldn't-it-be-nice
+2 15 department 0 0
+2 14 #text 0 1
+
+2 1 topic 0 0
+3 3 #text 0 1 internet
+2 15 topic 0 0
+2 14 #text 0 1
+
+2 1 comments 0 0
+3 3 #text 0 1 20
+2 15 comments 0 0
+2 14 #text 0 1
+
+2 1 section 0 0
+3 3 #text 0 1 articles
+2 15 section 0 0
+2 14 #text 0 1
+
+2 1 image 0 0
+3 3 #text 0 1 topicinternet.jpg
+2 15 image 0 0
+2 14 #text 0 1
+
+1 15 story 0 0
+1 14 #text 0 1
+
+1 1 story 0 0
+2 14 #text 0 1
+
+2 1 title 0 0
+3 3 #text 0 1 Gimp 1.2 Preview
+2 15 title 0 0
+2 14 #text 0 1
+
+2 1 url 0 0
+3 3 #text 0 1 http://slashdot.org/articles/99/06/06/1438246.shtml
+2 15 url 0 0
+2 14 #text 0 1
+
+2 1 time 0 0
+3 3 #text 0 1 1999-06-06 14:38:40
+2 15 time 0 0
+2 14 #text 0 1
+
+2 1 author 0 0
+3 3 #text 0 1 CmdrTaco
+2 15 author 0 0
+2 14 #text 0 1
+
+2 1 department 0 0
+3 3 #text 0 1 stuff-to-read
+2 15 department 0 0
+2 14 #text 0 1
+
+2 1 topic 0 0
+3 3 #text 0 1 gimp
+2 15 topic 0 0
+2 14 #text 0 1
+
+2 1 comments 0 0
+3 3 #text 0 1 12
+2 15 comments 0 0
+2 14 #text 0 1
+
+2 1 section 0 0
+3 3 #text 0 1 articles
+2 15 section 0 0
+2 14 #text 0 1
+
+2 1 image 0 0
+3 3 #text 0 1 topicgimp.gif
+2 15 image 0 0
+2 14 #text 0 1
+
+1 15 story 0 0
+1 14 #text 0 1
+
+1 1 story 0 0
+2 14 #text 0 1
+
+2 1 title 0 0
+3 3 #text 0 1 Sony's AIBO robot Sold Out
+2 15 title 0 0
+2 14 #text 0 1
+
+2 1 url 0 0
+3 3 #text 0 1 http://slashdot.org/articles/99/06/06/1432256.shtml
+2 15 url 0 0
+2 14 #text 0 1
+
+2 1 time 0 0
+3 3 #text 0 1 1999-06-06 14:32:51
+2 15 time 0 0
+2 14 #text 0 1
+
+2 1 author 0 0
+3 3 #text 0 1 CmdrTaco
+2 15 author 0 0
+2 14 #text 0 1
+
+2 1 department 0 0
+3 3 #text 0 1 stuff-to-see
+2 15 department 0 0
+2 14 #text 0 1
+
+2 1 topic 0 0
+3 3 #text 0 1 tech
+2 15 topic 0 0
+2 14 #text 0 1
+
+2 1 comments 0 0
+3 3 #text 0 1 10
+2 15 comments 0 0
+2 14 #text 0 1
+
+2 1 section 0 0
+3 3 #text 0 1 articles
+2 15 section 0 0
+2 14 #text 0 1
+
+2 1 image 0 0
+3 3 #text 0 1 topictech2.jpg
+2 15 image 0 0
+2 14 #text 0 1
+
+1 15 story 0 0
+1 14 #text 0 1
+
+1 1 story 0 0
+2 14 #text 0 1
+
+2 1 title 0 0
+3 3 #text 0 1 Ask Slashdot: Another Word for "Hacker"?
+2 15 title 0 0
+2 14 #text 0 1
+
+2 1 url 0 0
+3 3 #text 0 1 http://slashdot.org/askslashdot/99/06/05/1815225.shtml
+2 15 url 0 0
+2 14 #text 0 1
+
+2 1 time 0 0
+3 3 #text 0 1 1999-06-05 20:00:00
+2 15 time 0 0
+2 14 #text 0 1
+
+2 1 author 0 0
+3 3 #text 0 1 Cliff
+2 15 author 0 0
+2 14 #text 0 1
+
+2 1 department 0 0
+3 3 #text 0 1 hacker-vs-cracker
+2 15 department 0 0
+2 14 #text 0 1
+
+2 1 topic 0 0
+3 3 #text 0 1 news
+2 15 topic 0 0
+2 14 #text 0 1
+
+2 1 comments 0 0
+3 3 #text 0 1 385
+2 15 comments 0 0
+2 14 #text 0 1
+
+2 1 section 0 0
+3 3 #text 0 1 askslashdot
+2 15 section 0 0
+2 14 #text 0 1
+
+2 1 image 0 0
+3 3 #text 0 1 topicnews.gif
+2 15 image 0 0
+2 14 #text 0 1
+
+1 15 story 0 0
+1 14 #text 0 1
+
+1 1 story 0 0
+2 14 #text 0 1
+
+2 1 title 0 0
+3 3 #text 0 1 Corel Linux FAQ
+2 15 title 0 0
+2 14 #text 0 1
+
+2 1 url 0 0
+3 3 #text 0 1 http://slashdot.org/articles/99/06/05/1842218.shtml
+2 15 url 0 0
+2 14 #text 0 1
+
+2 1 time 0 0
+3 3 #text 0 1 1999-06-05 18:42:06
+2 15 time 0 0
+2 14 #text 0 1
+
+2 1 author 0 0
+3 3 #text 0 1 CmdrTaco
+2 15 author 0 0
+2 14 #text 0 1
+
+2 1 department 0 0
+3 3 #text 0 1 stuff-to-read
+2 15 department 0 0
+2 14 #text 0 1
+
+2 1 topic 0 0
+3 3 #text 0 1 corel
+2 15 topic 0 0
+2 14 #text 0 1
+
+2 1 comments 0 0
+3 3 #text 0 1 164
+2 15 comments 0 0
+2 14 #text 0 1
+
+2 1 section 0 0
+3 3 #text 0 1 articles
+2 15 section 0 0
+2 14 #text 0 1
+
+2 1 image 0 0
+3 3 #text 0 1 topiccorel.gif
+2 15 image 0 0
+2 14 #text 0 1
+
+1 15 story 0 0
+1 14 #text 0 1
+
+1 1 story 0 0
+2 14 #text 0 1
+
+2 1 title 0 0
+3 3 #text 0 1 Upside downsides MP3.COM.
+2 15 title 0 0
+2 14 #text 0 1
+
+2 1 url 0 0
+3 3 #text 0 1 http://slashdot.org/articles/99/06/05/1558210.shtml
+2 15 url 0 0
+2 14 #text 0 1
+
+2 1 time 0 0
+3 3 #text 0 1 1999-06-05 15:56:45
+2 15 time 0 0
+2 14 #text 0 1
+
+2 1 author 0 0
+3 3 #text 0 1 CmdrTaco
+2 15 author 0 0
+2 14 #text 0 1
+
+2 1 department 0 0
+3 3 #text 0 1 stuff-to-think-about
+2 15 department 0 0
+2 14 #text 0 1
+
+2 1 topic 0 0
+3 3 #text 0 1 music
+2 15 topic 0 0
+2 14 #text 0 1
+
+2 1 comments 0 0
+3 3 #text 0 1 48
+2 15 comments 0 0
+2 14 #text 0 1
+
+2 1 section 0 0
+3 3 #text 0 1 articles
+2 15 section 0 0
+2 14 #text 0 1
+
+2 1 image 0 0
+3 3 #text 0 1 topicmusic.gif
+2 15 image 0 0
+2 14 #text 0 1
+
+1 15 story 0 0
+1 14 #text 0 1
+
+1 1 story 0 0
+2 14 #text 0 1
+
+2 1 title 0 0
+3 3 #text 0 1 2 Terabits of Bandwidth
+2 15 title 0 0
+2 14 #text 0 1
+
+2 1 url 0 0
+3 3 #text 0 1 http://slashdot.org/articles/99/06/05/1554258.shtml
+2 15 url 0 0
+2 14 #text 0 1
+
+2 1 time 0 0
+3 3 #text 0 1 1999-06-05 15:53:43
+2 15 time 0 0
+2 14 #text 0 1
+
+2 1 author 0 0
+3 3 #text 0 1 CmdrTaco
+2 15 author 0 0
+2 14 #text 0 1
+
+2 1 department 0 0
+3 3 #text 0 1 faster-porn
+2 15 department 0 0
+2 14 #text 0 1
+
+2 1 topic 0 0
+3 3 #text 0 1 internet
+2 15 topic 0 0
+2 14 #text 0 1
+
+2 1 comments 0 0
+3 3 #text 0 1 66
+2 15 comments 0 0
+2 14 #text 0 1
+
+2 1 section 0 0
+3 3 #text 0 1 articles
+2 15 section 0 0
+2 14 #text 0 1
+
+2 1 image 0 0
+3 3 #text 0 1 topicinternet.jpg
+2 15 image 0 0
+2 14 #text 0 1
+
+1 15 story 0 0
+1 14 #text 0 1
+
+1 1 story 0 0
+2 14 #text 0 1
+
+2 1 title 0 0
+3 3 #text 0 1 Suppression of cold fusion research?
+2 15 title 0 0
+2 14 #text 0 1
+
+2 1 url 0 0
+3 3 #text 0 1 http://slashdot.org/articles/99/06/04/2313200.shtml
+2 15 url 0 0
+2 14 #text 0 1
+
+2 1 time 0 0
+3 3 #text 0 1 1999-06-04 23:12:29
+2 15 time 0 0
+2 14 #text 0 1
+
+2 1 author 0 0
+3 3 #text 0 1 Hemos
+2 15 author 0 0
+2 14 #text 0 1
+
+2 1 department 0 0
+3 3 #text 0 1 possibly-probably
+2 15 department 0 0
+2 14 #text 0 1
+
+2 1 topic 0 0
+3 3 #text 0 1 science
+2 15 topic 0 0
+2 14 #text 0 1
+
+2 1 comments 0 0
+3 3 #text 0 1 217
+2 15 comments 0 0
+2 14 #text 0 1
+
+2 1 section 0 0
+3 3 #text 0 1 articles
+2 15 section 0 0
+2 14 #text 0 1
+
+2 1 image 0 0
+3 3 #text 0 1 topicscience.gif
+2 15 image 0 0
+2 14 #text 0 1
+
+1 15 story 0 0
+1 14 #text 0 1
+
+1 1 story 0 0
+2 14 #text 0 1
+
+2 1 title 0 0
+3 3 #text 0 1 California Gov. Halts Wage Info Sale
+2 15 title 0 0
+2 14 #text 0 1
+
+2 1 url 0 0
+3 3 #text 0 1 http://slashdot.org/articles/99/06/04/235256.shtml
+2 15 url 0 0
+2 14 #text 0 1
+
+2 1 time 0 0
+3 3 #text 0 1 1999-06-04 23:05:34
+2 15 time 0 0
+2 14 #text 0 1
+
+2 1 author 0 0
+3 3 #text 0 1 Hemos
+2 15 author 0 0
+2 14 #text 0 1
+
+2 1 department 0 0
+3 3 #text 0 1 woo-hoo!
+2 15 department 0 0
+2 14 #text 0 1
+
+2 1 topic 0 0
+3 3 #text 0 1 usa
+2 15 topic 0 0
+2 14 #text 0 1
+
+2 1 comments 0 0
+3 3 #text 0 1 16
+2 15 comments 0 0
+2 14 #text 0 1
+
+2 1 section 0 0
+3 3 #text 0 1 articles
+2 15 section 0 0
+2 14 #text 0 1
+
+2 1 image 0 0
+3 3 #text 0 1 topicus.gif
+2 15 image 0 0
+2 14 #text 0 1
+
+1 15 story 0 0
+1 14 #text 0 1
+
+1 1 story 0 0
+2 14 #text 0 1
+
+2 1 title 0 0
+3 3 #text 0 1 Red Hat Announces IPO
+2 15 title 0 0
+2 14 #text 0 1
+
+2 1 url 0 0
+3 3 #text 0 1 http://slashdot.org/articles/99/06/04/0849207.shtml
+2 15 url 0 0
+2 14 #text 0 1
+
+2 1 time 0 0
+3 3 #text 0 1 1999-06-04 19:30:18
+2 15 time 0 0
+2 14 #text 0 1
+
+2 1 author 0 0
+3 3 #text 0 1 Justin
+2 15 author 0 0
+2 14 #text 0 1
+
+2 1 department 0 0
+3 3 #text 0 1 details-sketchy
+2 15 department 0 0
+2 14 #text 0 1
+
+2 1 topic 0 0
+3 3 #text 0 1 redhat
+2 15 topic 0 0
+2 14 #text 0 1
+
+2 1 comments 0 0
+3 3 #text 0 1 155
+2 15 comments 0 0
+2 14 #text 0 1
+
+2 1 section 0 0
+3 3 #text 0 1 articles
+2 15 section 0 0
+2 14 #text 0 1
+
+2 1 image 0 0
+3 3 #text 0 1 topicredhat.gif
+2 15 image 0 0
+2 14 #text 0 1
+
+1 15 story 0 0
+1 14 #text 0 1
+
+0 15 ultramode 0 0
diff --git a/result/slashdot16.xml.rde b/result/slashdot16.xml.rde
new file mode 100644
index 0000000..cb7a86c
--- /dev/null
+++ b/result/slashdot16.xml.rde
@@ -0,0 +1,718 @@
+0 1 ultramode 0 0
+1 14 #text 0 1
+
+1 1 story 0 0
+2 14 #text 0 1
+
+2 1 title 0 0
+3 3 #text 0 1 100 Mbit/s on Fibre to the home
+2 15 title 0 0
+2 14 #text 0 1
+
+2 1 url 0 0
+3 3 #text 0 1 http://slashdot.org/articles/99/06/06/1440211.shtml
+2 15 url 0 0
+2 14 #text 0 1
+
+2 1 time 0 0
+3 3 #text 0 1 1999-06-06 14:39:59
+2 15 time 0 0
+2 14 #text 0 1
+
+2 1 author 0 0
+3 3 #text 0 1 CmdrTaco
+2 15 author 0 0
+2 14 #text 0 1
+
+2 1 department 0 0
+3 3 #text 0 1 wouldn't-it-be-nice
+2 15 department 0 0
+2 14 #text 0 1
+
+2 1 topic 0 0
+3 3 #text 0 1 internet
+2 15 topic 0 0
+2 14 #text 0 1
+
+2 1 comments 0 0
+3 3 #text 0 1 20
+2 15 comments 0 0
+2 14 #text 0 1
+
+2 1 section 0 0
+3 3 #text 0 1 articles
+2 15 section 0 0
+2 14 #text 0 1
+
+2 1 image 0 0
+3 3 #text 0 1 topicinternet.jpg
+2 15 image 0 0
+2 14 #text 0 1
+
+1 15 story 0 0
+1 14 #text 0 1
+
+1 1 story 0 0
+2 14 #text 0 1
+
+2 1 title 0 0
+3 3 #text 0 1 Gimp 1.2 Preview
+2 15 title 0 0
+2 14 #text 0 1
+
+2 1 url 0 0
+3 3 #text 0 1 http://slashdot.org/articles/99/06/06/1438246.shtml
+2 15 url 0 0
+2 14 #text 0 1
+
+2 1 time 0 0
+3 3 #text 0 1 1999-06-06 14:38:40
+2 15 time 0 0
+2 14 #text 0 1
+
+2 1 author 0 0
+3 3 #text 0 1 CmdrTaco
+2 15 author 0 0
+2 14 #text 0 1
+
+2 1 department 0 0
+3 3 #text 0 1 stuff-to-read
+2 15 department 0 0
+2 14 #text 0 1
+
+2 1 topic 0 0
+3 3 #text 0 1 gimp
+2 15 topic 0 0
+2 14 #text 0 1
+
+2 1 comments 0 0
+3 3 #text 0 1 12
+2 15 comments 0 0
+2 14 #text 0 1
+
+2 1 section 0 0
+3 3 #text 0 1 articles
+2 15 section 0 0
+2 14 #text 0 1
+
+2 1 image 0 0
+3 3 #text 0 1 topicgimp.gif
+2 15 image 0 0
+2 14 #text 0 1
+
+1 15 story 0 0
+1 14 #text 0 1
+
+1 1 story 0 0
+2 14 #text 0 1
+
+2 1 title 0 0
+3 3 #text 0 1 Sony's AIBO robot Sold Out
+2 15 title 0 0
+2 14 #text 0 1
+
+2 1 url 0 0
+3 3 #text 0 1 http://slashdot.org/articles/99/06/06/1432256.shtml
+2 15 url 0 0
+2 14 #text 0 1
+
+2 1 time 0 0
+3 3 #text 0 1 1999-06-06 14:32:51
+2 15 time 0 0
+2 14 #text 0 1
+
+2 1 author 0 0
+3 3 #text 0 1 CmdrTaco
+2 15 author 0 0
+2 14 #text 0 1
+
+2 1 department 0 0
+3 3 #text 0 1 stuff-to-see
+2 15 department 0 0
+2 14 #text 0 1
+
+2 1 topic 0 0
+3 3 #text 0 1 tech
+2 15 topic 0 0
+2 14 #text 0 1
+
+2 1 comments 0 0
+3 3 #text 0 1 10
+2 15 comments 0 0
+2 14 #text 0 1
+
+2 1 section 0 0
+3 3 #text 0 1 articles
+2 15 section 0 0
+2 14 #text 0 1
+
+2 1 image 0 0
+3 3 #text 0 1 topictech2.jpg
+2 15 image 0 0
+2 14 #text 0 1
+
+1 15 story 0 0
+1 14 #text 0 1
+
+1 1 story 0 0
+2 14 #text 0 1
+
+2 1 title 0 0
+3 3 #text 0 1 Ask Slashdot: Another Word for "Hacker"?
+2 15 title 0 0
+2 14 #text 0 1
+
+2 1 url 0 0
+3 3 #text 0 1 http://slashdot.org/askslashdot/99/06/05/1815225.shtml
+2 15 url 0 0
+2 14 #text 0 1
+
+2 1 time 0 0
+3 3 #text 0 1 1999-06-05 20:00:00
+2 15 time 0 0
+2 14 #text 0 1
+
+2 1 author 0 0
+3 3 #text 0 1 Cliff
+2 15 author 0 0
+2 14 #text 0 1
+
+2 1 department 0 0
+3 3 #text 0 1 hacker-vs-cracker
+2 15 department 0 0
+2 14 #text 0 1
+
+2 1 topic 0 0
+3 3 #text 0 1 news
+2 15 topic 0 0
+2 14 #text 0 1
+
+2 1 comments 0 0
+3 3 #text 0 1 385
+2 15 comments 0 0
+2 14 #text 0 1
+
+2 1 section 0 0
+3 3 #text 0 1 askslashdot
+2 15 section 0 0
+2 14 #text 0 1
+
+2 1 image 0 0
+3 3 #text 0 1 topicnews.gif
+2 15 image 0 0
+2 14 #text 0 1
+
+1 15 story 0 0
+1 14 #text 0 1
+
+1 1 story 0 0
+2 14 #text 0 1
+
+2 1 title 0 0
+3 3 #text 0 1 100 Mbit/s on Fibre to the home
+2 15 title 0 0
+2 14 #text 0 1
+
+2 1 url 0 0
+3 3 #text 0 1 http://slashdot.org/articles/99/06/06/1440211.shtml
+2 15 url 0 0
+2 14 #text 0 1
+
+2 1 time 0 0
+3 3 #text 0 1 1999-06-06 14:39:59
+2 15 time 0 0
+2 14 #text 0 1
+
+2 1 author 0 0
+3 3 #text 0 1 CmdrTaco
+2 15 author 0 0
+2 14 #text 0 1
+
+2 1 department 0 0
+3 3 #text 0 1 wouldn't-it-be-nice
+2 15 department 0 0
+2 14 #text 0 1
+
+2 1 topic 0 0
+3 3 #text 0 1 internet
+2 15 topic 0 0
+2 14 #text 0 1
+
+2 1 comments 0 0
+3 3 #text 0 1 20
+2 15 comments 0 0
+2 14 #text 0 1
+
+2 1 section 0 0
+3 3 #text 0 1 articles
+2 15 section 0 0
+2 14 #text 0 1
+
+2 1 image 0 0
+3 3 #text 0 1 topicinternet.jpg
+2 15 image 0 0
+2 14 #text 0 1
+
+1 15 story 0 0
+1 14 #text 0 1
+
+1 1 story 0 0
+2 14 #text 0 1
+
+2 1 title 0 0
+3 3 #text 0 1 Gimp 1.2 Preview
+2 15 title 0 0
+2 14 #text 0 1
+
+2 1 url 0 0
+3 3 #text 0 1 http://slashdot.org/articles/99/06/06/1438246.shtml
+2 15 url 0 0
+2 14 #text 0 1
+
+2 1 time 0 0
+3 3 #text 0 1 1999-06-06 14:38:40
+2 15 time 0 0
+2 14 #text 0 1
+
+2 1 author 0 0
+3 3 #text 0 1 CmdrTaco
+2 15 author 0 0
+2 14 #text 0 1
+
+2 1 department 0 0
+3 3 #text 0 1 stuff-to-read
+2 15 department 0 0
+2 14 #text 0 1
+
+2 1 topic 0 0
+3 3 #text 0 1 gimp
+2 15 topic 0 0
+2 14 #text 0 1
+
+2 1 comments 0 0
+3 3 #text 0 1 12
+2 15 comments 0 0
+2 14 #text 0 1
+
+2 1 section 0 0
+3 3 #text 0 1 articles
+2 15 section 0 0
+2 14 #text 0 1
+
+2 1 image 0 0
+3 3 #text 0 1 topicgimp.gif
+2 15 image 0 0
+2 14 #text 0 1
+
+1 15 story 0 0
+1 14 #text 0 1
+
+1 1 story 0 0
+2 14 #text 0 1
+
+2 1 title 0 0
+3 3 #text 0 1 Sony's AIBO robot Sold Out
+2 15 title 0 0
+2 14 #text 0 1
+
+2 1 url 0 0
+3 3 #text 0 1 http://slashdot.org/articles/99/06/06/1432256.shtml
+2 15 url 0 0
+2 14 #text 0 1
+
+2 1 time 0 0
+3 3 #text 0 1 1999-06-06 14:32:51
+2 15 time 0 0
+2 14 #text 0 1
+
+2 1 author 0 0
+3 3 #text 0 1 CmdrTaco
+2 15 author 0 0
+2 14 #text 0 1
+
+2 1 department 0 0
+3 3 #text 0 1 stuff-to-see
+2 15 department 0 0
+2 14 #text 0 1
+
+2 1 topic 0 0
+3 3 #text 0 1 tech
+2 15 topic 0 0
+2 14 #text 0 1
+
+2 1 comments 0 0
+3 3 #text 0 1 10
+2 15 comments 0 0
+2 14 #text 0 1
+
+2 1 section 0 0
+3 3 #text 0 1 articles
+2 15 section 0 0
+2 14 #text 0 1
+
+2 1 image 0 0
+3 3 #text 0 1 topictech2.jpg
+2 15 image 0 0
+2 14 #text 0 1
+
+1 15 story 0 0
+1 14 #text 0 1
+
+1 1 story 0 0
+2 14 #text 0 1
+
+2 1 title 0 0
+3 3 #text 0 1 Ask Slashdot: Another Word for "Hacker"?
+2 15 title 0 0
+2 14 #text 0 1
+
+2 1 url 0 0
+3 3 #text 0 1 http://slashdot.org/askslashdot/99/06/05/1815225.shtml
+2 15 url 0 0
+2 14 #text 0 1
+
+2 1 time 0 0
+3 3 #text 0 1 1999-06-05 20:00:00
+2 15 time 0 0
+2 14 #text 0 1
+
+2 1 author 0 0
+3 3 #text 0 1 Cliff
+2 15 author 0 0
+2 14 #text 0 1
+
+2 1 department 0 0
+3 3 #text 0 1 hacker-vs-cracker
+2 15 department 0 0
+2 14 #text 0 1
+
+2 1 topic 0 0
+3 3 #text 0 1 news
+2 15 topic 0 0
+2 14 #text 0 1
+
+2 1 comments 0 0
+3 3 #text 0 1 385
+2 15 comments 0 0
+2 14 #text 0 1
+
+2 1 section 0 0
+3 3 #text 0 1 askslashdot
+2 15 section 0 0
+2 14 #text 0 1
+
+2 1 image 0 0
+3 3 #text 0 1 topicnews.gif
+2 15 image 0 0
+2 14 #text 0 1
+
+1 15 story 0 0
+1 14 #text 0 1
+
+1 1 story 0 0
+2 14 #text 0 1
+
+2 1 title 0 0
+3 3 #text 0 1 Corel Linux FAQ
+2 15 title 0 0
+2 14 #text 0 1
+
+2 1 url 0 0
+3 3 #text 0 1 http://slashdot.org/articles/99/06/05/1842218.shtml
+2 15 url 0 0
+2 14 #text 0 1
+
+2 1 time 0 0
+3 3 #text 0 1 1999-06-05 18:42:06
+2 15 time 0 0
+2 14 #text 0 1
+
+2 1 author 0 0
+3 3 #text 0 1 CmdrTaco
+2 15 author 0 0
+2 14 #text 0 1
+
+2 1 department 0 0
+3 3 #text 0 1 stuff-to-read
+2 15 department 0 0
+2 14 #text 0 1
+
+2 1 topic 0 0
+3 3 #text 0 1 corel
+2 15 topic 0 0
+2 14 #text 0 1
+
+2 1 comments 0 0
+3 3 #text 0 1 164
+2 15 comments 0 0
+2 14 #text 0 1
+
+2 1 section 0 0
+3 3 #text 0 1 articles
+2 15 section 0 0
+2 14 #text 0 1
+
+2 1 image 0 0
+3 3 #text 0 1 topiccorel.gif
+2 15 image 0 0
+2 14 #text 0 1
+
+1 15 story 0 0
+1 14 #text 0 1
+
+1 1 story 0 0
+2 14 #text 0 1
+
+2 1 title 0 0
+3 3 #text 0 1 Upside downsides MP3.COM.
+2 15 title 0 0
+2 14 #text 0 1
+
+2 1 url 0 0
+3 3 #text 0 1 http://slashdot.org/articles/99/06/05/1558210.shtml
+2 15 url 0 0
+2 14 #text 0 1
+
+2 1 time 0 0
+3 3 #text 0 1 1999-06-05 15:56:45
+2 15 time 0 0
+2 14 #text 0 1
+
+2 1 author 0 0
+3 3 #text 0 1 CmdrTaco
+2 15 author 0 0
+2 14 #text 0 1
+
+2 1 department 0 0
+3 3 #text 0 1 stuff-to-think-about
+2 15 department 0 0
+2 14 #text 0 1
+
+2 1 topic 0 0
+3 3 #text 0 1 music
+2 15 topic 0 0
+2 14 #text 0 1
+
+2 1 comments 0 0
+3 3 #text 0 1 48
+2 15 comments 0 0
+2 14 #text 0 1
+
+2 1 section 0 0
+3 3 #text 0 1 articles
+2 15 section 0 0
+2 14 #text 0 1
+
+2 1 image 0 0
+3 3 #text 0 1 topicmusic.gif
+2 15 image 0 0
+2 14 #text 0 1
+
+1 15 story 0 0
+1 14 #text 0 1
+
+1 1 story 0 0
+2 14 #text 0 1
+
+2 1 title 0 0
+3 3 #text 0 1 2 Terabits of Bandwidth
+2 15 title 0 0
+2 14 #text 0 1
+
+2 1 url 0 0
+3 3 #text 0 1 http://slashdot.org/articles/99/06/05/1554258.shtml
+2 15 url 0 0
+2 14 #text 0 1
+
+2 1 time 0 0
+3 3 #text 0 1 1999-06-05 15:53:43
+2 15 time 0 0
+2 14 #text 0 1
+
+2 1 author 0 0
+3 3 #text 0 1 CmdrTaco
+2 15 author 0 0
+2 14 #text 0 1
+
+2 1 department 0 0
+3 3 #text 0 1 faster-porn
+2 15 department 0 0
+2 14 #text 0 1
+
+2 1 topic 0 0
+3 3 #text 0 1 internet
+2 15 topic 0 0
+2 14 #text 0 1
+
+2 1 comments 0 0
+3 3 #text 0 1 66
+2 15 comments 0 0
+2 14 #text 0 1
+
+2 1 section 0 0
+3 3 #text 0 1 articles
+2 15 section 0 0
+2 14 #text 0 1
+
+2 1 image 0 0
+3 3 #text 0 1 topicinternet.jpg
+2 15 image 0 0
+2 14 #text 0 1
+
+1 15 story 0 0
+1 14 #text 0 1
+
+1 1 story 0 0
+2 14 #text 0 1
+
+2 1 title 0 0
+3 3 #text 0 1 Suppression of cold fusion research?
+2 15 title 0 0
+2 14 #text 0 1
+
+2 1 url 0 0
+3 3 #text 0 1 http://slashdot.org/articles/99/06/04/2313200.shtml
+2 15 url 0 0
+2 14 #text 0 1
+
+2 1 time 0 0
+3 3 #text 0 1 1999-06-04 23:12:29
+2 15 time 0 0
+2 14 #text 0 1
+
+2 1 author 0 0
+3 3 #text 0 1 Hemos
+2 15 author 0 0
+2 14 #text 0 1
+
+2 1 department 0 0
+3 3 #text 0 1 possibly-probably
+2 15 department 0 0
+2 14 #text 0 1
+
+2 1 topic 0 0
+3 3 #text 0 1 science
+2 15 topic 0 0
+2 14 #text 0 1
+
+2 1 comments 0 0
+3 3 #text 0 1 217
+2 15 comments 0 0
+2 14 #text 0 1
+
+2 1 section 0 0
+3 3 #text 0 1 articles
+2 15 section 0 0
+2 14 #text 0 1
+
+2 1 image 0 0
+3 3 #text 0 1 topicscience.gif
+2 15 image 0 0
+2 14 #text 0 1
+
+1 15 story 0 0
+1 14 #text 0 1
+
+1 1 story 0 0
+2 14 #text 0 1
+
+2 1 title 0 0
+3 3 #text 0 1 California Gov. Halts Wage Info Sale
+2 15 title 0 0
+2 14 #text 0 1
+
+2 1 url 0 0
+3 3 #text 0 1 http://slashdot.org/articles/99/06/04/235256.shtml
+2 15 url 0 0
+2 14 #text 0 1
+
+2 1 time 0 0
+3 3 #text 0 1 1999-06-04 23:05:34
+2 15 time 0 0
+2 14 #text 0 1
+
+2 1 author 0 0
+3 3 #text 0 1 Hemos
+2 15 author 0 0
+2 14 #text 0 1
+
+2 1 department 0 0
+3 3 #text 0 1 woo-hoo!
+2 15 department 0 0
+2 14 #text 0 1
+
+2 1 topic 0 0
+3 3 #text 0 1 usa
+2 15 topic 0 0
+2 14 #text 0 1
+
+2 1 comments 0 0
+3 3 #text 0 1 16
+2 15 comments 0 0
+2 14 #text 0 1
+
+2 1 section 0 0
+3 3 #text 0 1 articles
+2 15 section 0 0
+2 14 #text 0 1
+
+2 1 image 0 0
+3 3 #text 0 1 topicus.gif
+2 15 image 0 0
+2 14 #text 0 1
+
+1 15 story 0 0
+1 14 #text 0 1
+
+1 1 story 0 0
+2 14 #text 0 1
+
+2 1 title 0 0
+3 3 #text 0 1 Red Hat Announces IPO
+2 15 title 0 0
+2 14 #text 0 1
+
+2 1 url 0 0
+3 3 #text 0 1 http://slashdot.org/articles/99/06/04/0849207.shtml
+2 15 url 0 0
+2 14 #text 0 1
+
+2 1 time 0 0
+3 3 #text 0 1 1999-06-04 19:30:18
+2 15 time 0 0
+2 14 #text 0 1
+
+2 1 author 0 0
+3 3 #text 0 1 Justin
+2 15 author 0 0
+2 14 #text 0 1
+
+2 1 department 0 0
+3 3 #text 0 1 details-sketchy
+2 15 department 0 0
+2 14 #text 0 1
+
+2 1 topic 0 0
+3 3 #text 0 1 redhat
+2 15 topic 0 0
+2 14 #text 0 1
+
+2 1 comments 0 0
+3 3 #text 0 1 155
+2 15 comments 0 0
+2 14 #text 0 1
+
+2 1 section 0 0
+3 3 #text 0 1 articles
+2 15 section 0 0
+2 14 #text 0 1
+
+2 1 image 0 0
+3 3 #text 0 1 topicredhat.gif
+2 15 image 0 0
+2 14 #text 0 1
+
+1 15 story 0 0
+1 14 #text 0 1
+
+0 15 ultramode 0 0
diff --git a/result/svg1.rde b/result/svg1.rde
new file mode 100644
index 0000000..91497d2
--- /dev/null
+++ b/result/svg1.rde
@@ -0,0 +1,477 @@
+0 10 svg 0 0
+0 1 svg 0 0
+1 14 #text 0 1
+
+1 1 g 0 0
+2 14 #text 0 1
+
+1 15 g 0 0
+1 14 #text 0 1
+
+1 1 g 0 0
+2 14 #text 0 1
+
+2 1 polyline 1 0
+2 14 #text 0 1
+
+1 15 g 0 0
+1 14 #text 0 1
+
+1 1 g 0 0
+2 14 #text 0 1
+
+2 1 polyline 1 0
+2 14 #text 0 1
+
+1 15 g 0 0
+1 14 #text 0 1
+
+1 1 g 0 0
+2 14 #text 0 1
+
+2 1 polyline 1 0
+2 14 #text 0 1
+
+1 15 g 0 0
+1 14 #text 0 1
+
+1 1 g 0 0
+2 14 #text 0 1
+
+2 1 polyline 1 0
+2 14 #text 0 1
+
+1 15 g 0 0
+1 14 #text 0 1
+
+1 1 g 0 0
+2 14 #text 0 1
+
+2 1 polyline 1 0
+2 14 #text 0 1
+
+2 1 polyline 1 0
+2 14 #text 0 1
+
+2 1 polyline 1 0
+2 14 #text 0 1
+
+2 1 polyline 1 0
+2 14 #text 0 1
+
+2 1 polyline 1 0
+2 14 #text 0 1
+
+2 1 polyline 1 0
+2 14 #text 0 1
+
+2 1 polyline 1 0
+2 14 #text 0 1
+
+2 1 polyline 1 0
+2 14 #text 0 1
+
+2 1 polyline 1 0
+2 14 #text 0 1
+
+2 1 polyline 1 0
+2 14 #text 0 1
+
+2 1 polyline 1 0
+2 14 #text 0 1
+
+2 1 polyline 1 0
+2 14 #text 0 1
+
+2 1 polyline 1 0
+2 14 #text 0 1
+
+2 1 polyline 1 0
+2 14 #text 0 1
+
+2 1 polyline 1 0
+2 14 #text 0 1
+
+1 15 g 0 0
+1 14 #text 0 1
+
+1 1 g 0 0
+2 14 #text 0 1
+
+2 1 polyline 1 0
+2 14 #text 0 1
+
+2 1 polyline 1 0
+2 14 #text 0 1
+
+1 15 g 0 0
+1 14 #text 0 1
+
+1 1 g 0 0
+2 14 #text 0 1
+
+2 1 polyline 1 0
+2 14 #text 0 1
+
+2 1 polyline 1 0
+2 14 #text 0 1
+
+2 1 polyline 1 0
+2 14 #text 0 1
+
+2 1 polyline 1 0
+2 14 #text 0 1
+
+2 1 polyline 1 0
+2 14 #text 0 1
+
+2 1 polyline 1 0
+2 14 #text 0 1
+
+2 1 polyline 1 0
+2 14 #text 0 1
+
+2 1 polyline 1 0
+2 14 #text 0 1
+
+2 1 polyline 1 0
+2 14 #text 0 1
+
+2 1 polyline 1 0
+2 14 #text 0 1
+
+2 1 polyline 1 0
+2 14 #text 0 1
+
+2 1 polyline 1 0
+2 14 #text 0 1
+
+2 1 polyline 1 0
+2 14 #text 0 1
+
+2 1 polyline 1 0
+2 14 #text 0 1
+
+2 1 polyline 1 0
+2 14 #text 0 1
+
+2 1 polyline 1 0
+2 14 #text 0 1
+
+1 15 g 0 0
+1 14 #text 0 1
+
+1 1 g 0 0
+2 14 #text 0 1
+
+2 1 polyline 1 0
+2 14 #text 0 1
+
+2 1 polyline 1 0
+2 14 #text 0 1
+
+1 15 g 0 0
+1 14 #text 0 1
+
+1 1 g 0 0
+2 14 #text 0 1
+
+2 1 polyline 1 0
+2 14 #text 0 1
+
+2 1 polyline 1 0
+2 14 #text 0 1
+
+2 1 polyline 1 0
+2 14 #text 0 1
+
+2 1 polyline 1 0
+2 14 #text 0 1
+
+2 1 polyline 1 0
+2 14 #text 0 1
+
+2 1 polyline 1 0
+2 14 #text 0 1
+
+2 1 polyline 1 0
+2 14 #text 0 1
+
+2 1 polyline 1 0
+2 14 #text 0 1
+
+2 1 polyline 1 0
+2 14 #text 0 1
+
+1 15 g 0 0
+1 14 #text 0 1
+
+1 1 g 0 0
+2 14 #text 0 1
+
+2 1 polyline 1 0
+2 14 #text 0 1
+
+2 1 polyline 1 0
+2 14 #text 0 1
+
+2 1 polyline 1 0
+2 14 #text 0 1
+
+1 15 g 0 0
+1 14 #text 0 1
+
+1 1 g 0 0
+2 14 #text 0 1
+
+2 1 polyline 1 0
+2 14 #text 0 1
+
+2 1 polyline 1 0
+2 14 #text 0 1
+
+2 1 polyline 1 0
+2 14 #text 0 1
+
+2 1 polyline 1 0
+2 14 #text 0 1
+
+2 1 polyline 1 0
+2 14 #text 0 1
+
+2 1 polyline 1 0
+2 14 #text 0 1
+
+2 1 polyline 1 0
+2 14 #text 0 1
+
+2 1 polyline 1 0
+2 14 #text 0 1
+
+2 1 polyline 1 0
+2 14 #text 0 1
+
+2 1 polyline 1 0
+2 14 #text 0 1
+
+2 1 polyline 1 0
+2 14 #text 0 1
+
+2 1 polyline 1 0
+2 14 #text 0 1
+
+2 1 polyline 1 0
+2 14 #text 0 1
+
+2 1 polyline 1 0
+2 14 #text 0 1
+
+2 1 polyline 1 0
+2 14 #text 0 1
+
+2 1 polyline 1 0
+2 14 #text 0 1
+
+2 1 polyline 1 0
+2 14 #text 0 1
+
+2 1 polyline 1 0
+2 14 #text 0 1
+
+2 1 polyline 1 0
+2 14 #text 0 1
+
+2 1 polyline 1 0
+2 14 #text 0 1
+
+2 1 polyline 1 0
+2 14 #text 0 1
+
+2 1 polyline 1 0
+2 14 #text 0 1
+
+2 1 polyline 1 0
+2 14 #text 0 1
+
+2 1 polyline 1 0
+2 14 #text 0 1
+
+2 1 polyline 1 0
+2 14 #text 0 1
+
+2 1 polyline 1 0
+2 14 #text 0 1
+
+2 1 polyline 1 0
+2 14 #text 0 1
+
+2 1 polyline 1 0
+2 14 #text 0 1
+
+2 1 polyline 1 0
+2 14 #text 0 1
+
+2 1 polyline 1 0
+2 14 #text 0 1
+
+1 15 g 0 0
+1 14 #text 0 1
+
+1 1 g 0 0
+2 14 #text 0 1
+
+2 1 polyline 1 0
+2 14 #text 0 1
+
+2 1 polyline 1 0
+2 14 #text 0 1
+
+2 1 polyline 1 0
+2 14 #text 0 1
+
+2 1 polyline 1 0
+2 14 #text 0 1
+
+2 1 polyline 1 0
+2 14 #text 0 1
+
+2 1 polyline 1 0
+2 14 #text 0 1
+
+2 1 polyline 1 0
+2 14 #text 0 1
+
+2 1 polyline 1 0
+2 14 #text 0 1
+
+2 1 polyline 1 0
+2 14 #text 0 1
+
+2 1 polyline 1 0
+2 14 #text 0 1
+
+2 1 polyline 1 0
+2 14 #text 0 1
+
+2 1 polyline 1 0
+2 14 #text 0 1
+
+2 1 polyline 1 0
+2 14 #text 0 1
+
+2 1 polyline 1 0
+2 14 #text 0 1
+
+2 1 polyline 1 0
+2 14 #text 0 1
+
+2 1 polyline 1 0
+2 14 #text 0 1
+
+2 1 polyline 1 0
+2 14 #text 0 1
+
+2 1 polyline 1 0
+2 14 #text 0 1
+
+2 1 polyline 1 0
+2 14 #text 0 1
+
+2 1 polyline 1 0
+2 14 #text 0 1
+
+2 1 polyline 1 0
+2 14 #text 0 1
+
+2 1 polyline 1 0
+2 14 #text 0 1
+
+2 1 polyline 1 0
+2 14 #text 0 1
+
+2 1 polyline 1 0
+2 14 #text 0 1
+
+2 1 polyline 1 0
+2 14 #text 0 1
+
+2 1 polyline 1 0
+2 14 #text 0 1
+
+2 1 polyline 1 0
+2 14 #text 0 1
+
+2 1 polyline 1 0
+2 14 #text 0 1
+
+2 1 polyline 1 0
+2 14 #text 0 1
+
+2 1 polyline 1 0
+2 14 #text 0 1
+
+2 1 polyline 1 0
+2 14 #text 0 1
+
+2 1 polyline 1 0
+2 14 #text 0 1
+
+2 1 polyline 1 0
+2 14 #text 0 1
+
+2 1 polyline 1 0
+2 14 #text 0 1
+
+2 1 polyline 1 0
+2 14 #text 0 1
+
+2 1 polyline 1 0
+2 14 #text 0 1
+
+2 1 polyline 1 0
+2 14 #text 0 1
+
+2 1 polyline 1 0
+2 14 #text 0 1
+
+2 1 polyline 1 0
+2 14 #text 0 1
+
+2 1 polyline 1 0
+2 14 #text 0 1
+
+2 1 polyline 1 0
+2 14 #text 0 1
+
+2 1 polyline 1 0
+2 14 #text 0 1
+
+2 1 polyline 1 0
+2 14 #text 0 1
+
+2 1 polyline 1 0
+2 14 #text 0 1
+
+2 1 polyline 1 0
+2 14 #text 0 1
+
+2 1 polyline 1 0
+2 14 #text 0 1
+
+2 1 polyline 1 0
+2 14 #text 0 1
+
+2 1 polyline 1 0
+2 14 #text 0 1
+
+2 1 polyline 1 0
+2 14 #text 0 1
+
+2 1 polyline 1 0
+2 14 #text 0 1
+
+2 1 polyline 1 0
+2 14 #text 0 1
+
+1 15 g 0 0
+0 15 svg 0 0
diff --git a/result/svg2.rde b/result/svg2.rde
new file mode 100644
index 0000000..1eab152
--- /dev/null
+++ b/result/svg2.rde
@@ -0,0 +1,178 @@
+0 10 svg 0 0
+0 1 svg 0 0
+1 14 #text 0 1
+
+1 1 g 0 0
+2 14 #text 0 1
+
+2 1 path 1 0
+2 14 #text 0 1
+
+2 1 path 1 0
+2 14 #text 0 1
+
+1 15 g 0 0
+1 14 #text 0 1
+
+1 1 g 0 0
+2 14 #text 0 1
+
+2 1 polyline 1 0
+2 14 #text 0 1
+
+1 15 g 0 0
+1 14 #text 0 1
+
+1 1 g 0 0
+2 14 #text 0 1
+
+1 15 g 0 0
+1 14 #text 0 1
+
+1 1 g 0 0
+2 14 #text 0 1
+
+2 1 rect 1 0
+2 14 #text 0 1
+
+1 15 g 0 0
+1 14 #text 0 1
+
+1 1 g 0 0
+2 14 #text 0 1
+
+2 1 ellipse 1 0
+2 14 #text 0 1
+
+1 15 g 0 0
+1 14 #text 0 1
+
+1 1 g 0 0
+2 14 #text 0 1
+
+2 1 polyline 1 0
+2 14 #text 0 1
+
+2 1 g 0 0
+3 14 #text 0 1
+
+3 1 desc 0 0
+4 3 #text 0 1 Java Font definition:Dialog 0
+3 15 desc 0 0
+3 14 #text 0 1
+
+2 15 g 0 0
+2 14 #text 0 1
+
+2 1 g 0 0
+3 14 #text 0 1
+
+3 1 desc 0 0
+4 3 #text 0 1 Java Font definition:Helvetica 0
+3 15 desc 0 0
+3 14 #text 0 1
+
+2 15 g 0 0
+2 14 #text 0 1
+
+1 15 g 0 0
+1 14 #text 0 1
+
+1 1 g 0 0
+2 14 #text 0 1
+
+2 1 text 0 0
+3 3 #text 0 1 this is text
+2 15 text 0 0
+2 14 #text 0 1
+
+1 15 g 0 0
+1 14 #text 0 1
+
+1 1 g 0 0
+2 14 #text 0 1
+
+2 1 g 0 0
+3 14 #text 0 1
+
+3 1 desc 0 0
+4 3 #text 0 1 Java Font definition:Dialog 0
+3 15 desc 0 0
+3 14 #text 0 1
+
+2 15 g 0 0
+2 14 #text 0 1
+
+2 1 g 0 0
+3 14 #text 0 1
+
+3 1 desc 0 0
+4 3 #text 0 1 Java Font definition:Helvetica 700
+3 15 desc 0 0
+3 14 #text 0 1
+
+2 15 g 0 0
+2 14 #text 0 1
+
+1 15 g 0 0
+1 14 #text 0 1
+
+1 1 g 0 0
+2 14 #text 0 1
+
+2 1 text 0 0
+3 3 #text 0 1 sadfsadfsad
+2 15 text 0 0
+2 14 #text 0 1
+
+1 15 g 0 0
+1 14 #text 0 1
+
+1 1 g 0 0
+2 14 #text 0 1
+
+1 15 g 0 0
+1 14 #text 0 1
+
+1 1 g 0 0
+2 14 #text 0 1
+
+2 1 ellipse 1 0
+2 14 #text 0 1
+
+1 15 g 0 0
+1 14 #text 0 1
+
+1 1 g 0 0
+2 14 #text 0 1
+
+1 15 g 0 0
+1 14 #text 0 1
+
+1 1 g 0 0
+2 14 #text 0 1
+
+2 1 g 0 0
+3 14 #text 0 1
+
+3 1 desc 0 0
+4 3 #text 0 1 Java Font definition:Dialog 700
+3 15 desc 0 0
+3 14 #text 0 1
+
+2 15 g 0 0
+2 14 #text 0 1
+
+2 1 g 0 0
+3 14 #text 0 1
+
+3 1 desc 0 0
+4 3 #text 0 1 Java Font definition:Dialog 700
+3 15 desc 0 0
+3 14 #text 0 1
+
+2 15 g 0 0
+2 14 #text 0 1
+
+1 15 g 0 0
+0 15 svg 0 0
diff --git a/result/svg3.rde b/result/svg3.rde
new file mode 100644
index 0000000..e4642a9
--- /dev/null
+++ b/result/svg3.rde
@@ -0,0 +1,2164 @@
+0 1 svg 0 0
+1 14 #text 0 1
+
+1 1 g 0 0
+2 14 #text 0 1
+
+2 1 path 1 0
+2 14 #text 0 1
+
+1 15 g 0 0
+1 14 #text 0 1
+
+1 1 g 0 0
+2 14 #text 0 1
+
+2 1 path 1 0
+2 14 #text 0 1
+
+1 15 g 0 0
+1 14 #text 0 1
+
+1 1 g 0 0
+2 14 #text 0 1
+
+2 1 path 1 0
+2 14 #text 0 1
+
+1 15 g 0 0
+1 14 #text 0 1
+
+1 1 g 0 0
+2 14 #text 0 1
+
+2 1 path 1 0
+2 14 #text 0 1
+
+1 15 g 0 0
+1 14 #text 0 1
+
+1 1 g 0 0
+2 14 #text 0 1
+
+2 1 path 1 0
+2 14 #text 0 1
+
+1 15 g 0 0
+1 14 #text 0 1
+
+1 1 g 0 0
+2 14 #text 0 1
+
+2 1 path 1 0
+2 14 #text 0 1
+
+1 15 g 0 0
+1 14 #text 0 1
+
+1 1 g 0 0
+2 14 #text 0 1
+
+2 1 path 1 0
+2 14 #text 0 1
+
+1 15 g 0 0
+1 14 #text 0 1
+
+1 1 g 0 0
+2 14 #text 0 1
+
+2 1 path 1 0
+2 14 #text 0 1
+
+1 15 g 0 0
+1 14 #text 0 1
+
+1 1 g 0 0
+2 14 #text 0 1
+
+2 1 path 1 0
+2 14 #text 0 1
+
+1 15 g 0 0
+1 14 #text 0 1
+
+1 1 g 0 0
+2 14 #text 0 1
+
+2 1 path 1 0
+2 14 #text 0 1
+
+1 15 g 0 0
+1 14 #text 0 1
+
+1 1 g 0 0
+2 14 #text 0 1
+
+2 1 path 1 0
+2 14 #text 0 1
+
+1 15 g 0 0
+1 14 #text 0 1
+
+1 1 g 0 0
+2 14 #text 0 1
+
+2 1 path 1 0
+2 14 #text 0 1
+
+1 15 g 0 0
+1 14 #text 0 1
+
+1 1 g 0 0
+2 14 #text 0 1
+
+2 1 path 1 0
+2 14 #text 0 1
+
+1 15 g 0 0
+1 14 #text 0 1
+
+1 1 g 0 0
+2 14 #text 0 1
+
+2 1 path 1 0
+2 14 #text 0 1
+
+1 15 g 0 0
+1 14 #text 0 1
+
+1 1 g 0 0
+2 14 #text 0 1
+
+2 1 path 1 0
+2 14 #text 0 1
+
+1 15 g 0 0
+1 14 #text 0 1
+
+1 1 g 0 0
+2 14 #text 0 1
+
+2 1 path 1 0
+2 14 #text 0 1
+
+1 15 g 0 0
+1 14 #text 0 1
+
+1 1 g 0 0
+2 14 #text 0 1
+
+2 1 path 1 0
+2 14 #text 0 1
+
+1 15 g 0 0
+1 14 #text 0 1
+
+1 1 g 0 0
+2 14 #text 0 1
+
+2 1 path 1 0
+2 14 #text 0 1
+
+1 15 g 0 0
+1 14 #text 0 1
+
+1 1 g 0 0
+2 14 #text 0 1
+
+2 1 path 1 0
+2 14 #text 0 1
+
+1 15 g 0 0
+1 14 #text 0 1
+
+1 1 g 0 0
+2 14 #text 0 1
+
+2 1 path 1 0
+2 14 #text 0 1
+
+1 15 g 0 0
+1 14 #text 0 1
+
+1 1 g 0 0
+2 14 #text 0 1
+
+2 1 path 1 0
+2 14 #text 0 1
+
+1 15 g 0 0
+1 14 #text 0 1
+
+1 1 g 0 0
+2 14 #text 0 1
+
+2 1 path 1 0
+2 14 #text 0 1
+
+1 15 g 0 0
+1 14 #text 0 1
+
+1 1 g 0 0
+2 14 #text 0 1
+
+2 1 path 1 0
+2 14 #text 0 1
+
+1 15 g 0 0
+1 14 #text 0 1
+
+1 1 g 0 0
+2 14 #text 0 1
+
+2 1 path 1 0
+2 14 #text 0 1
+
+1 15 g 0 0
+1 14 #text 0 1
+
+1 1 g 0 0
+2 14 #text 0 1
+
+2 1 path 1 0
+2 14 #text 0 1
+
+1 15 g 0 0
+1 14 #text 0 1
+
+1 1 g 0 0
+2 14 #text 0 1
+
+2 1 path 1 0
+2 14 #text 0 1
+
+1 15 g 0 0
+1 14 #text 0 1
+
+1 1 g 0 0
+2 14 #text 0 1
+
+2 1 path 1 0
+2 14 #text 0 1
+
+1 15 g 0 0
+1 14 #text 0 1
+
+1 1 g 0 0
+2 14 #text 0 1
+
+2 1 path 1 0
+2 14 #text 0 1
+
+1 15 g 0 0
+1 14 #text 0 1
+
+1 1 g 0 0
+2 14 #text 0 1
+
+2 1 path 1 0
+2 14 #text 0 1
+
+1 15 g 0 0
+1 14 #text 0 1
+
+1 1 g 0 0
+2 14 #text 0 1
+
+2 1 path 1 0
+2 14 #text 0 1
+
+1 15 g 0 0
+1 14 #text 0 1
+
+1 1 g 0 0
+2 14 #text 0 1
+
+2 1 path 1 0
+2 14 #text 0 1
+
+1 15 g 0 0
+1 14 #text 0 1
+
+1 1 g 0 0
+2 14 #text 0 1
+
+2 1 path 1 0
+2 14 #text 0 1
+
+1 15 g 0 0
+1 14 #text 0 1
+
+1 1 g 0 0
+2 14 #text 0 1
+
+2 1 path 1 0
+2 14 #text 0 1
+
+1 15 g 0 0
+1 14 #text 0 1
+
+1 1 g 0 0
+2 14 #text 0 1
+
+2 1 path 1 0
+2 14 #text 0 1
+
+1 15 g 0 0
+1 14 #text 0 1
+
+1 1 g 0 0
+2 14 #text 0 1
+
+2 1 path 1 0
+2 14 #text 0 1
+
+1 15 g 0 0
+1 14 #text 0 1
+
+1 1 g 0 0
+2 14 #text 0 1
+
+2 1 path 1 0
+2 14 #text 0 1
+
+1 15 g 0 0
+1 14 #text 0 1
+
+1 1 g 0 0
+2 14 #text 0 1
+
+2 1 path 1 0
+2 14 #text 0 1
+
+1 15 g 0 0
+1 14 #text 0 1
+
+1 1 g 0 0
+2 14 #text 0 1
+
+2 1 path 1 0
+2 14 #text 0 1
+
+1 15 g 0 0
+1 14 #text 0 1
+
+1 1 g 0 0
+2 14 #text 0 1
+
+2 1 path 1 0
+2 14 #text 0 1
+
+1 15 g 0 0
+1 14 #text 0 1
+
+1 1 g 0 0
+2 14 #text 0 1
+
+2 1 path 1 0
+2 14 #text 0 1
+
+1 15 g 0 0
+1 14 #text 0 1
+
+1 1 g 0 0
+2 14 #text 0 1
+
+2 1 path 1 0
+2 14 #text 0 1
+
+1 15 g 0 0
+1 14 #text 0 1
+
+1 1 g 0 0
+2 14 #text 0 1
+
+2 1 path 1 0
+2 14 #text 0 1
+
+1 15 g 0 0
+1 14 #text 0 1
+
+1 1 g 0 0
+2 14 #text 0 1
+
+2 1 path 1 0
+2 14 #text 0 1
+
+1 15 g 0 0
+1 14 #text 0 1
+
+1 1 g 0 0
+2 14 #text 0 1
+
+2 1 path 1 0
+2 14 #text 0 1
+
+1 15 g 0 0
+1 14 #text 0 1
+
+1 1 g 0 0
+2 14 #text 0 1
+
+2 1 path 1 0
+2 14 #text 0 1
+
+1 15 g 0 0
+1 14 #text 0 1
+
+1 1 g 0 0
+2 14 #text 0 1
+
+2 1 path 1 0
+2 14 #text 0 1
+
+1 15 g 0 0
+1 14 #text 0 1
+
+1 1 g 0 0
+2 14 #text 0 1
+
+2 1 path 1 0
+2 14 #text 0 1
+
+1 15 g 0 0
+1 14 #text 0 1
+
+1 1 g 0 0
+2 14 #text 0 1
+
+2 1 path 1 0
+2 14 #text 0 1
+
+1 15 g 0 0
+1 14 #text 0 1
+
+1 1 g 0 0
+2 14 #text 0 1
+
+2 1 path 1 0
+2 14 #text 0 1
+
+1 15 g 0 0
+1 14 #text 0 1
+
+1 1 g 0 0
+2 14 #text 0 1
+
+2 1 path 1 0
+2 14 #text 0 1
+
+1 15 g 0 0
+1 14 #text 0 1
+
+1 1 g 0 0
+2 14 #text 0 1
+
+2 1 path 1 0
+2 14 #text 0 1
+
+1 15 g 0 0
+1 14 #text 0 1
+
+1 1 g 0 0
+2 14 #text 0 1
+
+2 1 path 1 0
+2 14 #text 0 1
+
+1 15 g 0 0
+1 14 #text 0 1
+
+1 1 g 0 0
+2 14 #text 0 1
+
+2 1 path 1 0
+2 14 #text 0 1
+
+1 15 g 0 0
+1 14 #text 0 1
+
+1 1 g 0 0
+2 14 #text 0 1
+
+2 1 path 1 0
+2 14 #text 0 1
+
+1 15 g 0 0
+1 14 #text 0 1
+
+1 1 g 0 0
+2 14 #text 0 1
+
+2 1 path 1 0
+2 14 #text 0 1
+
+1 15 g 0 0
+1 14 #text 0 1
+
+1 1 g 0 0
+2 14 #text 0 1
+
+2 1 path 1 0
+2 14 #text 0 1
+
+1 15 g 0 0
+1 14 #text 0 1
+
+1 1 g 0 0
+2 14 #text 0 1
+
+2 1 path 1 0
+2 14 #text 0 1
+
+1 15 g 0 0
+1 14 #text 0 1
+
+1 1 g 0 0
+2 14 #text 0 1
+
+2 1 path 1 0
+2 14 #text 0 1
+
+1 15 g 0 0
+1 14 #text 0 1
+
+1 1 g 0 0
+2 14 #text 0 1
+
+2 1 path 1 0
+2 14 #text 0 1
+
+1 15 g 0 0
+1 14 #text 0 1
+
+1 1 g 0 0
+2 14 #text 0 1
+
+2 1 path 1 0
+2 14 #text 0 1
+
+1 15 g 0 0
+1 14 #text 0 1
+
+1 1 g 0 0
+2 14 #text 0 1
+
+2 1 path 1 0
+2 14 #text 0 1
+
+1 15 g 0 0
+1 14 #text 0 1
+
+1 1 g 0 0
+2 14 #text 0 1
+
+2 1 path 1 0
+2 14 #text 0 1
+
+1 15 g 0 0
+1 14 #text 0 1
+
+1 1 g 0 0
+2 14 #text 0 1
+
+2 1 path 1 0
+2 14 #text 0 1
+
+1 15 g 0 0
+1 14 #text 0 1
+
+1 1 g 0 0
+2 14 #text 0 1
+
+2 1 path 1 0
+2 14 #text 0 1
+
+1 15 g 0 0
+1 14 #text 0 1
+
+1 1 g 0 0
+2 14 #text 0 1
+
+2 1 path 1 0
+2 14 #text 0 1
+
+1 15 g 0 0
+1 14 #text 0 1
+
+1 1 g 0 0
+2 14 #text 0 1
+
+2 1 path 1 0
+2 14 #text 0 1
+
+1 15 g 0 0
+1 14 #text 0 1
+
+1 1 g 0 0
+2 14 #text 0 1
+
+2 1 path 1 0
+2 14 #text 0 1
+
+1 15 g 0 0
+1 14 #text 0 1
+
+1 1 g 0 0
+2 14 #text 0 1
+
+2 1 path 1 0
+2 14 #text 0 1
+
+1 15 g 0 0
+1 14 #text 0 1
+
+1 1 g 0 0
+2 14 #text 0 1
+
+2 1 path 1 0
+2 14 #text 0 1
+
+1 15 g 0 0
+1 14 #text 0 1
+
+1 1 g 0 0
+2 14 #text 0 1
+
+2 1 path 1 0
+2 14 #text 0 1
+
+1 15 g 0 0
+1 14 #text 0 1
+
+1 1 g 0 0
+2 14 #text 0 1
+
+2 1 path 1 0
+2 14 #text 0 1
+
+1 15 g 0 0
+1 14 #text 0 1
+
+1 1 g 0 0
+2 14 #text 0 1
+
+2 1 path 1 0
+2 14 #text 0 1
+
+1 15 g 0 0
+1 14 #text 0 1
+
+1 1 g 0 0
+2 14 #text 0 1
+
+2 1 path 1 0
+2 14 #text 0 1
+
+1 15 g 0 0
+1 14 #text 0 1
+
+1 1 g 0 0
+2 14 #text 0 1
+
+2 1 path 1 0
+2 14 #text 0 1
+
+1 15 g 0 0
+1 14 #text 0 1
+
+1 1 g 0 0
+2 14 #text 0 1
+
+2 1 path 1 0
+2 14 #text 0 1
+
+1 15 g 0 0
+1 14 #text 0 1
+
+1 1 g 0 0
+2 14 #text 0 1
+
+2 1 path 1 0
+2 14 #text 0 1
+
+1 15 g 0 0
+1 14 #text 0 1
+
+1 1 g 0 0
+2 14 #text 0 1
+
+2 1 path 1 0
+2 14 #text 0 1
+
+1 15 g 0 0
+1 14 #text 0 1
+
+1 1 g 0 0
+2 14 #text 0 1
+
+2 1 path 1 0
+2 14 #text 0 1
+
+1 15 g 0 0
+1 14 #text 0 1
+
+1 1 g 0 0
+2 14 #text 0 1
+
+2 1 path 1 0
+2 14 #text 0 1
+
+1 15 g 0 0
+1 14 #text 0 1
+
+1 1 g 0 0
+2 14 #text 0 1
+
+2 1 path 1 0
+2 14 #text 0 1
+
+1 15 g 0 0
+1 14 #text 0 1
+
+1 1 g 0 0
+2 14 #text 0 1
+
+2 1 path 1 0
+2 14 #text 0 1
+
+1 15 g 0 0
+1 14 #text 0 1
+
+1 1 g 0 0
+2 14 #text 0 1
+
+2 1 path 1 0
+2 14 #text 0 1
+
+1 15 g 0 0
+1 14 #text 0 1
+
+1 1 g 0 0
+2 14 #text 0 1
+
+2 1 path 1 0
+2 14 #text 0 1
+
+1 15 g 0 0
+1 14 #text 0 1
+
+1 1 g 0 0
+2 14 #text 0 1
+
+2 1 path 1 0
+2 14 #text 0 1
+
+1 15 g 0 0
+1 14 #text 0 1
+
+1 1 g 0 0
+2 14 #text 0 1
+
+2 1 path 1 0
+2 14 #text 0 1
+
+1 15 g 0 0
+1 14 #text 0 1
+
+1 1 g 0 0
+2 14 #text 0 1
+
+2 1 path 1 0
+2 14 #text 0 1
+
+1 15 g 0 0
+1 14 #text 0 1
+
+1 1 g 0 0
+2 14 #text 0 1
+
+2 1 path 1 0
+2 14 #text 0 1
+
+1 15 g 0 0
+1 14 #text 0 1
+
+1 1 g 0 0
+2 14 #text 0 1
+
+2 1 path 1 0
+2 14 #text 0 1
+
+1 15 g 0 0
+1 14 #text 0 1
+
+1 1 g 0 0
+2 14 #text 0 1
+
+2 1 path 1 0
+2 14 #text 0 1
+
+1 15 g 0 0
+1 14 #text 0 1
+
+1 1 g 0 0
+2 14 #text 0 1
+
+2 1 path 1 0
+2 14 #text 0 1
+
+1 15 g 0 0
+1 14 #text 0 1
+
+1 1 g 0 0
+2 14 #text 0 1
+
+2 1 path 1 0
+2 14 #text 0 1
+
+1 15 g 0 0
+1 14 #text 0 1
+
+1 1 g 0 0
+2 14 #text 0 1
+
+2 1 path 1 0
+2 14 #text 0 1
+
+1 15 g 0 0
+1 14 #text 0 1
+
+1 1 g 0 0
+2 14 #text 0 1
+
+2 1 path 1 0
+2 14 #text 0 1
+
+1 15 g 0 0
+1 14 #text 0 1
+
+1 1 g 0 0
+2 14 #text 0 1
+
+2 1 path 1 0
+2 14 #text 0 1
+
+1 15 g 0 0
+1 14 #text 0 1
+
+1 1 g 0 0
+2 14 #text 0 1
+
+2 1 path 1 0
+2 14 #text 0 1
+
+1 15 g 0 0
+1 14 #text 0 1
+
+1 1 g 0 0
+2 14 #text 0 1
+
+2 1 path 1 0
+2 14 #text 0 1
+
+1 15 g 0 0
+1 14 #text 0 1
+
+1 1 g 0 0
+2 14 #text 0 1
+
+2 1 path 1 0
+2 14 #text 0 1
+
+1 15 g 0 0
+1 14 #text 0 1
+
+1 1 g 0 0
+2 14 #text 0 1
+
+2 1 path 1 0
+2 14 #text 0 1
+
+1 15 g 0 0
+1 14 #text 0 1
+
+1 1 g 0 0
+2 14 #text 0 1
+
+2 1 path 1 0
+2 14 #text 0 1
+
+1 15 g 0 0
+1 14 #text 0 1
+
+1 1 g 0 0
+2 14 #text 0 1
+
+2 1 path 1 0
+2 14 #text 0 1
+
+1 15 g 0 0
+1 14 #text 0 1
+
+1 1 g 0 0
+2 14 #text 0 1
+
+2 1 path 1 0
+2 14 #text 0 1
+
+1 15 g 0 0
+1 14 #text 0 1
+
+1 1 g 0 0
+2 14 #text 0 1
+
+2 1 path 1 0
+2 14 #text 0 1
+
+1 15 g 0 0
+1 14 #text 0 1
+
+1 1 g 0 0
+2 14 #text 0 1
+
+2 1 path 1 0
+2 14 #text 0 1
+
+1 15 g 0 0
+1 14 #text 0 1
+
+1 1 g 0 0
+2 14 #text 0 1
+
+2 1 path 1 0
+2 14 #text 0 1
+
+1 15 g 0 0
+1 14 #text 0 1
+
+1 1 g 0 0
+2 14 #text 0 1
+
+2 1 path 1 0
+2 14 #text 0 1
+
+1 15 g 0 0
+1 14 #text 0 1
+
+1 1 g 0 0
+2 14 #text 0 1
+
+2 1 path 1 0
+2 14 #text 0 1
+
+1 15 g 0 0
+1 14 #text 0 1
+
+1 1 g 0 0
+2 14 #text 0 1
+
+2 1 path 1 0
+2 14 #text 0 1
+
+1 15 g 0 0
+1 14 #text 0 1
+
+1 1 g 0 0
+2 14 #text 0 1
+
+2 1 path 1 0
+2 14 #text 0 1
+
+1 15 g 0 0
+1 14 #text 0 1
+
+1 1 g 0 0
+2 14 #text 0 1
+
+2 1 path 1 0
+2 14 #text 0 1
+
+1 15 g 0 0
+1 14 #text 0 1
+
+1 1 g 0 0
+2 14 #text 0 1
+
+2 1 path 1 0
+2 14 #text 0 1
+
+1 15 g 0 0
+1 14 #text 0 1
+
+1 1 g 0 0
+2 14 #text 0 1
+
+2 1 path 1 0
+2 14 #text 0 1
+
+1 15 g 0 0
+1 14 #text 0 1
+
+1 1 g 0 0
+2 14 #text 0 1
+
+2 1 path 1 0
+2 14 #text 0 1
+
+1 15 g 0 0
+1 14 #text 0 1
+
+1 1 g 0 0
+2 14 #text 0 1
+
+2 1 path 1 0
+2 14 #text 0 1
+
+1 15 g 0 0
+1 14 #text 0 1
+
+1 1 g 0 0
+2 14 #text 0 1
+
+2 1 path 1 0
+2 14 #text 0 1
+
+1 15 g 0 0
+1 14 #text 0 1
+
+1 1 g 0 0
+2 14 #text 0 1
+
+2 1 path 1 0
+2 14 #text 0 1
+
+1 15 g 0 0
+1 14 #text 0 1
+
+1 1 g 0 0
+2 14 #text 0 1
+
+2 1 path 1 0
+2 14 #text 0 1
+
+1 15 g 0 0
+1 14 #text 0 1
+
+1 1 g 0 0
+2 14 #text 0 1
+
+2 1 path 1 0
+2 14 #text 0 1
+
+1 15 g 0 0
+1 14 #text 0 1
+
+1 1 g 0 0
+2 14 #text 0 1
+
+2 1 path 1 0
+2 14 #text 0 1
+
+1 15 g 0 0
+1 14 #text 0 1
+
+1 1 g 0 0
+2 14 #text 0 1
+
+2 1 path 1 0
+2 14 #text 0 1
+
+1 15 g 0 0
+1 14 #text 0 1
+
+1 1 g 0 0
+2 14 #text 0 1
+
+2 1 path 1 0
+2 14 #text 0 1
+
+1 15 g 0 0
+1 14 #text 0 1
+
+1 1 g 0 0
+2 14 #text 0 1
+
+2 1 path 1 0
+2 14 #text 0 1
+
+1 15 g 0 0
+1 14 #text 0 1
+
+1 1 g 0 0
+2 14 #text 0 1
+
+2 1 path 1 0
+2 14 #text 0 1
+
+1 15 g 0 0
+1 14 #text 0 1
+
+1 1 g 0 0
+2 14 #text 0 1
+
+2 1 path 1 0
+2 14 #text 0 1
+
+1 15 g 0 0
+1 14 #text 0 1
+
+1 1 g 0 0
+2 14 #text 0 1
+
+2 1 path 1 0
+2 14 #text 0 1
+
+1 15 g 0 0
+1 14 #text 0 1
+
+1 1 g 0 0
+2 14 #text 0 1
+
+2 1 path 1 0
+2 14 #text 0 1
+
+1 15 g 0 0
+1 14 #text 0 1
+
+1 1 g 0 0
+2 14 #text 0 1
+
+2 1 path 1 0
+2 14 #text 0 1
+
+1 15 g 0 0
+1 14 #text 0 1
+
+1 1 g 0 0
+2 14 #text 0 1
+
+2 1 path 1 0
+2 14 #text 0 1
+
+1 15 g 0 0
+1 14 #text 0 1
+
+1 1 g 0 0
+2 14 #text 0 1
+
+2 1 path 1 0
+2 14 #text 0 1
+
+1 15 g 0 0
+1 14 #text 0 1
+
+1 1 g 0 0
+2 14 #text 0 1
+
+2 1 path 1 0
+2 14 #text 0 1
+
+1 15 g 0 0
+1 14 #text 0 1
+
+1 1 g 0 0
+2 14 #text 0 1
+
+2 1 path 1 0
+2 14 #text 0 1
+
+1 15 g 0 0
+1 14 #text 0 1
+
+1 1 g 0 0
+2 14 #text 0 1
+
+2 1 path 1 0
+2 14 #text 0 1
+
+1 15 g 0 0
+1 14 #text 0 1
+
+1 1 g 0 0
+2 14 #text 0 1
+
+2 1 path 1 0
+2 14 #text 0 1
+
+1 15 g 0 0
+1 14 #text 0 1
+
+1 1 g 0 0
+2 14 #text 0 1
+
+2 1 path 1 0
+2 14 #text 0 1
+
+1 15 g 0 0
+1 14 #text 0 1
+
+1 1 g 0 0
+2 14 #text 0 1
+
+2 1 path 1 0
+2 14 #text 0 1
+
+1 15 g 0 0
+1 14 #text 0 1
+
+1 1 g 0 0
+2 14 #text 0 1
+
+2 1 path 1 0
+2 14 #text 0 1
+
+1 15 g 0 0
+1 14 #text 0 1
+
+1 1 g 0 0
+2 14 #text 0 1
+
+2 1 path 1 0
+2 14 #text 0 1
+
+1 15 g 0 0
+1 14 #text 0 1
+
+1 1 g 0 0
+2 14 #text 0 1
+
+2 1 path 1 0
+2 14 #text 0 1
+
+1 15 g 0 0
+1 14 #text 0 1
+
+1 1 g 0 0
+2 14 #text 0 1
+
+2 1 path 1 0
+2 14 #text 0 1
+
+1 15 g 0 0
+1 14 #text 0 1
+
+1 1 g 0 0
+2 14 #text 0 1
+
+2 1 path 1 0
+2 14 #text 0 1
+
+1 15 g 0 0
+1 14 #text 0 1
+
+1 1 g 0 0
+2 14 #text 0 1
+
+2 1 path 1 0
+2 14 #text 0 1
+
+1 15 g 0 0
+1 14 #text 0 1
+
+1 1 g 0 0
+2 14 #text 0 1
+
+2 1 path 1 0
+2 14 #text 0 1
+
+1 15 g 0 0
+1 14 #text 0 1
+
+1 1 g 0 0
+2 14 #text 0 1
+
+2 1 path 1 0
+2 14 #text 0 1
+
+1 15 g 0 0
+1 14 #text 0 1
+
+1 1 g 0 0
+2 14 #text 0 1
+
+2 1 path 1 0
+2 14 #text 0 1
+
+1 15 g 0 0
+1 14 #text 0 1
+
+1 1 g 0 0
+2 14 #text 0 1
+
+2 1 path 1 0
+2 14 #text 0 1
+
+1 15 g 0 0
+1 14 #text 0 1
+
+1 1 g 0 0
+2 14 #text 0 1
+
+2 1 path 1 0
+2 14 #text 0 1
+
+1 15 g 0 0
+1 14 #text 0 1
+
+1 1 g 0 0
+2 14 #text 0 1
+
+2 1 path 1 0
+2 14 #text 0 1
+
+1 15 g 0 0
+1 14 #text 0 1
+
+1 1 g 0 0
+2 14 #text 0 1
+
+2 1 path 1 0
+2 14 #text 0 1
+
+1 15 g 0 0
+1 14 #text 0 1
+
+1 1 g 0 0
+2 14 #text 0 1
+
+2 1 path 1 0
+2 14 #text 0 1
+
+1 15 g 0 0
+1 14 #text 0 1
+
+1 1 g 0 0
+2 14 #text 0 1
+
+2 1 path 1 0
+2 14 #text 0 1
+
+1 15 g 0 0
+1 14 #text 0 1
+
+1 1 g 0 0
+2 14 #text 0 1
+
+2 1 path 1 0
+2 14 #text 0 1
+
+1 15 g 0 0
+1 14 #text 0 1
+
+1 1 g 0 0
+2 14 #text 0 1
+
+2 1 path 1 0
+2 14 #text 0 1
+
+1 15 g 0 0
+1 14 #text 0 1
+
+1 1 g 0 0
+2 14 #text 0 1
+
+2 1 path 1 0
+2 14 #text 0 1
+
+1 15 g 0 0
+1 14 #text 0 1
+
+1 1 g 0 0
+2 14 #text 0 1
+
+2 1 path 1 0
+2 14 #text 0 1
+
+1 15 g 0 0
+1 14 #text 0 1
+
+1 1 g 0 0
+2 14 #text 0 1
+
+2 1 path 1 0
+2 14 #text 0 1
+
+1 15 g 0 0
+1 14 #text 0 1
+
+1 1 g 0 0
+2 14 #text 0 1
+
+2 1 path 1 0
+2 14 #text 0 1
+
+1 15 g 0 0
+1 14 #text 0 1
+
+1 1 g 0 0
+2 14 #text 0 1
+
+2 1 path 1 0
+2 14 #text 0 1
+
+1 15 g 0 0
+1 14 #text 0 1
+
+1 1 g 0 0
+2 14 #text 0 1
+
+2 1 path 1 0
+2 14 #text 0 1
+
+1 15 g 0 0
+1 14 #text 0 1
+
+1 1 g 0 0
+2 14 #text 0 1
+
+2 1 path 1 0
+2 14 #text 0 1
+
+1 15 g 0 0
+1 14 #text 0 1
+
+1 1 g 0 0
+2 14 #text 0 1
+
+2 1 path 1 0
+2 14 #text 0 1
+
+1 15 g 0 0
+1 14 #text 0 1
+
+1 1 g 0 0
+2 14 #text 0 1
+
+2 1 path 1 0
+2 14 #text 0 1
+
+1 15 g 0 0
+1 14 #text 0 1
+
+1 1 g 0 0
+2 14 #text 0 1
+
+2 1 path 1 0
+2 14 #text 0 1
+
+1 15 g 0 0
+1 14 #text 0 1
+
+1 1 g 0 0
+2 14 #text 0 1
+
+2 1 path 1 0
+2 14 #text 0 1
+
+1 15 g 0 0
+1 14 #text 0 1
+
+1 1 g 0 0
+2 14 #text 0 1
+
+2 1 path 1 0
+2 14 #text 0 1
+
+1 15 g 0 0
+1 14 #text 0 1
+
+1 1 g 0 0
+2 14 #text 0 1
+
+2 1 path 1 0
+2 14 #text 0 1
+
+1 15 g 0 0
+1 14 #text 0 1
+
+1 1 g 0 0
+2 14 #text 0 1
+
+2 1 path 1 0
+2 14 #text 0 1
+
+1 15 g 0 0
+1 14 #text 0 1
+
+1 1 g 0 0
+2 14 #text 0 1
+
+2 1 path 1 0
+2 14 #text 0 1
+
+1 15 g 0 0
+1 14 #text 0 1
+
+1 1 g 0 0
+2 14 #text 0 1
+
+2 1 path 1 0
+2 14 #text 0 1
+
+1 15 g 0 0
+1 14 #text 0 1
+
+1 1 g 0 0
+2 14 #text 0 1
+
+2 1 path 1 0
+2 14 #text 0 1
+
+1 15 g 0 0
+1 14 #text 0 1
+
+1 1 g 0 0
+2 14 #text 0 1
+
+2 1 path 1 0
+2 14 #text 0 1
+
+1 15 g 0 0
+1 14 #text 0 1
+
+1 1 g 0 0
+2 14 #text 0 1
+
+2 1 path 1 0
+2 14 #text 0 1
+
+1 15 g 0 0
+1 14 #text 0 1
+
+1 1 g 0 0
+2 14 #text 0 1
+
+2 1 path 1 0
+2 14 #text 0 1
+
+1 15 g 0 0
+1 14 #text 0 1
+
+1 1 g 0 0
+2 14 #text 0 1
+
+2 1 path 1 0
+2 14 #text 0 1
+
+1 15 g 0 0
+1 14 #text 0 1
+
+1 1 g 0 0
+2 14 #text 0 1
+
+2 1 path 1 0
+2 14 #text 0 1
+
+1 15 g 0 0
+1 14 #text 0 1
+
+1 1 g 0 0
+2 14 #text 0 1
+
+2 1 path 1 0
+2 14 #text 0 1
+
+1 15 g 0 0
+1 14 #text 0 1
+
+1 1 g 0 0
+2 14 #text 0 1
+
+2 1 path 1 0
+2 14 #text 0 1
+
+1 15 g 0 0
+1 14 #text 0 1
+
+1 1 g 0 0
+2 14 #text 0 1
+
+2 1 path 1 0
+2 14 #text 0 1
+
+1 15 g 0 0
+1 14 #text 0 1
+
+1 1 g 0 0
+2 14 #text 0 1
+
+2 1 path 1 0
+2 14 #text 0 1
+
+1 15 g 0 0
+1 14 #text 0 1
+
+1 1 g 0 0
+2 14 #text 0 1
+
+2 1 path 1 0
+2 14 #text 0 1
+
+1 15 g 0 0
+1 14 #text 0 1
+
+1 1 g 0 0
+2 14 #text 0 1
+
+2 1 path 1 0
+2 14 #text 0 1
+
+1 15 g 0 0
+1 14 #text 0 1
+
+1 1 g 0 0
+2 14 #text 0 1
+
+2 1 path 1 0
+2 14 #text 0 1
+
+1 15 g 0 0
+1 14 #text 0 1
+
+1 1 g 0 0
+2 14 #text 0 1
+
+2 1 path 1 0
+2 14 #text 0 1
+
+1 15 g 0 0
+1 14 #text 0 1
+
+1 1 g 0 0
+2 14 #text 0 1
+
+2 1 path 1 0
+2 14 #text 0 1
+
+1 15 g 0 0
+1 14 #text 0 1
+
+1 1 g 0 0
+2 14 #text 0 1
+
+2 1 path 1 0
+2 14 #text 0 1
+
+1 15 g 0 0
+1 14 #text 0 1
+
+1 1 g 0 0
+2 14 #text 0 1
+
+2 1 path 1 0
+2 14 #text 0 1
+
+1 15 g 0 0
+1 14 #text 0 1
+
+1 1 g 0 0
+2 14 #text 0 1
+
+2 1 path 1 0
+2 14 #text 0 1
+
+1 15 g 0 0
+1 14 #text 0 1
+
+1 1 g 0 0
+2 14 #text 0 1
+
+2 1 path 1 0
+2 14 #text 0 1
+
+1 15 g 0 0
+1 14 #text 0 1
+
+1 1 g 0 0
+2 14 #text 0 1
+
+2 1 path 1 0
+2 14 #text 0 1
+
+1 15 g 0 0
+1 14 #text 0 1
+
+1 1 g 0 0
+2 14 #text 0 1
+
+2 1 path 1 0
+2 14 #text 0 1
+
+1 15 g 0 0
+1 14 #text 0 1
+
+1 1 g 0 0
+2 14 #text 0 1
+
+2 1 path 1 0
+2 14 #text 0 1
+
+1 15 g 0 0
+1 14 #text 0 1
+
+1 1 g 0 0
+2 14 #text 0 1
+
+2 1 path 1 0
+2 14 #text 0 1
+
+1 15 g 0 0
+1 14 #text 0 1
+
+1 1 g 0 0
+2 14 #text 0 1
+
+2 1 path 1 0
+2 14 #text 0 1
+
+1 15 g 0 0
+1 14 #text 0 1
+
+1 1 g 0 0
+2 14 #text 0 1
+
+2 1 path 1 0
+2 14 #text 0 1
+
+1 15 g 0 0
+1 14 #text 0 1
+
+1 1 g 0 0
+2 14 #text 0 1
+
+2 1 path 1 0
+2 14 #text 0 1
+
+1 15 g 0 0
+1 14 #text 0 1
+
+1 1 g 0 0
+2 14 #text 0 1
+
+2 1 path 1 0
+2 14 #text 0 1
+
+1 15 g 0 0
+1 14 #text 0 1
+
+1 1 g 0 0
+2 14 #text 0 1
+
+2 1 path 1 0
+2 14 #text 0 1
+
+1 15 g 0 0
+1 14 #text 0 1
+
+1 1 g 0 0
+2 14 #text 0 1
+
+2 1 path 1 0
+2 14 #text 0 1
+
+1 15 g 0 0
+1 14 #text 0 1
+
+1 1 g 0 0
+2 14 #text 0 1
+
+2 1 path 1 0
+2 14 #text 0 1
+
+1 15 g 0 0
+1 14 #text 0 1
+
+1 1 g 0 0
+2 14 #text 0 1
+
+2 1 path 1 0
+2 14 #text 0 1
+
+1 15 g 0 0
+1 14 #text 0 1
+
+1 1 g 0 0
+2 14 #text 0 1
+
+2 1 path 1 0
+2 14 #text 0 1
+
+1 15 g 0 0
+1 14 #text 0 1
+
+1 1 g 0 0
+2 14 #text 0 1
+
+2 1 path 1 0
+2 14 #text 0 1
+
+1 15 g 0 0
+1 14 #text 0 1
+
+1 1 g 0 0
+2 14 #text 0 1
+
+2 1 path 1 0
+2 14 #text 0 1
+
+1 15 g 0 0
+1 14 #text 0 1
+
+1 1 g 0 0
+2 14 #text 0 1
+
+2 1 path 1 0
+2 14 #text 0 1
+
+1 15 g 0 0
+1 14 #text 0 1
+
+1 1 g 0 0
+2 14 #text 0 1
+
+2 1 path 1 0
+2 14 #text 0 1
+
+1 15 g 0 0
+1 14 #text 0 1
+
+1 1 g 0 0
+2 14 #text 0 1
+
+2 1 path 1 0
+2 14 #text 0 1
+
+1 15 g 0 0
+1 14 #text 0 1
+
+1 1 g 0 0
+2 14 #text 0 1
+
+2 1 path 1 0
+2 14 #text 0 1
+
+1 15 g 0 0
+1 14 #text 0 1
+
+1 1 g 0 0
+2 14 #text 0 1
+
+2 1 path 1 0
+2 14 #text 0 1
+
+1 15 g 0 0
+1 14 #text 0 1
+
+1 1 g 0 0
+2 14 #text 0 1
+
+2 1 path 1 0
+2 14 #text 0 1
+
+1 15 g 0 0
+1 14 #text 0 1
+
+1 1 g 0 0
+2 14 #text 0 1
+
+2 1 path 1 0
+2 14 #text 0 1
+
+1 15 g 0 0
+1 14 #text 0 1
+
+1 1 g 0 0
+2 14 #text 0 1
+
+2 1 path 1 0
+2 14 #text 0 1
+
+1 15 g 0 0
+1 14 #text 0 1
+
+1 1 g 0 0
+2 14 #text 0 1
+
+2 1 path 1 0
+2 14 #text 0 1
+
+1 15 g 0 0
+1 14 #text 0 1
+
+1 1 g 0 0
+2 14 #text 0 1
+
+2 1 path 1 0
+2 14 #text 0 1
+
+1 15 g 0 0
+1 14 #text 0 1
+
+1 1 g 0 0
+2 14 #text 0 1
+
+2 1 path 1 0
+2 14 #text 0 1
+
+1 15 g 0 0
+1 14 #text 0 1
+
+1 1 g 0 0
+2 14 #text 0 1
+
+2 1 path 1 0
+2 14 #text 0 1
+
+1 15 g 0 0
+1 14 #text 0 1
+
+1 1 g 0 0
+2 14 #text 0 1
+
+2 1 path 1 0
+2 14 #text 0 1
+
+1 15 g 0 0
+1 14 #text 0 1
+
+1 1 g 0 0
+2 14 #text 0 1
+
+2 1 path 1 0
+2 14 #text 0 1
+
+1 15 g 0 0
+1 14 #text 0 1
+
+1 1 g 0 0
+2 14 #text 0 1
+
+2 1 path 1 0
+2 14 #text 0 1
+
+1 15 g 0 0
+1 14 #text 0 1
+
+1 1 g 0 0
+2 14 #text 0 1
+
+2 1 path 1 0
+2 14 #text 0 1
+
+1 15 g 0 0
+1 14 #text 0 1
+
+1 1 g 0 0
+2 14 #text 0 1
+
+2 1 path 1 0
+2 14 #text 0 1
+
+1 15 g 0 0
+1 14 #text 0 1
+
+1 1 g 0 0
+2 14 #text 0 1
+
+2 1 path 1 0
+2 14 #text 0 1
+
+1 15 g 0 0
+1 14 #text 0 1
+
+1 1 g 0 0
+2 14 #text 0 1
+
+2 1 path 1 0
+2 14 #text 0 1
+
+1 15 g 0 0
+1 14 #text 0 1
+
+1 1 g 0 0
+2 14 #text 0 1
+
+2 1 path 1 0
+2 14 #text 0 1
+
+1 15 g 0 0
+1 14 #text 0 1
+
+1 1 g 0 0
+2 14 #text 0 1
+
+2 1 path 1 0
+2 14 #text 0 1
+
+1 15 g 0 0
+1 14 #text 0 1
+
+1 1 g 0 0
+2 14 #text 0 1
+
+2 1 path 1 0
+2 14 #text 0 1
+
+1 15 g 0 0
+1 14 #text 0 1
+
+1 1 g 0 0
+2 14 #text 0 1
+
+2 1 path 1 0
+2 14 #text 0 1
+
+1 15 g 0 0
+1 14 #text 0 1
+
+1 1 g 0 0
+2 14 #text 0 1
+
+2 1 path 1 0
+2 14 #text 0 1
+
+1 15 g 0 0
+1 14 #text 0 1
+
+1 1 g 0 0
+2 14 #text 0 1
+
+2 1 path 1 0
+2 14 #text 0 1
+
+1 15 g 0 0
+1 14 #text 0 1
+
+1 1 g 0 0
+2 14 #text 0 1
+
+2 1 path 1 0
+2 14 #text 0 1
+
+1 15 g 0 0
+1 14 #text 0 1
+
+1 1 g 0 0
+2 14 #text 0 1
+
+2 1 path 1 0
+2 14 #text 0 1
+
+1 15 g 0 0
+1 14 #text 0 1
+
+1 1 g 0 0
+2 14 #text 0 1
+
+2 1 path 1 0
+2 14 #text 0 1
+
+1 15 g 0 0
+1 14 #text 0 1
+
+1 1 g 0 0
+2 14 #text 0 1
+
+2 1 path 1 0
+2 14 #text 0 1
+
+1 15 g 0 0
+1 14 #text 0 1
+
+1 1 g 0 0
+2 14 #text 0 1
+
+2 1 path 1 0
+2 14 #text 0 1
+
+1 15 g 0 0
+1 14 #text 0 1
+
+1 1 g 0 0
+2 14 #text 0 1
+
+2 1 path 1 0
+2 14 #text 0 1
+
+1 15 g 0 0
+1 14 #text 0 1
+
+1 1 g 0 0
+2 14 #text 0 1
+
+2 1 path 1 0
+2 14 #text 0 1
+
+1 15 g 0 0
+1 14 #text 0 1
+
+1 1 g 0 0
+2 14 #text 0 1
+
+2 1 path 1 0
+2 14 #text 0 1
+
+1 15 g 0 0
+1 14 #text 0 1
+
+1 1 g 0 0
+2 14 #text 0 1
+
+2 1 path 1 0
+2 14 #text 0 1
+
+1 15 g 0 0
+1 14 #text 0 1
+
+1 1 g 0 0
+2 14 #text 0 1
+
+2 1 path 1 0
+2 14 #text 0 1
+
+1 15 g 0 0
+1 14 #text 0 1
+
+1 1 g 0 0
+2 14 #text 0 1
+
+2 1 path 1 0
+2 14 #text 0 1
+
+1 15 g 0 0
+1 14 #text 0 1
+
+1 1 g 0 0
+2 14 #text 0 1
+
+2 1 path 1 0
+2 14 #text 0 1
+
+1 15 g 0 0
+1 14 #text 0 1
+
+1 1 g 0 0
+2 14 #text 0 1
+
+2 1 path 1 0
+2 14 #text 0 1
+
+1 15 g 0 0
+1 14 #text 0 1
+
+1 1 g 0 0
+2 14 #text 0 1
+
+2 1 path 1 0
+2 14 #text 0 1
+
+1 15 g 0 0
+1 14 #text 0 1
+
+0 15 svg 0 0
diff --git a/result/title.xml.rde b/result/title.xml.rde
new file mode 100644
index 0000000..b0d2be0
--- /dev/null
+++ b/result/title.xml.rde
@@ -0,0 +1,3 @@
+0 1 title 0 0
+1 3 #text 0 1 my title
+0 15 title 0 0
diff --git a/result/tstblanks.xml.rde b/result/tstblanks.xml.rde
new file mode 100644
index 0000000..7d2e5fa
--- /dev/null
+++ b/result/tstblanks.xml.rde
@@ -0,0 +1,3 @@
+0 1 a 0 0
+1 3 #text 0 1 content
+0 15 a 0 0
diff --git a/result/utf16bebom.xml.rde b/result/utf16bebom.xml.rde
new file mode 100644
index 0000000..f69338a
--- /dev/null
+++ b/result/utf16bebom.xml.rde
@@ -0,0 +1,4 @@
+0 8 #comment 0 1 This file is encoded in UTF-16BE
+0 1 repository 0 0
+1 1 namespace 1 0
+0 15 repository 0 0
diff --git a/result/utf16bom.xml.rde b/result/utf16bom.xml.rde
new file mode 100644
index 0000000..0fb84c6
--- /dev/null
+++ b/result/utf16bom.xml.rde
@@ -0,0 +1,3 @@
+0 1 repository 0 0
+1 1 namespace 1 0
+0 15 repository 0 0
diff --git a/result/utf16lebom.xml.rde b/result/utf16lebom.xml.rde
new file mode 100644
index 0000000..32a91e4
--- /dev/null
+++ b/result/utf16lebom.xml.rde
@@ -0,0 +1,4 @@
+0 8 #comment 0 1 This file is encoded in UTF-16LE
+0 1 repository 0 0
+1 1 namespace 1 0
+0 15 repository 0 0
diff --git a/result/utf8bom.xml.rde b/result/utf8bom.xml.rde
new file mode 100644
index 0000000..55ad211
--- /dev/null
+++ b/result/utf8bom.xml.rde
@@ -0,0 +1 @@
+0 1 foo 1 0
diff --git a/result/valid/t10.xml b/result/valid/t10.xml
new file mode 100644
index 0000000..b60f2f9
--- /dev/null
+++ b/result/valid/t10.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" standalone="yes"?>
+<!DOCTYPE root [
+<!ELEMENT root (cont1 , (cont1 , cont2?)+)>
+<!ELEMENT cont1 EMPTY>
+<!ELEMENT cont2 EMPTY>
+]>
+<root>
+ <cont1/>
+ <cont1/>
+ <cont1/>
+ <cont1/>
+</root>
diff --git a/result/valid/t10.xml.err b/result/valid/t10.xml.err
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/result/valid/t10.xml.err
diff --git a/result/wap.xml.rde b/result/wap.xml.rde
new file mode 100644
index 0000000..6867382
--- /dev/null
+++ b/result/wap.xml.rde
@@ -0,0 +1,70 @@
+0 10 wml 0 0
+0 8 #comment 0 1 (C) 1999, 2000 WAP Forum Ltd. All rights reserved
+0 1 wml 0 0
+1 14 #text 0 1
+
+1 1 card 0 0
+2 14 #text 0 1
+
+2 1 onevent 0 0
+3 14 #text 0 1
+
+3 1 go 0 0
+4 14 #text 0 1
+
+4 1 postfield 1 0
+4 14 #text 0 1
+
+4 1 postfield 1 0
+4 14 #text 0 1
+
+4 1 postfield 1 0
+4 14 #text 0 1
+
+4 1 postfield 1 0
+4 14 #text 0 1
+
+4 1 postfield 1 0
+4 14 #text 0 1
+
+4 1 postfield 1 0
+4 14 #text 0 1
+
+3 15 go 0 0
+3 14 #text 0 1
+
+2 15 onevent 0 0
+2 14 #text 0 1
+
+2 1 p 0 0
+3 3 #text 0 1 If automatic testing failed, select
+3 1 anchor 0 0
+4 3 #text 0 1 Failed
+4 1 go 0 0
+5 14 #text 0 1
+
+5 1 postfield 1 0
+5 1 postfield 1 0
+5 14 #text 0 1
+
+5 1 postfield 1 0
+5 14 #text 0 1
+
+5 1 postfield 1 0
+5 14 #text 0 1
+
+5 1 postfield 1 0
+5 14 #text 0 1
+
+5 1 postfield 1 0
+4 15 go 0 0
+3 15 anchor 0 0
+3 3 #text 0 1 .
+2 15 p 0 0
+2 14 #text 0 1
+
+1 15 card 0 0
+1 14 #text 0 1
+
+
+0 15 wml 0 0
diff --git a/result/wml.xml.rde b/result/wml.xml.rde
new file mode 100644
index 0000000..1bb28d4
--- /dev/null
+++ b/result/wml.xml.rde
@@ -0,0 +1,24 @@
+0 10 wml 0 0
+0 1 wml 0 0
+1 14 #text 0 1
+
+1 1 card 0 0
+2 14 #text 0 1
+
+2 1 p 0 0
+3 14 #text 0 1
+
+3 1 a 0 0
+4 3 #text 0 1 Cinéma
+3 15 a 0 0
+3 1 br 1 0
+3 14 #text 0 1
+
+2 15 p 0 0
+2 14 #text 0 1
+
+
+1 15 card 0 0
+1 14 #text 0 1
+
+0 15 wml 0 0
diff --git a/result/xhtml1.rde b/result/xhtml1.rde
new file mode 100644
index 0000000..b7de2dd
--- /dev/null
+++ b/result/xhtml1.rde
@@ -0,0 +1,95 @@
+0 10 html 0 0
+0 8 #comment 0 1 3.1.1 3/
+0 1 html 0 0
+1 14 #text 0 1
+
+1 1 head 0 0
+2 14 #text 0 1
+
+2 1 title 0 0
+3 3 #text 0 1 Virtual Library
+2 15 title 0 0
+2 14 #text 0 1
+
+1 15 head 0 0
+1 14 #text 0 1
+
+1 8 #comment 0 1 4.8
+1 14 #text 0 1
+
+1 1 script 0 0
+2 3 #text 0 1
+ ... unescaped script content ...
+
+1 15 script 0 0
+1 14 #text 0 1
+
+1 1 body 0 0
+2 14 #text 0 1
+
+2 1 p 0 0
+3 3 #text 0 1 Moved to
+3 1 a 0 0
+4 3 #text 0 1 example.org
+3 15 a 0 0
+3 3 #text 0 1 .
+2 15 p 0 0
+2 14 #text 0 1
+
+1 15 body 0 0
+1 14 #text 0 1
+
+1 8 #comment 0 1 C2
+1 14 #text 0 1
+
+1 1 img 1 0
+1 14 #text 0 1
+
+1 8 #comment 0 1 C3
+1 14 #text 0 1
+
+1 1 p 1 0
+1 14 #text 0 1
+
+1 8 #comment 0 1 C7
+1 14 #text 0 1
+
+1 1 p 0 0
+2 3 #text 0 1 coucou
+1 15 p 0 0
+1 14 #text 0 1
+
+1 1 p 0 0
+2 3 #text 0 1 salut
+1 15 p 0 0
+1 14 #text 0 1
+
+1 8 #comment 0 1 C8
+1 14 #text 0 1
+
+1 1 p 0 0
+2 3 #text 0 1 test
+1 15 p 0 0
+1 14 #text 0 1
+
+1 8 #comment 0 1 4.5
+1 14 #text 0 1
+
+1 1 dl 0 0
+2 14 #text 0 1
+
+2 1 dt 0 0
+3 3 #text 0 1 Internet Engineering Task Force
+2 15 dt 0 0
+2 14 #text 0 1
+
+2 1 dd 0 0
+3 3 #text 0 1 An organization which establishes technical standards for the Internet
+2 15 dd 0 0
+2 14 #text 0 1
+
+1 15 dl 0 0
+1 14 #text 0 1
+
+
+0 15 html 0 0
diff --git a/result/xhtmlcomp.rde b/result/xhtmlcomp.rde
new file mode 100644
index 0000000..97517b7
--- /dev/null
+++ b/result/xhtmlcomp.rde
@@ -0,0 +1,19 @@
+0 10 html 0 0
+0 1 html 0 0
+1 14 #text 0 1
+
+1 1 body 0 0
+2 14 #text 0 1
+
+2 1 h1 0 0
+3 1 abbr 0 0
+4 3 #text 0 1 a
+3 15 abbr 0 0
+3 3 #text 0 1 b
+2 15 h1 0 0
+2 14 #text 0 1
+
+1 15 body 0 0
+1 14 #text 0 1
+
+0 15 html 0 0
diff --git a/result/xml1.rde b/result/xml1.rde
new file mode 100644
index 0000000..ecd6154
--- /dev/null
+++ b/result/xml1.rde
@@ -0,0 +1,8 @@
+0 10 test 0 0
+0 1 test 0 0
+1 1 p 0 0
+2 3 #text 0 1 An ampersand (&) may be escaped
+ numerically (&#38;) or with a general entity
+ (&amp;).
+1 15 p 0 0
+0 15 test 0 0
diff --git a/result/xml2.rde b/result/xml2.rde
new file mode 100644
index 0000000..cfdf217
--- /dev/null
+++ b/result/xml2.rde
@@ -0,0 +1,4 @@
+0 10 test 0 0
+0 1 test 0 0
+1 3 #text 0 1 This sample shows a error-prone method.
+0 15 test 0 0
diff --git a/test/ent9 b/test/ent9
new file mode 100644
index 0000000..5db63ba
--- /dev/null
+++ b/test/ent9
@@ -0,0 +1,61 @@
+<!DOCTYPE doc [
+<!ENTITY test1 "<a/>,<b/>,<c/>,<d/>">
+]>
+<doc>
+ <ent>&test1;</ent>
+ <p> WE need lot of garbage now to trigger the problem</p>
+ <p> WE need lot of garbage now to trigger the problem</p>
+ <p> WE need lot of garbage now to trigger the problem</p>
+ <p> WE need lot of garbage now to trigger the problem</p>
+ <p> WE need lot of garbage now to trigger the problem</p>
+ <p> WE need lot of garbage now to trigger the problem</p>
+ <p> WE need lot of garbage now to trigger the problem</p>
+ <p> WE need lot of garbage now to trigger the problem</p>
+ <p> WE need lot of garbage now to trigger the problem</p>
+ <p> WE need lot of garbage now to trigger the problem</p>
+ <p> WE need lot of garbage now to trigger the problem</p>
+ <p> WE need lot of garbage now to trigger the problem</p>
+ <p> WE need lot of garbage now to trigger the problem</p>
+ <p> WE need lot of garbage now to trigger the problem</p>
+ <p> WE need lot of garbage now to trigger the problem</p>
+ <p> WE need lot of garbage now to trigger the problem</p>
+ <p> WE need lot of garbage now to trigger the problem</p>
+ <p> WE need lot of garbage now to trigger the problem</p>
+ <p> WE need lot of garbage now to trigger the problem</p>
+ <p> WE need lot of garbage now to trigger the problem</p>
+ <p> WE need lot of garbage now to trigger the problem</p>
+ <p> WE need lot of garbage now to trigger the problem</p>
+ <p> WE need lot of garbage now to trigger the problem</p>
+ <p> WE need lot of garbage now to trigger the problem</p>
+ <p> WE need lot of garbage now to trigger the problem</p>
+ <p> WE need lot of garbage now to trigger the problem</p>
+ <p> WE need lot of garbage now to trigger the problem</p>
+ <p> WE need lot of garbage now to trigger the problem</p>
+ <p> WE need lot of garbage now to trigger the problem</p>
+ <p> WE need lot of garbage now to trigger the problem</p>
+ <p> WE need lot of garbage now to trigger the problem</p>
+ <p> WE need lot of garbage now to trigger the problem</p>
+ <p> WE need lot of garbage now to trigger the problem</p>
+ <p> WE need lot of garbage now to trigger the problem</p>
+ <p> WE need lot of garbage now to trigger the problem</p>
+ <p> WE need lot of garbage now to trigger the problem</p>
+ <p> WE need lot of garbage now to trigger the problem</p>
+ <p> WE need lot of garbage now to trigger the problem</p>
+ <p> WE need lot of garbage now to trigger the problem</p>
+ <p> WE need lot of garbage now to trigger the problem</p>
+ <p> WE need lot of garbage now to trigger the problem</p>
+ <p> WE need lot of garbage now to trigger the problem</p>
+ <p> WE need lot of garbage now to trigger the problem</p>
+ <p> WE need lot of garbage now to trigger the problem</p>
+ <p> WE need lot of garbage now to trigger the problem</p>
+ <p> WE need lot of garbage now to trigger the problem</p>
+ <p> WE need lot of garbage now to trigger the problem</p>
+ <p> WE need lot of garbage now to trigger the problem</p>
+ <p> WE need lot of garbage now to trigger the problem</p>
+ <p> WE need lot of garbage now to trigger the problem</p>
+ <p> WE need lot of garbage now to trigger the problem</p>
+ <p> WE need lot of garbage now to trigger the problem</p>
+ <p> WE need lot of garbage now to trigger the problem</p>
+ <ent>&test1;</ent>
+</doc>
+
diff --git a/test/errors/.memdump b/test/errors/.memdump
new file mode 100644
index 0000000..d197ae2
--- /dev/null
+++ b/test/errors/.memdump
@@ -0,0 +1,4 @@
+ 01:09:53 PM
+
+ MEMORY ALLOCATED : 0, MAX was 12998
+BLOCK NUMBER SIZE TYPE
diff --git a/test/errors/charref1.xml b/test/errors/charref1.xml
new file mode 100644
index 0000000..11423df
--- /dev/null
+++ b/test/errors/charref1.xml
@@ -0,0 +1 @@
+<bla>&#010100000000000000000000000000000000000000000000000060;</bla>
diff --git a/test/schemas/anyAttr-derive-errors1_0.xml b/test/schemas/anyAttr-derive-errors1_0.xml
new file mode 100644
index 0000000..98e948c
--- /dev/null
+++ b/test/schemas/anyAttr-derive-errors1_0.xml
@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<foo
+ xmlns="http://FOO"
+ xmlns:foo="http://FOO"
+ xmlns:bar="http://BAR"
+ xmlns:doo="http://DOO"
+ xmlns:import="http://IMPORT"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://FOO anyAttr-derive-errors1_0.xsd">
+
+ <derive.1_1 barA="o" bar:barB="o" foo:barC="o"/>
+ <derive.1_4 barA="o" bar:barB="o" foo:barC="o"/>
+ <derive.2_1 barA="o" bar:barB="o" foo:barC="o" doo:barD="o" />
+ <derive.3_1 barA="o" foo:barC="o" doo:barD="o" />
+ <derive.4_1 bar:barB="o" foo:barC="o" doo:barD="o"/>
+
+ <derive.5_1_a barA="o" bar:barB="o" foo:barC="o" doo:barD="o" />
+ <derive.5_1_b barA="o" bar:barB="o" foo:barC="o" doo:barD="o" />
+
+ <derive.5_2_a bar:barB="o" foo:barC="o" doo:barD="o" />
+ <derive.5_2_b bar:barB="o" foo:barC="o" doo:barD="o" />
+
+ <derive.5_4_a bar:barB="o" doo:barD="o" />
+ <derive.5_4_b bar:barB="o" doo:barD="o" />
+
+ <derive.6_1 barA="o" bar:barB="o" foo:barC="o" doo:barD="o"/>
+ <derive.6_2 bar:barB="o" foo:barC="o" doo:barD="o"/>
+</foo>
+
+
diff --git a/test/schemas/anyAttr-derive-errors1_0.xsd b/test/schemas/anyAttr-derive-errors1_0.xsd
new file mode 100644
index 0000000..1ab9bab
--- /dev/null
+++ b/test/schemas/anyAttr-derive-errors1_0.xsd
@@ -0,0 +1,223 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<xsd:schema xmlns:foo="http://FOO" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:import="http://IMPORT"
+ targetNamespace="http://FOO" elementFormDefault="qualified">
+ <xsd:import namespace="http://IMPORT" schemaLocation="anyAttr.importA.1_0.xsd"/>
+ <xsd:import schemaLocation="anyAttr.importB.1_0.xsd"/>
+ <xsd:element name="foo">
+ <xsd:complexType>
+ <xsd:sequence>
+ <!-- Attribute Wildcard Union -->
+ <xsd:element name="derive.1_1" type="foo:type.1_1"/>
+ <xsd:element name="derive.1_4" type="foo:type.1_4"/>
+ <xsd:element name="derive.2_1" type="foo:type.2_1"/>
+ <xsd:element name="derive.3_1" type="foo:type.3_1"/>
+ <xsd:element name="derive.4_1" type="foo:type.4_1"/>
+ <xsd:element name="derive.5_1_a" type="foo:type.5_1_a"/>
+ <xsd:element name="derive.5_1_b" type="foo:type.5_1_b"/>
+ <xsd:element name="derive.5_2_a" type="foo:type.5_2_a"/>
+ <xsd:element name="derive.5_2_b" type="foo:type.5_2_b"/>
+ <xsd:element name="derive.5_4_a" type="foo:type.5_4_a"/>
+ <xsd:element name="derive.5_4_b" type="foo:type.5_4_b"/>
+ <xsd:element name="derive.6_1" type="foo:type.6_1"/>
+ <xsd:element name="derive.6_2" type="foo:type.6_2"/>
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+
+ <!-- Attribute Wildcard Union -->
+
+ <!-- 1. If O1 and O2 are the same value, then that value must be the value. -->
+ <xsd:complexType name="type.1_1">
+ <xsd:complexContent>
+ <xsd:extension base="foo:type.base.1_1">
+ <xsd:anyAttribute namespace="##any" processContents="lax"/>
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+ <xsd:complexType name="type.base.1_1">
+ <xsd:attributeGroup ref="foo:attrGr.1_1"/>
+ <xsd:anyAttribute namespace="##any" processContents="lax"/>
+ </xsd:complexType>
+ <xsd:attributeGroup name="attrGr.1_1">
+ <xsd:anyAttribute namespace="##any" processContents="lax"/>
+ </xsd:attributeGroup>
+
+ <xsd:complexType name="type.1_4">
+ <xsd:complexContent>
+ <xsd:extension base="foo:type.base.1_4">
+ <xsd:anyAttribute namespace="http://BAR ##local http://FOO" processContents="lax"/>
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+ <xsd:complexType name="type.base.1_4">
+ <xsd:attributeGroup ref="foo:attrGr.1_4"/>
+ <xsd:anyAttribute namespace="##local http://BAR ##targetNamespace " processContents="lax"/>
+ </xsd:complexType>
+ <xsd:attributeGroup name="attrGr.1_4">
+ <xsd:anyAttribute namespace=" http://FOO http://BAR ##local"/>
+ </xsd:attributeGroup>
+
+ <!-- 2. If either O1 or O2 is any, then any must be the value. -->
+ <xsd:complexType name="type.2_1">
+ <xsd:complexContent>
+ <xsd:extension base="foo:type.base.2_1">
+ <xsd:anyAttribute namespace="##any" processContents="lax"/>
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+ <xsd:complexType name="type.base.2_1">
+ <xsd:attributeGroup ref="foo:attrGr.2_1"/>
+ <xsd:anyAttribute namespace="##any" processContents="lax"/>
+ </xsd:complexType>
+ <xsd:attributeGroup name="attrGr.2_1">
+ <xsd:anyAttribute namespace="##local ##targetNamespace"/>
+ </xsd:attributeGroup>
+
+ <!-- 3. If both O1 and O2 are sets of (namespace names or ·absent·),
+ then the union of those sets must be the value. -->
+ <xsd:complexType name="type.3_1">
+ <xsd:complexContent>
+ <xsd:extension base="foo:type.base.3_1">
+ <xsd:anyAttribute namespace="##targetNamespace http://DOO" processContents="lax"/>
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+ <xsd:complexType name="type.base.3_1">
+ <xsd:attributeGroup ref="foo:attrGr.3_1"/>
+ <xsd:anyAttribute namespace="##local" processContents="lax"/>
+ </xsd:complexType>
+ <xsd:attributeGroup name="attrGr.3_1">
+ <xsd:anyAttribute namespace="##local ##targetNamespace http://BAR"/>
+ </xsd:attributeGroup>
+ <!-- 4 If the two are negations of different values (namespace
+ names or ·absent·), then a pair of not and ·absent· must be the value. -->
+ <xsd:complexType name="type.4_1">
+ <xsd:complexContent>
+ <xsd:extension base="imp.type.base.derive.4_1">
+ <xsd:anyAttribute namespace="##other" processContents="lax"/>
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+ <!-- 5 If either O1 or O2 is a pair of not and a namespace name and
+ the other is a set of (namespace names or ·absent·) (call this set S),
+ then The appropriate case among the following must be true: -->
+ <!-- 5.1 If the set S includes both the negated namespace name and
+ ·absent·, then any must be the value. -->
+ <xsd:complexType name="type.5_1_a">
+ <xsd:complexContent>
+ <xsd:extension base="foo:type.base.5_1_a">
+ <xsd:anyAttribute namespace="##local ##targetNamespace" processContents="lax"/>
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+ <xsd:complexType name="type.base.5_1_a">
+ <xsd:anyAttribute namespace="##other" processContents="lax"/>
+ </xsd:complexType>
+
+ <xsd:complexType name="type.5_1_b">
+ <xsd:complexContent>
+ <xsd:extension base="foo:type.base.5_1_b">
+ <xsd:anyAttribute namespace="##other" processContents="lax"/>
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+ <xsd:complexType name="type.base.5_1_b">
+ <xsd:anyAttribute namespace="##local ##targetNamespace" processContents="lax"/>
+ </xsd:complexType>
+
+ <!-- 5.2 If the set S includes the negated namespace name but not ·absent·,
+ then a pair of not and ·absent· must be the value. -->
+ <xsd:complexType name="type.5_2_a">
+ <xsd:complexContent>
+ <xsd:extension base="foo:type.base.5_2_a">
+ <xsd:anyAttribute namespace="##targetNamespace http://BAR" processContents="lax"/>
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+ <xsd:complexType name="type.base.5_2_a">
+ <xsd:anyAttribute namespace="##other" processContents="lax"/>
+ </xsd:complexType>
+
+ <xsd:complexType name="type.5_2_b">
+ <xsd:complexContent>
+ <xsd:extension base="foo:type.base.5_2_b">
+ <xsd:anyAttribute namespace="##other" processContents="lax"/>
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+ <xsd:complexType name="type.base.5_2_b">
+ <xsd:anyAttribute namespace="##targetNamespace http://BAR" processContents="lax"/>
+ </xsd:complexType>
+ <!-- 5.3 If the set S includes ·absent· but not the negated namespace name,
+ then the union is not expressible. -->
+ <!--
+ <xsd:complexType name="type.5_3_a">
+ <xsd:complexContent>
+ <xsd:extension base="foo:type.base.5_3_a">
+ <xsd:anyAttribute namespace="##local http://BAR" processContents="lax"/>
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+ <xsd:complexType name="type.base.5_3_a">
+ <xsd:anyAttribute namespace="##other" processContents="lax"/>
+ </xsd:complexType>
+
+ <xsd:complexType name="type.5_3_b">
+ <xsd:complexContent>
+ <xsd:extension base="foo:type.base.5_3_b">
+ <xsd:anyAttribute namespace="##other" processContents="lax"/>
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+ <xsd:complexType name="type.base.5_3_b">
+ <xsd:anyAttribute namespace="##local http://BAR" processContents="lax"/>
+ </xsd:complexType>
+ -->
+ <!-- 5.4 If the set S does not include either the negated namespace name
+ or ·absent·, then whichever of O1 or O2 is a pair of not and a namespace
+ name must be the value. -->
+ <xsd:complexType name="type.5_4_a">
+ <xsd:complexContent>
+ <xsd:extension base="foo:type.base.5_4_a">
+ <xsd:anyAttribute namespace="http://BAR" processContents="lax"/>
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+ <xsd:complexType name="type.base.5_4_a">
+ <xsd:anyAttribute namespace="##other" processContents="lax"/>
+ </xsd:complexType>
+
+ <xsd:complexType name="type.5_4_b">
+ <xsd:complexContent>
+ <xsd:extension base="foo:type.base.5_4_b">
+ <xsd:anyAttribute namespace="##other" processContents="lax"/>
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+ <xsd:complexType name="type.base.5_4_b">
+ <xsd:anyAttribute namespace="http://BAR" processContents="lax"/>
+ </xsd:complexType>
+ <!-- 6 If either O1 or O2 is a pair of not and ·absent· and the other is a
+ set of (namespace names or ·absent·) (again, call this set S), then The
+ appropriate case among the following must be true: -->
+ <!-- 6.1 If the set S includes ·absent·, then any must be the value. -->
+ <xsd:complexType name="type.6_1">
+ <xsd:complexContent>
+ <xsd:extension base="imp.type.base.derive.6">
+ <xsd:anyAttribute namespace="##local http://BAR" processContents="lax"/>
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+ <!-- 6.2 If the set S does not include ·absent·, then a pair of not and ·absent·
+ must be the value. -->
+ <xsd:complexType name="type.6_2">
+ <xsd:complexContent>
+ <xsd:extension base="imp.type.base.derive.6">
+ <xsd:anyAttribute namespace="http://BAR http://DOO" processContents="lax"/>
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+
+</xsd:schema>
+
+
diff --git a/test/schemas/anyAttr-derive1_0.xml b/test/schemas/anyAttr-derive1_0.xml
new file mode 100644
index 0000000..de89f45
--- /dev/null
+++ b/test/schemas/anyAttr-derive1_0.xml
@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<foo
+ xmlns="http://FOO"
+ xmlns:foo="http://FOO"
+ xmlns:bar="http://BAR"
+ xmlns:doo="http://DOO"
+ xmlns:import="http://IMPORT"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://FOO anyAttr-derive1_0.xsd">
+
+ <derive.1_1 barA="o" bar:barB="o" foo:barC="o"/>
+ <derive.1_4 barA="o" bar:barB="o" foo:barC="o"/>
+ <derive.2_1 barA="o" bar:barB="o" foo:barC="o" doo:barD="o" />
+ <derive.3_1 barA="o" foo:barC="o" doo:barD="o" />
+ <derive.4_1 bar:barB="o" foo:barC="o" doo:barD="o"/>
+
+ <derive.5_1_a barA="o" bar:barB="o" foo:barC="o" doo:barD="o" />
+ <derive.5_1_b barA="o" bar:barB="o" foo:barC="o" doo:barD="o" />
+
+ <derive.5_2_a bar:barB="o" foo:barC="o" doo:barD="o" />
+ <derive.5_2_b bar:barB="o" foo:barC="o" doo:barD="o" />
+
+ <derive.5_4_a bar:barB="o" doo:barD="o" />
+ <derive.5_4_b bar:barB="o" doo:barD="o" />
+
+ <derive.6_1 barA="o" bar:barB="o" foo:barC="o" doo:barD="o"/>
+ <derive.6_2 bar:barB="o" foo:barC="o" doo:barD="o"/>
+</foo>
+
+
diff --git a/test/schemas/anyAttr-derive1_0.xsd b/test/schemas/anyAttr-derive1_0.xsd
new file mode 100644
index 0000000..bc14d99
--- /dev/null
+++ b/test/schemas/anyAttr-derive1_0.xsd
@@ -0,0 +1,227 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<xsd:schema xmlns:foo="http://FOO" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:import="http://IMPORT"
+ targetNamespace="http://FOO" elementFormDefault="qualified">
+ <xsd:import namespace="http://IMPORT" schemaLocation="anyAttr.importA.1_0.xsd"/>
+ <xsd:import schemaLocation="anyAttr.importB.1_0.xsd"/>
+ <xsd:element name="foo">
+ <xsd:complexType>
+ <xsd:sequence>
+ <!-- Attribute Wildcard Union -->
+ <xsd:element name="derive.1_1" type="foo:type.1_1"/>
+ <xsd:element name="derive.1_4" type="foo:type.1_4"/>
+
+ <xsd:element name="derive.2_1" type="foo:type.2_1"/>
+
+ <xsd:element name="derive.3_1" type="foo:type.3_1"/>
+
+ <xsd:element name="derive.4_1" type="foo:type.4_1"/>
+
+ <xsd:element name="derive.5_1_a" type="foo:type.5_1_a"/>
+ <xsd:element name="derive.5_1_b" type="foo:type.5_1_b"/>
+ <xsd:element name="derive.5_2_a" type="foo:type.5_2_a"/>
+ <xsd:element name="derive.5_2_b" type="foo:type.5_2_b"/>
+ <xsd:element name="derive.5_4_a" type="foo:type.5_4_a"/>
+ <xsd:element name="derive.5_4_b" type="foo:type.5_4_b"/>
+ <xsd:element name="derive.6_1" type="foo:type.6_1"/>
+ <xsd:element name="derive.6_2" type="foo:type.6_2"/>
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+
+ <!-- Attribute Wildcard Union -->
+
+ <!-- 1. If O1 and O2 are the same value, then that value must be the value. -->
+ <xsd:complexType name="type.1_1">
+ <xsd:complexContent>
+ <xsd:extension base="foo:type.base.1_1">
+ <xsd:anyAttribute namespace="##any" processContents="lax"/>
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+ <xsd:complexType name="type.base.1_1">
+ <xsd:attributeGroup ref="foo:attrGr.1_1"/>
+ <xsd:anyAttribute namespace="##any" processContents="lax"/>
+ </xsd:complexType>
+ <xsd:attributeGroup name="attrGr.1_1">
+ <xsd:anyAttribute namespace="##any" processContents="lax"/>
+ </xsd:attributeGroup>
+
+ <xsd:complexType name="type.1_4">
+ <xsd:complexContent>
+ <xsd:extension base="foo:type.base.1_4">
+ <xsd:anyAttribute namespace="http://BAR ##local http://FOO" processContents="lax"/>
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+ <xsd:complexType name="type.base.1_4">
+ <xsd:attributeGroup ref="foo:attrGr.1_4"/>
+ <xsd:anyAttribute namespace="##local http://BAR ##targetNamespace " processContents="lax"/>
+ </xsd:complexType>
+ <xsd:attributeGroup name="attrGr.1_4">
+ <xsd:anyAttribute namespace=" http://FOO http://BAR ##local"/>
+ </xsd:attributeGroup>
+
+ <!-- 2. If either O1 or O2 is any, then any must be the value. -->
+ <xsd:complexType name="type.2_1">
+ <xsd:complexContent>
+ <xsd:extension base="foo:type.base.2_1">
+ <xsd:anyAttribute namespace="##any" processContents="lax"/>
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+ <xsd:complexType name="type.base.2_1">
+ <xsd:attributeGroup ref="foo:attrGr.2_1"/>
+ <xsd:anyAttribute namespace="##any" processContents="lax"/>
+ </xsd:complexType>
+ <xsd:attributeGroup name="attrGr.2_1">
+ <xsd:anyAttribute namespace="##local ##targetNamespace"/>
+ </xsd:attributeGroup>
+
+ <!-- 3. If both O1 and O2 are sets of (namespace names or ·absent·),
+ then the union of those sets must be the value. -->
+ <xsd:complexType name="type.3_1">
+ <xsd:complexContent>
+ <xsd:extension base="foo:type.base.3_1">
+ <xsd:anyAttribute namespace="##targetNamespace http://DOO" processContents="lax"/>
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+ <xsd:complexType name="type.base.3_1">
+ <xsd:attributeGroup ref="foo:attrGr.3_1"/>
+ <xsd:anyAttribute namespace="##local" processContents="lax"/>
+ </xsd:complexType>
+ <xsd:attributeGroup name="attrGr.3_1">
+ <xsd:anyAttribute namespace="##local ##targetNamespace http://BAR"/>
+ </xsd:attributeGroup>
+ <!-- 4 If the two are negations of different values (namespace
+ names or ·absent·), then a pair of not and ·absent· must be the value. -->
+ <xsd:complexType name="type.4_1">
+ <xsd:complexContent>
+ <xsd:extension base="imp.type.base.derive.4_1">
+ <xsd:anyAttribute namespace="##other" processContents="lax"/>
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+ <!-- 5 If either O1 or O2 is a pair of not and a namespace name and
+ the other is a set of (namespace names or ·absent·) (call this set S),
+ then The appropriate case among the following must be true: -->
+ <!-- 5.1 If the set S includes both the negated namespace name and
+ ·absent·, then any must be the value. -->
+ <xsd:complexType name="type.5_1_a">
+ <xsd:complexContent>
+ <xsd:extension base="foo:type.base.5_1_a">
+ <xsd:anyAttribute namespace="##local ##targetNamespace" processContents="lax"/>
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+ <xsd:complexType name="type.base.5_1_a">
+ <xsd:anyAttribute namespace="##other" processContents="lax"/>
+ </xsd:complexType>
+
+ <xsd:complexType name="type.5_1_b">
+ <xsd:complexContent>
+ <xsd:extension base="foo:type.base.5_1_b">
+ <xsd:anyAttribute namespace="##other" processContents="lax"/>
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+ <xsd:complexType name="type.base.5_1_b">
+ <xsd:anyAttribute namespace="##local ##targetNamespace" processContents="lax"/>
+ </xsd:complexType>
+
+ <!-- 5.2 If the set S includes the negated namespace name but not ·absent·,
+ then a pair of not and ·absent· must be the value. -->
+ <xsd:complexType name="type.5_2_a">
+ <xsd:complexContent>
+ <xsd:extension base="foo:type.base.5_2_a">
+ <xsd:anyAttribute namespace="##targetNamespace http://BAR" processContents="lax"/>
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+ <xsd:complexType name="type.base.5_2_a">
+ <xsd:anyAttribute namespace="##other" processContents="lax"/>
+ </xsd:complexType>
+
+ <xsd:complexType name="type.5_2_b">
+ <xsd:complexContent>
+ <xsd:extension base="foo:type.base.5_2_b">
+ <xsd:anyAttribute namespace="##other" processContents="lax"/>
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+ <xsd:complexType name="type.base.5_2_b">
+ <xsd:anyAttribute namespace="##targetNamespace http://BAR" processContents="lax"/>
+ </xsd:complexType>
+ <!-- 5.3 If the set S includes ·absent· but not the negated namespace name,
+ then the union is not expressible. -->
+ <!--
+ <xsd:complexType name="type.5_3_a">
+ <xsd:complexContent>
+ <xsd:extension base="foo:type.base.5_3_a">
+ <xsd:anyAttribute namespace="##local http://BAR" processContents="lax"/>
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+ <xsd:complexType name="type.base.5_3_a">
+ <xsd:anyAttribute namespace="##other" processContents="lax"/>
+ </xsd:complexType>
+
+ <xsd:complexType name="type.5_3_b">
+ <xsd:complexContent>
+ <xsd:extension base="foo:type.base.5_3_b">
+ <xsd:anyAttribute namespace="##other" processContents="lax"/>
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+ <xsd:complexType name="type.base.5_3_b">
+ <xsd:anyAttribute namespace="##local http://BAR" processContents="lax"/>
+ </xsd:complexType>
+ -->
+ <!-- 5.4 If the set S does not include either the negated namespace name
+ or ·absent·, then whichever of O1 or O2 is a pair of not and a namespace
+ name must be the value. -->
+ <xsd:complexType name="type.5_4_a">
+ <xsd:complexContent>
+ <xsd:extension base="foo:type.base.5_4_a">
+ <xsd:anyAttribute namespace="http://BAR" processContents="lax"/>
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+ <xsd:complexType name="type.base.5_4_a">
+ <xsd:anyAttribute namespace="##other" processContents="lax"/>
+ </xsd:complexType>
+
+ <xsd:complexType name="type.5_4_b">
+ <xsd:complexContent>
+ <xsd:extension base="foo:type.base.5_4_b">
+ <xsd:anyAttribute namespace="##other" processContents="lax"/>
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+ <xsd:complexType name="type.base.5_4_b">
+ <xsd:anyAttribute namespace="http://BAR" processContents="lax"/>
+ </xsd:complexType>
+ <!-- 6 If either O1 or O2 is a pair of not and ·absent· and the other is a
+ set of (namespace names or ·absent·) (again, call this set S), then The
+ appropriate case among the following must be true: -->
+ <!-- 6.1 If the set S includes ·absent·, then any must be the value. -->
+ <xsd:complexType name="type.6_1">
+ <xsd:complexContent>
+ <xsd:extension base="imp.type.base.derive.6">
+ <xsd:anyAttribute namespace="##local http://BAR" processContents="lax"/>
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+ <!-- 6.2 If the set S does not include ·absent·, then a pair of not and ·absent·
+ must be the value. -->
+ <xsd:complexType name="type.6_2">
+ <xsd:complexContent>
+ <xsd:extension base="imp.type.base.derive.6">
+ <xsd:anyAttribute namespace="http://BAR http://DOO" processContents="lax"/>
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+
+</xsd:schema>
+
+
diff --git a/test/schemas/anyAttr-derive2_0.xml b/test/schemas/anyAttr-derive2_0.xml
new file mode 100644
index 0000000..c90cb88
--- /dev/null
+++ b/test/schemas/anyAttr-derive2_0.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<!--
+-->
+<foo xmlns="http://FOO" xmlns:foo="http://FOO" xmlns:bar="http://BAR" xmlns:boo="http://BOO" xmlns:doo="http://DOO"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://FOO attrGroup-wildcard1_0.xsd"
+ foo:bar="o" doo:bar="o"/>
+
+
diff --git a/test/schemas/anyAttr-derive2_0.xsd b/test/schemas/anyAttr-derive2_0.xsd
new file mode 100644
index 0000000..3a74d68
--- /dev/null
+++ b/test/schemas/anyAttr-derive2_0.xsd
@@ -0,0 +1,33 @@
+<?xml version="1.0" encoding="ISO-8859-1" ?>
+<!--
+-->
+<schema xmlns="http://www.w3.org/2001/XMLSchema"
+ targetNamespace="http://FOO"
+ xmlns:foo="http://FOO" elementFormDefault="qualified" attributeFormDefault="qualified">
+
+ <element name="foo">
+ <complexType>
+ <complexContent>
+ <extension base="foo:type.A">
+ <anyAttribute namespace="http://DOO" processContents="skip"/>
+ </extension>
+ </complexContent>
+ </complexType>
+ </element>
+
+ <complexType name="type.A">
+ <attributeGroup ref="foo:attrGr.A_1"/>
+ <attributeGroup ref="foo:attrGr.A_2"/>
+ <anyAttribute namespace="http://FOO" processContents="skip"/>
+ </complexType>
+
+ <attributeGroup name="attrGr.A_1">
+ <anyAttribute namespace="http://FOO http://BOO" processContents="skip"/>
+ </attributeGroup>
+
+ <attributeGroup name="attrGr.A_2">
+ <anyAttribute namespace="http://BAR http://DOO http://FOO" processContents="skip"/>
+ </attributeGroup>
+
+
+</schema>
diff --git a/test/schemas/anyAttr-errors1_0.xml b/test/schemas/anyAttr-errors1_0.xml
new file mode 100644
index 0000000..769a5bb
--- /dev/null
+++ b/test/schemas/anyAttr-errors1_0.xml
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<foo
+ xmlns="http://FOO"
+ xmlns:foo="http://FOO"
+ xmlns:bar="http://BAR"
+ xmlns:import="http://IMPORT"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://FOO file:///c:/dev/libxml2/patches/2004-05-17/anyAttr-errors1_0.xsd">
+
+ <!-- not allowed: foo:barC -->
+ <basic.B foo:barC="o"/>
+ <!-- not allowed: foo:barC -->
+ <basic.C foo:barC="o"/>
+ <!-- not allowed: barA, bar:barB -->
+ <basic.D barA="o" bar:barB="o"/>
+ <!-- not allowed: bar:barB -->
+ <inters.2_1 barA="o" bar:barB="o" foo:barC="o"/>
+ <!-- not allowed: barA, foo:barC -->
+ <inters.3_1 barA="o" bar:barB="o" foo:barC="o"/>
+ <!-- not allowed: bar:barB -->
+ <inters.4_1 barA="o" bar:barB="o" foo:barC="o"/>
+ <!-- not allowed: barA, foo:barC -->
+ <inters.6_1 barA="o" bar:barB="o" foo:barC="o"/>
+</foo>
+
+
diff --git a/test/schemas/anyAttr-processContents-err1_0.xml b/test/schemas/anyAttr-processContents-err1_0.xml
new file mode 100644
index 0000000..a0122f4
--- /dev/null
+++ b/test/schemas/anyAttr-processContents-err1_0.xml
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<foo
+ xmlns="http://FOO"
+ xmlns:foo="http://FOO"
+ xmlns:bar="http://BAR"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://FOO anyAttr-processContents1_0.xsd">
+ <elem.lax foo:bar="o o"/>
+ <elem.strict foo:barB="GB"/>
+</foo>
+
diff --git a/test/schemas/anyAttr-processContents-err1_0.xsd b/test/schemas/anyAttr-processContents-err1_0.xsd
new file mode 100644
index 0000000..cc2a0fd
--- /dev/null
+++ b/test/schemas/anyAttr-processContents-err1_0.xsd
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<xsd:schema xmlns:foo="http://FOO"
+ xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+ elementFormDefault="qualified"
+ targetNamespace="http://FOO">
+
+ <xsd:element name="foo">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="elem.lax" type="foo:type.lax"/>
+ <xsd:element name="elem.strict" type="foo:type.strict"/>
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+
+ <xsd:attribute name="bar" type="xsd:language" />
+
+ <xsd:complexType name="type.lax">
+ <xsd:anyAttribute namespace="##any" processContents="lax"/>
+ </xsd:complexType>
+ <xsd:complexType name="type.strict">
+ <xsd:anyAttribute namespace="##any" processContents="strict"/>
+ </xsd:complexType>
+
+</xsd:schema>
+
diff --git a/test/schemas/anyAttr-processContents1_0.xml b/test/schemas/anyAttr-processContents1_0.xml
new file mode 100644
index 0000000..f821089
--- /dev/null
+++ b/test/schemas/anyAttr-processContents1_0.xml
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<foo
+ xmlns="http://FOO"
+ xmlns:foo="http://FOO"
+ xmlns:bar="http://BAR"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://FOO anyAttr-processContents1_0.xsd">
+ <elem.lax.A foo:barA_1="PL"/>
+ <elem.lax.B foo:barA_2="o"/>
+ <elem.strict foo:barB="FR"/>
+ <elem.skip foo:barC="o"/>
+</foo>
+
diff --git a/test/schemas/anyAttr-processContents1_0.xsd b/test/schemas/anyAttr-processContents1_0.xsd
new file mode 100644
index 0000000..a468702
--- /dev/null
+++ b/test/schemas/anyAttr-processContents1_0.xsd
@@ -0,0 +1,32 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<xsd:schema xmlns:foo="http://FOO"
+ xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+ elementFormDefault="qualified"
+ targetNamespace="http://FOO">
+
+ <xsd:element name="foo">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="elem.lax.A" type="foo:type.lax"/>
+ <xsd:element name="elem.lax.B" type="foo:type.lax"/>
+ <xsd:element name="elem.strict" type="foo:type.strict"/>
+ <xsd:element name="elem.skip" type="foo:type.skip"/>
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+
+ <xsd:attribute name="barA" type="xsd:language" />
+ <xsd:attribute name="barB" type="xsd:language" />
+
+ <xsd:complexType name="type.lax">
+ <xsd:anyAttribute namespace="##any" processContents="lax"/>
+ </xsd:complexType>
+ <xsd:complexType name="type.strict">
+ <xsd:anyAttribute namespace="##any"/>
+ </xsd:complexType>
+ <xsd:complexType name="type.skip">
+ <xsd:anyAttribute namespace="##any" processContents="skip"/>
+ </xsd:complexType>
+
+</xsd:schema>
+
diff --git a/test/schemas/anyAttr.importA.1_0.xsd b/test/schemas/anyAttr.importA.1_0.xsd
new file mode 100644
index 0000000..92e0bbe
--- /dev/null
+++ b/test/schemas/anyAttr.importA.1_0.xsd
@@ -0,0 +1,24 @@
+<?xml version="1.0"?>
+<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" targetNamespace="http://IMPORT"
+ xmlns:imp="http://IMPORT" xmlns:boo="http://BOO">
+
+ <xsd:attributeGroup name="attrGr.inters.5_1">
+ <xsd:anyAttribute namespace="##other"/>
+ </xsd:attributeGroup>
+
+ <xsd:element name="imp.element"/>
+
+ <xsd:attribute name="imp.attribute" type="xsd:string"/>
+
+ <xsd:group name="imp.group">
+ <xsd:sequence>
+ <xsd:element ref="imp:imp.element"/>
+ </xsd:sequence>
+ </xsd:group>
+
+ <xsd:complexType name="imp.complexType">
+ <xsd:attribute ref="imp:imp.attribute"/>
+ </xsd:complexType>
+
+</xsd:schema>
+
diff --git a/test/schemas/anyAttr.importB.1_0.xsd b/test/schemas/anyAttr.importB.1_0.xsd
new file mode 100644
index 0000000..33eaba8
--- /dev/null
+++ b/test/schemas/anyAttr.importB.1_0.xsd
@@ -0,0 +1,21 @@
+<?xml version="1.0"?>
+<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">
+
+ <xsd:attributeGroup name="attrGr.inters.6_1">
+ <xsd:anyAttribute namespace="##other"/>
+ </xsd:attributeGroup>
+
+ <xsd:complexType name="imp.type.base.inters.4_1">
+ <xsd:anyAttribute namespace="##other" processContents="lax"/>
+ </xsd:complexType>
+
+ <xsd:complexType name="imp.type.base.derive.4_1">
+ <xsd:anyAttribute namespace="##other" processContents="lax"/>
+ </xsd:complexType>
+
+ <xsd:complexType name="imp.type.base.derive.6">
+ <xsd:anyAttribute namespace="##other" processContents="lax"/>
+ </xsd:complexType>
+
+</xsd:schema>
+
diff --git a/test/schemas/anyAttr1_0.xml b/test/schemas/anyAttr1_0.xml
new file mode 100644
index 0000000..50b5b16
--- /dev/null
+++ b/test/schemas/anyAttr1_0.xml
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<foo
+ xmlns="http://FOO"
+ xmlns:foo="http://FOO"
+ xmlns:bar="http://BAR"
+ xmlns:boo="http://BOO"
+ xmlns:import="http://IMPORT"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://FOO anyAttr1_0.xsd">
+ <import:imp.element/>
+ <imp.attribute import:imp.attribute="p"/>
+ <imp.group>
+ <import:imp.element/>
+ </imp.group>
+ <basic.A bar:barA="o"/>
+ <basic.B bar:barB="o"/>
+ <basic.C barC="o"/>
+ <basic.D foo:barD="o"/>
+ <basic.E barA="o" bar:barB="o" foo:barC="o"/>
+ <inters.1_1 barA="o" bar:barB="o" foo:barC="o"/>
+ <inters.1_2 bar:barB="o"/>
+ <inters.1_3 barA="o" foo:barC="o"/>
+ <inters.1_4 barA="o" bar:barB="o" foo:barC="o"/>
+ <inters.2_1 barA="o" foo:barC="o"/>
+ <inters.3_1 bar:barB="o"/>
+ <inters.4_1 barA="o" foo:barC="o"/>
+ <!--inters.5_1 barA="o" bar:barB="o" foo:barC="o"/-->
+ <inters.6_1 bar:barB="o"/>
+</foo>
+
+
diff --git a/test/schemas/anyAttr1_0.xsd b/test/schemas/anyAttr1_0.xsd
new file mode 100644
index 0000000..1fcf898
--- /dev/null
+++ b/test/schemas/anyAttr1_0.xsd
@@ -0,0 +1,144 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<xsd:schema xmlns:foo="http://FOO" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:import="http://IMPORT"
+ targetNamespace="http://FOO" elementFormDefault="qualified">
+ <xsd:import namespace="http://IMPORT" schemaLocation="anyAttr.importA.1_0.xsd"/>
+ <xsd:import schemaLocation="anyAttr.importB.1_0.xsd"/>
+ <xsd:element name="foo">
+ <xsd:complexType>
+ <xsd:sequence>
+ <!-- Import -->
+ <xsd:element ref="import:imp.element"/>
+ <xsd:element name="imp.attribute">
+ <xsd:complexType>
+ <xsd:attribute ref="import:imp.attribute"/>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="imp.group">
+ <xsd:complexType>
+ <xsd:group ref="import:imp.group"/>
+ </xsd:complexType>
+ </xsd:element>
+ <!-- Basic -->
+ <xsd:element name="basic.A" type="foo:type.basic.A"/>
+ <xsd:element name="basic.B" type="foo:type.basic.B"/>
+ <xsd:element name="basic.C" type="foo:type.basic.C"/>
+ <xsd:element name="basic.D" type="foo:type.basic.D"/>
+ <xsd:element name="basic.E" type="foo:type.basic.E"/>
+ <!-- Attribute Wildcard Intersection -->
+ <xsd:element name="inters.1_1" type="foo:type.inters.1_1"/>
+ <xsd:element name="inters.1_2" type="foo:type.inters.1_2"/>
+ <xsd:element name="inters.1_3" type="foo:type.inters.1_3"/>
+ <xsd:element name="inters.1_4" type="foo:type.inters.1_4"/>
+
+ <xsd:element name="inters.2_1" type="foo:type.inters.2_1"/>
+
+ <xsd:element name="inters.3_1" type="foo:type.inters.3_1"/>
+
+ <xsd:element name="inters.4_1" type="foo:type.inters.4_1"/>
+
+ <!--xsd:element name="inters.5_1" type="type.inters.5_1"/-->
+ <xsd:element name="inters.6_1" type="foo:type.inters.6_1"/>
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+
+ <!-- Basic -->
+ <xsd:complexType name="type.basic.A">
+ <xsd:anyAttribute namespace="##any" processContents="lax"/>
+ </xsd:complexType>
+ <xsd:complexType name="type.basic.B">
+ <xsd:anyAttribute namespace="##other" processContents="lax"/>
+ </xsd:complexType>
+ <xsd:complexType name="type.basic.C">
+ <xsd:anyAttribute namespace="##local" processContents="lax"/>
+ </xsd:complexType>
+ <xsd:complexType name="type.basic.D">
+ <xsd:anyAttribute namespace="##targetNamespace" processContents="lax"/>
+ </xsd:complexType>
+ <xsd:complexType name="type.basic.E">
+ <xsd:anyAttribute namespace="##targetNamespace ##local http://BAR" processContents="lax"/>
+ </xsd:complexType>
+ <!-- Attribute Wildcard Intersection -->
+
+ <!-- 1. If O1 and O2 are the same value, then that value must be the value. -->
+ <xsd:complexType name="type.inters.1_1">
+ <xsd:attributeGroup ref="foo:attrGr.inters.1_1"/>
+ <xsd:anyAttribute namespace="##any" processContents="lax"/>
+ </xsd:complexType>
+ <xsd:attributeGroup name="attrGr.inters.1_1">
+ <xsd:anyAttribute namespace="##any"/>
+ </xsd:attributeGroup>
+ <xsd:complexType name="type.inters.1_2">
+ <xsd:attributeGroup ref="foo:attrGr.inters.1_2"/>
+ <xsd:anyAttribute namespace="##other" processContents="lax"/>
+ </xsd:complexType>
+ <xsd:attributeGroup name="attrGr.inters.1_2">
+ <xsd:anyAttribute namespace="##other"/>
+ </xsd:attributeGroup>
+ <xsd:complexType name="type.inters.1_3">
+ <xsd:attributeGroup ref="foo:attrGr.inters.1_3"/>
+ <xsd:anyAttribute namespace="##local ##targetNamespace" processContents="lax"/>
+ </xsd:complexType>
+ <xsd:attributeGroup name="attrGr.inters.1_3">
+ <xsd:anyAttribute namespace="##local ##targetNamespace"/>
+ </xsd:attributeGroup>
+ <xsd:complexType name="type.inters.1_4">
+ <xsd:attributeGroup ref="foo:attrGr.inters.1_4"/>
+ <xsd:anyAttribute namespace="##local http://BAR ##targetNamespace " processContents="lax"/>
+ </xsd:complexType>
+ <xsd:attributeGroup name="attrGr.inters.1_4">
+ <xsd:anyAttribute namespace=" ##targetNamespace http://BAR ##local"/>
+ </xsd:attributeGroup>
+
+ <!-- 2. If either O1 or O2 is any, then the other must be the value. -->
+ <xsd:complexType name="type.inters.2_1">
+ <xsd:attributeGroup ref="foo:attrGr.inters.2_1"/>
+ <xsd:anyAttribute namespace="##any" processContents="lax"/>
+ </xsd:complexType>
+ <xsd:attributeGroup name="attrGr.inters.2_1">
+ <xsd:anyAttribute namespace="##local ##targetNamespace"/>
+ </xsd:attributeGroup>
+ <!-- 3. If either O1 or O2 is a pair of not and a value (a namespace name or ·absent·)
+ and the other is a set of (namespace names or ·absent·), then that set, minus the
+ negated value if it was in the set, minus ·absent· if it was in the set, must be the value. -->
+ <xsd:complexType name="type.inters.3_1">
+ <xsd:attributeGroup ref="foo:attrGr.inters.3_1"/>
+ <xsd:anyAttribute namespace="##other" processContents="lax"/>
+ </xsd:complexType>
+ <xsd:attributeGroup name="attrGr.inters.3_1">
+ <xsd:anyAttribute namespace="##local ##targetNamespace http://BAR"/>
+ </xsd:attributeGroup>
+ <!-- 4. If both O1 and O2 are sets of (namespace names or ·absent·), then the
+ intersection of those sets must be the value. -->
+ <xsd:complexType name="type.inters.4_1">
+ <xsd:attributeGroup ref="foo:attrGr.inters.4_1"/>
+ <xsd:anyAttribute namespace="##local ##targetNamespace http://BAR" processContents="lax"/>
+ </xsd:complexType>
+ <xsd:attributeGroup name="attrGr.inters.4_1">
+ <xsd:anyAttribute namespace="##local ##targetNamespace"/>
+ </xsd:attributeGroup>
+ <!-- 5. If the two are negations of different namespace names,
+ then the intersection is not expressible. -->
+ <!--
+ <xsd:complexType name="type.inters.5_1">
+ <xsd:attributeGroup ref="import:attrGr.inters.5_1"/>
+ <xsd:anyAttribute namespace="##other" processContents="lax"/>
+ </xsd:complexType>
+ -->
+ <!--6. If the one is a negation of a namespace name and the other is a negation of ·absent·,
+ then the one which is the negation of a namespace name must be the value.
+
+ This one uses an attribute group from an imported schema with no targetNamespace.
+ -->
+ <xsd:complexType name="type.inters.6_1">
+ <xsd:attributeGroup ref="attrGr.inters.6_1"/>
+ <xsd:anyAttribute namespace="##other" processContents="lax"/>
+ </xsd:complexType>
+
+ <xsd:attributeGroup name="attrGrA">
+ <xsd:anyAttribute namespace="##targetNamespace"/>
+ </xsd:attributeGroup>
+
+</xsd:schema>
+
+
diff --git a/test/schemas/bug141312_0.xml b/test/schemas/bug141312_0.xml
new file mode 100644
index 0000000..7d7abb1
--- /dev/null
+++ b/test/schemas/bug141312_0.xml
@@ -0,0 +1,2 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<foo xmlns="http://FOO">lalala</foo>
diff --git a/test/schemas/bug141312_0.xsd b/test/schemas/bug141312_0.xsd
new file mode 100644
index 0000000..c9a7e2c
--- /dev/null
+++ b/test/schemas/bug141312_0.xsd
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<schema
+ xmlns="http://www.w3.org/2001/XMLSchema"
+ targetNamespace="http://FOO"
+ xmlns:foo="http://FOO">
+
+ <element name="foo" type="foo:fooType" nillable="false" />
+
+ <complexType name="fooType" mixed="true">
+ <simpleContent>
+ <extension base="string" />
+ </simpleContent>
+ </complexType>
+
+</schema>
+
diff --git a/test/schemas/bug141333.xml b/test/schemas/bug141333.xml
new file mode 100644
index 0000000..e14aa46
--- /dev/null
+++ b/test/schemas/bug141333.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<foo
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:noNamespaceSchemaLocation="bug141333.xsd" attrA="valueA">
+
+ <bar attrA="valueA" attrB="valueB"/>
+
+</foo>
+
diff --git a/test/schemas/bug141333.xsd b/test/schemas/bug141333.xsd
new file mode 100644
index 0000000..1b81a7b
--- /dev/null
+++ b/test/schemas/bug141333.xsd
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="unqualified">
+
+ <xs:element name="foo" type="baseType"/>
+
+ <xs:complexType name="baseType">
+ <xs:all>
+ <xs:element name="bar" type="derivedType" minOccurs="0"/>
+ </xs:all>
+ <xs:attribute name="attrA" type="xs:string" use="required"/>
+ </xs:complexType>
+
+ <xs:complexType name="derivedType">
+ <xs:complexContent>
+ <xs:extension base="baseType">
+ <xs:attribute name="attrB" type="xs:string" use="required"/>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+
+</xs:schema>
+
+
+
+
diff --git a/test/schemas/bug143951.imp b/test/schemas/bug143951.imp
new file mode 100644
index 0000000..58420d3
--- /dev/null
+++ b/test/schemas/bug143951.imp
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="ISO-8859-1" ?>
+<xs:schema targetNamespace="http://www.newport-networks.com/NNL"
+xmlns:nnl="http://www.newport-networks.com/NNL"
+xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified"
+attributeFormDefault="unqualified" version="1.00">
+ <xs:group name="schema2group">
+ <xs:sequence>
+ <xs:element name="file" type="xs:string"
+default="$File$"/>
+ </xs:sequence>
+ </xs:group>
+</xs:schema>
diff --git a/test/schemas/bug143951_0.xml b/test/schemas/bug143951_0.xml
new file mode 100644
index 0000000..a742a0d
--- /dev/null
+++ b/test/schemas/bug143951_0.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<MenuDefinitionFile xmlns:nnl="http://www.newport-networks.com/NNL"
+xmlns="http://www.newport-networks.com/cli"
+xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+xsi:schemaLocation="http://www.newport-networks.com/cli bug143951_0.xsd">
+ <nnl:file>$File: //depot/NNL/R1.0_SandM_Dev/Projects/SandM/src/uisupport
+/xml/cliTestCommands.xml $</nnl:file>
+</MenuDefinitionFile>
+
diff --git a/test/schemas/bug143951_0.xsd b/test/schemas/bug143951_0.xsd
new file mode 100644
index 0000000..d5c9511
--- /dev/null
+++ b/test/schemas/bug143951_0.xsd
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="ISO-8859-1" ?>
+<xs:schema targetNamespace="http://www.newport-networks.com/cli"
+ xmlns:nnl="http://www.newport-networks.com/NNL"
+ xmlns:cli="http://www.newport-networks.com/cli"
+ xmlns:xs="http://www.w3.org/2001/XMLSchema"
+ elementFormDefault="qualified" attributeFormDefault="unqualified"
+ version="1.00">
+ <xs:import namespace="http://www.newport-networks.com/NNL" schemaLocation="bug143951.imp"/>
+ <xs:element name="MenuDefinitionFile">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:group ref="nnl:schema2group"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+</xs:schema>
+
diff --git a/test/schemas/cos-ct-extends-1-3_0.xml b/test/schemas/cos-ct-extends-1-3_0.xml
new file mode 100644
index 0000000..a0b8a59
--- /dev/null
+++ b/test/schemas/cos-ct-extends-1-3_0.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<!--
+-->
+<foo xmlns="http://FOO" xmlns:foo="http://FOO"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://FOO cos-ct-extends-1-3_0.xsd">
+ <bar.A foo:bar="o"/>
+ <bar.B foo:bar="o"/>
+</foo>
diff --git a/test/schemas/cos-ct-extends-1-3_0.xsd b/test/schemas/cos-ct-extends-1-3_0.xsd
new file mode 100644
index 0000000..7655a8e
--- /dev/null
+++ b/test/schemas/cos-ct-extends-1-3_0.xsd
@@ -0,0 +1,51 @@
+<?xml version="1.0" encoding="ISO-8859-1" ?>
+<!--
+ Schema Component Constraint: Derivation Valid (Extension)
+
+ 1.3 If it has an {attribute wildcard}, the complex type definition must
+ also have one, and the base type definition's {attribute wildcard}'s
+ {namespace constraint} must be a subset of the complex type definition's
+ {attribute wildcard}'s {namespace constraint}, as defined by Wildcard Subset (§3.10.6).
+-->
+<schema xmlns="http://www.w3.org/2001/XMLSchema"
+ targetNamespace="http://FOO"
+ xmlns:foo="http://FOO"
+ elementFormDefault="qualified">
+
+ <element name="foo">
+ <complexType>
+ <sequence>
+ <element name="bar.A" type="foo:type.A" />
+ <element name="bar.B" type="foo:type.B" />
+ </sequence>
+ </complexType>
+ </element>
+
+ <complexType name="type.A">
+ <complexContent>
+ <!-- This is OK, since the complete wildcard
+ is the wildcard of the base type. -->
+ <extension base="foo:base.type.A" />
+ </complexContent>
+ </complexType>
+
+ <complexType name="base.type.A">
+ <anyAttribute namespace="##any" processContents="skip" />
+ </complexType>
+
+ <complexType name="type.B">
+ <complexContent>
+ <extension base="foo:base.type.B">
+ <!-- This is OK, since the complete wildcard is a union
+ of "##any" and "http://FOO" = "##any". Thus the complete
+ wildcard is equal to that one in the base class. -->
+ <anyAttribute namespace="http://FOO" processContents="skip" />
+ </extension>
+ </complexContent>
+ </complexType>
+
+ <complexType name="base.type.B">
+ <anyAttribute namespace="##any" processContents="skip" />
+ </complexType>
+
+</schema>
diff --git a/test/schemas/cos-st-restricts-1-2-err_0.xml b/test/schemas/cos-st-restricts-1-2-err_0.xml
new file mode 100644
index 0000000..6f60e5b
--- /dev/null
+++ b/test/schemas/cos-st-restricts-1-2-err_0.xml
@@ -0,0 +1,3 @@
+<?xml version="1.0"?>
+<foo xmlns="http://FOO" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://FOO cos-st-restricts-1-2-err_0.xsd">1 2</foo>
diff --git a/test/schemas/cos-st-restricts-1-2-err_0.xsd b/test/schemas/cos-st-restricts-1-2-err_0.xsd
new file mode 100644
index 0000000..9d3fabf
--- /dev/null
+++ b/test/schemas/cos-st-restricts-1-2-err_0.xsd
@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<schema xmlns="http://www.w3.org/2001/XMLSchema"
+ targetNamespace="http://FOO" xmlns:foo="http://FOO">
+
+ <element name="foo" type="foo:type.A"/>
+
+ <simpleType name="type.A">
+ <restriction>
+ <simpleType>
+ <list itemType="integer"/>
+ </simpleType>
+ <length value="3"/>
+ </restriction>
+ </simpleType>
+
+ <!--restriction base="foo:type.base.A">
+
+ </restriction-->
+
+ <simpleType name="type.base.A">
+ <restriction>
+ <simpleType>
+ <list itemType="integer"/>
+ </simpleType>
+ </restriction>
+ </simpleType>
+
+
+
+</schema>
diff --git a/test/schemas/date_0.xml b/test/schemas/date_0.xml
index fbef1e5..6c677ed 100644
--- a/test/schemas/date_0.xml
+++ b/test/schemas/date_0.xml
@@ -12,6 +12,7 @@
<date1>2000-05-18Z</date1>
<dt1>2000-05-18T00:00:00</dt1>
<dt2>2002-05-19T21:30:00.99</dt2>
+ <dt1>1969-12-31T23:00:01-01:00</dt1>
<hol>--01-01</hol>
<hol>--07-04</hol>
<hol>--12-25</hol>
diff --git a/test/schemas/derivation-ok-extension-err_0.xml b/test/schemas/derivation-ok-extension-err_0.xml
new file mode 100644
index 0000000..ccfa348
--- /dev/null
+++ b/test/schemas/derivation-ok-extension-err_0.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<foo xmlns="http://FOO"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://FOO derivation-ok-extension-err_0.xsd"
+ barA_1="o" barA_2="o"/>
+
+
+
+
diff --git a/test/schemas/derivation-ok-extension-err_0.xsd b/test/schemas/derivation-ok-extension-err_0.xsd
new file mode 100644
index 0000000..89be581
--- /dev/null
+++ b/test/schemas/derivation-ok-extension-err_0.xsd
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
+ xmlns="http://FOO" targetNamespace="http://FOO">
+
+ <xs:element name="foo">
+ <xs:complexType>
+ <xs:complexContent>
+ <xs:extension base="typeA">
+ <xs:attribute name="barA_1" type="xs:string" use="optional"/>
+ <xs:attribute name="barA_2" type="xs:string" use="required"/>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+ </xs:element>
+
+ <xs:complexType name="typeA">
+ <xs:attribute name="barA_1" type="xs:string" use="required"/>
+ </xs:complexType>
+
+</xs:schema>
+
+
diff --git a/test/schemas/derivation-ok-extension_0.xml b/test/schemas/derivation-ok-extension_0.xml
new file mode 100644
index 0000000..0cf871e
--- /dev/null
+++ b/test/schemas/derivation-ok-extension_0.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<foo xmlns="http://FOO"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://FOO derivation-ok-extension_0.xsd"
+ barA_1="o" barA_2="o"/>
+
+
+
+
diff --git a/test/schemas/derivation-ok-extension_0.xsd b/test/schemas/derivation-ok-extension_0.xsd
new file mode 100644
index 0000000..b99065b
--- /dev/null
+++ b/test/schemas/derivation-ok-extension_0.xsd
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
+ xmlns="http://FOO" targetNamespace="http://FOO">
+
+ <xs:element name="foo">
+ <xs:complexType>
+ <xs:complexContent>
+ <xs:extension base="typeA">
+ <xs:attribute name="barA_2" type="xs:string" use="required"/>
+ <xs:attribute name="barA_1" type="xs:string" use="prohibited"/>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+ </xs:element>
+
+ <xs:complexType name="typeA">
+ <xs:attribute name="barA_1" type="xs:string" use="required"/>
+ </xs:complexType>
+
+</xs:schema>
+
+
diff --git a/test/schemas/derivation-ok-restriction-2-1-1_0.xml b/test/schemas/derivation-ok-restriction-2-1-1_0.xml
new file mode 100644
index 0000000..a92fb0c
--- /dev/null
+++ b/test/schemas/derivation-ok-restriction-2-1-1_0.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<foo xmlns="http://FOO"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://FOO derivation-ok-restriction-2-1-1_0.xsd"/>
+
+
+
+
diff --git a/test/schemas/derivation-ok-restriction-2-1-1_0.xsd b/test/schemas/derivation-ok-restriction-2-1-1_0.xsd
new file mode 100644
index 0000000..e91fe43
--- /dev/null
+++ b/test/schemas/derivation-ok-restriction-2-1-1_0.xsd
@@ -0,0 +1,56 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
+ xmlns="http://FOO" targetNamespace="http://FOO">
+
+ <xs:element name="foo">
+ <xs:complexType>
+ <xs:complexContent>
+ <xs:restriction base="typeA">
+ <xs:attribute name="barA_1" type="xs:string" use="optional"/>
+ <!-- OK -->
+ <xs:attribute name="barA_2" type="xs:string" use="required"/>
+ <!-- OK -->
+ <xs:attribute name="barA_3" type="xs:string" use="prohibited"/>
+ <!-- OK -->
+
+ <xs:attribute name="barB_1" type="xs:string" use="optional"/>
+ <!-- 2.1.1 inconsistent ( OR 3 ) -->
+ <xs:attribute name="barB_2" type="xs:string" use="required"/>
+ <!-- OK -->
+ <xs:attribute name="barB_3" type="xs:string" use="prohibited"/>
+ <!-- 3 -->
+
+ <xs:attribute name="barC_1" type="xs:string" use="optional"/>
+ <!-- 2.2 no match in base -->
+ <xs:attribute name="barC_2" type="xs:string" use="required"/>
+ <!-- 2.2 no match in base -->
+ <xs:attribute name="barC_3" type="xs:string" use="prohibited"/>
+ <!-- OK -->
+
+ <xs:attribute name="barD_1" type="xs:string" use="optional"/>
+ <!-- 2.2 no match in base -->
+ <xs:attribute name="barD_2" type="xs:string" use="required"/>
+ <!-- 2.2 no match in base -->
+ <xs:attribute name="barD_3" type="xs:string" use="prohibited"/>
+ <!-- OK -->
+
+ </xs:restriction>
+ </xs:complexContent>
+ </xs:complexType>
+ </xs:element>
+
+ <xs:complexType name="typeA">
+ <xs:attribute name="barA_1" type="xs:string" use="optional"/>
+ <xs:attribute name="barA_2" type="xs:string" use="optional"/>
+ <xs:attribute name="barA_3" type="xs:string" use="optional"/>
+ <xs:attribute name="barB_1" type="xs:string" use="required"/>
+ <xs:attribute name="barB_2" type="xs:string" use="required"/>
+ <xs:attribute name="barB_3" type="xs:string" use="required"/>
+ <xs:attribute name="barC_1" type="xs:string" use="prohibited"/>
+ <xs:attribute name="barC_2" type="xs:string" use="prohibited"/>
+ <xs:attribute name="barC_3" type="xs:string" use="prohibited"/>
+ </xs:complexType>
+
+</xs:schema>
+
+
diff --git a/test/schemas/derivation-ok-restriction-4-1-err_0.xml b/test/schemas/derivation-ok-restriction-4-1-err_0.xml
new file mode 100644
index 0000000..6021eb9
--- /dev/null
+++ b/test/schemas/derivation-ok-restriction-4-1-err_0.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<foo xmlns="http://FOO" xmlns:foo="http://FOO"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://FOO derivation-ok-restriction-4-1-err_0.xsd">
+ <bar.A />
+ <bar.B />
+ <bar.C />
+</foo>
diff --git a/test/schemas/derivation-ok-restriction-4-1-err_0.xsd b/test/schemas/derivation-ok-restriction-4-1-err_0.xsd
new file mode 100644
index 0000000..c7400ac
--- /dev/null
+++ b/test/schemas/derivation-ok-restriction-4-1-err_0.xsd
@@ -0,0 +1,69 @@
+<?xml version="1.0" encoding="ISO-8859-1" ?>
+<!--
+ Schema Component Constraint: Derivation Valid (Restriction, Complex)
+
+ 4 If there is an {attribute wildcard}, all of the following must be true:
+
+ 4.1 The {base type definition} must also have one.
+
+ 4.2 The complex type definition's {attribute wildcard}'s {namespace constraint}
+ must be a subset of the {base type definition}'s {attribute wildcard}'s {namespace
+ constraint}, as defined by Wildcard Subset (§3.10.6).
+
+ 4.3 Unless the {base type definition} is the ·ur-type definition·, the complex type
+ definition's {attribute wildcard}'s {process contents} must be identical to or stronger
+ than the {base type definition}'s {attribute wildcard}'s {process contents},
+ where strict is stronger than lax is stronger than skip.
+-->
+<schema xmlns="http://www.w3.org/2001/XMLSchema"
+ targetNamespace="http://FOO"
+ xmlns:foo="http://FOO"
+ >
+
+ <element name="foo">
+ <complexType>
+ <sequence>
+ <element name="bar.A" type="foo:type.A" />
+ <element name="bar.B" type="foo:type.B" />
+ <element name="bar.C" type="foo:type.C" />
+ </sequence>
+ </complexType>
+ </element>
+
+ <complexType name="type.A">
+ <complexContent>
+ <restriction base="foo:base.type.A">
+ <anyAttribute namespace="##any" processContents="skip" />
+ </restriction>
+ </complexContent>
+ </complexType>
+
+ <complexType name="base.type.A">
+ <attribute name="bar" type="string"/>
+ </complexType>
+
+ <complexType name="type.B">
+ <complexContent>
+ <restriction base="foo:base.type.B">
+ <anyAttribute namespace="##any" processContents="skip" />
+ </restriction>
+ </complexContent>
+ </complexType>
+
+ <complexType name="base.type.B">
+ <anyAttribute namespace="http://FOO" processContents="skip" />
+ </complexType>
+
+ <complexType name="type.C">
+ <complexContent>
+ <restriction base="foo:base.type.C">
+ <anyAttribute namespace="##any" processContents="skip" />
+ </restriction>
+ </complexContent>
+ </complexType>
+
+ <complexType name="base.type.C">
+ <anyAttribute namespace="##any" processContents="lax" />
+ </complexType>
+
+</schema>
diff --git a/test/schemas/derivation-restriction-anyAttr_0.xml b/test/schemas/derivation-restriction-anyAttr_0.xml
new file mode 100644
index 0000000..66e7d3f
--- /dev/null
+++ b/test/schemas/derivation-restriction-anyAttr_0.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<foo
+ xmlns:f="http://FOO" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xmlns:bar="http://BAR"
+ xsi:noNamespaceSchemaLocation="file:///c:/dev/libxml2/patches/2004-05-17/derivation-restriction-anyAttr_0.xsd"
+ >
+ <bar barA="ooo" />
+</foo>
+
+
+
+
diff --git a/test/schemas/derivation-restriction-anyAttr_0.xsd b/test/schemas/derivation-restriction-anyAttr_0.xsd
new file mode 100644
index 0000000..f72c316
--- /dev/null
+++ b/test/schemas/derivation-restriction-anyAttr_0.xsd
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
+ elementFormDefault="unqualified">
+
+ <xs:element name="foo">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element name="bar" type="typeA"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+
+ <xs:attributeGroup name="attrGrA">
+ <xs:anyAttribute namespace="##targetNamespace"/>
+ </xs:attributeGroup>
+
+ <xs:complexType name="typeA">
+ <xs:attributeGroup ref="attrGrA" />
+ <xs:anyAttribute namespace="##targetNamespace" processContents="lax"/>
+ </xs:complexType>
+
+</xs:schema>
+
+
diff --git a/test/schemas/derivation-restriction-anyType.xml b/test/schemas/derivation-restriction-anyType.xml
new file mode 100644
index 0000000..c86c50a
--- /dev/null
+++ b/test/schemas/derivation-restriction-anyType.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<foo xmlns="http://FOO"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://FOO file:///c:/dev/libxml2/patches/2004-05-17/derivation-restriction-anyType.xsd"
+ barA_2="xxx"/>
+
+
+
+
diff --git a/test/schemas/derivation-restriction-anyType.xsd b/test/schemas/derivation-restriction-anyType.xsd
new file mode 100644
index 0000000..ec217d2
--- /dev/null
+++ b/test/schemas/derivation-restriction-anyType.xsd
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
+ xmlns="http://FOO" targetNamespace="http://FOO">
+
+ <xs:element name="foo">
+ <xs:complexType>
+ <xs:complexContent>
+ <xs:extension base="xs:anyType">
+ <xs:attribute name="barA_1" type="xs:string" use="optional"/>
+ <!-- OK -->
+ <xs:attribute name="barA_2" type="xs:string" use="required"/>
+ <!-- OK -->
+ <xs:attribute name="barA_3" type="xs:string" use="prohibited"/>
+ <!-- OK -->
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+ </xs:element>
+
+</xs:schema>
+
+
diff --git a/test/schemas/facet-unionST-err1_0.xml b/test/schemas/facet-unionST-err1_0.xml
new file mode 100644
index 0000000..aa96e20
--- /dev/null
+++ b/test/schemas/facet-unionST-err1_0.xml
@@ -0,0 +1,4 @@
+<?xml version="1.0"?>
+<foo xmlns="http://FOO" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://FOO facet-unionST-err1_0.xsd">large</foo>
+
diff --git a/test/schemas/facet-unionST-err1_0.xsd b/test/schemas/facet-unionST-err1_0.xsd
new file mode 100644
index 0000000..476668b
--- /dev/null
+++ b/test/schemas/facet-unionST-err1_0.xsd
@@ -0,0 +1,27 @@
+<?xml version="1.0"?>
+<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+ targetNamespace="http://FOO" xmlns:foo="http://FOO">
+
+ <xsd:element name="foo" type="foo:fooType.B"/>
+
+ <xsd:simpleType name="fooType.B">
+ <xsd:restriction base="foo:fooType.A">
+ <xsd:enumeration value="medium"/>
+ </xsd:restriction>
+ </xsd:simpleType>
+
+ <xsd:simpleType name="fooType.A">
+ <xsd:union>
+ <xsd:simpleType>
+ <xsd:restriction base="xsd:NMTOKEN">
+ <xsd:enumeration value="small"/>
+ <xsd:enumeration value="medium"/>
+ <xsd:enumeration value="large"/>
+ </xsd:restriction>
+ </xsd:simpleType>
+ </xsd:union>
+ </xsd:simpleType>
+
+
+
+</xsd:schema>
diff --git a/test/schemas/scc-no-xmlns_0.xml b/test/schemas/scc-no-xmlns_0.xml
new file mode 100644
index 0000000..b85cdcb
--- /dev/null
+++ b/test/schemas/scc-no-xmlns_0.xml
@@ -0,0 +1,3 @@
+<?xml version="1.0" encoding="ISO-8859-1" ?>
+<foo xmlns="http://foo"/>
+
diff --git a/test/schemas/scc-no-xmlns_0.xsd b/test/schemas/scc-no-xmlns_0.xsd
new file mode 100644
index 0000000..731c81b
--- /dev/null
+++ b/test/schemas/scc-no-xmlns_0.xsd
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="ISO-8859-1" ?>
+<!-- C.4 Schema Component Constraints: no-xmlns -->
+<schema xmlns="http://www.w3.org/2001/XMLSchema" targetNamespace="http://foo" xmlns:foo="http://foo">
+
+ <element name="foo">
+ <complexType>
+ <attribute name="xmlns" type="string" />
+ </complexType>
+ </element>
+
+</schema>
diff --git a/test/schemas/scc-no-xsi_0.xml b/test/schemas/scc-no-xsi_0.xml
new file mode 100644
index 0000000..b85cdcb
--- /dev/null
+++ b/test/schemas/scc-no-xsi_0.xml
@@ -0,0 +1,3 @@
+<?xml version="1.0" encoding="ISO-8859-1" ?>
+<foo xmlns="http://foo"/>
+
diff --git a/test/schemas/scc-no-xsi_0.xsd b/test/schemas/scc-no-xsi_0.xsd
new file mode 100644
index 0000000..388b6a9
--- /dev/null
+++ b/test/schemas/scc-no-xsi_0.xsd
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="ISO-8859-1" ?>
+<!-- 3.2.6 Schema Component Constraint: xsi: Not Allowed -->
+<schema xmlns="http://www.w3.org/2001/XMLSchema" targetNamespace="http://www.w3.org/2001/XMLSchema-instance">
+
+ <element name="foo">
+ <complexType>
+ <attribute name="bar" form="qualified" type="string"/>
+ </complexType>
+ </element>
+
+</schema>
diff --git a/test/schemas/src-attribute1_0.xml b/test/schemas/src-attribute1_0.xml
new file mode 100644
index 0000000..760efd9
--- /dev/null
+++ b/test/schemas/src-attribute1_0.xml
@@ -0,0 +1,2 @@
+<?xml version="1.0" encoding="ISO-8859-1" ?>
+<foo xmlns="http://FOO"/>
diff --git a/test/schemas/src-attribute1_0.xsd b/test/schemas/src-attribute1_0.xsd
new file mode 100644
index 0000000..dba8b48
--- /dev/null
+++ b/test/schemas/src-attribute1_0.xsd
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="ISO-8859-1" ?>
+<!-- 3.2.3 : 1
+ default and fixed must not both be present
+-->
+<schema xmlns="http://www.w3.org/2001/XMLSchema" targetNamespace="http://foo" xmlns:foo="http://foo">
+
+ <element name="foo">
+ <complexType>
+ <attribute name="bar" type="string" default="moo" fixed="true"/>
+ </complexType>
+ </element>
+
+</schema>
diff --git a/test/schemas/src-attribute2_0.xml b/test/schemas/src-attribute2_0.xml
new file mode 100644
index 0000000..760efd9
--- /dev/null
+++ b/test/schemas/src-attribute2_0.xml
@@ -0,0 +1,2 @@
+<?xml version="1.0" encoding="ISO-8859-1" ?>
+<foo xmlns="http://FOO"/>
diff --git a/test/schemas/src-attribute2_0.xsd b/test/schemas/src-attribute2_0.xsd
new file mode 100644
index 0000000..d10cc81
--- /dev/null
+++ b/test/schemas/src-attribute2_0.xsd
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="ISO-8859-1" ?>
+<!-- 3.2.3 : 2
+ If default and use are both present, use must have the ·actual value· optional
+-->
+<schema xmlns="http://www.w3.org/2001/XMLSchema" targetNamespace="http://foo" xmlns:foo="http://foo">
+
+ <element name="foo">
+ <complexType>
+ <attribute name="bar" type="string" use="required" default="moo" />
+ </complexType>
+ </element>
+
+</schema>
diff --git a/test/schemas/src-attribute3-1_0.xml b/test/schemas/src-attribute3-1_0.xml
new file mode 100644
index 0000000..760efd9
--- /dev/null
+++ b/test/schemas/src-attribute3-1_0.xml
@@ -0,0 +1,2 @@
+<?xml version="1.0" encoding="ISO-8859-1" ?>
+<foo xmlns="http://FOO"/>
diff --git a/test/schemas/src-attribute3-1_0.xsd b/test/schemas/src-attribute3-1_0.xsd
new file mode 100644
index 0000000..28e003c
--- /dev/null
+++ b/test/schemas/src-attribute3-1_0.xsd
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="ISO-8859-1" ?>
+<!-- 3.2.3 : 3.1
+ One of ref or name must be present, but not both
+-->
+<schema xmlns="http://www.w3.org/2001/XMLSchema" targetNamespace="http://foo" xmlns:foo="http://foo">
+
+ <element name="foo">
+ <complexType>
+ <attribute name="bar" ref="foo:bar" />
+ </complexType>
+ </element>
+
+ <attribute name="bar" type="string" />
+
+</schema>
diff --git a/test/schemas/src-attribute3-2-form_0.xml b/test/schemas/src-attribute3-2-form_0.xml
new file mode 100644
index 0000000..760efd9
--- /dev/null
+++ b/test/schemas/src-attribute3-2-form_0.xml
@@ -0,0 +1,2 @@
+<?xml version="1.0" encoding="ISO-8859-1" ?>
+<foo xmlns="http://FOO"/>
diff --git a/test/schemas/src-attribute3-2-form_0.xsd b/test/schemas/src-attribute3-2-form_0.xsd
new file mode 100644
index 0000000..0c7cc23
--- /dev/null
+++ b/test/schemas/src-attribute3-2-form_0.xsd
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="ISO-8859-1" ?>
+<!-- 3.2.3 : 3.2
+ If ref is present, then all of <simpleType>, form and type must be absent
+ This one tests "form"
+-->
+<schema xmlns="http://www.w3.org/2001/XMLSchema" targetNamespace="http://foo" xmlns:foo="http://foo">
+
+ <element name="foo">
+ <complexType>
+ <attribute ref="foo:bar" form="qualified"/>
+ </complexType>
+ </element>
+
+ <attribute name="bar" type="string"/>
+
+</schema>
diff --git a/test/schemas/src-attribute3-2-st_0.xml b/test/schemas/src-attribute3-2-st_0.xml
new file mode 100644
index 0000000..760efd9
--- /dev/null
+++ b/test/schemas/src-attribute3-2-st_0.xml
@@ -0,0 +1,2 @@
+<?xml version="1.0" encoding="ISO-8859-1" ?>
+<foo xmlns="http://FOO"/>
diff --git a/test/schemas/src-attribute3-2-st_0.xsd b/test/schemas/src-attribute3-2-st_0.xsd
new file mode 100644
index 0000000..f256381
--- /dev/null
+++ b/test/schemas/src-attribute3-2-st_0.xsd
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="ISO-8859-1" ?>
+<!-- 3.2.3 : 3.2
+ If ref is present, then all of <simpleType>, form and type must be absent
+ This one tests <simpleType>
+-->
+<schema xmlns="http://www.w3.org/2001/XMLSchema" targetNamespace="http://foo" xmlns:foo="http://foo">
+
+ <element name="foo">
+ <complexType>
+ <attribute ref="foo:bar">
+ <simpleType>
+ <restriction base="string">
+ <maxLength value="20"/>
+ </restriction>
+ </simpleType>
+ </attribute>
+ </complexType>
+ </element>
+
+ <attribute name="bar" type="string" />
+
+</schema>
diff --git a/test/schemas/src-attribute3-2-type_0.xml b/test/schemas/src-attribute3-2-type_0.xml
new file mode 100644
index 0000000..760efd9
--- /dev/null
+++ b/test/schemas/src-attribute3-2-type_0.xml
@@ -0,0 +1,2 @@
+<?xml version="1.0" encoding="ISO-8859-1" ?>
+<foo xmlns="http://FOO"/>
diff --git a/test/schemas/src-attribute3-2-type_0.xsd b/test/schemas/src-attribute3-2-type_0.xsd
new file mode 100644
index 0000000..54f1973
--- /dev/null
+++ b/test/schemas/src-attribute3-2-type_0.xsd
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="ISO-8859-1" ?>
+<!-- 3.2.3 : 3.2
+ If ref is present, then all of <simpleType>, form and type must be absent
+ This one tests "type"
+-->
+<schema xmlns="http://www.w3.org/2001/XMLSchema" targetNamespace="http://foo" xmlns:foo="http://foo">
+
+ <element name="foo">
+ <complexType>
+ <attribute ref="foo:bar" type="string"/>
+ </complexType>
+ </element>
+
+ <attribute name="bar" type="string"/>
+
+</schema>
diff --git a/test/schemas/src-attribute4_0.xml b/test/schemas/src-attribute4_0.xml
new file mode 100644
index 0000000..760efd9
--- /dev/null
+++ b/test/schemas/src-attribute4_0.xml
@@ -0,0 +1,2 @@
+<?xml version="1.0" encoding="ISO-8859-1" ?>
+<foo xmlns="http://FOO"/>
diff --git a/test/schemas/src-attribute4_0.xsd b/test/schemas/src-attribute4_0.xsd
new file mode 100644
index 0000000..cc9d8ac
--- /dev/null
+++ b/test/schemas/src-attribute4_0.xsd
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="ISO-8859-1" ?>
+<!-- 3.2.3 : 3.2
+ type and <simpleType> must not both be present
+-->
+<schema xmlns="http://www.w3.org/2001/XMLSchema" targetNamespace="http://foo" xmlns:foo="http://foo">
+
+ <attribute name="bar" type="string">
+ <simpleType>
+ <restriction base="string">
+ <maxLength value="20"/>
+ </restriction>
+ </simpleType>
+ </attribute>
+
+ <element name="foo"/>
+
+</schema>
diff --git a/test/schemas/src-element1_0.xml b/test/schemas/src-element1_0.xml
new file mode 100644
index 0000000..760efd9
--- /dev/null
+++ b/test/schemas/src-element1_0.xml
@@ -0,0 +1,2 @@
+<?xml version="1.0" encoding="ISO-8859-1" ?>
+<foo xmlns="http://FOO"/>
diff --git a/test/schemas/src-element1_0.xsd b/test/schemas/src-element1_0.xsd
new file mode 100644
index 0000000..ffd8d57
--- /dev/null
+++ b/test/schemas/src-element1_0.xsd
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="ISO-8859-1" ?>
+<!-- 3.2.3 : 1
+ default and fixed must not both be present
+-->
+<schema xmlns="http://www.w3.org/2001/XMLSchema" targetNamespace="http://foo" xmlns:foo="http://foo">
+
+ <element name="foo" type="string" default="Joni" fixed="Mitchel"/>
+
+</schema>
diff --git a/test/schemas/src-element2-1_0.xml b/test/schemas/src-element2-1_0.xml
new file mode 100644
index 0000000..760efd9
--- /dev/null
+++ b/test/schemas/src-element2-1_0.xml
@@ -0,0 +1,2 @@
+<?xml version="1.0" encoding="ISO-8859-1" ?>
+<foo xmlns="http://FOO"/>
diff --git a/test/schemas/src-element2-1_0.xsd b/test/schemas/src-element2-1_0.xsd
new file mode 100644
index 0000000..61c2edf
--- /dev/null
+++ b/test/schemas/src-element2-1_0.xsd
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="ISO-8859-1" ?>
+<!-- 3.2.3 : 2.1
+ One of ref or name must be present, but not both.
+-->
+<schema xmlns="http://www.w3.org/2001/XMLSchema" targetNamespace="http://foo" xmlns:foo="http://foo">
+
+ <element name="bar" type="string"/>
+
+ <element name="foo">
+ <complexType>
+ <sequence>
+ <element name="bar" ref="foo:bar"/>
+ </sequence>
+ </complexType>
+ </element>
+
+</schema>
diff --git a/test/schemas/src-element2-2_0.xml b/test/schemas/src-element2-2_0.xml
new file mode 100644
index 0000000..760efd9
--- /dev/null
+++ b/test/schemas/src-element2-2_0.xml
@@ -0,0 +1,2 @@
+<?xml version="1.0" encoding="ISO-8859-1" ?>
+<foo xmlns="http://FOO"/>
diff --git a/test/schemas/src-element2-2_0.xsd b/test/schemas/src-element2-2_0.xsd
new file mode 100644
index 0000000..a70740a
--- /dev/null
+++ b/test/schemas/src-element2-2_0.xsd
@@ -0,0 +1,48 @@
+<?xml version="1.0" encoding="ISO-8859-1" ?>
+<!-- 3.2.3 : 2.2
+ If ref is present, then all of <complexType>, <simpleType>, <key>, <keyref>, <unique>,
+ nillable, default, fixed, form, block and type must be absent, i.e. only minOccurs, maxOccurs,
+ id are allowed in addition to ref, along with <annotation>.
+
+-->
+<schema xmlns="http://www.w3.org/2001/XMLSchema" targetNamespace="http://foo" xmlns:foo="http://foo">
+
+ <element name="bar" type="string"/>
+
+ <element name="foo">
+ <complexType>
+ <choice>
+
+ <!-- The good ones. -->
+ <element ref="foo:bar" minOccurs="0"/>
+ <element ref="foo:bar" maxOccurs="0"/>
+ <element ref="foo:bar" id="myomy"/>
+
+ <!-- The bad ones. -->
+ <element ref="foo:bar">
+ <complexType>
+ <attribute name="bar" type="string"/>
+ </complexType>
+ </element>
+
+ <element ref="foo:bar">
+ <simpleType>
+ <restriction base="string">
+ <maxLength value="20"/>
+ </restriction>
+ </simpleType>
+ </element>
+
+ <element ref="foo:bar" type="string"/>
+ <element ref="foo:bar" nillable="true"/>
+ <element ref="foo:bar" default="Joni"/>
+ <element ref="foo:bar" fixed="Mitchel"/>
+ <element ref="foo:bar" form="unqualified"/>
+ <element ref="foo:bar" block="restriction"/>
+
+ </choice>
+ </complexType>
+ </element>
+
+
+</schema>
diff --git a/test/schemas/src-element3_0.xml b/test/schemas/src-element3_0.xml
new file mode 100644
index 0000000..760efd9
--- /dev/null
+++ b/test/schemas/src-element3_0.xml
@@ -0,0 +1,2 @@
+<?xml version="1.0" encoding="ISO-8859-1" ?>
+<foo xmlns="http://FOO"/>
diff --git a/test/schemas/src-element3_0.xsd b/test/schemas/src-element3_0.xsd
new file mode 100644
index 0000000..28b69d8
--- /dev/null
+++ b/test/schemas/src-element3_0.xsd
@@ -0,0 +1,29 @@
+<?xml version="1.0" encoding="ISO-8859-1" ?>
+<!-- 3.2.3 : 3
+ type and either <simpleType> or <complexType> are mutually exclusive
+-->
+<schema xmlns="http://www.w3.org/2001/XMLSchema" targetNamespace="http://foo" xmlns:foo="http://foo">
+
+ <element name="foo" type="foo:someType">
+ <complexType>
+ <sequence>
+ <element name="bar" type="string"/>
+ </sequence>
+ </complexType>
+ </element>
+
+ <element name="bar" type="foo:someType">
+ <simpleType>
+ <restriction base="string">
+ <maxLength value="20"/>
+ </restriction>
+ </simpleType>
+ </element>
+
+ <complexType name="someType">
+ <sequence>
+ <element name="bar" type="string"/>
+ </sequence>
+ </complexType>
+
+</schema>
diff --git a/test/schemas/xsd-simpleType-varieties_0.xml b/test/schemas/xsd-simpleType-varieties_0.xml
new file mode 100644
index 0000000..83a0b2a
--- /dev/null
+++ b/test/schemas/xsd-simpleType-varieties_0.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="ISO-8859-1" ?>
+<!-- This is the test data for the check of the implementation of varieties of xsd:simpleType element. -->
+<foo xmlns="http://FOO">
+ <barA>fajita</barA>
+ <barB>pub pub</barB>
+ <barC><![CDATA[tequilla]]></barC>
+</foo>
+
diff --git a/test/schemas/xsd-simpleType-varieties_0.xsd b/test/schemas/xsd-simpleType-varieties_0.xsd
new file mode 100644
index 0000000..e4ed6ac
--- /dev/null
+++ b/test/schemas/xsd-simpleType-varieties_0.xsd
@@ -0,0 +1,43 @@
+<?xml version="1.0" encoding="ISO-8859-1" ?>
+
+<!-- This test checks the implementation of the varieties of the xsd:simpleType element. -->
+
+<schema xmlns="http://www.w3.org/2001/XMLSchema" targetNamespace="http://FOO" xmlns:foo="http://FOO">
+
+ <element name="foo">
+ <complexType>
+ <sequence maxOccurs="unbounded">
+ <element name="barA">
+ <simpleType>
+ <union memberTypes="foo:typeA foo:typeB"/>
+ </simpleType>
+ </element>
+ <element name="barB">
+ <simpleType>
+ <list itemType="foo:typeA"/>
+ </simpleType>
+ </element>
+ <element name="barC">
+ <simpleType>
+ <restriction base="string">
+ <enumeration value="tequilla"/>
+ </restriction>
+ </simpleType>
+ </element>
+ </sequence>
+ </complexType>
+ </element>
+
+ <simpleType name="typeA">
+ <restriction base="string">
+ <enumeration value="pub"/>
+ </restriction>
+ </simpleType>
+
+ <simpleType name="typeB">
+ <restriction base="string">
+ <enumeration value="fajita"/>
+ </restriction>
+ </simpleType>
+
+</schema>
diff --git a/test/valid/t10.xml b/test/valid/t10.xml
new file mode 100644
index 0000000..de066f9
--- /dev/null
+++ b/test/valid/t10.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" standalone="yes"?>
+<!DOCTYPE root [
+<!ELEMENT root (cont1, (cont1, cont2?)+)>
+ <!ELEMENT cont1 EMPTY>
+ <!ELEMENT cont2 EMPTY>
+]>
+<root>
+ <cont1/>
+ <cont1/>
+ <cont1/>
+ <cont1/>
+</root>
diff --git a/testHTML.c b/testHTML.c
index c913bb3..c5da07e 100644
--- a/testHTML.c
+++ b/testHTML.c
@@ -627,7 +627,11 @@ parseSAXFile(char *filename) {
if (push) {
FILE *f;
+#if defined(_WIN32) || defined (__DJGPP__) && !defined (__CYGWIN__)
+ f = fopen(filename, "rb");
+#else
f = fopen(filename, "r");
+#endif
if (f != NULL) {
int res, size = 3;
char chars[4096];
@@ -653,7 +657,11 @@ parseSAXFile(char *filename) {
fclose(f);
}
if (!noout) {
- f = fopen(filename, "r");
+#if defined(_WIN32) || defined (__DJGPP__) && !defined (__CYGWIN__)
+ f = fopen(filename, "rb");
+#else
+ f = fopen(filename, "r");
+#endif
if (f != NULL) {
int res, size = 3;
char chars[4096];
@@ -713,7 +721,11 @@ parseAndPrintFile(char *filename) {
if (push) {
FILE *f;
+#if defined(_WIN32) || defined (__DJGPP__) && !defined (__CYGWIN__)
+ f = fopen(filename, "rb");
+#else
f = fopen(filename, "r");
+#endif
if (f != NULL) {
int res, size = 3;
char chars[4096];
diff --git a/testSAX.c b/testSAX.c
index f394078..c18dd0a 100644
--- a/testSAX.c
+++ b/testSAX.c
@@ -918,7 +918,7 @@ startElementNsDebug(void *ctx ATTRIBUTE_UNUSED,
}
fprintf(stdout, ", %d, %d", nb_attributes, nb_defaulted);
if (attributes != NULL) {
- for (i = 0;i < nb_attributes;i += 5) {
+ for (i = 0;i < nb_attributes * 5;i += 5) {
if (attributes[i + 1] != NULL)
fprintf(stdout, ", %s:%s='", attributes[i + 1], attributes[i]);
else
@@ -1011,7 +1011,11 @@ parseAndPrintFile(char *filename) {
/*
* Empty callbacks for checking
*/
+#if defined(_WIN32) || defined (__DJGPP__) && !defined (__CYGWIN__)
+ f = fopen(filename, "rb");
+#else
f = fopen(filename, "r");
+#endif
if (f != NULL) {
int ret;
char chars[10];
@@ -1036,7 +1040,11 @@ parseAndPrintFile(char *filename) {
/*
* Debug callback
*/
+#if defined(_WIN32) || defined (__DJGPP__) && !defined (__CYGWIN__)
+ f = fopen(filename, "rb");
+#else
f = fopen(filename, "r");
+#endif
if (f != NULL) {
int ret;
char chars[10];
@@ -1118,6 +1126,8 @@ int main(int argc, char **argv) {
int i;
int files = 0;
+ LIBXML_TEST_VERSION /* be safe, plus calls xmlInitParser */
+
for (i = 1; i < argc ; i++) {
if ((!strcmp(argv[i], "-debug")) || (!strcmp(argv[i], "--debug")))
debug++;
diff --git a/uri.c b/uri.c
index 1b2c08a..f36eb9c 100644
--- a/uri.c
+++ b/uri.c
@@ -1972,6 +1972,185 @@ done:
}
/**
+ * xmlBuildRelativeURI:
+ * @URI: the URI reference under consideration
+ * @base: the base value
+ *
+ * Expresses the URI of the reference 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 reference is really wierd or complicated, it may be
+ * worthwhile to first convert it into a "nice" one by calling
+ * xmlBuildURI (using 'base') before calling this routine,
+ * since this routine (for reasonable efficiency) assumes URI has
+ * already been through some validation.
+ *
+ * Returns a new URI string (to be freed by the caller) or NULL in case
+ * error.
+ */
+xmlChar *
+xmlBuildRelativeURI (const xmlChar * URI, const xmlChar * base)
+{
+ xmlChar *val = NULL;
+ int ret;
+ int ix;
+ int pos = 0;
+ int nbslash = 0;
+ xmlURIPtr ref = NULL;
+ xmlURIPtr bas = NULL;
+ xmlChar *bptr, *uptr, *vptr;
+
+ if ((URI == NULL) || (*URI == 0))
+ return NULL;
+ /*
+ * Special case - if URI starts with '.', we assume it's already
+ * in relative form, so nothing to do.
+ */
+ if (*URI == '.') {
+ val = xmlStrdup (URI);
+ goto done;
+ }
+
+ /*
+ * First parse URI into a standard form
+ */
+ ref = xmlCreateURI ();
+ if (ref == NULL)
+ return NULL;
+ ret = xmlParseURIReference (ref, (const char *) URI);
+ if (ret != 0)
+ goto done; /* Error in URI, return NULL */
+
+ /*
+ * Next parse base into the same standard form
+ */
+ if ((base == NULL) || (*base == 0)) {
+ val = xmlStrdup (URI);
+ goto done;
+ }
+ bas = xmlCreateURI ();
+ if (bas == NULL)
+ goto done;
+ ret = xmlParseURIReference (bas, (const char *) base);
+ if (ret != 0)
+ goto done; /* Error in base, return NULL */
+
+ /*
+ * If the scheme / server on the URI differs from the base,
+ * just return the URI
+ */
+ if ((ref->scheme != NULL) &&
+ ((bas->scheme == NULL) ||
+ xmlStrcmp ((xmlChar *)bas->scheme, (xmlChar *)ref->scheme) ||
+ xmlStrcmp ((xmlChar *)bas->server, (xmlChar *)ref->server))) {
+ val = xmlStrdup (URI);
+ goto done;
+ }
+
+ /*
+ * At this point (at last!) we can compare the two paths
+ *
+ * First we compare the two strings and find where they first differ
+ */
+ bptr = (xmlChar *)bas->path;
+ if ((ref->path[pos] == '.') && (ref->path[pos+1] == '/'))
+ pos += 2;
+ if ((*bptr == '.') && (bptr[1] == '/'))
+ bptr += 2;
+ else if ((*bptr == '/') && (ref->path[pos] != '/'))
+ bptr++;
+ while ((bptr[pos] == ref->path[pos]) && (bptr[pos] != 0))
+ pos++;
+
+ if (bptr[pos] == ref->path[pos]) {
+ val = NULL; /* if no differences, return NULL */
+ goto done; /* (I can't imagine why anyone would do this) */
+ }
+
+ /*
+ * In URI, "back up" to the last '/' encountered. This will be the
+ * beginning of the "unique" suffix of URI
+ */
+ ix = pos;
+ if ((ref->path[ix] == '/') && (ix > 0))
+ ix--;
+ for (; ix > 0; ix--) {
+ if (ref->path[ix] == '/')
+ break;
+ }
+ if (ix == 0)
+ uptr = (xmlChar *)ref->path;
+ else
+ uptr = (xmlChar *)&ref->path[ix + 1];
+
+ /*
+ * In base, count the number of '/' from the differing point
+ */
+ if (bptr[pos] != ref->path[pos]) { /* check for trivial URI == base */
+ for (; bptr[ix] != 0; ix++) {
+ if (bptr[ix] == '/')
+ nbslash++;
+ }
+ }
+
+ if (nbslash == 0) {
+ val = xmlStrdup (uptr);
+ goto done;
+ }
+ nbslash--;
+
+ /*
+ * Allocate just enough space for the returned string -
+ * length of the remainder of the URI, plus enough space
+ * for the "../" groups, plus one for the terminator
+ */
+ ix = xmlStrlen (uptr) + 1;
+ val = (xmlChar *) xmlMalloc (ix + 3 * nbslash);
+ if (val == NULL) {
+ goto done;
+ }
+ vptr = val;
+ /*
+ * Put in as many "../" as needed
+ */
+ for (; nbslash>0; nbslash--) {
+ *vptr++ = '.';
+ *vptr++ = '.';
+ *vptr++ = '/';
+ }
+ /*
+ * Finish up with the end of the URI
+ */
+ memcpy (vptr, uptr, ix);
+
+ done:
+ /*
+ * Free the working variables
+ */
+ if (ref != NULL)
+ xmlFreeURI (ref);
+ if (bas != NULL)
+ xmlFreeURI (bas);
+
+ return val;
+}
+
+/**
* xmlCanonicPath:
* @path: the resource locator in a filesystem notation
*
diff --git a/valid.c b/valid.c
index 6460334..18a1fde 100644
--- a/valid.c
+++ b/valid.c
@@ -1012,7 +1012,9 @@ xmlDumpElementContent(xmlBufferPtr buf, xmlElementContentPtr content, int glob)
else
xmlDumpElementContent(buf, content->c1, 0);
xmlBufferWriteChar(buf, " , ");
- if (content->c2->type == XML_ELEMENT_CONTENT_OR)
+ if ((content->c2->type == XML_ELEMENT_CONTENT_OR) ||
+ ((content->c2->type == XML_ELEMENT_CONTENT_SEQ) &&
+ (content->c2->ocur != XML_ELEMENT_CONTENT_ONCE)))
xmlDumpElementContent(buf, content->c2, 1);
else
xmlDumpElementContent(buf, content->c2, 0);
@@ -1024,7 +1026,9 @@ xmlDumpElementContent(xmlBufferPtr buf, xmlElementContentPtr content, int glob)
else
xmlDumpElementContent(buf, content->c1, 0);
xmlBufferWriteChar(buf, " | ");
- if (content->c2->type == XML_ELEMENT_CONTENT_SEQ)
+ if ((content->c2->type == XML_ELEMENT_CONTENT_SEQ) ||
+ ((content->c2->type == XML_ELEMENT_CONTENT_OR) &&
+ (content->c2->ocur != XML_ELEMENT_CONTENT_ONCE)))
xmlDumpElementContent(buf, content->c2, 1);
else
xmlDumpElementContent(buf, content->c2, 0);
@@ -6582,6 +6586,14 @@ xmlValidGetPotentialChildren(xmlElementContent *ctree, const xmlChar **list,
return(*len);
}
+/*
+ * Dummy function to suppress messages while we try out valid elements
+ */
+static void xmlNoValidityErr(void *ctx ATTRIBUTE_UNUSED,
+ const char *msg ATTRIBUTE_UNUSED, ...) {
+ return;
+}
+
/**
* xmlValidGetValidElements:
* @prev: an element to insert after
@@ -6627,14 +6639,15 @@ xmlValidGetValidElements(xmlNode *prev, xmlNode *next, const xmlChar **names,
xmlElement *element_desc;
- memset(&vctxt, 0, sizeof (xmlValidCtxt));
-
if (prev == NULL && next == NULL)
return(-1);
if (names == NULL) return(-1);
if (max <= 0) return(-1);
+ memset(&vctxt, 0, sizeof (xmlValidCtxt));
+ vctxt.error = xmlNoValidityErr; /* this suppresses err/warn output */
+
nb_valid_elements = 0;
ref_node = prev ? prev : next;
parent = ref_node->parent;
diff --git a/win32/Makefile.bcb b/win32/Makefile.bcb
index ab4d080..9b949cc 100644
--- a/win32/Makefile.bcb
+++ b/win32/Makefile.bcb
@@ -248,12 +248,22 @@ install : all
copy $(BINDIR)\$(XML_IMP) "$(LIBPREFIX)"
copy $(BINDIR)\*.exe "$(BINPREFIX)"
+install-bindist : all
+ if not exist "$(INCPREFIX)\libxml" mkdir "$(INCPREFIX)\libxml"
+ if not exist "$(BINPREFIX)" mkdir "$(BINPREFIX)"
+ if not exist "$(LIBPREFIX)" mkdir "$(LIBPREFIX)"
+ copy $(XML_SRCDIR)\include\libxml\*.h "$(INCPREFIX)\libxml"
+ copy $(BINDIR)\$(XML_SO) "$(SOPREFIX)"
+ copy $(BINDIR)\$(XML_A) "$(LIBPREFIX)"
+ copy $(BINDIR)\$(XML_IMP) "$(LIBPREFIX)"
+ copy $(BINDIR)\xml*.exe "$(BINPREFIX)"
+
# This is a target for me, to make a binary distribution. Not for the public use,
# keep your hands off :-)
BDVERSION = $(LIBXML_MAJOR_VERSION).$(LIBXML_MINOR_VERSION).$(LIBXML_MICRO_VERSION)
BDPREFIX = $(XML_BASENAME)-$(BDVERSION).win32
bindist : all
- $(MAKE) /nologo PREFIX=$(BDPREFIX) BINPREFIX=$(BDPREFIX)\util install
+ $(MAKE) /nologo PREFIX=$(BDPREFIX) SOPREFIX=$(BDPREFIX)\bin install-bindist
cscript //NoLogo configure.js genreadme $(XML_BASENAME) $(BDVERSION) $(BDPREFIX)\readme.txt
diff --git a/win32/Makefile.mingw b/win32/Makefile.mingw
index c739ae1..a0fb33c 100644
--- a/win32/Makefile.mingw
+++ b/win32/Makefile.mingw
@@ -247,12 +247,22 @@ install : all
cmd.exe /C copy $(BINDIR)\$(XML_IMP) $(LIBPREFIX)
cmd.exe /C copy $(BINDIR)\*.exe $(BINPREFIX)
+install-bindist : all
+ cmd.exe /C if not exist $(INCPREFIX)\libxml mkdir $(INCPREFIX)\libxml
+ cmd.exe /C if not exist $(BINPREFIX) mkdir $(BINPREFIX)
+ cmd.exe /C if not exist $(LIBPREFIX) mkdir $(LIBPREFIX)
+ cmd.exe /C copy $(XML_SRCDIR)\include\libxml\*.h $(INCPREFIX)\libxml
+ cmd.exe /C copy $(BINDIR)\$(XML_SO) $(SOPREFIX)
+ cmd.exe /C copy $(BINDIR)\$(XML_A) $(LIBPREFIX)
+ cmd.exe /C copy $(BINDIR)\$(XML_IMP) $(LIBPREFIX)
+ cmd.exe /C copy $(BINDIR)\xml*.exe $(BINPREFIX)
+
# This is a target for me, to make a binary distribution. Not for the public use,
# keep your hands off :-)
BDVERSION = $(LIBXML_MAJOR_VERSION).$(LIBXML_MINOR_VERSION).$(LIBXML_MICRO_VERSION)
BDPREFIX = $(XML_BASENAME)-$(BDVERSION).win32
bindist : all
- $(MAKE) PREFIX=$(BDPREFIX) BINPREFIX=$(BDPREFIX)/util install
+ $(MAKE) PREFIX=$(BDPREFIX) SOPREFIX=$(BDPREFIX)/bin install-bindist
cscript //NoLogo configure.js genreadme $(XML_BASENAME) $(BDVERSION) $(BDPREFIX)\readme.txt
diff --git a/win32/Makefile.msvc b/win32/Makefile.msvc
index d7ef466..4ea2859 100644
--- a/win32/Makefile.msvc
+++ b/win32/Makefile.msvc
@@ -61,7 +61,7 @@ CFLAGS = $(CFLAGS) /D "HAVE_ZLIB_H"
LD = link.exe
LDFLAGS = /nologo /VERSION:$(LIBXML_MAJOR_VERSION).$(LIBXML_MINOR_VERSION)
LDFLAGS = $(LDFLAGS) /LIBPATH:$(BINDIR) /LIBPATH:$(LIBPREFIX)
-LIBS =
+LIBS =
!if "$(WITH_FTP)" == "1" || "$(WITH_HTTP)" == "1"
LIBS = $(LIBS) wsock32.lib
!endif
@@ -218,6 +218,7 @@ install : all
if not exist $(INCPREFIX)\libxml mkdir $(INCPREFIX)\libxml
if not exist $(BINPREFIX) mkdir $(BINPREFIX)
if not exist $(LIBPREFIX) mkdir $(LIBPREFIX)
+ if not exist $(SOPREFIX) mkdir $(SOPREFIX)
copy $(XML_SRCDIR)\include\libxml\*.h $(INCPREFIX)\libxml
copy $(BINDIR)\$(XML_SO) $(SOPREFIX)
copy $(BINDIR)\$(XML_A) $(LIBPREFIX)
@@ -225,12 +226,23 @@ install : all
copy $(BINDIR)\*.exe $(BINPREFIX)
-copy $(BINDIR)\*.pdb $(BINPREFIX)
+install-bindist : all
+ if not exist $(INCPREFIX)\libxml mkdir $(INCPREFIX)\libxml
+ if not exist $(BINPREFIX) mkdir $(BINPREFIX)
+ if not exist $(LIBPREFIX) mkdir $(LIBPREFIX)
+ if not exist $(SOPREFIX) mkdir $(SOPREFIX)
+ copy $(XML_SRCDIR)\include\libxml\*.h $(INCPREFIX)\libxml
+ copy $(BINDIR)\$(XML_SO) $(SOPREFIX)
+ copy $(BINDIR)\$(XML_A) $(LIBPREFIX)
+ copy $(BINDIR)\$(XML_IMP) $(LIBPREFIX)
+ copy $(BINDIR)\xml*.exe $(BINPREFIX)
+
# This is a target for me, to make a binary distribution. Not for the public use,
# keep your hands off :-)
BDVERSION = $(LIBXML_MAJOR_VERSION).$(LIBXML_MINOR_VERSION).$(LIBXML_MICRO_VERSION)
BDPREFIX = $(XML_BASENAME)-$(BDVERSION).win32
bindist : all
- $(MAKE) /nologo PREFIX=$(BDPREFIX) BINPREFIX=$(BDPREFIX)\util install
+ $(MAKE) /nologo PREFIX=$(BDPREFIX) SOPREFIX=$(BDPREFIX)\bin install-bindist
cscript //NoLogo configure.js genreadme $(XML_BASENAME) $(BDVERSION) $(BDPREFIX)\readme.txt
diff --git a/win32/configure.js b/win32/configure.js
index df3836d..2da590d 100644
--- a/win32/configure.js
+++ b/win32/configure.js
@@ -365,36 +365,16 @@ function genReadme(bname, ver, file)
f.WriteLine(" This is " + bname + ", version " + ver + ", binary package for the native Win32/IA32");
f.WriteLine("platform.");
f.WriteBlankLines(1);
- f.WriteLine(" The directory named 'include' contains the header files. Place its");
- f.WriteLine("contents somewhere where it can be found by the compiler.");
- f.WriteLine(" The directory which answers to the name 'lib' contains the static and");
- f.WriteLine("dynamic libraries. Place them somewhere where they can be found by the");
- f.WriteLine("linker. The files whose names end with '_a.lib' are aimed for static");
- f.WriteLine("linking, the other files are lib/dll pairs.");
- f.WriteLine(" The directory called 'util' contains various programs which count as a");
- f.WriteLine("part of " + bname + ".");
+ f.WriteLine(" The files in this package do not require any special installation");
+ f.WriteLine("steps. Extract the contents of the archive whereever you wish and");
+ f.WriteLine("make sure that your tools which use " + bname + " can find it.");
f.WriteBlankLines(1);
- f.WriteLine(" If you plan to develop your own programme, in C, which uses " + bname + ", then");
- f.WriteLine("you should know what to do with the files in the binary package. If you don't,");
- f.WriteLine("know this, then please, please do some research on how to use a");
- f.WriteLine("third-party library in a C programme. The topic belongs to the very basics");
- f.WriteLine("and you will not be able to do much without that knowledge.");
- f.WriteBlankLines(1);
- f.WriteLine(" If you wish to use " + bname + " solely through the supplied utilities, such as");
- f.WriteLine("xmllint or xsltproc, then all you need to do is place the");
- f.WriteLine("contents of the 'lib' and 'util' directories from the binary package in a");
- f.WriteLine("directory on your disc which is mentioned in your PATH environment");
- f.WriteLine("variable. You can use an existing directory which is allready in the");
- f.WriteLine("path, such as 'C:\WINDOWS', or 'C:\WINNT'. You can also create a new");
- f.WriteLine("directory for " + bname + " and place the files there, but be sure to modify");
- f.WriteLine("the PATH environment variable and add that new directory to its list.");
- f.WriteBlankLines(1);
- f.WriteLine(" If you use other software which needs " + bname + ", such as Apache");
- f.WriteLine("Web Server in certain configurations, then please consult the");
- f.WriteLine("documentation of that software and see if it mentions something about");
- f.WriteLine("how it uses " + bname + " and how it expects it to be installed. If you find");
- f.WriteLine("nothing, then the default installation, as described in the previous");
- f.WriteLine("paragraph, should be suficient.");
+ f.WriteLine(" For example, if you want to run the supplied utilities from the command");
+ f.WriteLine("line, you can, if you wish, add the 'bin' subdirectory to the PATH");
+ f.WriteLine("environment variable.");
+ f.WriteLine(" If you want to make programmes in C which use " + bname + ", you'll");
+ f.WriteLine("likely know how to use the contents of this package. If you don't, please");
+ f.WriteLine("refer to your compiler's documentation.");
f.WriteBlankLines(1);
f.WriteLine(" If there is something you cannot keep for yourself, such as a problem,");
f.WriteLine("a cheer of joy, a comment or a suggestion, feel free to contact me using");
diff --git a/win32/libxml2.def.src b/win32/libxml2.def.src
index e5fa37c..940a2cf 100644
--- a/win32/libxml2.def.src
+++ b/win32/libxml2.def.src
@@ -118,11 +118,13 @@ __xmlMemStrdup
#else
xmlMemStrdup DATA
#endif
+xmlOutputBufferCreateFilenameValue DATA
#ifdef LIBXML_THREAD_ENABLED
__xmlParserDebugEntities
#else
xmlParserDebugEntities DATA
#endif
+xmlParserInputBufferCreateFilenameValue DATA
xmlParserMaxDepth DATA
#ifdef LIBXML_THREAD_ENABLED
__xmlParserVersion
@@ -549,6 +551,7 @@ xmlBufferWriteCHAR
xmlBufferWriteChar
xmlBufferWriteQuotedString
xmlBuildQName
+xmlBuildRelativeURI
xmlBuildURI
xmlByteConsumed
#ifdef LIBXML_C14N_ENABLED
@@ -1172,6 +1175,7 @@ xmlOutputBufferClose
xmlOutputBufferCreateFd
xmlOutputBufferCreateFile
xmlOutputBufferCreateFilename
+xmlOutputBufferCreateFilenameDefault
xmlOutputBufferCreateIO
xmlOutputBufferFlush
xmlOutputBufferWrite
@@ -1251,6 +1255,7 @@ xmlParserHandleReference
xmlParserInputBufferCreateFd
xmlParserInputBufferCreateFile
xmlParserInputBufferCreateFilename
+xmlParserInputBufferCreateFilenameDefault
xmlParserInputBufferCreateIO
xmlParserInputBufferCreateMem
xmlParserInputBufferCreateStatic
@@ -1458,7 +1463,6 @@ xmlSaveFormatFileEnc
xmlSaveFormatFileTo
xmlSaveSetAttrEscape
xmlSaveSetEscape
-xmlSaveToBuffer
xmlSaveToFd
xmlSaveToFilename
xmlSaveToIO
@@ -1472,6 +1476,9 @@ xmlSchemaCheckFacet
xmlSchemaCleanupTypes
#endif
#ifdef LIBXML_SCHEMAS_ENABLED
+xmlSchemaCollapseString
+#endif
+#ifdef LIBXML_SCHEMAS_ENABLED
xmlSchemaCompareValues
#endif
#ifdef LIBXML_SCHEMAS_ENABLED
@@ -1493,6 +1500,13 @@ xmlSchemaFreeValidCtxt
#ifdef LIBXML_SCHEMAS_ENABLED
xmlSchemaFreeValue
#endif
+xmlSchemaFreeWildcard
+#ifdef LIBXML_SCHEMAS_ENABLED
+xmlSchemaGetBuiltInListSimpleTypeItemType
+#endif
+#ifdef LIBXML_SCHEMAS_ENABLED
+xmlSchemaGetBuiltInType
+#endif
#ifdef LIBXML_SCHEMAS_ENABLED
xmlSchemaGetPredefinedType
#endif
@@ -1500,6 +1514,9 @@ xmlSchemaGetPredefinedType
xmlSchemaInitTypes
#endif
#ifdef LIBXML_SCHEMAS_ENABLED
+xmlSchemaIsBuiltInTypeFacet
+#endif
+#ifdef LIBXML_SCHEMAS_ENABLED
xmlSchemaNewDocParserCtxt
#endif
#ifdef LIBXML_SCHEMAS_ENABLED
@@ -1533,6 +1550,9 @@ xmlSchemaValidateDoc
xmlSchemaValidateFacet
#endif
#ifdef LIBXML_SCHEMAS_ENABLED
+xmlSchemaValidateListSimpleTypeFacet
+#endif
+#ifdef LIBXML_SCHEMAS_ENABLED
xmlSchemaValidatePredefinedType
#endif
#ifdef LIBXML_SCHEMAS_ENABLED
@@ -1776,7 +1796,9 @@ xmlThrDefIndentTreeOutput
xmlThrDefKeepBlanksDefaultValue
xmlThrDefLineNumbersDefaultValue
xmlThrDefLoadExtDtdDefaultValue
+xmlThrDefOutputBufferCreateFilenameDefault
xmlThrDefParserDebugEntities
+xmlThrDefParserInputBufferCreateFilenameDefault
xmlThrDefPedanticParserDefaultValue
xmlThrDefRegisterNodeDefault
xmlThrDefSaveNoEmptyTags
diff --git a/xinclude.c b/xinclude.c
index 347e0ad..196f4a9 100644
--- a/xinclude.c
+++ b/xinclude.c
@@ -81,6 +81,7 @@ struct _xmlXIncludeCtxt {
int nbErrors; /* the number of errors detected */
int legacy; /* using XINCLUDE_OLD_NS */
int parseFlags; /* the flags used for parsing XML documents */
+ xmlChar * base; /* the current xml:base */
};
static int
@@ -678,6 +679,11 @@ xmlXIncludeRecurseDoc(xmlXIncludeCtxtPtr ctxt, xmlDocPtr doc,
newctxt->urlTab = ctxt->urlTab;
/*
+ * Inherit the existing base
+ */
+ newctxt->base = ctxt->base;
+
+ /*
* Inherit the documents already in use by other includes
*/
newctxt->incBase = ctxt->incNr;
@@ -1557,6 +1563,7 @@ loaded:
xmlFree(fragment);
return(-1);
}
+
case XPATH_RANGE:
case XPATH_LOCATIONSET:
break;
@@ -1569,7 +1576,6 @@ loaded:
switch (set->nodeTab[i]->type) {
case XML_TEXT_NODE:
case XML_CDATA_SECTION_NODE:
- case XML_ELEMENT_NODE:
case XML_ENTITY_REF_NODE:
case XML_ENTITY_NODE:
case XML_PI_NODE:
@@ -1580,6 +1586,19 @@ loaded:
case XML_DOCB_DOCUMENT_NODE:
#endif
continue;
+ case XML_ELEMENT_NODE: {
+ xmlChar *nodeBase;
+ xmlNodePtr el = set->nodeTab[i];
+
+ nodeBase = xmlNodeGetBase(el->doc, el);
+ if (nodeBase != NULL) {
+ if (!xmlStrEqual(nodeBase, el->doc->URL))
+ xmlNodeSetBase(el, nodeBase);
+ xmlFree(nodeBase);
+ }
+ continue;
+ }
+
case XML_ATTRIBUTE_NODE:
xmlXIncludeErr(ctxt, ctxt->incTab[nr]->ref,
XML_XINCLUDE_XPTR_RESULT,
@@ -1631,12 +1650,32 @@ loaded:
*/
if ((doc != NULL) && (URL != NULL) && (xmlStrchr(URL, (xmlChar) '/'))) {
xmlNodePtr node;
+ xmlChar *relURI;
+ xmlChar *curBase;
- node = ctxt->incTab[nr]->inc;
- while (node != NULL) {
- if (node->type == XML_ELEMENT_NODE)
- xmlNodeSetBase(node, URL);
- node = node->next;
+ /*
+ * The base is only adjusted if necessary for the existing base
+ */
+ relURI = xmlBuildRelativeURI(URL, ctxt->base);
+ if (relURI == NULL) { /* Error return */
+ xmlXIncludeErr(ctxt, ctxt->incTab[nr]->ref,
+ XML_XINCLUDE_HREF_URI,
+ "trying to build relative URI from %s\n", URL);
+ } else {
+ if (xmlStrchr(relURI, (xmlChar) '/')) {
+ node = ctxt->incTab[nr]->inc;
+ while (node != NULL) {
+ if (node->type == XML_ELEMENT_NODE) {
+ curBase = xmlNodeGetBase(node->doc, node);
+ if ((curBase == NULL) || xmlStrEqual(curBase, node->doc->URL))
+ xmlNodeSetBase(node, relURI);
+ if (curBase != NULL)
+ xmlFree(curBase);
+ }
+ node = node->next;
+ }
+ }
+ xmlFree(relURI);
}
}
if ((nr < ctxt->incNr) && (ctxt->incTab[nr]->doc != NULL) &&
@@ -1814,6 +1853,7 @@ xmlXIncludeLoadFallback(xmlXIncludeCtxtPtr ctxt, xmlNodePtr fallback, int nr) {
newctxt = xmlXIncludeNewContext(ctxt->doc);
if (newctxt == NULL)
return (-1);
+ newctxt->base = ctxt->base; /* Inherit the base from the existing context */
xmlXIncludeSetFlags(newctxt, ctxt->parseFlags);
ret = xmlXIncludeDoProcess(newctxt, ctxt->doc, fallback->children);
if (ctxt->nbErrors > 0)
@@ -1867,6 +1907,7 @@ xmlXIncludeLoadNode(xmlXIncludeCtxtPtr ctxt, int nr) {
xmlChar *href;
xmlChar *parse;
xmlChar *base;
+ xmlChar *oldBase;
xmlChar *URI;
int xml = 1; /* default Issue 64 */
int ret;
@@ -1947,14 +1988,23 @@ xmlXIncludeLoadNode(xmlXIncludeCtxtPtr ctxt, int nr) {
#endif
/*
- * Cleanup
+ * Save the base for this include (saving the current one)
*/
+ oldBase = ctxt->base;
+ ctxt->base = base;
+
if (xml) {
ret = xmlXIncludeLoadDoc(ctxt, URI, nr);
/* xmlXIncludeGetFragment(ctxt, cur, URI); */
} else {
ret = xmlXIncludeLoadTxt(ctxt, URI, nr);
}
+
+ /*
+ * Restore the original base before checking for fallback
+ */
+ ctxt->base = oldBase;
+
if (ret < 0) {
xmlNodePtr children;
@@ -2296,6 +2346,7 @@ xmlXIncludeProcessFlags(xmlDocPtr doc, int flags) {
ctxt = xmlXIncludeNewContext(doc);
if (ctxt == NULL)
return(-1);
+ ctxt->base = (xmlChar *)doc->URL;
xmlXIncludeSetFlags(ctxt, flags);
ret = xmlXIncludeDoProcess(ctxt, doc, tree);
if ((ret >= 0) && (ctxt->nbErrors > 0))
@@ -2339,6 +2390,7 @@ xmlXIncludeProcessTreeFlags(xmlNodePtr tree, int flags) {
ctxt = xmlXIncludeNewContext(tree->doc);
if (ctxt == NULL)
return(-1);
+ ctxt->base = xmlNodeGetBase(tree->doc, tree);
xmlXIncludeSetFlags(ctxt, flags);
ret = xmlXIncludeDoProcess(ctxt, tree->doc, tree);
if ((ret >= 0) && (ctxt->nbErrors > 0))
diff --git a/xmlIO.c b/xmlIO.c
index 2f9874f..a51bf64 100644
--- a/xmlIO.c
+++ b/xmlIO.c
@@ -2125,21 +2125,8 @@ xmlOutputBufferClose(xmlOutputBufferPtr out)
}
#endif /* LIBXML_OUTPUT_ENABLED */
-/**
- * xmlParserInputBufferCreateFilename:
- * @URI: a C string containing the URI or filename
- * @enc: the charset encoding if known
- *
- * 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 == XML_CHAR_ENCODING_NONE
- *
- * Returns the new parser input or NULL
- */
xmlParserInputBufferPtr
-xmlParserInputBufferCreateFilename(const char *URI, xmlCharEncoding enc) {
+__xmlParserInputBufferCreateFilename(const char *URI, xmlCharEncoding enc) {
xmlParserInputBufferPtr ret;
int i = 0;
void *context = NULL;
@@ -2196,26 +2183,32 @@ xmlParserInputBufferCreateFilename(const char *URI, xmlCharEncoding enc) {
return(ret);
}
-#ifdef LIBXML_OUTPUT_ENABLED
/**
- * xmlOutputBufferCreateFilename:
+ * xmlParserInputBufferCreateFilename:
* @URI: a C string containing the URI or filename
- * @encoder: the encoding converter or NULL
- * @compression: the compression ration (0 none, 9 max).
+ * @enc: the charset encoding if known
*
- * Create a buffered output for the progressive saving of a file
- * If filename is "-' then we use stdout as the output.
+ * 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.
- * TODO: currently if compression is set, the library only support
- * writing to a local file.
+ * Do an encoding check if enc == XML_CHAR_ENCODING_NONE
*
- * Returns the new output or NULL
+ * Returns the new parser input or NULL
*/
+xmlParserInputBufferPtr
+xmlParserInputBufferCreateFilename(const char *URI, xmlCharEncoding enc) {
+ if ((xmlParserInputBufferCreateFilenameValue)) {
+ return xmlParserInputBufferCreateFilenameValue(URI, enc);
+ }
+ return __xmlParserInputBufferCreateFilename(URI, enc);
+}
+
+#ifdef LIBXML_OUTPUT_ENABLED
xmlOutputBufferPtr
-xmlOutputBufferCreateFilename(const char *URI,
+__xmlOutputBufferCreateFilename(const char *URI,
xmlCharEncodingHandlerPtr encoder,
- int compression ATTRIBUTE_UNUSED) {
+ int compression ATTRIBUTE_UNUSED) {
xmlOutputBufferPtr ret;
xmlURIPtr puri;
int i = 0;
@@ -2329,6 +2322,31 @@ xmlOutputBufferCreateFilename(const char *URI,
}
return(ret);
}
+
+/**
+ * xmlOutputBufferCreateFilename:
+ * @URI: a C string containing the URI or filename
+ * @encoder: the encoding converter or NULL
+ * @compression: the compression ration (0 none, 9 max).
+ *
+ * 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.
+ *
+ * Returns the new output or NULL
+ */
+xmlOutputBufferPtr
+xmlOutputBufferCreateFilename(const char *URI,
+ xmlCharEncodingHandlerPtr encoder,
+ int compression ATTRIBUTE_UNUSED) {
+ if ((xmlOutputBufferCreateFilenameValue)) {
+ return xmlOutputBufferCreateFilenameValue(URI, encoder, compression);
+ }
+ return __xmlOutputBufferCreateFilename(URI, encoder, compression);
+}
#endif /* LIBXML_OUTPUT_ENABLED */
/**
@@ -2581,6 +2599,47 @@ xmlOutputBufferCreateIO(xmlOutputWriteCallback iowrite,
#endif /* LIBXML_OUTPUT_ENABLED */
/**
+ * xmlParserInputBufferCreateFilenameDefault:
+ * @func: function pointer to the new ParserInputBufferCreateFilenameFunc
+ *
+ * Registers a callback for URI input file handling
+ *
+ * Returns the old value of the registration function
+ */
+xmlParserInputBufferCreateFilenameFunc
+xmlParserInputBufferCreateFilenameDefault(xmlParserInputBufferCreateFilenameFunc func)
+{
+ xmlParserInputBufferCreateFilenameFunc old = xmlParserInputBufferCreateFilenameValue;
+ if (old == NULL) {
+ old = __xmlParserInputBufferCreateFilename;
+ }
+
+ xmlParserInputBufferCreateFilenameValue = func;
+ return(old);
+}
+
+/**
+ * xmlOutputBufferCreateFilenameDefault:
+ * @func: function pointer to the new OutputBufferCreateFilenameFunc
+ *
+ * Registers a callback for URI output file handling
+ *
+ * Returns the old value of the registration function
+ */
+xmlOutputBufferCreateFilenameFunc
+xmlOutputBufferCreateFilenameDefault(xmlOutputBufferCreateFilenameFunc func)
+{
+ xmlOutputBufferCreateFilenameFunc old = xmlOutputBufferCreateFilenameValue;
+#ifdef LIBXML_OUTPUT_ENABLED
+ if (old == NULL) {
+ old = __xmlOutputBufferCreateFilename;
+ }
+#endif
+ xmlOutputBufferCreateFilenameValue = func;
+ return(old);
+}
+
+/**
* xmlParserInputBufferPush:
* @in: a buffered parser input
* @len: the size in bytes of the array.
diff --git a/xmllint.c b/xmllint.c
index e333a39..e91707c 100644
--- a/xmllint.c
+++ b/xmllint.c
@@ -97,6 +97,18 @@
#define XML_XML_DEFAULT_CATALOG "file:///etc/xml/catalog"
#endif
+typedef enum {
+ XMLLINT_RETURN_OK = 0, /* No error */
+ XMLLINT_ERR_UNCLASS, /* Unclassified */
+ XMLLINT_ERR_DTD, /* Error in DTD */
+ XMLLINT_ERR_VALID, /* Validation error */
+ XMLLINT_ERR_RDFILE, /* CtxtReadFile error */
+ XMLLINT_ERR_SCHEMACOMP, /* Schema compilation */
+ XMLLINT_ERR_OUT, /* Error writing output */
+ XMLLINT_ERR_SCHEMAPAT, /* Error in schema pattern */
+ XMLLINT_ERR_RDREGIS, /* Error in Reader registration */
+ XMLLINT_ERR_MEM /* Out of memory error */
+} xmllintReturnCode;
#ifdef LIBXML_DEBUG_ENABLED
static int shell = 0;
static int debugent = 0;
@@ -148,7 +160,7 @@ static int xinclude = 0;
#endif
static int dtdattrs = 0;
static int loaddtd = 0;
-static int progresult = 0;
+static xmllintReturnCode progresult = XMLLINT_RETURN_OK;
static int timing = 0;
static int generate = 0;
static int dropdtd = 0;
@@ -181,7 +193,7 @@ static void
OOM(void)
{
fprintf(stderr, "Ran out of memory needs > %d bytes\n", maxmem);
- progresult = 9;
+ progresult = XMLLINT_ERR_MEM;
}
static void
@@ -744,7 +756,7 @@ static void streamFile(char *filename) {
if (ret < 0) {
xmlGenericError(xmlGenericErrorContext,
"Relax-NG schema %s failed to compile\n", relaxng);
- progresult = 5;
+ progresult = XMLLINT_ERR_SCHEMACOMP;
relaxng = NULL;
}
if ((timing) && (!repeat)) {
@@ -788,7 +800,7 @@ static void streamFile(char *filename) {
if (xmlTextReaderIsValid(reader) != 1) {
xmlGenericError(xmlGenericErrorContext,
"Document %s does not validate\n", filename);
- progresult = 3;
+ progresult = XMLLINT_ERR_VALID;
}
}
#endif /* LIBXML_VALID_ENABLED */
@@ -796,7 +808,7 @@ static void streamFile(char *filename) {
if (relaxng != NULL) {
if (xmlTextReaderIsValid(reader) != 1) {
fprintf(stderr, "%s fails to validate\n", filename);
- progresult = 3;
+ progresult = XMLLINT_ERR_VALID;
} else {
fprintf(stderr, "%s validates\n", filename);
}
@@ -808,11 +820,11 @@ static void streamFile(char *filename) {
xmlFreeTextReader(reader);
if (ret != 0) {
fprintf(stderr, "%s : failed to parse\n", filename);
- progresult = 1;
+ progresult = XMLLINT_ERR_UNCLASS;
}
} else {
fprintf(stderr, "Unable to open %s\n", filename);
- progresult = 1;
+ progresult = XMLLINT_ERR_UNCLASS;
}
#ifdef HAVE_SYS_MMAN_H
if (memory) {
@@ -848,11 +860,11 @@ static void walkDoc(xmlDocPtr doc) {
xmlFreeTextReader(reader);
if (ret != 0) {
fprintf(stderr, "failed to walk through the doc\n");
- progresult = 1;
+ progresult = XMLLINT_ERR_UNCLASS;
}
} else {
fprintf(stderr, "Failed to crate a reader from the document\n");
- progresult = 1;
+ progresult = XMLLINT_ERR_UNCLASS;
}
}
#endif /* LIBXML_READER_ENABLED */
@@ -889,7 +901,11 @@ static void parseAndPrintFile(char *filename, xmlParserCtxtPtr rectxt) {
else if ((html) && (push)) {
FILE *f;
- f = fopen(filename, "r");
+#if defined(_WIN32) || defined (__DJGPP__) && !defined (__CYGWIN__)
+ f = fopen(filename, "rb");
+#else
+ f = fopen(filename, "r");
+#endif
if (f != NULL) {
int res, size = 3;
char chars[4096];
@@ -928,7 +944,11 @@ static void parseAndPrintFile(char *filename, xmlParserCtxtPtr rectxt) {
if ((filename[0] == '-') && (filename[1] == 0)) {
f = stdin;
} else {
- f = fopen(filename, "r");
+#if defined(_WIN32) || defined (__DJGPP__) && !defined (__CYGWIN__)
+ f = fopen(filename, "rb");
+#else
+ f = fopen(filename, "r");
+#endif
}
if (f != NULL) {
int ret;
@@ -963,7 +983,11 @@ static void parseAndPrintFile(char *filename, xmlParserCtxtPtr rectxt) {
} else {
FILE *f;
+#if defined(_WIN32) || defined (__DJGPP__) && !defined (__CYGWIN__)
+ f = fopen(filename, "rb");
+#else
f = fopen(filename, "r");
+#endif
if (f != NULL) {
if (rectxt == NULL)
doc = xmlReadIO((xmlInputReadCallback) myRead,
@@ -1033,7 +1057,7 @@ static void parseAndPrintFile(char *filename, xmlParserCtxtPtr rectxt) {
doc = xmlCtxtReadFile(ctxt, filename, NULL, options);
if (ctxt->valid == 0)
- progresult = 4;
+ progresult = XMLLINT_ERR_RDFILE;
if (rectxt == NULL)
xmlFreeParserCtxt(ctxt);
}
@@ -1050,7 +1074,7 @@ static void parseAndPrintFile(char *filename, xmlParserCtxtPtr rectxt) {
* If we don't have a document we might as well give up. Do we
* want an error message here? <sven@zen.org> */
if (doc == NULL) {
- progresult = 1;
+ progresult = XMLLINT_ERR_UNCLASS;
return;
}
@@ -1171,13 +1195,13 @@ static void parseAndPrintFile(char *filename, xmlParserCtxtPtr rectxt) {
}
if (out != NULL) {
if (htmlDocDump(out, doc) < 0)
- progresult = 6;
+ progresult = XMLLINT_ERR_OUT;
if (output != NULL)
fclose(out);
} else {
fprintf(stderr, "failed to open %s\n", output);
- progresult = 6;
+ progresult = XMLLINT_ERR_OUT;
}
}
if ((timing) && (!repeat)) {
@@ -1224,7 +1248,7 @@ static void parseAndPrintFile(char *filename, xmlParserCtxtPtr rectxt) {
if (ret < 0) {
fprintf(stderr, "failed save to %s\n",
output ? output : "-");
- progresult = 6;
+ progresult = XMLLINT_ERR_OUT;
}
}
else if (format) {
@@ -1232,7 +1256,7 @@ static void parseAndPrintFile(char *filename, xmlParserCtxtPtr rectxt) {
if (ret < 0) {
fprintf(stderr, "failed save to %s\n",
output ? output : "-");
- progresult = 6;
+ progresult = XMLLINT_ERR_OUT;
}
}
else {
@@ -1244,13 +1268,13 @@ static void parseAndPrintFile(char *filename, xmlParserCtxtPtr rectxt) {
}
if (out != NULL) {
if (xmlDocDump(out, doc) < 0)
- progresult = 6;
+ progresult = XMLLINT_ERR_OUT;
if (output != NULL)
fclose(out);
} else {
fprintf(stderr, "failed to open %s\n", output);
- progresult = 6;
+ progresult = XMLLINT_ERR_OUT;
}
}
if ((timing) && (!repeat)) {
@@ -1271,7 +1295,7 @@ static void parseAndPrintFile(char *filename, xmlParserCtxtPtr rectxt) {
fclose(out);
} else {
fprintf(stderr, "failed to open %s\n", output);
- progresult = 6;
+ progresult = XMLLINT_ERR_OUT;
}
}
#endif
@@ -1302,7 +1326,7 @@ static void parseAndPrintFile(char *filename, xmlParserCtxtPtr rectxt) {
else
xmlGenericError(xmlGenericErrorContext,
"Could not parse DTD %s\n", dtdvalidfpi);
- progresult = 2;
+ progresult = XMLLINT_ERR_DTD;
} else {
xmlValidCtxtPtr cvp;
@@ -1327,7 +1351,7 @@ static void parseAndPrintFile(char *filename, xmlParserCtxtPtr rectxt) {
xmlGenericError(xmlGenericErrorContext,
"Document %s does not validate against %s\n",
filename, dtdvalidfpi);
- progresult = 3;
+ progresult = XMLLINT_ERR_VALID;
}
if ((timing) && (!repeat)) {
endTimer("Validating against DTD");
@@ -1353,7 +1377,7 @@ static void parseAndPrintFile(char *filename, xmlParserCtxtPtr rectxt) {
if (!xmlValidateDocument(cvp, doc)) {
xmlGenericError(xmlGenericErrorContext,
"Document %s does not validate\n", filename);
- progresult = 3;
+ progresult = XMLLINT_ERR_VALID;
}
if ((timing) && (!repeat)) {
endTimer("Validating");
@@ -1380,9 +1404,11 @@ static void parseAndPrintFile(char *filename, xmlParserCtxtPtr rectxt) {
fprintf(stderr, "%s validates\n", filename);
} else if (ret > 0) {
fprintf(stderr, "%s fails to validate\n", filename);
+ progresult = XMLLINT_ERR_VALID;
} else {
fprintf(stderr, "%s validation generated an internal error\n",
filename);
+ progresult = XMLLINT_ERR_VALID;
}
xmlRelaxNGFreeValidCtxt(ctxt);
if ((timing) && (!repeat)) {
@@ -1406,9 +1432,11 @@ static void parseAndPrintFile(char *filename, xmlParserCtxtPtr rectxt) {
fprintf(stderr, "%s validates\n", filename);
} else if (ret > 0) {
fprintf(stderr, "%s fails to validate\n", filename);
+ progresult = XMLLINT_ERR_VALID;
} else {
fprintf(stderr, "%s validation generated an internal error\n",
filename);
+ progresult = XMLLINT_ERR_VALID;
}
xmlSchemaFreeValidCtxt(ctxt);
if ((timing) && (!repeat)) {
@@ -1946,7 +1974,7 @@ main(int argc, char **argv) {
if (relaxngschemas == NULL) {
xmlGenericError(xmlGenericErrorContext,
"Relax-NG schema %s failed to compile\n", relaxng);
- progresult = 5;
+ progresult = XMLLINT_ERR_SCHEMACOMP;
relaxng = NULL;
}
xmlRelaxNGFreeParserCtxt(ctxt);
@@ -1972,7 +2000,7 @@ main(int argc, char **argv) {
if (wxschemas == NULL) {
xmlGenericError(xmlGenericErrorContext,
"WXS schema %s failed to compile\n", schema);
- progresult = 5;
+ progresult = XMLLINT_ERR_SCHEMACOMP;
schema = NULL;
}
xmlSchemaFreeParserCtxt(ctxt);
@@ -1987,7 +2015,7 @@ main(int argc, char **argv) {
if (patternc == NULL) {
xmlGenericError(xmlGenericErrorContext,
"Pattern %s failed to compile\n", pattern);
- progresult = 7;
+ progresult = XMLLINT_ERR_SCHEMAPAT;
pattern = NULL;
}
}
@@ -2071,7 +2099,7 @@ main(int argc, char **argv) {
if ((chkregister) && (nbregister != 0)) {
fprintf(stderr, "Registration count off: %d\n", nbregister);
- progresult = 8;
+ progresult = XMLLINT_ERR_RDREGIS;
}
}
files ++;
diff --git a/xmlmemory.c b/xmlmemory.c
index 927d078..4993351 100644
--- a/xmlmemory.c
+++ b/xmlmemory.c
@@ -29,6 +29,7 @@
#include <ctype.h>
#endif
+/* #define DEBUG_MEMORY */
/**
* MEM_LIST:
@@ -42,8 +43,8 @@
#endif
#endif
+#include <libxml/globals.h> /* must come before xmlmemory.h */
#include <libxml/xmlmemory.h>
-#include <libxml/globals.h>
#include <libxml/xmlerror.h>
#include <libxml/threads.h>
@@ -60,7 +61,7 @@ void xmlMallocBreakpoint(void);
* *
************************************************************************/
-
+#if !defined(LIBXML_THREAD_ENABLED) && !defined(LIBXML_THREAD_ALLOC_ENABLED)
#ifdef xmlMalloc
#undef xmlMalloc
#endif
@@ -70,7 +71,7 @@ void xmlMallocBreakpoint(void);
#ifdef xmlMemStrdup
#undef xmlMemStrdup
#endif
-
+#endif
/*
* Each of the blocks allocated begin with a header containing informations
@@ -309,6 +310,9 @@ xmlReallocLoc(void *ptr,size_t size, const char * file, int line)
{
MEMHDR *p;
unsigned long number;
+#ifdef DEBUG_MEMORY
+ size_t oldsize;
+#endif
if (ptr == NULL)
return(xmlMallocLoc(size, file, line));
@@ -325,6 +329,9 @@ xmlReallocLoc(void *ptr,size_t size, const char * file, int line)
p->mh_tag = ~MEMTAG;
xmlMutexLock(xmlMemMutex);
debugMemSize -= p->mh_size;
+#ifdef DEBUG_MEMORY
+ oldsize = p->mh_size;
+#endif
#ifdef MEM_LIST
debugmem_list_delete(p);
#endif
@@ -356,6 +363,10 @@ xmlReallocLoc(void *ptr,size_t size, const char * file, int line)
TEST_POINT
+#ifdef DEBUG_MEMORY
+ xmlGenericError(xmlGenericErrorContext,
+ "Realloced(%d to %d) Ok\n", oldsize, size);
+#endif
return(HDR_2_CLIENT(p));
error:
@@ -388,6 +399,9 @@ xmlMemFree(void *ptr)
{
MEMHDR *p;
char *target;
+#ifdef DEBUG_MEMORY
+ size_t size;
+#endif
if (ptr == (void *) -1) {
xmlGenericError(xmlGenericErrorContext,
@@ -414,6 +428,9 @@ xmlMemFree(void *ptr)
memset(target, -1, p->mh_size);
xmlMutexLock(xmlMemMutex);
debugMemSize -= p->mh_size;
+#ifdef DEBUG_MEMORY
+ size = p->mh_size;
+#endif
#ifdef MEM_LIST
debugmem_list_delete(p);
#endif
@@ -423,6 +440,11 @@ xmlMemFree(void *ptr)
TEST_POINT
+#ifdef DEBUG_MEMORY
+ xmlGenericError(xmlGenericErrorContext,
+ "Freed(%d) Ok\n", size);
+#endif
+
return;
error:
@@ -618,12 +640,15 @@ xmlMemDisplay(FILE *fp)
switch (p->mh_type) {
case STRDUP_TYPE:fprintf(fp,"strdup() in ");break;
case MALLOC_TYPE:fprintf(fp,"malloc() in ");break;
- case REALLOC_TYPE:fprintf(fp,"realloc() in ");break;
+ case REALLOC_TYPE:fprintf(fp,"realloc() in ");break;
case MALLOC_ATOMIC_TYPE:fprintf(fp,"atomicmalloc() in ");break;
- case REALLOC_ATOMIC_TYPE:fprintf(fp,"atomicrealloc() in ");break;
- default:fprintf(fp," ??? in ");break;
+ case REALLOC_ATOMIC_TYPE:fprintf(fp,"atomicrealloc() in ");break;
+ default:
+ fprintf(fp,"Unknow memory block, corruped maybe");
+ xmlMutexUnlock(xmlMemMutex);
+ return;
}
- if (p->mh_file != NULL) fprintf(fp,"%s(%d)", p->mh_file, p->mh_line);
+ if (p->mh_file != NULL) fprintf(fp,"%s(%d)", p->mh_file, p->mh_line);
if (p->mh_tag != MEMTAG)
fprintf(fp," INVALID");
nb++;
@@ -780,6 +805,10 @@ xmlMemoryDump(void)
int
xmlInitMemory(void)
{
+#ifdef DEBUG_MEMORY
+ xmlGenericError(xmlGenericErrorContext,
+ "xmlInitMemory()\n");
+#endif
#ifdef HAVE_STDLIB_H
char *breakpoint;
#endif
@@ -808,7 +837,6 @@ xmlInitMemory(void)
xmlGenericError(xmlGenericErrorContext,
"xmlInitMemory() Ok\n");
#endif
-
return(0);
}
@@ -819,12 +847,20 @@ xmlInitMemory(void)
*/
void
xmlCleanupMemory(void) {
+#ifdef DEBUG_MEMORY
+ xmlGenericError(xmlGenericErrorContext,
+ "xmlCleanupMemory()\n");
+#endif
if (xmlMemInitialized == 0)
return;
xmlFreeMutex(xmlMemMutex);
xmlMemMutex = NULL;
xmlMemInitialized = 0;
+#ifdef DEBUG_MEMORY
+ xmlGenericError(xmlGenericErrorContext,
+ "xmlCleanupMemory() Ok\n");
+#endif
}
/**
@@ -845,6 +881,10 @@ xmlCleanupMemory(void) {
int
xmlMemSetup(xmlFreeFunc freeFunc, xmlMallocFunc mallocFunc,
xmlReallocFunc reallocFunc, xmlStrdupFunc strdupFunc) {
+#ifdef DEBUG_MEMORY
+ xmlGenericError(xmlGenericErrorContext,
+ "xmlMemSetup()\n");
+#endif
if (freeFunc == NULL)
return(-1);
if (mallocFunc == NULL)
@@ -858,6 +898,10 @@ xmlMemSetup(xmlFreeFunc freeFunc, xmlMallocFunc mallocFunc,
xmlMallocAtomic = mallocFunc;
xmlRealloc = reallocFunc;
xmlMemStrdup = strdupFunc;
+#ifdef DEBUG_MEMORY
+ xmlGenericError(xmlGenericErrorContext,
+ "xmlMemSetup() Ok\n");
+#endif
return(0);
}
@@ -904,6 +948,10 @@ int
xmlGcMemSetup(xmlFreeFunc freeFunc, xmlMallocFunc mallocFunc,
xmlMallocFunc mallocAtomicFunc, xmlReallocFunc reallocFunc,
xmlStrdupFunc strdupFunc) {
+#ifdef DEBUG_MEMORY
+ xmlGenericError(xmlGenericErrorContext,
+ "xmlGcMemSetup()\n");
+#endif
if (freeFunc == NULL)
return(-1);
if (mallocFunc == NULL)
@@ -919,6 +967,10 @@ xmlGcMemSetup(xmlFreeFunc freeFunc, xmlMallocFunc mallocFunc,
xmlMallocAtomic = mallocAtomicFunc;
xmlRealloc = reallocFunc;
xmlMemStrdup = strdupFunc;
+#ifdef DEBUG_MEMORY
+ xmlGenericError(xmlGenericErrorContext,
+ "xmlGcMemSetup() Ok\n");
+#endif
return(0);
}
diff --git a/xmlreader.c b/xmlreader.c
index f3225aa..f1ea238 100644
--- a/xmlreader.c
+++ b/xmlreader.c
@@ -1224,6 +1224,7 @@ xmlTextReaderRead(xmlTextReaderPtr reader) {
reader->state = XML_TEXTREADER_ELEMENT;
}
reader->depth = 0;
+ reader->ctxt->parseMode = XML_PARSE_READER;
goto node_found;
}
oldstate = reader->state;
@@ -1920,6 +1921,7 @@ xmlNewTextReader(xmlParserInputBufferPtr input, const char *URI) {
ret->base = 0;
ret->cur = 0;
}
+
if (ret->ctxt == NULL) {
xmlGenericError(xmlGenericErrorContext,
"xmlNewTextReader : malloc failed\n");
@@ -1927,6 +1929,7 @@ xmlNewTextReader(xmlParserInputBufferPtr input, const char *URI) {
xmlFree(ret);
return(NULL);
}
+ ret->ctxt->parseMode = XML_PARSE_READER;
ret->ctxt->_private = ret;
ret->ctxt->linenumbers = 1;
ret->ctxt->dictNames = 1;
@@ -3291,6 +3294,13 @@ xmlTextReaderConstValue(xmlTextReaderPtr reader) {
(attr->children->next == NULL))
return(attr->children->content);
else {
+ if (reader->buffer == NULL)
+ reader->buffer = xmlBufferCreateSize(100);
+ if (reader->buffer == NULL) {
+ xmlGenericError(xmlGenericErrorContext,
+ "xmlTextReaderSetup : malloc failed\n");
+ return (NULL);
+ }
reader->buffer->use = 0;
xmlNodeBufGetContent(reader->buffer, node);
return(reader->buffer->content);
@@ -3544,9 +3554,9 @@ xmlTextReaderCurrentNode(xmlTextReaderPtr reader) {
* xmlTextReaderPreserve:
* @reader: the xmlTextReaderPtr used
*
- *
- * current node being accessed by the xmlTextReader. This is dangerous
- * because the underlying node may be destroyed on the next Reads.
+ * 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
*
* Returns the xmlNodePtr or NULL in case of error.
*/
@@ -3564,7 +3574,7 @@ xmlTextReaderPreserve(xmlTextReaderPtr reader) {
if (cur == NULL)
return(NULL);
- if (cur->type != XML_DOCUMENT_NODE) {
+ if ((cur->type != XML_DOCUMENT_NODE) && (cur->type != XML_DTD_NODE)) {
cur->extra |= NODE_IS_PRESERVED;
cur->extra |= NODE_IS_SPRESERVED;
}
@@ -4231,6 +4241,7 @@ xmlTextReaderSetup(xmlTextReaderPtr reader,
* use the parser dictionnary to allocate all elements and attributes names
*/
reader->ctxt->docdict = 1;
+ reader->ctxt->parseMode = XML_PARSE_READER;
#ifdef LIBXML_XINCLUDE_ENABLED
if (reader->xincctxt != NULL) {
diff --git a/xmlsave.c b/xmlsave.c
index 5b43c97..7698991 100644
--- a/xmlsave.c
+++ b/xmlsave.c
@@ -1357,7 +1357,6 @@ xmlSaveToFilename(const char *filename, const char *encoding, int options)
return(ret);
}
-#if 0
/**
* xmlSaveToBuffer:
* @buffer: a buffer
@@ -1368,14 +1367,13 @@ xmlSaveToFilename(const char *filename, const char *encoding, int options)
* with the encoding and the options given
*
* Returns a new serialization context or NULL in case of error.
- */
xmlSaveCtxtPtr
xmlSaveToBuffer(xmlBufferPtr buffer, const char *encoding, int options)
{
TODO
return(NULL);
}
-#endif
+ */
/**
* xmlSaveToIO:
diff --git a/xmlschemas.c b/xmlschemas.c
index e9dfadb..59cfee0 100644
--- a/xmlschemas.c
+++ b/xmlschemas.c
@@ -12,6 +12,9 @@
* - when types are redefined in includes, check that all
* types in the redef list are equal
* -> need a type equality operation.
+ * - if we don't intend to use the schema for schemas, we
+ * need to validate all schema attributes (ref, type, name)
+ * against their types.
*/
#define IN_LIBXML
#include "libxml.h"
@@ -42,6 +45,8 @@
/* #define DEBUG_AUTOMATA 1 */
+/* #define DEBUG_ATTR_VALIDATION 1 */
+
#define UNBOUNDED (1 << 30)
#define TODO \
xmlGenericError(xmlGenericErrorContext, \
@@ -100,17 +105,25 @@ struct _xmlSchemaParserCtxt {
xmlDictPtr dict; /* dictionnary for interned string names */
int includes; /* the inclusion level, 0 for root or imports */
+ xmlSchemaTypePtr ctxtType; /* The current context simple/complex type */
+ xmlSchemaTypePtr parentItem; /* The current parent schema item */
};
#define XML_SCHEMAS_ATTR_UNKNOWN 1
#define XML_SCHEMAS_ATTR_CHECKED 2
+#define XML_SCHEMAS_ATTR_PROHIBITED 3
+#define XML_SCHEMAS_ATTR_MISSING 4
+#define XML_SCHEMAS_ATTR_INVALID_VALUE 5
+#define XML_SCHEMAS_ATTR_TYPE_NOT_RESOLVED 6
typedef struct _xmlSchemaAttrState xmlSchemaAttrState;
typedef xmlSchemaAttrState *xmlSchemaAttrStatePtr;
struct _xmlSchemaAttrState {
+ xmlSchemaAttrStatePtr next;
xmlAttrPtr attr;
int state;
+ xmlSchemaAttributePtr decl;
};
/**
@@ -143,9 +156,9 @@ struct _xmlSchemaValidCtxt {
xmlRegExecCtxtPtr regexp;
xmlSchemaValPtr value;
- int attrNr;
- int attrBase;
- int attrMax;
+ xmlSchemaAttrStatePtr attrTop;
+ /* xmlSchemaAttrStatePtr attrBase; */
+ /* int attrMax; */
xmlSchemaAttrStatePtr attr;
};
@@ -176,18 +189,32 @@ struct _xmlSchemaInclude {
* Some predeclarations *
* *
************************************************************************/
+#if 0 /* Not currently used. */
static int xmlSchemaValidateSimpleValue(xmlSchemaValidCtxtPtr ctxt,
xmlSchemaTypePtr type,
const xmlChar * value);
+#endif
static int xmlSchemaParseInclude(xmlSchemaParserCtxtPtr ctxt,
xmlSchemaPtr schema,
xmlNodePtr node);
+#if 0
static int
xmlSchemaValidateSimpleValueInternal(xmlSchemaValidCtxtPtr ctxt,
xmlSchemaTypePtr type,
const xmlChar * value,
int fireErrors);
+#endif /* Not currently used. */
+static void
+xmlSchemaTypeFixup(xmlSchemaTypePtr typeDecl,
+ xmlSchemaParserCtxtPtr ctxt, const xmlChar * name);
+static const char *
+xmlSchemaFacetTypeToString(xmlSchemaTypeType type);
+static int
+xmlSchemaValidateSimpleTypeValue(xmlSchemaValidCtxtPtr ctxt,
+ const xmlChar *value,
+ int fireErrors,
+ int applyFacets);
/************************************************************************
* *
@@ -266,6 +293,50 @@ xmlSchemaPErr2(xmlSchemaParserCtxtPtr ctxt, xmlNodePtr node,
xmlSchemaPErr(ctxt, node, error, msg, str1, str2);
}
+
+/**
+ * xmlSchemaPErrExt:
+ * @ctxt: the parsing context
+ * @node: the context node
+ * @error: the error code
+ * @strData1: extra data
+ * @strData2: extra data
+ * @strData3: extra data
+ * @msg: the message
+ * @str1: extra parameter for the message display
+ * @str2: extra parameter for the message display
+ * @str3: extra parameter for the message display
+ * @str4: extra parameter for the message display
+ * @str5: extra parameter for the message display
+ *
+ * Handle a parser error
+ */
+static void
+xmlSchemaPErrExt(xmlSchemaParserCtxtPtr ctxt, xmlNodePtr node, int error,
+ const xmlChar * strData1, const xmlChar * strData2,
+ const xmlChar * strData3, const char *msg, const xmlChar * str1,
+ const xmlChar * str2, const xmlChar * str3, const xmlChar * str4,
+ const xmlChar * str5)
+{
+
+ xmlGenericErrorFunc channel = NULL;
+ xmlStructuredErrorFunc schannel = NULL;
+ void *data = NULL;
+
+ if (ctxt != NULL) {
+ ctxt->nberrors++;
+ channel = ctxt->error;
+ data = ctxt->userData;
+ schannel = ctxt->serror;
+ }
+ __xmlRaiseError(schannel, channel, data, ctxt, node, XML_FROM_SCHEMASP,
+ error, XML_ERR_ERROR, NULL, 0,
+ (const char *) strData1, (const char *) strData2,
+ (const char *) strData3, 0, 0, msg, str1, str2,
+ str3, str4, str5);
+}
+
+
/**
* xmlSchemaVTypeErrMemory:
* @node: a context node
@@ -524,6 +595,44 @@ xmlSchemaFreeAttribute(xmlSchemaAttributePtr attr)
}
/**
+ * xmlSchemaFreeWildcardNsSet:
+ * set: a schema wildcard namespace
+ *
+ * Deallocates a list of wildcard constraint structures.
+ */
+static void
+xmlSchemaFreeWildcardNsSet(xmlSchemaWildcardNsPtr set)
+{
+ xmlSchemaWildcardNsPtr next;
+
+ while (set != NULL) {
+ next = set->next;
+ xmlFree(set);
+ set = next;
+ }
+}
+
+/**
+ * xmlSchemaFreeWildcard:
+ * @wildcard: a wildcard structure
+ *
+ * Deallocates a wildcard structure.
+ */
+void
+xmlSchemaFreeWildcard(xmlSchemaWildcardPtr wildcard)
+{
+ if (wildcard == NULL)
+ return;
+ if (wildcard->annot != NULL)
+ xmlSchemaFreeAnnot(wildcard->annot);
+ if (wildcard->nsSet != NULL)
+ xmlSchemaFreeWildcardNsSet(wildcard->nsSet);
+ if (wildcard->negNsSet != NULL)
+ xmlFree(wildcard->negNsSet);
+ xmlFree(wildcard);
+}
+
+/**
* xmlSchemaFreeAttributeGroup:
* @schema: a schema attribute group structure
*
@@ -534,10 +643,52 @@ xmlSchemaFreeAttributeGroup(xmlSchemaAttributeGroupPtr attr)
{
if (attr == NULL)
return;
+ if (attr->annot != NULL)
+ xmlSchemaFreeAnnot(attr->annot);
+ if ((attr->flags & XML_SCHEMAS_ATTRGROUP_GLOBAL) &&
+ (attr->attributeWildcard != NULL))
+ xmlSchemaFreeWildcard(attr->attributeWildcard);
+
xmlFree(attr);
}
/**
+ * xmlSchemaFreeAttributeUseList:
+ * @attrUse: an attribute link
+ *
+ * Deallocate a list of schema attribute uses.
+ */
+static void
+xmlSchemaFreeAttributeUseList(xmlSchemaAttributeLinkPtr attrUse)
+{
+ xmlSchemaAttributeLinkPtr next;
+
+ while (attrUse != NULL) {
+ next = attrUse->next;
+ xmlFree(attrUse);
+ attrUse = next;
+ }
+}
+
+/**
+ * xmlSchemaFreeTypeLinkList:
+ * @alink: a type link
+ *
+ * Deallocate a list of types.
+ */
+static void
+xmlSchemaFreeTypeLinkList(xmlSchemaTypeLinkPtr link)
+{
+ xmlSchemaTypeLinkPtr next;
+
+ while (link != NULL) {
+ next = link->next;
+ xmlFree(link);
+ link = next;
+ }
+}
+
+/**
* xmlSchemaFreeElement:
* @schema: a schema element structure
*
@@ -598,6 +749,29 @@ xmlSchemaFreeType(xmlSchemaTypePtr type)
facet = next;
}
}
+ if (type->type != XML_SCHEMA_TYPE_BASIC) {
+ if (type->attributeUses != NULL)
+ xmlSchemaFreeAttributeUseList(type->attributeUses);
+ /* TODO: There must be a way more simple than this. */
+ if ((type->attributeWildcard != NULL) &&
+ ((type->type != XML_SCHEMA_TYPE_COMPLEX) ||
+ ((type->type == XML_SCHEMA_TYPE_COMPLEX) &&
+ (type->flags & XML_SCHEMAS_TYPE_OWNED_ATTR_WILDCARD)))) {
+ xmlSchemaFreeWildcard(type->attributeWildcard);
+ }
+ }
+ if (type->memberTypes != NULL)
+ xmlSchemaFreeTypeLinkList(type->memberTypes);
+ if (type->facetSet != NULL) {
+ xmlSchemaFacetLinkPtr next, link;
+
+ link = type->facetSet;
+ do {
+ next = link->next;
+ xmlFree(link);
+ link = next;
+ } while (link != NULL);
+ }
xmlFree(type);
}
@@ -689,16 +863,14 @@ xmlSchemaElementDump(xmlSchemaElementPtr elem, FILE * output,
return;
fprintf(output, "Element ");
- if (elem->flags & XML_SCHEMAS_ELEM_TOPLEVEL)
- fprintf(output, "toplevel ");
+ if (elem->flags & XML_SCHEMAS_ELEM_GLOBAL)
+ fprintf(output, "global ");
fprintf(output, ": %s ", elem->name);
if (namespace != NULL)
fprintf(output, "namespace '%s' ", namespace);
if (elem->flags & XML_SCHEMAS_ELEM_NILLABLE)
fprintf(output, "nillable ");
- if (elem->flags & XML_SCHEMAS_ELEM_GLOBAL)
- fprintf(output, "global ");
if (elem->flags & XML_SCHEMAS_ELEM_DEFAULT)
fprintf(output, "default ");
if (elem->flags & XML_SCHEMAS_ELEM_FIXED)
@@ -830,7 +1002,7 @@ xmlSchemaTypeDump(xmlSchemaTypePtr type, FILE * output)
fprintf(output, "mixed ");
break;
case XML_SCHEMA_CONTENT_MIXED_OR_ELEMENTS:
- fprintf(output, "mixed_or_elems ");
+ /* not used. */
break;
case XML_SCHEMA_CONTENT_BASIC:
fprintf(output, "basic ");
@@ -909,6 +1081,36 @@ xmlSchemaDump(FILE * output, xmlSchemaPtr schema)
* *
************************************************************************/
+static xmlAttrPtr
+xmlSchemaGetPropNode(xmlNodePtr node, const xmlChar *name)
+{
+ xmlAttrPtr prop;
+
+ if ((node == NULL) || (name == NULL)) return(NULL);
+ prop = node->properties;
+ while (prop != NULL) {
+ if ((xmlStrEqual(prop->name, name)) &&
+ (prop->ns == NULL))
+ return(prop);
+ prop = prop->next;
+ }
+ return (NULL);
+}
+
+static const xmlChar *
+xmlSchemaGetNodeContent(xmlSchemaParserCtxtPtr ctxt, xmlNodePtr node)
+{
+ xmlChar *val;
+ const xmlChar *ret;
+
+ val = xmlNodeGetContent(node);
+ if (val == NULL)
+ return(NULL);
+ ret = xmlDictLookup(ctxt->dict, val, -1);
+ xmlFree(val);
+ return(ret);
+}
+
/**
* xmlSchemaGetProp:
* @ctxt: the parser context
@@ -1040,12 +1242,13 @@ xmlSchemaGetElem(xmlSchemaPtr schema, const xmlChar * name,
if ((name == NULL) || (schema == NULL))
return (NULL);
- if (namespace == NULL) {
+
ret = xmlHashLookup2(schema->elemDecl, name, namespace);
if ((ret != NULL) &&
- ((level == 0) || (ret->flags & XML_SCHEMAS_ELEM_TOPLEVEL))) {
+ ((level == 0) || (ret->flags & XML_SCHEMAS_ELEM_GLOBAL))) {
return (ret);
- }
+ } else
+ ret = NULL;
/*
* This one was removed, since top level element declarations have
* the target namespace specified in targetNamespace of the <schema>
@@ -1062,17 +1265,19 @@ xmlSchemaGetElem(xmlSchemaPtr schema, const xmlChar * name,
return (ret);
}
*/
- } else {
- ret = xmlHashLookup2(schema->elemDecl, name, namespace);
- if ((ret != NULL) &&
- ((level == 0) || (ret->flags & XML_SCHEMAS_ELEM_TOPLEVEL))) {
- return (ret);
- }
- }
- if (level > 0)
+
+ /* if (level > 0) */
+ if (namespace == NULL)
+ import = xmlHashLookup(schema->schemasImports, XML_SCHEMAS_DEFAULT_NAMESPACE);
+ else
import = xmlHashLookup(schema->schemasImports, namespace);
- if (import != NULL)
+ if (import != NULL) {
ret = xmlSchemaGetElem(import->schema, name, namespace, level + 1);
+ if ((ret != NULL) && (ret->flags & XML_SCHEMAS_ELEM_GLOBAL)) {
+ return (ret);
+ } else
+ ret = NULL;
+ }
#ifdef DEBUG
if (ret == NULL) {
if (namespace == NULL)
@@ -1106,15 +1311,23 @@ xmlSchemaGetType(xmlSchemaPtr schema, const xmlChar * name,
return (NULL);
if (schema != NULL) {
ret = xmlHashLookup2(schema->typeDecl, name, namespace);
- if (ret != NULL)
+ if ((ret != NULL) && (ret->flags & XML_SCHEMAS_TYPE_GLOBAL))
return (ret);
}
ret = xmlSchemaGetPredefinedType(name, namespace);
if (ret != NULL)
return (ret);
+ if (namespace == NULL)
+ import = xmlHashLookup(schema->schemasImports, XML_SCHEMAS_DEFAULT_NAMESPACE);
+ else
import = xmlHashLookup(schema->schemasImports, namespace);
- if (import != NULL)
+ if (import != NULL) {
ret = xmlSchemaGetType(import->schema, name, namespace);
+ if ((ret != NULL) && (ret->flags & XML_SCHEMAS_TYPE_GLOBAL)) {
+ return (ret);
+ } else
+ ret = NULL;
+ }
#ifdef DEBUG
if (ret == NULL) {
if (namespace == NULL)
@@ -1127,6 +1340,153 @@ xmlSchemaGetType(xmlSchemaPtr schema, const xmlChar * name,
return (ret);
}
+/**
+ * xmlSchemaGetAttribute:
+ * @schema: the context of the schema
+ * @name: the name of the attribute
+ * @ns: the target namespace of the attribute
+ *
+ * Lookup a an attribute in the schema or imported schemas
+ *
+ * Returns the attribute declaration or NULL if not found.
+ */
+static xmlSchemaAttributePtr
+xmlSchemaGetAttribute(xmlSchemaPtr schema, const xmlChar * name,
+ const xmlChar * namespace)
+{
+ xmlSchemaAttributePtr ret;
+ xmlSchemaImportPtr import = NULL;
+
+ if ((name == NULL) || (schema == NULL))
+ return (NULL);
+
+
+ ret = xmlHashLookup2(schema->attrDecl, name, namespace);
+ if ((ret != NULL) && (ret->flags & XML_SCHEMAS_ATTR_GLOBAL))
+ return (ret);
+ else
+ ret = NULL;
+ if (namespace == NULL)
+ import = xmlHashLookup(schema->schemasImports, XML_SCHEMAS_DEFAULT_NAMESPACE);
+ else
+ import = xmlHashLookup(schema->schemasImports, namespace);
+ if (import != NULL) {
+ ret = xmlSchemaGetAttribute(import->schema, name, namespace);
+ if ((ret != NULL) && (ret->flags & XML_SCHEMAS_ATTR_GLOBAL)) {
+ return (ret);
+ } else
+ ret = NULL;
+ }
+#ifdef DEBUG
+ if (ret == NULL) {
+ if (namespace == NULL)
+ fprintf(stderr, "Unable to lookup attribute %s", name);
+ else
+ fprintf(stderr, "Unable to lookup attribute %s:%s", name,
+ namespace);
+ }
+#endif
+ return (ret);
+}
+
+/**
+ * xmlSchemaGetAttributeGroup:
+ * @schema: the context of the schema
+ * @name: the name of the attribute group
+ * @ns: the target namespace of the attribute group
+ *
+ * Lookup a an attribute group in the schema or imported schemas
+ *
+ * Returns the attribute group definition or NULL if not found.
+ */
+static xmlSchemaAttributeGroupPtr
+xmlSchemaGetAttributeGroup(xmlSchemaPtr schema, const xmlChar * name,
+ const xmlChar * namespace)
+{
+ xmlSchemaAttributeGroupPtr ret;
+ xmlSchemaImportPtr import = NULL;
+
+ if ((name == NULL) || (schema == NULL))
+ return (NULL);
+
+
+ ret = xmlHashLookup2(schema->attrgrpDecl, name, namespace);
+ if ((ret != NULL) && (ret->flags & XML_SCHEMAS_ATTRGROUP_GLOBAL))
+ return (ret);
+ else
+ ret = NULL;
+ if (namespace == NULL)
+ import = xmlHashLookup(schema->schemasImports, XML_SCHEMAS_DEFAULT_NAMESPACE);
+ else
+ import = xmlHashLookup(schema->schemasImports, namespace);
+ if (import != NULL) {
+ ret = xmlSchemaGetAttributeGroup(import->schema, name, namespace);
+ if ((ret != NULL) && (ret->flags & XML_SCHEMAS_ATTRGROUP_GLOBAL))
+ return (ret);
+ else
+ ret = NULL;
+ }
+#ifdef DEBUG
+ if (ret == NULL) {
+ if (namespace == NULL)
+ fprintf(stderr, "Unable to lookup attribute group %s", name);
+ else
+ fprintf(stderr, "Unable to lookup attribute group %s:%s", name,
+ namespace);
+ }
+#endif
+ return (ret);
+}
+
+/**
+ * xmlSchemaGetGroup:
+ * @schema: the context of the schema
+ * @name: the name of the group
+ * @ns: the target namespace of the group
+ *
+ * Lookup a group in the schema or imported schemas
+ *
+ * Returns the group definition or NULL if not found.
+ */
+static xmlSchemaTypePtr
+xmlSchemaGetGroup(xmlSchemaPtr schema, const xmlChar * name,
+ const xmlChar * namespace)
+{
+ xmlSchemaTypePtr ret;
+ xmlSchemaImportPtr import = NULL;
+
+ if ((name == NULL) || (schema == NULL))
+ return (NULL);
+
+
+ ret = xmlHashLookup2(schema->groupDecl, name, namespace);
+ if ((ret != NULL) && (ret->flags & XML_SCHEMAS_TYPE_GLOBAL))
+ return (ret);
+ else
+ ret = NULL;
+ if (namespace == NULL)
+ import = xmlHashLookup(schema->schemasImports, XML_SCHEMAS_DEFAULT_NAMESPACE);
+ else
+ import = xmlHashLookup(schema->schemasImports, namespace);
+ if (import != NULL) {
+ ret = xmlSchemaGetGroup(import->schema, name, namespace);
+ if ((ret != NULL) && (ret->flags & XML_SCHEMAS_TYPE_GLOBAL))
+ return (ret);
+ else
+ ret = NULL;
+ }
+#ifdef DEBUG
+ if (ret == NULL) {
+ if (namespace == NULL)
+ fprintf(stderr, "Unable to lookup group %s", name);
+ else
+ fprintf(stderr, "Unable to lookup group %s:%s", name,
+ namespace);
+ }
+#endif
+ return (ret);
+}
+
/************************************************************************
* *
* Parsing functions *
@@ -1368,12 +1728,12 @@ xmlSchemaAddElement(xmlSchemaParserCtxtPtr ctxt, xmlSchemaPtr schema,
/**
* xmlSchemaAddType:
- * @ctxt: a schema validation context
+ * @ctxt: a schema parser context
* @schema: the schema being built
* @name: the item name
* @namespace: the namespace
*
- * Add an XML schema Simple Type definition
+ * Add an XML schema item
* *WARNING* this interface is highly subject to change
*
* Returns the new struture or NULL in case of error
@@ -1434,6 +1794,8 @@ xmlSchemaAddType(xmlSchemaParserCtxtPtr ctxt, xmlSchemaPtr schema,
}
ret->minOccurs = 1;
ret->maxOccurs = 1;
+ ret->attributeUses = NULL;
+ ret->attributeWildcard = NULL;
return (ret);
}
@@ -1487,6 +1849,60 @@ xmlSchemaAddGroup(xmlSchemaParserCtxtPtr ctxt, xmlSchemaPtr schema,
return (ret);
}
+/**
+ * xmlSchemaNewWildcardNs:
+ * @ctxt: a schema validation context
+ *
+ * Creates a new wildcard namespace constraint.
+ *
+ * Returns the new struture or NULL in case of error
+ */
+static xmlSchemaWildcardNsPtr
+xmlSchemaNewWildcardNsConstraint(xmlSchemaParserCtxtPtr ctxt)
+{
+ xmlSchemaWildcardNsPtr ret;
+
+ ret = (xmlSchemaWildcardNsPtr)
+ xmlMalloc(sizeof(xmlSchemaWildcardNs));
+ if (ret == NULL) {
+ xmlSchemaPErrMemory(ctxt, "creating wildcard namespace constraint", NULL);
+ return (NULL);
+ }
+ ret->value = NULL;
+ ret->next = NULL;
+ return (ret);
+}
+
+/**
+ * xmlSchemaAddWildcard:
+ * @ctxt: a schema validation context
+ * @schema: the schema being built
+ * @name: the group name
+ *
+ * Add an XML schema Group definition
+ *
+ * Returns the new struture or NULL in case of error
+ */
+static xmlSchemaWildcardPtr
+xmlSchemaAddWildcard(xmlSchemaParserCtxtPtr ctxt)
+{
+ xmlSchemaWildcardPtr ret = NULL;
+
+ if (ctxt == NULL)
+ return (NULL);
+
+ ret = (xmlSchemaWildcardPtr) xmlMalloc(sizeof(xmlSchemaWildcard));
+ if (ret == NULL) {
+ xmlSchemaPErrMemory(ctxt, "adding wildcard", NULL);
+ return (NULL);
+ }
+ memset(ret, 0, sizeof(xmlSchemaWildcard));
+ ret->minOccurs = 1;
+ ret->maxOccurs = 1;
+
+ return (ret);
+}
+
/************************************************************************
* *
* Utilities for parsing *
@@ -1536,7 +1952,7 @@ xmlGetQNameProp(xmlSchemaParserCtxtPtr ctxt, xmlNodePtr node,
ns = xmlSearchNs(node->doc, node, prefix);
if (ns == NULL) {
xmlSchemaPErr(ctxt, node, XML_SCHEMAP_PREFIX_UNDEFINED,
- "Attribute %s: the QName prefix %s is undefined\n",
+ "Attribute \"%s\": the QName prefix \"%s\" is undefined\n",
(const xmlChar *) name, prefix);
} else {
*namespace = xmlDictLookup(ctxt->dict, ns->href, -1);
@@ -1661,16 +2077,17 @@ xmlGetBooleanProp(xmlSchemaParserCtxtPtr ctxt, xmlNodePtr node,
************************************************************************/
static xmlSchemaTypePtr xmlSchemaParseSimpleType(xmlSchemaParserCtxtPtr
ctxt, xmlSchemaPtr schema,
- xmlNodePtr node);
+ xmlNodePtr node,
+ int topLevel);
static xmlSchemaTypePtr xmlSchemaParseComplexType(xmlSchemaParserCtxtPtr
ctxt,
xmlSchemaPtr schema,
- xmlNodePtr node);
+ xmlNodePtr node,
+ int topLevel);
static xmlSchemaTypePtr xmlSchemaParseRestriction(xmlSchemaParserCtxtPtr
ctxt,
xmlSchemaPtr schema,
- xmlNodePtr node,
- int simple);
+ xmlNodePtr node);
static xmlSchemaTypePtr xmlSchemaParseSequence(xmlSchemaParserCtxtPtr ctxt,
xmlSchemaPtr schema,
xmlNodePtr node);
@@ -1684,18 +2101,113 @@ static xmlSchemaAttributePtr xmlSchemaParseAttribute(xmlSchemaParserCtxtPtr
int topLevel);
static xmlSchemaAttributeGroupPtr
xmlSchemaParseAttributeGroup(xmlSchemaParserCtxtPtr ctxt,
- xmlSchemaPtr schema, xmlNodePtr node);
+ xmlSchemaPtr schema, xmlNodePtr node,
+ int topLevel);
static xmlSchemaTypePtr xmlSchemaParseChoice(xmlSchemaParserCtxtPtr ctxt,
xmlSchemaPtr schema,
xmlNodePtr node);
static xmlSchemaTypePtr xmlSchemaParseList(xmlSchemaParserCtxtPtr ctxt,
xmlSchemaPtr schema,
xmlNodePtr node);
-static xmlSchemaAttributePtr
+static xmlSchemaWildcardPtr
xmlSchemaParseAnyAttribute(xmlSchemaParserCtxtPtr ctxt,
xmlSchemaPtr schema, xmlNodePtr node);
/**
+ * xmlSchemaParseSchemaAttrValue:
+ *
+ * @ctxt: a schema parser context
+ * @attr: the schema attribute being validated
+ * @type: the built-in type to be validated against
+ * @value: the value to be validated
+ *
+ * Validates a value against the given built-in type.
+ * This one is intended to be used internally for validation
+ * of schema attribute values during parsing of the schema.
+ *
+ * Returns 0 if the value is valid, a positive error code
+ * number otherwise and -1 in case of an internal or API error.
+ */
+static int
+xmlSchemaParseSchemaAttrValue(xmlSchemaParserCtxtPtr ctxt,
+ xmlAttrPtr attr,
+ xmlSchemaTypePtr type)
+{
+ const xmlChar *value;
+ int ret;
+
+ if ((ctxt == NULL) || (type == NULL) || (attr == NULL))
+ return (-1);
+ value = xmlSchemaGetNodeContent(ctxt, (xmlNodePtr) attr);
+ switch (type->builtInType) {
+ case XML_SCHEMAS_NCNAME:
+ ret = xmlValidateNCName(value, 1);
+ break;
+ case XML_SCHEMAS_QNAME:
+ ret = xmlValidateQName(value, 1);
+ if ((ret == 0) && (attr != NULL)) {
+ xmlChar *local = NULL;
+ xmlChar *prefix;
+
+ local = xmlSplitQName2(value, &prefix);
+ if (prefix != NULL) {
+ xmlNsPtr ns;
+
+ ns = xmlSearchNs(attr->doc, (xmlNodePtr) attr, prefix);
+ if (ns == NULL) {
+ xmlSchemaPErr(ctxt, (xmlNodePtr) attr,
+ XML_SCHEMAP_PREFIX_UNDEFINED,
+ "Attribute \"%s\": the QName prefix "
+ "\"%s\" is undefined.\n",
+ attr->name, prefix);
+ ret = 1;
+ }
+ }
+ if (local != NULL)
+ xmlFree(local);
+ if (prefix != NULL)
+ xmlFree(prefix);
+ }
+ break;
+ default: {
+ xmlSchemaPErr(ctxt, (xmlNodePtr) attr,
+ XML_SCHEMAS_ERR_INTERNAL,
+ "Internal error: xmlSchemaParseSchemaAttrValue, validation "
+ "using this type in not implemented yet\"%s\".\n",
+ type->name, NULL);
+ return (-1);
+ }
+ }
+ if (ret > 0) {
+ if (type->flags & XML_SCHEMAS_TYPE_VARIETY_LIST) {
+ xmlSchemaPErrExt(ctxt, (xmlNodePtr) attr,
+ XML_SCHEMAV_CVC_DATATYPE_VALID_1_2_2,
+ NULL, NULL, NULL,
+ "The schema attribute \"%s\" with the value \"%s\" is not "
+ "of built-in list simple type \"%s\".\n",
+ attr->name, value, type->name, NULL, NULL);
+ } else {
+ if (type->flags & XML_SCHEMAS_TYPE_BUILTIN_PRIMITIVE) {
+ xmlSchemaPErrExt(ctxt, (xmlNodePtr) attr,
+ XML_SCHEMAV_CVC_DATATYPE_VALID_1_2_1,
+ NULL, NULL, NULL,
+ "The schema attribute \"%s\" with the value \"%s\" is not "
+ "of built-in primitive type \"%s\".\n",
+ attr->name, value, type->name, NULL, NULL);
+ } else {
+ xmlSchemaPErrExt(ctxt, (xmlNodePtr) attr,
+ XML_SCHEMAV_CVC_DATATYPE_VALID_1_2_1,
+ NULL, NULL, NULL,
+ "The schema attribute \"%s\" with the value \"%s\" is not "
+ "of built-in atomic simple type \"%s\".\n",
+ attr->name, value, type->name, NULL, NULL);
+ }
+ }
+ }
+ return (ret);
+}
+
+/**
* xmlSchemaParseAttrDecls:
* @ctxt: a schema validation context
* @schema: the schema being built
@@ -1720,10 +2232,13 @@ xmlSchemaParseAttrDecls(xmlSchemaParserCtxtPtr ctxt, xmlSchemaPtr schema,
attr = xmlSchemaParseAttribute(ctxt, schema, child, 0);
} else if (IS_SCHEMA(child, "attributeGroup")) {
attr = (xmlSchemaAttributePtr)
- xmlSchemaParseAttributeGroup(ctxt, schema, child);
+ xmlSchemaParseAttributeGroup(ctxt, schema, child, 0);
}
if (attr != NULL) {
if (lastattr == NULL) {
+ if (type->type == XML_SCHEMA_TYPE_ATTRIBUTEGROUP)
+ ((xmlSchemaAttributeGroupPtr) type)->attributes = attr;
+ else
type->attributes = attr;
lastattr = attr;
} else {
@@ -1734,15 +2249,14 @@ xmlSchemaParseAttrDecls(xmlSchemaParserCtxtPtr ctxt, xmlSchemaPtr schema,
child = child->next;
}
if (IS_SCHEMA(child, "anyAttribute")) {
- attr = xmlSchemaParseAnyAttribute(ctxt, schema, child);
- if (attr != NULL) {
- if (lastattr == NULL) {
- type->attributes = attr;
- lastattr = attr;
- } else {
- lastattr->next = attr;
- lastattr = attr;
- }
+ xmlSchemaWildcardPtr wildcard;
+
+ wildcard = xmlSchemaParseAnyAttribute(ctxt, schema, child);
+ if (wildcard != NULL) {
+ if (type->type == XML_SCHEMA_TYPE_ATTRIBUTEGROUP)
+ ((xmlSchemaAttributeGroupPtr) type)->attributeWildcard = wildcard;
+ else
+ type->attributeWildcard = wildcard;
}
child = child->next;
}
@@ -1841,6 +2355,17 @@ xmlSchemaParseFacet(xmlSchemaParserCtxtPtr ctxt, xmlSchemaPtr schema,
}
facet->id = xmlSchemaGetProp(ctxt, node, "id");
facet->value = value;
+ if ((facet->type != XML_SCHEMA_FACET_PATTERN) &&
+ (facet->type != XML_SCHEMA_FACET_ENUMERATION)) {
+ const xmlChar *fixed;
+
+ fixed = xmlSchemaGetProp(ctxt, node, "fixed");
+ if (fixed != NULL) {
+ if (xmlStrEqual(fixed, BAD_CAST "true"))
+ facet->fixed = 1;
+ }
+ }
+
child = node->children;
if (IS_SCHEMA(child, "annotation")) {
@@ -1955,28 +2480,20 @@ xmlSchemaParseNotation(xmlSchemaParserCtxtPtr ctxt, xmlSchemaPtr schema,
*
* Returns an attribute def structure or NULL
*/
-static xmlSchemaAttributePtr
+static xmlSchemaWildcardPtr
xmlSchemaParseAnyAttribute(xmlSchemaParserCtxtPtr ctxt,
xmlSchemaPtr schema, xmlNodePtr node)
{
- const xmlChar *processContents;
- xmlSchemaAttributePtr ret;
+ const xmlChar *processContents, *nsConstraint, *end, *cur, *dictMember;
+ xmlChar *member;
+ xmlSchemaWildcardPtr ret;
+ xmlSchemaWildcardNsPtr tmp, lastNs = NULL;
xmlNodePtr child = NULL;
- char name[100];
-
if ((ctxt == NULL) || (schema == NULL) || (node == NULL))
return (NULL);
- snprintf(name, 99, "anyattr %d", ctxt->counter++ + 1);
-
- /* local = xmlSchemaGetNamespace(ctxt, schema, node, BAD_CAST "anyattr", &ns); */
-
- /*
- * TODO: namespace = ((##any | ##other) | List of (anyURI |
- * (##targetNamespace | * ##local)) ) : ##any
- */
- ret = xmlSchemaAddAttribute(ctxt, schema, BAD_CAST name, NULL);
+ ret = xmlSchemaAddWildcard(ctxt);
if (ret == NULL) {
return (NULL);
}
@@ -1985,18 +2502,88 @@ xmlSchemaParseAnyAttribute(xmlSchemaParserCtxtPtr ctxt,
processContents = xmlSchemaGetProp(ctxt, node, "processContents");
if ((processContents == NULL)
|| (xmlStrEqual(processContents, (const xmlChar *) "strict"))) {
- ret->occurs = XML_SCHEMAS_ANYATTR_STRICT;
+ ret->processContents = XML_SCHEMAS_ANY_STRICT;
} else if (xmlStrEqual(processContents, (const xmlChar *) "skip")) {
- ret->occurs = XML_SCHEMAS_ANYATTR_SKIP;
+ ret->processContents = XML_SCHEMAS_ANY_SKIP;
} else if (xmlStrEqual(processContents, (const xmlChar *) "lax")) {
- ret->occurs = XML_SCHEMAS_ANYATTR_LAX;
+ ret->processContents = XML_SCHEMAS_ANY_LAX;
} else {
- xmlSchemaPErr2(ctxt, node, child,
+ xmlSchemaPErr(ctxt, node,
XML_SCHEMAP_UNKNOWN_PROCESSCONTENT_CHILD,
"anyAttribute has unexpected content "
"for processContents: %s\n",
processContents, NULL);
- ret->occurs = XML_SCHEMAS_ANYATTR_STRICT;
+ ret->processContents = XML_SCHEMAS_ANY_STRICT;
+ }
+ /*
+ * Build the namespace constraints.
+ */
+ nsConstraint = xmlSchemaGetProp(ctxt, node, "namespace");
+ if ((nsConstraint == NULL) || (xmlStrEqual(nsConstraint, BAD_CAST "##any")))
+ ret->any = 1;
+ else if (xmlStrEqual(nsConstraint, BAD_CAST "##other")) {
+ ret->negNsSet = xmlSchemaNewWildcardNsConstraint(ctxt);
+ if (ret->negNsSet == NULL) {
+ xmlSchemaFreeWildcard(ret);
+ return (NULL);
+ }
+ ret->negNsSet->value = schema->targetNamespace;
+ } else {
+ cur = nsConstraint;
+ do {
+ while (IS_BLANK_CH(*cur))
+ cur++;
+ end = cur;
+ while ((*end != 0) && (!(IS_BLANK_CH(*end))))
+ end++;
+ if (end == cur)
+ break;
+ member = xmlStrndup(cur, end - cur);
+ if ((xmlStrEqual(member, BAD_CAST "##other")) ||
+ (xmlStrEqual(member, BAD_CAST "##any"))) {
+ xmlSchemaPErr(ctxt, ret->node, XML_SCHEMAP_WILDCARD_INVALID_NS_MEMBER,
+ "The namespace constraint of an anyAttribute "
+ "is a set and must not contain \"%s\"\n",
+ member, NULL);
+ } else {
+ /*
+ * TODO: Validate the value (anyURI).
+ */
+ if (xmlStrEqual(member, BAD_CAST "##targetNamespace")) {
+ dictMember = schema->targetNamespace;
+ } else if (xmlStrEqual(member, BAD_CAST "##local")) {
+ dictMember = NULL;
+ } else
+ dictMember = xmlDictLookup(ctxt->dict, member, -1);
+ /*
+ * Avoid dublicate namespaces.
+ */
+ tmp = ret->nsSet;
+ while (tmp != NULL) {
+ if (dictMember == tmp->value)
+ break;
+ tmp = tmp->next;
+ }
+ if (tmp == NULL) {
+ tmp = xmlSchemaNewWildcardNsConstraint(ctxt);
+ if (tmp == NULL) {
+ xmlFree(member);
+ xmlSchemaFreeWildcard(ret);
+ return (NULL);
+ }
+ tmp->value = dictMember;
+ tmp->next = NULL;
+ if (ret->nsSet == NULL)
+ ret->nsSet = tmp;
+ else
+ lastNs->next = tmp;
+ lastNs = tmp;
+ }
+
+ }
+ xmlFree(member);
+ cur = end;
+ } while (*cur != 0);
}
child = node->children;
@@ -2007,8 +2594,8 @@ xmlSchemaParseAnyAttribute(xmlSchemaParserCtxtPtr ctxt,
if (child != NULL) {
xmlSchemaPErr2(ctxt, node, child,
XML_SCHEMAP_UNKNOWN_ANYATTRIBUTE_CHILD,
- "anyAttribute %s has unexpected content\n",
- (const xmlChar *) name, NULL);
+ "anyAttribute has unexpected content\n",
+ NULL, NULL);
}
return (ret);
@@ -2093,8 +2680,8 @@ xmlSchemaParseAttribute(xmlSchemaParserCtxtPtr ctxt, xmlSchemaPtr schema,
if ((!topLevel) && (xmlSchemaGetProp(ctxt, node, "ref") != NULL)) {
xmlSchemaPErr(ctxt, node,
XML_SCHEMAP_INVALID_ATTR_COMBINATION,
- "Attribute declaration has both, \"name\" and "
- "\"ref\"\n", NULL, NULL);
+ "Attribute declaration \"%s\" has both, \"name\" and "
+ "\"ref\"\n", name, NULL);
}
/* local = xmlSchemaGetNamespace(ctxt, schema, node, name, &ns); */
@@ -2112,7 +2699,8 @@ xmlSchemaParseAttribute(xmlSchemaParserCtxtPtr ctxt, xmlSchemaPtr schema,
}
}
ret = xmlSchemaAddAttribute(ctxt, schema, name, ns);
-
+ if (ret == NULL)
+ return (NULL);
/* 3.2.6 Schema Component Constraint: xmlns Not Allowed */
if (xmlStrEqual(name, BAD_CAST "xmlns")) {
xmlSchemaPErr(ctxt, node,
@@ -2134,6 +2722,8 @@ xmlSchemaParseAttribute(xmlSchemaParserCtxtPtr ctxt, xmlSchemaPtr schema,
return (NULL);
}
ret->type = XML_SCHEMA_TYPE_ATTRIBUTE;
+ if (topLevel)
+ ret->flags |= XML_SCHEMAS_ATTR_GLOBAL;
/* Handle the "use" attribute. */
attrVal = xmlSchemaGetProp(ctxt, node, "use");
@@ -2210,7 +2800,7 @@ xmlSchemaParseAttribute(xmlSchemaParserCtxtPtr ctxt, xmlSchemaPtr schema,
"Attribute declaration %s has both (\"ref\" or "
"\"type\") and <simpleType>\n", name, NULL);
} else
- ret->subtypes = xmlSchemaParseSimpleType(ctxt, schema, child);
+ ret->subtypes = xmlSchemaParseSimpleType(ctxt, schema, child, 0);
child = child->next;
}
if (child != NULL) {
@@ -2235,11 +2825,11 @@ xmlSchemaParseAttribute(xmlSchemaParserCtxtPtr ctxt, xmlSchemaPtr schema,
*/
static xmlSchemaAttributeGroupPtr
xmlSchemaParseAttributeGroup(xmlSchemaParserCtxtPtr ctxt,
- xmlSchemaPtr schema, xmlNodePtr node)
+ xmlSchemaPtr schema, xmlNodePtr node,
+ int topLevel)
{
const xmlChar *name, *refNs = NULL, *ref = NULL;
xmlSchemaAttributeGroupPtr ret;
- xmlSchemaAttributePtr last = NULL, attr;
xmlNodePtr child = NULL;
const xmlChar *oldcontainer;
char buf[100];
@@ -2249,7 +2839,6 @@ xmlSchemaParseAttributeGroup(xmlSchemaParserCtxtPtr ctxt,
oldcontainer = ctxt->container;
name = xmlSchemaGetProp(ctxt, node, "name");
if (name == NULL) {
-
ref = xmlGetQNameProp(ctxt, node, "ref", &refNs);
if (ref == NULL) {
xmlSchemaPErr2(ctxt, node, child,
@@ -2272,6 +2861,8 @@ xmlSchemaParseAttributeGroup(xmlSchemaParserCtxtPtr ctxt,
ret->ref = ref;
ret->refNs = refNs;
ret->type = XML_SCHEMA_TYPE_ATTRIBUTEGROUP;
+ if (topLevel)
+ ret->flags |= XML_SCHEMAS_ATTRGROUP_GLOBAL;
ret->node = node;
child = node->children;
ctxt->container = name;
@@ -2279,6 +2870,9 @@ xmlSchemaParseAttributeGroup(xmlSchemaParserCtxtPtr ctxt,
ret->annot = xmlSchemaParseAnnotation(ctxt, schema, child);
child = child->next;
}
+ child = xmlSchemaParseAttrDecls(ctxt, schema, child, (xmlSchemaTypePtr) ret);
+ /* Seems that this can be removed. */
+ /*
while ((IS_SCHEMA(child, "attribute")) ||
(IS_SCHEMA(child, "attributeGroup"))) {
attr = NULL;
@@ -2286,7 +2880,7 @@ xmlSchemaParseAttributeGroup(xmlSchemaParserCtxtPtr ctxt,
attr = xmlSchemaParseAttribute(ctxt, schema, child, 0);
} else if (IS_SCHEMA(child, "attributeGroup")) {
attr = (xmlSchemaAttributePtr)
- xmlSchemaParseAttributeGroup(ctxt, schema, child);
+ xmlSchemaParseAttributeGroup(ctxt, schema, child, 0);
}
if (attr != NULL) {
if (last == NULL) {
@@ -2303,6 +2897,7 @@ xmlSchemaParseAttributeGroup(xmlSchemaParserCtxtPtr ctxt,
TODO
child = child->next;
}
+ */
if (child != NULL) {
xmlSchemaPErr2(ctxt, node, child,
XML_SCHEMAP_UNKNOWN_ATTRGRP_CHILD,
@@ -2326,7 +2921,7 @@ xmlSchemaParseAttributeGroup(xmlSchemaParserCtxtPtr ctxt,
*/
static xmlSchemaElementPtr
xmlSchemaParseElement(xmlSchemaParserCtxtPtr ctxt, xmlSchemaPtr schema,
- xmlNodePtr node, int toplevel)
+ xmlNodePtr node, int topLevel)
{
const xmlChar *name, *fixed;
const xmlChar *refNs = NULL, *ref = NULL;
@@ -2344,7 +2939,6 @@ xmlSchemaParseElement(xmlSchemaParserCtxtPtr ctxt, xmlSchemaPtr schema,
oldcontainer = ctxt->container;
name = xmlSchemaGetProp(ctxt, node, "name");
if (name == NULL) {
-
ref = xmlGetQNameProp(ctxt, node, "ref", &refNs);
/* 3.3.3 : 2.1
* One of ref or name must be present, but not both
@@ -2352,9 +2946,10 @@ xmlSchemaParseElement(xmlSchemaParserCtxtPtr ctxt, xmlSchemaPtr schema,
if (ref == NULL) {
xmlSchemaPErr(ctxt, node,
XML_SCHEMAP_ELEM_NONAME_NOREF,
- "Element has no name nor ref\n", NULL, NULL);
+ "Element declaration has no name nor ref\n", NULL, NULL);
return (NULL);
}
+
snprintf(buf, 99, "anonelem %d", ctxt->counter++ + 1);
name = (const xmlChar *) buf;
ret = xmlSchemaAddElement(ctxt, schema, name, NULL);
@@ -2363,7 +2958,7 @@ xmlSchemaParseElement(xmlSchemaParserCtxtPtr ctxt, xmlSchemaPtr schema,
/* Evaluate the target namespace */
if (schema->targetNamespace != NULL) {
- if (toplevel) {
+ if (topLevel) {
ns = schema->targetNamespace;
} else if (xmlSchemaGetProp(ctxt, node, "form") != NULL) {
if (xmlStrEqual( xmlSchemaGetProp(ctxt, node, "form"),
@@ -2379,7 +2974,7 @@ xmlSchemaParseElement(xmlSchemaParserCtxtPtr ctxt, xmlSchemaPtr schema,
/* 3.3.3 : 2.1
* One of ref or name must be present, but not both
*/
- if ((!toplevel) && (xmlSchemaGetProp(ctxt, node, "ref") != NULL)) {
+ if ((!topLevel) && (xmlSchemaGetProp(ctxt, node, "ref") != NULL)) {
xmlSchemaPErr(ctxt, node,
XML_SCHEMAP_INVALID_ATTR_COMBINATION,
"Element declaration has both, \"name\" and "
@@ -2398,7 +2993,7 @@ xmlSchemaParseElement(xmlSchemaParserCtxtPtr ctxt, xmlSchemaPtr schema,
ret->flags |= XML_SCHEMAS_ELEM_REF;
/* 3.3.3 : 2.2 */
- if ((!toplevel) && (ref != NULL)) {
+ if ((!topLevel) && (ref != NULL)) {
attr = node->properties;
while (attr != NULL) {
if ((attr->ns == NULL) &&
@@ -2416,12 +3011,14 @@ xmlSchemaParseElement(xmlSchemaParserCtxtPtr ctxt, xmlSchemaPtr schema,
}
}
- if (toplevel)
+ if (topLevel) {
+ ret->flags |= XML_SCHEMAS_ELEM_GLOBAL;
ret->flags |= XML_SCHEMAS_ELEM_TOPLEVEL;
+ }
if (xmlGetBooleanProp(ctxt, node, "nillable", 0))
ret->flags |= XML_SCHEMAS_ELEM_NILLABLE;
if (xmlGetBooleanProp(ctxt, node, "abstract", 0))
- ret->flags |= XML_SCHEMAS_ELEM_NILLABLE;
+ ret->flags |= XML_SCHEMAS_ELEM_ABSTRACT;
ctxt->container = name;
ret->id = xmlSchemaGetProp(ctxt, node, "id");
@@ -2430,7 +3027,7 @@ xmlSchemaParseElement(xmlSchemaParserCtxtPtr ctxt, xmlSchemaPtr schema,
ret->substGroup =
xmlGetQNameProp(ctxt, node, "substitutionGroup",
&(ret->substGroupNs));
- if ((ret->substGroup != NULL) && (!toplevel)) {
+ if ((ret->substGroup != NULL) && (!topLevel)) {
/* 3.3.6 : 3 */
/*
* TODO: This seems to be redundant, since the schema for schemas
@@ -2464,6 +3061,7 @@ xmlSchemaParseElement(xmlSchemaParserCtxtPtr ctxt, xmlSchemaPtr schema,
ret->annot = xmlSchemaParseAnnotation(ctxt, schema, child);
child = child->next;
}
+
if (ref != NULL) {
/* 3.3.3 (2.2) */
while (child != NULL) {
@@ -2496,7 +3094,7 @@ xmlSchemaParseElement(xmlSchemaParserCtxtPtr ctxt, xmlSchemaPtr schema,
"and a local complex type\n",
ret->name, NULL);
} else
- ret->subtypes = xmlSchemaParseComplexType(ctxt, schema, child);
+ ret->subtypes = xmlSchemaParseComplexType(ctxt, schema, child, 0);
child = child->next;
} else if (IS_SCHEMA(child, "simpleType")) {
/* 3.3.3 : 3
@@ -2510,7 +3108,7 @@ xmlSchemaParseElement(xmlSchemaParserCtxtPtr ctxt, xmlSchemaPtr schema,
"and a local simple type\n",
ret->name, NULL);
} else
- ret->subtypes = xmlSchemaParseSimpleType(ctxt, schema, child);
+ ret->subtypes = xmlSchemaParseSimpleType(ctxt, schema, child, 0);
child = child->next;
}
@@ -2556,10 +3154,10 @@ xmlSchemaParseUnion(xmlSchemaParserCtxtPtr ctxt, xmlSchemaPtr schema,
type = xmlSchemaAddType(ctxt, schema, name, NULL);
if (type == NULL)
return (NULL);
- type->node = node;
type->type = XML_SCHEMA_TYPE_UNION;
+ type->node = node;
type->id = xmlSchemaGetProp(ctxt, node, "id");
- type->ref = xmlSchemaGetProp(ctxt, node, "memberTypes");
+ type->base = xmlSchemaGetProp(ctxt, node, "memberTypes");
child = node->children;
if (IS_SCHEMA(child, "annotation")) {
@@ -2568,7 +3166,7 @@ xmlSchemaParseUnion(xmlSchemaParserCtxtPtr ctxt, xmlSchemaPtr schema,
}
while (IS_SCHEMA(child, "simpleType")) {
subtype = (xmlSchemaTypePtr)
- xmlSchemaParseSimpleType(ctxt, schema, child);
+ xmlSchemaParseSimpleType(ctxt, schema, child, 0);
if (subtype != NULL) {
if (last == NULL) {
type->subtypes = subtype;
@@ -2608,6 +3206,7 @@ xmlSchemaParseList(xmlSchemaParserCtxtPtr ctxt, xmlSchemaPtr schema,
xmlSchemaTypePtr type, subtype;
xmlNodePtr child = NULL;
xmlChar name[30];
+ xmlAttrPtr attr;
if ((ctxt == NULL) || (schema == NULL) || (node == NULL))
return (NULL);
@@ -2619,20 +3218,33 @@ xmlSchemaParseList(xmlSchemaParserCtxtPtr ctxt, xmlSchemaPtr schema,
type->node = node;
type->type = XML_SCHEMA_TYPE_LIST;
type->id = xmlSchemaGetProp(ctxt, node, "id");
- type->ref = xmlGetQNameProp(ctxt, node, "ref", &(type->refNs));
child = node->children;
if (IS_SCHEMA(child, "annotation")) {
type->annot = xmlSchemaParseAnnotation(ctxt, schema, child);
child = child->next;
}
-
+ /*
+ * Check type of "itemType".
+ */
+ attr = xmlSchemaGetPropNode(node, BAD_CAST "itemType");
+ if (attr != NULL) {
+ type->base = xmlGetQNameProp(ctxt, node, "itemType", &(type->baseNs));
+ xmlSchemaParseSchemaAttrValue(ctxt, attr,
+ xmlSchemaGetBuiltInType(XML_SCHEMAS_QNAME));
+
+ }
subtype = NULL;
- if (IS_SCHEMA(child, "simpleType")) {
- subtype = (xmlSchemaTypePtr)
- xmlSchemaParseSimpleType(ctxt, schema, child);
- child = child->next;
- type->subtypes = subtype;
+ if (IS_SCHEMA(child, "simpleType")) {
+ subtype = (xmlSchemaTypePtr)
+ xmlSchemaParseSimpleType(ctxt, schema, child, 0);
+ type->subtypes = subtype;
+ /*
+ * This is a hack to save the information that a local
+ * simple type was defined.
+ */
+ type->baseType = subtype;
+ child = child->next;
}
if (child != NULL) {
xmlSchemaPErr2(ctxt, node, child, XML_SCHEMAP_UNKNOWN_LIST_CHILD,
@@ -2656,41 +3268,102 @@ xmlSchemaParseList(xmlSchemaParserCtxtPtr ctxt, xmlSchemaPtr schema,
*/
static xmlSchemaTypePtr
xmlSchemaParseSimpleType(xmlSchemaParserCtxtPtr ctxt, xmlSchemaPtr schema,
- xmlNodePtr node)
+ xmlNodePtr node, int topLevel)
{
- xmlSchemaTypePtr type, subtype;
+ xmlSchemaTypePtr type, subtype, ctxtType;
xmlNodePtr child = NULL;
- const xmlChar *name;
+ const xmlChar *propVal;
if ((ctxt == NULL) || (schema == NULL) || (node == NULL))
return (NULL);
-
- name = xmlSchemaGetProp(ctxt, node, "name");
- if (name == NULL) {
+ ctxtType = ctxt->ctxtType;
+ propVal = xmlSchemaGetProp(ctxt, node, "name");
+ if (propVal == NULL) {
char buf[100];
snprintf(buf, 99, "simpleType %d", ctxt->counter++ + 1);
type = xmlSchemaAddType(ctxt, schema, (const xmlChar *)buf, NULL);
} else {
- /* local = xmlSchemaGetNamespace(ctxt, schema, node, name, &ns); */
- type = xmlSchemaAddType(ctxt, schema, name, schema->targetNamespace);
+ if (!topLevel) {
+ xmlSchemaPErr(ctxt, node,
+ XML_SCHEMAP_S4S_ATTR_NOT_ALLOWED,
+ "The attribute \"name\" is not allowed on a local "
+ "simpleType definition\n",
+ propVal, NULL);
+ return (NULL);
+ }
+ /*
+ * "name" has to be of type NCName.
+ * TODO: Actually this should be validated by the schema for schemas.
+ */
+ if (xmlSchemaParseSchemaAttrValue(ctxt,
+ xmlSchemaGetPropNode(node, BAD_CAST "name"),
+ xmlSchemaGetBuiltInType(XML_SCHEMAS_NCNAME)) != 0)
+ return (NULL);
+ type = xmlSchemaAddType(ctxt, schema, propVal, schema->targetNamespace);
}
if (type == NULL)
return (NULL);
type->node = node;
type->type = XML_SCHEMA_TYPE_SIMPLE;
+ if (topLevel)
+ type->flags |= XML_SCHEMAS_TYPE_GLOBAL;
type->id = xmlSchemaGetProp(ctxt, node, "id");
-
+ propVal = xmlSchemaGetProp(ctxt, node, "final");
+ if (propVal == NULL) {
+ type->flags |= XML_SCHEMAS_TYPE_FINAL_DEFAULT;
+ } else {
+ if (xmlStrEqual(propVal, BAD_CAST "#all")) {
+ type->flags |= XML_SCHEMAS_TYPE_FINAL_RESTRICTION;
+ type->flags |= XML_SCHEMAS_TYPE_FINAL_UNION;
+ type->flags |= XML_SCHEMAS_TYPE_FINAL_LIST;
+ } else {
+ const xmlChar *end, *cur = propVal;
+ xmlChar *item;
+
+ do {
+ while (IS_BLANK_CH(*cur))
+ cur++;
+ end = cur;
+ while ((*end != 0) && (!(IS_BLANK_CH(*end))))
+ end++;
+ if (end == cur)
+ break;
+ item = xmlStrndup(cur, end - cur);
+ if (xmlStrEqual(item, BAD_CAST "restriction")) {
+ if ((type->flags & XML_SCHEMAS_TYPE_FINAL_RESTRICTION) == 0)
+ type->flags |= XML_SCHEMAS_TYPE_FINAL_RESTRICTION;
+ } else if (xmlStrEqual(item, BAD_CAST "list")) {
+ if ((type->flags & XML_SCHEMAS_TYPE_FINAL_LIST) == 0)
+ type->flags |= XML_SCHEMAS_TYPE_FINAL_LIST;
+ } else if (xmlStrEqual(item, BAD_CAST "union")) {
+ if ((type->flags & XML_SCHEMAS_TYPE_FINAL_UNION) == 0)
+ type->flags |= XML_SCHEMAS_TYPE_FINAL_UNION;
+ } else {
+ xmlSchemaPErr(ctxt, node,
+ XML_SCHEMAS_ERR_INTERNAL,
+ "The attribute \"final\" of type \"%s\" "
+ "has an invalid value\n",
+ type->name, NULL);
+ }
+ if (item != NULL)
+ xmlFree(item);
+ cur = end;
+ } while (*cur != 0);
+ }
+ }
child = node->children;
if (IS_SCHEMA(child, "annotation")) {
type->annot = xmlSchemaParseAnnotation(ctxt, schema, child);
child = child->next;
}
subtype = NULL;
+ ctxt->ctxtType = type;
+ ctxt->parentItem = type;
if (IS_SCHEMA(child, "restriction")) {
subtype = (xmlSchemaTypePtr)
- xmlSchemaParseRestriction(ctxt, schema, child, 1);
+ xmlSchemaParseRestriction(ctxt, schema, child);
child = child->next;
} else if (IS_SCHEMA(child, "list")) {
subtype = (xmlSchemaTypePtr)
@@ -2702,19 +3375,23 @@ xmlSchemaParseSimpleType(xmlSchemaParserCtxtPtr ctxt, xmlSchemaPtr schema,
child = child->next;
}
type->subtypes = subtype;
- if (subtype == NULL) {
- xmlSchemaPErr2(ctxt, node, child,
- XML_SCHEMAP_MISSING_SIMPLETYPE_CHILD,
- "SimpleType %s does not define a variety\n",
- type->name, NULL);
- }
if (child != NULL) {
xmlSchemaPErr2(ctxt, node, child,
- XML_SCHEMAP_UNKNOWN_SIMPLETYPE_CHILD,
- "SimpleType %s has unexpected content\n",
+ XML_SCHEMAP_S4S_ELEM_NOT_ALLOWED,
+ "SimpleType \"%s\" has unexpected content\n",
type->name, NULL);
+ } else {
+ if (subtype == NULL) {
+ xmlSchemaPErr2(ctxt, node, child,
+ XML_SCHEMAP_S4S_ELEM_MISSING,
+ "SimpleType \"%s\" must have one of <restriction> or "
+ "<list> or <union> as a child\n",
+ type->name, NULL);
+ }
}
+ ctxt->ctxtType = ctxtType;
+
return (type);
}
@@ -2733,7 +3410,7 @@ xmlSchemaParseSimpleType(xmlSchemaParserCtxtPtr ctxt, xmlSchemaPtr schema,
*/
static xmlSchemaTypePtr
xmlSchemaParseGroup(xmlSchemaParserCtxtPtr ctxt, xmlSchemaPtr schema,
- xmlNodePtr node)
+ xmlNodePtr node, int topLevel)
{
xmlSchemaTypePtr type, subtype;
xmlNodePtr child = NULL;
@@ -2747,7 +3424,6 @@ xmlSchemaParseGroup(xmlSchemaParserCtxtPtr ctxt, xmlSchemaPtr schema,
name = xmlSchemaGetProp(ctxt, node, "name");
if (name == NULL) {
-
ref = xmlGetQNameProp(ctxt, node, "ref", &refNs);
if (ref == NULL) {
xmlSchemaPErr2(ctxt, node, child,
@@ -2763,9 +3439,10 @@ xmlSchemaParseGroup(xmlSchemaParserCtxtPtr ctxt, xmlSchemaPtr schema,
type = xmlSchemaAddGroup(ctxt, schema, name);
if (type == NULL)
return (NULL);
-
type->node = node;
type->type = XML_SCHEMA_TYPE_GROUP;
+ if (topLevel)
+ type->flags |= XML_SCHEMAS_TYPE_GLOBAL;
type->id = xmlSchemaGetProp(ctxt, node, "id");
type->ref = ref;
type->refNs = refNs;
@@ -2898,7 +3575,7 @@ xmlSchemaImportSchema(xmlSchemaParserCtxtPtr ctxt,
newctxt = (xmlSchemaParserCtxtPtr) xmlMalloc(sizeof(xmlSchemaParserCtxt));
if (newctxt == NULL) {
- xmlSchemaPErrMemory(ctxt, "allocating schama parser context",
+ xmlSchemaPErrMemory(ctxt, "allocating schema parser context",
NULL);
return (NULL);
}
@@ -3066,8 +3743,39 @@ xmlSchemaParseImport(xmlSchemaParserCtxtPtr ctxt, xmlSchemaPtr schema,
if (import == NULL) {
return (-1);
}
+ if (!xmlStrEqual(import->schema->targetNamespace, namespace)) {
+ if (namespace == NULL) {
+ if (import->schema->targetNamespace != NULL) {
+ xmlSchemaPErr(ctxt, node, XML_SCHEMAP_SRC_IMPORT_3_2,
+ "There is no namespace attribute on the <import> "
+ "element information item, so the imported document "
+ "must have no targetNamespace attribute.\n",
+ NULL, NULL);
+ }
+ } else {
+ if (import->schema->targetNamespace != NULL) {
+ xmlSchemaPErr(ctxt, node, XML_SCHEMAP_SRC_IMPORT_3_1,
+ "The namespace attribute \"%s\" of an <import> "
+ "element information item must be identical to the "
+ "targetNamespace attribute \"%s\" of the "
+ "imported document.\n",
+ namespace, import->schema->targetNamespace);
+ } else {
+ xmlSchemaPErr(ctxt, node, XML_SCHEMAP_SRC_IMPORT_3_1,
+ "The namespace attribute on the <import> "
+ "element information item, requires the imported "
+ "document to have a targetNamespace attribute "
+ "with the value \"%s\".\n",
+ namespace, NULL);
+ }
+ }
+ xmlSchemaFreeImport(import);
+ return (-1);
+ }
+
xmlHashAddEntry(schema->schemasImports,
namespace, import);
+
}
}
}
@@ -3205,10 +3913,10 @@ xmlSchemaParseSchemaTopLevel(xmlSchemaParserCtxtPtr ctxt,
}
while (child != NULL) {
if (IS_SCHEMA(child, "complexType")) {
- xmlSchemaParseComplexType(ctxt, schema, child);
+ xmlSchemaParseComplexType(ctxt, schema, child, 1);
child = child->next;
} else if (IS_SCHEMA(child, "simpleType")) {
- xmlSchemaParseSimpleType(ctxt, schema, child);
+ xmlSchemaParseSimpleType(ctxt, schema, child, 1);
child = child->next;
} else if (IS_SCHEMA(child, "element")) {
xmlSchemaParseElement(ctxt, schema, child, 1);
@@ -3217,10 +3925,10 @@ xmlSchemaParseSchemaTopLevel(xmlSchemaParserCtxtPtr ctxt,
xmlSchemaParseAttribute(ctxt, schema, child, 1);
child = child->next;
} else if (IS_SCHEMA(child, "attributeGroup")) {
- xmlSchemaParseAttributeGroup(ctxt, schema, child);
+ xmlSchemaParseAttributeGroup(ctxt, schema, child, 1);
child = child->next;
} else if (IS_SCHEMA(child, "group")) {
- xmlSchemaParseGroup(ctxt, schema, child);
+ xmlSchemaParseGroup(ctxt, schema, child, 1);
child = child->next;
} else if (IS_SCHEMA(child, "notation")) {
xmlSchemaParseNotation(ctxt, schema, child);
@@ -3241,6 +3949,8 @@ xmlSchemaParseSchemaTopLevel(xmlSchemaParserCtxtPtr ctxt,
child = child->next;
}
}
+ ctxt->parentItem = NULL;
+ ctxt->ctxtType = NULL;
}
/**
@@ -3355,7 +4065,7 @@ xmlSchemaParseInclude(xmlSchemaParserCtxtPtr ctxt, xmlSchemaPtr schema,
if (!IS_SCHEMA(root, "schema")) {
xmlSchemaPErr(ctxt, (xmlNodePtr) doc,
XML_SCHEMAP_NOT_SCHEMA,
- "File %s is not a schemas", schemaLocation, NULL);
+ "File %s is not a schema", schemaLocation, NULL);
xmlFreeDoc(doc);
return (-1);
}
@@ -3435,7 +4145,7 @@ xmlSchemaParseChoice(xmlSchemaParserCtxtPtr ctxt, xmlSchemaPtr schema,
subtype = (xmlSchemaTypePtr)
xmlSchemaParseElement(ctxt, schema, child, 0);
} else if (IS_SCHEMA(child, "group")) {
- subtype = xmlSchemaParseGroup(ctxt, schema, child);
+ subtype = xmlSchemaParseGroup(ctxt, schema, child, 0);
} else if (IS_SCHEMA(child, "any")) {
subtype = xmlSchemaParseAny(ctxt, schema, child);
} else if (IS_SCHEMA(child, "sequence")) {
@@ -3513,7 +4223,7 @@ xmlSchemaParseSequence(xmlSchemaParserCtxtPtr ctxt, xmlSchemaPtr schema,
subtype = (xmlSchemaTypePtr)
xmlSchemaParseElement(ctxt, schema, child, 0);
} else if (IS_SCHEMA(child, "group")) {
- subtype = xmlSchemaParseGroup(ctxt, schema, child);
+ subtype = xmlSchemaParseGroup(ctxt, schema, child, 0);
} else if (IS_SCHEMA(child, "any")) {
subtype = xmlSchemaParseAny(ctxt, schema, child);
} else if (IS_SCHEMA(child, "choice")) {
@@ -3548,7 +4258,6 @@ xmlSchemaParseSequence(xmlSchemaParserCtxtPtr ctxt, xmlSchemaPtr schema,
* @ctxt: a schema validation context
* @schema: the schema being built
* @node: a subtree containing XML Schema informations
- * @simple: is that part of a simple type.
*
* parse a XML schema Restriction definition
* *WARNING* this interface is highly subject to change
@@ -3557,10 +4266,9 @@ xmlSchemaParseSequence(xmlSchemaParserCtxtPtr ctxt, xmlSchemaPtr schema,
*/
static xmlSchemaTypePtr
xmlSchemaParseRestriction(xmlSchemaParserCtxtPtr ctxt, xmlSchemaPtr schema,
- xmlNodePtr node, int simple)
+ xmlNodePtr node)
{
- xmlSchemaTypePtr type, subtype;
- xmlSchemaFacetPtr facet, lastfacet = NULL;
+ xmlSchemaTypePtr type, subtype;
xmlNodePtr child = NULL;
xmlChar name[30];
const xmlChar *oldcontainer;
@@ -3574,14 +4282,16 @@ xmlSchemaParseRestriction(xmlSchemaParserCtxtPtr ctxt, xmlSchemaPtr schema,
type = xmlSchemaAddType(ctxt, schema, name, NULL);
if (type == NULL)
return (NULL);
- type->node = node;
type->type = XML_SCHEMA_TYPE_RESTRICTION;
+ type->node = node;
type->id = xmlSchemaGetProp(ctxt, node, "id");
type->base = xmlGetQNameProp(ctxt, node, "base", &(type->baseNs));
- if ((!simple) && (type->base == NULL)) {
+ if ((type->base == NULL) &&
+ (ctxt->parentItem->type == XML_SCHEMA_TYPE_COMPLEX_CONTENT)) {
xmlSchemaPErr2(ctxt, node, child,
- XML_SCHEMAP_RESTRICTION_NONAME_NOREF,
- "Restriction %s has no base\n", type->name, NULL);
+ XML_SCHEMAP_RESTRICTION_NONAME_NOREF,
+ "Restriction \"%s\" must have a \"base\" attribute.\n",
+ type->name, NULL);
}
ctxt->container = name;
@@ -3592,68 +4302,107 @@ xmlSchemaParseRestriction(xmlSchemaParserCtxtPtr ctxt, xmlSchemaPtr schema,
}
subtype = NULL;
- if (IS_SCHEMA(child, "all")) {
- subtype = (xmlSchemaTypePtr)
- xmlSchemaParseAll(ctxt, schema, child);
- child = child->next;
- type->subtypes = subtype;
- } else if (IS_SCHEMA(child, "choice")) {
- subtype = xmlSchemaParseChoice(ctxt, schema, child);
- child = child->next;
- type->subtypes = subtype;
- } else if (IS_SCHEMA(child, "sequence")) {
- subtype = (xmlSchemaTypePtr)
- xmlSchemaParseSequence(ctxt, schema, child);
- child = child->next;
- type->subtypes = subtype;
- } else if (IS_SCHEMA(child, "group")) {
- subtype = (xmlSchemaTypePtr)
- xmlSchemaParseGroup(ctxt, schema, child);
- child = child->next;
- type->subtypes = subtype;
- } else {
- if (IS_SCHEMA(child, "simpleType")) {
- subtype = (xmlSchemaTypePtr)
- xmlSchemaParseSimpleType(ctxt, schema, child);
- child = child->next;
- type->baseType = subtype;
- }
- /*
- * Facets
- */
- while ((IS_SCHEMA(child, "minInclusive")) ||
- (IS_SCHEMA(child, "minExclusive")) ||
- (IS_SCHEMA(child, "maxInclusive")) ||
- (IS_SCHEMA(child, "maxExclusive")) ||
- (IS_SCHEMA(child, "totalDigits")) ||
- (IS_SCHEMA(child, "fractionDigits")) ||
- (IS_SCHEMA(child, "pattern")) ||
- (IS_SCHEMA(child, "enumeration")) ||
- (IS_SCHEMA(child, "whiteSpace")) ||
- (IS_SCHEMA(child, "length")) ||
- (IS_SCHEMA(child, "maxLength")) ||
- (IS_SCHEMA(child, "minLength"))) {
- facet = xmlSchemaParseFacet(ctxt, schema, child);
- if (facet != NULL) {
- if (lastfacet == NULL) {
- type->facets = facet;
- lastfacet = facet;
- } else {
- lastfacet->next = facet;
- lastfacet = facet;
- }
- lastfacet->next = NULL;
- }
- child = child->next;
- }
- }
- child = xmlSchemaParseAttrDecls(ctxt, schema, child, type);
+ if (ctxt->parentItem->type == XML_SCHEMA_TYPE_COMPLEX_CONTENT) {
+ if (IS_SCHEMA(child, "all")) {
+ subtype = (xmlSchemaTypePtr)
+ xmlSchemaParseAll(ctxt, schema, child);
+ child = child->next;
+ type->subtypes = subtype;
+ } else if (IS_SCHEMA(child, "choice")) {
+ subtype = xmlSchemaParseChoice(ctxt, schema, child);
+ child = child->next;
+ type->subtypes = subtype;
+ } else if (IS_SCHEMA(child, "sequence")) {
+ subtype = (xmlSchemaTypePtr)
+ xmlSchemaParseSequence(ctxt, schema, child);
+ child = child->next;
+ type->subtypes = subtype;
+ } else if (IS_SCHEMA(child, "group")) {
+ subtype = (xmlSchemaTypePtr)
+ xmlSchemaParseGroup(ctxt, schema, child, 0);
+ child = child->next;
+ type->subtypes = subtype;
+ }
+ } else if ((ctxt->ctxtType->type == XML_SCHEMA_TYPE_SIMPLE) ||
+ (ctxt->parentItem->type == XML_SCHEMA_TYPE_SIMPLE_CONTENT)) {
+ xmlSchemaFacetPtr facet, lastfacet = NULL;
+
+ if (IS_SCHEMA(child, "simpleType")) {
+ subtype = (xmlSchemaTypePtr)
+ xmlSchemaParseSimpleType(ctxt, schema, child, 0);
+ /*
+ * For the simple type this serves as the base type.
+ */
+ type->baseType = subtype;
+ /*
+ * For the complex type this serves as information for the
+ * definition of the content type.
+ * Additionally this is a hack for the simple type, to save
+ * the information that a local simple type was defined; thus
+ * allowing to check: src-restriction-base-or-simpleType.
+ */
+ type->subtypes = subtype;
+ child = child->next;
+ }
+ /*
+ * Add the facets to the parent simpleType/complexType.
+ */
+ while ((IS_SCHEMA(child, "minInclusive")) ||
+ (IS_SCHEMA(child, "minExclusive")) ||
+ (IS_SCHEMA(child, "maxInclusive")) ||
+ (IS_SCHEMA(child, "maxExclusive")) ||
+ (IS_SCHEMA(child, "totalDigits")) ||
+ (IS_SCHEMA(child, "fractionDigits")) ||
+ (IS_SCHEMA(child, "pattern")) ||
+ (IS_SCHEMA(child, "enumeration")) ||
+ (IS_SCHEMA(child, "whiteSpace")) ||
+ (IS_SCHEMA(child, "length")) ||
+ (IS_SCHEMA(child, "maxLength")) ||
+ (IS_SCHEMA(child, "minLength"))) {
+ facet = xmlSchemaParseFacet(ctxt, schema, child);
+ if (facet != NULL) {
+ if (lastfacet == NULL)
+ ctxt->ctxtType->facets = facet;
+ else
+ lastfacet->next = facet;
+ lastfacet = facet;
+ lastfacet->next = NULL;
+ }
+ child = child->next;
+ }
+ /*
+ * Create links for derivation and validation.
+ */
+ if (lastfacet != NULL) {
+ xmlSchemaFacetLinkPtr facetLink, lastFacetLink = NULL;
+
+ facet = ctxt->ctxtType->facets;
+ do {
+ facetLink = (xmlSchemaFacetLinkPtr) xmlMalloc(sizeof(xmlSchemaFacetLink));
+ if (facetLink == NULL) {
+ xmlSchemaPErrMemory(ctxt, "allocation a facet link", NULL);
+ xmlFree(facetLink);
+ return (NULL);
+ }
+ facetLink->facet = facet;
+ facetLink->next = NULL;
+ if (lastFacetLink == NULL)
+ ctxt->ctxtType->facetSet = facetLink;
+ else
+ lastFacetLink->next = facetLink;
+ lastFacetLink = facetLink;
+ facet = facet->next;
+ } while (facet != NULL);
+ }
+ }
+ if (ctxt->ctxtType->type == XML_SCHEMA_TYPE_COMPLEX)
+ child = xmlSchemaParseAttrDecls(ctxt, schema, child, type);
if (child != NULL) {
- xmlSchemaPErr2(ctxt, node, child,
- XML_SCHEMAP_UNKNOWN_RESTRICTION_CHILD,
- "Restriction %s has unexpected content\n",
- type->name, NULL);
- }
+ xmlSchemaPErr2(ctxt, node, child,
+ XML_SCHEMAP_UNKNOWN_RESTRICTION_CHILD,
+ "Restriction \"%s\" has unexpected content.\n",
+ type->name, NULL);
+ }
ctxt->container = oldcontainer;
return (type);
}
@@ -3684,11 +4433,11 @@ xmlSchemaParseExtension(xmlSchemaParserCtxtPtr ctxt, xmlSchemaPtr schema,
oldcontainer = ctxt->container;
snprintf((char *) name, 30, "extension %d", ctxt->counter++ + 1);
- type = xmlSchemaAddType(ctxt, schema, name, NULL);
+ type = xmlSchemaAddType(ctxt, schema, name, NULL);
if (type == NULL)
return (NULL);
- type->node = node;
type->type = XML_SCHEMA_TYPE_EXTENSION;
+ type->node = node;
type->id = xmlSchemaGetProp(ctxt, node, "id");
ctxt->container = name;
@@ -3714,7 +4463,7 @@ xmlSchemaParseExtension(xmlSchemaParserCtxtPtr ctxt, xmlSchemaPtr schema,
subtype = xmlSchemaParseSequence(ctxt, schema, child);
child = child->next;
} else if (IS_SCHEMA(child, "group")) {
- subtype = xmlSchemaParseGroup(ctxt, schema, child);
+ subtype = xmlSchemaParseGroup(ctxt, schema, child, 0);
child = child->next;
}
if (subtype != NULL)
@@ -3752,13 +4501,12 @@ xmlSchemaParseSimpleContent(xmlSchemaParserCtxtPtr ctxt,
if ((ctxt == NULL) || (schema == NULL) || (node == NULL))
return (NULL);
-
snprintf((char *) name, 30, "simpleContent %d", ctxt->counter++ + 1);
- type = xmlSchemaAddType(ctxt, schema, name, NULL);
+ type = xmlSchemaAddType(ctxt, schema, name, NULL);
if (type == NULL)
return (NULL);
- type->node = node;
type->type = XML_SCHEMA_TYPE_SIMPLE_CONTENT;
+ type->node = node;
type->id = xmlSchemaGetProp(ctxt, node, "id");
child = node->children;
@@ -3766,10 +4514,11 @@ xmlSchemaParseSimpleContent(xmlSchemaParserCtxtPtr ctxt,
type->annot = xmlSchemaParseAnnotation(ctxt, schema, child);
child = child->next;
}
- subtype = NULL;
+ ctxt->parentItem = type;
+ subtype = NULL;
if (IS_SCHEMA(child, "restriction")) {
subtype = (xmlSchemaTypePtr)
- xmlSchemaParseRestriction(ctxt, schema, child, 0);
+ xmlSchemaParseRestriction(ctxt, schema, child);
child = child->next;
} else if (IS_SCHEMA(child, "extension")) {
subtype = (xmlSchemaTypePtr)
@@ -3808,13 +4557,12 @@ xmlSchemaParseComplexContent(xmlSchemaParserCtxtPtr ctxt,
if ((ctxt == NULL) || (schema == NULL) || (node == NULL))
return (NULL);
-
snprintf((char *) name, 30, "complexContent %d", ctxt->counter++ + 1);
type = xmlSchemaAddType(ctxt, schema, name, NULL);
if (type == NULL)
return (NULL);
- type->node = node;
type->type = XML_SCHEMA_TYPE_COMPLEX_CONTENT;
+ type->node = node;
type->id = xmlSchemaGetProp(ctxt, node, "id");
child = node->children;
@@ -3822,10 +4570,11 @@ xmlSchemaParseComplexContent(xmlSchemaParserCtxtPtr ctxt,
type->annot = xmlSchemaParseAnnotation(ctxt, schema, child);
child = child->next;
}
+ ctxt->parentItem = type;
subtype = NULL;
if (IS_SCHEMA(child, "restriction")) {
subtype = (xmlSchemaTypePtr)
- xmlSchemaParseRestriction(ctxt, schema, child, 0);
+ xmlSchemaParseRestriction(ctxt, schema, child);
child = child->next;
} else if (IS_SCHEMA(child, "extension")) {
subtype = (xmlSchemaTypePtr)
@@ -3855,9 +4604,9 @@ xmlSchemaParseComplexContent(xmlSchemaParserCtxtPtr ctxt,
*/
static xmlSchemaTypePtr
xmlSchemaParseComplexType(xmlSchemaParserCtxtPtr ctxt, xmlSchemaPtr schema,
- xmlNodePtr node)
+ xmlNodePtr node, int topLevel)
{
- xmlSchemaTypePtr type, subtype;
+ xmlSchemaTypePtr type, subtype, ctxtType;
xmlNodePtr child = NULL;
const xmlChar *name;
const xmlChar *oldcontainer;
@@ -3866,10 +4615,11 @@ xmlSchemaParseComplexType(xmlSchemaParserCtxtPtr ctxt, xmlSchemaPtr schema,
if ((ctxt == NULL) || (schema == NULL) || (node == NULL))
return (NULL);
+ ctxtType = ctxt->ctxtType;
+
oldcontainer = ctxt->container;
name = xmlSchemaGetProp(ctxt, node, "name");
if (name == NULL) {
-
snprintf(buf, 99, "complexType %d", ctxt->counter++ + 1);
name = (const xmlChar *)buf;
type = xmlSchemaAddType(ctxt, schema, name, NULL);
@@ -3881,12 +4631,13 @@ xmlSchemaParseComplexType(xmlSchemaParserCtxtPtr ctxt, xmlSchemaPtr schema,
if (type == NULL) {
return (NULL);
}
-
if (xmlGetBooleanProp(ctxt, node, "mixed", 0))
type->flags |= XML_SCHEMAS_TYPE_MIXED;
type->node = node;
type->type = XML_SCHEMA_TYPE_COMPLEX;
+ if (topLevel)
+ type->flags |= XML_SCHEMAS_TYPE_GLOBAL;
type->id = xmlSchemaGetProp(ctxt, node, "id");
ctxt->container = name;
@@ -3895,6 +4646,7 @@ xmlSchemaParseComplexType(xmlSchemaParserCtxtPtr ctxt, xmlSchemaPtr schema,
type->annot = xmlSchemaParseAnnotation(ctxt, schema, child);
child = child->next;
}
+ ctxt->ctxtType = type;
if (IS_SCHEMA(child, "simpleContent")) {
/* 3.4.3 : 2.2
* Specifying mixed='true' when the <simpleContent>
@@ -3920,7 +4672,7 @@ xmlSchemaParseComplexType(xmlSchemaParserCtxtPtr ctxt, xmlSchemaPtr schema,
subtype = xmlSchemaParseSequence(ctxt, schema, child);
child = child->next;
} else if (IS_SCHEMA(child, "group")) {
- subtype = xmlSchemaParseGroup(ctxt, schema, child);
+ subtype = xmlSchemaParseGroup(ctxt, schema, child, 0);
child = child->next;
}
if (subtype != NULL)
@@ -3933,7 +4685,10 @@ xmlSchemaParseComplexType(xmlSchemaParserCtxtPtr ctxt, xmlSchemaPtr schema,
"ComplexType %s has unexpected content\n",
type->name, NULL);
}
+ if (type->attributeWildcard != NULL)
+ type->flags |= XML_SCHEMAS_TYPE_OWNED_ATTR_WILDCARD;
ctxt->container = oldcontainer;
+ ctxt->ctxtType = ctxtType;
return (type);
}
@@ -3984,7 +4739,10 @@ xmlSchemaParseSchema(xmlSchemaParserCtxtPtr ctxt, xmlNodePtr node)
val, NULL);
}
} else {
- schema->flags |= XML_SCHEMAS_QUALIF_ELEM;
+ /* Removed, since the default value for elementFormDefault
+ * is "unqualified".
+ */
+ /* schema->flags |= XML_SCHEMAS_QUALIF_ELEM; */
}
val = xmlSchemaGetProp(ctxt, node, "attributeFormDefault");
if (val != NULL) {
@@ -3998,6 +4756,51 @@ xmlSchemaParseSchema(xmlSchemaParserCtxtPtr ctxt, xmlNodePtr node)
}
}
+ val = xmlSchemaGetProp(ctxt, node, "finalDefault");
+ if (val != NULL) {
+ if (xmlStrEqual(val, BAD_CAST "#all")) {
+ schema->flags |= XML_SCHEMAS_FINAL_DEFAULT_EXTENSION;
+ schema->flags |= XML_SCHEMAS_FINAL_DEFAULT_RESTRICTION;
+ schema->flags |= XML_SCHEMAS_FINAL_DEFAULT_LIST;
+ schema->flags |= XML_SCHEMAS_FINAL_DEFAULT_UNION;
+ } else {
+ const xmlChar *end, *cur = val;
+ xmlChar *item;
+
+ do {
+ while (IS_BLANK_CH(*cur))
+ cur++;
+ end = cur;
+ while ((*end != 0) && (!(IS_BLANK_CH(*end))))
+ end++;
+ if (end == cur)
+ break;
+ item = xmlStrndup(cur, end - cur);
+ if (xmlStrEqual(item, BAD_CAST "extension")) {
+ if ((schema->flags & XML_SCHEMAS_FINAL_DEFAULT_EXTENSION) == 0)
+ schema->flags |= XML_SCHEMAS_FINAL_DEFAULT_EXTENSION;
+ } else if (xmlStrEqual(item, BAD_CAST "restriction")) {
+ if ((schema->flags & XML_SCHEMAS_FINAL_DEFAULT_RESTRICTION) == 0)
+ schema->flags |= XML_SCHEMAS_FINAL_DEFAULT_RESTRICTION;
+ } else if (xmlStrEqual(item, BAD_CAST "list")) {
+ if ((schema->flags & XML_SCHEMAS_FINAL_DEFAULT_LIST) == 0)
+ schema->flags |= XML_SCHEMAS_FINAL_DEFAULT_LIST;
+ } else if (xmlStrEqual(item, BAD_CAST "union")) {
+ if ((schema->flags & XML_SCHEMAS_FINAL_DEFAULT_UNION) == 0)
+ schema->flags |= XML_SCHEMAS_FINAL_DEFAULT_UNION;
+ } else {
+ xmlSchemaPErr(ctxt, node,
+ XML_SCHEMAS_ERR_INTERNAL,
+ "Invalid value for the attribute \"finalDefault\".\n",
+ NULL, NULL);
+ }
+ if (item != NULL)
+ xmlFree(item);
+ cur = end;
+ } while (*cur != 0);
+ }
+ }
+
xmlSchemaParseSchemaTopLevel(ctxt, schema, node->children);
} else {
xmlDocPtr doc;
@@ -4027,7 +4830,6 @@ xmlSchemaParseSchema(xmlSchemaParserCtxtPtr ctxt, xmlNodePtr node)
xmlGenericError(xmlGenericErrorContext,
"xmlSchemaParse() failed\n");
#endif
-
return (schema);
}
@@ -4182,6 +4984,7 @@ xmlSchemaBuildAContentModel(xmlSchemaTypePtr type,
case XML_SCHEMA_TYPE_ANY:
/* TODO : handle the namespace too */
/* TODO : make that a specific transition type */
+ /* Daniel says: use xmlAutomataNewTransition2 */
TODO ctxt->state =
xmlAutomataNewTransition(ctxt->am, ctxt->state, NULL,
BAD_CAST "*", NULL);
@@ -4464,7 +5267,11 @@ xmlSchemaBuildAContentModel(xmlSchemaTypePtr type,
case XML_SCHEMA_TYPE_ALL:{
xmlAutomataStatePtr start;
xmlSchemaTypePtr subtypes;
- xmlSchemaElementPtr elem = (xmlSchemaElementPtr) type;
+ /*
+ * Changed, since type in not an xmlSchemaElement here.
+ */
+ /* xmlSchemaElementPtr elem = (xmlSchemaElementPtr) type; */
+ xmlSchemaElementPtr elem;
int lax;
subtypes = type->subtypes;
@@ -4531,7 +5338,7 @@ xmlSchemaBuildAContentModel(xmlSchemaTypePtr type,
if (type->subtypes == NULL) {
xmlSchemaTypePtr rgroup;
if (type->ref != NULL) {
- rgroup = xmlHashLookup2(ctxt->schema->groupDecl, type->ref,
+ rgroup = xmlSchemaGetGroup(ctxt->schema, type->ref,
type->refNs);
if (rgroup == NULL) {
xmlSchemaPErr(ctxt, type->node,
@@ -4634,22 +5441,26 @@ xmlSchemaRefFixupCallback(xmlSchemaElementPtr elem,
{
if ((ctxt == NULL) || (elem == NULL))
return;
+
if (elem->ref != NULL) {
xmlSchemaElementPtr elemDecl;
if (elem->subtypes != NULL) {
xmlSchemaPErr(ctxt, elem->node,
XML_SCHEMAP_INVALID_REF_AND_SUBTYPE,
- "Schemas: element %s have both ref and subtype\n",
+ "Schemas: element %s has both ref and subtype\n",
name, NULL);
return;
}
elemDecl = xmlSchemaGetElem(ctxt->schema, elem->ref, elem->refNs, 0);
if (elemDecl == NULL) {
- xmlSchemaPErr(ctxt, elem->node, XML_SCHEMAP_UNKNOWN_REF,
- "Schemas: element %s ref to %s not found\n",
- name, elem->ref);
+ xmlSchemaPErr(ctxt, elem->node,
+ XML_SCHEMAP_SRC_RESOLVE,
+ "Element \"%s\": the QName \"%s\" of the attribute "
+ "\"ref\" does not resolve to a schema "
+ "component.\n",
+ name, elem->ref);
return;
}
elem->refDecl = elemDecl;
@@ -4658,7 +5469,7 @@ xmlSchemaRefFixupCallback(xmlSchemaElementPtr elem,
if (elem->subtypes != NULL) {
xmlSchemaPErr(ctxt, elem->node, XML_SCHEMAP_TYPE_AND_SUBTYPE,
- "Schemas: element %s have both type and subtype\n",
+ "Schemas: element %s has both type and subtype\n",
name, NULL);
return;
}
@@ -4666,9 +5477,11 @@ xmlSchemaRefFixupCallback(xmlSchemaElementPtr elem,
elem->namedTypeNs);
if (typeDecl == NULL) {
- xmlSchemaPErr(ctxt, elem->node, XML_SCHEMAP_UNKNOWN_TYPE,
- "Schemas: element %s type %s not found\n", name,
- elem->namedType);
+ xmlSchemaPErr(ctxt, elem->node,
+ XML_SCHEMAP_SRC_RESOLVE,
+ "Element \"%s\": the QName \"%s\" of the attribute "
+ "\"type\" does not resolve to a schema "
+ "component.\n", name, elem->namedType);
return;
}
elem->subtypes = typeDecl;
@@ -4684,29 +5497,38 @@ xmlSchemaRefFixupCallback(xmlSchemaElementPtr elem,
*/
static void
xmlSchemaParseListRefFixup(xmlSchemaTypePtr type, xmlSchemaParserCtxtPtr ctxt)
-{
- const xmlChar *itemType, *namespace;
- xmlSchemaTypePtr subtype;
-
- /* Handle the "itemType" attribute. */
- itemType = xmlGetQNameProp(ctxt, type->node, "itemType", &namespace);
- if (itemType != NULL) {
- /* Do not allow more that one item type. */
- if (type->subtypes != NULL) {
- xmlSchemaPErr(ctxt, type->node,
- XML_SCHEMAP_SUPERNUMEROUS_LIST_ITEM_TYPE,
- "List %s has more than one item type defined\n",
- type->name, NULL);
- }
- subtype = xmlSchemaGetType(ctxt->schema, itemType, namespace);
- if (subtype == NULL) {
+{
+ /*
+ * src-list-itemType-or-simpleType
+ * Either the itemType [attribute] or the <simpleType> [child] of
+ * the <list> element must be present, but not both.
+ */
+ if (((type->base == NULL) &&
+ (type->subtypes == NULL)) ||
+ ((type->base != NULL) &&
+ (type->subtypes != NULL))) {
+ /*
+ * src-restriction-base-or-simpleType
+ * Either the base [attribute] or the simpleType [child] of the
+ * <restriction> element must be present, but not both.
+ */
+ xmlSchemaPErr(ctxt, type->node,
+ XML_SCHEMAP_SRC_LIST_ITEMTYPE_OR_SIMPLETYPE,
+ "List \"%s\": "
+ "Either the \"base\" attribute or the <simpleType> child "
+ "must be present, but not both.\n",
+ type->name, NULL);
+ } else if (type->base!= NULL) {
+ type->subtypes = xmlSchemaGetType(ctxt->schema, type->base, type->baseNs);
+ if (type->subtypes == NULL) {
xmlSchemaPErr(ctxt, type->node, XML_SCHEMAP_UNKNOWN_TYPE,
- "List %s references an unknown item type: %s\n",
- type->name, xmlSchemaGetProp(ctxt, type->node,
- "itemType"));
- } else
- type->subtypes = subtype;
- }
+ "List \"%s\" references an unknown item type: \"%s\"\n",
+ type->name, type->base);
+ }
+ }
+ if ((type->subtypes != NULL) &&
+ (type->subtypes->contentType == XML_SCHEMA_CONTENT_UNKNOWN))
+ xmlSchemaTypeFixup(type->subtypes, ctxt, NULL);
}
/**
@@ -4714,60 +5536,2303 @@ xmlSchemaParseListRefFixup(xmlSchemaTypePtr type, xmlSchemaParserCtxtPtr ctxt)
* @typeDecl: the schema type definition
* @ctxt: the schema parser context
*
- * Checks the memberTypes references of the union type.
+ * Checks and builds the memberTypes of the union type.
+ * Returns -1 in case of an internal error, 0 otherwise.
*/
-static void
+static int
xmlSchemaParseUnionRefCheck(xmlSchemaTypePtr type,
xmlSchemaParserCtxtPtr ctxt)
{
const xmlChar *cur, *end, *prefix, *ncName, *namespace;
xmlChar *tmp;
- xmlSchemaTypePtr subtype;
+ xmlSchemaTypeLinkPtr link, lastLink = NULL, prevLink, subLink, newLink;
+ xmlSchemaTypePtr memberType, ctxtType;
xmlNsPtr ns;
int len;
- if ((type->type != XML_SCHEMA_TYPE_UNION) || (type->ref == NULL))
- return;
+ /* 1 If the <union> alternative is chosen, then [Definition:]
+ * define the explicit members as the type definitions ·resolved·
+ * to by the items in the ·actual value· of the memberTypes [attribute],
+ * if any, followed by the type definitions corresponding to the
+ * <simpleType>s among the [children] of <union>, if any.
+ */
- cur = type->ref;
- do {
- while (IS_BLANK_CH(*cur))
- cur++;
- end = cur;
- while ((*end != 0) && (!(IS_BLANK_CH(*end))))
- end++;
- if (end == cur)
- break;
- tmp = xmlStrndup(cur, end - cur);
- ncName = xmlSplitQName3(tmp, &len);
- if (ncName != NULL) {
- prefix = xmlDictLookup(ctxt->dict, tmp, len);
- } else {
- prefix = NULL;
- ncName = tmp;
- }
- ns = xmlSearchNs(type->node->doc, type->node, prefix);
- if (ns == NULL) {
- if (prefix != NULL) {
- xmlSchemaPErr(ctxt, type->node, XML_SCHEMAP_PREFIX_UNDEFINED,
- "Union %s: the namespace prefix of member type "
- "%s is undefined\n",
- type->name, (const xmlChar *) tmp);
- }
- namespace = NULL;
- } else {
- namespace = xmlDictLookup(ctxt->dict, ns->href, -1);
- }
- /* Lookup the referenced type */
- subtype = xmlSchemaGetType(ctxt->schema, ncName, namespace);
- if (subtype == NULL) {
- xmlSchemaPErr(ctxt, type->node, XML_SCHEMAP_UNKNOWN_MEMBER_TYPE,
- "Union %s references an unknown member type %s\n",
- type->name, (const xmlChar *) tmp);
- }
- xmlFree(tmp);
- cur = end;
- } while (*cur != 0);
+ if (type->type != XML_SCHEMA_TYPE_UNION)
+ return (-1);
+ if (ctxt->ctxtType == NULL) {
+ xmlSchemaPErr(ctxt, type->node,
+ XML_SCHEMAS_ERR_INTERNAL,
+ "Internal error: xmlSchemaParseUnionRefCheck, no parent type "
+ "available", NULL, NULL);
+ return (-1);
+ }
+ /*
+ * src-union-memberTypes-or-simpleTypes
+ * Either the memberTypes [attribute] of the <union> element must
+ * be non-empty or there must be at least one simpleType [child].
+ */
+ if ((type->base == NULL) &&
+ (type->subtypes == NULL)) {
+ /*
+ * src-restriction-base-or-simpleType
+ * Either the base [attribute] or the simpleType [child] of the
+ * <restriction> element must be present, but not both.
+ */
+ xmlSchemaPErr(ctxt, type->node,
+ XML_SCHEMAP_SRC_UNION_MEMBERTYPES_OR_SIMPLETYPES,
+ "Union \"%s\": "
+ "Either the \"memberTypes\" attribute must be non-empty "
+ "or there must be at least one <simpleType> child.\n",
+ type->name, NULL);
+ }
+
+ ctxtType = ctxt->ctxtType;
+ if (type->base != NULL) {
+ cur = type->base;
+ do {
+ while (IS_BLANK_CH(*cur))
+ cur++;
+ end = cur;
+ while ((*end != 0) && (!(IS_BLANK_CH(*end))))
+ end++;
+ if (end == cur)
+ break;
+ tmp = xmlStrndup(cur, end - cur);
+ ncName = xmlSplitQName3(tmp, &len);
+ if (ncName != NULL) {
+ prefix = xmlDictLookup(ctxt->dict, tmp, len);
+ } else {
+ prefix = NULL;
+ ncName = tmp;
+ }
+ ns = xmlSearchNs(type->node->doc, type->node, prefix);
+ if (ns == NULL) {
+ if (prefix != NULL) {
+ xmlSchemaPErr(ctxt, type->node, XML_SCHEMAP_PREFIX_UNDEFINED,
+ "Union \"%s\": the namespace prefix of member type "
+ "\"%s\" is undefined\n",
+ type->name, (const xmlChar *) tmp);
+ }
+ namespace = NULL;
+ } else {
+ namespace = xmlDictLookup(ctxt->dict, ns->href, -1);
+ }
+ memberType = xmlSchemaGetType(ctxt->schema, ncName, namespace);
+ if (memberType == NULL) {
+ xmlSchemaPErr(ctxt, type->node, XML_SCHEMAP_UNKNOWN_MEMBER_TYPE,
+ "Union \"%s\" references an unknown member type \"%s\".\n",
+ type->name, (const xmlChar *) tmp);
+ } else {
+ if (memberType->contentType == XML_SCHEMA_CONTENT_UNKNOWN)
+ xmlSchemaTypeFixup(memberType, ctxt, NULL);
+ link = (xmlSchemaTypeLinkPtr) xmlMalloc(sizeof(xmlSchemaTypeLink));
+ if (link == NULL) {
+ xmlSchemaPErrMemory(ctxt, "allocating a type link", NULL);
+ return (-1);
+ }
+ link->type = memberType;
+ link->next = NULL;
+ if (lastLink == NULL)
+ ctxtType->memberTypes = link;
+ else
+ lastLink->next = link;
+ lastLink = link;
+ }
+ xmlFree(tmp);
+ cur = end;
+ } while (*cur != 0);
+ }
+ /*
+ * Add local simple types,
+ */
+ memberType = type->subtypes;
+ while (memberType != NULL) {
+ if (memberType->contentType == XML_SCHEMA_CONTENT_UNKNOWN)
+ xmlSchemaTypeFixup(memberType, ctxt, NULL);
+ link = (xmlSchemaTypeLinkPtr) xmlMalloc(sizeof(xmlSchemaTypeLink));
+ if (link == NULL) {
+ xmlSchemaPErrMemory(ctxt, "allocating a type link", NULL);
+ return (-1);
+ }
+ link->type = memberType;
+ link->next = NULL;
+ if (lastLink == NULL)
+ ctxtType->memberTypes = link;
+ else
+ lastLink->next = link;
+ lastLink = link;
+ memberType = memberType->next;
+ }
+ /*
+ * The actual value is then formed by replacing any union type
+ * definition in the ·explicit members· with the members of their
+ * {member type definitions}, in order.
+ */
+ link = ctxtType->memberTypes;
+ while (link != NULL) {
+ if (link->type->flags & XML_SCHEMAS_TYPE_VARIETY_UNION) {
+ subLink = link->type->memberTypes;
+ if (subLink != NULL) {
+ link->type = subLink->type;
+ if (subLink->next != NULL) {
+ lastLink = link->next;
+ subLink = subLink->next;
+ prevLink = link;
+ while (subLink != NULL) {
+ newLink = (xmlSchemaTypeLinkPtr)
+ xmlMalloc(sizeof(xmlSchemaTypeLink));
+ if (newLink == NULL) {
+ xmlSchemaPErrMemory(ctxt, "allocating a type link",
+ NULL);
+ return (-1);
+ }
+ newLink->type = memberType;
+ prevLink->next = newLink;
+ prevLink = newLink;
+ newLink->next = lastLink;
+
+ subLink = subLink->next;
+ }
+ }
+ }
+ }
+ link = link->next;
+ }
+
+ return (0);
+}
+
+/**
+ * xmlSchemaGetOnymousTypeName:
+ * @attr: the attribute declaration/use
+ *
+ * Returns the name of the attribute; if the attribute
+ * is a reference, the name of the referenced global type will be returned.
+ */
+static const xmlChar *
+xmlSchemaGetOnymousAttrName(xmlSchemaAttributePtr attr)
+{
+ if (attr->ref != NULL)
+ return(attr->ref);
+ else
+ return(attr->name);
+}
+
+/**
+ * xmlSchemaGetOnymousTargetNsURI:
+ * @type: the type (element or attribute)
+ *
+ * Returns the target namespace URI of the type; if the type is a reference,
+ * the target namespace of the referenced type will be returned.
+ */
+static const xmlChar *
+xmlSchemaGetOnymousTargetNsURI(xmlSchemaTypePtr type)
+{
+ if (type->type == XML_SCHEMA_TYPE_ELEMENT) {
+ if (type->ref != NULL)
+ return(((xmlSchemaElementPtr)((xmlSchemaElementPtr)
+ type)->subtypes)->targetNamespace);
+ else
+ return(((xmlSchemaElementPtr) type)->targetNamespace);
+ } else if (type->type == XML_SCHEMA_TYPE_ATTRIBUTE) {
+ if (type->ref != NULL)
+ return(((xmlSchemaAttributePtr)((xmlSchemaAttributePtr)
+ type)->subtypes)->targetNamespace);
+ else
+ return(((xmlSchemaAttributePtr) type)->targetNamespace);
+ } else
+ return (NULL);
+}
+
+/**
+ * xmlSchemaIsDerivedFromBuiltInType:
+ * @ctxt: the schema parser context
+ * @type: the type definition
+ * @valType: the value type
+ *
+ *
+ * Returns 1 if the type has the given value type, or
+ * is derived from such a type.
+ */
+static int
+xmlSchemaIsDerivedFromBuiltInType(xmlSchemaParserCtxtPtr ctxt,
+ xmlSchemaTypePtr type, int valType)
+{
+ /* TODO: Check if this works in every case. */
+ if ((type->type == XML_SCHEMA_TYPE_BASIC) &&
+ (type->contentType == XML_SCHEMA_CONTENT_BASIC)) {
+ if (type->builtInType == valType)
+ return(1);
+ } else if (type->type == XML_SCHEMA_TYPE_ATTRIBUTE) {
+ if (((xmlSchemaAttributePtr) type)->subtypes != NULL)
+ return(xmlSchemaIsDerivedFromBuiltInType(ctxt,
+ ((xmlSchemaAttributePtr) type)->subtypes, valType));
+ } else if ((type->type == XML_SCHEMA_TYPE_RESTRICTION) ||
+ (type->type == XML_SCHEMA_TYPE_EXTENSION)) {
+ if (type->baseType != NULL)
+ return(xmlSchemaIsDerivedFromBuiltInType(ctxt, type->baseType,
+ valType));
+ } else if ((type->subtypes != NULL) &&
+ ((type->subtypes->type == XML_SCHEMA_TYPE_COMPLEX) ||
+ (type->subtypes->type == XML_SCHEMA_TYPE_COMPLEX_CONTENT) ||
+ (type->subtypes->type == XML_SCHEMA_TYPE_SIMPLE) ||
+ (type->subtypes->type == XML_SCHEMA_TYPE_SIMPLE_CONTENT))) {
+ return(xmlSchemaIsDerivedFromBuiltInType(ctxt, type->subtypes,
+ valType));
+ }
+
+ return (0);
+}
+
+/**
+ * xmlSchemaIsDerivedFromBuiltInType:
+ * @type: the simpleType definition
+ *
+ * Returns the primitive type of the given type or
+ * NULL in case of error.
+ */
+static xmlSchemaTypePtr
+xmlSchemaGetPrimitiveType(xmlSchemaTypePtr type)
+{
+ while (type != NULL) {
+ if (type->flags & XML_SCHEMAS_TYPE_BUILTIN_PRIMITIVE)
+ return (type);
+ type = type->baseType;
+ }
+
+ return (NULL);
+}
+
+
+/**
+ * xmlSchemaBuildAttributeUsesOwned:
+ * @ctxt: the schema parser context
+ * @type: the complex type definition
+ * @cur: the attribute declaration list
+ * @lastUse: the top of the attribute use list
+ *
+ * Builds the attribute uses list on the given complex type.
+ * This one is supposed to be called by
+ * xmlSchemaBuildAttributeValidation only.
+ */
+static int
+xmlSchemaBuildAttributeUsesOwned(xmlSchemaParserCtxtPtr ctxt,
+ xmlSchemaAttributePtr cur,
+ xmlSchemaAttributeLinkPtr *uses,
+ xmlSchemaAttributeLinkPtr *lastUse)
+{
+ xmlSchemaAttributeLinkPtr tmp;
+ while (cur != NULL) {
+ if (cur->type == XML_SCHEMA_TYPE_ATTRIBUTEGROUP) {
+ /*
+ * W3C: "2 The {attribute uses} of the attribute groups ·resolved·
+ * to by the ·actual value·s of the ref [attribute] of the
+ * <attributeGroup> [children], if any."
+ */
+ if (xmlSchemaBuildAttributeUsesOwned(ctxt,
+ ((xmlSchemaAttributeGroupPtr) cur)->attributes, uses,
+ lastUse) == -1) {
+ return (-1);
+ }
+ } else {
+ /* W3C: "1 The set of attribute uses corresponding to the
+ * <attribute> [children], if any."
+ */
+ tmp = (xmlSchemaAttributeLinkPtr)
+ xmlMalloc(sizeof(xmlSchemaAttributeLink));
+ if (tmp == NULL) {
+ xmlSchemaPErrMemory(ctxt, "building attribute uses", NULL);
+ return (-1);
+ }
+ tmp->attr = cur;
+ tmp->next = NULL;
+ if (*uses == NULL)
+ *uses = tmp;
+ else
+ (*lastUse)->next = tmp;
+ *lastUse = tmp;
+ }
+ cur = cur->next;
+ }
+ return (0);
+}
+
+/**
+ * xmlSchemaCloneWildcardNsConstraints:
+ * @ctxt: the schema parser context
+ * @dest: the destination wildcard
+ * @source: the source wildcard
+ *
+ * Clones the namespace constraints of source
+ * and assignes them to dest.
+ * Returns -1 on internal error, 0 otherwise.
+ */
+static int
+xmlSchemaCloneWildcardNsConstraints(xmlSchemaParserCtxtPtr ctxt,
+ xmlSchemaWildcardPtr *dest,
+ xmlSchemaWildcardPtr source)
+{
+ xmlSchemaWildcardNsPtr cur, tmp, last;
+
+ if ((source == NULL) || (*dest == NULL))
+ return(-1);
+ (*dest)->any = source->any;
+ cur = source->nsSet;
+ last = NULL;
+ while (cur != NULL) {
+ tmp = xmlSchemaNewWildcardNsConstraint(ctxt);
+ if (tmp == NULL)
+ return(-1);
+ tmp->value = cur->value;
+ if (last == NULL)
+ (*dest)->nsSet = tmp;
+ else
+ last->next = tmp;
+ last = tmp;
+ cur = cur->next;
+ }
+ if ((*dest)->negNsSet != NULL)
+ xmlSchemaFreeWildcardNsSet((*dest)->negNsSet);
+ if (source->negNsSet != NULL) {
+ (*dest)->negNsSet = xmlSchemaNewWildcardNsConstraint(ctxt);
+ if ((*dest)->negNsSet == NULL)
+ return(-1);
+ (*dest)->negNsSet->value = source->negNsSet->value;
+ } else
+ (*dest)->negNsSet = NULL;
+ return(0);
+}
+
+/**
+ * xmlSchemaUnionWildcards:
+ * @ctxt: the schema parser context
+ * @completeWild: the first wildcard
+ * @curWild: the second wildcard
+ *
+ * Unions the namespace constraints of the given wildcards.
+ * @completeWild will hold the resulting union.
+ * Returns a positive error code on failure, -1 in case of an
+ * internal error, 0 otherwise.
+ */
+static int
+xmlSchemaUnionWildcards(xmlSchemaParserCtxtPtr ctxt,
+ xmlSchemaWildcardPtr completeWild,
+ xmlSchemaWildcardPtr curWild)
+{
+ xmlSchemaWildcardNsPtr cur, curB, tmp;
+
+ /*
+ * 1 If O1 and O2 are the same value, then that value must be the
+ * value.
+ */
+ if ((completeWild->any == curWild->any) &&
+ ((completeWild->nsSet == NULL) == (curWild->nsSet == NULL)) &&
+ ((completeWild->negNsSet == NULL) == (curWild->negNsSet == NULL))) {
+
+ if ((completeWild->negNsSet == NULL) ||
+ (completeWild->negNsSet->value == curWild->negNsSet->value)) {
+
+ if (completeWild->nsSet != NULL) {
+ int found = 0;
+
+ /*
+ * Check equality of sets.
+ */
+ cur = completeWild->nsSet;
+ while (cur != NULL) {
+ found = 0;
+ curB = curWild->nsSet;
+ while (curB != NULL) {
+ if (cur->value == curB->value) {
+ found = 1;
+ break;
+ }
+ curB = curB->next;
+ }
+ if (!found)
+ break;
+ cur = cur->next;
+ }
+ if (found)
+ return(0);
+ } else
+ return(0);
+ }
+ }
+ /*
+ * 2 If either O1 or O2 is any, then any must be the value
+ */
+ if (completeWild->any != curWild->any) {
+ if (completeWild->any == 0) {
+ completeWild->any = 1;
+ if (completeWild->nsSet != NULL) {
+ xmlSchemaFreeWildcardNsSet(completeWild->nsSet);
+ completeWild->nsSet = NULL;
+ }
+ if (completeWild->negNsSet != NULL) {
+ xmlFree(completeWild->negNsSet);
+ completeWild->negNsSet = NULL;
+ }
+ }
+ return (0);
+ }
+ /*
+ * 3 If both O1 and O2 are sets of (namespace names or ·absent·),
+ * then the union of those sets must be the value.
+ */
+ if ((completeWild->nsSet != NULL) && (curWild->nsSet != NULL)) {
+ int found;
+ xmlSchemaWildcardNsPtr start;
+
+ cur = curWild->nsSet;
+ start = completeWild->nsSet;
+ while (cur != NULL) {
+ found = 0;
+ curB = start;
+ while (curB != NULL) {
+ if (cur->value == curB->value) {
+ found = 1;
+ break;
+ }
+ curB = curB->next;
+ }
+ if (!found) {
+ tmp = xmlSchemaNewWildcardNsConstraint(ctxt);
+ if (tmp == NULL)
+ return (-1);
+ tmp->value = cur->value;
+ tmp->next = completeWild->nsSet;
+ completeWild->nsSet = tmp;
+ }
+ cur = cur->next;
+ }
+
+ return(0);
+ }
+ /*
+ * 4 If the two are negations of different values (namespace names
+ * or ·absent·), then a pair of not and ·absent· must be the value.
+ */
+ if ((completeWild->negNsSet != NULL) &&
+ (curWild->negNsSet != NULL) &&
+ (completeWild->negNsSet->value != curWild->negNsSet->value)) {
+ completeWild->negNsSet->value = NULL;
+
+ return(0);
+ }
+ /*
+ * 5.
+ */
+ if (((completeWild->negNsSet != NULL) &&
+ (completeWild->negNsSet->value != NULL) &&
+ (curWild->nsSet != NULL)) ||
+ ((curWild->negNsSet != NULL) &&
+ (curWild->negNsSet->value != NULL) &&
+ (completeWild->nsSet != NULL))) {
+
+ int nsFound, absentFound = 0;
+
+ if (completeWild->nsSet != NULL) {
+ cur = completeWild->nsSet;
+ curB = curWild->negNsSet;
+ } else {
+ cur = curWild->nsSet;
+ curB = completeWild->negNsSet;
+ }
+ nsFound = 0;
+ while (cur != NULL) {
+ if (cur->value == NULL)
+ absentFound = 1;
+ else if (cur->value == curB->value)
+ nsFound = 1;
+ if (nsFound && absentFound)
+ break;
+ cur = cur->next;
+ }
+
+ if (nsFound && absentFound) {
+ /*
+ * 5.1 If the set S includes both the negated namespace
+ * name and ·absent·, then any must be the value.
+ */
+ completeWild->any = 1;
+ if (completeWild->nsSet != NULL) {
+ xmlSchemaFreeWildcardNsSet(completeWild->nsSet);
+ completeWild->nsSet = NULL;
+ }
+ if (completeWild->negNsSet != NULL) {
+ xmlFree(completeWild->negNsSet);
+ completeWild->negNsSet = NULL;
+ }
+ } else if (nsFound && (!absentFound)) {
+ /*
+ * 5.2 If the set S includes the negated namespace name
+ * but not ·absent·, then a pair of not and ·absent· must
+ * be the value.
+ */
+ if (completeWild->nsSet != NULL) {
+ xmlSchemaFreeWildcardNsSet(completeWild->nsSet);
+ completeWild->nsSet = NULL;
+ }
+ if (completeWild->negNsSet == NULL) {
+ completeWild->negNsSet = xmlSchemaNewWildcardNsConstraint(ctxt);
+ if (completeWild->negNsSet == NULL)
+ return (-1);
+ }
+ completeWild->negNsSet->value = NULL;
+ } else if ((!nsFound) && absentFound) {
+ /*
+ * 5.3 If the set S includes ·absent· but not the negated
+ * namespace name, then the union is not expressible.
+ */
+ xmlSchemaPErr(ctxt, completeWild->node,
+ XML_SCHEMAP_UNION_NOT_EXPRESSIBLE,
+ "The union of the wilcard is not expressible\n",
+ NULL, NULL);
+ return(XML_SCHEMAP_UNION_NOT_EXPRESSIBLE);
+ } else if ((!nsFound) && (!absentFound)) {
+ /*
+ * 5.4 If the set S does not include either the negated namespace
+ * name or ·absent·, then whichever of O1 or O2 is a pair of not
+ * and a namespace name must be the value.
+ */
+ if (completeWild->negNsSet == NULL) {
+ if (completeWild->nsSet != NULL) {
+ xmlSchemaFreeWildcardNsSet(completeWild->nsSet);
+ completeWild->nsSet = NULL;
+ }
+ completeWild->negNsSet = xmlSchemaNewWildcardNsConstraint(ctxt);
+ if (completeWild->negNsSet == NULL)
+ return (-1);
+ completeWild->negNsSet->value = curWild->negNsSet->value;
+ }
+ }
+ return (0);
+ }
+ /*
+ * 6.
+ */
+ if (((completeWild->negNsSet != NULL) &&
+ (completeWild->negNsSet->value == NULL) &&
+ (curWild->nsSet != NULL)) ||
+ ((curWild->negNsSet != NULL) &&
+ (curWild->negNsSet->value == NULL) &&
+ (completeWild->nsSet != NULL))) {
+
+ if (completeWild->nsSet != NULL) {
+ cur = completeWild->nsSet;
+ } else {
+ cur = curWild->nsSet;
+ }
+ while (cur != NULL) {
+ if (cur->value == NULL) {
+ /*
+ * 6.1 If the set S includes ·absent·, then any must be the
+ * value.
+ */
+ completeWild->any = 1;
+ if (completeWild->nsSet != NULL) {
+ xmlSchemaFreeWildcardNsSet(completeWild->nsSet);
+ completeWild->nsSet = NULL;
+ }
+ if (completeWild->negNsSet != NULL) {
+ xmlFree(completeWild->negNsSet);
+ completeWild->negNsSet = NULL;
+ }
+ return (0);
+ }
+ cur = cur->next;
+ }
+ if (completeWild->negNsSet == NULL) {
+ /*
+ * 6.2 If the set S does not include ·absent·, then a pair of not
+ * and ·absent· must be the value.
+ */
+ if (completeWild->nsSet != NULL) {
+ xmlSchemaFreeWildcardNsSet(completeWild->nsSet);
+ completeWild->nsSet = NULL;
+ }
+ completeWild->negNsSet = xmlSchemaNewWildcardNsConstraint(ctxt);
+ if (completeWild->negNsSet == NULL)
+ return (-1);
+ completeWild->negNsSet->value = NULL;
+ }
+ return (0);
+ }
+ return (0);
+
+}
+
+/**
+ * xmlSchemaIntersectWildcards:
+ * @ctxt: the schema parser context
+ * @completeWild: the first wildcard
+ * @curWild: the second wildcard
+ *
+ * Intersects the namespace constraints of the given wildcards.
+ * @completeWild will hold the resulting intersection.
+ * Returns a positive error code on failure, -1 in case of an
+ * internal error, 0 otherwise.
+ */
+static int
+xmlSchemaIntersectWildcards(xmlSchemaParserCtxtPtr ctxt,
+ xmlSchemaWildcardPtr completeWild,
+ xmlSchemaWildcardPtr curWild)
+{
+ xmlSchemaWildcardNsPtr cur, curB, prev, tmp;
+
+ /*
+ * 1 If O1 and O2 are the same value, then that value must be the
+ * value.
+ */
+ if ((completeWild->any == curWild->any) &&
+ ((completeWild->nsSet == NULL) == (curWild->nsSet == NULL)) &&
+ ((completeWild->negNsSet == NULL) == (curWild->negNsSet == NULL))) {
+
+ if ((completeWild->negNsSet == NULL) ||
+ (completeWild->negNsSet->value == curWild->negNsSet->value)) {
+
+ if (completeWild->nsSet != NULL) {
+ int found = 0;
+
+ /*
+ * Check equality of sets.
+ */
+ cur = completeWild->nsSet;
+ while (cur != NULL) {
+ found = 0;
+ curB = curWild->nsSet;
+ while (curB != NULL) {
+ if (cur->value == curB->value) {
+ found = 1;
+ break;
+ }
+ curB = curB->next;
+ }
+ if (!found)
+ break;
+ cur = cur->next;
+ }
+ if (found)
+ return(0);
+ } else
+ return(0);
+ }
+ }
+ /*
+ * 2 If either O1 or O2 is any, then the other must be the value.
+ */
+ if ((completeWild->any != curWild->any) && (completeWild->any)) {
+ if (xmlSchemaCloneWildcardNsConstraints(ctxt, &completeWild, curWild) == -1)
+ return(-1);
+ return(0);
+ }
+ /*
+ * 3 If either O1 or O2 is a pair of not and a value (a namespace
+ * name or ·absent·) and the other is a set of (namespace names or
+ * ·absent·), then that set, minus the negated value if it was in
+ * the set, minus ·absent· if it was in the set, must be the value.
+ */
+ if (((completeWild->negNsSet != NULL) && (curWild->nsSet != NULL)) ||
+ ((curWild->negNsSet != NULL) && (completeWild->nsSet != NULL))) {
+ const xmlChar *neg;
+
+ if (completeWild->nsSet == NULL) {
+ neg = completeWild->negNsSet->value;
+ if (xmlSchemaCloneWildcardNsConstraints(ctxt, &completeWild, curWild) == -1)
+ return(-1);
+ } else
+ neg = curWild->negNsSet->value;
+ /*
+ * Remove absent and negated.
+ */
+ prev = NULL;
+ cur = completeWild->nsSet;
+ while (cur != NULL) {
+ if (cur->value == NULL) {
+ if (prev == NULL)
+ completeWild->nsSet = cur->next;
+ else
+ prev->next = cur->next;
+ xmlFree(cur);
+ break;
+ }
+ prev = cur;
+ cur = cur->next;
+ }
+ if (neg != NULL) {
+ prev = NULL;
+ cur = completeWild->nsSet;
+ while (cur != NULL) {
+ if (cur->value == neg) {
+ if (prev == NULL)
+ completeWild->nsSet = cur->next;
+ else
+ prev->next = cur->next;
+ xmlFree(cur);
+ break;
+ }
+ prev = cur;
+ cur = cur->next;
+ }
+ }
+
+ return(0);
+ }
+ /*
+ * 4 If both O1 and O2 are sets of (namespace names or ·absent·),
+ * then the intersection of those sets must be the value.
+ */
+ if ((completeWild->nsSet != NULL) && (curWild->nsSet != NULL)) {
+ int found;
+
+ cur = completeWild->nsSet;
+ prev = NULL;
+ while (cur != NULL) {
+ found = 0;
+ curB = curWild->nsSet;
+ while (curB != NULL) {
+ if (cur->value == curB->value) {
+ found = 1;
+ break;
+ }
+ curB = curB->next;
+ }
+ if (!found) {
+ if (prev == NULL)
+ completeWild->nsSet = cur->next;
+ else
+ prev->next = cur->next;
+ tmp = cur->next;
+ xmlFree(cur);
+ cur = tmp;
+ continue;
+ }
+ prev = cur;
+ cur = cur->next;
+ }
+
+ return(0);
+ }
+ /* 5 If the two are negations of different namespace names,
+ * then the intersection is not expressible
+ */
+ if ((completeWild->negNsSet != NULL) &&
+ (curWild->negNsSet != NULL) &&
+ (completeWild->negNsSet->value != curWild->negNsSet->value) &&
+ (completeWild->negNsSet->value != NULL) &&
+ (curWild->negNsSet->value != NULL)) {
+
+ xmlSchemaPErr(ctxt, completeWild->node, XML_SCHEMAP_INTERSECTION_NOT_EXPRESSIBLE,
+ "The intersection of the wilcard is not expressible\n",
+ NULL, NULL);
+ return(XML_SCHEMAP_INTERSECTION_NOT_EXPRESSIBLE);
+ }
+ /*
+ * 6 If the one is a negation of a namespace name and the other
+ * is a negation of ·absent·, then the one which is the negation
+ * of a namespace name must be the value.
+ */
+ if ((completeWild->negNsSet != NULL) && (curWild->negNsSet != NULL) &&
+ (completeWild->negNsSet->value != curWild->negNsSet->value) &&
+ (completeWild->negNsSet->value == NULL)) {
+ completeWild->negNsSet->value = curWild->negNsSet->value;
+ }
+ return(0);
+}
+
+/**
+ * xmlSchemaIsWildcardNsConstraintSubset:
+ * @ctxt: the schema parser context
+ * @wildA: the first wildcard
+ * @wildB: the second wildcard
+ *
+ * Returns 1 if the namespace constraint of @wildA is an intensional
+ * subset of @wildB, 0 otherwise.
+ */
+static int
+xmlSchemaIsWildcardNsConstraintSubset(
+ xmlSchemaParserCtxtPtr ctxt ATTRIBUTE_UNUSED,
+ xmlSchemaWildcardPtr wildA,
+ xmlSchemaWildcardPtr wildB)
+{
+
+ /*
+ * Schema Component Constraint: Wildcard Subset
+ */
+ /*
+ * 1 super must be any.
+ */
+ if (wildB->any)
+ return (1);
+ /*
+ * 2.1 sub must be a pair of not and a namespace name or ·absent·.
+ * 2.2 super must be a pair of not and the same value.
+ */
+ if ((wildA->negNsSet != NULL) &&
+ (wildB->negNsSet != NULL) &&
+ (wildA->negNsSet->value == wildA->negNsSet->value))
+ return (1);
+ /*
+ * 3.1 sub must be a set whose members are either namespace names or ·absent·.
+ */
+ if (wildA->nsSet != NULL) {
+ /*
+ * 3.2.1 super must be the same set or a superset thereof.
+ */
+ if (wildB->nsSet != NULL) {
+ xmlSchemaWildcardNsPtr cur, curB;
+ int found = 0;
+
+ cur = wildA->nsSet;
+ while (cur != NULL) {
+ found = 0;
+ curB = wildB->nsSet;
+ while (curB != NULL) {
+ if (cur->value == curB->value) {
+ found = 1;
+ break;
+ }
+ curB = curB->next;
+ }
+ if (!found)
+ return (0);
+ cur = cur->next;
+ }
+ if (found)
+ return (1);
+ } else if (wildB->negNsSet != NULL) {
+ xmlSchemaWildcardNsPtr cur;
+ /*
+ * 3.2.2 super must be a pair of not and a namespace name or
+ * ·absent· and that value must not be in sub's set.
+ */
+ cur = wildA->nsSet;
+ while (cur != NULL) {
+ if (cur->value == wildB->negNsSet->value)
+ return (0);
+ cur = cur->next;
+ }
+ return (1);
+ }
+ }
+ return (0);
+}
+
+/**
+ * xmlSchemaBuildCompleteAttributeWildcard:
+ * @ctxt: the schema parser context
+ * @attrs: the attribute list
+ * @completeWild: the resulting complete wildcard
+ *
+ * Returns -1 in case of an internal error, 0 otherwise.
+ */
+static int
+xmlSchemaBuildCompleteAttributeWildcard(xmlSchemaParserCtxtPtr ctxt,
+ xmlSchemaAttributePtr attrs,
+ xmlSchemaWildcardPtr *completeWild)
+{
+ while (attrs != NULL) {
+ if (attrs->type == XML_SCHEMA_TYPE_ATTRIBUTEGROUP) {
+ xmlSchemaAttributeGroupPtr group;
+
+ group = (xmlSchemaAttributeGroupPtr) attrs;
+ if ((group->flags & XML_SCHEMAS_ATTRGROUP_WILDCARD_BUILDED) == 0) {
+ if (group->attributes != NULL) {
+ if (xmlSchemaBuildCompleteAttributeWildcard(ctxt,
+ group->attributes, &group->attributeWildcard) == -1)
+ return (-1);
+ }
+ group->flags |= XML_SCHEMAS_ATTRGROUP_WILDCARD_BUILDED;
+ }
+ if (group->attributeWildcard != NULL) {
+ if (*completeWild == NULL) {
+ /*
+ * Copy the first encountered wildcard as context, except for the annotation.
+ */
+ *completeWild = xmlSchemaAddWildcard(ctxt);
+ (*completeWild)->type = XML_SCHEMA_TYPE_ANY_ATTRIBUTE;
+ if (xmlSchemaCloneWildcardNsConstraints(ctxt,
+ completeWild, group->attributeWildcard) == -1)
+ return (-1);
+ (*completeWild)->processContents = group->attributeWildcard->processContents;
+ /*
+ * Although the complete wildcard might not correspond to any
+ * node in the schema, we will save this context node.
+ */
+ (*completeWild)->node = group->attributeWildcard->node;
+
+ } else if (xmlSchemaIntersectWildcards(ctxt, *completeWild, group->attributeWildcard) == -1) {
+ xmlSchemaFreeWildcard(*completeWild);
+ return (-1);
+ }
+ }
+ }
+ attrs = attrs->next;
+ }
+
+ return (0);
+}
+
+/**
+ * xmlSchemaMatchesWildcardNs:
+ * @wild: the wildcard
+ * @ns: the namespace
+ *
+ *
+ * Returns 1 if the given namespace matches the wildcard,
+ * 0 otherwise.
+ */
+static int
+xmlSchemaMatchesWildcardNs(xmlSchemaWildcardPtr wild, const xmlChar* ns)
+{
+ if (wild == NULL)
+ return(0);
+
+ if (wild->any)
+ return(1);
+ else if (wild->nsSet != NULL) {
+ xmlSchemaWildcardNsPtr cur;
+
+ cur = wild->nsSet;
+ while (cur != NULL) {
+ if (xmlStrEqual(cur->value, ns))
+ return(1);
+ cur = cur->next;
+ }
+ } else if ((wild->negNsSet != NULL) && (ns != NULL) &&
+ (!xmlStrEqual(wild->negNsSet->value, ns)))
+ return(1);
+
+ return(0);
+}
+
+/**
+ * xmlSchemaBuildAttributeValidation:
+ * @ctxt: the schema parser context
+ * @type: the complex type definition
+ *
+ *
+ * Builds the wildcard and the attribute uses on the given complex type.
+ * Returns -1 if an internal error occurs, 0 otherwise.
+ */
+static int
+xmlSchemaBuildAttributeValidation(xmlSchemaParserCtxtPtr ctxt, xmlSchemaTypePtr type)
+{
+ xmlSchemaTypePtr baseType = NULL;
+ xmlSchemaAttributeLinkPtr cur, base, tmp, id = NULL, prev = NULL, uses = NULL,
+ lastUse = NULL, lastBaseUse = NULL;
+ xmlSchemaAttributePtr attrs;
+ xmlSchemaTypePtr anyType;
+ int baseIsAnyType = 0;
+
+ anyType = xmlSchemaGetBuiltInType(XML_SCHEMAS_ANYTYPE);
+ /*
+ * Complex Type Definition with complex content Schema Component.
+ *
+ * Attribute uses.
+ */
+ if (type->attributeUses != NULL) {
+ xmlSchemaPErr(ctxt, type->node, XML_SCHEMAS_ERR_INTERNAL,
+ "Internal error: xmlSchemaBuildAttributeValidation: "
+ "attribute uses already builded.\n",
+ NULL, NULL);
+ return (-1);
+ }
+ if (type->baseType == NULL) {
+ xmlSchemaPErr(ctxt, type->node, XML_SCHEMAS_ERR_INTERNAL,
+ "Internal error: xmlSchemaBuildAttributeValidation: "
+ "complex type \"%s\" has no base type.\n",
+ type->name, NULL);
+ return (-1);
+ }
+
+ baseType = type->baseType;
+ if (baseType == NULL) {
+ xmlSchemaPErr(ctxt, type->node, XML_SCHEMAS_ERR_INTERNAL,
+ "Internal error: xmlSchemaBuildAttributeValidation: "
+ "type has no base type.\n",
+ NULL, NULL);
+ return (-1);
+ }
+
+ if (baseType == anyType)
+ baseIsAnyType = 1;
+ /*
+ * Inherit the attribute uses of the base type.
+ */
+ /*
+ * NOTE: It is allowed to "extend" the anyType complex type.
+ */
+ if (!baseIsAnyType) {
+ if (baseType != NULL) {
+ for (cur = baseType->attributeUses; cur != NULL; cur = cur->next) {
+ tmp = (xmlSchemaAttributeLinkPtr)
+ xmlMalloc(sizeof(xmlSchemaAttributeLink));
+ if (tmp == NULL) {
+ xmlSchemaPErrMemory(ctxt,
+ "building attribute uses of complexType", NULL);
+ return (-1);
+ }
+ tmp->attr = cur->attr;
+ tmp->next = NULL;
+ if (type->attributeUses == NULL) {
+ type->attributeUses = tmp;
+ } else
+ lastBaseUse->next = tmp;
+ lastBaseUse = tmp;
+ }
+ }
+ }
+ if ((type->subtypes != NULL) &&
+ ((type->subtypes->type == XML_SCHEMA_TYPE_COMPLEX_CONTENT) ||
+ (type->subtypes->type == XML_SCHEMA_TYPE_SIMPLE_CONTENT))) {
+ attrs = type->subtypes->subtypes->attributes;
+ type->attributeWildcard = type->subtypes->subtypes->attributeWildcard;
+ } else {
+ /* Short hand form of the complexType. */
+ attrs = type->attributes;
+ }
+ /*
+ * Handle attribute wildcards.
+ */
+ if (xmlSchemaBuildCompleteAttributeWildcard(ctxt,
+ attrs, &type->attributeWildcard) == -1) {
+ if ((type->attributeWildcard != NULL) &&
+ /* Either we used the short hand form... */
+ ((type->subtypes == NULL) ||
+ /* Or complexType -> restriction/extension */
+ (type->attributeWildcard != type->subtypes->subtypes->attributeWildcard)))
+ type->flags |= XML_SCHEMAS_TYPE_OWNED_ATTR_WILDCARD;
+ return (-1);
+ }
+ /*
+ * TODO: This "onwed_attr_wildcard" is quite sensless: we should
+ * create the wildcard right from the start on the complexType,
+ * rather than on the <restriction>/<extension>.
+ */
+ if ((type->attributeWildcard != NULL) &&
+ /* Either we used the short hand form... */
+ ((type->subtypes == NULL) ||
+ /* Or complexType -> restriction/extension */
+ (type->attributeWildcard != type->subtypes->subtypes->attributeWildcard)))
+ type->flags |= XML_SCHEMAS_TYPE_OWNED_ATTR_WILDCARD;
+
+ if ((type->flags & XML_SCHEMAS_TYPE_DERIVATION_METHOD_EXTENSION) &&
+ ((baseIsAnyType) ||
+ ((baseType != NULL) &&
+ (baseType->type == XML_SCHEMA_TYPE_COMPLEX) &&
+ (baseType->attributeWildcard != NULL)))) {
+ if (type->attributeWildcard != NULL) {
+ /*
+ * Union the complete wildcard with the base wildcard.
+ */
+ if (xmlSchemaUnionWildcards(ctxt, type->attributeWildcard,
+ baseType->attributeWildcard) == -1)
+ return (-1);
+ } else {
+ /*
+ * Just inherit the wildcard.
+ */
+ type->attributeWildcard = baseType->attributeWildcard;
+ }
+ }
+
+ if (type->flags & XML_SCHEMAS_TYPE_DERIVATION_METHOD_RESTRICTION) {
+ if (type->attributeWildcard != NULL) {
+ /*
+ * Derivation Valid (Restriction, Complex)
+ * 4.1 The {base type definition} must also have one.
+ */
+ if (baseType->attributeWildcard == NULL) {
+ xmlSchemaPErr(ctxt, type->node, XML_SCHEMAP_DERIVATION_OK_RESTRICTION_4_1,
+ "The derived type \"%s\" has an attribute wildcard, "
+ "but the base type \"%s\" does not have one.\n",
+ type->name, baseType->name);
+ return (1);
+ } else if (xmlSchemaIsWildcardNsConstraintSubset(ctxt,
+ type->attributeWildcard, baseType->attributeWildcard) == 0) {
+ /* 4.2 */
+ xmlSchemaPErr(ctxt, type->node, XML_SCHEMAP_DERIVATION_OK_RESTRICTION_4_2,
+ "The wildcard in the derived type \"%s\" is not a valid "
+ "subset of the one in the base type \"%s\".\n",
+ type->name, baseType->name);
+ return (1);
+ }
+ /* 4.3 Unless the {base type definition} is the ·ur-type
+ * definition·, the complex type definition's {attribute
+ * wildcard}'s {process contents} must be identical to or
+ * stronger than the {base type definition}'s {attribute
+ * wildcard}'s {process contents}, where strict is stronger
+ * than lax is stronger than skip.
+ */
+ if ((type->baseType != anyType) &&
+ (type->attributeWildcard->processContents <
+ baseType->attributeWildcard->processContents)) {
+ xmlSchemaPErr(ctxt, type->node, XML_SCHEMAP_DERIVATION_OK_RESTRICTION_4_3,
+ "The process contents of the wildcard in the "
+ "derived type \"%s\" is weaker than "
+ "that in the base type \"%s\".\n",
+ type->name, baseType->name);
+ return (1);
+ }
+ }
+ } else if (type->flags & XML_SCHEMAS_TYPE_DERIVATION_METHOD_EXTENSION) {
+ /*
+ * Derivation Valid (Extension)
+ * At this point the type and the base have both, either
+ * no wildcard or a wildcard.
+ */
+ if ((baseType->attributeWildcard != NULL) &&
+ (baseType->attributeWildcard != type->attributeWildcard)) {
+ /* 1.3 */
+ if (xmlSchemaIsWildcardNsConstraintSubset(ctxt,
+ baseType->attributeWildcard, type->attributeWildcard) == 0) {
+ xmlSchemaPErr(ctxt, type->node, XML_SCHEMAP_COS_CT_EXTENDS_1_3,
+ "The wildcard in the derived type \"%s\" is not a valid "
+ "superset of the one in the base type \"%s\".\n",
+ type->name, baseType->name);
+ return (1);
+ }
+ }
+ }
+
+ /*
+ * Gather attribute uses defined by this type.
+ */
+ if (attrs != NULL) {
+ if (xmlSchemaBuildAttributeUsesOwned(ctxt, attrs,
+ &uses, &lastUse) == -1) {
+ return (-1);
+ }
+ }
+ /* 3.4.6 -> Complex Type Definition Properties Correct 4.
+ * "Two distinct attribute declarations in the {attribute uses} must
+ * not have identical {name}s and {target namespace}s."
+ *
+ * For "extension" this is done further down.
+ */
+ if ((uses != NULL) && ((type->flags & XML_SCHEMAS_TYPE_DERIVATION_METHOD_EXTENSION) == 0)) {
+ cur = uses;
+ while (cur != NULL) {
+ tmp = cur->next;
+ while (tmp != NULL) {
+ if ((xmlStrEqual(xmlSchemaGetOnymousAttrName(cur->attr),
+ xmlSchemaGetOnymousAttrName(tmp->attr))) &&
+ (xmlStrEqual(xmlSchemaGetOnymousTargetNsURI((xmlSchemaTypePtr) cur->attr ),
+ xmlSchemaGetOnymousTargetNsURI((xmlSchemaTypePtr) tmp->attr)))) {
+
+ xmlSchemaPErr(ctxt, cur->attr->node, XML_SCHEMAP_CT_PROPS_CORRECT_4,
+ "ct-props-correct.4: Duplicate attribute use with the name \"%s\" specified\n",
+ xmlSchemaGetOnymousAttrName(cur->attr), NULL);
+ break;
+ }
+ tmp = tmp->next;
+ }
+ cur = cur->next;
+ }
+ }
+ if (type->flags & XML_SCHEMAS_TYPE_DERIVATION_METHOD_RESTRICTION) {
+ /*
+ * Derive by restriction.
+ */
+ if (baseIsAnyType) {
+ type->attributeUses = uses;
+ } else {
+ int found;
+
+ cur = uses;
+ while (cur != NULL) {
+ found = 0;
+ base = type->attributeUses;
+ while (base != NULL) {
+ if ((xmlStrEqual(xmlSchemaGetOnymousAttrName(cur->attr),
+ xmlSchemaGetOnymousAttrName(base->attr))) &&
+ (xmlStrEqual(xmlSchemaGetOnymousTargetNsURI((xmlSchemaTypePtr) cur->attr),
+ xmlSchemaGetOnymousTargetNsURI((xmlSchemaTypePtr) base->attr)))) {
+
+ found = 1;
+ if ((cur->attr->occurs == XML_SCHEMAS_ATTR_USE_OPTIONAL) &&
+ (base->attr->occurs == XML_SCHEMAS_ATTR_USE_REQUIRED)) {
+ /*
+ * derivation-ok-restriction 2.1.1
+ */
+ xmlSchemaPErr(ctxt, cur->attr->node,
+ XML_SCHEMAP_DERIVATION_OK_RESTRICTION_2_1_1,
+ "derivation-ok-restriction.2.1.1: "
+ "The \"optional\" attribute "
+ "use \"%s\" is inconsistent with a matching "
+ "\"required\" attribute use of the base type\n",
+ xmlSchemaGetOnymousAttrName(cur->attr), NULL);
+ } else if ((cur->attr->occurs == XML_SCHEMAS_ATTR_USE_PROHIBITED) &&
+ (base->attr->occurs == XML_SCHEMAS_ATTR_USE_REQUIRED)) {
+ /*
+ * derivation-ok-restriction 3
+ */
+ xmlSchemaPErr(ctxt, cur->attr->node, XML_SCHEMAP_DERIVATION_OK_RESTRICTION_3,
+ "derivation-ok-restriction.3: "
+ "The \"required\" attribute use \"%s\" of the base type "
+ "does not have a matching attribute use in the derived type\n",
+ xmlSchemaGetOnymousAttrName(cur->attr), NULL);
+
+ } else {
+ /*
+ * Override the attribute use.
+ */
+ base->attr = cur->attr;
+ }
+ /*
+ * TODO: derivation-ok-restriction 2.1.2 ({type definition} must be validly derived)
+ * TODO: derivation-ok-restriction 2.1.3
+ */
+ break;
+ }
+ base = base->next;
+ }
+
+ if (!found) {
+ if (cur->attr->occurs != XML_SCHEMAS_ATTR_USE_PROHIBITED) {
+ /*
+ * derivation-ok-restriction 2.2
+ */
+ if ((type->attributeWildcard != NULL) &&
+ xmlSchemaMatchesWildcardNs(type->attributeWildcard,
+ cur->attr->targetNamespace))
+ found = 1;
+
+ if (!found) {
+ xmlSchemaPErr(ctxt, cur->attr->node, XML_SCHEMAP_DERIVATION_OK_RESTRICTION_2_2,
+ "derivation-ok-restriction.2.2: "
+ "The attribute use \"%s\" has neither a matching attribute use, "
+ "nor a matching wildcard in the base type\n",
+ xmlSchemaGetOnymousAttrName(cur->attr), NULL);
+ } else {
+ /*
+ * Add the attribute use.
+ *
+ * Note that this may lead to funny derivation error reports, if
+ * multiple equal attribute uses exist; but this is not
+ * allowed anyway, and it will be reported beforehand.
+ */
+ tmp = cur;
+ if (prev != NULL)
+ prev->next = cur->next;
+ else
+ uses = cur->next;
+ cur = cur->next;
+ if (type->attributeUses == NULL) {
+ type->attributeUses = tmp;
+ } else
+ lastBaseUse->next = tmp;
+ lastBaseUse = tmp;
+
+ continue;
+ }
+ }
+ }
+ prev = cur;
+ cur = cur->next;
+ }
+ if (uses != NULL)
+ xmlSchemaFreeAttributeUseList(uses);
+ }
+ } else if (type->flags & XML_SCHEMAS_TYPE_DERIVATION_METHOD_EXTENSION) {
+ /*
+ * The spec allows only appending, and not other kinds of extensions.
+ *
+ * This ensures: Schema Component Constraint: Derivation Valid (Extension) : 1.2
+ */
+ if (uses != NULL) {
+ if (type->attributeUses == NULL) {
+ type->attributeUses = uses;
+ } else
+ lastBaseUse->next = uses;
+ }
+ } else {
+ /*
+ * Derive implicitely from the ur-type.
+ */
+ type->attributeUses = uses;
+ }
+ /*
+ * 3.4.6 -> Complex Type Definition Properties Correct
+ */
+ if (type->attributeUses != NULL) {
+ cur = type->attributeUses;
+ prev = NULL;
+ while (cur != NULL) {
+ /*
+ * 4. Two distinct attribute declarations in the {attribute uses} must
+ * not have identical {name}s and {target namespace}s.
+ *
+ * Note that this was already done for "restriction" and types derived from
+ * the ur-type.
+ */
+ if (type->flags & XML_SCHEMAS_TYPE_DERIVATION_METHOD_EXTENSION) {
+ tmp = cur->next;
+ while (tmp != NULL) {
+ if ((xmlStrEqual(xmlSchemaGetOnymousAttrName(cur->attr),
+ xmlSchemaGetOnymousAttrName(tmp->attr))) &&
+ (xmlStrEqual(xmlSchemaGetOnymousTargetNsURI((xmlSchemaTypePtr) cur->attr ),
+ xmlSchemaGetOnymousTargetNsURI((xmlSchemaTypePtr) tmp->attr)))) {
+
+ xmlSchemaPErr(ctxt, cur->attr->node, XML_SCHEMAP_CT_PROPS_CORRECT_4,
+ "ct-props-correct.4: Duplicate attribute use with the name \"%s\" specified\n",
+ xmlSchemaGetOnymousAttrName(cur->attr), NULL);
+ break;
+ }
+ tmp = tmp->next;
+ }
+ }
+ /*
+ * 5. Two distinct attribute declarations in the {attribute uses} must
+ * not have {type definition}s which are or are derived from ID.
+ */
+ if ((cur->attr->subtypes != NULL) &&
+ (xmlSchemaIsDerivedFromBuiltInType(ctxt, (xmlSchemaTypePtr) cur->attr, XML_SCHEMAS_ID))) {
+ if (id != NULL) {
+ xmlSchemaPErr(ctxt, cur->attr->node, XML_SCHEMAP_CT_PROPS_CORRECT_5,
+ "ct-props-correct.5: Two attribute declarations, "
+ "\"%s\" and \"%s\" have types which derived from ID\n",
+ xmlSchemaGetOnymousAttrName(id->attr),
+ xmlSchemaGetOnymousAttrName(cur->attr));
+ }
+ id = cur;
+ }
+ /*
+ * Remove "prohibited" attribute uses. The reason this is done at this late
+ * stage is to be able to catch dublicate attribute uses. So we had to keep
+ * prohibited uses in the list as well.
+ */
+ if (cur->attr->occurs == XML_SCHEMAS_ATTR_USE_PROHIBITED) {
+ tmp = cur;
+ if (prev == NULL)
+ type->attributeUses = cur->next;
+ else
+ prev->next = cur->next;
+ cur = cur->next;
+ xmlFree(tmp);
+ } else {
+ prev = cur;
+ cur = cur->next;
+ }
+ }
+ }
+ /*
+ * TODO: This check should be removed if we are 100% sure of
+ * the base type attribute uses already being built.
+ */
+ if ((baseType != NULL) && (!baseIsAnyType) &&
+ (baseType->type == XML_SCHEMA_TYPE_COMPLEX) &&
+ (baseType->contentType == XML_SCHEMA_CONTENT_UNKNOWN)) {
+ xmlSchemaPErr(ctxt, baseType->node, XML_SCHEMAS_ERR_INTERNAL,
+ "Internal error: xmlSchemaBuildAttributeValidation: "
+ "attribute uses not builded on base type \"%s\".\n",
+ baseType->name, NULL);
+ }
+ return (0);
+}
+
+/**
+ * xmlSchemaTypeFinalContains:
+ * @schema: the schema
+ * @type: the type definition
+ * @final: the final
+ *
+ * Evaluates if a type definition contains the given "final".
+ * This does take "finalDefault" into account as well.
+ *
+ * Returns 1 if the type does containt the given "final",
+ * 0 otherwise.
+ */
+static int
+xmlSchemaTypeFinalContains(xmlSchemaPtr schema, xmlSchemaTypePtr type, int final)
+{
+ int tfinal = final, tflags = type->flags;
+
+ if (type == NULL)
+ return (0);
+ if (type->flags & XML_SCHEMAS_TYPE_FINAL_DEFAULT) {
+ switch (final) {
+ case XML_SCHEMAS_TYPE_FINAL_RESTRICTION:
+ tfinal = XML_SCHEMAS_FINAL_DEFAULT_RESTRICTION;
+ break;
+ case XML_SCHEMAS_TYPE_FINAL_EXTENSION:
+ tfinal = XML_SCHEMAS_FINAL_DEFAULT_EXTENSION;
+ break;
+ case XML_SCHEMAS_TYPE_FINAL_LIST:
+ tfinal = XML_SCHEMAS_FINAL_DEFAULT_LIST;
+ break;
+ case XML_SCHEMAS_TYPE_FINAL_UNION:
+ tfinal = XML_SCHEMAS_FINAL_DEFAULT_UNION;
+ break;
+ }
+ tflags = schema->flags;
+ }
+ if (tflags & tfinal)
+ return (1);
+ else
+ return (0);
+
+}
+
+/**
+ * xmlSchemaGetUnionSimpleTypeMemberTypes:
+ * @type: the Union Simple Type
+ *
+ * Returns a list of member types of @type if existing,
+ * returns NULL otherwise.
+ */
+static xmlSchemaTypeLinkPtr
+xmlSchemaGetUnionSimpleTypeMemberTypes(xmlSchemaTypePtr type)
+{
+ while (type != NULL) {
+ if (type->memberTypes != NULL)
+ return (type->memberTypes);
+ else
+ type = type->baseType;
+ }
+ return (NULL);
+}
+
+/**
+ * xmlSchemaGetListSimpleTypeItemType:
+ * @type: the simple type definition
+ *
+ * Returns the item type definition of the list simple type.
+ */
+static xmlSchemaTypePtr
+xmlSchemaGetListSimpleTypeItemType(xmlSchemaTypePtr type)
+{
+ if ((type->flags & XML_SCHEMAS_TYPE_VARIETY_LIST) == 0)
+ return (NULL);
+ /*
+ * Note: In libxml2, the built-in types do not reflect
+ * the datatype hierarchy (yet?) - we have to treat them
+ * in a special way.
+ */
+ if (type->type == XML_SCHEMA_TYPE_BASIC)
+ return (xmlSchemaGetBuiltInListSimpleTypeItemType(type));
+ if (type->subtypes->type == XML_SCHEMA_TYPE_LIST)
+ /* 1 If the <list> alternative is chosen, then the type
+ * definition ·resolved· to by the ·actual value· of the
+ * itemType [attribute] of <list>, if present, otherwise
+ * the type definition corresponding to the <simpleType>
+ * among the [children] of <list>.
+ */
+ return (type->subtypes->subtypes);
+ else {
+ /* 2 If the <restriction> option is chosen, then the
+ * {item type definition} of the {base type definition}.
+ */
+ return (xmlSchemaGetListSimpleTypeItemType(type->baseType));
+ }
+}
+
+/**
+ * xmlSchemaCheckCOSSTDerivedOK:
+ * @type: the derived simple type definition
+ * @baseType: the base type definition
+ *
+ * Checks wheter @type can be validly
+ * derived from @baseType.
+ *
+ * Returns 0 on success, an positive error code otherwise.
+ */
+static int
+xmlSchemaCheckCOSSTDerivedOK(xmlSchemaPtr schema,
+ xmlSchemaTypePtr type,
+ xmlSchemaTypePtr baseType,
+ int subset)
+{
+ /*
+ * Schema Component Constraint: Type Derivation OK (Simple)
+ *
+ *
+ * 1 They are the same type definition.
+ * TODO: The identy check might have to be more complex than this.
+ */
+ if (type == baseType)
+ return (0);
+ /*
+ * 2.1 restriction is not in the subset, or in the {final}
+ * of its own {base type definition};
+ */
+ if ((subset & XML_SCHEMAS_TYPE_FINAL_RESTRICTION) ||
+ (xmlSchemaTypeFinalContains(schema,
+ type->baseType, XML_SCHEMAS_TYPE_FINAL_RESTRICTION))) {
+ return (XML_SCHEMAP_COS_ST_DERIVED_OK_2_1);
+ }
+ /* 2.2 */
+ if (type->baseType == baseType) {
+ /*
+ * 2.2.1 D's ·base type definition· is B.
+ */
+ return (0);
+ }
+ /*
+ * 2.2.2 D's ·base type definition· is not the ·ur-type definition·
+ * and is validly derived from B given the subset, as defined by this
+ * constraint.
+ */
+ if ((type->baseType != xmlSchemaGetBuiltInType(XML_SCHEMAS_ANYTYPE)) &&
+ (xmlSchemaCheckCOSSTDerivedOK(schema, type->baseType, baseType, subset) == 0)) {
+ return (0);
+ }
+ /*
+ * 2.2.3 D's {variety} is list or union and B is the ·simple ur-type
+ * definition·.
+ */
+ if (((type->flags & XML_SCHEMAS_TYPE_VARIETY_LIST) ||
+ (type->flags & XML_SCHEMAS_TYPE_VARIETY_UNION)) &&
+ (baseType == xmlSchemaGetBuiltInType(XML_SCHEMAS_ANYSIMPLETYPE))) {
+ return (0);
+ }
+ /*
+ * 2.2.4 B's {variety} is union and D is validly derived from a type
+ * definition in B's {member type definitions} given the subset, as
+ * defined by this constraint.
+ *
+ * NOTE: This seems not to involve built-in types, since there is no
+ * built-in Union Simple Type.
+ */
+ if (baseType->flags & XML_SCHEMAS_TYPE_VARIETY_UNION) {
+ xmlSchemaTypeLinkPtr cur;
+
+ cur = baseType->memberTypes;
+ while (cur != NULL) {
+ if (xmlSchemaCheckCOSSTDerivedOK(schema, type,
+ cur->type, subset) == 0)
+ return (0);
+ cur = cur->next;
+ }
+ }
+
+ return (XML_SCHEMAP_COS_ST_DERIVED_OK_2_2);
+}
+
+
+/**
+ * xmlSchemaCheckSTPropsCorrect:
+ * @ctxt: the schema parser context
+ * @type: the simple type definition
+ *
+ * Checks st-props-correct.
+ *
+ * Returns 0 if the properties are correct,
+ * if not, a positive error code and -1 on internal
+ * errors.
+ */
+static int
+xmlSchemaCheckSTPropsCorrect(xmlSchemaParserCtxtPtr ctxt,
+ xmlSchemaTypePtr type)
+{
+ xmlSchemaTypePtr baseType = type->baseType, anySimpleType,
+ anyType;
+
+ /*
+ * Schema Component Constraint: Simple Type Definition Properties Correct
+ *
+ * NOTE: This is somehow redundant, since we actually built a simple type
+ * to have all the needed information; this acts as an self test.
+ */
+ anySimpleType = xmlSchemaGetBuiltInType(XML_SCHEMAS_ANYSIMPLETYPE);
+ anyType = xmlSchemaGetBuiltInType(XML_SCHEMAS_ANYTYPE);
+ /*
+ * TODO: 1 The values of the properties of a simple type definition must be as
+ * described in the property tableau in Datatype definition, modulo the
+ * impact of Missing Sub-components (§5.3).
+ */
+ /* Base type: If the datatype has been ·derived· by ·restriction·
+ * then the Simple Type Definition component from which it is ·derived·,
+ * otherwise the Simple Type Definition for anySimpleType (§4.1.6).
+ */
+ if (baseType == NULL) {
+ xmlSchemaPErr(ctxt, type->node,
+ XML_SCHEMAP_ST_PROPS_CORRECT_1,
+ "Simple type \"%s\" does not have a base type.\n",
+ type->name, NULL);
+ return (XML_SCHEMAP_ST_PROPS_CORRECT_1);
+ }
+ if ((baseType->type != XML_SCHEMA_TYPE_SIMPLE) &&
+ ((baseType->type != XML_SCHEMA_TYPE_BASIC) ||
+ (baseType == anyType))) {
+ xmlSchemaPErr(ctxt, type->node,
+ XML_SCHEMAP_ST_PROPS_CORRECT_1,
+ "Simple type \"%s\": its base type \"%s\" is not a simple "
+ "type.\n",
+ type->name, baseType->name);
+ return (XML_SCHEMAP_ST_PROPS_CORRECT_1);
+ }
+ if ((baseType != anySimpleType) &&
+ (type->subtypes->type != XML_SCHEMA_TYPE_RESTRICTION)) {
+ xmlSchemaPErr(ctxt, type->node,
+ XML_SCHEMAP_ST_PROPS_CORRECT_1,
+ "Simple type \"%s\" (not derived by restriction) must have"
+ "the simple ur-type definition as base type, not \"%s\".\n",
+ type->name, NULL);
+ return (XML_SCHEMAP_ST_PROPS_CORRECT_1);
+ }
+ /*
+ * Variety: One of {atomic, list, union}.
+ */
+ if (((type->flags & XML_SCHEMAS_TYPE_VARIETY_ATOMIC) == 0) &&
+ ((type->flags & XML_SCHEMAS_TYPE_VARIETY_UNION) == 0) &&
+ ((type->flags & XML_SCHEMAS_TYPE_VARIETY_LIST) == 0)) {
+ xmlSchemaPErr(ctxt, type->node,
+ XML_SCHEMAP_ST_PROPS_CORRECT_1,
+ "Simple type \"%s\" has an absent variety.\n",
+ type->name, NULL);
+ return (XML_SCHEMAP_ST_PROPS_CORRECT_1);
+ }
+ /* TODO: Finish this. */
+
+ /*
+ * 2 All simple type definitions must be derived ultimately from the ·simple
+ * ur-type definition (so· circular definitions are disallowed). That is, it
+ * must be possible to reach a built-in primitive datatype or the ·simple
+ * ur-type definition· by repeatedly following the {base type definition}.
+ */
+ baseType = type->baseType;
+ while ((baseType != NULL) && (baseType->type != XML_SCHEMA_TYPE_BASIC)) {
+ if (baseType->contentType == XML_SCHEMA_CONTENT_UNKNOWN)
+ xmlSchemaTypeFixup(baseType, ctxt, NULL);
+ if (baseType == anySimpleType)
+ break;
+ else if (baseType == type) {
+ xmlSchemaPErr(ctxt, type->node,
+ XML_SCHEMAP_ST_PROPS_CORRECT_2,
+ "Simple type \"%s\" is not derived from the simple "
+ "ur-type definition (circular definitions are disallowed).\n",
+ type->name, NULL);
+ return (XML_SCHEMAP_ST_PROPS_CORRECT_2);
+ }
+ baseType = baseType->baseType;
+ }
+ /*
+ * 3 The {final} of the {base type definition} must not contain restriction.
+ */
+ if (xmlSchemaTypeFinalContains(ctxt->schema, baseType,
+ XML_SCHEMAS_TYPE_FINAL_RESTRICTION)) {
+ xmlSchemaPErr(ctxt, type->node,
+ XML_SCHEMAP_ST_PROPS_CORRECT_3,
+ "Simple type \"%s\": the \"final\" of its base type "
+ "\"%s\" must not contain \"restriction\".\n",
+ type->name, baseType->name);
+ return (XML_SCHEMAP_ST_PROPS_CORRECT_3);
+ }
+ return (0);
+}
+
+/**
+ * xmlSchemaCheckDerivationValidSimpleRestriction:
+ * @ctxt: the schema parser context
+ * @type: the simple type definition
+ *
+ * Checks if the given @type (simpleType) is derived
+ * validly by restriction.
+ *
+ * Returns -1 on internal errors, 0 if the type is validly derived,
+ * a positive error code otherwise.
+ */
+static int
+xmlSchemaCheckCOSSTRestricts(xmlSchemaParserCtxtPtr ctxt,
+ xmlSchemaTypePtr type)
+{
+
+ if (type->type != XML_SCHEMA_TYPE_SIMPLE) {
+ xmlSchemaPErr(ctxt, type->node,
+ XML_ERR_INTERNAL_ERROR,
+ "xmlSchemaCheckDerivationValidSimpleRestriction: the given "
+ "type \"%s\" is not a user-derived simpleType.\n",
+ type->name, NULL);
+ return (-1);
+ }
+
+ if (type->flags & XML_SCHEMAS_TYPE_VARIETY_ATOMIC) {
+ xmlSchemaTypePtr primitive;
+ /*
+ * 1.1 The {base type definition} must be an atomic simple
+ * type definition or a built-in primitive datatype.
+ */
+ if ((type->baseType->flags & XML_SCHEMAS_TYPE_VARIETY_ATOMIC) == 0) {
+ xmlSchemaPErr(ctxt, type->node,
+ XML_SCHEMAP_COS_ST_RESTRICTS_1_1,
+ "Atomic simple type \"%s\": "
+ "its base type \"%s\" is not an atomic simple type.\n",
+ type->name, NULL);
+ return (XML_SCHEMAP_COS_ST_RESTRICTS_1_1);
+ }
+ /* 1.2 The {final} of the {base type definition} must not contain
+ * restriction.
+ */
+ /* OPTIMIZE: This is already done in xmlSchemaCheckStPropsCorrect */
+ if (xmlSchemaTypeFinalContains(ctxt->schema, type->baseType,
+ XML_SCHEMAS_TYPE_FINAL_RESTRICTION)) {
+ xmlSchemaPErr(ctxt, type->node,
+ XML_SCHEMAP_COS_ST_RESTRICTS_1_2,
+ "Atomic simple type \"%s\": the \"final\" of its base type "
+ "\"%s\" must not contain \"restriction\".\n",
+ type->name, type->baseType->name);
+ return (XML_SCHEMAP_COS_ST_RESTRICTS_1_2);
+ }
+
+ /*
+ * 1.3.1 DF must be an allowed constraining facet for the {primitive
+ * type definition}, as specified in the appropriate subsection of 3.2
+ * Primitive datatypes.
+ */
+ if (type->facets != NULL) {
+ xmlSchemaFacetPtr facet;
+ int ok = 1;
+
+ primitive = xmlSchemaGetPrimitiveType(type);
+ if (primitive == NULL) {
+ xmlSchemaPErr(ctxt, type->node,
+ XML_ERR_INTERNAL_ERROR,
+ "xmlSchemaCheckDerivationValidSimpleRestriction: failed "
+ "to get primitive type of type \"%s\".\n",
+ type->name, NULL);
+ return (-1);
+ }
+ facet = type->facets;
+ do {
+ if (xmlSchemaIsBuiltInTypeFacet(primitive, facet->type) == 0) {
+ xmlSchemaPErrExt(ctxt, type->node,
+ XML_SCHEMAP_COS_ST_RESTRICTS_1_3_1,
+ NULL, NULL, NULL,
+ "Atomic simple type \"%s\": the facet \"%s\" "
+ "is not allowed on primitive type \"%s\".\n",
+ type->name,
+ (const xmlChar *)
+ xmlSchemaFacetTypeToString(facet->type),
+ BAD_CAST primitive->name, NULL, NULL);
+
+ ok = 0;
+ }
+ facet = facet->next;
+ } while (facet != NULL);
+ if (ok == 0)
+ return (XML_SCHEMAP_COS_ST_RESTRICTS_1_3_1);
+
+ }
+ /*
+ * TODO: 1.3.2 (facet derivation)
+ */
+ } else if (type->flags & XML_SCHEMAS_TYPE_VARIETY_LIST) {
+ xmlSchemaTypePtr itemType = NULL;
+
+ itemType = xmlSchemaGetListSimpleTypeItemType(type);
+ if (itemType == NULL) {
+ xmlSchemaPErr(ctxt, type->node,
+ XML_ERR_INTERNAL_ERROR,
+ "Internal error: xmlSchemaCheckDerivationValidSimpleRestriction: "
+ "failed to evaluate the item type of type \"%s\".\n",
+ type->name, NULL);
+ return (-1);
+ }
+ /*
+ * 2.1 The {item type definition} must have a {variety} of atomic or
+ * union (in which case all the {member type definitions}
+ * must be atomic).
+ */
+ if (((itemType->flags & XML_SCHEMAS_TYPE_VARIETY_ATOMIC) == 0) &&
+ ((itemType->flags & XML_SCHEMAS_TYPE_VARIETY_UNION) == 0)) {
+ xmlSchemaPErr(ctxt, type->node,
+ XML_SCHEMAP_COS_ST_RESTRICTS_2_1,
+ "List simple type \"%s\": its item type \"%s\" "
+ "is not an atomic or union simple type.\n",
+ type->name, itemType->name);
+ return (XML_SCHEMAP_COS_ST_RESTRICTS_2_1);
+ } else if (itemType->flags & XML_SCHEMAS_TYPE_VARIETY_UNION) {
+ xmlSchemaTypeLinkPtr member;
+
+ member = itemType->memberTypes;
+ while (member != NULL) {
+ if ((member->type->flags &
+ XML_SCHEMAS_TYPE_VARIETY_ATOMIC) == 0) {
+ xmlSchemaPErr(ctxt, type->node,
+ XML_SCHEMAP_COS_ST_RESTRICTS_2_1,
+ "List simple type \"%s\": its item type "
+ "is a union simple type, but the member type "
+ "\"%s\" of this item type is not an \"atomic\" "
+ "simple type.\n",
+ type->name, member->type->name);
+ return (XML_SCHEMAP_COS_ST_RESTRICTS_2_1);
+ }
+ member = member->next;
+ }
+ }
+
+ if (type->baseType == xmlSchemaGetBuiltInType(XML_SCHEMAS_ANYSIMPLETYPE)) {
+ xmlSchemaFacetPtr facet;
+ /*
+ * This is the case if we have: <simpleType><list ..
+ */
+ /*
+ * 2.3.1
+ * 2.3.1.1 The {final} of the {item type definition} must not
+ * contain list.
+ */
+ if (xmlSchemaTypeFinalContains(ctxt->schema,
+ itemType, XML_SCHEMAS_TYPE_FINAL_LIST)) {
+ xmlSchemaPErr(ctxt, type->node,
+ XML_SCHEMAP_COS_ST_RESTRICTS_2_3_1_1,
+ "List simple type \"%s\": the \"final\" of its item type "
+ "\"%s\" must not contain \"list\".\n",
+ type->name, itemType->name);
+ return (XML_SCHEMAP_COS_ST_RESTRICTS_2_3_1_1);
+ }
+ /*
+ * 2.3.1.2 The {facets} must only contain the whiteSpace
+ * facet component.
+ */
+ if (type->facets != NULL) {
+ facet = type->facets;
+ do {
+ if (facet->type != XML_SCHEMA_FACET_WHITESPACE) {
+ xmlSchemaPErr(ctxt, type->node,
+ XML_SCHEMAP_COS_ST_RESTRICTS_2_3_1_2,
+ "List simple type \"%s\": the facet \"%s\" "
+ "is not allowed.\n",
+ type->name,
+ BAD_CAST xmlSchemaFacetTypeToString(facet->type));
+ return (XML_SCHEMAP_COS_ST_RESTRICTS_2_3_1_2);
+ }
+ facet = facet->next;
+ } while (facet != NULL);
+ }
+ /*
+ * TODO: Datatypes states:
+ * A ·list· datatype can be ·derived· from an ·atomic· datatype
+ * whose ·lexical space· allows space (such as string or anyURI)or
+ * a ·union· datatype any of whose {member type definitions}'s
+ * ·lexical space· allows space.
+ */
+ } else {
+ /*
+ * This is the case if we have: <simpleType><restriction ...
+ */
+ /*
+ * 2.3.2
+ * 2.3.2.1 The {base type definition} must have a {variety} of list.
+ */
+ if ((type->baseType->flags & XML_SCHEMAS_TYPE_VARIETY_LIST) == 0) {
+ xmlSchemaPErr(ctxt, type->node,
+ XML_SCHEMAP_COS_ST_RESTRICTS_2_3_2_1,
+ "List simple type \"%s\": its base type \"%s\" must "
+ "have a variety of list.\n",
+ type->name, type->baseType->name);
+ return (XML_SCHEMAP_COS_ST_RESTRICTS_2_3_2_1);
+ }
+ /*
+ * 2.3.2.2 The {final} of the {base type definition} must not
+ * contain restriction.
+ */
+ if (xmlSchemaTypeFinalContains(ctxt->schema, type->baseType,
+ XML_SCHEMAS_TYPE_FINAL_RESTRICTION)) {
+ xmlSchemaPErr(ctxt, type->node,
+ XML_SCHEMAP_COS_ST_RESTRICTS_2_3_2_2,
+ "List simple type \"%s\": its base type \"%s\" must not "
+ "have a \"final\" containing \"restriction\".\n",
+ type->name, type->baseType->name);
+ return (XML_SCHEMAP_COS_ST_RESTRICTS_2_3_2_2);
+ }
+ /*
+ * 2.3.2.3 The {item type definition} must be validly derived
+ * from the {base type definition}'s {item type definition} given
+ * the empty set, as defined in Type Derivation OK (Simple) (§3.14.6).
+ */
+ {
+ xmlSchemaTypePtr baseItemType;
+
+ baseItemType = xmlSchemaGetListSimpleTypeItemType(type->baseType);
+ if (baseItemType == NULL) {
+ xmlSchemaPErr(ctxt, type->node,
+ XML_ERR_INTERNAL_ERROR,
+ "xmlSchemaCheckDerivationValidSimpleRestriction: "
+ "List simple type \"%s\": failed to "
+ "evaluate the item type of its base type \"%s\".\n",
+ type->name, type->baseType->name);
+ return (-1);
+ }
+ if ((itemType != baseItemType) &&
+ (xmlSchemaCheckCOSSTDerivedOK(ctxt->schema, itemType,
+ baseItemType, 0) != 0)) {
+ xmlSchemaPErrExt(ctxt, type->node,
+ XML_SCHEMAP_COS_ST_RESTRICTS_2_3_2_3, NULL, NULL, NULL,
+ "List simple type \"%s\": its item type \"%s\" is not "
+ "validly derived from the item type \"%s\" of the "
+ "base type \"%s\" as defined in Type Derivation OK "
+ "(Simple).\n",
+ type->name, itemType->name, baseItemType->name,
+ type->baseType->name, NULL);
+ return (XML_SCHEMAP_COS_ST_RESTRICTS_2_3_2_3);
+ }
+ }
+
+ if (type->facets != NULL) {
+ xmlSchemaFacetPtr facet;
+ int ok = 1;
+ /*
+ * 2.3.2.4 Only length, minLength, maxLength, whiteSpace, pattern
+ * and enumeration facet components are allowed among the {facets}.
+ */
+ facet = type->facets;
+ do {
+ switch (facet->type) {
+ case XML_SCHEMA_FACET_LENGTH:
+ case XML_SCHEMA_FACET_MINLENGTH:
+ case XML_SCHEMA_FACET_MAXLENGTH:
+ case XML_SCHEMA_FACET_WHITESPACE:
+ /*
+ * TODO: 2.5.1.2 List datatypes
+ * The value of ·whiteSpace· is fixed to the value collapse.
+ */
+ case XML_SCHEMA_FACET_PATTERN:
+ case XML_SCHEMA_FACET_ENUMERATION:
+ break;
+ default: {
+ xmlSchemaPErr(ctxt, type->node,
+ XML_SCHEMAP_COS_ST_RESTRICTS_2_3_2_4,
+ "List simple type \"%s\": the facet \"%s\" "
+ "is not allowed.\n",
+ type->name,
+ BAD_CAST xmlSchemaFacetTypeToString(facet->type));
+ /*
+ * We could return, but it's nicer to report all
+ * invalid facets.
+ */
+ ok = 0;
+ }
+ }
+ facet = facet->next;
+ } while (facet != NULL);
+ if (ok == 0)
+ return (XML_SCHEMAP_COS_ST_RESTRICTS_2_3_2_4);
+ /*
+ * TODO: 2.3.2.5 For each facet in the {facets} (call this DF), if there
+ * is a facet of the same kind in the {facets} of the {base type
+ * definition} (call this BF),then the DF's {value} must be a valid
+ * restriction of BF's {value} as defined in [XML Schemas: Datatypes].
+ */
+ }
+
+
+ }
+ } else if (type->flags & XML_SCHEMAS_TYPE_VARIETY_UNION) {
+ /*
+ * 3.1 The {member type definitions} must all have {variety} of
+ * atomic or list.
+ */
+ xmlSchemaTypeLinkPtr member;
+
+ member = type->memberTypes;
+ while (member != NULL) {
+ if (((member->type->flags &
+ XML_SCHEMAS_TYPE_VARIETY_ATOMIC) == 0) &&
+ ((member->type->flags &
+ XML_SCHEMAS_TYPE_VARIETY_LIST) == 0)) {
+ xmlSchemaPErr(ctxt, type->node,
+ XML_SCHEMAP_COS_ST_RESTRICTS_3_1,
+ "Union simple type \"%s\": the member type "
+ "\"%s\" is not an \"atomic\" simple type.\n",
+ type->name, member->type->name);
+ return (XML_SCHEMAP_COS_ST_RESTRICTS_3_1);
+ }
+ member = member->next;
+ }
+ /*
+ * 3.3.1 If the {base type definition} is the ·simple ur-type
+ * definition·
+ */
+ if (type->baseType == xmlSchemaGetBuiltInType(XML_SCHEMAS_ANYSIMPLETYPE)) {
+ /*
+ * 3.3.1.1 All of the {member type definitions} must have a
+ * {final} which does not contain union.
+ */
+ member = type->memberTypes;
+ while (member != NULL) {
+ if (xmlSchemaTypeFinalContains(ctxt->schema, member->type,
+ XML_SCHEMAS_TYPE_FINAL_UNION)) {
+ xmlSchemaPErr(ctxt, type->node,
+ XML_SCHEMAP_COS_ST_RESTRICTS_3_3_1,
+ "Union simple type \"%s\": the \"final\" of member type "
+ "\"%s\" contains \"union\".\n",
+ type->name, member->type->name);
+ return (XML_SCHEMAP_COS_ST_RESTRICTS_3_3_1);
+ }
+ member = member->next;
+ }
+ /*
+ * 3.3.1.2 The {facets} must be empty.
+ */
+ if (type->facetSet != NULL) {
+ xmlSchemaPErr(ctxt, type->node,
+ XML_SCHEMAP_COS_ST_RESTRICTS_3_3_1_2,
+ "Union simple type \"%s\": the facets must be empty.\n",
+ type->name, NULL);
+ return (XML_SCHEMAP_COS_ST_RESTRICTS_3_3_1_2);
+ }
+ } else {
+ /*
+ * 3.3.2.1 The {base type definition} must have a {variety} of union.
+ */
+ if ((type->baseType->flags & XML_SCHEMAS_TYPE_VARIETY_UNION) == 0) {
+ xmlSchemaPErr(ctxt, type->node,
+ XML_SCHEMAP_COS_ST_RESTRICTS_3_3_2_1,
+ "Union simple type \"%s\": its base type \"%s\" has not a "
+ "variety of union.\n",
+ type->name, type->baseType->name);
+ return (XML_SCHEMAP_COS_ST_RESTRICTS_3_3_2_1);
+ }
+ /*
+ * 3.3.2.2 The {final} of the {base type definition} must not contain restriction.
+ */
+ if (xmlSchemaTypeFinalContains(ctxt->schema, type->baseType,
+ XML_SCHEMAS_TYPE_FINAL_RESTRICTION)) {
+ xmlSchemaPErr(ctxt, type->node,
+ XML_SCHEMAP_COS_ST_RESTRICTS_3_3_2_2,
+ "Union simple type \"%s\": the \"final\" of its base "
+ "type \"%s\" must not contain \"restriction\".\n",
+ type->name, type->baseType->name);
+ return (XML_SCHEMAP_COS_ST_RESTRICTS_3_3_2_2);
+ }
+ /*
+ * 3.3.2.3 The {member type definitions}, in order, must be validly
+ * derived from the corresponding type definitions in the {base
+ * type definition}'s {member type definitions} given the empty set,
+ * as defined in Type Derivation OK (Simple) (§3.14.6).
+ */
+ {
+ xmlSchemaTypeLinkPtr baseMember;
+
+ /*
+ * OPTIMIZE: if the type is restricting, it has no local defined
+ * member types and inherits the member types of the base type;
+ * thus a check for equality can be skipped.
+ */
+ /*
+ * TODO: Even worse: I cannot see a scenario where a restricting
+ * union simple type can have other member types as the member
+ * types of it's base type. This check seems not necessary with
+ * respect to the derivation process in libxml2.
+ */
+ if (type->memberTypes != NULL) {
+ member = type->memberTypes;
+ baseMember = xmlSchemaGetUnionSimpleTypeMemberTypes(type->baseType);
+ if ((member == NULL) && (baseMember != NULL)) {
+ xmlSchemaPErr(ctxt, type->node,
+ XML_SCHEMAS_ERR_INTERNAL,
+ "Internal error: "
+ "xmlSchemaCheckDerivationValidSimpleRestriction "
+ "(3.3.2.3), union simple type \"%s\", unequal number "
+ "of member types in the base type\n",
+ type->name, NULL);
+ }
+ while (member != NULL) {
+ if (baseMember == NULL) {
+ xmlSchemaPErr(ctxt, type->node,
+ XML_SCHEMAS_ERR_INTERNAL,
+ "Internal error: "
+ "xmlSchemaCheckDerivationValidSimpleRestriction "
+ "(3.3.2.3), union simple type \"%s\", unequal number "
+ "of member types in the base type\n",
+ type->name, NULL);
+ }
+ if ((member->type != baseMember->type) &&
+ (xmlSchemaCheckCOSSTDerivedOK(ctxt->schema,
+ member->type, baseMember->type, 0) != 0)) {
+ xmlSchemaPErrExt(ctxt, type->node,
+ XML_SCHEMAP_COS_ST_RESTRICTS_3_3_2_3, NULL,
+ NULL, NULL,
+ "Union simple type \"%s\": its member type "
+ "\"%s\" is not validly derived from its "
+ "corresponding member type \"%s\" of the base "
+ "type \"%s\" as defined in Type Derivation OK "
+ "(Simple).\n",
+ type->name, member->type->name,
+ baseMember->type->name,
+ type->baseType->name, NULL);
+ return (XML_SCHEMAP_COS_ST_RESTRICTS_3_3_2_3);
+ }
+ member = member->next;
+ baseMember = baseMember->next;
+ }
+ }
+ }
+ /*
+ * 3.3.2.4 Only pattern and enumeration facet components are
+ * allowed among the {facets}.
+ */
+ if (type->facets != NULL) {
+ xmlSchemaFacetPtr facet;
+ int ok = 1;
+
+ facet = type->facets;
+ do {
+ if ((facet->type != XML_SCHEMA_FACET_PATTERN) &&
+ (facet->type != XML_SCHEMA_FACET_ENUMERATION)) {
+ xmlSchemaPErr(ctxt, type->node,
+ XML_SCHEMAP_COS_ST_RESTRICTS_3_3_2_4,
+ "Union simple type \"%s\": the facet \"%s\" "
+ "is not allowed.\n",
+ type->name,
+ BAD_CAST xmlSchemaFacetTypeToString(facet->type));
+ ok = 0;
+ }
+ facet = facet->next;
+ } while (facet != NULL);
+ if (ok == 0)
+ return (XML_SCHEMAP_COS_ST_RESTRICTS_3_3_2_4);
+
+ }
+ /*
+ * TODO: 3.3.2.5 (facet derivation)
+ */
+ }
+ }
+
+ return (0);
+}
+
+/**
+ * xmlSchemaCheckSRCSimpleType:
+ * @ctxt: the schema parser context
+ * @type: the simple type definition
+ *
+ * Checks crc-simple-type constraints.
+ *
+ * Returns 0 if the constraints are satisfied,
+ * if not a positive error code and -1 on internal
+ * errors.
+ */
+static int
+xmlSchemaCheckSRCSimpleType(xmlSchemaParserCtxtPtr ctxt,
+ xmlSchemaTypePtr type)
+{
+ /*
+ * NOTE: src-simple-type 2-4 are redundant, since the checks
+ * were are done for the corresponding <restriction>, <list> and <union>
+ * elements, but W3C wants a <simpleType> error as well, so it gets one.
+ * Maby this can be skipped in the future, if we get sure it's not needed.
+ */
+ if (type->subtypes == NULL) {
+ xmlSchemaPErr(ctxt, type->node,
+ XML_SCHEMAS_ERR_INTERNAL,
+ "Internal error: xmlSchemaCheckSRCSimpleType, "
+ "no subtype on simple type \"%s\".\n",
+ type->name, NULL);
+ return (-1);
+ }
+ /*
+ * src-simple-type.1 The corresponding simple type definition, if any,
+ * must satisfy the conditions set out in Constraints on Simple Type
+ * Definition Schema Components (§3.14.6).
+ */
+ if ((xmlSchemaCheckSTPropsCorrect(ctxt, type) != 0) ||
+ (xmlSchemaCheckCOSSTRestricts(ctxt, type) != 0)) {
+ /*
+ * TODO: Removed this, since it got annoying to get an
+ * extra error report, if anything failed until now.
+ * Enable this if needed.
+ */
+ /*
+ xmlSchemaPErr(ctxt, type->node,
+ XML_SCHEMAP_SRC_SIMPLE_TYPE_1,
+ "Simple type \"%s\" does not satisfy the constraints "
+ "on simple type definitions.\n",
+ type->name, NULL);
+ */
+ return (XML_SCHEMAP_SRC_SIMPLE_TYPE_1);
+ }
+
+ if (type->subtypes->type == XML_SCHEMA_TYPE_RESTRICTION) {
+ /*
+ * src-simple-type.2 If the <restriction> alternative is chosen,
+ * either it must have a base [attribute] or a <simpleType> among its
+ * [children], but not both.
+ */
+ if (((type->subtypes->base == NULL) &&
+ ((type->subtypes->subtypes == NULL) ||
+ (type->subtypes->subtypes->type != XML_SCHEMA_TYPE_SIMPLE))) ||
+ ((type->subtypes->base != NULL) &&
+ (type->subtypes->subtypes != NULL) &&
+ (type->subtypes->subtypes->type == XML_SCHEMA_TYPE_SIMPLE))) {
+ xmlSchemaPErr(ctxt, type->node,
+ XML_SCHEMAP_SRC_SIMPLE_TYPE_2,
+ "Simple type \"%s\": "
+ "The <restriction> alternative is chosen, thus either the "
+ "\"base\" attribute or the <simpleType> child "
+ "must be present, but not both.\n",
+ type->name, NULL);
+ return (XML_SCHEMAP_SRC_SIMPLE_TYPE_2);
+ }
+ } else if (type->subtypes->type == XML_SCHEMA_TYPE_LIST) {
+ /* src-simple-type.3 If the <list> alternative is chosen, either it must have
+ * an itemType [attribute] or a <simpleType> among its [children],
+ * but not both.
+ * NOTE: baseType is set to the local simple type definiton,
+ * if existent, at parse time. This is a hack and not nice.
+ */
+ if (((type->subtypes->base == NULL) &&
+ (type->baseType == NULL)) ||
+ ((type->subtypes->base != NULL) &&
+ (type->subtypes->baseType != NULL))) {
+ xmlSchemaPErr(ctxt, type->node,
+ XML_SCHEMAP_SRC_SIMPLE_TYPE_3,
+ "Simple type \"%s\": "
+ "The <list> alternative is chosen, thus either the "
+ "\"itemType\" attribute or the <simpleType> child "
+ "must be present, but not both.\n",
+ type->name, NULL);
+ return (XML_SCHEMAP_SRC_SIMPLE_TYPE_3);
+ }
+
+
+ } else if (type->subtypes->type == XML_SCHEMA_TYPE_UNION) {
+ xmlSchemaTypeLinkPtr member;
+ xmlSchemaTypePtr ancestor, anySimpleType;
+
+ anySimpleType = xmlSchemaGetBuiltInType(XML_SCHEMAS_ANYSIMPLETYPE);
+
+ /* src-simple-type.4 Circular union type definition is disallowed. That is, if
+ * the <union> alternative is chosen, there must not be any entries
+ * in the memberTypes [attribute] at any depth which resolve to the
+ * component corresponding to the <simpleType>.
+ */
+ member = type->memberTypes;
+ while (member != NULL) {
+ ancestor = member->type;
+ while ((ancestor != NULL) && (ancestor->type != XML_SCHEMA_TYPE_BASIC)) {
+ if (ancestor->contentType == XML_SCHEMA_CONTENT_UNKNOWN)
+ xmlSchemaTypeFixup(ancestor, ctxt, NULL);
+ if (ancestor == anySimpleType)
+ break;
+ else if (ancestor == type) {
+ xmlSchemaPErr(ctxt, type->node,
+ XML_SCHEMAP_SRC_SIMPLE_TYPE_4,
+ "Simple type \"%s\" is not derived from the simple "
+ "ur-type definition (circular definitions are disallowed).\n",
+ type->name, NULL);
+ return (XML_SCHEMAP_SRC_SIMPLE_TYPE_4);
+ } else if (ancestor->flags & XML_SCHEMAS_TYPE_VARIETY_LIST) {
+ /*
+ * TODO: Although a list simple type must not have a union ST
+ * type as item type, which in turn has a list ST as member
+ * type, we will assume this here as well, since this check
+ * was not yet performed.
+ */
+
+ }
+ ancestor = ancestor->baseType;
+ }
+ member = member->next;
+ }
+
+ }
+
+ return (0);
}
/**
@@ -4781,162 +7846,269 @@ static void
xmlSchemaTypeFixup(xmlSchemaTypePtr typeDecl,
xmlSchemaParserCtxtPtr ctxt, const xmlChar * name)
{
+ xmlSchemaTypePtr ctxtType;
+
if (typeDecl == NULL)
return;
+ /*
+ * Do not allow the following types to be typefixed, prior to
+ * the corresponding simple/complex types.
+ */
+ if (ctxt->ctxtType == NULL) {
+ switch (typeDecl->type) {
+ case XML_SCHEMA_TYPE_SIMPLE_CONTENT:
+ case XML_SCHEMA_TYPE_COMPLEX_CONTENT:
+ case XML_SCHEMA_TYPE_UNION:
+ case XML_SCHEMA_TYPE_RESTRICTION:
+ case XML_SCHEMA_TYPE_EXTENSION:
+ return;
+ default:
+ break;
+ }
+ }
if (name == NULL)
name = typeDecl->name;
if (typeDecl->contentType == XML_SCHEMA_CONTENT_UNKNOWN) {
switch (typeDecl->type) {
- case XML_SCHEMA_TYPE_SIMPLE_CONTENT:{
- xmlSchemaTypeFixup(typeDecl->subtypes, ctxt, NULL);
- if (typeDecl->subtypes != NULL)
+ case XML_SCHEMA_TYPE_SIMPLE_CONTENT:{
+ if (typeDecl->subtypes != NULL) {
+ if (typeDecl->subtypes->contentType ==
+ XML_SCHEMA_CONTENT_UNKNOWN) {
+ xmlSchemaTypeFixup(typeDecl->subtypes, ctxt,
+ NULL);
+ }
typeDecl->contentType =
typeDecl->subtypes->contentType;
+ }
break;
}
case XML_SCHEMA_TYPE_RESTRICTION:{
+ xmlSchemaTypePtr base = NULL;
+
+ ctxt->ctxtType->flags |=
+ XML_SCHEMAS_TYPE_DERIVATION_METHOD_RESTRICTION;
if (typeDecl->subtypes != NULL)
xmlSchemaTypeFixup(typeDecl->subtypes, ctxt, NULL);
if (typeDecl->base != NULL) {
- xmlSchemaTypePtr baseType;
-
- baseType =
+ base =
xmlSchemaGetType(ctxt->schema, typeDecl->base,
typeDecl->baseNs);
- if (baseType == NULL) {
+ if (base == NULL) {
xmlSchemaPErr(ctxt, typeDecl->node,
- XML_SCHEMAP_UNKNOWN_BASE_TYPE,
- "Schemas: type %s base type %s not found\n",
- name, typeDecl->base);
- }
- typeDecl->baseType = baseType;
- }
- if (typeDecl->subtypes == NULL)
- if (typeDecl->baseType != NULL) {
- /* The base type might be not "type fixed" yet,
+ XML_SCHEMAP_SRC_RESOLVE,
+ "Restriction \"%s\": the QName \"%s\" of the "
+ "attribute \"base\" does not resolve to a schema "
+ "component.\n",
+ name, typeDecl->base);
+ } else if (base->contentType ==
+ XML_SCHEMA_CONTENT_UNKNOWN) {
+ /*
+ * The base type might be not "type fixed" yet,
* so do it now. */
- if (typeDecl->baseType->contentType ==
- XML_SCHEMA_CONTENT_UNKNOWN)
- xmlSchemaTypeFixup(typeDecl->baseType, ctxt, NULL);
+ /*
+ * TODO: Is a check for circular derivation already
+ * done?
+ */
+ xmlSchemaTypeFixup(base, ctxt, NULL);
+ }
+ }
+ if (ctxt->ctxtType->type == XML_SCHEMA_TYPE_COMPLEX) {
+ /*
+ * ComplexType restriction.
+ */
+ /*
+ * Base type: The type definition ·resolved· to by the ·actual
+ * value· of the base [attribute]
+ */
+ ctxt->ctxtType->baseType = base;
+ /*
+ * Content type.
+ */
+ if (typeDecl->subtypes == NULL)
+ /* 1.1.1 */
+ typeDecl->contentType = XML_SCHEMA_CONTENT_EMPTY;
+ else if ((typeDecl->subtypes->subtypes == NULL) &&
+ ((typeDecl->subtypes->type ==
+ XML_SCHEMA_TYPE_ALL)
+ || (typeDecl->subtypes->type ==
+ XML_SCHEMA_TYPE_SEQUENCE)))
+ /* 1.1.2 */
+ typeDecl->contentType = XML_SCHEMA_CONTENT_EMPTY;
+ else if ((typeDecl->subtypes->type ==
+ XML_SCHEMA_TYPE_CHOICE)
+ && (typeDecl->subtypes->subtypes == NULL))
+ /* 1.1.3 */
+ typeDecl->contentType = XML_SCHEMA_CONTENT_EMPTY;
+ else {
+ /* 1.2 and 2.X are applied at the other layer */
typeDecl->contentType =
- typeDecl->baseType->contentType;
+ XML_SCHEMA_CONTENT_ELEMENTS;
+ }
+ } else {
+ /*
+ * SimpleType restriction.
+ */
+ /* Base type:
+ * The Simple Type Definition component resolved to by
+ * the actual value of the base [attribute] or the
+ * <simpleType> [children], whichever is present.
+ */
+ if ((base == NULL) && (typeDecl->subtypes != NULL)) {
+ base = typeDecl->subtypes;
+ ctxt->ctxtType->baseType = base;
+ if (base->contentType == XML_SCHEMA_CONTENT_UNKNOWN)
+ xmlSchemaTypeFixup(base, ctxt, NULL);
} else
- /* 1.1.1 */
- typeDecl->contentType = XML_SCHEMA_CONTENT_EMPTY;
- else if ((typeDecl->subtypes->subtypes == NULL) &&
- ((typeDecl->subtypes->type ==
- XML_SCHEMA_TYPE_ALL)
- || (typeDecl->subtypes->type ==
- XML_SCHEMA_TYPE_SEQUENCE)))
- /* 1.1.2 */
- typeDecl->contentType = XML_SCHEMA_CONTENT_EMPTY;
- else if ((typeDecl->subtypes->type ==
- XML_SCHEMA_TYPE_CHOICE)
- && (typeDecl->subtypes->subtypes == NULL))
- /* 1.1.3 */
- typeDecl->contentType = XML_SCHEMA_CONTENT_EMPTY;
- else {
- /* 1.2 and 2.X are applied at the other layer */
- typeDecl->contentType =
- XML_SCHEMA_CONTENT_ELEMENTS;
- }
+ ctxt->ctxtType->baseType = base;
+
+ if (((typeDecl->base == NULL) &&
+ ((typeDecl->subtypes == NULL) ||
+ (typeDecl->subtypes->type != XML_SCHEMA_TYPE_SIMPLE))) ||
+ ((typeDecl->base != NULL) &&
+ (typeDecl->subtypes != NULL) &&
+ (typeDecl->subtypes->type == XML_SCHEMA_TYPE_SIMPLE))) {
+ /*
+ * src-restriction-base-or-simpleType
+ * Either the base [attribute] or the simpleType [child] of the
+ * <restriction> element must be present, but not both.
+ */
+ xmlSchemaPErr(ctxt, typeDecl->node,
+ XML_SCHEMAP_SRC_RESTRICTION_BASE_OR_SIMPLETYPE,
+ "Restriction \"%s\": "
+ "Either the \"base\" attribute or the <simpleType> child "
+ "must be present, but not both.\n",
+ typeDecl->name, NULL);
+ }
+ }
break;
}
case XML_SCHEMA_TYPE_EXTENSION:{
- xmlSchemaContentType explicitContentType;
- xmlSchemaTypePtr base;
-
- if (typeDecl->base != NULL) {
- xmlSchemaTypePtr baseType;
-
- baseType =
- xmlSchemaGetType(ctxt->schema, typeDecl->base,
- typeDecl->baseNs);
- if (baseType == NULL) {
- xmlSchemaPErr(ctxt, typeDecl->node,
- XML_SCHEMAP_UNKNOWN_BASE_TYPE,
- "Schemas: type %s base type %s not found\n",
- name, typeDecl->base);
- }
- typeDecl->baseType = baseType;
- }
- if (typeDecl->subtypes != NULL)
- xmlSchemaTypeFixup(typeDecl->subtypes, ctxt, NULL);
-
- explicitContentType = XML_SCHEMA_CONTENT_ELEMENTS;
- if (typeDecl->subtypes == NULL)
- /* 1.1.1 */
- explicitContentType = XML_SCHEMA_CONTENT_EMPTY;
- else if ((typeDecl->subtypes->subtypes == NULL) &&
- ((typeDecl->subtypes->type ==
- XML_SCHEMA_TYPE_ALL)
- || (typeDecl->subtypes->type ==
- XML_SCHEMA_TYPE_SEQUENCE)))
- /* 1.1.2 */
- explicitContentType = XML_SCHEMA_CONTENT_EMPTY;
- else if ((typeDecl->subtypes->type ==
- XML_SCHEMA_TYPE_CHOICE)
- && (typeDecl->subtypes->subtypes == NULL))
- /* 1.1.3 */
- explicitContentType = XML_SCHEMA_CONTENT_EMPTY;
-
- base = xmlSchemaGetType(ctxt->schema, typeDecl->base,
- typeDecl->baseNs);
- if (base == NULL) {
- xmlSchemaPErr(ctxt, typeDecl->node,
- XML_SCHEMAP_UNKNOWN_BASE_TYPE,
- "Schemas: base type %s of type %s not found\n",
- typeDecl->base, name);
- return;
- }
- if (typeDecl->recurse) {
+ xmlSchemaTypePtr base = NULL;
+ xmlSchemaContentType explicitContentType;
+
+ /*
+ * An extension does exist on a complexType only.
+ */
+ ctxt->ctxtType->flags |=
+ XML_SCHEMAS_TYPE_DERIVATION_METHOD_EXTENSION;
+ if (typeDecl->recurse) {
+ /* TODO: The word "recursive" should be changed to "circular" here. */
xmlSchemaPErr(ctxt, typeDecl->node,
XML_SCHEMAP_UNKNOWN_BASE_TYPE,
"Schemas: extension type %s is recursive\n",
name, NULL);
return;
}
- typeDecl->recurse = 1;
- xmlSchemaTypeFixup(base, ctxt, NULL);
- typeDecl->recurse = 0;
- if (explicitContentType == XML_SCHEMA_CONTENT_EMPTY) {
- /* 2.1 */
- typeDecl->contentType = base->contentType;
- } else if (base->contentType ==
- XML_SCHEMA_CONTENT_EMPTY) {
- /* 2.2 imbitable ! */
- typeDecl->contentType =
- XML_SCHEMA_CONTENT_ELEMENTS;
- } else {
- /* 2.3 imbitable pareil ! */
- typeDecl->contentType =
- XML_SCHEMA_CONTENT_ELEMENTS;
+ if (typeDecl->base != NULL) {
+ base =
+ xmlSchemaGetType(ctxt->schema, typeDecl->base,
+ typeDecl->baseNs);
+ if (base == NULL) {
+ xmlSchemaPErr(ctxt, typeDecl->node,
+ XML_SCHEMAP_SRC_RESOLVE,
+ "Extension \"%s\": the QName \"%s\" of the "
+ "attribute \"base\" does not resolve to a schema "
+ "component.\n",
+ name, typeDecl->base);
+ } else if (base->contentType ==
+ XML_SCHEMA_CONTENT_UNKNOWN) {
+ typeDecl->recurse = 1;
+ xmlSchemaTypeFixup(base, ctxt, NULL);
+ typeDecl->recurse = 0;
+ }
+ /*
+ * The type definition ·resolved· to by the ·actual
+ * value· of the base [attribute]
+ */
+ ctxt->ctxtType->baseType = base;
+ /*
+ * TODO: This one is still needed for computation of
+ * the content model by xmlSchemaBuildAContentModel.
+ * Try to get rid of it.
+ */
+ typeDecl->baseType = base;
}
+ if ((typeDecl->subtypes != NULL) &&
+ (typeDecl->subtypes->contentType == XML_SCHEMA_CONTENT_UNKNOWN))
+ xmlSchemaTypeFixup(typeDecl->subtypes, ctxt, NULL);
+
+ explicitContentType = XML_SCHEMA_CONTENT_ELEMENTS;
+ if (typeDecl->subtypes == NULL)
+ /* 1.1.1 */
+ explicitContentType = XML_SCHEMA_CONTENT_EMPTY;
+ else if ((typeDecl->subtypes->subtypes == NULL) &&
+ ((typeDecl->subtypes->type ==
+ XML_SCHEMA_TYPE_ALL)
+ || (typeDecl->subtypes->type ==
+ XML_SCHEMA_TYPE_SEQUENCE)))
+ /* 1.1.2 */
+ explicitContentType = XML_SCHEMA_CONTENT_EMPTY;
+ else if ((typeDecl->subtypes->type ==
+ XML_SCHEMA_TYPE_CHOICE)
+ && (typeDecl->subtypes->subtypes == NULL))
+ /* 1.1.3 */
+ explicitContentType = XML_SCHEMA_CONTENT_EMPTY;
+ if (base != NULL) {
+ /* It will be reported later, if the base is missing. */
+ if (explicitContentType == XML_SCHEMA_CONTENT_EMPTY) {
+ /* 2.1 */
+ typeDecl->contentType = base->contentType;
+ } else if (base->contentType ==
+ XML_SCHEMA_CONTENT_EMPTY) {
+ /* 2.2 imbitable ! */
+ typeDecl->contentType =
+ XML_SCHEMA_CONTENT_ELEMENTS;
+ } else {
+ /* 2.3 imbitable pareil ! */
+ typeDecl->contentType =
+ XML_SCHEMA_CONTENT_ELEMENTS;
+ }
+ }
break;
}
case XML_SCHEMA_TYPE_COMPLEX:{
+ ctxtType = ctxt->ctxtType;
+ ctxt->ctxtType = typeDecl;
+ if ((typeDecl->subtypes == NULL) ||
+ ((typeDecl->subtypes->type !=
+ XML_SCHEMA_TYPE_SIMPLE_CONTENT) &&
+ (typeDecl->subtypes->type !=
+ XML_SCHEMA_TYPE_COMPLEX_CONTENT))) {
+ /*
+ * This case is understood as shorthand for complex
+ * content restricting the ur-type definition, and
+ * the details of the mappings should be modified as
+ * necessary.
+ */
+ typeDecl->baseType = xmlSchemaGetBuiltInType(XML_SCHEMAS_ANYTYPE);
+ typeDecl->flags |=
+ XML_SCHEMAS_TYPE_DERIVATION_METHOD_RESTRICTION;
+ }
if (typeDecl->subtypes == NULL) {
- typeDecl->contentType = XML_SCHEMA_CONTENT_EMPTY;
-
+ typeDecl->contentType = XML_SCHEMA_CONTENT_EMPTY;
if (typeDecl->flags & XML_SCHEMAS_TYPE_MIXED)
typeDecl->contentType =
- XML_SCHEMA_CONTENT_MIXED;
+ XML_SCHEMA_CONTENT_MIXED;
} else {
- if (typeDecl->flags & XML_SCHEMAS_TYPE_MIXED)
+ if ((typeDecl->subtypes != NULL) &&
+ (typeDecl->subtypes->contentType ==
+ XML_SCHEMA_CONTENT_UNKNOWN)) {
+ xmlSchemaTypeFixup(typeDecl->subtypes, ctxt,
+ NULL);
+ }
+ if (typeDecl->flags & XML_SCHEMAS_TYPE_MIXED) {
typeDecl->contentType =
XML_SCHEMA_CONTENT_MIXED;
- else {
- xmlSchemaTypeFixup(typeDecl->subtypes, ctxt,
- NULL);
- if (typeDecl->subtypes != NULL)
+ } else {
+ if (typeDecl->subtypes != NULL) {
typeDecl->contentType =
typeDecl->subtypes->contentType;
- }
- if (typeDecl->attributes == NULL)
- typeDecl->attributes =
- typeDecl->subtypes->attributes;
+ }
+ }
}
+ xmlSchemaBuildAttributeValidation(ctxt, typeDecl);
+ ctxt->ctxtType = ctxtType;
break;
}
case XML_SCHEMA_TYPE_COMPLEX_CONTENT:{
@@ -4946,42 +8118,174 @@ xmlSchemaTypeFixup(xmlSchemaTypePtr typeDecl,
typeDecl->contentType =
XML_SCHEMA_CONTENT_MIXED;
} else {
- if (typeDecl->flags & XML_SCHEMAS_TYPE_MIXED)
+ if (typeDecl->flags & XML_SCHEMAS_TYPE_MIXED) {
typeDecl->contentType =
XML_SCHEMA_CONTENT_MIXED;
- else {
+ } else {
xmlSchemaTypeFixup(typeDecl->subtypes, ctxt,
NULL);
if (typeDecl->subtypes != NULL)
typeDecl->contentType =
typeDecl->subtypes->contentType;
}
+ /*
+ * Removed due to implementation of the build of attribute uses.
+ */
+ /*
if (typeDecl->attributes == NULL)
typeDecl->attributes =
typeDecl->subtypes->attributes;
+ */
}
break;
}
+ case XML_SCHEMA_TYPE_SIMPLE:
+ /*
+ * Simple Type Definition Schema Component
+ *
+ */
+ ctxtType = ctxt->ctxtType;
+ typeDecl->contentType = XML_SCHEMA_CONTENT_SIMPLE;
+ if (typeDecl->subtypes->contentType ==
+ XML_SCHEMA_CONTENT_UNKNOWN) {
+ ctxt->ctxtType = typeDecl;
+ xmlSchemaTypeFixup(typeDecl->subtypes, ctxt, NULL);
+ }
+ /* Fixup base type */
+ if ((typeDecl->baseType != NULL) &&
+ (typeDecl->baseType->contentType ==
+ XML_SCHEMA_CONTENT_UNKNOWN)) {
+ /* OPTIMIZE: Actually this one will never by hit, since
+ * the base type is already type-fixed in <restriction>.
+ */
+ ctxt->ctxtType = typeDecl;
+ xmlSchemaTypeFixup(typeDecl->baseType, ctxt, NULL);
+ }
+ /* Base type:
+ * 2 If the <list> or <union> alternative is chosen,
+ * then the ·simple ur-type definition·.
+ */
+ if (typeDecl->subtypes->type ==
+ XML_SCHEMA_TYPE_LIST) {
+ typeDecl->baseType = xmlSchemaGetBuiltInType(XML_SCHEMAS_ANYSIMPLETYPE);
+ typeDecl->flags |= XML_SCHEMAS_TYPE_VARIETY_LIST;
+ } else if (typeDecl->subtypes->type ==
+ XML_SCHEMA_TYPE_UNION) {
+ typeDecl->baseType = xmlSchemaGetBuiltInType(XML_SCHEMAS_ANYSIMPLETYPE);
+ typeDecl->flags |= XML_SCHEMAS_TYPE_VARIETY_UNION;
+ } else if (typeDecl->subtypes->type ==
+ XML_SCHEMA_TYPE_RESTRICTION) {
+ xmlSchemaFacetLinkPtr facet, cur, last = NULL;
+
+ /*
+ * Variety
+ * If the <restriction> alternative is chosen, then the
+ * {variety} of the {base type definition}.
+ */
+ if (typeDecl->baseType != NULL) {
+ if (typeDecl->baseType->flags &
+ XML_SCHEMAS_TYPE_VARIETY_ATOMIC)
+ typeDecl->flags |= XML_SCHEMAS_TYPE_VARIETY_ATOMIC;
+ else if (typeDecl->baseType->flags &
+ XML_SCHEMAS_TYPE_VARIETY_LIST)
+ typeDecl->flags |= XML_SCHEMAS_TYPE_VARIETY_LIST;
+ else if (typeDecl->baseType->flags &
+ XML_SCHEMAS_TYPE_VARIETY_UNION)
+ typeDecl->flags |= XML_SCHEMAS_TYPE_VARIETY_UNION;
+ /*
+ * Schema Component Constraint: Simple Type Restriction
+ * (Facets)
+ * NOTE: Satisfaction of 1 and 2 arise from the fixup
+ * applied beforehand.
+ *
+ * 3 The {facets} of R are the union of S and the {facets}
+ * of B, eliminating duplicates. To eliminate duplicates,
+ * when a facet of the same kind occurs in both S and the
+ * {facets} of B, the one in the {facets} of B is not
+ * included, with the exception of enumeration and pattern
+ * facets, for which multiple occurrences with distinct values
+ * are allowed.
+ */
+ if (typeDecl->baseType->facetSet != NULL) {
+ last = typeDecl->facetSet;
+ if (last != NULL)
+ while (last->next != NULL)
+ last = last->next;
+ cur = typeDecl->baseType->facetSet;
+ for (; cur != NULL; cur = cur->next) {
+ /*
+ * Base patterns won't be add here:
+ * they are ORed in a type and
+ * ANDed in derived types. This will
+ * happed at validation level by
+ * walking the base axis of the type.
+ */
+ if (cur->facet->type ==
+ XML_SCHEMA_FACET_PATTERN)
+ continue;
+ facet = NULL;
+ if ((typeDecl->facetSet != NULL) &&
+ (cur->facet->type !=
+ XML_SCHEMA_FACET_PATTERN) &&
+ (cur->facet->type !=
+ XML_SCHEMA_FACET_ENUMERATION)) {
+ facet = typeDecl->facetSet;
+ do {
+ if (cur->facet->type ==
+ facet->facet->type)
+ break;
+ facet = facet->next;
+ } while (facet != NULL);
+ }
+ if (facet == NULL) {
+ facet = (xmlSchemaFacetLinkPtr)
+ xmlMalloc(sizeof(xmlSchemaFacetLink));
+ if (facet == NULL) {
+ xmlSchemaPErrMemory(ctxt,
+ "fixing simpleType", NULL);
+ return;
+ }
+ facet->facet = cur->facet;
+ facet->next = NULL;
+ if (last == NULL)
+ typeDecl->facetSet = facet;
+ else
+ last->next = facet;
+ last = facet;
+ }
+ }
+ }
+ }
+ }
+ /*
+ * Check constraints.
+ */
+ xmlSchemaCheckSRCSimpleType(ctxt, typeDecl);
+ ctxt->ctxtType = ctxtType;
+ break;
case XML_SCHEMA_TYPE_SEQUENCE:
case XML_SCHEMA_TYPE_GROUP:
case XML_SCHEMA_TYPE_ALL:
case XML_SCHEMA_TYPE_CHOICE:
typeDecl->contentType = XML_SCHEMA_CONTENT_ELEMENTS;
break;
+ case XML_SCHEMA_TYPE_LIST:
+ xmlSchemaParseListRefFixup(typeDecl, ctxt);
+ typeDecl->contentType = XML_SCHEMA_CONTENT_SIMPLE;
+ break;
+ case XML_SCHEMA_TYPE_UNION:
+ xmlSchemaParseUnionRefCheck(typeDecl, ctxt);
+ typeDecl->contentType = XML_SCHEMA_CONTENT_SIMPLE;
+ break;
case XML_SCHEMA_TYPE_BASIC:
case XML_SCHEMA_TYPE_ANY:
case XML_SCHEMA_TYPE_FACET:
- case XML_SCHEMA_TYPE_SIMPLE:
case XML_SCHEMA_TYPE_UR:
case XML_SCHEMA_TYPE_ELEMENT:
case XML_SCHEMA_TYPE_ATTRIBUTE:
case XML_SCHEMA_TYPE_ATTRIBUTEGROUP:
case XML_SCHEMA_TYPE_ANY_ATTRIBUTE:
case XML_SCHEMA_TYPE_NOTATION:
- case XML_SCHEMA_TYPE_LIST:
- xmlSchemaParseListRefFixup(typeDecl, ctxt);
- case XML_SCHEMA_TYPE_UNION:
- xmlSchemaParseUnionRefCheck(typeDecl, ctxt);
case XML_SCHEMA_FACET_MININCLUSIVE:
case XML_SCHEMA_FACET_MINEXCLUSIVE:
case XML_SCHEMA_FACET_MAXINCLUSIVE:
@@ -5025,9 +8329,12 @@ xmlSchemaTypeFixup(xmlSchemaTypePtr typeDecl,
case XML_SCHEMA_CONTENT_MIXED:
xmlGenericError(xmlGenericErrorContext, "mixed\n");
break;
+ /* Removed, since not used. */
+ /*
case XML_SCHEMA_CONTENT_MIXED_OR_ELEMENTS:
xmlGenericError(xmlGenericErrorContext, "mixed or elems\n");
break;
+ */
case XML_SCHEMA_CONTENT_BASIC:
xmlGenericError(xmlGenericErrorContext, "basic\n");
break;
@@ -5060,72 +8367,150 @@ xmlSchemaCheckFacet(xmlSchemaFacetPtr facet,
if (nonNegativeIntegerType == NULL) {
nonNegativeIntegerType =
- xmlSchemaGetPredefinedType(BAD_CAST "nonNegativeInteger",
- xmlSchemaNs);
+ xmlSchemaGetBuiltInType(XML_SCHEMAS_NNINTEGER);
}
switch (facet->type) {
case XML_SCHEMA_FACET_MININCLUSIVE:
case XML_SCHEMA_FACET_MINEXCLUSIVE:
case XML_SCHEMA_FACET_MAXINCLUSIVE:
- case XML_SCHEMA_FACET_MAXEXCLUSIVE:{
+ case XML_SCHEMA_FACET_MAXEXCLUSIVE:
+ case XML_SCHEMA_FACET_ENUMERATION: {
/*
* Okay we need to validate the value
* at that point.
*/
xmlSchemaValidCtxtPtr vctxt;
-
+ xmlSchemaTypePtr base;
+
+ /* 4.3.5.5 Constraints on enumeration Schema Components
+ * Schema Component Constraint: enumeration valid restriction
+ * It is an ·error· if any member of {value} is not in the
+ * ·value space· of {base type definition}.
+ *
+ * minInclusive, maxInclusive, minExclusive, maxExclusive:
+ * The value ·must· be in the
+ * ·value space· of the ·base type·.
+ */
+ /*
+ * This function is intended to deliver a compiled value
+ * on the facet. In XML Schemas the type holding a facet,
+ * cannot be a built-in type. Thus to ensure that other API
+ * calls (relaxng) do work, if the given type is a built-in
+ * type, we will assume that the given built-in type *is
+ * already* the base type.
+ */
+ if (typeDecl->type != XML_SCHEMA_TYPE_BASIC) {
+ base = typeDecl->baseType;
+ if (base == NULL) {
+ xmlSchemaPErr(ctxt, typeDecl->node,
+ XML_SCHEMAS_ERR_INTERNAL,
+ "Internal error: xmlSchemaCheckFacet, "
+ "the type \"%s\" has no base type.\n",
+ typeDecl->name, NULL);
+ return (-1);
+ }
+ } else
+ base = typeDecl;
+ /*
+ * TODO: Try to avoid creating a new context.
+ */
vctxt = xmlSchemaNewValidCtxt(NULL);
- if (vctxt == NULL)
- break;
- xmlSchemaValidateSimpleValue(vctxt, typeDecl,
- facet->value);
- facet->val = vctxt->value;
- vctxt->value = NULL;
- if (facet->val == NULL) {
+ if (vctxt == NULL) {
+ xmlSchemaPErr(ctxt, typeDecl->node,
+ XML_SCHEMAS_ERR_INTERNAL,
+ "Internal error: xmlSchemaCheckFacet, "
+ "creating a new validation context.\n",
+ typeDecl->name, NULL);
+ return (-1);
+ }
+ vctxt->type = base;
+ ret = xmlSchemaValidateSimpleTypeValue(vctxt, facet->value, 0, 1);
+ facet->val = vctxt->value;
+ vctxt->value = NULL;
+ if (ret > 0) {
/* error code */
if (ctxt != NULL) {
- xmlSchemaPErr(ctxt, facet->node,
- XML_SCHEMAP_INVALID_FACET,
- "Schemas: type %s facet value %s invalid\n",
- name, facet->value);
+ xmlSchemaPErrExt(ctxt, facet->node,
+ XML_SCHEMAP_INVALID_FACET,
+ NULL, NULL, NULL,
+ "Type \"%s\": the value \"%s\" of the "
+ "facet \"%s\" is invalid.\n",
+ name, facet->value,
+ BAD_CAST xmlSchemaFacetTypeToString(facet->type),
+ NULL, NULL);
}
ret = -1;
- }
- xmlSchemaFreeValidCtxt(vctxt);
+ } else if (ret < 0) {
+ xmlSchemaPErrExt(ctxt, facet->node,
+ XML_SCHEMAS_ERR_INTERNAL,
+ NULL, NULL, NULL,
+ "Internal error: xmlSchemaCheckFacet, "
+ "failed to validate the value \"%s\" name of the "
+ "facet \"%s\" against the base type \"%s\".\n",
+ facet->value,
+ BAD_CAST xmlSchemaFacetTypeToString(facet->type),
+ base->name, NULL, NULL);
+ ret = -1;
+ }
+ xmlSchemaFreeValidCtxt(vctxt);
break;
}
+ /*
+ * Removed, since added to the case above.
+ *
case XML_SCHEMA_FACET_ENUMERATION:{
- /*
+ *
* Okay we need to validate the value
* at that point.
- */
+ *
xmlSchemaValidCtxtPtr vctxt;
int tmp;
+ xmlSchemaTypePtr base;
+ * 4.3.5.5 Constraints on enumeration Schema Components
+ * Schema Component Constraint: enumeration valid restriction
+ * It is an ·error· if any member of {value} is not in the
+ * ·value space· of {base type definition}.
+ *
vctxt = xmlSchemaNewValidCtxt(NULL);
if (vctxt == NULL)
break;
- tmp = xmlSchemaValidateSimpleValue(vctxt, typeDecl,
+ base = typeDecl->baseType;
+ if (base == NULL) {
+ xmlSchemaPErr(ctxt, typeDecl->node,
+ XML_SCHEMAS_ERR_INTERNAL,
+ "Internal error: xmlSchemaCheckFacet, "
+ "the type \"%s\" has no base type.\n",
+ typeDecl->name, NULL);
+ return (-1);
+ }
+ vctxt->type = base;
+ tmp = xmlSchemaValidateSimpleTypeValue(vctxt, facet->value, 0, 1);
+ * tmp = xmlSchemaValidateSimpleValue(vctxt, typeDecl,
facet->value);
+ *
if (tmp != 0) {
if (ctxt != NULL) {
xmlSchemaPErr(ctxt, facet->node,
- XML_SCHEMAP_INVALID_ENUM,
- "Schemas: type %s enumeration value %s invalid\n",
- name, facet->value);
+ XML_SCHEMAP_INVALID_ENUM,
+ "Type \"%s\": the value \"%s\" of the "
+ "facet \"enumeration\" is invalid.\n",
+ name, facet->value);
}
ret = -1;
}
xmlSchemaFreeValidCtxt(vctxt);
break;
}
+ */
case XML_SCHEMA_FACET_PATTERN:
facet->regexp = xmlRegexpCompile(facet->value);
if (facet->regexp == NULL) {
xmlSchemaPErr(ctxt, typeDecl->node,
- XML_SCHEMAP_REGEXP_INVALID,
- "Schemas: type %s facet regexp %s invalid\n",
- name, facet->value);
+ XML_SCHEMAP_REGEXP_INVALID,
+ "Type \"%s\": the value \"%s\" of the "
+ "facet \"pattern\" is invalid.\n",
+ name, facet->value);
ret = -1;
}
break;
@@ -5143,10 +8528,14 @@ xmlSchemaCheckFacet(xmlSchemaFacetPtr facet,
if (tmp != 0) {
/* error code */
if (ctxt != NULL) {
- xmlSchemaPErr(ctxt, facet->node,
- XML_SCHEMAP_INVALID_FACET_VALUE,
- "Schemas: type %s facet value %s invalid\n",
- name, facet->value);
+ xmlSchemaPErrExt(ctxt, facet->node,
+ XML_SCHEMAP_INVALID_FACET_VALUE,
+ NULL, NULL, NULL,
+ "Type \"%s\": the value \"%s\" of the "
+ "facet \"%s\" is invalid.\n",
+ name, facet->value,
+ BAD_CAST xmlSchemaFacetTypeToString(facet->type),
+ NULL, NULL);
}
ret = -1;
}
@@ -5162,9 +8551,10 @@ xmlSchemaCheckFacet(xmlSchemaFacetPtr facet,
} else {
if (ctxt != NULL) {
xmlSchemaPErr(ctxt, facet->node,
- XML_SCHEMAP_INVALID_WHITE_SPACE,
- "Schemas: type %s whiteSpace value %s invalid\n",
- name, facet->value);
+ XML_SCHEMAP_INVALID_WHITE_SPACE,
+ "Type \"%s\": the value \"%s\" of the "
+ "facet \"whiteSpace\" is invalid.\n",
+ name, facet->value);
}
ret = -1;
}
@@ -5187,17 +8577,19 @@ xmlSchemaCheckDefaults(xmlSchemaTypePtr typeDecl,
xmlSchemaParserCtxtPtr ctxt, const xmlChar * name)
{
if (name == NULL)
- name = typeDecl->name;
- if (typeDecl->type == XML_SCHEMA_TYPE_RESTRICTION) {
- if (typeDecl->facets != NULL) {
- xmlSchemaFacetPtr facet = typeDecl->facets;
-
- while (facet != NULL) {
- xmlSchemaCheckFacet(facet, typeDecl, ctxt, name);
- facet = facet->next;
- }
- }
- }
+ name = typeDecl->name;
+ /*
+ * NOTE: It is intended to use the facets list, instead
+ * of facetSet.
+ */
+ if (typeDecl->facets != NULL) {
+ xmlSchemaFacetPtr facet = typeDecl->facets;
+
+ while (facet != NULL) {
+ xmlSchemaCheckFacet(facet, typeDecl, ctxt, name);
+ facet = facet->next;
+ }
+ }
}
/**
@@ -5209,32 +8601,41 @@ xmlSchemaCheckDefaults(xmlSchemaTypePtr typeDecl,
* Fixes finish doing the computations on the attributes definitions
*/
static void
-xmlSchemaAttrGrpFixup(xmlSchemaAttributeGroupPtr attrgrpDecl,
+xmlSchemaAttrGrpFixup(xmlSchemaAttributeGroupPtr attrgrp,
xmlSchemaParserCtxtPtr ctxt, const xmlChar * name)
{
if (name == NULL)
- name = attrgrpDecl->name;
- if (attrgrpDecl->attributes != NULL)
+ name = attrgrp->name;
+ if (attrgrp->attributes != NULL)
return;
- if (attrgrpDecl->ref != NULL) {
+ if (attrgrp->ref != NULL) {
xmlSchemaAttributeGroupPtr ref;
- ref = xmlHashLookup2(ctxt->schema->attrgrpDecl, attrgrpDecl->ref,
- attrgrpDecl->refNs);
+ ref = xmlSchemaGetAttributeGroup(ctxt->schema, attrgrp->ref, attrgrp->refNs);
if (ref == NULL) {
- xmlSchemaPErr(ctxt, attrgrpDecl->node,
- XML_SCHEMAP_UNKNOWN_ATTRIBUTE_GROUP,
- "Schemas: attribute group %s reference %s not found\n",
- name, attrgrpDecl->ref);
+ xmlSchemaPErr(ctxt, attrgrp->node,
+ XML_SCHEMAP_SRC_RESOLVE,
+ "Attribute group \"%s\": the QName \"%s\" of the attribute "
+ "\"ref\" does not resolve to a schema "
+ "component.\n",
+ name, attrgrp->ref);
return;
}
xmlSchemaAttrGrpFixup(ref, ctxt, NULL);
- attrgrpDecl->attributes = ref->attributes;
- } else {
- xmlSchemaPErr(ctxt, attrgrpDecl->node, XML_SCHEMAP_NOATTR_NOREF,
- "Schemas: attribute %s has no attributes nor reference\n",
+ attrgrp->attributes = ref->attributes;
+ attrgrp->attributeWildcard = ref->attributeWildcard;
+ }
+ /*
+ * Removed, since a global attribute group does not need to hold any
+ * attributes or wildcard
+ */
+ /*
+ else {
+ xmlSchemaPErr(ctxt, attrgrp->node, XML_SCHEMAP_NOATTR_NOREF,
+ "Schemas: attribute group %s has no attributes nor reference\n",
name, NULL);
}
+ */
}
/**
@@ -5249,6 +8650,12 @@ static void
xmlSchemaAttrFixup(xmlSchemaAttributePtr attrDecl,
xmlSchemaParserCtxtPtr ctxt, const xmlChar * name)
{
+ /*
+ * The simple type definition corresponding to the <simpleType> element
+ * information item in the [children], if present, otherwise the simple
+ * type definition ·resolved· to by the ·actual value· of the type
+ * [attribute], if present, otherwise the ·simple ur-type definition·.
+ */
if (name == NULL)
name = attrDecl->name;
if (attrDecl->subtypes != NULL)
@@ -5256,31 +8663,34 @@ xmlSchemaAttrFixup(xmlSchemaAttributePtr attrDecl,
if (attrDecl->typeName != NULL) {
xmlSchemaTypePtr type;
- type = xmlSchemaGetType(ctxt->schema, attrDecl->typeName,
- attrDecl->typeNs);
- if (type == NULL) {
- xmlSchemaPErr(ctxt, attrDecl->node, XML_SCHEMAP_UNKNOWN_TYPE,
- "Schemas: attribute %s type %s not found\n",
- name, attrDecl->typeName);
- }
+ type = xmlSchemaGetType(ctxt->schema, attrDecl->typeName,
+ attrDecl->typeNs);
+ if (type == NULL) {
+ xmlSchemaPErr(ctxt, attrDecl->node,
+ XML_SCHEMAP_SRC_RESOLVE,
+ "Attribute \"%s\": the QName \"%s\" of the attribute "
+ "\"type\" does not resolve to a schema "
+ "component.\n",
+ name, attrDecl->typeName);
+ }
attrDecl->subtypes = type;
} else if (attrDecl->ref != NULL) {
xmlSchemaAttributePtr ref;
- ref = xmlHashLookup2(ctxt->schema->attrDecl, attrDecl->ref,
- attrDecl->refNs);
+ ref = xmlSchemaGetAttribute(ctxt->schema, attrDecl->ref, attrDecl->refNs);
if (ref == NULL) {
- xmlSchemaPErr(ctxt, attrDecl->node, XML_SCHEMAP_UNKNOWN_REF,
- "Schemas: attribute %s reference %s not found\n",
- name, attrDecl->ref);
+ xmlSchemaPErr(ctxt, attrDecl->node,
+ XML_SCHEMAP_SRC_RESOLVE,
+ "Attribute \"%s\": the QName \"%s\" of the attribute "
+ "\"ref\" does not resolve to a schema "
+ "component.\n",
+ name, attrDecl->ref);
return;
}
xmlSchemaAttrFixup(ref, ctxt, NULL);
attrDecl->subtypes = ref->subtypes;
- } else if (attrDecl->type != XML_SCHEMA_TYPE_ANY_ATTRIBUTE) {
- xmlSchemaPErr(ctxt, attrDecl->node, XML_SCHEMAP_NOTYPE_NOREF,
- "Schemas: attribute %s has no type nor reference\n",
- name, NULL);
+ } else {
+ attrDecl->subtypes = xmlSchemaGetBuiltInType(XML_SCHEMAS_ANYSIMPLETYPE);
}
}
@@ -5403,6 +8813,8 @@ xmlSchemaParse(xmlSchemaParserCtxtPtr ctxt)
/*
* Then fixup all types properties
*/
+ ctxt->ctxtType = NULL;
+ ctxt->parentItem = NULL;
xmlHashScan(ret->typeDecl, (xmlHashScanner) xmlSchemaTypeFixup, ctxt);
/*
@@ -5506,72 +8918,54 @@ xmlSchemaFacetTypeToString(xmlSchemaTypeType type)
static int
xmlSchemaValidateFacetsInternal(xmlSchemaValidCtxtPtr ctxt,
xmlSchemaTypePtr base,
- xmlSchemaFacetPtr facets,
+ xmlSchemaFacetLinkPtr facets,
const xmlChar * value, int fireErrors)
{
int ret = 0;
int tmp = 0;
xmlSchemaTypeType type;
- xmlSchemaFacetPtr facet = facets;
+ xmlSchemaFacetLinkPtr facetLink = facets;
- while (facet != NULL) {
- type = facet->type;
+ while (facetLink != NULL) {
+ type = facetLink->facet->type;
if (type == XML_SCHEMA_FACET_ENUMERATION) {
tmp = 1;
- while (facet != NULL) {
+ while (facetLink != NULL) {
tmp =
- xmlSchemaValidateFacet(base, facet, value,
+ xmlSchemaValidateFacet(base, facetLink->facet, value,
ctxt->value);
if (tmp == 0) {
return 0;
}
- facet = facet->next;
+ facetLink = facetLink->next;
}
} else
- tmp = xmlSchemaValidateFacet(base, facet, value, ctxt->value);
+ tmp = xmlSchemaValidateFacet(base, facetLink->facet, value,
+ ctxt->value);
if (tmp != 0) {
ret = tmp;
- if (fireErrors)
- xmlSchemaVErr(ctxt, ctxt->cur, XML_SCHEMAS_ERR_FACET,
- "Failed to validate type with facet %s\n",
- (const xmlChar *) xmlSchemaFacetTypeToString(type),
- NULL);
+ if (fireErrors) {
+ xmlSchemaVErr(ctxt, ctxt->cur, tmp,
+ "The value failed to validate against the facet \"%s\".\n",
+ (const xmlChar *) xmlSchemaFacetTypeToString(type),
+ NULL);
+
+ }
}
- if (facet != NULL)
- facet = facet->next;
+ if (facetLink != NULL)
+ facetLink = facetLink->next;
}
return (ret);
}
-/**
- * xmlSchemaValidateFacets:
- * @ctxt: a schema validation context
- * @base: the base type
- * @facets: the list of facets to check
- * @value: the lexical repr of the value to validate
- * @val: the precomputed value
- *
- * Check a value against all facet conditions
- *
- * Returns 0 if the element is schemas valid, a positive error code
- * number otherwise and -1 in case of internal or API error.
- */
-static int
-xmlSchemaValidateFacets(xmlSchemaValidCtxtPtr ctxt,
- xmlSchemaTypePtr base,
- xmlSchemaFacetPtr facets, const xmlChar * value)
-{
- return(xmlSchemaValidateFacetsInternal(ctxt, base, facets, value, 1));
-}
-
/************************************************************************
* *
* Simple type validation *
* *
************************************************************************/
-
+#if 0 /* Not currently used. */
/**
* xmlSchemaValidateSimpleValueUnion:
* @ctxt: a schema validation context
@@ -5703,7 +9097,6 @@ xmlSchemaValidateSimpleValueInternal(xmlSchemaValidCtxtPtr ctxt,
}
} else if (type->type == XML_SCHEMA_TYPE_RESTRICTION) {
xmlSchemaTypePtr base;
- xmlSchemaFacetPtr facet;
base = type->baseType;
if (base != NULL) {
@@ -5718,9 +9111,11 @@ xmlSchemaValidateSimpleValueInternal(xmlSchemaValidCtxtPtr ctxt,
* building the Schemas
*/
if (ctxt->schema != NULL) {
- if (ret == 0) {
- facet = type->facets;
- ret = xmlSchemaValidateFacetsInternal(ctxt, base, facet,
+ xmlSchemaFacetLinkPtr facetLink;
+
+ if ((ret == 0) && (type->facetSet != NULL)) {
+ facetLink = type->facetSet;
+ ret = xmlSchemaValidateFacetsInternal(ctxt, base, facetLink,
value, fireErrors);
}
}
@@ -5774,6 +9169,7 @@ xmlSchemaValidateSimpleValueInternal(xmlSchemaValidCtxtPtr ctxt,
}
return (ret);
}
+#endif
/************************************************************************
* *
@@ -5785,12 +9181,31 @@ static int xmlSchemaValidateContent(xmlSchemaValidCtxtPtr ctxt,
xmlNodePtr node);
static int xmlSchemaValidateAttributes(xmlSchemaValidCtxtPtr ctxt,
xmlNodePtr elem,
- xmlSchemaAttributePtr attributes);
+ xmlSchemaTypePtr type);
static int xmlSchemaValidateType(xmlSchemaValidCtxtPtr ctxt,
xmlNodePtr elem,
xmlSchemaElementPtr elemDecl,
xmlSchemaTypePtr type);
+
+/**
+ * xmlSchemaFreeAttrStates:
+ * @state: a list of attribute states
+ *
+ * Free the given list of attribute states
+ *
+ */
+static void
+xmlSchemaFreeAttributeStates(xmlSchemaAttrStatePtr state)
+{
+ xmlSchemaAttrStatePtr tmp;
+ while (state != NULL) {
+ tmp = state;
+ state = state->next;
+ xmlFree(tmp);
+ }
+}
+
/**
* xmlSchemaRegisterAttributes:
* @ctxt: a schema validation context
@@ -5803,29 +9218,30 @@ static int xmlSchemaValidateType(xmlSchemaValidCtxtPtr ctxt,
static int
xmlSchemaRegisterAttributes(xmlSchemaValidCtxtPtr ctxt, xmlAttrPtr attrs)
{
+ xmlSchemaAttrStatePtr tmp;
+
+ ctxt->attr = NULL;
+ ctxt->attrTop = NULL;
while (attrs != NULL) {
if ((attrs->ns != NULL) &&
(xmlStrEqual(attrs->ns->href, xmlSchemaInstanceNs))) {
attrs = attrs->next;
continue;
}
- if (ctxt->attrNr >= ctxt->attrMax) {
- xmlSchemaAttrStatePtr tmp;
-
- ctxt->attrMax *= 2;
tmp = (xmlSchemaAttrStatePtr)
- xmlRealloc(ctxt->attr, ctxt->attrMax *
- sizeof(xmlSchemaAttrState));
+ xmlMalloc(sizeof(xmlSchemaAttrState));
if (tmp == NULL) {
xmlSchemaVErrMemory(ctxt, "registering attributes", NULL);
- ctxt->attrMax /= 2;
return (-1);
}
+ tmp->attr = attrs;
+ tmp->state = XML_SCHEMAS_ATTR_UNKNOWN;
+ tmp->next = NULL;
+ if (ctxt->attr == NULL)
ctxt->attr = tmp;
- }
- ctxt->attr[ctxt->attrNr].attr = attrs;
- ctxt->attr[ctxt->attrNr].state = XML_SCHEMAS_ATTR_UNKNOWN;
- ctxt->attrNr++;
+ else
+ ctxt->attrTop->next = tmp;
+ ctxt->attrTop = tmp;
attrs = attrs->next;
}
return (0);
@@ -5845,18 +9261,41 @@ static int
xmlSchemaCheckAttributes(xmlSchemaValidCtxtPtr ctxt, xmlNodePtr node)
{
int ret = 0;
- int i;
+ xmlSchemaAttrStatePtr cur;
- for (i = ctxt->attrBase; i < ctxt->attrNr; i++) {
- if (ctxt->attr[i].attr == NULL)
- break;
- if (ctxt->attr[i].state == XML_SCHEMAS_ATTR_UNKNOWN) {
+ cur = ctxt->attr;
+ while ((cur != NULL) && (cur != ctxt->attrTop->next)) {
+ if (cur->state != XML_SCHEMAS_ATTR_CHECKED) {
ret = 1;
+ if (cur->state == XML_SCHEMAS_ATTR_UNKNOWN)
xmlSchemaVErr(ctxt, node, XML_SCHEMAS_ERR_ATTRUNKNOWN,
- "Attribute %s on %s is unknown\n",
- ctxt->attr[i].attr->name, node->name);
+ "Attribute \"%s\" is not allowed.\n",
+ cur->attr->name, NULL);
+ else if (cur->state == XML_SCHEMAS_ATTR_PROHIBITED)
+ /*
+ * TODO: This won't ever be touched so remove it.
+ */
+ xmlSchemaVErr(ctxt, node, XML_SCHEMAS_ERR_ATTRUNKNOWN,
+ "Attribute \"%s\" is prohibited.\n",
+ cur->attr->name, NULL);
+ else if (cur->state == XML_SCHEMAS_ATTR_INVALID_VALUE) {
+ xmlSchemaVErr(ctxt, node, XML_SCHEMAS_ERR_ATTRINVALID,
+ "Attribute \"%s\": the value is not valid.\n",
+ cur->attr->name, node->name);
+ } else if (cur->state == XML_SCHEMAS_ATTR_MISSING) {
+ if (cur->decl->ref != NULL)
+ xmlSchemaVErr(ctxt, node, XML_SCHEMAS_ERR_MISSING,
+ "Attribute \"%s\" is required but missing.\n",
+ cur->decl->ref, NULL);
+ else
+ xmlSchemaVErr(ctxt, node, XML_SCHEMAS_ERR_MISSING,
+ "Attribute \"%s\" is required but missing.\n",
+ cur->decl->name, NULL);
}
}
+ cur = cur->next;
+ }
+
return (ret);
}
@@ -5903,10 +9342,16 @@ xmlSchemaValidateSimpleContent(xmlSchemaValidCtxtPtr ctxt,
ret =
xmlSchemaValidateFacets(ctxt, base, facet, value);
}
- if ((ret == 0) && (type->attributes != NULL)) {
+ /*
+ * This should attempt to validate the attributes even
+ * when validation of the value failed.
+ */
+ /*
+ if (type->attributes != NULL) {
ret = xmlSchemaValidateAttributes(ctxt, node,
type->attributes);
}
+ */
break;
}
case XML_SCHEMA_TYPE_EXTENSION:{
@@ -5951,38 +9396,6 @@ xmlSchemaValidateCheckNodeList(xmlNodePtr nodelist)
}
/**
- * xmlSchemaSkipIgnored:
- * @ctxt: a schema validation context
- * @type: the current type context
- * @node: the top node.
- *
- * Skip ignorable nodes in that context
- *
- * Returns the new sibling
- * number otherwise and -1 in case of internal or API error.
- */
-static xmlNodePtr
-xmlSchemaSkipIgnored(xmlSchemaValidCtxtPtr ctxt ATTRIBUTE_UNUSED,
- xmlSchemaTypePtr type, xmlNodePtr node)
-{
- int mixed = 0;
-
- /*
- * TODO complete and handle entities
- */
- mixed = ((type->contentType == XML_SCHEMA_CONTENT_MIXED) ||
- (type->contentType == XML_SCHEMA_CONTENT_MIXED_OR_ELEMENTS));
- while ((node != NULL) &&
- ((node->type == XML_COMMENT_NODE) ||
- ((mixed == 1) && (node->type == XML_TEXT_NODE)) ||
- (((type->contentType == XML_SCHEMA_CONTENT_ELEMENTS) &&
- (node->type == XML_TEXT_NODE) && (IS_BLANK_NODE(node)))))) {
- node = node->next;
- }
- return (node);
-}
-
-/**
* xmlSchemaValidateCallback:
* @ctxt: a schema validation context
* @name: the name of the element detected (might be NULL)
@@ -6047,7 +9460,7 @@ xmlSchemaValidateSimpleRestrictionType(xmlSchemaValidCtxtPtr ctxt,
ret = xmlSchemaValidateCheckNodeList(child);
if (ret < 0) {
xmlSchemaVErr(ctxt, node, XML_SCHEMAS_ERR_INTERNAL,
- "Internal error: xmlSchemaValidateSimpleType %s content\n",
+ "Internal error: xmlSchemaValidateSimpleRestrictionType %s content\n",
node->name, NULL);
return (-1);
} else if (ret == 0) {
@@ -6063,6 +9476,7 @@ xmlSchemaValidateSimpleRestrictionType(xmlSchemaValidCtxtPtr ctxt,
}
#endif
+#if 0 /* Not used any more */
/**
* xmlSchemaValidateSimpleType:
* @ctxt: a schema validation context
@@ -6147,22 +9561,18 @@ xmlSchemaValidateSimpleType(xmlSchemaValidCtxtPtr ctxt, xmlNodePtr node)
value = xmlNodeGetContent(child);
switch (variety->type) {
case XML_SCHEMA_TYPE_RESTRICTION:{
- xmlSchemaFacetPtr facet;
-
base = variety->baseType;
if (base != NULL) {
ret = xmlSchemaValidateSimpleValue(ctxt, base, value);
} else {
- TODO}
- if (ret == 0) {
- facet = variety->facets;
- ret =
- xmlSchemaValidateFacets(ctxt, base, facet, value);
- }
+ TODO}
+
+ /* Removed due to changes of attribute validation:
if ((ret == 0) && (variety->attributes != NULL)) {
ret = xmlSchemaValidateAttributes(ctxt, node,
variety->attributes);
}
+ */
break;
}
case XML_SCHEMA_TYPE_LIST:
@@ -6178,6 +9588,9 @@ xmlSchemaValidateSimpleType(xmlSchemaValidCtxtPtr ctxt, xmlNodePtr node)
ret = ctxt->err;
}
}
+ if ((ret == 0) && (variety->facetSet != NULL)) {
+ ret = xmlSchemaValidateFacets(ctxt, base, variety->facetSet, value);
+ }
if (value != NULL)
xmlFree(value);
@@ -6188,6 +9601,496 @@ xmlSchemaValidateSimpleType(xmlSchemaValidCtxtPtr ctxt, xmlNodePtr node)
ctxt->type = type;
return (ret);
}
+#endif
+
+/**
+ * xmlSchemaValidateSimpleTypeValue:
+ * @ctxt: a schema validation context
+ * @value: the value to be validated
+ * @fireErrors: shall errors be reported?
+ * @applyFacets: shall facets be applied?
+ *
+ * Validates a value by the given type (user derived or built-in).
+ *
+ * Returns 0 if the value is valid, a positive error code
+ * number otherwise and -1 in case of an internal or API error.
+ * Note on reported errors: Although it might be nice to report
+ * the name of the simple/complex type, used to validate the content
+ * of a node, it is quite unnecessary: for global defined types
+ * the local name of the element is equal to the NCName of the type,
+ * for local defined types it makes no sense to output the internal
+ * computed name of the type. TODO: Instead, one should attach the
+ * struct of the type involved to the error handler - this allows
+ * the report of any additional information by the user.
+ * TODO: Correct character normalization of union simple types.
+ */
+static int
+xmlSchemaValidateSimpleTypeValue(xmlSchemaValidCtxtPtr ctxt,
+ const xmlChar *value,
+ int fireErrors,
+ int applyFacets)
+{
+ xmlSchemaTypePtr type;
+ int ret = 0;
+ type = ctxt->type;
+
+ if (type->type == XML_SCHEMA_TYPE_BASIC) {
+ xmlNodePtr child;
+
+ if (ctxt->value != NULL) {
+ xmlSchemaFreeValue(ctxt->value);
+ ctxt->value = NULL;
+ }
+ child = ctxt->node;
+ while (child != NULL) {
+ switch (child->type) {
+ case XML_TEXT_NODE:
+ case XML_CDATA_SECTION_NODE:
+ case XML_PI_NODE:
+ case XML_COMMENT_NODE:
+ case XML_XINCLUDE_START:
+ case XML_XINCLUDE_END:
+ break;
+ case XML_ENTITY_REF_NODE:
+ case XML_ENTITY_NODE:
+ TODO break;
+ case XML_ELEMENT_NODE:
+ xmlSchemaVErr(ctxt, ctxt->cur, XML_SCHEMAS_ERR_INVALIDELEM,
+ "Element \"%s\": child \"%s\" should not be present.\n",
+ ctxt->cur->name, child->name);
+ return (ctxt->err);
+ case XML_ATTRIBUTE_NODE:
+ case XML_DOCUMENT_NODE:
+ case XML_DOCUMENT_TYPE_NODE:
+ case XML_DOCUMENT_FRAG_NODE:
+ case XML_NOTATION_NODE:
+ case XML_HTML_DOCUMENT_NODE:
+ case XML_DTD_NODE:
+ case XML_ELEMENT_DECL:
+ case XML_ATTRIBUTE_DECL:
+ case XML_ENTITY_DECL:
+ case XML_NAMESPACE_DECL:
+#ifdef LIBXML_DOCB_ENABLED
+ case XML_DOCB_DOCUMENT_NODE:
+#endif
+ xmlSchemaVErr(ctxt, ctxt->cur, XML_SCHEMAS_ERR_INVALIDELEM,
+ "Element \"%s\": node type of node unexpected here.\n",
+ ctxt->cur->name, NULL);
+ return (ctxt->err);
+ }
+ child = child->next;
+ }
+ ret = xmlSchemaValPredefTypeNode(type, value, &(ctxt->value),
+ ctxt->cur);
+ if (ret > 0) {
+ if (type->flags & XML_SCHEMAS_TYPE_VARIETY_LIST)
+ ret = XML_SCHEMAV_CVC_DATATYPE_VALID_1_2_2;
+ else
+ ret = XML_SCHEMAV_CVC_DATATYPE_VALID_1_2_1;
+ if (fireErrors) {
+ if (ctxt->cur->type == XML_ATTRIBUTE_NODE)
+ xmlSchemaVErr(ctxt, ctxt->cur,
+ XML_SCHEMAV_CVC_DATATYPE_VALID_1_2_1,
+ "The value of attribute \"%s\" is not valid.\n",
+ ctxt->cur->name, NULL);
+ else
+ xmlSchemaVErr(ctxt, ctxt->cur,
+ XML_SCHEMAV_CVC_DATATYPE_VALID_1_2_1,
+ "The value is not valid.\n",
+ NULL, NULL);
+ }
+ } else if (ret < 0) {
+ xmlSchemaVErr(ctxt, ctxt->cur, XML_SCHEMAS_ERR_INTERNAL,
+ "Internal error: xmlSchemaValidateSimpleTypeValue, "
+ "validating built-in type \"%s\"\n",
+ type->name, NULL);
+ }
+ } else if (type->flags & XML_SCHEMAS_TYPE_VARIETY_ATOMIC) {
+ /* 1.2.1 if {variety} is ·atomic· then the string must ·match·
+ * a literal in the ·lexical space· of {base type definition}
+ */
+ ctxt->type = type->baseType;
+ ret = xmlSchemaValidateSimpleTypeValue(ctxt, value, 0, 0);
+ if (ret < 0) {
+ xmlSchemaVErr(ctxt, ctxt->cur, XML_SCHEMAS_ERR_INTERNAL,
+ "Internal error: xmlSchemaValidateSimpleTypeValue, "
+ "validating atomic simple type \"%s\"\n",
+ type->name, NULL);
+ } else if (ret > 0) {
+ ret = XML_SCHEMAV_CVC_DATATYPE_VALID_1_2_1;
+ if (fireErrors) {
+ xmlSchemaVErr(ctxt, ctxt->cur,
+ XML_SCHEMAV_CVC_DATATYPE_VALID_1_2_1,
+ "The value is not valid.\n",
+ NULL, NULL);
+ }
+
+ } else if ((applyFacets) &&
+ (type->facetSet != NULL)) {
+ xmlSchemaTypePtr builtIn;
+
+ /*
+ * Check facets. Be sure to pass the built-in type to
+ * xmlSchemaValidateFacetsInternal.
+ */
+ builtIn = type->baseType;
+ while (builtIn->type != XML_SCHEMA_TYPE_BASIC)
+ builtIn = builtIn->baseType;
+ ret = xmlSchemaValidateFacetsInternal(ctxt, builtIn,
+ type->facetSet, value, fireErrors);
+ if (ret < 0) {
+ xmlSchemaVErr(ctxt, ctxt->cur, XML_SCHEMAS_ERR_INTERNAL,
+ "Internal error: xmlSchemaValidateSimpleTypeValue, "
+ "validating facets of atomic simple type \"%s\"\n",
+ type->name, NULL);
+ } else if (ret > 0) {
+ ret = XML_SCHEMAV_CVC_DATATYPE_VALID_1_2_1;
+ if (fireErrors) {
+ xmlSchemaVErr(ctxt, ctxt->cur,
+ XML_SCHEMAV_CVC_DATATYPE_VALID_1_2_1,
+ "The value is not valid.\n",
+ NULL, NULL);
+ }
+ }
+ }
+ } else if (type->flags & XML_SCHEMAS_TYPE_VARIETY_LIST) {
+
+ xmlSchemaTypePtr tmpType;
+ const xmlChar *cur, *end;
+ xmlChar *tmp;
+ int len = 0;
+
+ /* 1.2.2 if {variety} is ·list· then the string must be a sequence
+ * of white space separated tokens, each of which ·match·es a literal
+ * in the ·lexical space· of {item type definition}
+ */
+
+ tmpType = xmlSchemaGetListSimpleTypeItemType(type);
+ cur = value;
+ do {
+ while (IS_BLANK_CH(*cur))
+ cur++;
+ end = cur;
+ while ((*end != 0) && (!(IS_BLANK_CH(*end))))
+ end++;
+ if (end == cur)
+ break;
+ tmp = xmlStrndup(cur, end - cur);
+ len++;
+ ctxt->type = tmpType;
+ ret = xmlSchemaValidateSimpleTypeValue(ctxt, tmp, 0, 1);
+ xmlFree(tmp);
+ if (ret > 0) {
+ ret = XML_SCHEMAV_CVC_DATATYPE_VALID_1_2_2;
+ if (fireErrors) {
+ xmlSchemaVErr(ctxt, ctxt->cur,
+ XML_SCHEMAV_CVC_DATATYPE_VALID_1_2_2,
+ "The value is not valid.\n",
+ NULL, NULL);
+ }
+ break;
+ } else if (ret < 0)
+ break;
+ cur = end;
+ } while (*cur != 0);
+ /*
+ * Check facets.
+ */
+ if (ret < 0) {
+ xmlSchemaVErr(ctxt, ctxt->cur, XML_SCHEMAS_ERR_INTERNAL,
+ "Internal error: xmlSchemaValidateSimpleTypeValue, "
+ "validating list simple type \"%s\"\n",
+ type->name, NULL);
+ } else if ((ret == 0) && (applyFacets) &&
+ (type->facetSet != NULL)) {
+ int okFacet = 0, hasFacet = 0;
+ unsigned long expLen;
+ xmlSchemaFacetPtr facet;
+ xmlSchemaFacetLinkPtr facetLink;
+ xmlChar *collapsedValue = NULL;
+
+ /*
+ * The value of ·whiteSpace· is fixed to the value collapse.
+ */
+ collapsedValue = xmlSchemaCollapseString((const xmlChar *) value);
+ if (collapsedValue != NULL)
+ value = (const xmlChar *) collapsedValue;
+ facetLink = type->facetSet;
+ do {
+ facet = facetLink->facet;
+ /*
+ * List types need a special facet treatment.
+ * Skip whiteSpace, since it is fixed to "collapse".
+ */
+ if ((facet->type != XML_SCHEMA_FACET_WHITESPACE) &&
+ (facet->type != XML_SCHEMA_FACET_PATTERN)) {
+ ret = xmlSchemaValidateListSimpleTypeFacet(facet, value,
+ len, &expLen);
+ if (facet->type == XML_SCHEMA_FACET_ENUMERATION) {
+ hasFacet = 1;
+ if (ret == 0)
+ okFacet = 1;
+ } else if ((ret > 0) && (fireErrors)) {
+ char l[25], fl[25];
+ /* FIXME: What is the max expected string length of the
+ * length value?
+ */
+ snprintf(l, 24, "%d", len);
+ snprintf(fl, 24, "%lu", expLen);
+ if (ret == XML_SCHEMAV_CVC_LENGTH_VALID) {
+ xmlSchemaVErr(ctxt, ctxt->cur, ret,
+ "The value with length \"%s\" is not "
+ "facet-valid with respect to length = \"%s\".\n",
+ (const xmlChar *)l, (const xmlChar *)fl);
+ } else if (ret == XML_SCHEMAV_CVC_MINLENGTH_VALID) {
+ xmlSchemaVErr(ctxt, ctxt->cur, ret,
+ "The value with length \"%s\" is not "
+ "facet-valid with respect to minLength = \"%s\".\n",
+ (const xmlChar *)l, (const xmlChar *)fl);
+ } else if (ret == XML_SCHEMAV_CVC_MAXLENGTH_VALID) {
+ xmlSchemaVErr(ctxt, ctxt->cur, ret,
+ "The value with length \"%s\" is not "
+ "facet-valid with respect to maxLength = \"%s\".\n",
+ (const xmlChar *)l, (const xmlChar *)fl);
+ } else {
+ xmlSchemaVErr(ctxt, ctxt->cur, ret,
+ "The value is not valid with respect "
+ "to the facet \"%s\".\n",
+ (const xmlChar *)
+ xmlSchemaFacetTypeToString(facet->type),
+ NULL);
+ }
+ } else if (ret < 0) {
+ xmlSchemaVErr(ctxt, ctxt->cur, XML_SCHEMAS_ERR_INTERNAL,
+ "Internal error: xmlSchemaValidateSimpleTypeValue, "
+ "validating facets of list simple type \"%s\"\n",
+ type->name, NULL);
+ break;
+ }
+ }
+ facetLink = facetLink->next;
+ } while (facetLink != NULL);
+ if (ret >= 0) {
+ if ((hasFacet) && (okFacet == 0)) {
+ ret = XML_SCHEMAV_CVC_ENUMERATION_VALID;
+ if (fireErrors) {
+ /*
+ * TODO: Try to create a report that outputs all the enumeration
+ * values in use.
+ */
+ xmlSchemaVErr(ctxt, ctxt->cur, XML_SCHEMAV_CVC_ENUMERATION_VALID,
+ "The value is not valid with respect "
+ "to the \"enumeration\" facet(s).\n",
+ NULL, NULL);
+ }
+
+ }
+ /*
+ * Pattern facets are ORed at type level and ANDed
+ * if derived. Walk the base axis.
+ */
+ hasFacet = 0;
+ tmpType = type;
+ do {
+ okFacet = 0;
+ for (facetLink = tmpType->facetSet; facetLink != NULL;
+ facetLink = facetLink->next) {
+ if (facetLink->facet->type != XML_SCHEMA_FACET_PATTERN)
+ continue;
+ okFacet = xmlSchemaValidateListSimpleTypeFacet(
+ facetLink->facet, value, len, &expLen);
+ if (okFacet <= 0)
+ break;
+ }
+ if (okFacet != 0)
+ break;
+ tmpType = tmpType->baseType;
+ } while ((tmpType != NULL) && (tmpType->type != XML_SCHEMA_TYPE_BASIC));
+ if (okFacet < 0) {
+ xmlSchemaVErr(ctxt, ctxt->cur, XML_SCHEMAS_ERR_INTERNAL,
+ "Internal error: xmlSchemaValidateSimpleTypeValue, "
+ "validating \"pattern\" facets of type \"%s\"\n",
+ type->name, NULL);
+ } else if (okFacet > 0) {
+ ret = XML_SCHEMAV_CVC_PATTERN_VALID;
+ if (fireErrors) {
+ xmlSchemaVErr(ctxt, ctxt->cur, XML_SCHEMAV_CVC_ENUMERATION_VALID,
+ "The value is not valid with respect "
+ "to the \"pattern\" facet(s) of type "
+ "\"%s\".\n",
+ tmpType->name, NULL);
+ }
+ }
+ }
+
+ if (collapsedValue != NULL)
+ xmlFree(collapsedValue);
+ }
+ } else if (type->flags & XML_SCHEMAS_TYPE_VARIETY_UNION) {
+ xmlSchemaTypeLinkPtr memberLink;
+
+ /*
+ * TODO: For all datatypes ·derived· by ·union· whiteSpace does
+ * not apply directly; however, the normalization behavior of ·union·
+ * types is controlled by the value of whiteSpace on that one of the
+ * ·memberTypes· against which the ·union· is successfully validated.
+ *
+ * This means that the value is normalized by the first validating
+ * member type, then the facets of the union type are applied. This
+ * needs changing of the value!
+ */
+
+ /*
+ * 1.2.3 if {variety} is ·union· then the string must ·match· a
+ * literal in the ·lexical space· of at least one member of
+ * {member type definitions}
+ */
+ memberLink = xmlSchemaGetUnionSimpleTypeMemberTypes(type);
+ if (memberLink == NULL) {
+ xmlSchemaVErr(ctxt, ctxt->cur, XML_SCHEMAS_ERR_INTERNAL,
+ "Internal error: xmlSchemaValidateSimpleTypeValue, "
+ "union simple type \"%s\" has no member types\n",
+ type->name, NULL);
+ ret = -1;
+ }
+ if (ret == 0) {
+ while (memberLink != NULL) {
+ ctxt->type = memberLink->type;
+ ret = xmlSchemaValidateSimpleTypeValue(ctxt, value, 0, 1);
+ if ((ret <= 0) || (ret == 0))
+ break;
+ memberLink = memberLink->next;
+ }
+ if (ret > 0) {
+ ret = XML_SCHEMAV_CVC_DATATYPE_VALID_1_2_3;
+ if (fireErrors) {
+ xmlSchemaVErr(ctxt, ctxt->cur,
+ XML_SCHEMAV_CVC_DATATYPE_VALID_1_2_3,
+ "The value is not valid.\n",
+ NULL, NULL);
+ }
+ } else if (ret < 0) {
+ xmlSchemaVErr(ctxt, ctxt->cur, XML_SCHEMAS_ERR_INTERNAL,
+ "Internal error: xmlSchemaValidateSimpleTypeValue, "
+ "validating members of union simple type \"%s\"\n",
+ type->name, NULL);
+ }
+ }
+ /*
+ * Apply facets (pattern, enumeration).
+ */
+ if ((ret == 0) && (applyFacets) &&
+ (type->facetSet != NULL)) {
+ xmlSchemaTypePtr anySimpleType;
+ /*
+ * Check facets. Be sure to pass the built-in type (the
+ * simple ur-type in this case) to xmlSchemaValidateFacetsInternal.
+ */
+ anySimpleType = type->baseType;
+ while (anySimpleType->type != XML_SCHEMA_TYPE_BASIC)
+ anySimpleType = anySimpleType->baseType;
+ ret = xmlSchemaValidateFacetsInternal(ctxt, anySimpleType,
+ type->facetSet, value, fireErrors);
+ if (ret < 0) {
+ xmlSchemaVErr(ctxt, ctxt->cur, XML_SCHEMAS_ERR_INTERNAL,
+ "Internal error: xmlSchemaValidateSimpleTypeValue, "
+ "validating facets of union simple type \"%s\"\n",
+ type->name, NULL);
+ } else if (ret > 0) {
+ ret = XML_SCHEMAV_CVC_DATATYPE_VALID_1_2_3;
+ if (fireErrors) {
+ xmlSchemaVErr(ctxt, ctxt->cur,
+ XML_SCHEMAV_CVC_DATATYPE_VALID_1_2_1,
+ "The value is not valid.\n",
+ NULL, NULL);
+ }
+ }
+ }
+ }
+ ctxt->type = type;
+ return (ret);
+}
+
+/**
+ * xmlSchemaValidateSimpleTypeElement:
+ * @ctxt: a schema validation context
+ * @node: the element node to be validated.
+ *
+ * Validate the element against a simple type.
+ *
+ * Returns 0 if the element is valid, a positive error code
+ * number otherwise and -1 in case of an internal or API error.
+ */
+static int
+xmlSchemaValidateSimpleTypeElement(xmlSchemaValidCtxtPtr ctxt, xmlNodePtr node)
+{
+ xmlNodePtr child;
+ xmlSchemaTypePtr type;
+ xmlAttrPtr attr;
+ int ret;
+ xmlChar *value;
+
+
+ child = ctxt->node;
+ type = ctxt->type;
+
+ if ((ctxt == NULL) || (type == NULL)) {
+ xmlSchemaVErr(ctxt, node, XML_SCHEMAS_ERR_INTERNAL,
+ "Internal error: xmlSchemaValidateSimpleTypeElement %s\n",
+ node->name, NULL);
+ return (-1);
+ }
+
+ /*
+ * Only text and text based entities references shall be found there
+ */
+ ret = xmlSchemaValidateCheckNodeList(child);
+ if (ret < 0) {
+ xmlSchemaVErr(ctxt, node, XML_SCHEMAS_ERR_INTERNAL,
+ "Internal error: xmlSchemaValidateSimpleTypeElement %s content\n",
+ node->name, NULL);
+ return (-1);
+ } else if (ret == 0) {
+ /* 3.1.2 The element information item must have no element
+ * information item [children].
+ */
+ xmlSchemaVErr(ctxt, node, XML_SCHEMAV_CVC_TYPE_3_1_2,
+ "Element \"%s\" must have no element children.\n",
+ node->name, NULL);
+ return (-1);
+ }
+ /*
+ * Validation Rule: Element Locally Valid (Type): 3.1.1
+ */
+ attr = node->properties;
+ while (attr != NULL) {
+ if ((attr->ns == NULL) ||
+ (!xmlStrEqual(attr->ns->href, xmlSchemaInstanceNs)) ||
+ ((!xmlStrEqual(attr->name, BAD_CAST "type")) &&
+ (!xmlStrEqual(attr->name, BAD_CAST "nil")) &&
+ (!xmlStrEqual(attr->name, BAD_CAST "schemaLocation")) &&
+ (!xmlStrEqual
+ (attr->name, BAD_CAST "noNamespaceSchemaLocation")))) {
+ xmlSchemaVErr(ctxt, node,
+ XML_SCHEMAV_CVC_TYPE_3_1_1,
+ "The attributes of element \"%s\" must be empty, excepting "
+ "those whose namespace name is identical to "
+ "http://www.w3.org/2001/XMLSchema-instance and whose local "
+ "name is one of type, nil, schemaLocation or "
+ "noNamespaceSchemaLocation.\n",
+ node->name, attr->name);
+ return (ctxt->err);
+ }
+ attr = attr->next;
+ }
+ value = xmlNodeGetContent(child);
+ ret = xmlSchemaValidateSimpleTypeValue(ctxt, value, 1, 1);
+ if (value != NULL)
+ xmlFree(value);
+
+ ctxt->type = type;
+ return (ret);
+}
/**
* xmlSchemaValidateElementType:
@@ -6207,7 +10110,18 @@ xmlSchemaValidateElementType(xmlSchemaValidCtxtPtr ctxt, xmlNodePtr node)
xmlSchemaTypePtr type;
xmlRegExecCtxtPtr oldregexp; /* cont model of the parent */
xmlSchemaElementPtr decl;
- int ret, attrBase;
+ int ret;
+ xmlSchemaAttrStatePtr attrs = NULL, attrTop = NULL;
+
+ /* This one is called by xmlSchemaValidateContent only. */
+ /*
+ * TODO: Look into "xmlSchemaValidateElement" for missing parts, which should
+ * go in here as well.
+ */
+
+ /* TODO: Is this one called always with an element declaration as the
+ * context's type?
+ */
oldregexp = ctxt->regexp;
@@ -6241,10 +10155,12 @@ xmlSchemaValidateElementType(xmlSchemaValidCtxtPtr ctxt, xmlNodePtr node)
/*
* Verify the attributes
*/
- attrBase = ctxt->attrBase;
- ctxt->attrBase = ctxt->attrNr;
- xmlSchemaRegisterAttributes(ctxt, child->properties);
- xmlSchemaValidateAttributes(ctxt, child, type->attributes);
+
+ attrs = ctxt->attr;
+ attrTop = ctxt->attrTop;
+
+ xmlSchemaRegisterAttributes(ctxt, child->properties);
+
/*
* Verify the element content recursively
*/
@@ -6289,16 +10205,17 @@ xmlSchemaValidateElementType(xmlSchemaValidCtxtPtr ctxt, xmlNodePtr node)
* Verify that all attributes were Schemas-validated
*/
xmlSchemaCheckAttributes(ctxt, node);
- ctxt->attrNr = ctxt->attrBase;
- ctxt->attrBase = attrBase;
-
+ if (ctxt->attr != NULL)
+ xmlSchemaFreeAttributeStates(ctxt->attr);
+ ctxt->attr = attrs;
+ ctxt->attrTop = attrTop;
ctxt->regexp = oldregexp;
-
ctxt->node = child;
ctxt->type = type;
return (ctxt->err);
}
+#if 0 /* Not currently used. */
/**
* xmlSchemaValidateBasicType:
* @ctxt: a schema validation context
@@ -6326,6 +10243,13 @@ xmlSchemaValidateBasicType(xmlSchemaValidCtxtPtr ctxt, xmlNodePtr node)
node->name, NULL);
return (-1);
}
+ if (type->type != XML_SCHEMA_TYPE_BASIC) {
+ xmlSchemaVErr(ctxt, node, XML_SCHEMAS_ERR_INTERNAL,
+ "Internal error: xmlSchemaValidateBasicType, "
+ "the given type is not a built-in type.\n",
+ node->name, NULL);
+ return (-1);
+ }
/*
* First check the content model of the node.
*/
@@ -6377,9 +10301,11 @@ xmlSchemaValidateBasicType(xmlSchemaValidCtxtPtr ctxt, xmlNodePtr node)
xmlSchemaFreeValue(ctxt->value);
ctxt->value = NULL;
}
+
ret = xmlSchemaValidatePredefinedType(type, value, &(ctxt->value));
+
if (value != NULL)
- xmlFree(value);
+ xmlFree(value);
if (ret != 0) {
xmlSchemaVErr(ctxt, node, XML_SCHEMAS_ERR_VALUE,
"Element %s: failed to validate basic type %s\n",
@@ -6387,6 +10313,7 @@ xmlSchemaValidateBasicType(xmlSchemaValidCtxtPtr ctxt, xmlNodePtr node)
}
return (ret);
}
+#endif
/**
* xmlSchemaValidateComplexType:
@@ -6398,101 +10325,221 @@ xmlSchemaValidateBasicType(xmlSchemaValidCtxtPtr ctxt, xmlNodePtr node)
* Validation Rule: Element Locally Valid (Complex Type)
*
* Returns 0 if the element is schemas valid, a positive error code
- * number otherwise and -1 in case of internal or API error.
+ * number otherwise and -1 in case of internal or API error.
+ * Note on reported errors: Although it might be nice to report
+ * the name of the simple/complex type, used to validate the content
+ * of a node, it is quite unnecessary: for global defined types
+ * the local name of the element is equal to the NCName of the type,
+ * for local defined types it makes no sense to output the internal
+ * computed name of the type. TODO: Instead, one should attach the
+ * struct of the type involved to the error handler - this allows
+ * the report of any additional information by the user.
*/
static int
xmlSchemaValidateComplexType(xmlSchemaValidCtxtPtr ctxt, xmlNodePtr node)
{
xmlNodePtr child;
- xmlSchemaTypePtr type, subtype;
- int ret;
+ xmlSchemaTypePtr type;
+ int ret = 0;
child = ctxt->node;
type = ctxt->type;
ctxt->cur = node;
switch (type->contentType) {
- case XML_SCHEMA_CONTENT_EMPTY:
- if (type->baseType != NULL) {
- } else if (child != NULL) {
- xmlSchemaVErr(ctxt, node, XML_SCHEMAS_ERR_NOTEMPTY,
- "Element %s is supposed to be empty\n",
- node->name, NULL);
- }
- if (type->attributes != NULL) {
- xmlSchemaValidateAttributes(ctxt, node, type->attributes);
- }
- subtype = type->subtypes;
- while (subtype != NULL) {
- ctxt->type = subtype;
- xmlSchemaValidateComplexType(ctxt, node);
- subtype = subtype->next;
- }
+ case XML_SCHEMA_CONTENT_EMPTY: {
+ /*
+ * 1 If the {content type} is empty, then the element information
+ * item has no character or element information item [children].
+ */
+ /* TODO: Hmm, Xerces reports nodes like Comment to be invalid
+ * content, but XSV does not.
+ */
+ /*
+ * TODO: Is the entity stuff correct?
+ */
+ while (child != NULL) {
+ if ((child->type == XML_ELEMENT_NODE) ||
+ /*
+ * TODO: Ask Daniel if this are all character nodes.
+ */
+ (child->type == XML_TEXT_NODE) ||
+ (child->type == XML_CDATA_SECTION_NODE) ||
+ (child->type == XML_ENTITY_REF_NODE) ||
+ (child->type == XML_ENTITY_NODE)) {
+ break;
+ }
+ child = child->next;
+ }
+ if (child != NULL) {
+ xmlSchemaVErr(ctxt, node, XML_SCHEMAV_CVC_COMPLEX_TYPE_2_1,
+ "Character or element children are not allowed, "
+ "because the content type is empty.\n",
+ NULL, NULL);
+ }
break;
+ }
case XML_SCHEMA_CONTENT_ELEMENTS:
- case XML_SCHEMA_CONTENT_MIXED:
- case XML_SCHEMA_CONTENT_MIXED_OR_ELEMENTS:
- /*
- * Skip ignorable nodes in that context
- */
- child = xmlSchemaSkipIgnored(ctxt, type, child);
- while (child != NULL) {
- if (child->type == XML_ELEMENT_NODE) {
- ret = xmlRegExecPushString(ctxt->regexp,
- child->name, child);
+ case XML_SCHEMA_CONTENT_MIXED:
+ while (child != NULL) {
+ if (child->type == XML_ELEMENT_NODE) {
+ ret = xmlRegExecPushString(ctxt->regexp,
+ child->name, child);
#ifdef DEBUG_AUTOMATA
- if (ret < 0)
- xmlGenericError(xmlGenericErrorContext,
- " --> %s Error\n", child->name);
- else
- xmlGenericError(xmlGenericErrorContext,
- " --> %s\n", child->name);
+ if (ret < 0)
+ xmlGenericError(xmlGenericErrorContext,
+ " --> %s Error\n", child->name);
+ else
+ xmlGenericError(xmlGenericErrorContext,
+ " --> %s\n", child->name);
#endif
- }
- child = child->next;
- /*
- * Skip ignorable nodes in that context
- */
- child = xmlSchemaSkipIgnored(ctxt, type, child);
- }
- if (((type->contentType == XML_SCHEMA_CONTENT_MIXED) ||
- (type->contentType == XML_SCHEMA_CONTENT_MIXED_OR_ELEMENTS)) &&
- (type->subtypes != NULL)) {
- TODO
- }
-
-
- if (type->attributes != NULL) {
- xmlSchemaValidateAttributes(ctxt, node, type->attributes);
- }
+ } else if ((type->contentType == XML_SCHEMA_CONTENT_ELEMENTS) &&
+ /*
+ * TODO: Ask Daniel if this are all character nodes.
+ */
+ (((child->type == XML_TEXT_NODE) && (!IS_BLANK_NODE(child))) ||
+ (child->type == XML_ENTITY_NODE) ||
+ (child->type == XML_ENTITY_REF_NODE) ||
+ (child->type == XML_CDATA_SECTION_NODE))) {
+ /*
+ * 2.3 If the {content type} is element-only, then the
+ * element information item has no character information
+ * item [children] other than those whose [character
+ * code] is defined as a white space in [XML 1.0 (Second
+ * Edition)].
+ */
+ xmlSchemaVErr(ctxt, node, XML_SCHEMAV_CVC_COMPLEX_TYPE_2_3,
+ "Character children are not allowed, "
+ "because the content type is element-only.\n",
+ NULL, NULL);
+ break;
+ }
+ child = child->next;
+ }
break;
+ case XML_SCHEMA_CONTENT_SIMPLE:
case XML_SCHEMA_CONTENT_BASIC:{
- if (type->subtypes != NULL) {
- ctxt->type = type->subtypes;
- xmlSchemaValidateComplexType(ctxt, node);
- }
- if (type->baseType != NULL) {
- ctxt->type = type->baseType;
- if (type->baseType->type == XML_SCHEMA_TYPE_BASIC)
- xmlSchemaValidateBasicType(ctxt, node);
- else if (type->baseType->type == XML_SCHEMA_TYPE_COMPLEX)
- xmlSchemaValidateComplexType(ctxt, node);
- else if (type->baseType->type == XML_SCHEMA_TYPE_SIMPLE)
- xmlSchemaValidateSimpleType(ctxt, node);
- else
- xmlGenericError(xmlGenericErrorContext,
- "unexpected content type of base: %d\n",
- type->contentType);
-
- }
- if (type->attributes != NULL) {
- xmlSchemaValidateAttributes(ctxt, node,
- type->attributes);
- }
- ctxt->type = type;
- break;
- }
- case XML_SCHEMA_CONTENT_SIMPLE:{
+ xmlSchemaTypePtr base, anyType;
+ xmlChar *value = NULL;
+ /*
+ * We hit a complexType with a simpleContent resolving
+ * to a user derived or built-in simple type.
+ */
+ anyType = xmlSchemaGetBuiltInType(XML_SCHEMAS_ANYTYPE);
+ /*
+ * Internal check for integrity of the base type.
+ */
+ base = type->baseType;
+ while ((base != NULL) &&
+ (base->type != XML_SCHEMA_TYPE_SIMPLE) &&
+ (base->type != XML_SCHEMA_TYPE_BASIC) &&
+ (base != anyType)) {
+ base = base->baseType;
+ }
+ if ((base == NULL) ||
+ (((type->contentType == XML_SCHEMA_CONTENT_SIMPLE) &&
+ (base->type != XML_SCHEMA_TYPE_SIMPLE)) ||
+ ((type->contentType == XML_SCHEMA_CONTENT_BASIC) &&
+ (base->type != XML_SCHEMA_TYPE_BASIC)))) {
+ xmlSchemaVErr(ctxt, node, XML_SCHEMAS_ERR_INTERNAL,
+ "Internal error: xmlSchemaValidateComplexType, "
+ "Element \"%s\": the base type of the corresponding "
+ "complex type \"%s\" is not a user derived or a "
+ "built-in simple type.\n",
+ node->name, type->name);
+ return (-1);
+ }
+ /*
+ * 2.2 If the {content type} is a simple type definition,
+ * then the element information item has no element
+ * information item [children], and the ·normalized value·
+ * of the element information item is ·valid· with respect
+ * to that simple type definition as defined by String
+ * Valid (§3.14.4).
+ */
+ child = node->children;
+ while (child != NULL) {
+ if (child->type == XML_ELEMENT_NODE) {
+ xmlSchemaVErr(ctxt, node, XML_SCHEMAV_CVC_COMPLEX_TYPE_2_2,
+ "Element children are not allowed, because "
+ "the content type is a simple type.\n",
+ NULL, NULL);
+ ret = XML_SCHEMAV_CVC_COMPLEX_TYPE_2_2;
+ break;
+ }
+ child = child->next;
+ }
+ if (ret == 0) {
+ /*
+ * Validate the character content against a simple type.
+ */
+ if (ctxt->node == NULL)
+ value = NULL;
+ else
+ value = xmlNodeGetContent(node);
+ ctxt->type = base;
+ ret = xmlSchemaValidateSimpleTypeValue(ctxt, value, 1, 1);
+ ctxt->type = type;
+ if (ret > 0) {
+ xmlSchemaVErr(ctxt, node, XML_SCHEMAV_CVC_COMPLEX_TYPE_2_2,
+ "The character value "
+ "is not valid with respect to the simple type.\n",
+ NULL, NULL);
+ ret = XML_SCHEMAV_CVC_COMPLEX_TYPE_2_2;
+ } else if (ret < 0) {
+ xmlSchemaVErr(ctxt, node, XML_SCHEMAS_ERR_INTERNAL,
+ "Internal error: xmlSchemaValidateComplexType, "
+ "Element \"%s\": error while validating character "
+ "content against complex type \"%s\".\n",
+ node->name, type->name);
+ return (-1);
+ }
+ }
+ if (ret == 0) {
+ /*
+ * Apply facets of the complexType. Be sure to pass the
+ * built-in type to xmlSchemaValidateFacetsInternal.
+ */
+ /* TODO: I don't know yet if the facets of the simple type
+ * are used, or if the facets, defined by this complex type,
+ * are to be used only. This here applies both facet sets.
+ */
+ while (base->type != XML_SCHEMA_TYPE_BASIC)
+ base = base->baseType;
+ if (base == NULL) {
+ xmlSchemaVErr(ctxt, node, XML_SCHEMAS_ERR_INTERNAL,
+ "Internal error: xmlSchemaValidateComplexType, "
+ "Element \"%s\": error while validating character "
+ "content against complex type \"%s\"; failed to "
+ "compute the built-in simple type for facet "
+ "validation.\n",
+ node->name, type->name);
+ return (-1);
+ }
+ ret = xmlSchemaValidateFacetsInternal(ctxt, base,
+ type->facetSet, value, 1);
+ if (ret > 0) {
+ xmlSchemaVErr(ctxt, node, XML_SCHEMAV_CVC_COMPLEX_TYPE_2_2,
+ "The character value "
+ "is not valid with respect to the simple type.\n",
+ NULL, NULL);
+ ret = XML_SCHEMAV_CVC_COMPLEX_TYPE_2_2;
+ } else if (ret < 0) {
+ xmlSchemaVErr(ctxt, ctxt->cur, XML_SCHEMAS_ERR_INTERNAL,
+ "Internal error: xmlSchemaValidateComplexType, "
+ "Element \"%s\": error while validating character "
+ "content against complex type \"%s\"; failed to "
+ "apply facets.\n",
+ type->name, NULL);
+ }
+ }
+ if (value != NULL)
+ xmlFree(value);
+ /* TODO: facets */
+ break;
+ }
+ /*
+ case XML_SCHEMA_CONTENT_SIMPLE:{
if (type->subtypes != NULL) {
ctxt->type = type->subtypes;
xmlSchemaValidateComplexType(ctxt, node);
@@ -6501,18 +10548,25 @@ xmlSchemaValidateComplexType(xmlSchemaValidCtxtPtr ctxt, xmlNodePtr node)
ctxt->type = type->baseType;
xmlSchemaValidateComplexType(ctxt, node);
}
+ * Removed due to changes of attribute validation:
if (type->attributes != NULL) {
xmlSchemaValidateAttributes(ctxt, node,
type->attributes);
}
+ *
ctxt->type = type;
break;
}
+ */
default:
TODO xmlGenericError(xmlGenericErrorContext,
"unimplemented content type %d\n",
type->contentType);
}
+ if (type->type == XML_SCHEMA_TYPE_COMPLEX) {
+ xmlSchemaValidateAttributes(ctxt, node, type);
+ }
+ ctxt->cur = node;
return (ctxt->err);
}
@@ -6537,7 +10591,6 @@ xmlSchemaValidateContent(xmlSchemaValidCtxtPtr ctxt, xmlNodePtr node)
type = ctxt->type;
ctxt->cur = node;
- xmlSchemaValidateAttributes(ctxt, node, type->attributes);
ctxt->cur = node;
switch (type->type) {
@@ -6570,13 +10623,11 @@ xmlSchemaValidateContent(xmlSchemaValidCtxtPtr ctxt, xmlNodePtr node)
break;
}
case XML_SCHEMA_TYPE_BASIC:
- xmlSchemaValidateBasicType(ctxt, node);
+ case XML_SCHEMA_TYPE_SIMPLE:
+ xmlSchemaValidateSimpleTypeElement(ctxt, node);
break;
case XML_SCHEMA_TYPE_FACET:
- TODO break;
- case XML_SCHEMA_TYPE_SIMPLE:
- xmlSchemaValidateSimpleType(ctxt, node);
- break;
+ TODO break;
case XML_SCHEMA_TYPE_SEQUENCE:
TODO break;
case XML_SCHEMA_TYPE_CHOICE:
@@ -6633,7 +10684,6 @@ xmlSchemaValidateContent(xmlSchemaValidCtxtPtr ctxt, xmlNodePtr node)
case XML_SCHEMA_TYPE_ANY_ATTRIBUTE:
TODO break;
}
- xmlSchemaValidateAttributes(ctxt, node, type->attributes);
if (ctxt->node == NULL)
return (ctxt->err);
@@ -6662,6 +10712,10 @@ xmlSchemaValidateType(xmlSchemaValidCtxtPtr ctxt, xmlNodePtr elem,
if ((elem == NULL) || (type == NULL) || (elemDecl == NULL))
return (0);
+ /* This one is called by "xmlSchemaValidateElementType" and
+ * "xmlSchemaValidateElement".
+ */
+
/*
* 3.3.4 : 2
*/
@@ -6710,9 +10764,7 @@ xmlSchemaValidateType(xmlSchemaValidCtxtPtr ctxt, xmlNodePtr elem,
ctxt->type = elemDecl->subtypes;
ctxt->node = elem->children;
- xmlSchemaValidateContent(ctxt, elem);
- xmlSchemaValidateAttributes(ctxt, elem, elemDecl->attributes);
-
+ xmlSchemaValidateContent(ctxt, elem);
return (ctxt->err);
}
@@ -6721,7 +10773,7 @@ xmlSchemaValidateType(xmlSchemaValidCtxtPtr ctxt, xmlNodePtr elem,
* xmlSchemaValidateAttributes:
* @ctxt: a schema validation context
* @elem: an element
- * @attributes: the list of attribute declarations
+ * @type: the complexType holding the attribute uses
*
* Validate the attributes of an element.
*
@@ -6729,44 +10781,69 @@ xmlSchemaValidateType(xmlSchemaValidCtxtPtr ctxt, xmlNodePtr elem,
* number otherwise and -1 in case of internal or API error.
*/
static int
-xmlSchemaValidateAttributes(xmlSchemaValidCtxtPtr ctxt, xmlNodePtr elem,
- xmlSchemaAttributePtr attributes)
+xmlSchemaValidateAttributes(xmlSchemaValidCtxtPtr ctxt, xmlNodePtr elem, xmlSchemaTypePtr type)
{
- int i, ret;
- xmlAttrPtr attr;
+ int ret;
+ xmlAttrPtr attr; /* An attribute on the element. */
xmlChar *value;
- xmlSchemaAttributeGroupPtr group = NULL;
+ const xmlChar *nsURI;
+ xmlSchemaAttributeLinkPtr attrUse;
+ xmlSchemaAttributePtr attrDecl;
int found;
+ xmlSchemaAttrStatePtr curState, reqAttrStates = NULL, reqAttrStatesTop = NULL;
+#ifdef DEBUG_ATTR_VALIDATION
+ int redundant = 0;
+#endif
+ if (type->type != XML_SCHEMA_TYPE_COMPLEX) {
+ xmlSchemaVErr(ctxt, elem, XML_SCHEMAS_ERR_INTERNAL,
+ "Internal error: xmlSchemaValidateAttributes: "
+ "given type \"%s\"is not a complexType\n",
+ type->name, NULL);
+ return(-1);
+ }
- if (attributes == NULL)
+ if ((type->attributeUses == NULL) && (type->attributeWildcard == NULL))
return (0);
- while (attributes != NULL) {
+
+ attrUse = type->attributeUses;
+
+ while (attrUse != NULL) {
found = 0;
- /*
- * Handle attribute groups
- */
- if (attributes->type == XML_SCHEMA_TYPE_ATTRIBUTEGROUP) {
- group = (xmlSchemaAttributeGroupPtr) attributes;
- xmlSchemaValidateAttributes(ctxt, elem, group->attributes);
- attributes = group->next;
- continue;
+ attrDecl = attrUse->attr;
+#ifdef DEBUG_ATTR_VALIDATION
+ printf("attr use - name: %s\n", xmlSchemaGetOnymousAttrName(attrDecl));
+ printf("attr use - use: %d\n", attrDecl->occurs);
+#endif
+ for (curState = ctxt->attr; curState != NULL; curState = curState->next) {
+
+ if (curState->decl == attrUse->attr) {
+#ifdef DEBUG_ATTR_VALIDATION
+ redundant = 1;
+#endif
}
- for (i = ctxt->attrBase; i < ctxt->attrNr; i++) {
- attr = ctxt->attr[i].attr;
+ attr = curState->attr;
+#ifdef DEBUG_ATTR_VALIDATION
+ printf("attr - name: %s\n", attr->name);
+ if (attr->ns != NULL)
+ printf("attr - ns: %s\n", attr->ns->href);
+ else
+ printf("attr - ns: none\n");
+#endif
+ /* TODO: Can this ever happen? */
if (attr == NULL)
continue;
- if (attributes->ref != NULL) {
- if (!xmlStrEqual(attr->name, attributes->ref))
+ if (attrDecl->ref != NULL) {
+ if (!xmlStrEqual(attr->name, attrDecl->ref))
continue;
if (attr->ns != NULL) {
- if ((attributes->refNs == NULL) ||
- (!xmlStrEqual(attr->ns->href, attributes->refNs)))
+ if ((attrDecl->refNs == NULL) ||
+ (!xmlStrEqual(attr->ns->href, attrDecl->refNs)))
continue;
- } else if (attributes->refNs != NULL) {
+ } else if (attrDecl->refNs != NULL) {
continue;
}
} else {
- if (!xmlStrEqual(attr->name, attributes->name))
+ if (!xmlStrEqual(attr->name, attrDecl->name))
continue;
/*
* handle the namespaces checks here
@@ -6776,7 +10853,7 @@ xmlSchemaValidateAttributes(xmlSchemaValidCtxtPtr ctxt, xmlNodePtr elem,
* accept an unqualified attribute only if the target
* namespace of the declaration is absent.
*/
- if (attributes->targetNamespace != NULL)
+ if (attrDecl->targetNamespace != NULL)
/*
* This check was removed, since the target namespace
* was evaluated during parsing and already took
@@ -6785,57 +10862,176 @@ xmlSchemaValidateAttributes(xmlSchemaValidCtxtPtr ctxt, xmlNodePtr elem,
/* ((attributes->flags & XML_SCHEMAS_ATTR_NSDEFAULT) == 0)) */
continue;
} else {
- if (attributes->targetNamespace == NULL)
+ if (attrDecl->targetNamespace == NULL)
continue;
- if (!xmlStrEqual(attributes->targetNamespace,
+ if (!xmlStrEqual(attrDecl->targetNamespace,
attr->ns->href))
continue;
}
}
+#ifdef DEBUG_ATTR_VALIDATION
+ printf("found\n");
+#endif
found = 1;
- ctxt->cur = (xmlNodePtr) attributes;
-
- if (attributes->subtypes == NULL) {
+ ctxt->cur = (xmlNodePtr) attr;
+ ctxt->node = attr->children;
+
+ if (attrDecl->subtypes == NULL) {
+ curState->state = XML_SCHEMAS_ATTR_TYPE_NOT_RESOLVED;
+ curState->decl = attrDecl;
+ /*
+ * This could be put into "xmlSchemaCheckAttributes" as well, but
+ * since it reports an internal error, it better stays here to ease
+ * debugging.
+ */
xmlSchemaVErr(ctxt, (xmlNodePtr) attr, XML_SCHEMAS_ERR_INTERNAL,
"Internal error: attribute %s type not resolved\n",
attr->name, NULL);
continue;
}
+ value = xmlNodeListGetString(elem->doc, attr->children, 1);
+ ctxt->type = attrDecl->subtypes;
+ ret = xmlSchemaValidateSimpleTypeValue(ctxt, value, 0, 1);
+ ctxt->type = type;
+ if (ret != 0)
+ curState->state = XML_SCHEMAS_ATTR_INVALID_VALUE;
+ else
+ curState->state = XML_SCHEMAS_ATTR_CHECKED;
+ curState->decl = attrDecl;
+ if (value != NULL) {
+ xmlFree(value);
+ }
+ }
+ if ((!found) && (attrDecl->occurs == XML_SCHEMAS_ATTR_USE_REQUIRED)) {
+ xmlSchemaAttrStatePtr tmp;
- if (attributes->occurs == XML_SCHEMAS_ATTR_USE_PROHIBITED) {
- xmlSchemaVErr(ctxt, elem, XML_SCHEMAS_ERR_INVALIDATTR,
- "attribute %s on %s is prohibited\n",
- attributes->name, elem->name);
- /* Setting the state to XML_SCHEMAS_ATTR_CHECKED seems
- * not very logical but it suppresses the
- * "attribute is unknown" error report. Please change
- * this if you know better */
- ctxt->attr[i].state = XML_SCHEMAS_ATTR_CHECKED;
- break;
+#ifdef DEBUG_ATTR_VALIDATION
+ printf("required attr not found\n");
+#endif
+ /*
+ * Add a new dummy attribute state.
+ */
+ tmp = (xmlSchemaAttrStatePtr) xmlMalloc(sizeof(xmlSchemaAttrState));
+ if (tmp == NULL) {
+ xmlSchemaVErrMemory(ctxt, "registering required attributes", NULL);
+ return (-1);
}
+ tmp->attr = NULL;
+ tmp->state = XML_SCHEMAS_ATTR_MISSING;
+ tmp->decl = attrDecl;
+ tmp->next = NULL;
- value = xmlNodeListGetString(elem->doc, attr->children, 1);
- ret = xmlSchemaValidateSimpleValue(ctxt, attributes->subtypes,
- value);
- if (ret != 0) {
- xmlSchemaVErr(ctxt, (xmlNodePtr) attr,
- XML_SCHEMAS_ERR_ATTRINVALID,
- "attribute %s on %s does not match type\n",
- attr->name, elem->name);
+ if (reqAttrStates == NULL) {
+ reqAttrStates = tmp;
+ reqAttrStatesTop = tmp;
} else {
- ctxt->attr[i].state = XML_SCHEMAS_ATTR_CHECKED;
+ reqAttrStatesTop->next = tmp;
+ reqAttrStatesTop = tmp;
}
- if (value != NULL) {
- xmlFree(value);
+
+ }
+ attrUse = attrUse->next;
+ }
+ /*
+ * Add required attributes to the attribute states of the context.
+ */
+ if (reqAttrStates != NULL) {
+ if (ctxt->attr == NULL) {
+ ctxt->attr = reqAttrStates;
+ } else {
+ ctxt->attrTop->next = reqAttrStates;
+ }
+ ctxt->attrTop = reqAttrStatesTop;
}
+ /*
+ * Process wildcards.
+ */
+ if (type->attributeWildcard != NULL) {
+#ifdef DEBUG_ATTR_VALIDATION
+ xmlSchemaWildcardNsPtr ns;
+ printf("matching wildcard: [%d] of complexType: %s\n", type->attributeWildcard, type->name);
+ if (type->attributeWildcard->processContents ==
+ XML_SCHEMAS_ANY_LAX)
+ printf("processContents: lax\n");
+ else if (type->attributeWildcard->processContents ==
+ XML_SCHEMAS_ANY_STRICT)
+ printf("processContents: strict\n");
+ else
+ printf("processContents: skip\n");
+ if (type->attributeWildcard->any)
+ printf("type: any\n");
+ else if (type->attributeWildcard->negNsSet != NULL) {
+ printf("type: negated\n");
+ if (type->attributeWildcard->negNsSet->value == NULL)
+ printf("ns: (absent)\n");
+ else
+ printf("ns: %s\n", type->attributeWildcard->negNsSet->value);
+ } else if (type->attributeWildcard->nsSet != NULL) {
+ printf("type: set\n");
+ ns = type->attributeWildcard->nsSet;
+ while (ns != NULL) {
+ if (ns->value == NULL)
+ printf("ns: (absent)\n");
+ else
+ printf("ns: %s\n", ns->value);
+ ns = ns->next;
+ }
+ } else
+ printf("empty\n");
+
+
+#endif
+ curState = ctxt->attr;
+ while (curState != NULL) {
+ if (curState->state == XML_SCHEMAS_ATTR_UNKNOWN) {
+ if (curState->attr->ns != NULL)
+ nsURI = curState->attr->ns->href;
+ else
+ nsURI = NULL;
+ if (xmlSchemaMatchesWildcardNs(type->attributeWildcard,
+ nsURI)) {
+ /*
+ * Handle processContents.
+ */
+ if ((type->attributeWildcard->processContents ==
+ XML_SCHEMAS_ANY_LAX) ||
+ (type->attributeWildcard->processContents ==
+ XML_SCHEMAS_ANY_STRICT)) {
+
+ attr = curState->attr;
+ attrDecl = xmlSchemaGetAttribute(ctxt->schema,
+ attr->name, nsURI);
+ if (attrDecl != NULL) {
+ value = xmlNodeListGetString(elem->doc, attr->children, 1);
+ ctxt->type = attrDecl->subtypes;
+ ret = xmlSchemaValidateSimpleTypeValue(ctxt, value, 1, 1);
+ ctxt->type = type;
+ if (ret != 0)
+ curState->state = XML_SCHEMAS_ATTR_INVALID_VALUE;
+ else
+ curState->state = XML_SCHEMAS_ATTR_CHECKED;
+ curState->decl = attrDecl;
+ if (value != NULL) {
+ xmlFree(value);
+ }
+
+ } else if (type->attributeWildcard->processContents ==
+ XML_SCHEMAS_ANY_LAX) {
+ curState->state = XML_SCHEMAS_ATTR_CHECKED;
+ }
+ } else
+ curState->state = XML_SCHEMAS_ATTR_CHECKED;
+ }
+ }
+ curState = curState->next;
}
- if ((!found) && (attributes->occurs == XML_SCHEMAS_ATTR_USE_REQUIRED)) {
- xmlSchemaVErr(ctxt, elem, XML_SCHEMAS_ERR_MISSING,
- "required attribute %s on %s is missing\n",
- attributes->name, elem->name);
- }
- attributes = attributes->next;
}
+#ifdef DEBUG_ATTR_VALIDATION
+ if (redundant)
+ xmlGenericError(xmlGenericErrorContext,
+ "xmlSchemaValidateAttributes: redundant call by type: %s\n",
+ type->name);
+#endif
return (ctxt->err);
}
@@ -6853,7 +11049,8 @@ static int
xmlSchemaValidateElement(xmlSchemaValidCtxtPtr ctxt, xmlNodePtr elem)
{
xmlSchemaElementPtr elemDecl;
- int ret, attrBase;
+ int ret;
+ xmlSchemaAttrStatePtr attrs, attrTop;
if (elem->ns != NULL) {
elemDecl = xmlHashLookup3(ctxt->schema->elemDecl,
@@ -6862,22 +11059,7 @@ xmlSchemaValidateElement(xmlSchemaValidCtxtPtr ctxt, xmlNodePtr elem)
elemDecl = xmlHashLookup3(ctxt->schema->elemDecl,
elem->name, NULL, NULL);
}
- /*
- * special case whe elementFormDefault is unqualified for top-level elem.
- */
- /*
- * This was removed, since elementFormDefault does not apply to top-level
- * element declarations.
- */
- /*
- if ((elemDecl == NULL) && (elem->ns != NULL) &&
- (elem->parent != NULL) && (elem->parent->type != XML_ELEMENT_NODE) &&
- (xmlStrEqual(ctxt->schema->targetNamespace, elem->ns->href)) &&
- ((ctxt->schema->flags & XML_SCHEMAS_QUALIF_ELEM) == 0)) {
- elemDecl = xmlHashLookup3(ctxt->schema->elemDecl,
- elem->name, NULL, NULL);
- }
- */
+ /* This one is called by xmlSchemaValidateDocument only. */
/*
* 3.3.4 : 1
@@ -6895,10 +11077,9 @@ xmlSchemaValidateElement(xmlSchemaValidCtxtPtr ctxt, xmlNodePtr elem)
/*
* Verify the attributes
*/
- attrBase = ctxt->attrBase;
- ctxt->attrBase = ctxt->attrNr;
+ attrs = ctxt->attr;
+ attrTop = ctxt->attrTop;
xmlSchemaRegisterAttributes(ctxt, elem->properties);
- xmlSchemaValidateAttributes(ctxt, elem, elemDecl->attributes);
/*
* Verify the element content recursively
*/
@@ -6939,8 +11120,10 @@ xmlSchemaValidateElement(xmlSchemaValidCtxtPtr ctxt, xmlNodePtr elem)
* Verify that all attributes were Schemas-validated
*/
xmlSchemaCheckAttributes(ctxt, elem);
- ctxt->attrNr = ctxt->attrBase;
- ctxt->attrBase = attrBase;
+ if (ctxt->attr != NULL)
+ xmlSchemaFreeAttributeStates(ctxt->attr);
+ ctxt->attr = attrs;
+ ctxt->attrTop = attrTop;
return (ctxt->err);
}
@@ -6960,7 +11143,7 @@ xmlSchemaValidateDocument(xmlSchemaValidCtxtPtr ctxt, xmlDocPtr doc)
{
xmlNodePtr root;
xmlSchemaElementPtr elemDecl;
-
+
root = xmlDocGetRootElement(doc);
if (root == NULL) {
xmlSchemaVErr(ctxt, (xmlNodePtr) doc, XML_SCHEMAS_ERR_NOROOT,
@@ -6974,22 +11157,27 @@ xmlSchemaValidateDocument(xmlSchemaValidCtxtPtr ctxt, xmlDocPtr doc)
else
elemDecl = xmlHashLookup3(ctxt->schema->elemDecl,
root->name, NULL, NULL);
+
/*
* special case whe elementFormDefault is unqualified for top-level elem.
*/
+ /* Removed, since elementFormDefault does not apply to top level
+ * elements */
+ /*
if ((elemDecl == NULL) && (root->ns != NULL) &&
(xmlStrEqual(ctxt->schema->targetNamespace, root->ns->href)) &&
((ctxt->schema->flags & XML_SCHEMAS_QUALIF_ELEM) == 0)) {
elemDecl = xmlHashLookup3(ctxt->schema->elemDecl,
root->name, NULL, NULL);
}
+ */
if (elemDecl == NULL) {
xmlSchemaVErr(ctxt, root, XML_SCHEMAS_ERR_UNDECLAREDELEM,
"Element %s not declared\n", root->name, NULL);
- } else if ((elemDecl->flags & XML_SCHEMAS_ELEM_TOPLEVEL) == 0) {
+ } else if ((elemDecl->flags & XML_SCHEMAS_ELEM_GLOBAL) == 0) {
xmlSchemaVErr(ctxt, root, XML_SCHEMAS_ERR_NOTTOPLEVEL,
- "Root element %s not toplevel\n", root->name, NULL);
+ "Root element %s not global\n", root->name, NULL);
}
/*
* Okay, start the recursive validation
@@ -7031,8 +11219,17 @@ xmlSchemaNewValidCtxt(xmlSchemaPtr schema)
}
memset(ret, 0, sizeof(xmlSchemaValidCtxt));
ret->schema = schema;
- ret->attrNr = 0;
- ret->attrMax = 10;
+ /*
+ * Removed due to changes of the attribute state list.
+ */
+ /* ret->attrNr = 0; */
+ /* ret->attrMax = 10; */
+ /* ret->attrBase = NULL; */
+ ret->attrTop = NULL;
+ ret->attr = NULL;
+ /*
+ * Removed due to changes of the attribute state list.
+ *
ret->attr = (xmlSchemaAttrStatePtr) xmlMalloc(ret->attrMax *
sizeof
(xmlSchemaAttrState));
@@ -7042,6 +11239,8 @@ xmlSchemaNewValidCtxt(xmlSchemaPtr schema)
return (NULL);
}
memset(ret->attr, 0, ret->attrMax * sizeof(xmlSchemaAttrState));
+ */
+
return (ret);
}
@@ -7057,7 +11256,7 @@ xmlSchemaFreeValidCtxt(xmlSchemaValidCtxtPtr ctxt)
if (ctxt == NULL)
return;
if (ctxt->attr != NULL)
- xmlFree(ctxt->attr);
+ xmlSchemaFreeAttributeStates(ctxt->attr);
if (ctxt->value != NULL)
xmlSchemaFreeValue(ctxt->value);
xmlFree(ctxt);
diff --git a/xmlschemastypes.c b/xmlschemastypes.c
index 9ed7fb0..78e10fc 100644
--- a/xmlschemastypes.c
+++ b/xmlschemastypes.c
@@ -39,59 +39,13 @@
#define XML_SCHEMAS_NAMESPACE_NAME \
(const xmlChar *)"http://www.w3.org/2001/XMLSchema"
-typedef enum {
- XML_SCHEMAS_UNKNOWN = 0,
- XML_SCHEMAS_STRING,
- XML_SCHEMAS_NORMSTRING,
- XML_SCHEMAS_DECIMAL,
- XML_SCHEMAS_TIME,
- XML_SCHEMAS_GDAY,
- XML_SCHEMAS_GMONTH,
- XML_SCHEMAS_GMONTHDAY,
- XML_SCHEMAS_GYEAR,
- XML_SCHEMAS_GYEARMONTH,
- XML_SCHEMAS_DATE,
- XML_SCHEMAS_DATETIME,
- XML_SCHEMAS_DURATION,
- XML_SCHEMAS_FLOAT,
- XML_SCHEMAS_DOUBLE,
- XML_SCHEMAS_BOOLEAN,
- XML_SCHEMAS_TOKEN,
- XML_SCHEMAS_LANGUAGE,
- XML_SCHEMAS_NMTOKEN,
- XML_SCHEMAS_NMTOKENS,
- XML_SCHEMAS_NAME,
- XML_SCHEMAS_QNAME,
- XML_SCHEMAS_NCNAME,
- XML_SCHEMAS_ID,
- XML_SCHEMAS_IDREF,
- XML_SCHEMAS_IDREFS,
- XML_SCHEMAS_ENTITY,
- XML_SCHEMAS_ENTITIES,
- XML_SCHEMAS_NOTATION,
- XML_SCHEMAS_ANYURI,
- XML_SCHEMAS_INTEGER,
- XML_SCHEMAS_NPINTEGER,
- XML_SCHEMAS_NINTEGER,
- XML_SCHEMAS_NNINTEGER,
- XML_SCHEMAS_PINTEGER,
- XML_SCHEMAS_INT,
- XML_SCHEMAS_UINT,
- XML_SCHEMAS_LONG,
- XML_SCHEMAS_ULONG,
- XML_SCHEMAS_SHORT,
- XML_SCHEMAS_USHORT,
- XML_SCHEMAS_BYTE,
- XML_SCHEMAS_UBYTE,
- XML_SCHEMAS_HEXBINARY,
- XML_SCHEMAS_BASE64BINARY
-} xmlSchemaValType;
static unsigned long powten[10] = {
1, 10, 100, 1000, 10000, 100000, 1000000, 10000000L,
100000000L, 1000000000L
};
+
/* Date value */
typedef struct _xmlSchemaValDate xmlSchemaValDate;
typedef xmlSchemaValDate *xmlSchemaValDatePtr;
@@ -249,10 +203,11 @@ xmlSchemaTypeErrMemory(xmlNodePtr node, const char *extra)
* @name: the type name
* @type: the value type associated
*
- * Initialize one default type
+ * Initialize one primitive built-in type
*/
static xmlSchemaTypePtr
-xmlSchemaInitBasicType(const char *name, xmlSchemaValType type) {
+xmlSchemaInitBasicType(const char *name, xmlSchemaValType type,
+ xmlSchemaTypePtr baseType) {
xmlSchemaTypePtr ret;
ret = (xmlSchemaTypePtr) xmlMalloc(sizeof(xmlSchemaType));
@@ -263,10 +218,45 @@ xmlSchemaInitBasicType(const char *name, xmlSchemaValType type) {
memset(ret, 0, sizeof(xmlSchemaType));
ret->name = (const xmlChar *)name;
ret->type = XML_SCHEMA_TYPE_BASIC;
- ret->flags = type;
+ ret->baseType = baseType;
+ /*
+ * Hack to reflect the variety.
+ */
+ if ((type == XML_SCHEMAS_IDREFS) ||
+ (type == XML_SCHEMAS_NMTOKENS) ||
+ (type == XML_SCHEMAS_ENTITIES))
+ ret->flags |= XML_SCHEMAS_TYPE_VARIETY_LIST;
+ else if (type != XML_SCHEMAS_UNKNOWN)
+ ret->flags |= XML_SCHEMAS_TYPE_VARIETY_ATOMIC;
ret->contentType = XML_SCHEMA_CONTENT_BASIC;
+ switch (type) {
+ case XML_SCHEMAS_STRING:
+ case XML_SCHEMAS_DECIMAL:
+ case XML_SCHEMAS_DATE:
+ case XML_SCHEMAS_DATETIME:
+ case XML_SCHEMAS_TIME:
+ case XML_SCHEMAS_GYEAR:
+ case XML_SCHEMAS_GYEARMONTH:
+ case XML_SCHEMAS_GMONTH:
+ case XML_SCHEMAS_GMONTHDAY:
+ case XML_SCHEMAS_GDAY:
+ case XML_SCHEMAS_DURATION:
+ case XML_SCHEMAS_FLOAT:
+ case XML_SCHEMAS_DOUBLE:
+ case XML_SCHEMAS_BOOLEAN:
+ case XML_SCHEMAS_ANYURI:
+ case XML_SCHEMAS_HEXBINARY:
+ case XML_SCHEMAS_BASE64BINARY:
+ case XML_SCHEMAS_QNAME:
+ case XML_SCHEMAS_NOTATION:
+ ret->flags |= XML_SCHEMAS_TYPE_BUILTIN_PRIMITIVE;
+ default:
+ break;
+ }
+
xmlHashAddEntry2(xmlSchemaTypesBank, ret->name,
XML_SCHEMAS_NAMESPACE_NAME, ret);
+ ret->builtInType = type;
return(ret);
}
@@ -282,106 +272,172 @@ xmlSchemaInitTypes(void)
return;
xmlSchemaTypesBank = xmlHashCreate(40);
+
/*
- * primitive datatypes
- */
- xmlSchemaTypeStringDef = xmlSchemaInitBasicType("string",
- XML_SCHEMAS_STRING);
+ * 3.4.7 Built-in Complex Type Definition
+ */
xmlSchemaTypeAnyTypeDef = xmlSchemaInitBasicType("anyType",
- XML_SCHEMAS_UNKNOWN);
- xmlSchemaTypeAnySimpleTypeDef = xmlSchemaInitBasicType("anySimpleType",
- XML_SCHEMAS_UNKNOWN);
+ XML_SCHEMAS_UNKNOWN,
+ NULL);
+ xmlSchemaTypeAnyTypeDef->baseType = xmlSchemaTypeAnyTypeDef;
+ xmlSchemaTypeAnyTypeDef->contentType = XML_SCHEMA_CONTENT_MIXED;
+ {
+ xmlSchemaWildcardPtr wild;
+
+ wild = (xmlSchemaWildcardPtr) xmlMalloc(sizeof(xmlSchemaWildcard));
+ if (wild == NULL) {
+ xmlSchemaTypeErrMemory(NULL, "could not create a wildcard on anyType");
+ return;
+ }
+ memset(wild, 0, sizeof(xmlSchemaWildcard));
+ wild->any = 1;
+ wild->processContents = XML_SCHEMAS_ANY_LAX;
+ wild->minOccurs = 1;
+ wild->maxOccurs = 1;
+ xmlSchemaTypeAnyTypeDef->attributeWildcard = wild;
+ }
+ xmlSchemaTypeAnySimpleTypeDef = xmlSchemaInitBasicType("anySimpleType",
+ XML_SCHEMAS_UNKNOWN,
+ xmlSchemaTypeAnyTypeDef);
+ /*
+ * primitive datatypes
+ */
+ xmlSchemaTypeStringDef = xmlSchemaInitBasicType("string",
+ XML_SCHEMAS_STRING,
+ xmlSchemaTypeAnySimpleTypeDef);
xmlSchemaTypeDecimalDef = xmlSchemaInitBasicType("decimal",
- XML_SCHEMAS_DECIMAL);
+ XML_SCHEMAS_DECIMAL,
+ xmlSchemaTypeAnySimpleTypeDef);
xmlSchemaTypeDateDef = xmlSchemaInitBasicType("date",
- XML_SCHEMAS_DATE);
+ XML_SCHEMAS_DATE,
+ xmlSchemaTypeAnySimpleTypeDef);
xmlSchemaTypeDatetimeDef = xmlSchemaInitBasicType("dateTime",
- XML_SCHEMAS_DATETIME);
+ XML_SCHEMAS_DATETIME,
+ xmlSchemaTypeAnySimpleTypeDef);
xmlSchemaTypeTimeDef = xmlSchemaInitBasicType("time",
- XML_SCHEMAS_TIME);
+ XML_SCHEMAS_TIME,
+ xmlSchemaTypeAnySimpleTypeDef);
xmlSchemaTypeGYearDef = xmlSchemaInitBasicType("gYear",
- XML_SCHEMAS_GYEAR);
+ XML_SCHEMAS_GYEAR,
+ xmlSchemaTypeAnySimpleTypeDef);
xmlSchemaTypeGYearMonthDef = xmlSchemaInitBasicType("gYearMonth",
- XML_SCHEMAS_GYEARMONTH);
+ XML_SCHEMAS_GYEARMONTH,
+ xmlSchemaTypeAnySimpleTypeDef);
xmlSchemaTypeGMonthDef = xmlSchemaInitBasicType("gMonth",
- XML_SCHEMAS_GMONTH);
+ XML_SCHEMAS_GMONTH,
+ xmlSchemaTypeAnySimpleTypeDef);
xmlSchemaTypeGMonthDayDef = xmlSchemaInitBasicType("gMonthDay",
- XML_SCHEMAS_GMONTHDAY);
+ XML_SCHEMAS_GMONTHDAY,
+ xmlSchemaTypeAnySimpleTypeDef);
xmlSchemaTypeGDayDef = xmlSchemaInitBasicType("gDay",
- XML_SCHEMAS_GDAY);
+ XML_SCHEMAS_GDAY,
+ xmlSchemaTypeAnySimpleTypeDef);
xmlSchemaTypeDurationDef = xmlSchemaInitBasicType("duration",
- XML_SCHEMAS_DURATION);
+ XML_SCHEMAS_DURATION,
+ xmlSchemaTypeAnySimpleTypeDef);
xmlSchemaTypeFloatDef = xmlSchemaInitBasicType("float",
- XML_SCHEMAS_FLOAT);
+ XML_SCHEMAS_FLOAT,
+ xmlSchemaTypeAnySimpleTypeDef);
xmlSchemaTypeDoubleDef = xmlSchemaInitBasicType("double",
- XML_SCHEMAS_DOUBLE);
+ XML_SCHEMAS_DOUBLE,
+ xmlSchemaTypeAnySimpleTypeDef);
xmlSchemaTypeBooleanDef = xmlSchemaInitBasicType("boolean",
- XML_SCHEMAS_BOOLEAN);
+ XML_SCHEMAS_BOOLEAN,
+ xmlSchemaTypeAnySimpleTypeDef);
xmlSchemaTypeAnyURIDef = xmlSchemaInitBasicType("anyURI",
- XML_SCHEMAS_ANYURI);
+ XML_SCHEMAS_ANYURI,
+ xmlSchemaTypeAnySimpleTypeDef);
xmlSchemaTypeHexBinaryDef = xmlSchemaInitBasicType("hexBinary",
- XML_SCHEMAS_HEXBINARY);
+ XML_SCHEMAS_HEXBINARY,
+ xmlSchemaTypeAnySimpleTypeDef);
xmlSchemaTypeBase64BinaryDef
- = xmlSchemaInitBasicType("base64Binary", XML_SCHEMAS_BASE64BINARY);
+ = xmlSchemaInitBasicType("base64Binary", XML_SCHEMAS_BASE64BINARY,
+ xmlSchemaTypeAnySimpleTypeDef);
+ xmlSchemaTypeNotationDef = xmlSchemaInitBasicType("NOTATION",
+ XML_SCHEMAS_NOTATION,
+ xmlSchemaTypeAnySimpleTypeDef);
+ xmlSchemaTypeQNameDef = xmlSchemaInitBasicType("QName",
+ XML_SCHEMAS_QNAME,
+ xmlSchemaTypeAnySimpleTypeDef);
/*
* derived datatypes
*/
xmlSchemaTypeIntegerDef = xmlSchemaInitBasicType("integer",
- XML_SCHEMAS_INTEGER);;
+ XML_SCHEMAS_INTEGER,
+ xmlSchemaTypeDecimalDef);
xmlSchemaTypeNonPositiveIntegerDef =
xmlSchemaInitBasicType("nonPositiveInteger",
- XML_SCHEMAS_NPINTEGER);;
+ XML_SCHEMAS_NPINTEGER,
+ xmlSchemaTypeIntegerDef);
xmlSchemaTypeNegativeIntegerDef =
- xmlSchemaInitBasicType("negativeInteger", XML_SCHEMAS_NINTEGER);;
+ xmlSchemaInitBasicType("negativeInteger", XML_SCHEMAS_NINTEGER,
+ xmlSchemaTypeNonPositiveIntegerDef);
xmlSchemaTypeLongDef =
- xmlSchemaInitBasicType("long", XML_SCHEMAS_LONG);;
- xmlSchemaTypeIntDef = xmlSchemaInitBasicType("int", XML_SCHEMAS_INT);;
+ xmlSchemaInitBasicType("long", XML_SCHEMAS_LONG,
+ xmlSchemaTypeIntegerDef);
+ xmlSchemaTypeIntDef = xmlSchemaInitBasicType("int", XML_SCHEMAS_INT,
+ xmlSchemaTypeLongDef);
xmlSchemaTypeShortDef = xmlSchemaInitBasicType("short",
- XML_SCHEMAS_SHORT);;
+ XML_SCHEMAS_SHORT,
+ xmlSchemaTypeIntDef);
xmlSchemaTypeByteDef = xmlSchemaInitBasicType("byte",
- XML_SCHEMAS_BYTE);;
+ XML_SCHEMAS_BYTE,
+ xmlSchemaTypeShortDef);
xmlSchemaTypeNonNegativeIntegerDef =
xmlSchemaInitBasicType("nonNegativeInteger",
- XML_SCHEMAS_NNINTEGER);
+ XML_SCHEMAS_NNINTEGER,
+ xmlSchemaTypeIntegerDef);
xmlSchemaTypeUnsignedLongDef =
- xmlSchemaInitBasicType("unsignedLong", XML_SCHEMAS_ULONG);;
+ xmlSchemaInitBasicType("unsignedLong", XML_SCHEMAS_ULONG,
+ xmlSchemaTypeNonNegativeIntegerDef);
xmlSchemaTypeUnsignedIntDef =
- xmlSchemaInitBasicType("unsignedInt", XML_SCHEMAS_UINT);;
+ xmlSchemaInitBasicType("unsignedInt", XML_SCHEMAS_UINT,
+ xmlSchemaTypeUnsignedLongDef);
xmlSchemaTypeUnsignedShortDef =
- xmlSchemaInitBasicType("unsignedShort", XML_SCHEMAS_USHORT);;
+ xmlSchemaInitBasicType("unsignedShort", XML_SCHEMAS_USHORT,
+ xmlSchemaTypeUnsignedIntDef);
xmlSchemaTypeUnsignedByteDef =
- xmlSchemaInitBasicType("unsignedByte", XML_SCHEMAS_UBYTE);;
+ xmlSchemaInitBasicType("unsignedByte", XML_SCHEMAS_UBYTE,
+ xmlSchemaTypeUnsignedShortDef);
xmlSchemaTypePositiveIntegerDef =
- xmlSchemaInitBasicType("positiveInteger", XML_SCHEMAS_PINTEGER);
-
+ xmlSchemaInitBasicType("positiveInteger", XML_SCHEMAS_PINTEGER,
+ xmlSchemaTypeNonNegativeIntegerDef);
xmlSchemaTypeNormStringDef = xmlSchemaInitBasicType("normalizedString",
- XML_SCHEMAS_NORMSTRING);
+ XML_SCHEMAS_NORMSTRING,
+ xmlSchemaTypeStringDef);
xmlSchemaTypeTokenDef = xmlSchemaInitBasicType("token",
- XML_SCHEMAS_TOKEN);
+ XML_SCHEMAS_TOKEN,
+ xmlSchemaTypeNormStringDef);
xmlSchemaTypeLanguageDef = xmlSchemaInitBasicType("language",
- XML_SCHEMAS_LANGUAGE);
- xmlSchemaTypeIdDef = xmlSchemaInitBasicType("ID", XML_SCHEMAS_ID);
+ XML_SCHEMAS_LANGUAGE,
+ xmlSchemaTypeTokenDef);
+ xmlSchemaTypeNameDef = xmlSchemaInitBasicType("Name",
+ XML_SCHEMAS_NAME,
+ xmlSchemaTypeTokenDef);
+ xmlSchemaTypeNmtokenDef = xmlSchemaInitBasicType("NMTOKEN",
+ XML_SCHEMAS_NMTOKEN,
+ xmlSchemaTypeTokenDef);
+ xmlSchemaTypeNCNameDef = xmlSchemaInitBasicType("NCName",
+ XML_SCHEMAS_NCNAME,
+ xmlSchemaTypeNameDef);
+ xmlSchemaTypeIdDef = xmlSchemaInitBasicType("ID", XML_SCHEMAS_ID,
+ xmlSchemaTypeNCNameDef);
xmlSchemaTypeIdrefDef = xmlSchemaInitBasicType("IDREF",
- XML_SCHEMAS_IDREF);
+ XML_SCHEMAS_IDREF,
+ xmlSchemaTypeNCNameDef);
xmlSchemaTypeIdrefsDef = xmlSchemaInitBasicType("IDREFS",
- XML_SCHEMAS_IDREFS);
+ XML_SCHEMAS_IDREFS,
+ xmlSchemaTypeIdrefDef);
+ xmlSchemaTypeNmtokensDef = xmlSchemaInitBasicType("NMTOKENS",
+ XML_SCHEMAS_NMTOKENS,
+ xmlSchemaTypeNmtokenDef);
xmlSchemaTypeEntityDef = xmlSchemaInitBasicType("ENTITY",
- XML_SCHEMAS_ENTITY);
+ XML_SCHEMAS_ENTITY,
+ xmlSchemaTypeNCNameDef);
xmlSchemaTypeEntitiesDef = xmlSchemaInitBasicType("ENTITIES",
- XML_SCHEMAS_ENTITIES);
- xmlSchemaTypeNotationDef = xmlSchemaInitBasicType("NOTATION",
- XML_SCHEMAS_NOTATION);
- xmlSchemaTypeNameDef = xmlSchemaInitBasicType("Name",
- XML_SCHEMAS_NAME);
- xmlSchemaTypeQNameDef = xmlSchemaInitBasicType("QName",
- XML_SCHEMAS_QNAME);
- xmlSchemaTypeNCNameDef = xmlSchemaInitBasicType("NCName",
- XML_SCHEMAS_NCNAME);
- xmlSchemaTypeNmtokenDef = xmlSchemaInitBasicType("NMTOKEN",
- XML_SCHEMAS_NMTOKEN);
- xmlSchemaTypeNmtokensDef = xmlSchemaInitBasicType("NMTOKENS",
- XML_SCHEMAS_NMTOKENS);
+ XML_SCHEMAS_ENTITIES,
+ xmlSchemaTypeNCNameDef);
xmlSchemaTypesInitialized = 1;
}
@@ -394,11 +450,203 @@ void
xmlSchemaCleanupTypes(void) {
if (xmlSchemaTypesInitialized == 0)
return;
+ xmlSchemaFreeWildcard(xmlSchemaTypeAnyTypeDef->attributeWildcard);
xmlHashFree(xmlSchemaTypesBank, (xmlHashDeallocator) xmlSchemaFreeType);
xmlSchemaTypesInitialized = 0;
}
/**
+ * xmlSchemaGetBuiltInType:
+ * @type: the built-in type
+ * @facetType: the facet type
+ *
+ * Evaluates if a specific facet can be
+ * used in conjunction with a type.
+ *
+ * Returns 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.
+ */
+int
+xmlSchemaIsBuiltInTypeFacet(xmlSchemaTypePtr type, int facetType)
+{
+ if (type->type != XML_SCHEMA_TYPE_BASIC)
+ return (-1);
+ switch (type->builtInType) {
+ case XML_SCHEMAS_BOOLEAN:
+ if ((facetType == XML_SCHEMA_FACET_PATTERN) ||
+ (facetType == XML_SCHEMA_FACET_WHITESPACE))
+ return (1);
+ else
+ return (0);
+ case XML_SCHEMAS_STRING:
+ case XML_SCHEMAS_NOTATION:
+ case XML_SCHEMAS_QNAME:
+ case XML_SCHEMAS_ANYURI:
+ case XML_SCHEMAS_BASE64BINARY:
+ case XML_SCHEMAS_HEXBINARY:
+ if ((facetType == XML_SCHEMA_FACET_LENGTH) ||
+ (facetType == XML_SCHEMA_FACET_MINLENGTH) ||
+ (facetType == XML_SCHEMA_FACET_MAXLENGTH) ||
+ (facetType == XML_SCHEMA_FACET_PATTERN) ||
+ (facetType == XML_SCHEMA_FACET_ENUMERATION) ||
+ (facetType == XML_SCHEMA_FACET_WHITESPACE))
+ return (1);
+ else
+ return (0);
+ case XML_SCHEMAS_DECIMAL:
+ if ((facetType == XML_SCHEMA_FACET_TOTALDIGITS) ||
+ (facetType == XML_SCHEMA_FACET_FRACTIONDIGITS) ||
+ (facetType == XML_SCHEMA_FACET_PATTERN) ||
+ (facetType == XML_SCHEMA_FACET_WHITESPACE) ||
+ (facetType == XML_SCHEMA_FACET_ENUMERATION) ||
+ (facetType == XML_SCHEMA_FACET_MAXINCLUSIVE) ||
+ (facetType == XML_SCHEMA_FACET_MAXEXCLUSIVE) ||
+ (facetType == XML_SCHEMA_FACET_MININCLUSIVE) ||
+ (facetType == XML_SCHEMA_FACET_MINEXCLUSIVE))
+ return (1);
+ else
+ return (0);
+ case XML_SCHEMAS_TIME:
+ case XML_SCHEMAS_GDAY:
+ case XML_SCHEMAS_GMONTH:
+ case XML_SCHEMAS_GMONTHDAY:
+ case XML_SCHEMAS_GYEAR:
+ case XML_SCHEMAS_GYEARMONTH:
+ case XML_SCHEMAS_DATE:
+ case XML_SCHEMAS_DATETIME:
+ case XML_SCHEMAS_DURATION:
+ case XML_SCHEMAS_FLOAT:
+ case XML_SCHEMAS_DOUBLE:
+ if ((facetType == XML_SCHEMA_FACET_PATTERN) ||
+ (facetType == XML_SCHEMA_FACET_ENUMERATION) ||
+ (facetType == XML_SCHEMA_FACET_WHITESPACE) ||
+ (facetType == XML_SCHEMA_FACET_MAXINCLUSIVE) ||
+ (facetType == XML_SCHEMA_FACET_MAXEXCLUSIVE) ||
+ (facetType == XML_SCHEMA_FACET_MININCLUSIVE) ||
+ (facetType == XML_SCHEMA_FACET_MINEXCLUSIVE))
+ return (1);
+ else
+ return (0);
+ default:
+ return (0);
+ }
+ return (0);
+}
+
+/**
+ * xmlSchemaGetBuiltInType:
+ * @type: the type of the built in type
+ *
+ * Gives you the type struct for a built-in
+ * type by its type id.
+ *
+ * Returns the type if found, NULL otherwise.
+ */
+xmlSchemaTypePtr
+xmlSchemaGetBuiltInType(xmlSchemaValType type)
+{
+ if (xmlSchemaTypesInitialized == 0)
+ xmlSchemaInitTypes();
+ switch (type) {
+
+ case XML_SCHEMAS_ANYSIMPLETYPE:
+ return (xmlSchemaTypeAnySimpleTypeDef);
+ case XML_SCHEMAS_STRING:
+ return (xmlSchemaTypeStringDef);
+ case XML_SCHEMAS_NORMSTRING:
+ return (xmlSchemaTypeNormStringDef);
+ case XML_SCHEMAS_DECIMAL:
+ return (xmlSchemaTypeDecimalDef);
+ case XML_SCHEMAS_TIME:
+ return (xmlSchemaTypeTimeDef);
+ case XML_SCHEMAS_GDAY:
+ return (xmlSchemaTypeGDayDef);
+ case XML_SCHEMAS_GMONTH:
+ return (xmlSchemaTypeGMonthDef);
+ case XML_SCHEMAS_GMONTHDAY:
+ return (xmlSchemaTypeGMonthDayDef);
+ case XML_SCHEMAS_GYEAR:
+ return (xmlSchemaTypeGYearDef);
+ case XML_SCHEMAS_GYEARMONTH:
+ return (xmlSchemaTypeGYearMonthDef);
+ case XML_SCHEMAS_DATE:
+ return (xmlSchemaTypeDateDef);
+ case XML_SCHEMAS_DATETIME:
+ return (xmlSchemaTypeDatetimeDef);
+ case XML_SCHEMAS_DURATION:
+ return (xmlSchemaTypeDurationDef);
+ case XML_SCHEMAS_FLOAT:
+ return (xmlSchemaTypeFloatDef);
+ case XML_SCHEMAS_DOUBLE:
+ return (xmlSchemaTypeDoubleDef);
+ case XML_SCHEMAS_BOOLEAN:
+ return (xmlSchemaTypeBooleanDef);
+ case XML_SCHEMAS_TOKEN:
+ return (xmlSchemaTypeTokenDef);
+ case XML_SCHEMAS_LANGUAGE:
+ return (xmlSchemaTypeLanguageDef);
+ case XML_SCHEMAS_NMTOKEN:
+ return (xmlSchemaTypeNmtokenDef);
+ case XML_SCHEMAS_NMTOKENS:
+ return (xmlSchemaTypeNmtokensDef);
+ case XML_SCHEMAS_NAME:
+ return (xmlSchemaTypeNameDef);
+ case XML_SCHEMAS_QNAME:
+ return (xmlSchemaTypeQNameDef);
+ case XML_SCHEMAS_NCNAME:
+ return (xmlSchemaTypeNCNameDef);
+ case XML_SCHEMAS_ID:
+ return (xmlSchemaTypeIdDef);
+ case XML_SCHEMAS_IDREF:
+ return (xmlSchemaTypeIdrefDef);
+ case XML_SCHEMAS_IDREFS:
+ return (xmlSchemaTypeIdrefsDef);
+ case XML_SCHEMAS_ENTITY:
+ return (xmlSchemaTypeEntityDef);
+ case XML_SCHEMAS_ENTITIES:
+ return (xmlSchemaTypeEntitiesDef);
+ case XML_SCHEMAS_NOTATION:
+ return (xmlSchemaTypeNotationDef);
+ case XML_SCHEMAS_ANYURI:
+ return (xmlSchemaTypeAnyURIDef);
+ case XML_SCHEMAS_INTEGER:
+ return (xmlSchemaTypeIntegerDef);
+ case XML_SCHEMAS_NPINTEGER:
+ return (xmlSchemaTypeNonPositiveIntegerDef);
+ case XML_SCHEMAS_NINTEGER:
+ return (xmlSchemaTypeNegativeIntegerDef);
+ case XML_SCHEMAS_NNINTEGER:
+ return (xmlSchemaTypeNonNegativeIntegerDef);
+ case XML_SCHEMAS_PINTEGER:
+ return (xmlSchemaTypePositiveIntegerDef);
+ case XML_SCHEMAS_INT:
+ return (xmlSchemaTypeIntDef);
+ case XML_SCHEMAS_UINT:
+ return (xmlSchemaTypeUnsignedIntDef);
+ case XML_SCHEMAS_LONG:
+ return (xmlSchemaTypeLongDef);
+ case XML_SCHEMAS_ULONG:
+ return (xmlSchemaTypeUnsignedLongDef);
+ case XML_SCHEMAS_SHORT:
+ return (xmlSchemaTypeShortDef);
+ case XML_SCHEMAS_USHORT:
+ return (xmlSchemaTypeUnsignedShortDef);
+ case XML_SCHEMAS_BYTE:
+ return (xmlSchemaTypeByteDef);
+ case XML_SCHEMAS_UBYTE:
+ return (xmlSchemaTypeUnsignedByteDef);
+ case XML_SCHEMAS_HEXBINARY:
+ return (xmlSchemaTypeHexBinaryDef);
+ case XML_SCHEMAS_BASE64BINARY:
+ return (xmlSchemaTypeBase64BinaryDef);
+ case XML_SCHEMAS_ANYTYPE:
+ return (xmlSchemaTypeAnyTypeDef);
+ default:
+ return (NULL);
+ }
+}
+
+/**
* xmlSchemaNewValue:
* @type: the value type
*
@@ -486,6 +734,30 @@ xmlSchemaGetPredefinedType(const xmlChar *name, const xmlChar *ns) {
return((xmlSchemaTypePtr) xmlHashLookup2(xmlSchemaTypesBank, name, ns));
}
+/**
+ * xmlSchemaGetBuiltInListSimpleTypeItemType:
+ * @type: the built-in simple type.
+ *
+ * Returns 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.
+ */
+xmlSchemaTypePtr
+xmlSchemaGetBuiltInListSimpleTypeItemType(xmlSchemaTypePtr type)
+{
+ if (type->type != XML_SCHEMA_TYPE_BASIC)
+ return (NULL);
+ switch (type->builtInType) {
+ case XML_SCHEMAS_NMTOKENS:
+ return (xmlSchemaTypeNmtokenDef );
+ case XML_SCHEMAS_IDREFS:
+ return (xmlSchemaTypeIdrefDef);
+ case XML_SCHEMAS_ENTITIES:
+ return (xmlSchemaTypeEntityDef);
+ default:
+ return (NULL);
+ }
+}
+
/****************************************************************
* *
* Convenience macros and functions *
@@ -1269,7 +1541,7 @@ xmlSchemaStrip(const xmlChar *value) {
*
* Returns the new string or NULL if no change was required.
*/
-static xmlChar *
+xmlChar *
xmlSchemaCollapseString(const xmlChar *value) {
const xmlChar *start = value, *end, *f;
xmlChar *g;
@@ -1442,6 +1714,7 @@ xmlSchemaParseUInt(const xmlChar **str, unsigned long *llo,
*
* Check that a value conforms to the lexical space of the atomic type.
* if true a value is computed and returned in @val.
+ * This checks the value space for list types as well (IDREFS, NMTOKENS).
*
* Returns 0 if this validates, a positive error code number otherwise
* and -1 in case of internal or API error.
@@ -1455,24 +1728,24 @@ xmlSchemaValAtomicType(xmlSchemaTypePtr type, const xmlChar * value,
int ret = 0;
if (xmlSchemaTypesInitialized == 0)
- return (-1);
+ xmlSchemaInitTypes();
if (type == NULL)
return (-1);
if (val != NULL)
*val = NULL;
if ((flags == 0) && (value != NULL)) {
- if ((type->flags != XML_SCHEMAS_STRING) &&
- (type->flags != XML_SCHEMAS_NORMSTRING)) {
+ if ((type->builtInType != XML_SCHEMAS_STRING) &&
+ (type->builtInType != XML_SCHEMAS_NORMSTRING)) {
norm = xmlSchemaCollapseString(value);
if (norm != NULL)
value = norm;
}
}
- switch (type->flags) {
+ switch (type->builtInType) {
case XML_SCHEMAS_UNKNOWN:
- if (type == xmlSchemaTypeAnyTypeDef)
+ if (type == xmlSchemaTypeAnySimpleTypeDef)
goto return0;
goto error;
case XML_SCHEMAS_STRING:
@@ -1548,7 +1821,7 @@ xmlSchemaValAtomicType(xmlSchemaTypePtr type, const xmlChar * value,
case XML_SCHEMAS_GYEARMONTH:
case XML_SCHEMAS_DATE:
case XML_SCHEMAS_DATETIME:
- ret = xmlSchemaValidateDates(type->flags, value, val);
+ ret = xmlSchemaValidateDates(type->builtInType, value, val);
break;
case XML_SCHEMAS_DURATION:
ret = xmlSchemaValidateDuration(type, value, val);
@@ -1649,7 +1922,7 @@ xmlSchemaValAtomicType(xmlSchemaTypePtr type, const xmlChar * value,
if (v != NULL) {
if (sscanf((const char *) value, "%f",
&(v->value.f)) == 1) {
- *val = v;
+ *val = v;
} else {
xmlSchemaFreeValue(v);
goto return1;
@@ -2210,21 +2483,21 @@ xmlSchemaValAtomicType(xmlSchemaTypePtr type, const xmlChar * value,
goto return1;
if (*cur != 0)
goto return1;
- if (type->flags == XML_SCHEMAS_NPINTEGER) {
+ if (type->builtInType == XML_SCHEMAS_NPINTEGER) {
if ((sign == 0) &&
((hi != 0) || (mi != 0) || (lo != 0)))
goto return1;
- } else if (type->flags == XML_SCHEMAS_PINTEGER) {
+ } else if (type->builtInType == XML_SCHEMAS_PINTEGER) {
if (sign == 1)
goto return1;
if ((hi == 0) && (mi == 0) && (lo == 0))
goto return1;
- } else if (type->flags == XML_SCHEMAS_NINTEGER) {
+ } else if (type->builtInType == XML_SCHEMAS_NINTEGER) {
if (sign == 0)
goto return1;
if ((hi == 0) && (mi == 0) && (lo == 0))
goto return1;
- } else if (type->flags == XML_SCHEMAS_NNINTEGER) {
+ } else if (type->builtInType == XML_SCHEMAS_NNINTEGER) {
if ((sign == 1) &&
((hi != 0) || (mi != 0) || (lo != 0)))
goto return1;
@@ -2233,7 +2506,7 @@ xmlSchemaValAtomicType(xmlSchemaTypePtr type, const xmlChar * value,
* We can store a value only if no overflow occured
*/
if ((ret > 0) && (val != NULL)) {
- v = xmlSchemaNewValue(type->flags);
+ v = xmlSchemaNewValue(type->builtInType);
if (v != NULL) {
v->value.decimal.lo = lo;
v->value.decimal.mi = lo;
@@ -2267,7 +2540,7 @@ xmlSchemaValAtomicType(xmlSchemaTypePtr type, const xmlChar * value,
goto return1;
if (*cur != 0)
goto return1;
- if (type->flags == XML_SCHEMAS_LONG) {
+ if (type->builtInType == XML_SCHEMAS_LONG) {
if (hi >= 922) {
if (hi > 922)
goto return1;
@@ -2280,7 +2553,7 @@ xmlSchemaValAtomicType(xmlSchemaTypePtr type, const xmlChar * value,
goto return1;
}
}
- } else if (type->flags == XML_SCHEMAS_INT) {
+ } else if (type->builtInType == XML_SCHEMAS_INT) {
if (hi != 0)
goto return1;
if (mi >= 21) {
@@ -2291,14 +2564,14 @@ xmlSchemaValAtomicType(xmlSchemaTypePtr type, const xmlChar * value,
if ((sign == 1) && (lo > 47483648))
goto return1;
}
- } else if (type->flags == XML_SCHEMAS_SHORT) {
+ } else if (type->builtInType == XML_SCHEMAS_SHORT) {
if ((mi != 0) || (hi != 0))
goto return1;
if ((sign == 1) && (lo > 32768))
goto return1;
if ((sign == 0) && (lo > 32767))
goto return1;
- } else if (type->flags == XML_SCHEMAS_BYTE) {
+ } else if (type->builtInType == XML_SCHEMAS_BYTE) {
if ((mi != 0) || (hi != 0))
goto return1;
if ((sign == 1) && (lo > 128))
@@ -2307,7 +2580,7 @@ xmlSchemaValAtomicType(xmlSchemaTypePtr type, const xmlChar * value,
goto return1;
}
if (val != NULL) {
- v = xmlSchemaNewValue(type->flags);
+ v = xmlSchemaNewValue(type->builtInType);
if (v != NULL) {
v->value.decimal.lo = lo;
v->value.decimal.mi = lo;
@@ -2335,7 +2608,7 @@ xmlSchemaValAtomicType(xmlSchemaTypePtr type, const xmlChar * value,
goto return1;
if (*cur != 0)
goto return1;
- if (type->flags == XML_SCHEMAS_ULONG) {
+ if (type->builtInType == XML_SCHEMAS_ULONG) {
if (hi >= 1844) {
if (hi > 1844)
goto return1;
@@ -2346,7 +2619,7 @@ xmlSchemaValAtomicType(xmlSchemaTypePtr type, const xmlChar * value,
goto return1;
}
}
- } else if (type->flags == XML_SCHEMAS_UINT) {
+ } else if (type->builtInType == XML_SCHEMAS_UINT) {
if (hi != 0)
goto return1;
if (mi >= 42) {
@@ -2355,19 +2628,19 @@ xmlSchemaValAtomicType(xmlSchemaTypePtr type, const xmlChar * value,
if (lo > 94967295)
goto return1;
}
- } else if (type->flags == XML_SCHEMAS_USHORT) {
+ } else if (type->builtInType == XML_SCHEMAS_USHORT) {
if ((mi != 0) || (hi != 0))
goto return1;
if (lo > 65535)
goto return1;
- } else if (type->flags == XML_SCHEMAS_UBYTE) {
+ } else if (type->builtInType == XML_SCHEMAS_UBYTE) {
if ((mi != 0) || (hi != 0))
goto return1;
if (lo > 255)
goto return1;
}
if (val != NULL) {
- v = xmlSchemaNewValue(type->flags);
+ v = xmlSchemaNewValue(type->builtInType);
if (v != NULL) {
v->value.decimal.lo = lo;
v->value.decimal.mi = mi;
@@ -2477,11 +2750,11 @@ xmlSchemaCompareDecimals(xmlSchemaValPtr x, xmlSchemaValPtr y)
if (x->value.decimal.frac == y->value.decimal.frac) {
if (x->value.decimal.hi < y->value.decimal.hi)
return (-order);
- if (x->value.decimal.hi < y->value.decimal.hi)
+ if (x->value.decimal.hi > y->value.decimal.hi)
return (order);
if (x->value.decimal.mi < y->value.decimal.mi)
return (-order);
- if (x->value.decimal.mi < y->value.decimal.mi)
+ if (x->value.decimal.mi > y->value.decimal.mi)
return (order);
if (x->value.decimal.lo < y->value.decimal.lo)
return (-order);
@@ -2608,20 +2881,41 @@ xmlSchemaCompareDurations(xmlSchemaValPtr x, xmlSchemaValPtr y)
#define MODULO_RANGE(a,low,high) ((MODULO((a-low),(high-low)))+low)
/**
+ * xmlSchemaDupVal:
+ * @v: the #xmlSchemaValPtr value to duplicate
+ *
+ * Makes a copy of @v. The calling program is responsible for freeing
+ * the returned value.
+ *
+ * returns a pointer to a duplicated #xmlSchemaValPtr or NULL if error.
+ */
+static xmlSchemaValPtr
+xmlSchemaDupVal (xmlSchemaValPtr v)
+{
+ xmlSchemaValPtr ret = xmlSchemaNewValue(v->type);
+ if (ret == NULL)
+ return NULL;
+
+ memcpy(ret, v, sizeof(xmlSchemaVal));
+ return ret;
+}
+
+/**
* _xmlSchemaDateAdd:
* @dt: an #xmlSchemaValPtr
* @dur: an #xmlSchemaValPtr of type #XS_DURATION
*
* Compute a new date/time from @dt and @dur. This function assumes @dt
* is either #XML_SCHEMAS_DATETIME, #XML_SCHEMAS_DATE, #XML_SCHEMAS_GYEARMONTH,
- * or #XML_SCHEMAS_GYEAR.
+ * or #XML_SCHEMAS_GYEAR. The returned #xmlSchemaVal is the same type as
+ * @dt. The calling program is responsible for freeing the returned value.
*
- * Returns date/time pointer or NULL.
+ * Returns a pointer to a new #xmlSchemaVal or NULL if error.
*/
static xmlSchemaValPtr
_xmlSchemaDateAdd (xmlSchemaValPtr dt, xmlSchemaValPtr dur)
{
- xmlSchemaValPtr ret;
+ xmlSchemaValPtr ret, tmp;
long carry, tempdays, temp;
xmlSchemaValDatePtr r, d;
xmlSchemaValDurationPtr u;
@@ -2633,8 +2927,15 @@ _xmlSchemaDateAdd (xmlSchemaValPtr dt, xmlSchemaValPtr dur)
if (ret == NULL)
return NULL;
+ /* make a copy so we don't alter the original value */
+ tmp = xmlSchemaDupVal(dt);
+ if (tmp == NULL) {
+ xmlSchemaFreeValue(ret);
+ return NULL;
+ }
+
r = &(ret->value.date);
- d = &(dt->value.date);
+ d = &(tmp->value.date);
u = &(dur->value.dur);
/* normalization */
@@ -2740,32 +3041,20 @@ _xmlSchemaDateAdd (xmlSchemaValPtr dt, xmlSchemaValPtr dur)
}
}
- return ret;
-}
+ xmlSchemaFreeValue(tmp);
-/**
- * xmlSchemaDupVal:
- * @v: value to duplicate
- *
- * returns a duplicated value.
- */
-static xmlSchemaValPtr
-xmlSchemaDupVal (xmlSchemaValPtr v)
-{
- xmlSchemaValPtr ret = xmlSchemaNewValue(v->type);
- if (ret == NULL)
- return ret;
-
- memcpy(ret, v, sizeof(xmlSchemaVal));
return ret;
}
/**
* xmlSchemaDateNormalize:
- * @dt: an #xmlSchemaValPtr
+ * @dt: an #xmlSchemaValPtr of a date/time type value.
+ * @offset: number of seconds to adjust @dt by.
*
- * Normalize @dt to GMT time.
+ * Normalize @dt to GMT time. The @offset parameter is subtracted from
+ * the return value is a time-zone offset is present on @dt.
*
+ * Returns a normalized copy of @dt or NULL if error.
*/
static xmlSchemaValPtr
xmlSchemaDateNormalize (xmlSchemaValPtr dt, double offset)
@@ -3378,6 +3667,9 @@ xmlSchemaCompareValues(xmlSchemaValPtr x, xmlSchemaValPtr y) {
case XML_SCHEMAS_NMTOKENS:
TODO
break;
+ case XML_SCHEMAS_ANYTYPE:
+ case XML_SCHEMAS_ANYSIMPLETYPE:
+ break;
}
return -2;
}
@@ -3429,6 +3721,53 @@ xmlSchemaNormLen(const xmlChar *value) {
}
/**
+ * xmlSchemaValidateListSimpleTypeFacet:
+ * @facet: the facet to check
+ * @value: the lexical repr of the value to validate
+ * @actualLen: the number of list items
+ * @expectedLen: the resulting expected number of list items
+ *
+ * Checks the value of a list simple type against a facet.
+ *
+ * Returns 0 if the value is valid, a positive error code
+ * number otherwise and -1 in case of an internal error.
+ */
+int
+xmlSchemaValidateListSimpleTypeFacet(xmlSchemaFacetPtr facet,
+ const xmlChar *value,
+ unsigned long actualLen,
+ unsigned long *expectedLen)
+{
+ /*
+ * TODO: Check if this will work with large numbers.
+ * (compare value.decimal.mi and value.decimal.hi as well?).
+ */
+ if (facet->type == XML_SCHEMA_FACET_LENGTH) {
+ if (actualLen != facet->val->value.decimal.lo) {
+ *expectedLen = facet->val->value.decimal.lo;
+ return (XML_SCHEMAV_CVC_LENGTH_VALID);
+ }
+ } else if (facet->type == XML_SCHEMA_FACET_MINLENGTH) {
+ if (actualLen < facet->val->value.decimal.lo) {
+ *expectedLen = facet->val->value.decimal.lo;
+ return (XML_SCHEMAV_CVC_MINLENGTH_VALID);
+ }
+ } else if (facet->type == XML_SCHEMA_FACET_MAXLENGTH) {
+ if (actualLen > facet->val->value.decimal.lo) {
+ *expectedLen = facet->val->value.decimal.lo;
+ return (XML_SCHEMAV_CVC_MAXLENGTH_VALID);
+ }
+ } else
+ /*
+ * NOTE: That we can pass NULL as xmlSchemaValPtr to
+ * xmlSchemaValidateFacet, since the remaining facet types
+ * are: XML_SCHEMA_FACET_PATTERN, XML_SCHEMA_FACET_ENUMERATION.
+ */
+ return(xmlSchemaValidateFacet(NULL, facet, value, NULL));
+ return (0);
+}
+
+/**
* xmlSchemaValidateFacet:
* @base: the base type
* @facet: the facet to check
@@ -3453,8 +3792,7 @@ xmlSchemaValidateFacet(xmlSchemaTypePtr base ATTRIBUTE_UNUSED,
if (ret == 1)
return(0);
if (ret == 0) {
- /* TODO error code */
- return(1);
+ return(XML_SCHEMAV_CVC_PATTERN_VALID);
}
return(ret);
case XML_SCHEMA_FACET_MAXEXCLUSIVE:
@@ -3466,7 +3804,7 @@ xmlSchemaValidateFacet(xmlSchemaTypePtr base ATTRIBUTE_UNUSED,
if (ret == -1)
return(0);
/* error code */
- return(1);
+ return(XML_SCHEMAV_CVC_MAXEXCLUSIVE_VALID);
case XML_SCHEMA_FACET_MAXINCLUSIVE:
ret = xmlSchemaCompareValues(val, facet->val);
if (ret == -2) {
@@ -3476,7 +3814,7 @@ xmlSchemaValidateFacet(xmlSchemaTypePtr base ATTRIBUTE_UNUSED,
if ((ret == -1) || (ret == 0))
return(0);
/* error code */
- return(1);
+ return(XML_SCHEMAV_CVC_MAXINCLUSIVE_VALID);
case XML_SCHEMA_FACET_MINEXCLUSIVE:
ret = xmlSchemaCompareValues(val, facet->val);
if (ret == -2) {
@@ -3486,7 +3824,7 @@ xmlSchemaValidateFacet(xmlSchemaTypePtr base ATTRIBUTE_UNUSED,
if (ret == 1)
return(0);
/* error code */
- return(1);
+ return(XML_SCHEMAV_CVC_MINEXCLUSIVE_VALID);
case XML_SCHEMA_FACET_MININCLUSIVE:
ret = xmlSchemaCompareValues(val, facet->val);
if (ret == -2) {
@@ -3496,15 +3834,20 @@ xmlSchemaValidateFacet(xmlSchemaTypePtr base ATTRIBUTE_UNUSED,
if ((ret == 1) || (ret == 0))
return(0);
/* error code */
- return(1);
+ return(XML_SCHEMAV_CVC_MININCLUSIVE_VALID);
case XML_SCHEMA_FACET_WHITESPACE:
/* TODO whitespaces */
+ /*
+ * NOTE: Whitespace should be handled to normalize
+ * the value to be validated against a the facets;
+ * not to normalize the value in-between.
+ */
return(0);
case XML_SCHEMA_FACET_ENUMERATION:
if ((facet->value != NULL) &&
(xmlStrEqual(facet->value, value)))
return(0);
- return(1);
+ return(XML_SCHEMAV_CVC_ENUMERATION_VALID);
case XML_SCHEMA_FACET_LENGTH:
case XML_SCHEMA_FACET_MAXLENGTH:
case XML_SCHEMA_FACET_MINLENGTH: {
@@ -3521,7 +3864,7 @@ xmlSchemaValidateFacet(xmlSchemaTypePtr base ATTRIBUTE_UNUSED,
else if ((val != NULL) && (val->type == XML_SCHEMAS_BASE64BINARY))
len = val->value.base64.total;
else {
- switch (base->flags) {
+ switch (base->builtInType) {
case XML_SCHEMAS_IDREF:
case XML_SCHEMAS_NORMSTRING:
case XML_SCHEMAS_TOKEN:
@@ -3533,6 +3876,10 @@ xmlSchemaValidateFacet(xmlSchemaTypePtr base ATTRIBUTE_UNUSED,
len = xmlSchemaNormLen(value);
break;
case XML_SCHEMAS_STRING:
+ /*
+ * FIXME: What exactly to do with anyURI?
+ */
+ case XML_SCHEMAS_ANYURI:
if (value != NULL)
len = xmlUTF8Strlen(value);
break;
@@ -3542,13 +3889,13 @@ xmlSchemaValidateFacet(xmlSchemaTypePtr base ATTRIBUTE_UNUSED,
}
if (facet->type == XML_SCHEMA_FACET_LENGTH) {
if (len != facet->val->value.decimal.lo)
- return(1);
+ return(XML_SCHEMAV_CVC_LENGTH_VALID);
} else if (facet->type == XML_SCHEMA_FACET_MINLENGTH) {
if (len < facet->val->value.decimal.lo)
- return(1);
+ return(XML_SCHEMAV_CVC_MINLENGTH_VALID);
} else {
if (len > facet->val->value.decimal.lo)
- return(1);
+ return(XML_SCHEMAV_CVC_MAXLENGTH_VALID);
}
break;
}
@@ -3580,11 +3927,11 @@ xmlSchemaValidateFacet(xmlSchemaTypePtr base ATTRIBUTE_UNUSED,
}
if (facet->type == XML_SCHEMA_FACET_TOTALDIGITS) {
if (val->value.decimal.total > facet->val->value.decimal.lo)
- return(1);
+ return(XML_SCHEMAV_CVC_TOTALDIGITS_VALID);
} else if (facet->type == XML_SCHEMA_FACET_FRACTIONDIGITS) {
if (val->value.decimal.frac > facet->val->value.decimal.lo)
- return(1);
+ return(XML_SCHEMAV_CVC_FRACTIONDIGITS_VALID);
}
break;
default:
diff --git a/xpath.c b/xpath.c
index c964e37..9bbfdce 100644
--- a/xpath.c
+++ b/xpath.c
@@ -7593,6 +7593,8 @@ xmlXPathStringEvalNumber(const xmlChar *str) {
if (*cur == '-') {
is_exponent_negative = 1;
cur++;
+ } else if (*cur == '+') {
+ cur++;
}
while ((*cur >= '0') && (*cur <= '9')) {
exponent = exponent * 10 + (*cur - '0');
@@ -7673,7 +7675,9 @@ xmlXPathCompNumber(xmlXPathParserContextPtr ctxt)
if (CUR == '-') {
is_exponent_negative = 1;
NEXT;
- }
+ } else if (CUR == '+') {
+ NEXT;
+ }
while ((CUR >= '0') && (CUR <= '9')) {
exponent = exponent * 10 + (CUR - '0');
NEXT;
@@ -10588,6 +10592,7 @@ xmlXPathCompOpEval(xmlXPathParserContextPtr ctxt, xmlXPathStepOpPtr op)
if ((oldset == NULL) || (oldset->nodeNr == 0)) {
ctxt->context->contextSize = 0;
ctxt->context->proximityPosition = 0;
+/*
if (op->ch2 != -1)
total +=
xmlXPathCompOpEval(ctxt,
@@ -10596,6 +10601,7 @@ xmlXPathCompOpEval(xmlXPathParserContextPtr ctxt, xmlXPathStepOpPtr op)
res = valuePop(ctxt);
if (res != NULL)
xmlXPathFreeObject(res);
+*/
valuePush(ctxt, obj);
ctxt->context->node = oldnode;
CHECK_ERROR0;