summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog204
-rw-r--r--DOCBparser.c2
-rw-r--r--HTMLparser.c2
-rw-r--r--HTMLtree.c6
-rw-r--r--Makefile.am2
-rw-r--r--Makefile.in2
-rw-r--r--SAX.c3
-rw-r--r--SAX2.c2
-rw-r--r--c14n.c336
-rw-r--r--catalog.c2
-rwxr-xr-xchvalid.c2
-rw-r--r--config.h.in6
-rwxr-xr-xconfigure12
-rw-r--r--configure.in12
-rw-r--r--debugXML.c2
-rw-r--r--dict.c2
-rw-r--r--doc/APIchunk0.html30
-rw-r--r--doc/APIchunk1.html1
-rw-r--r--doc/APIchunk10.html2
-rw-r--r--doc/APIchunk13.html2
-rw-r--r--doc/APIchunk14.html1
-rw-r--r--doc/APIchunk15.html9
-rw-r--r--doc/APIchunk16.html3
-rw-r--r--doc/APIchunk17.html2
-rw-r--r--doc/APIchunk18.html3
-rw-r--r--doc/APIchunk20.html32
-rw-r--r--doc/APIchunk21.html2
-rw-r--r--doc/APIchunk22.html3
-rw-r--r--doc/APIchunk23.html4
-rw-r--r--doc/APIchunk24.html1
-rw-r--r--doc/APIchunk25.html2
-rw-r--r--doc/APIchunk26.html1
-rw-r--r--doc/APIchunk4.html4
-rw-r--r--doc/APIchunk6.html1
-rw-r--r--doc/APIchunk8.html8
-rw-r--r--doc/APIchunk9.html2
-rw-r--r--doc/APIconstructors.html1
-rw-r--r--doc/APIfiles.html9
-rw-r--r--doc/APIfunctions.html16
-rw-r--r--doc/APIsymbols.html9
-rwxr-xr-xdoc/apibuild.py78
-rw-r--r--doc/elfgcchack.xsl53
-rw-r--r--doc/examples/Makefile.am128
-rw-r--r--doc/examples/Makefile.in128
-rw-r--r--doc/examples/examples.xml586
-rw-r--r--doc/html/libxml-parser.html8
-rw-r--r--doc/html/libxml-schemasInternals.html6
-rw-r--r--doc/html/libxml-xmlerror.html2
-rw-r--r--doc/html/libxml-xmlschemas.html1
-rw-r--r--doc/html/libxml-xmlschemastypes.html19
-rw-r--r--doc/libxml2-api.xml3286
-rw-r--r--doc/libxml2.xsa52
-rw-r--r--doc/news.html20
-rw-r--r--doc/xml.html21
-rw-r--r--elfgcchack.h11822
-rw-r--r--encoding.c5
-rw-r--r--entities.c2
-rw-r--r--error.c2
-rwxr-xr-xgentest.py1
-rw-r--r--globals.c10
-rw-r--r--hash.c2
-rw-r--r--include/libxml/parser.h4
-rw-r--r--include/libxml/schemasInternals.h20
-rw-r--r--include/libxml/xmlerror.h2
-rw-r--r--include/libxml/xmlschemastypes.h22
-rw-r--r--include/libxml/xmlversion.h10
-rw-r--r--legacy.c2
-rw-r--r--libxml.spec.in6
-rw-r--r--libxml2.spec12
-rw-r--r--list.c2
-rw-r--r--macos/src/config-mac.h2
-rw-r--r--nanoftp.c10
-rw-r--r--nanohttp.c14
-rw-r--r--parser.c17
-rw-r--r--parserInternals.c2
-rw-r--r--pattern.c4
-rwxr-xr-xpython/generator.py6
-rw-r--r--python/libxml.c9
-rw-r--r--python/libxml.py39
-rw-r--r--python/libxml2-py.c16
-rwxr-xr-xpython/setup.py2
-rw-r--r--python/tests/Makefile.am5
-rw-r--r--python/tests/Makefile.in5
-rwxr-xr-xpython/tests/validDTD.py59
-rwxr-xr-xpython/tests/validRNG.py76
-rwxr-xr-xpython/tests/validSchemas.py83
-rw-r--r--relaxng.c9
-rw-r--r--result/relaxng/list_00
-rw-r--r--result/relaxng/list_0.err1
-rw-r--r--result/relaxng/list_10
-rw-r--r--result/relaxng/list_1.err2
-rw-r--r--result/relaxng/list_err1
-rw-r--r--result/relaxng/list_valid0
-rw-r--r--result/schemas/element-err_0_0.err12
-rw-r--r--result/schemas/element-minmax-err_0_0.err2
-rw-r--r--result/schemas/src-element2-1_0_0.err2
-rw-r--r--result/schemas/src-element2-2_0_0.err18
-rw-r--r--test/relaxng/.memdump4
-rw-r--r--test/relaxng/list.rng23
-rw-r--r--test/relaxng/list_0.xml1
-rw-r--r--test/relaxng/list_1.xml1
-rwxr-xr-xtest/schemas/bug152470_1.xsd2
-rw-r--r--testapi.c199
-rw-r--r--threads.c2
-rw-r--r--tree.c217
-rw-r--r--uri.c2
-rw-r--r--valid.c2
-rw-r--r--win32/libxml2.def.src12
-rw-r--r--xinclude.c2
-rw-r--r--xlink.c2
-rw-r--r--xmlIO.c2
-rw-r--r--xmllint.c5
-rw-r--r--xmlmemory.c2
-rw-r--r--xmlmodule.c2
-rw-r--r--xmlreader.c2
-rw-r--r--xmlregexp.c2
-rw-r--r--xmlsave.c5
-rw-r--r--xmlschemas.c7615
-rw-r--r--xmlschemastypes.c845
-rw-r--r--xmlstring.c3
-rw-r--r--xmlunicode.c2
-rw-r--r--xmlwriter.c2
-rw-r--r--xpath.c2
-rw-r--r--xpointer.c3
-rw-r--r--xstc/Makefile.am7
-rw-r--r--xstc/Makefile.in7
126 files changed, 18976 insertions, 7452 deletions
diff --git a/ChangeLog b/ChangeLog
index a64f9b1..7860d96 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,207 @@
+Sat Apr 2 12:48:41 CEST 2005 Daniel Veillard <daniel@veillard.com>
+
+ * doc/* configure.in NEWS: preparing release 2.6.19, updated docs and
+ rebuilding.
+
+Sat Apr 2 13:27:32 CEST 2005 Daniel Veillard <daniel@veillard.com>
+
+ * xstc/Makefile.am: integrated fixup-tests.py
+
+Fri Apr 1 19:14:18 CEST 2005 Daniel Veillard <daniel@veillard.com>
+
+ * xmlschemastypes.c: fixed a lack of comment and missing test for
+ a pointer in the API.
+
+Fri Apr 1 17:54:22 CEST 2005 Kasimier Buchcik <libxml2-cvs@cazic.net>
+
+ * xstc/fixup-tests.py: A tiny script to fixup some of the schema
+ files used for the tests.
+
+Fri Apr 1 17:33:50 CEST 2005 Kasimier Buchcik <libxml2-cvs@cazic.net>
+
+ * xmlschemas.c include/libxml/schemasInternals.h
+ result/schemas/src-element2-*.err result/schemas/element-*.err:
+ Committing again, since the CVS server aborted.
+
+Fri Apr 1 15:29:27 CEST 2005 Kasimier Buchcik <libxml2-cvs@cazic.net>
+
+ * xmlschemastypes.c: Corrected 'length' facet validation for
+ QNames and notations. Corrected xmlSchemaGetCanonValue: some
+ data types did not return a value if already in normalized
+ form.
+ * xmlschemas.c include/libxml/schemasInternals.h:
+ Eliminated creation of structs for <restriction>, <extension>,
+ <simpleContent>, <complexContent>, <list> and <union>: the
+ information is now set directly on the corresponding simple/
+ complex type. Added some more complex type constraints.
+ Added facet derivation constraints. Introduced "particle"
+ components, which seem to be really needed if applying
+ constraints. Corrected/change some of the parsing functions.
+ This is all a bit scary, since a significant change to the code.
+ * result/schemas/src-element2-*.err result/schemas/element-*.err:
+ Adapted regression test results.
+
+Fri Apr 1 16:07:59 CEST 2005 Daniel Veillard <daniel@veillard.com>
+
+ * doc/apibuild.py doc/elfgcchack.xsl: revamped the elfgcchack.h
+ format to cope with gcc4 change of aliasing allowed scopes, had
+ to add extra informations to doc/libxml2-api.xml to separate
+ the header from the c module source.
+ * *.c: updated all c library files to add a #define bottom_xxx
+ and reimport elfgcchack.h thereafter, and a bit of cleanups.
+ * doc//* testapi.c: regenerated when rebuilding the API
+
+Thu Mar 31 17:20:32 CEST 2005 Daniel Veillard <daniel@veillard.com>
+
+ * xmlsave.c: fixed bug reported by Petr Pajas, in the absence of
+ encoding UTF-8 should really be assumed. This may break if
+ the HTTP headers indicates for example ISO-8859-1 since this
+ then becomes a well formedness error.
+
+Thu Mar 31 16:57:18 CEST 2005 Daniel Veillard <daniel@veillard.com>
+
+ * SAX.c: fixed #172260 redundant assignment.
+ * parser.c include/libxml/parser.h: fixed xmlSAXParseDoc() and
+ xmlParseDoc() signatures #172257.
+
+Thu Mar 31 16:11:10 CEST 2005 Daniel Veillard <daniel@veillard.com>
+
+ * parser.c: fix potential crash if ctxt->sax->ignorableWhitespace
+ is NULL as reported by bug #172255
+
+Thu Mar 31 15:36:52 CEST 2005 Daniel Veillard <daniel@veillard.com>
+
+ * relaxng.c: fixed a problem in Relax-NG validation #159968
+ * test/relaxng/list.* result/relaxng/list_*: added the test
+ to the regression suite
+
+Thu Mar 31 13:06:02 CEST 2005 Daniel Veillard <daniel@veillard.com>
+
+ * python/libxml.c: fixed bug #168504
+
+Thu Mar 31 12:22:54 CEST 2005 Daniel Veillard <daniel@veillard.com>
+
+ * config.h.in configure.in nanoftp.c nanohttp.c xmllint.c
+ macos/src/config-mac.h: use XML_SOCKLEN_T instead of SOCKLEN_T
+ since apparently IBM can't avoid breaking common defines #166922
+
+Thu Mar 31 10:41:45 CEST 2005 Daniel Veillard <daniel@veillard.com>
+
+ * encoding.c: fix unitinialized variable in not frequently used
+ code bug #172182
+
+Thu Mar 31 00:45:18 CEST 2005 Daniel Veillard <daniel@veillard.com>
+
+ * python/generator.py python/libxml.py: another patch from Brent
+ Hendricks to add new handlers with the various validity contexts
+ * python/tests/Makefile.am python/tests/validDTD.py
+ python/tests/validRNG.py python/tests/validSchemas.py: also
+ added the regression tests he provided
+
+Wed Mar 30 09:39:27 CEST 2005 Daniel Veillard <daniel@veillard.com>
+
+ * python/generator.py python/libxml.c: applied patch from Brent
+ Hendricks to avoid leak in python bindings when using schemas
+ error handlers.
+
+Tue Mar 29 22:29:28 CEST 2005 Daniel Veillard <daniel@veillard.com>
+
+ * HTMLtree.c: fixing bug 168196, <a name=""> must be URI escaped too
+
+Sun Mar 27 13:24:24 CEST 2005 Daniel Veillard <daniel@veillard.com>
+
+ * tree.c: cleanup of the Prop related functions and xmlNewNodeEatName
+ by Rob Richards
+
+Thu Mar 24 19:01:22 PST 2005 William Brack <wbrack@mmm.com.hk>
+
+ * gentest.py, testapi.c: fixed problem with 'minimal library'
+ compilation (LIBXML_PATTERN_ENABLED not properly checked) reported
+ by Greg Morgan
+
+Thu Mar 24 12:01:30 CET 2005 Kasimier Buchcik <libxml2-cvs@cazic.net>
+
+ * xmlschemas.c: Fixed call to a facet error report: the type of
+ the error was wrong, resulting in a segfault (bug #171220, reported
+ by GUY Fabrice).
+
+Mon Mar 21 22:58:37 CET 2005 Kasimier Buchcik <libxml2-cvs@cazic.net>
+
+ * xmlschemas.c: Removed a stupid bug in xmlSchemaValidateAttributes,
+ failing to build a linked list correctly (bug #169898, reported
+ by bing song, hmm...).
+
+Mon Mar 21 21:09:07 CET 2005 Kasimier Buchcik <libxml2-cvs@cazic.net>
+
+ * xmlschemas.c: Fixed a segfault, which occured during bubbling
+ of IDC nodes (bug #170779 and #170778, reported by GUY Fabrice):
+ a variable was missed to be reset in a loop. Deactivated bubbling,
+ if not referenced by a keyref.
+
+Sun Mar 20 11:13:02 PST 2005 Aleksey Sanin <aleksey@aleksey.com>
+
+ * c14n.c include/libxml/xmlerror.h: special case "DAV:" namespace
+ in c14n relative namespaces check and add structured error messages
+ to c14n code
+
+Thu Mar 17 12:55:23 CET 2005 Kasimier Buchcik <libxml2-cvs@cazic.net>
+
+ * xmlschemas.c: Removed inheritance of "mixed" content type for
+ short-hand restrictions of "anyType" (reported by Guy Fabrice
+ to the mailing list). Added the namespace conversion (chameleon
+ includes) for the base type reference of <restriction> and
+ <extension>.
+ * test/schemas/bug152470_1.xsd: Adapted due to the above change
+ of "mixed" inheritance.
+
+Thu Mar 17 11:03:59 CET 2005 Daniel Veillard <daniel@veillard.com>
+
+ * xmlschemas.c: fixed a = -> == error pointed by GUY Fabrice
+
+Wed Mar 16 22:53:53 CET 2005 Daniel Veillard <daniel@veillard.com>
+
+ * xmlschemas.c: more debug messages from Matthew Burgess
+ * xmlschemastypes.c: xmlSchemaValidateLengthFacet API missing check.
+
+Wed Mar 16 17:37:04 CET 2005 Kasimier Buchcik <libxml2-cvs@cazic.net>
+
+ * xmlschemastypes.c: Aaaannnd putting back the previous changes done
+ by Daniel, which I overwrote with the previous commit.
+
+Wed Mar 16 17:20:25 CET 2005 Kasimier Buchcik <libxml2-cvs@cazic.net>
+
+ * xmlschemas.c xmlschemastypes.c include/libxml/xmlschemastypes.h:
+ Hopefully finished validation against facets to use the normalized
+ value of both, the facets and instance values. Added
+ xmlSchemaValidateLengthFacetWhtsp(), xmlSchemaValidateFacetWhtsp()
+ and xmlSchemaGetValType() to the schema API.
+
+Wed Mar 16 13:55:31 CET 2005 Daniel Veillard <daniel@veillard.com>
+
+ * libxml.spec.in: do not package .la files
+ * xmllint.c: applied patch from Gerry Murphy for xmllint return code
+ * xmlschemastypes.c: fixed a couple of missing tests of parameters
+ at public API entry points.
+
+Tue Mar 15 23:31:14 HKT 2005 William Brack <wbrack@mmm.com.hk>
+
+ * xmlschemastypes.c: a couple of more changes to various
+ decimal-handling routines. Fixes python some problems
+ turned up by the python tests.
+ * Makefile.am: change SchemasPythonTests message to warn
+ that there are 10 'expected' errors (rather than 6) since
+ we now reject a '+' sign on an unsigned.
+
+Tue Mar 15 15:43:27 CET 2005 Kasimier Buchcik <libxml2-cvs@cazic.net>
+
+ * xmlschemastypes.c xmlschemastypes.h: In preparation to use
+ normalized values of facets during validation: changed the
+ arguments of some string comparison functions; added a static
+ xmlSchemaValidateFacetInternal() with more arguments to be
+ more flexible. Prepared XML_SCHEMA_FACET_ENUMERATION validation
+ to use the comparison functions. Fixed some assignments in
+ xmlSchemaValAtomicType(): total digit count, lo, mi, hi.
+
Sun Mar 13 19:32:03 CET 2005 Daniel Veillard <daniel@veillard.com>
* NEWS configure.in testapi.c doc/*: preparing release of 2.6.18
diff --git a/DOCBparser.c b/DOCBparser.c
index ccb577f..3573743 100644
--- a/DOCBparser.c
+++ b/DOCBparser.c
@@ -300,4 +300,6 @@ docbParseFile(const char *filename ATTRIBUTE_UNUSED,
return (xmlParseFile(filename));
}
+#define bottom_DOCBparser
+#include "elfgcchack.h"
#endif /* LIBXML_DOCB_ENABLED */
diff --git a/HTMLparser.c b/HTMLparser.c
index 40a685c..3e1e75a 100644
--- a/HTMLparser.c
+++ b/HTMLparser.c
@@ -6173,4 +6173,6 @@ htmlCtxtReadIO(htmlParserCtxtPtr ctxt, xmlInputReadCallback ioread,
return (htmlDoRead(ctxt, URL, encoding, options, 1));
}
+#define bottom_HTMLparser
+#include "elfgcchack.h"
#endif /* LIBXML_HTML_ENABLED */
diff --git a/HTMLtree.c b/HTMLtree.c
index f3f2aae..de086db 100644
--- a/HTMLtree.c
+++ b/HTMLtree.c
@@ -663,7 +663,9 @@ htmlAttrDumpOutput(xmlOutputBufferPtr buf, xmlDocPtr doc, xmlAttrPtr cur,
(cur->parent->ns == NULL) &&
((!xmlStrcasecmp(cur->name, BAD_CAST "href")) ||
(!xmlStrcasecmp(cur->name, BAD_CAST "action")) ||
- (!xmlStrcasecmp(cur->name, BAD_CAST "src")))) {
+ (!xmlStrcasecmp(cur->name, BAD_CAST "src")) ||
+ ((!xmlStrcasecmp(cur->name, BAD_CAST "name")) &&
+ (!xmlStrcasecmp(cur->parent->name, BAD_CAST "a"))))) {
xmlChar *escaped;
xmlChar *tmp = value;
@@ -1186,4 +1188,6 @@ htmlSaveFileEnc(const char *filename, xmlDocPtr cur, const char *encoding) {
#endif /* LIBXML_OUTPUT_ENABLED */
+#define bottom_HTMLtree
+#include "elfgcchack.h"
#endif /* LIBXML_HTML_ENABLED */
diff --git a/Makefile.am b/Makefile.am
index c857b62..63ad904 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -1000,7 +1000,7 @@ SchemasPythonTests:
LD_LIBRARY_PATH="$(top_builddir)/.libs:$$LD_LIBRARY_PATH" ; \
export LD_LIBRARY_PATH; \
echo "## XML Schemas datatypes Python based test suite" ; \
- echo "## It is normal to see 6 errors reported" ; \
+ echo "## It is normal to see 10 errors reported" ; \
$(CHECKER) $(PYTHON) $(srcdir)/check-xsddata-test-suite.py ; \
fi)
@(if [ -x $(PYTHON) -a -d xstc ] ; then cd xstc ; $(MAKE) CHECKER="$(CHECKER)" MAKEFLAGS+=--silent pytests ; fi)
diff --git a/Makefile.in b/Makefile.in
index 3c199aa..2997f0e 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -2241,7 +2241,7 @@ SchemasPythonTests:
LD_LIBRARY_PATH="$(top_builddir)/.libs:$$LD_LIBRARY_PATH" ; \
export LD_LIBRARY_PATH; \
echo "## XML Schemas datatypes Python based test suite" ; \
- echo "## It is normal to see 6 errors reported" ; \
+ echo "## It is normal to see 10 errors reported" ; \
$(CHECKER) $(PYTHON) $(srcdir)/check-xsddata-test-suite.py ; \
fi)
@(if [ -x $(PYTHON) -a -d xstc ] ; then cd xstc ; $(MAKE) CHECKER="$(CHECKER)" MAKEFLAGS+=--silent pytests ; fi)
diff --git a/SAX.c b/SAX.c
index 05061b6..8e5d460 100644
--- a/SAX.c
+++ b/SAX.c
@@ -116,7 +116,6 @@ inithtmlDefaultSAXHandler(xmlSAXHandlerV1 *hdlr)
hdlr->cdataBlock = xmlSAX2CDataBlock;
hdlr->ignorableWhitespace = xmlSAX2IgnorableWhitespace;
hdlr->processingInstruction = xmlSAX2ProcessingInstruction;
- hdlr->processingInstruction = NULL;
hdlr->comment = xmlSAX2Comment;
hdlr->warning = xmlParserWarning;
hdlr->error = xmlParserError;
@@ -176,4 +175,6 @@ initdocbDefaultSAXHandler(xmlSAXHandlerV1 *hdlr)
#endif /* LIBXML_SAX1_ENABLED */
+#define bottom_SAX
+#include "elfgcchack.h"
#endif /* LIBXML_LEGACY_ENABLED */
diff --git a/SAX2.c b/SAX2.c
index cf8a615..6c866af 100644
--- a/SAX2.c
+++ b/SAX2.c
@@ -2755,3 +2755,5 @@ docbDefaultSAXHandlerInit(void)
}
#endif /* LIBXML_DOCB_ENABLED */
+#define bottom_SAX2
+#include "elfgcchack.h"
diff --git a/c14n.c b/c14n.c
index 687246e..0088d16 100644
--- a/c14n.c
+++ b/c14n.c
@@ -40,12 +40,12 @@ typedef enum {
} xmlC14NPosition;
typedef struct _xmlC14NVisibleNsStack {
- int nsCurEnd; /* number of nodes in the set */
- int nsPrevStart; /* the begginning of the stack for previous visible node */
- int nsPrevEnd; /* the end of the stack for previous visible node */
- int nsMax; /* size of the array as allocated */
- xmlNsPtr *nsTab; /* array of ns in no particular order */
- xmlNodePtr *nodeTab;/* array of nodes in no particular order */
+ int nsCurEnd; /* number of nodes in the set */
+ int nsPrevStart; /* the begginning of the stack for previous visible node */
+ int nsPrevEnd; /* the end of the stack for previous visible node */
+ int nsMax; /* size of the array as allocated */
+ xmlNsPtr *nsTab; /* array of ns in no particular order */
+ xmlNodePtr *nodeTab; /* array of nodes in no particular order */
} xmlC14NVisibleNsStack, *xmlC14NVisibleNsStackPtr;
typedef struct _xmlC14NCtx {
@@ -70,10 +70,10 @@ typedef struct _xmlC14NCtx {
} xmlC14NCtx, *xmlC14NCtxPtr;
static xmlC14NVisibleNsStackPtr xmlC14NVisibleNsStackCreate (void);
-static void xmlC14NVisibleNsStackDestroy (xmlC14NVisibleNsStackPtr cur);
-static void xmlC14NVisibleNsStackAdd (xmlC14NVisibleNsStackPtr cur,
- xmlNsPtr ns,
- xmlNodePtr node);
+static void xmlC14NVisibleNsStackDestroy (xmlC14NVisibleNsStackPtr cur);
+static void xmlC14NVisibleNsStackAdd (xmlC14NVisibleNsStackPtr cur,
+ xmlNsPtr ns,
+ xmlNodePtr node);
static void xmlC14NVisibleNsStackSave (xmlC14NVisibleNsStackPtr cur,
xmlC14NVisibleNsStackPtr state);
static void xmlC14NVisibleNsStackRestore (xmlC14NVisibleNsStackPtr cur,
@@ -127,7 +127,7 @@ static xmlChar *xmlC11NNormalizeString(const xmlChar * input,
* xmlC14NErrMemory:
* @extra: extra informations
*
- * Handle a redefinition of attribute error
+ * Handle a redefinition of memory error
*/
static void
xmlC14NErrMemory(const char *extra)
@@ -139,6 +139,83 @@ xmlC14NErrMemory(const char *extra)
}
/**
+ * xmlC14NErrParam:
+ * @extra: extra informations
+ *
+ * Handle a redefinition of param error
+ */
+static void
+xmlC14NErrParam(const char *extra)
+{
+ __xmlRaiseError(NULL, NULL, NULL, NULL, NULL, XML_FROM_C14N,
+ XML_ERR_INTERNAL_ERROR, XML_ERR_ERROR, NULL, 0, extra,
+ NULL, NULL, 0, 0,
+ "Invalid parameter : %s\n", extra);
+}
+
+/**
+ * xmlC14NErrInternal:
+ * @extra: extra informations
+ *
+ * Handle a redefinition of internal error
+ */
+static void
+xmlC14NErrInternal(const char *extra)
+{
+ __xmlRaiseError(NULL, NULL, NULL, NULL, NULL, XML_FROM_C14N,
+ XML_ERR_INTERNAL_ERROR, XML_ERR_ERROR, NULL, 0, extra,
+ NULL, NULL, 0, 0,
+ "Internal error : %s\n", extra);
+}
+
+/**
+ * xmlC14NErrInvalidNode:
+ * @extra: extra informations
+ *
+ * Handle a redefinition of invalid node error
+ */
+static void
+xmlC14NErrInvalidNode(const char *node_type, const char *extra)
+{
+ __xmlRaiseError(NULL, NULL, NULL, NULL, NULL, XML_FROM_C14N,
+ XML_C14N_INVALID_NODE, XML_ERR_ERROR, NULL, 0, extra,
+ NULL, NULL, 0, 0,
+ "Node %s is invalid here : %s\n", node_type, extra);
+}
+
+/**
+ * xmlC14NErrUnknownNode:
+ * @extra: extra informations
+ *
+ * Handle a redefinition of unknown node error
+ */
+static void
+xmlC14NErrUnknownNode(int node_type, const char *extra)
+{
+ __xmlRaiseError(NULL, NULL, NULL, NULL, NULL, XML_FROM_C14N,
+ XML_C14N_UNKNOW_NODE, XML_ERR_ERROR, NULL, 0, extra,
+ NULL, NULL, 0, 0,
+ "Unknown node type %d found : %s\n", node_type, extra);
+}
+
+/**
+ * xmlC14NErrRelativeNamespace:
+ * @extra: extra informations
+ *
+ * Handle a redefinition of relative namespace error
+ */
+static void
+xmlC14NErrRelativeNamespace(const char *ns_uri)
+{
+ __xmlRaiseError(NULL, NULL, NULL, NULL, NULL, XML_FROM_C14N,
+ XML_C14N_RELATIVE_NAMESPACE, XML_ERR_ERROR, NULL, 0, NULL,
+ NULL, NULL, 0, 0,
+ "Relative namespace UR is invalid here : %s\n", ns_uri);
+}
+
+
+
+/**
* xmlC14NErr:
* @ctxt: a C14N evaluation context
* @node: the context node
@@ -200,7 +277,7 @@ xmlC14NVisibleNsStackCreate(void) {
ret = (xmlC14NVisibleNsStackPtr) xmlMalloc(sizeof(xmlC14NVisibleNsStack));
if (ret == NULL) {
- xmlC14NErrMemory("creating stack");
+ xmlC14NErrMemory("creating namespaces stack");
return(NULL);
}
memset(ret, 0 , (size_t) sizeof(xmlC14NVisibleNsStack));
@@ -210,11 +287,8 @@ xmlC14NVisibleNsStackCreate(void) {
static void
xmlC14NVisibleNsStackDestroy(xmlC14NVisibleNsStackPtr cur) {
if(cur == NULL) {
-#ifdef DEBUG_C14N
- xmlGenericError(xmlGenericErrorContext,
- "xmlC14NVisibleNsStackDestroy: cur is null.\n");
-#endif
- return;
+ xmlC14NErrParam("destroying namespaces stack");
+ return;
}
if(cur->nsTab != NULL) {
memset(cur->nsTab, 0, cur->nsMax * sizeof(xmlNsPtr));
@@ -234,10 +308,7 @@ xmlC14NVisibleNsStackAdd(xmlC14NVisibleNsStackPtr cur, xmlNsPtr ns, xmlNodePtr n
if((cur == NULL) ||
((cur->nsTab == NULL) && (cur->nodeTab != NULL)) ||
((cur->nsTab != NULL) && (cur->nodeTab == NULL))) {
-#ifdef DEBUG_C14N
- xmlGenericError(xmlGenericErrorContext,
- "xmlC14NVisibleNsStackAdd: cur is null.\n");
-#endif
+ xmlC14NErrParam("adding namespace to stack");
return;
}
@@ -281,10 +352,7 @@ xmlC14NVisibleNsStackAdd(xmlC14NVisibleNsStackPtr cur, xmlNsPtr ns, xmlNodePtr n
static void
xmlC14NVisibleNsStackSave(xmlC14NVisibleNsStackPtr cur, xmlC14NVisibleNsStackPtr state) {
if((cur == NULL) || (state == NULL)) {
-#ifdef DEBUG_C14N
- xmlGenericError(xmlGenericErrorContext,
- "xmlC14NVisibleNsStackSave: cur or state is null.\n");
-#endif
+ xmlC14NErrParam("saving namespaces stack");
return;
}
@@ -296,10 +364,7 @@ xmlC14NVisibleNsStackSave(xmlC14NVisibleNsStackPtr cur, xmlC14NVisibleNsStackPtr
static void
xmlC14NVisibleNsStackRestore(xmlC14NVisibleNsStackPtr cur, xmlC14NVisibleNsStackPtr state) {
if((cur == NULL) || (state == NULL)) {
-#ifdef DEBUG_C14N
- xmlGenericError(xmlGenericErrorContext,
- "xmlC14NVisibleNsStackRestore: cur or state is null.\n");
-#endif
+ xmlC14NErrParam("restoring namespaces stack");
return;
}
cur->nsCurEnd = state->nsCurEnd;
@@ -310,10 +375,7 @@ xmlC14NVisibleNsStackRestore(xmlC14NVisibleNsStackPtr cur, xmlC14NVisibleNsStack
static void
xmlC14NVisibleNsStackShift(xmlC14NVisibleNsStackPtr cur) {
if(cur == NULL) {
-#ifdef DEBUG_C14N
- xmlGenericError(xmlGenericErrorContext,
- "xmlC14NVisibleNsStackRestore: cur is null.\n");
-#endif
+ xmlC14NErrParam("shifting namespaces stack");
return;
}
cur->nsPrevStart = cur->nsPrevEnd;
@@ -349,10 +411,7 @@ xmlC14NVisibleNsStackFind(xmlC14NVisibleNsStackPtr cur, xmlNsPtr ns)
int has_empty_ns;
if(cur == NULL) {
-#ifdef DEBUG_C14N
- xmlGenericError(xmlGenericErrorContext,
- "xmlC14NVisibleNsStackFind: cur is null.\n");
-#endif
+ xmlC14NErrParam("searching namespaces stack (c14n)");
return (0);
}
@@ -385,10 +444,7 @@ xmlExcC14NVisibleNsStackFind(xmlC14NVisibleNsStackPtr cur, xmlNsPtr ns, xmlC14NC
int has_empty_ns;
if(cur == NULL) {
-#ifdef DEBUG_C14N
- xmlGenericError(xmlGenericErrorContext,
- "xmlExcC14NVisibleNsStackFind: cur is null.\n");
-#endif
+ xmlC14NErrParam("searching namespaces stack (exc c14n)");
return (0);
}
@@ -479,10 +535,7 @@ xmlC14NPrintNamespaces(const xmlNsPtr ns, xmlC14NCtxPtr ctx)
{
if ((ns == NULL) || (ctx == NULL)) {
-#ifdef DEBUG_C14N
- xmlGenericError(xmlGenericErrorContext,
- "xmlC14NPrintNamespace: namespace or context pointer is null\n");
-#endif
+ xmlC14NErrParam("writing namespaces");
return 0;
}
@@ -549,10 +602,7 @@ xmlC14NProcessNamespacesAxis(xmlC14NCtxPtr ctx, xmlNodePtr cur, int visible)
int has_empty_ns = 0;
if ((ctx == NULL) || (cur == NULL) || (cur->type != XML_ELEMENT_NODE)) {
-#ifdef DEBUG_C14N
- xmlGenericError(xmlGenericErrorContext,
- "xmlC14NProcessNamespacesAxis: Null context or node pointer or type != XML_ELEMENT_NODE.\n");
-#endif
+ xmlC14NErrParam("processing namespaces axis (c14n)");
return (-1);
}
@@ -561,10 +611,7 @@ xmlC14NProcessNamespacesAxis(xmlC14NCtxPtr ctx, xmlNodePtr cur, int visible)
*/
list = xmlListCreate(NULL, (xmlListDataCompare) xmlC14NNsCompare);
if (list == NULL) {
-#ifdef DEBUG_C14N
- xmlGenericError(xmlGenericErrorContext,
- "xmlC14NProcessNamespacesAxis: list creation failed\n");
-#endif
+ xmlC14NErrInternal("creating namespaces list (c14n)");
return (-1);
}
@@ -662,18 +709,12 @@ xmlExcC14NProcessNamespacesAxis(xmlC14NCtxPtr ctx, xmlNodePtr cur, int visible)
int has_empty_ns_in_inclusive_list = 0;
if ((ctx == NULL) || (cur == NULL) || (cur->type != XML_ELEMENT_NODE)) {
-#ifdef DEBUG_C14N
- xmlGenericError(xmlGenericErrorContext,
- "xmlExcC14NProcessNamespacesAxis: Null context or node pointer or type != XML_ELEMENT_NODE.\n");
-#endif
+ xmlC14NErrParam("processing namespaces axis (exc c14n)");
return (-1);
}
if(!ctx->exclusive) {
-#ifdef DEBUG_C14N
- xmlGenericError(xmlGenericErrorContext,
- "xmlExcC14NProcessNamespacesAxis: called for non-exclusive canonization or rendered stack is NULL.\n");
-#endif
+ xmlC14NErrParam("processing namespaces axis (exc c14n)");
return (-1);
}
@@ -683,10 +724,7 @@ xmlExcC14NProcessNamespacesAxis(xmlC14NCtxPtr ctx, xmlNodePtr cur, int visible)
*/
list = xmlListCreate(NULL, (xmlListDataCompare) xmlC14NNsCompare);
if (list == NULL) {
-#ifdef DEBUG_C14N
- xmlGenericError(xmlGenericErrorContext,
- "xmlExcC14NProcessNamespacesAxis: list creation failed\n");
-#endif
+ xmlC14NErrInternal("creating namespaces list (exc c14n)");
return (-1);
}
@@ -874,10 +912,7 @@ xmlC14NPrintAttrs(const xmlAttrPtr attr, xmlC14NCtxPtr ctx)
xmlChar *buffer;
if ((attr == NULL) || (ctx == NULL)) {
-#ifdef DEBUG_C14N
- xmlGenericError(xmlGenericErrorContext,
- "xmlC14NPrintAttrs: attr == NULL or ctx == NULL\n");
-#endif
+ xmlC14NErrParam("writing attributes");
return (0);
}
@@ -899,10 +934,7 @@ xmlC14NPrintAttrs(const xmlAttrPtr attr, xmlC14NCtxPtr ctx)
xmlOutputBufferWriteString(ctx->buf, (const char *) buffer);
xmlFree(buffer);
} else {
-#ifdef DEBUG_C14N
- xmlGenericError(xmlGenericErrorContext,
- "xmlC14NPrintAttrs: xmlC11NNormalizeAttr failed\n");
-#endif
+ xmlC14NErrInternal("normalizing attributes axis");
return (0);
}
}
@@ -948,10 +980,7 @@ xmlC14NProcessAttrsAxis(xmlC14NCtxPtr ctx, xmlNodePtr cur)
xmlListPtr list;
if ((ctx == NULL) || (cur == NULL) || (cur->type != XML_ELEMENT_NODE)) {
-#ifdef DEBUG_C14N
- xmlGenericError(xmlGenericErrorContext,
- "xmlC14NProcessAttrsAxis: Null context or node pointer or type != XML_ELEMENT_NODE.\n");
-#endif
+ xmlC14NErrParam("processing attributes axis");
return (-1);
}
@@ -960,10 +989,7 @@ xmlC14NProcessAttrsAxis(xmlC14NCtxPtr ctx, xmlNodePtr cur)
*/
list = xmlListCreate(NULL, (xmlListDataCompare) xmlC14NAttrsCompare);
if (list == NULL) {
-#ifdef DEBUG_C14N
- xmlGenericError(xmlGenericErrorContext,
- "xmlC14NProcessAttrsAxis: list creation failed\n");
-#endif
+ xmlC14NErrInternal("creating attributes list");
return (-1);
}
@@ -1032,10 +1058,7 @@ xmlC14NCheckForRelativeNamespaces(xmlC14NCtxPtr ctx, xmlNodePtr cur)
xmlNsPtr ns;
if ((ctx == NULL) || (cur == NULL) || (cur->type != XML_ELEMENT_NODE)) {
-#ifdef DEBUG_C14N
- xmlGenericError(xmlGenericErrorContext,
- "xmlC14NCheckForRelativeNamespaces: Null context or node pointer or type != XML_ELEMENT_NODE.\n");
-#endif
+ xmlC14NErrParam("checking for relative namespaces");
return (-1);
}
@@ -1046,20 +1069,18 @@ xmlC14NCheckForRelativeNamespaces(xmlC14NCtxPtr ctx, xmlNodePtr cur)
uri = xmlParseURI((const char *) ns->href);
if (uri == NULL) {
-#ifdef DEBUG_C14N
- xmlGenericError(xmlGenericErrorContext,
- "xmlC14NCheckForRelativeNamespaces: unable to parse uri=\"%s\".\n",
- ns->href);
-#endif
+ xmlC14NErrInternal("parsing namespace uri");
return (-1);
}
if (xmlStrlen((const xmlChar *) uri->scheme) == 0) {
+ xmlC14NErrRelativeNamespace(uri->scheme);
xmlFreeURI(uri);
return (-1);
}
- if ((!xmlStrEqual
- ((const xmlChar *) uri->scheme, BAD_CAST "urn"))
+ if ((xmlStrcasecmp((const xmlChar *) uri->scheme, BAD_CAST "urn") != 0)
+ && (xmlStrcasecmp((const xmlChar *) uri->scheme, BAD_CAST "dav") !=0)
&& (xmlStrlen((const xmlChar *) uri->server) == 0)) {
+ xmlC14NErrRelativeNamespace(uri->scheme);
xmlFreeURI(uri);
return (-1);
}
@@ -1099,10 +1120,7 @@ xmlC14NProcessElementNode(xmlC14NCtxPtr ctx, xmlNodePtr cur, int visible)
int parent_is_doc = 0;
if ((ctx == NULL) || (cur == NULL) || (cur->type != XML_ELEMENT_NODE)) {
-#ifdef DEBUG_C14N
- xmlGenericError(xmlGenericErrorContext,
- "xmlC14NProcessElementNode: Null context or node pointer or type != XML_ELEMENT_NODE.\n");
-#endif
+ xmlC14NErrParam("processing element node");
return (-1);
}
@@ -1112,10 +1130,7 @@ xmlC14NProcessElementNode(xmlC14NCtxPtr ctx, xmlNodePtr cur, int visible)
* failure on documents containing relative namespace URIs.
*/
if (xmlC14NCheckForRelativeNamespaces(ctx, cur) < 0) {
-#ifdef DEBUG_C14N
- xmlGenericError(xmlGenericErrorContext,
- "xmlC14NProcessElementNode: xmlC14NCheckForRelativeNamespaces failed.\n");
-#endif
+ xmlC14NErrInternal("checking for relative namespaces");
return (-1);
}
@@ -1148,10 +1163,7 @@ xmlC14NProcessElementNode(xmlC14NCtxPtr ctx, xmlNodePtr cur, int visible)
ret = xmlExcC14NProcessNamespacesAxis(ctx, cur, visible);
}
if (ret < 0) {
-#ifdef DEBUG_C14N
- xmlGenericError(xmlGenericErrorContext,
- "xmlC14NProcessElementNode: xmlC14NProcessNamespacesAxis failed.\n");
-#endif
+ xmlC14NErrInternal("processing namespaces axis");
return (-1);
}
/* todo: shouldn't this go to "visible only"? */
@@ -1162,10 +1174,7 @@ xmlC14NProcessElementNode(xmlC14NCtxPtr ctx, xmlNodePtr cur, int visible)
if(visible) {
ret = xmlC14NProcessAttrsAxis(ctx, cur);
if (ret < 0) {
-#ifdef DEBUG_C14N
- xmlGenericError(xmlGenericErrorContext,
- "xmlC14NProcessElementNode: xmlC14NProcessAttrsAxis failed.\n");
-#endif
+ xmlC14NErrInternal("processing attributes axis");
return (-1);
}
}
@@ -1176,10 +1185,7 @@ xmlC14NProcessElementNode(xmlC14NCtxPtr ctx, xmlNodePtr cur, int visible)
if (cur->children != NULL) {
ret = xmlC14NProcessNodeList(ctx, cur->children);
if (ret < 0) {
-#ifdef DEBUG_C14N
- xmlGenericError(xmlGenericErrorContext,
- "xmlC14NProcessElementNode: xmlC14NProcessNodeList failed.\n");
-#endif
+ xmlC14NErrInternal("processing childrens list");
return (-1);
}
}
@@ -1222,10 +1228,7 @@ xmlC14NProcessNode(xmlC14NCtxPtr ctx, xmlNodePtr cur)
int visible;
if ((ctx == NULL) || (cur == NULL)) {
-#ifdef DEBUG_C14N
- xmlGenericError(xmlGenericErrorContext,
- "xmlC14NProcessNode: Null context or node pointer.\n");
-#endif
+ xmlC14NErrParam("processing node");
return (-1);
}
@@ -1254,10 +1257,7 @@ xmlC14NProcessNode(xmlC14NCtxPtr ctx, xmlNodePtr cur)
(const char *) buffer);
xmlFree(buffer);
} else {
-#ifdef DEBUG_C14N
- xmlGenericError(xmlGenericErrorContext,
- "xmlC14NProcessNode: xmlC11NNormalizeText() failed\n");
-#endif
+ xmlC14NErrInternal("normalizing text node");
return (-1);
}
}
@@ -1296,10 +1296,7 @@ xmlC14NProcessNode(xmlC14NCtxPtr ctx, xmlNodePtr cur)
(const char *) buffer);
xmlFree(buffer);
} else {
-#ifdef DEBUG_C14N
- xmlGenericError(xmlGenericErrorContext,
- "xmlC14NProcessNode: xmlC11NNormalizePI() failed\n");
-#endif
+ xmlC14NErrInternal("normalizing pi node");
return (-1);
}
}
@@ -1344,10 +1341,7 @@ xmlC14NProcessNode(xmlC14NCtxPtr ctx, xmlNodePtr cur)
(const char *) buffer);
xmlFree(buffer);
} else {
-#ifdef DEBUG_C14N
- xmlGenericError(xmlGenericErrorContext,
- "xmlC14NProcessNode: xmlC11NNormalizeComment() failed\n");
-#endif
+ xmlC14NErrInternal("normalizing comment node");
return (-1);
}
}
@@ -1375,20 +1369,16 @@ xmlC14NProcessNode(xmlC14NCtxPtr ctx, xmlNodePtr cur)
break;
case XML_ATTRIBUTE_NODE:
- xmlC14NErr(ctx, cur, XML_C14N_INVALID_NODE,
- "xmlC14NProcessNode: XML_ATTRIBUTE_NODE is illegal here\n");
+ xmlC14NErrInvalidNode("XML_ATTRIBUTE_NODE", "processing node");
return (-1);
case XML_NAMESPACE_DECL:
- xmlC14NErr(ctx, cur, XML_C14N_INVALID_NODE,
- "xmlC14NProcessNode: XML_NAMESPACE_DECL is illegal here\n");
+ xmlC14NErrInvalidNode("XML_NAMESPACE_DECL", "processing node");
return (-1);
case XML_ENTITY_REF_NODE:
- xmlC14NErr(ctx, cur, XML_C14N_INVALID_NODE,
- "xmlC14NProcessNode: XML_ENTITY_REF_NODE is illegal here\n");
+ xmlC14NErrInvalidNode("XML_ENTITY_REF_NODE", "processing node");
return (-1);
case XML_ENTITY_NODE:
- xmlC14NErr(ctx, cur, XML_C14N_INVALID_NODE,
- "xmlC14NProcessNode: XML_ENTITY_NODE is illegal here\n");
+ xmlC14NErrInvalidNode("XML_ENTITY_NODE", "processing node");
return (-1);
case XML_DOCUMENT_TYPE_NODE:
@@ -1406,11 +1396,7 @@ xmlC14NProcessNode(xmlC14NCtxPtr ctx, xmlNodePtr cur)
*/
break;
default:
-#ifdef DEBUG_C14N
- xmlGenericError(xmlGenericErrorContext,
- "xmlC14NProcessNode: unknown node type = %d\n",
- cur->type);
-#endif
+ xmlC14NErrUnknownNode(cur->type, "processing node");
return (-1);
}
@@ -1432,10 +1418,7 @@ xmlC14NProcessNodeList(xmlC14NCtxPtr ctx, xmlNodePtr cur)
int ret;
if (ctx == NULL) {
-#ifdef DEBUG_C14N
- xmlGenericError(xmlGenericErrorContext,
- "xmlC14NProcessNodeList: Null context pointer.\n");
-#endif
+ xmlC14NErrParam("processing node list");
return (-1);
}
@@ -1457,10 +1440,7 @@ static void
xmlC14NFreeCtx(xmlC14NCtxPtr ctx)
{
if (ctx == NULL) {
-#ifdef DEBUG_C14N
- xmlGenericError(xmlGenericErrorContext,
- "xmlC14NFreeCtx: ctx == NULL\n");
-#endif
+ xmlC14NErrParam("freeing context");
return;
}
@@ -1499,10 +1479,7 @@ xmlC14NNewCtx(xmlDocPtr doc,
xmlC14NCtxPtr ctx = NULL;
if ((doc == NULL) || (buf == NULL)) {
-#ifdef DEBUG_C14N
- xmlGenericError(xmlGenericErrorContext,
- "xmlC14NNewCtx: pointer to document or output buffer is NULL\n");
-#endif
+ xmlC14NErrParam("creating new context");
return (NULL);
}
@@ -1597,10 +1574,7 @@ xmlC14NExecute(xmlDocPtr doc, xmlC14NIsVisibleCallback is_visible_callback,
int ret;
if ((buf == NULL) || (doc == NULL)) {
-#ifdef DEBUG_C14N
- xmlGenericError(xmlGenericErrorContext,
- "xmlC14NExecute: null return buffer or doc pointer\n");
-#endif
+ xmlC14NErrParam("executing c14n");
return (-1);
}
@@ -1635,10 +1609,7 @@ xmlC14NExecute(xmlDocPtr doc, xmlC14NIsVisibleCallback is_visible_callback,
if (doc->children != NULL) {
ret = xmlC14NProcessNodeList(ctx, doc->children);
if (ret < 0) {
-#ifdef DEBUG_C14N
- xmlGenericError(xmlGenericErrorContext,
- "xmlC14NExecute: process childrens' list failed.\n");
-#endif
+ xmlC14NErrInternal("processing docs children list");
xmlC14NFreeCtx(ctx);
return (-1);
}
@@ -1649,10 +1620,7 @@ xmlC14NExecute(xmlDocPtr doc, xmlC14NIsVisibleCallback is_visible_callback,
*/
ret = xmlOutputBufferFlush(buf);
if (ret < 0) {
-#ifdef DEBUG_C14N
- xmlGenericError(xmlGenericErrorContext,
- "xmlC14NExecute: buffer flush failed.\n");
-#endif
+ xmlC14NErrInternal("flushing output buffer");
xmlC14NFreeCtx(ctx);
return (-1);
}
@@ -1731,10 +1699,7 @@ xmlC14NDocDumpMemory(xmlDocPtr doc, xmlNodeSetPtr nodes,
xmlOutputBufferPtr buf;
if (doc_txt_ptr == NULL) {
-#ifdef DEBUG_C14N
- xmlGenericError(xmlGenericErrorContext,
- "xmlC14NDocDumpMemory: null return buffer pointer\n");
-#endif
+ xmlC14NErrParam("dumping doc to memory");
return (-1);
}
@@ -1745,10 +1710,7 @@ xmlC14NDocDumpMemory(xmlDocPtr doc, xmlNodeSetPtr nodes,
*/
buf = xmlAllocOutputBuffer(NULL);
if (buf == NULL) {
-#ifdef DEBUG_C14N
- xmlGenericError(xmlGenericErrorContext,
- "xmlC14NDocDumpMemory: failed to allocate output buffer.\n");
-#endif
+ xmlC14NErrMemory("creating output buffer");
return (-1);
}
@@ -1758,10 +1720,7 @@ xmlC14NDocDumpMemory(xmlDocPtr doc, xmlNodeSetPtr nodes,
ret = xmlC14NDocSaveTo(doc, nodes, exclusive, inclusive_ns_prefixes,
with_comments, buf);
if (ret < 0) {
-#ifdef DEBUG_C14N
- xmlGenericError(xmlGenericErrorContext,
- "xmlC14NDocDumpMemory: xmlC14NDocSaveTo failed.\n");
-#endif
+ xmlC14NErrInternal("saving doc to output buffer");
(void) xmlOutputBufferClose(buf);
return (-1);
}
@@ -1773,10 +1732,7 @@ xmlC14NDocDumpMemory(xmlDocPtr doc, xmlNodeSetPtr nodes,
(void) xmlOutputBufferClose(buf);
if ((*doc_txt_ptr == NULL) && (ret > 0)) {
-#ifdef DEBUG_C14N
- xmlGenericError(xmlGenericErrorContext,
- "xmlC14NDocDumpMemory: failed to allocate memory for document text representation\n");
-#endif
+ xmlC14NErrMemory("coping canonicanized document");
return (-1);
}
return (ret);
@@ -1815,10 +1771,7 @@ xmlC14NDocSave(xmlDocPtr doc, xmlNodeSetPtr nodes,
int ret;
if (filename == NULL) {
-#ifdef DEBUG_C14N
- xmlGenericError(xmlGenericErrorContext,
- "xmlC14NDocSave: filename is NULL\n");
-#endif
+ xmlC14NErrParam("saving doc");
return (-1);
}
#ifdef HAVE_ZLIB_H
@@ -1831,11 +1784,7 @@ xmlC14NDocSave(xmlDocPtr doc, xmlNodeSetPtr nodes,
*/
buf = xmlOutputBufferCreateFilename(filename, NULL, compression);
if (buf == NULL) {
-#ifdef DEBUG_C14N
- xmlGenericError(xmlGenericErrorContext,
- "xmlC14NDocSave: unable to create buffer for file=\"%s\" with compressin=%d\n",
- filename, compression);
-#endif
+ xmlC14NErrInternal("creating temporary filename");
return (-1);
}
@@ -1845,10 +1794,7 @@ xmlC14NDocSave(xmlDocPtr doc, xmlNodeSetPtr nodes,
ret = xmlC14NDocSaveTo(doc, nodes, exclusive, inclusive_ns_prefixes,
with_comments, buf);
if (ret < 0) {
-#ifdef DEBUG_C14N
- xmlGenericError(xmlGenericErrorContext,
- "xmlC14NDocSave: xmlC14NDocSaveTo failed.\n");
-#endif
+ xmlC14NErrInternal("cannicanize document to buffer");
(void) xmlOutputBufferClose(buf);
return (-1);
}
@@ -1977,4 +1923,6 @@ xmlC11NNormalizeString(const xmlChar * input,
return (buffer);
}
#endif /* LIBXML_OUTPUT_ENABLED */
+#define bottom_c14n
+#include "elfgcchack.h"
#endif /* LIBXML_C14N_ENABLED */
diff --git a/catalog.c b/catalog.c
index 3168efd..202c288 100644
--- a/catalog.c
+++ b/catalog.c
@@ -3787,4 +3787,6 @@ xmlCatalogGetPublic(const xmlChar *pubID) {
return(NULL);
}
+#define bottom_catalog
+#include "elfgcchack.h"
#endif /* LIBXML_CATALOG_ENABLED */
diff --git a/chvalid.c b/chvalid.c
index 9a2c407..227aeba 100755
--- a/chvalid.c
+++ b/chvalid.c
@@ -329,3 +329,5 @@ xmlIsPubidChar(unsigned int ch) {
return(xmlIsPubidCharQ(ch));
}
+#define bottom_chvalid
+#include "elfgcchack.h"
diff --git a/config.h.in b/config.h.in
index 141486d..8484193 100644
--- a/config.h.in
+++ b/config.h.in
@@ -273,9 +273,6 @@
/* Define to 1 if the C compiler supports function prototypes. */
#undef PROTOTYPES
-/* Determine what socket length (socklen_t) data type is */
-#undef SOCKLEN_T
-
/* Define to 1 if you have the ANSI C header files. */
#undef STDC_HEADERS
@@ -285,6 +282,9 @@
/* Version number of package */
#undef VERSION
+/* Determine what socket length (socklen_t) data type is */
+#undef XML_SOCKLEN_T
+
/* Using the Win32 Socket implementation */
#undef _WINSOCKAPI_
diff --git a/configure b/configure
index 908fa0c..836f787 100755
--- a/configure
+++ b/configure
@@ -1617,7 +1617,7 @@ host_os=`echo $ac_cv_host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'`
LIBXML_MAJOR_VERSION=2
LIBXML_MINOR_VERSION=6
-LIBXML_MICRO_VERSION=18
+LIBXML_MICRO_VERSION=19
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
@@ -26695,7 +26695,7 @@ if { (eval echo configure:26693: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5;
echo "$as_me:$LINENO: result: socklen_t *" >&5
echo "${ECHO_T}socklen_t *" >&6
- SOCKLEN_T=socklen_t
+ XML_SOCKLEN_T=socklen_t
else
echo "configure: failed program was:" >&5
cat conftest.$ac_ext >&5
@@ -26718,7 +26718,7 @@ if { (eval echo configure:26716: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5;
echo "$as_me:$LINENO: result: size_t *" >&5
echo "${ECHO_T}size_t *" >&6
- SOCKLEN_T=size_t
+ XML_SOCKLEN_T=size_t
else
echo "configure: failed program was:" >&5
cat conftest.$ac_ext >&5
@@ -26741,7 +26741,7 @@ if { (eval echo configure:26739: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5;
echo "$as_me:$LINENO: result: int *" >&5
echo "${ECHO_T}int *" >&6
- SOCKLEN_T=int
+ XML_SOCKLEN_T=int
else
echo "configure: failed program was:" >&5
cat conftest.$ac_ext >&5
@@ -26749,7 +26749,7 @@ else
{ echo "$as_me:$LINENO: WARNING: could not determine" >&5
echo "$as_me: WARNING: could not determine" >&2;}
- SOCKLEN_T="int"
+ XML_SOCKLEN_T="int"
fi
rm -f conftest*
fi
@@ -26758,7 +26758,7 @@ fi
rm -f conftest*
cat >>confdefs.h <<_ACEOF
-#define SOCKLEN_T $SOCKLEN_T
+#define XML_SOCKLEN_T $XML_SOCKLEN_T
_ACEOF
diff --git a/configure.in b/configure.in
index d270ef9..d9dfb03 100644
--- a/configure.in
+++ b/configure.in
@@ -5,7 +5,7 @@ AC_CANONICAL_HOST
LIBXML_MAJOR_VERSION=2
LIBXML_MINOR_VERSION=6
-LIBXML_MICRO_VERSION=18
+LIBXML_MICRO_VERSION=19
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
@@ -419,24 +419,24 @@ AC_TRY_COMPILE2([
#include <sys/socket.h>],[
(void)getsockopt (1, 1, 1, NULL, (socklen_t *)NULL)],[
AC_MSG_RESULT(socklen_t *)
- SOCKLEN_T=socklen_t],[
+ XML_SOCKLEN_T=socklen_t],[
AC_TRY_COMPILE2([
#include <stddef.h>
#include <sys/types.h>
#include <sys/socket.h>],[
(void)getsockopt (1, 1, 1, NULL, (size_t *)NULL)],[
AC_MSG_RESULT(size_t *)
- SOCKLEN_T=size_t],[
+ XML_SOCKLEN_T=size_t],[
AC_TRY_COMPILE2([
#include <stddef.h>
#include <sys/types.h>
#include <sys/socket.h>],[
(void)getsockopt (1, 1, 1, NULL, (int *)NULL)],[
AC_MSG_RESULT(int *)
- SOCKLEN_T=int],[
+ XML_SOCKLEN_T=int],[
AC_MSG_WARN(could not determine)
- SOCKLEN_T="int"])])])
-AC_DEFINE_UNQUOTED(SOCKLEN_T, $SOCKLEN_T, [Determine what socket length (socklen_t) data type is])
+ XML_SOCKLEN_T="int"])])])
+AC_DEFINE_UNQUOTED(XML_SOCKLEN_T, $XML_SOCKLEN_T, [Determine what socket length (socklen_t) data type is])
dnl ***********************Checking for availability of IPv6*******************
diff --git a/debugXML.c b/debugXML.c
index a014f00..20190ad 100644
--- a/debugXML.c
+++ b/debugXML.c
@@ -3202,4 +3202,6 @@ xmlShell(xmlDocPtr doc, char *filename, xmlShellReadlineFunc input,
}
#endif /* LIBXML_XPATH_ENABLED */
+#define bottom_debugXML
+#include "elfgcchack.h"
#endif /* LIBXML_DEBUG_ENABLED */
diff --git a/dict.c b/dict.c
index c8e06d3..3b4054f 100644
--- a/dict.c
+++ b/dict.c
@@ -897,3 +897,5 @@ xmlDictSize(xmlDictPtr dict) {
}
+#define bottom_dict
+#include "elfgcchack.h"
diff --git a/doc/APIchunk0.html b/doc/APIchunk0.html
index 89cf637..df61e31 100644
--- a/doc/APIchunk0.html
+++ b/doc/APIchunk0.html
@@ -43,35 +43,6 @@ A:link, A:visited, A:active { text-decoration: underline }
</dd><dt>ALL</dt><dd><a href="html/libxml-xmlautomata.html#xmlAutomataNewAllTrans">xmlAutomataNewAllTrans</a><br />
</dd><dt>ANY</dt><dd><a href="html/libxml-valid.html#xmlIsMixedElement">xmlIsMixedElement</a><br />
<a href="html/libxml-parserInternals.html#xmlParseElementContentDecl">xmlParseElementContentDecl</a><br />
-</dd><dt>API</dt><dd><a href="html/libxml-xmlversion.html#LIBXML_TREE_ENABLED">LIBXML_TREE_ENABLED</a><br />
-<a href="html/libxml-tree.html#xmlBufferAdd">xmlBufferAdd</a><br />
-<a href="html/libxml-tree.html#xmlBufferAddHead">xmlBufferAddHead</a><br />
-<a href="html/libxml-tree.html#xmlBufferCCat">xmlBufferCCat</a><br />
-<a href="html/libxml-tree.html#xmlBufferCat">xmlBufferCat</a><br />
-<a href="html/libxml-xmlIO.html#xmlInputCloseCallback">xmlInputCloseCallback</a><br />
-<a href="html/libxml-xmlIO.html#xmlInputMatchCallback">xmlInputMatchCallback</a><br />
-<a href="html/libxml-xmlIO.html#xmlInputOpenCallback">xmlInputOpenCallback</a><br />
-<a href="html/libxml-xmlIO.html#xmlInputReadCallback">xmlInputReadCallback</a><br />
-<a href="html/libxml-parser.html#xmlLoadExternalEntity">xmlLoadExternalEntity</a><br />
-<a href="html/libxml-xmlIO.html#xmlOutputCloseCallback">xmlOutputCloseCallback</a><br />
-<a href="html/libxml-xmlIO.html#xmlOutputMatchCallback">xmlOutputMatchCallback</a><br />
-<a href="html/libxml-xmlIO.html#xmlOutputOpenCallback">xmlOutputOpenCallback</a><br />
-<a href="html/libxml-xmlIO.html#xmlOutputWriteCallback">xmlOutputWriteCallback</a><br />
-<a href="html/libxml-relaxng.html#xmlRelaxNGValidateDoc">xmlRelaxNGValidateDoc</a><br />
-<a href="html/libxml-xmlschemastypes.html#xmlSchemaGetCanonValue">xmlSchemaGetCanonValue</a><br />
-<a href="html/libxml-xmlschemas.html#xmlSchemaSetValidOptions">xmlSchemaSetValidOptions</a><br />
-<a href="html/libxml-xmlschemastypes.html#xmlSchemaValPredefTypeNode">xmlSchemaValPredefTypeNode</a><br />
-<a href="html/libxml-xmlschemastypes.html#xmlSchemaValPredefTypeNodeNoNorm">xmlSchemaValPredefTypeNodeNoNorm</a><br />
-<a href="html/libxml-xmlschemas.html#xmlSchemaValidateDoc">xmlSchemaValidateDoc</a><br />
-<a href="html/libxml-xmlschemastypes.html#xmlSchemaValidateFacet">xmlSchemaValidateFacet</a><br />
-<a href="html/libxml-xmlschemastypes.html#xmlSchemaValidateLengthFacet">xmlSchemaValidateLengthFacet</a><br />
-<a href="html/libxml-xmlschemas.html#xmlSchemaValidateOneElement">xmlSchemaValidateOneElement</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-tree.html#xmlValidateNCName">xmlValidateNCName</a><br />
-<a href="html/libxml-tree.html#xmlValidateNMToken">xmlValidateNMToken</a><br />
-<a href="html/libxml-tree.html#xmlValidateName">xmlValidateName</a><br />
-<a href="html/libxml-tree.html#xmlValidateQName">xmlValidateQName</a><br />
</dd><dt>APIs</dt><dd><a href="html/libxml-xmlversion.html#LIBXML_LEGACY_ENABLED">LIBXML_LEGACY_ENABLED</a><br />
</dd><dt>ARRAY</dt><dd><a href="html/libxml-xmlstring.html#xmlStrlen">xmlStrlen</a><br />
<a href="html/libxml-xmlstring.html#xmlUTF8Strsize">xmlUTF8Strsize</a><br />
@@ -93,6 +64,7 @@ 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 />
</dd><dt>Absolute</dt><dd><a href="html/libxml-uri.html#xmlBuildURI">xmlBuildURI</a><br />
+</dd><dt>Accessor</dt><dd><a href="html/libxml-xmlschemastypes.html#xmlSchemaGetValType">xmlSchemaGetValType</a><br />
</dd><dt>Activation</dt><dd><a href="html/libxml-xmlreader.html#xmlTextReaderRelaxNGSetSchema">xmlTextReaderRelaxNGSetSchema</a><br />
<a href="html/libxml-xmlreader.html#xmlTextReaderRelaxNGValidate">xmlTextReaderRelaxNGValidate</a><br />
</dd><dt>Add</dt><dd><a href="html/libxml-catalog.html#xmlACatalogAdd">xmlACatalogAdd</a><br />
diff --git a/doc/APIchunk1.html b/doc/APIchunk1.html
index eb14d20..40e070e 100644
--- a/doc/APIchunk1.html
+++ b/doc/APIchunk1.html
@@ -172,6 +172,7 @@ A:link, A:visited, A:active { text-decoration: underline }
<a href="html/libxml-parserInternals.html#xmlParseCharRef">xmlParseCharRef</a><br />
</dd><dt>Characters</dt><dd><a href="html/libxml-parserInternals.html#xmlParseCharRef">xmlParseCharRef</a><br />
</dd><dt>Checka</dt><dd><a href="html/libxml-xmlschemastypes.html#xmlSchemaValidateLengthFacet">xmlSchemaValidateLengthFacet</a><br />
+<a href="html/libxml-xmlschemastypes.html#xmlSchemaValidateLengthFacetWhtsp">xmlSchemaValidateLengthFacetWhtsp</a><br />
</dd><dt>Checks</dt><dd><a href="html/libxml-HTMLparser.html#htmlAttrAllowed">htmlAttrAllowed</a><br />
<a href="html/libxml-HTMLparser.html#htmlElementAllowedHere">htmlElementAllowedHere</a><br />
<a href="html/libxml-HTMLparser.html#htmlElementAllowedHereDesc">htmlElementAllowedHereDesc</a><br />
diff --git a/doc/APIchunk10.html b/doc/APIchunk10.html
index b1c4503..86b5d92 100644
--- a/doc/APIchunk10.html
+++ b/doc/APIchunk10.html
@@ -488,12 +488,14 @@ A:link, A:visited, A:active { text-decoration: underline }
<a href="html/libxml-xmlschemastypes.html#xmlSchemaValPredefTypeNode">xmlSchemaValPredefTypeNode</a><br />
<a href="html/libxml-xmlschemastypes.html#xmlSchemaValPredefTypeNodeNoNorm">xmlSchemaValPredefTypeNodeNoNorm</a><br />
<a href="html/libxml-xmlschemastypes.html#xmlSchemaValidateLengthFacet">xmlSchemaValidateLengthFacet</a><br />
+<a href="html/libxml-xmlschemastypes.html#xmlSchemaValidateLengthFacetWhtsp">xmlSchemaValidateLengthFacetWhtsp</a><br />
<a href="html/libxml-xmlschemastypes.html#xmlSchemaValidatePredefinedType">xmlSchemaValidatePredefinedType</a><br />
<a href="html/libxml-xmlreader.html#xmlTextReaderByteConsumed">xmlTextReaderByteConsumed</a><br />
</dd><dt>concat</dt><dd><a href="html/libxml-xpathInternals.html#xmlXPathConcatFunction">xmlXPathConcatFunction</a><br />
</dd><dt>concatenated</dt><dd><a href="html/libxml-xmlstring.html#xmlStrcat">xmlStrcat</a><br />
</dd><dt>concatenation</dt><dd><a href="html/libxml-xpathInternals.html#xmlXPathConcatFunction">xmlXPathConcatFunction</a><br />
</dd><dt>condition</dt><dd><a href="html/libxml-xmlschemastypes.html#xmlSchemaValidateFacet">xmlSchemaValidateFacet</a><br />
+<a href="html/libxml-xmlschemastypes.html#xmlSchemaValidateFacetWhtsp">xmlSchemaValidateFacetWhtsp</a><br />
</dd><dt>conditionalSect</dt><dd><a href="html/libxml-parserInternals.html#xmlParseExternalSubset">xmlParseExternalSubset</a><br />
</dd><dt>configured</dt><dd><a href="html/libxml-xmlmemory.html#DEBUG_MEMORY">DEBUG_MEMORY</a><br />
<a href="html/libxml-xmlversion.html#DEBUG_MEMORY_LOCATION">DEBUG_MEMORY_LOCATION</a><br />
diff --git a/doc/APIchunk13.html b/doc/APIchunk13.html
index 999fd9c..3ba2e02 100644
--- a/doc/APIchunk13.html
+++ b/doc/APIchunk13.html
@@ -46,7 +46,9 @@ A:link, A:visited, A:active { text-decoration: underline }
<a href="html/libxml-xmlschemastypes.html#xmlSchemaGetFacetValueAsULong">xmlSchemaGetFacetValueAsULong</a><br />
<a href="html/libxml-xmlschemastypes.html#xmlSchemaIsBuiltInTypeFacet">xmlSchemaIsBuiltInTypeFacet</a><br />
<a href="html/libxml-xmlschemastypes.html#xmlSchemaValidateFacet">xmlSchemaValidateFacet</a><br />
+<a href="html/libxml-xmlschemastypes.html#xmlSchemaValidateFacetWhtsp">xmlSchemaValidateFacetWhtsp</a><br />
<a href="html/libxml-xmlschemastypes.html#xmlSchemaValidateLengthFacet">xmlSchemaValidateLengthFacet</a><br />
+<a href="html/libxml-xmlschemastypes.html#xmlSchemaValidateLengthFacetWhtsp">xmlSchemaValidateLengthFacetWhtsp</a><br />
<a href="html/libxml-xmlschemastypes.html#xmlSchemaValidateListSimpleTypeFacet">xmlSchemaValidateListSimpleTypeFacet</a><br />
</dd><dt>facets</dt><dd><a href="html/libxml-schemasInternals.html#XML_SCHEMAS_TYPE_FACETSNEEDVALUE">XML_SCHEMAS_TYPE_FACETSNEEDVALUE</a><br />
<a href="html/libxml-xmlschemastypes.html#xmlSchemaCheckFacet">xmlSchemaCheckFacet</a><br />
diff --git a/doc/APIchunk14.html b/doc/APIchunk14.html
index ea81366..3e6eeed 100644
--- a/doc/APIchunk14.html
+++ b/doc/APIchunk14.html
@@ -251,6 +251,7 @@ A:link, A:visited, A:active { text-decoration: underline }
<a href="html/libxml-nanohttp.html#xmlNanoHTTPMimeType">xmlNanoHTTPMimeType</a><br />
</dd><dt>heading</dt><dd><a href="html/libxml-encoding.html#xmlCharEncodingOutputFunc">xmlCharEncodingOutputFunc</a><br />
</dd><dt>helper</dt><dd><a href="html/libxml-schemasInternals.html#XML_SCHEMAS_ELEM_CIRCULAR">XML_SCHEMAS_ELEM_CIRCULAR</a><br />
+<a href="html/libxml-schemasInternals.html#_xmlSchema">_xmlSchema</a><br />
</dd><dt>here</dt><dd><a href="html/libxml-xpath.html#_xmlXPathContext">_xmlXPathContext</a><br />
<a href="html/libxml-HTMLparser.html#htmlNodeStatus">htmlNodeStatus</a><br />
<a href="html/libxml-parserInternals.html#xmlParseAttValue">xmlParseAttValue</a><br />
diff --git a/doc/APIchunk15.html b/doc/APIchunk15.html
index a52bda6..5f7db2f 100644
--- a/doc/APIchunk15.html
+++ b/doc/APIchunk15.html
@@ -216,6 +216,8 @@ A:link, A:visited, A:active { text-decoration: underline }
<a href="html/libxml-pattern.html#xmlStreamPush">xmlStreamPush</a><br />
<a href="html/libxml-pattern.html#xmlStreamPushAttr">xmlStreamPushAttr</a><br />
</dd><dt>indicates</dt><dd><a href="html/libxml-schemasInternals.html#XML_SCHEMAS_TYPE_FACETSNEEDVALUE">XML_SCHEMAS_TYPE_FACETSNEEDVALUE</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMAS_TYPE_INTERNAL_INVALID">XML_SCHEMAS_TYPE_INTERNAL_INVALID</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMAS_TYPE_INTERNAL_RESOLVED">XML_SCHEMAS_TYPE_INTERNAL_RESOLVED</a><br />
<a href="html/libxml-tree.html#xmlHasNsProp">xmlHasNsProp</a><br />
<a href="html/libxml-nanoftp.html#xmlNanoFTPRead">xmlNanoFTPRead</a><br />
<a href="html/libxml-nanoftp.html#xmlNanoFTPScanProxy">xmlNanoFTPScanProxy</a><br />
@@ -476,6 +478,7 @@ A:link, A:visited, A:active { text-decoration: underline }
<a href="html/libxml-parser.html#xmlGetFeaturesList">xmlGetFeaturesList</a><br />
<a href="html/libxml-parser.html#xmlNewIOInputStream">xmlNewIOInputStream</a><br />
<a href="html/libxml-parser.html#xmlParserAddNodeInfo">xmlParserAddNodeInfo</a><br />
+<a href="html/libxml-xmlschemastypes.html#xmlSchemaValidateFacetWhtsp">xmlSchemaValidateFacetWhtsp</a><br />
<a href="html/libxml-xmlstring.html#xmlStrPrintf">xmlStrPrintf</a><br />
<a href="html/libxml-xmlstring.html#xmlStrVPrintf">xmlStrVPrintf</a><br />
<a href="html/libxml-tree.html#xmlTextMerge">xmlTextMerge</a><br />
@@ -484,7 +487,8 @@ A:link, A:visited, A:active { text-decoration: underline }
<a href="html/libxml-xpathInternals.html#xmlXPathWrapCString">xmlXPathWrapCString</a><br />
<a href="html/libxml-xpathInternals.html#xmlXPathWrapExternal">xmlXPathWrapExternal</a><br />
<a href="html/libxml-xpathInternals.html#xmlXPathWrapString">xmlXPathWrapString</a><br />
-</dd><dt>invalid</dt><dd><a href="html/libxml-tree.html#xmlReconciliateNs">xmlReconciliateNs</a><br />
+</dd><dt>invalid</dt><dd><a href="html/libxml-schemasInternals.html#XML_SCHEMAS_TYPE_INTERNAL_INVALID">XML_SCHEMAS_TYPE_INTERNAL_INVALID</a><br />
+<a href="html/libxml-tree.html#xmlReconciliateNs">xmlReconciliateNs</a><br />
<a href="html/libxml-valid.html#xmlValidateDtdFinal">xmlValidateDtdFinal</a><br />
</dd><dt>invited</dt><dd><a href="html/libxml-valid.html#xmlValidGetValidElements">xmlValidGetValidElements</a><br />
</dd><dt>invoking</dt><dd><a href="html/libxml-tree.html#xmlGetLineNo">xmlGetLineNo</a><br />
@@ -507,7 +511,8 @@ A:link, A:visited, A:active { text-decoration: underline }
<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 />
+</dd><dt>items</dt><dd><a href="html/libxml-schemasInternals.html#_xmlSchema">_xmlSchema</a><br />
+<a href="html/libxml-xpathInternals.html#valuePush">valuePush</a><br />
<a href="html/libxml-hash.html#xmlHashCopy">xmlHashCopy</a><br />
<a href="html/libxml-hash.html#xmlHashFree">xmlHashFree</a><br />
<a href="html/libxml-hash.html#xmlHashScan">xmlHashScan</a><br />
diff --git a/doc/APIchunk16.html b/doc/APIchunk16.html
index 4a485bd..a979b01 100644
--- a/doc/APIchunk16.html
+++ b/doc/APIchunk16.html
@@ -181,10 +181,13 @@ A:link, A:visited, A:active { text-decoration: underline }
<a href="html/libxml-xpathInternals.html#xmlXPathDebugDumpCompExpr">xmlXPathDebugDumpCompExpr</a><br />
<a href="html/libxml-xpathInternals.html#xmlXPathDebugDumpObject">xmlXPathDebugDumpObject</a><br />
</dd><dt>lexical</dt><dd><a href="html/libxml-parserInternals.html#xmlParseDefaultDecl">xmlParseDefaultDecl</a><br />
+<a href="html/libxml-xmlschemastypes.html#xmlSchemaGetCanonValue">xmlSchemaGetCanonValue</a><br />
<a href="html/libxml-xmlschemastypes.html#xmlSchemaValPredefTypeNode">xmlSchemaValPredefTypeNode</a><br />
<a href="html/libxml-xmlschemastypes.html#xmlSchemaValPredefTypeNodeNoNorm">xmlSchemaValPredefTypeNodeNoNorm</a><br />
<a href="html/libxml-xmlschemastypes.html#xmlSchemaValidateFacet">xmlSchemaValidateFacet</a><br />
+<a href="html/libxml-xmlschemastypes.html#xmlSchemaValidateFacetWhtsp">xmlSchemaValidateFacetWhtsp</a><br />
<a href="html/libxml-xmlschemastypes.html#xmlSchemaValidateLengthFacet">xmlSchemaValidateLengthFacet</a><br />
+<a href="html/libxml-xmlschemastypes.html#xmlSchemaValidateLengthFacetWhtsp">xmlSchemaValidateLengthFacetWhtsp</a><br />
<a href="html/libxml-xmlschemastypes.html#xmlSchemaValidateListSimpleTypeFacet">xmlSchemaValidateListSimpleTypeFacet</a><br />
<a href="html/libxml-xmlschemastypes.html#xmlSchemaValidatePredefinedType">xmlSchemaValidatePredefinedType</a><br />
<a href="html/libxml-tree.html#xmlValidateNCName">xmlValidateNCName</a><br />
diff --git a/doc/APIchunk17.html b/doc/APIchunk17.html
index 1d2a178..a66953a 100644
--- a/doc/APIchunk17.html
+++ b/doc/APIchunk17.html
@@ -133,6 +133,7 @@ A:link, A:visited, A:active { text-decoration: underline }
<a href="html/libxml-xmlstring.html#xmlStrncasecmp">xmlStrncasecmp</a><br />
<a href="html/libxml-xmlstring.html#xmlStrncmp">xmlStrncmp</a><br />
</dd><dt>maxLength</dt><dd><a href="html/libxml-xmlschemastypes.html#xmlSchemaValidateLengthFacet">xmlSchemaValidateLengthFacet</a><br />
+<a href="html/libxml-xmlschemastypes.html#xmlSchemaValidateLengthFacetWhtsp">xmlSchemaValidateLengthFacetWhtsp</a><br />
</dd><dt>maximal</dt><dd><a href="html/libxml-xmlautomata.html#xmlAutomataNewCounter">xmlAutomataNewCounter</a><br />
</dd><dt>maximum</dt><dd><a href="html/libxml-xmlautomata.html#xmlAutomataNewCountTrans">xmlAutomataNewCountTrans</a><br />
<a href="html/libxml-xmlautomata.html#xmlAutomataNewCountTrans2">xmlAutomataNewCountTrans2</a><br />
@@ -211,6 +212,7 @@ A:link, A:visited, A:active { text-decoration: underline }
</dd><dt>might</dt><dd><a href="html/libxml-tree.html#xmlNewTextChild">xmlNewTextChild</a><br />
</dd><dt>migrate</dt><dd><a href="html/libxml-entities.html#xmlEncodeEntities">xmlEncodeEntities</a><br />
</dd><dt>minLength</dt><dd><a href="html/libxml-xmlschemastypes.html#xmlSchemaValidateLengthFacet">xmlSchemaValidateLengthFacet</a><br />
+<a href="html/libxml-xmlschemastypes.html#xmlSchemaValidateLengthFacetWhtsp">xmlSchemaValidateLengthFacetWhtsp</a><br />
</dd><dt>minimal</dt><dd><a href="html/libxml-xmlautomata.html#xmlAutomataNewCounter">xmlAutomataNewCounter</a><br />
</dd><dt>minimum</dt><dd><a href="html/libxml-xmlautomata.html#xmlAutomataNewCountTrans">xmlAutomataNewCountTrans</a><br />
<a href="html/libxml-xmlautomata.html#xmlAutomataNewCountTrans2">xmlAutomataNewCountTrans2</a><br />
diff --git a/doc/APIchunk18.html b/doc/APIchunk18.html
index d8174c9..66fd8fa 100644
--- a/doc/APIchunk18.html
+++ b/doc/APIchunk18.html
@@ -128,6 +128,7 @@ A:link, A:visited, A:active { text-decoration: underline }
</dd><dt>needle</dt><dd><a href="html/libxml-xmlstring.html#xmlStrcasestr">xmlStrcasestr</a><br />
<a href="html/libxml-xmlstring.html#xmlStrstr">xmlStrstr</a><br />
</dd><dt>needs</dt><dd><a href="html/libxml-parserInternals.html#xmlEntityReferenceFunc">xmlEntityReferenceFunc</a><br />
+<a href="html/libxml-xmlschemastypes.html#xmlSchemaValidateFacetWhtsp">xmlSchemaValidateFacetWhtsp</a><br />
<a href="html/libxml-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 />
@@ -225,6 +226,7 @@ A:link, A:visited, A:active { text-decoration: underline }
</dd><dt>normalization</dt><dd><a href="html/libxml-uri.html#xmlNormalizeURIPath">xmlNormalizeURIPath</a><br />
<a href="html/libxml-parserInternals.html#xmlParseSDDecl">xmlParseSDDecl</a><br />
<a href="html/libxml-xmlschemastypes.html#xmlSchemaValPredefTypeNodeNoNorm">xmlSchemaValPredefTypeNodeNoNorm</a><br />
+<a href="html/libxml-xmlschemastypes.html#xmlSchemaValidateFacetWhtsp">xmlSchemaValidateFacetWhtsp</a><br />
<a href="html/libxml-valid.html#xmlValidCtxtNormalizeAttributeValue">xmlValidCtxtNormalizeAttributeValue</a><br />
<a href="html/libxml-valid.html#xmlValidNormalizeAttributeValue">xmlValidNormalizeAttributeValue</a><br />
</dd><dt>normalization:</dt><dd><a href="html/libxml-parserInternals.html#xmlCurrentChar">xmlCurrentChar</a><br />
@@ -234,6 +236,7 @@ A:link, A:visited, A:active { text-decoration: underline }
<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 />
+<a href="html/libxml-xmlschemastypes.html#xmlSchemaValidateFacetWhtsp">xmlSchemaValidateFacetWhtsp</a><br />
<a href="html/libxml-valid.html#xmlValidCtxtNormalizeAttributeValue">xmlValidCtxtNormalizeAttributeValue</a><br />
<a href="html/libxml-valid.html#xmlValidNormalizeAttributeValue">xmlValidNormalizeAttributeValue</a><br />
<a href="html/libxml-xpathInternals.html#xmlXPathNormalizeFunction">xmlXPathNormalizeFunction</a><br />
diff --git a/doc/APIchunk20.html b/doc/APIchunk20.html
index 40b8dcb..6d1c38e 100644
--- a/doc/APIchunk20.html
+++ b/doc/APIchunk20.html
@@ -130,6 +130,7 @@ A:link, A:visited, A:active { text-decoration: underline }
<a href="html/libxml-pattern.html#xmlPatternMaxDepth">xmlPatternMaxDepth</a><br />
<a href="html/libxml-pattern.html#xmlPatternStreamable">xmlPatternStreamable</a><br />
<a href="html/libxml-pattern.html#xmlPatterncompile">xmlPatterncompile</a><br />
+<a href="html/libxml-xmlschemastypes.html#xmlSchemaValidateFacetWhtsp">xmlSchemaValidateFacetWhtsp</a><br />
<a href="html/libxml-xmlreader.html#xmlTextReaderPreservePattern">xmlTextReaderPreservePattern</a><br />
</dd><dt>pcdata</dt><dd><a href="html/libxml-SAX.html#cdataBlock">cdataBlock</a><br />
<a href="html/libxml-parser.html#cdataBlockSAXFunc">cdataBlockSAXFunc</a><br />
@@ -189,35 +190,6 @@ A:link, A:visited, A:active { text-decoration: underline }
</dd><dt>positioned</dt><dd><a href="html/libxml-xmlreader.html#xmlTextReaderReadString">xmlTextReaderReadString</a><br />
</dd><dt>positionned</dt><dd><a href="html/libxml-xmlreader.html#xmlTextReaderReadAttributeValue">xmlTextReaderReadAttributeValue</a><br />
</dd><dt>positions</dt><dd><a href="html/libxml-xmlstring.html#xmlUTF8Strsub">xmlUTF8Strsub</a><br />
-</dd><dt>positive</dt><dd><a href="html/libxml-HTMLparser.html#UTF8ToHtml">UTF8ToHtml</a><br />
-<a href="html/libxml-encoding.html#UTF8Toisolat1">UTF8Toisolat1</a><br />
-<a href="html/libxml-DOCBparser.html#docbEncodeEntities">docbEncodeEntities</a><br />
-<a href="html/libxml-HTMLparser.html#htmlEncodeEntities">htmlEncodeEntities</a><br />
-<a href="html/libxml-encoding.html#isolat1ToUTF8">isolat1ToUTF8</a><br />
-<a href="html/libxml-tree.html#xmlBufferAdd">xmlBufferAdd</a><br />
-<a href="html/libxml-tree.html#xmlBufferAddHead">xmlBufferAddHead</a><br />
-<a href="html/libxml-tree.html#xmlBufferCCat">xmlBufferCCat</a><br />
-<a href="html/libxml-tree.html#xmlBufferCat">xmlBufferCat</a><br />
-<a href="html/libxml-encoding.html#xmlCharEncodingInputFunc">xmlCharEncodingInputFunc</a><br />
-<a href="html/libxml-encoding.html#xmlCharEncodingOutputFunc">xmlCharEncodingOutputFunc</a><br />
-<a href="html/libxml-relaxng.html#xmlRelaxNGValidateDoc">xmlRelaxNGValidateDoc</a><br />
-<a href="html/libxml-xmlschemastypes.html#xmlSchemaValPredefTypeNode">xmlSchemaValPredefTypeNode</a><br />
-<a href="html/libxml-xmlschemastypes.html#xmlSchemaValPredefTypeNodeNoNorm">xmlSchemaValPredefTypeNodeNoNorm</a><br />
-<a href="html/libxml-xmlschemas.html#xmlSchemaValidateDoc">xmlSchemaValidateDoc</a><br />
-<a href="html/libxml-xmlschemastypes.html#xmlSchemaValidateFacet">xmlSchemaValidateFacet</a><br />
-<a href="html/libxml-xmlschemastypes.html#xmlSchemaValidateLengthFacet">xmlSchemaValidateLengthFacet</a><br />
-<a href="html/libxml-xmlschemastypes.html#xmlSchemaValidateListSimpleTypeFacet">xmlSchemaValidateListSimpleTypeFacet</a><br />
-<a href="html/libxml-xmlschemas.html#xmlSchemaValidateOneElement">xmlSchemaValidateOneElement</a><br />
-<a href="html/libxml-xmlschemastypes.html#xmlSchemaValidatePredefinedType">xmlSchemaValidatePredefinedType</a><br />
-<a href="html/libxml-xmlschemas.html#xmlSchemaValidateStream">xmlSchemaValidateStream</a><br />
-<a href="html/libxml-xmlreader.html#xmlTextReaderPreservePattern">xmlTextReaderPreservePattern</a><br />
-<a href="html/libxml-tree.html#xmlValidateNCName">xmlValidateNCName</a><br />
-<a href="html/libxml-tree.html#xmlValidateNMToken">xmlValidateNMToken</a><br />
-<a href="html/libxml-tree.html#xmlValidateName">xmlValidateName</a><br />
-<a href="html/libxml-tree.html#xmlValidateQName">xmlValidateQName</a><br />
-<a href="html/libxml-xpathInternals.html#xmlXPathBooleanFunction">xmlXPathBooleanFunction</a><br />
-<a href="html/libxml-xpathInternals.html#xmlXPathFloorFunction">xmlXPathFloorFunction</a><br />
-<a href="html/libxml-xpathInternals.html#xmlXPathStringFunction">xmlXPathStringFunction</a><br />
</dd><dt>possible</dt><dd><a href="html/libxml-schemasInternals.html#_xmlSchemaType">_xmlSchemaType</a><br />
<a href="html/libxml-tree.html#xmlCopyNodeList">xmlCopyNodeList</a><br />
<a href="html/libxml-parserInternals.html#xmlCreateEntityParserCtxt">xmlCreateEntityParserCtxt</a><br />
@@ -271,7 +243,9 @@ A:link, A:visited, A:active { text-decoration: underline }
</dd><dt>precomputed</dt><dd><a href="html/libxml-xmlschemastypes.html#xmlSchemaCopyValue">xmlSchemaCopyValue</a><br />
<a href="html/libxml-xmlschemastypes.html#xmlSchemaGetCanonValue">xmlSchemaGetCanonValue</a><br />
<a href="html/libxml-xmlschemastypes.html#xmlSchemaValidateFacet">xmlSchemaValidateFacet</a><br />
+<a href="html/libxml-xmlschemastypes.html#xmlSchemaValidateFacetWhtsp">xmlSchemaValidateFacetWhtsp</a><br />
<a href="html/libxml-xmlschemastypes.html#xmlSchemaValidateLengthFacet">xmlSchemaValidateLengthFacet</a><br />
+<a href="html/libxml-xmlschemastypes.html#xmlSchemaValidateLengthFacetWhtsp">xmlSchemaValidateLengthFacetWhtsp</a><br />
</dd><dt>predefined</dt><dd><a href="html/libxml-tree.html#XML_XML_NAMESPACE">XML_XML_NAMESPACE</a><br />
<a href="html/libxml-entities.html#xmlCleanupPredefinedEntities">xmlCleanupPredefinedEntities</a><br />
<a href="html/libxml-entities.html#xmlEncodeEntitiesReentrant">xmlEncodeEntitiesReentrant</a><br />
diff --git a/doc/APIchunk21.html b/doc/APIchunk21.html
index 1c8a997..d74c946 100644
--- a/doc/APIchunk21.html
+++ b/doc/APIchunk21.html
@@ -404,7 +404,9 @@ 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#xmlSchemaValidateFacetWhtsp">xmlSchemaValidateFacetWhtsp</a><br />
<a href="html/libxml-xmlschemastypes.html#xmlSchemaValidateLengthFacet">xmlSchemaValidateLengthFacet</a><br />
+<a href="html/libxml-xmlschemastypes.html#xmlSchemaValidateLengthFacetWhtsp">xmlSchemaValidateLengthFacetWhtsp</a><br />
<a href="html/libxml-xmlschemastypes.html#xmlSchemaValidateListSimpleTypeFacet">xmlSchemaValidateListSimpleTypeFacet</a><br />
</dd><dt>representation</dt><dd><a href="html/libxml-HTMLparser.html#_htmlElemDesc">_htmlElemDesc</a><br />
<a href="html/libxml-xmlschemastypes.html#xmlSchemaGetCanonValue">xmlSchemaGetCanonValue</a><br />
diff --git a/doc/APIchunk22.html b/doc/APIchunk22.html
index 9ad2caf..c48c7e1 100644
--- a/doc/APIchunk22.html
+++ b/doc/APIchunk22.html
@@ -120,9 +120,11 @@ A:link, A:visited, A:active { text-decoration: underline }
</dd><dt>schemas</dt><dd><a href="html/libxml-relaxng.html#xmlRelaxNGNewDocParserCtxt">xmlRelaxNGNewDocParserCtxt</a><br />
<a href="html/libxml-relaxng.html#xmlRelaxNGNewMemParserCtxt">xmlRelaxNGNewMemParserCtxt</a><br />
<a href="html/libxml-xmlschemastypes.html#xmlSchemaGetFacetValueAsULong">xmlSchemaGetFacetValueAsULong</a><br />
+<a href="html/libxml-xmlschemastypes.html#xmlSchemaGetValType">xmlSchemaGetValType</a><br />
<a href="html/libxml-xmlschemas.html#xmlSchemaNewMemParserCtxt">xmlSchemaNewMemParserCtxt</a><br />
<a href="html/libxml-xmlschemas.html#xmlSchemaValidateDoc">xmlSchemaValidateDoc</a><br />
<a href="html/libxml-xmlschemastypes.html#xmlSchemaValidateFacet">xmlSchemaValidateFacet</a><br />
+<a href="html/libxml-xmlschemastypes.html#xmlSchemaValidateFacetWhtsp">xmlSchemaValidateFacetWhtsp</a><br />
<a href="html/libxml-xmlschemas.html#xmlSchemaValidateStream">xmlSchemaValidateStream</a><br />
</dd><dt>scheme</dt><dd><a href="html/libxml-uri.html#_xmlURI">_xmlURI</a><br />
<a href="html/libxml-tree.html#xmlBufferSetAllocationScheme">xmlBufferSetAllocationScheme</a><br />
@@ -240,6 +242,7 @@ A:link, A:visited, A:active { text-decoration: underline }
<a href="html/libxml-xmlstring.html#xmlGetUTF8Char">xmlGetUTF8Char</a><br />
<a href="html/libxml-SAX2.html#xmlSAX2InitDefaultSAXHandler">xmlSAX2InitDefaultSAXHandler</a><br />
<a href="html/libxml-xmlschemastypes.html#xmlSchemaValidateLengthFacet">xmlSchemaValidateLengthFacet</a><br />
+<a href="html/libxml-xmlschemastypes.html#xmlSchemaValidateLengthFacetWhtsp">xmlSchemaValidateLengthFacetWhtsp</a><br />
<a href="html/libxml-xpathInternals.html#xmlXPathDifference">xmlXPathDifference</a><br />
<a href="html/libxml-xpathInternals.html#xmlXPathIntersection">xmlXPathIntersection</a><br />
</dd><dt>setting</dt><dd><a href="html/libxml-xmlerror.html#xmlSetGenericErrorFunc">xmlSetGenericErrorFunc</a><br />
diff --git a/doc/APIchunk23.html b/doc/APIchunk23.html
index ab4b35c..95078db 100644
--- a/doc/APIchunk23.html
+++ b/doc/APIchunk23.html
@@ -58,6 +58,7 @@ A:link, A:visited, A:active { text-decoration: underline }
<a href="html/libxml-HTMLparser.html#htmlIsAutoClosed">htmlIsAutoClosed</a><br />
<a href="html/libxml-HTMLtree.html#htmlSetMetaEncoding">htmlSetMetaEncoding</a><br />
</dd><dt>take</dt><dd><a href="html/libxml-threads.html#xmlLockLibrary">xmlLockLibrary</a><br />
+</dd><dt>takes</dt><dd><a href="html/libxml-xmlschemastypes.html#xmlSchemaValidateFacetWhtsp">xmlSchemaValidateFacetWhtsp</a><br />
</dd><dt>tell</dt><dd><a href="html/libxml-parser.html#XML_COMPLETE_ATTRS">XML_COMPLETE_ATTRS</a><br />
<a href="html/libxml-parser.html#XML_DETECT_IDS">XML_DETECT_IDS</a><br />
<a href="html/libxml-parser.html#XML_SKIP_IDS">XML_SKIP_IDS</a><br />
@@ -413,12 +414,15 @@ A:link, A:visited, A:active { text-decoration: underline }
<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>typefixed</dt><dd><a href="html/libxml-schemasInternals.html#XML_SCHEMAS_TYPE_INTERNAL_RESOLVED">XML_SCHEMAS_TYPE_INTERNAL_RESOLVED</a><br />
</dd><dt>types</dt><dd><a href="html/libxml-schemasInternals.html#XML_SCHEMAS_FACET_COLLAPSE">XML_SCHEMAS_FACET_COLLAPSE</a><br />
<a href="html/libxml-xpath.html#_xmlXPathContext">_xmlXPathContext</a><br />
<a href="html/libxml-parser.html#xmlExternalEntityLoader">xmlExternalEntityLoader</a><br />
<a href="html/libxml-parserInternals.html#xmlParseSDDecl">xmlParseSDDecl</a><br />
<a href="html/libxml-xmlschemastypes.html#xmlSchemaCheckFacet">xmlSchemaCheckFacet</a><br />
+<a href="html/libxml-xmlschemastypes.html#xmlSchemaGetCanonValue">xmlSchemaGetCanonValue</a><br />
<a href="html/libxml-xmlschemastypes.html#xmlSchemaNewStringValue">xmlSchemaNewStringValue</a><br />
+<a href="html/libxml-xmlschemastypes.html#xmlSchemaValidateFacetWhtsp">xmlSchemaValidateFacetWhtsp</a><br />
</dd><dt>typo</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>
diff --git a/doc/APIchunk24.html b/doc/APIchunk24.html
index 3ae3272..0dfb3e2 100644
--- a/doc/APIchunk24.html
+++ b/doc/APIchunk24.html
@@ -191,6 +191,7 @@ A:link, A:visited, A:active { text-decoration: underline }
</dd></dl><h2>Letter v:</h2><dl><dt>val1</dt><dd><a href="html/libxml-xpointer.html#xmlXPtrLocationSetMerge">xmlXPtrLocationSetMerge</a><br />
</dd><dt>validated</dt><dd><a href="html/libxml-chvalid.html#xmlCharInRange">xmlCharInRange</a><br />
<a href="html/libxml-xmlschemastypes.html#xmlSchemaValidateLengthFacet">xmlSchemaValidateLengthFacet</a><br />
+<a href="html/libxml-xmlschemastypes.html#xmlSchemaValidateLengthFacetWhtsp">xmlSchemaValidateLengthFacetWhtsp</a><br />
</dd><dt>validates</dt><dd><a href="html/libxml-xmlschemastypes.html#xmlSchemaValPredefTypeNode">xmlSchemaValPredefTypeNode</a><br />
<a href="html/libxml-xmlschemastypes.html#xmlSchemaValPredefTypeNodeNoNorm">xmlSchemaValPredefTypeNodeNoNorm</a><br />
<a href="html/libxml-xmlschemastypes.html#xmlSchemaValidatePredefinedType">xmlSchemaValidatePredefinedType</a><br />
diff --git a/doc/APIchunk25.html b/doc/APIchunk25.html
index c982169..f8ce7e2 100644
--- a/doc/APIchunk25.html
+++ b/doc/APIchunk25.html
@@ -152,6 +152,8 @@ A:link, A:visited, A:active { text-decoration: underline }
</dd><dt>whitespace</dt><dd><a href="html/libxml-tree.html#xmlIsBlankNode">xmlIsBlankNode</a><br />
<a href="html/libxml-parserInternals.html#xmlParseAttValue">xmlParseAttValue</a><br />
<a href="html/libxml-xmlschemastypes.html#xmlSchemaCompareValuesWhtsp">xmlSchemaCompareValuesWhtsp</a><br />
+<a href="html/libxml-xmlschemastypes.html#xmlSchemaValidateFacetWhtsp">xmlSchemaValidateFacetWhtsp</a><br />
+<a href="html/libxml-xmlschemastypes.html#xmlSchemaValidateLengthFacetWhtsp">xmlSchemaValidateLengthFacetWhtsp</a><br />
<a href="html/libxml-xpathInternals.html#xmlXPathIdFunction">xmlXPathIdFunction</a><br />
<a href="html/libxml-xpathInternals.html#xmlXPathNormalizeFunction">xmlXPathNormalizeFunction</a><br />
</dd><dt>whitespace-separated</dt><dd><a href="html/libxml-xpathInternals.html#xmlXPathIdFunction">xmlXPathIdFunction</a><br />
diff --git a/doc/APIchunk26.html b/doc/APIchunk26.html
index 45c4c01..ffcf3df 100644
--- a/doc/APIchunk26.html
+++ b/doc/APIchunk26.html
@@ -379,6 +379,7 @@ A:link, A:visited, A:active { text-decoration: underline }
</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>xmlSchemaValType</dt><dd><a href="html/libxml-xmlschemastypes.html#xmlSchemaGetValType">xmlSchemaGetValType</a><br />
</dd><dt>xmlSchemaValidOption</dt><dd><a href="html/libxml-xmlschemas.html#xmlSchemaSetValidOptions">xmlSchemaSetValidOptions</a><br />
</dd><dt>xmlSetExternalEntityLoader</dt><dd><a href="html/libxml-SAX.html#resolveEntity">resolveEntity</a><br />
<a href="html/libxml-parser.html#resolveEntitySAXFunc">resolveEntitySAXFunc</a><br />
diff --git a/doc/APIchunk4.html b/doc/APIchunk4.html
index 885faa4..bb40a22 100644
--- a/doc/APIchunk4.html
+++ b/doc/APIchunk4.html
@@ -140,7 +140,8 @@ A:link, A:visited, A:active { text-decoration: underline }
<a href="html/libxml-HTMLtree.html#htmlSetMetaEncoding">htmlSetMetaEncoding</a><br />
</dd><dt>Method</dt><dd><a href="html/libxml-xmlreader.html#xmlTextReaderGetRemainder">xmlTextReaderGetRemainder</a><br />
</dd><dt>Mime-Type</dt><dd><a href="html/libxml-nanohttp.html#xmlNanoHTTPMimeType">xmlNanoHTTPMimeType</a><br />
-</dd><dt>Misc</dt><dd><a href="html/libxml-parser.html#xmlParseDocument">xmlParseDocument</a><br />
+</dd><dt>Misc</dt><dd><a href="html/libxml-schemasInternals.html#_xmlSchema">_xmlSchema</a><br />
+<a href="html/libxml-parser.html#xmlParseDocument">xmlParseDocument</a><br />
<a href="html/libxml-parserInternals.html#xmlParseMisc">xmlParseMisc</a><br />
</dd><dt>MiscellaneousMathematicalSymbols-A</dt><dd><a href="html/libxml-xmlunicode.html#xmlUCSIsMiscellaneousMathematicalSymbolsA">xmlUCSIsMiscellaneousMathematicalSymbolsA</a><br />
</dd><dt>MiscellaneousMathematicalSymbols-B</dt><dd><a href="html/libxml-xmlunicode.html#xmlUCSIsMiscellaneousMathematicalSymbolsB">xmlUCSIsMiscellaneousMathematicalSymbolsB</a><br />
@@ -300,6 +301,7 @@ A:link, A:visited, A:active { text-decoration: underline }
<a href="html/libxml-SAX2.html#xmlSAXDefaultVersion">xmlSAXDefaultVersion</a><br />
<a href="html/libxml-tree.html#xmlSaveFormatFile">xmlSaveFormatFile</a><br />
<a href="html/libxml-tree.html#xmlSaveFormatFileEnc">xmlSaveFormatFileEnc</a><br />
+<a href="html/libxml-xmlschemastypes.html#xmlSchemaValidateFacetWhtsp">xmlSchemaValidateFacetWhtsp</a><br />
<a href="html/libxml-xmlreader.html#xmlTextReaderSetParserProp">xmlTextReaderSetParserProp</a><br />
<a href="html/libxml-valid.html#xmlValidateDtd">xmlValidateDtd</a><br />
</dd><dt>Note:</dt><dd><a href="html/libxml-parser.html#fatalErrorSAXFunc">fatalErrorSAXFunc</a><br />
diff --git a/doc/APIchunk6.html b/doc/APIchunk6.html
index 82be4d8..ace9324 100644
--- a/doc/APIchunk6.html
+++ b/doc/APIchunk6.html
@@ -439,6 +439,7 @@ A:link, A:visited, A:active { text-decoration: underline }
</dd><dt>SmallFormVariants</dt><dd><a href="html/libxml-xmlunicode.html#xmlUCSIsSmallFormVariants">xmlUCSIsSmallFormVariants</a><br />
</dd><dt>Some</dt><dd><a href="html/libxml-HTMLparser.html#_htmlElemDesc">_htmlElemDesc</a><br />
<a href="html/libxml-uri.html#xmlBuildRelativeURI">xmlBuildRelativeURI</a><br />
+<a href="html/libxml-xmlschemastypes.html#xmlSchemaGetCanonValue">xmlSchemaGetCanonValue</a><br />
</dd><dt>Sort</dt><dd><a href="html/libxml-list.html#xmlListSort">xmlListSort</a><br />
<a href="html/libxml-xpathInternals.html#xmlXPathNodeSetSort">xmlXPathNodeSetSort</a><br />
</dd><dt>SpacingModifierLetters</dt><dd><a href="html/libxml-xmlunicode.html#xmlUCSIsSpacingModifierLetters">xmlUCSIsSpacingModifierLetters</a><br />
diff --git a/doc/APIchunk8.html b/doc/APIchunk8.html
index 434fa69..b23366a 100644
--- a/doc/APIchunk8.html
+++ b/doc/APIchunk8.html
@@ -72,7 +72,8 @@ A:link, A:visited, A:active { text-decoration: underline }
<a href="html/libxml-parserInternals.html#xmlParseVersionNum">xmlParseVersionNum</a><br />
</dd></dl><h2>Letter W:</h2><dl><dt>WARNING</dt><dd><a href="html/libxml-relaxng.html#xmlRelaxNGParse">xmlRelaxNGParse</a><br />
<a href="html/libxml-xmlschemas.html#xmlSchemaParse">xmlSchemaParse</a><br />
-</dd><dt>WARNING:</dt><dd><a href="html/libxml-xmlschemastypes.html#xmlSchemaNewStringValue">xmlSchemaNewStringValue</a><br />
+</dd><dt>WARNING:</dt><dd><a href="html/libxml-xmlschemastypes.html#xmlSchemaGetCanonValue">xmlSchemaGetCanonValue</a><br />
+<a href="html/libxml-xmlschemastypes.html#xmlSchemaNewStringValue">xmlSchemaNewStringValue</a><br />
</dd><dt>WFC:</dt><dd><a href="html/libxml-parserInternals.html#xmlParseAttribute">xmlParseAttribute</a><br />
<a href="html/libxml-parserInternals.html#xmlParseCharRef">xmlParseCharRef</a><br />
<a href="html/libxml-parserInternals.html#xmlParseDefaultDecl">xmlParseDefaultDecl</a><br />
@@ -286,12 +287,14 @@ A:link, A:visited, A:active { text-decoration: underline }
</dd><dt>according</dt><dd><a href="html/libxml-uri.html#xmlBuildURI">xmlBuildURI</a><br />
<a href="html/libxml-encoding.html#xmlDetectCharEncoding">xmlDetectCharEncoding</a><br />
<a href="html/libxml-SAX2.html#xmlSAXVersion">xmlSAXVersion</a><br />
+<a href="html/libxml-xmlschemastypes.html#xmlSchemaValidateFacetWhtsp">xmlSchemaValidateFacetWhtsp</a><br />
<a href="html/libxml-uri.html#xmlURIEscape">xmlURIEscape</a><br />
<a href="html/libxml-xpathInternals.html#xmlXPathCompareValues">xmlXPathCompareValues</a><br />
</dd><dt>accordingly</dt><dd><a href="html/libxml-encoding.html#xmlParseCharEncoding">xmlParseCharEncoding</a><br />
<a href="html/libxml-parserInternals.html#xmlParserHandlePEReference">xmlParserHandlePEReference</a><br />
<a href="html/libxml-parserInternals.html#xmlParserHandleReference">xmlParserHandleReference</a><br />
<a href="html/libxml-valid.html#xmlValidCtxtNormalizeAttributeValue">xmlValidCtxtNormalizeAttributeValue</a><br />
+</dd><dt>account</dt><dd><a href="html/libxml-xmlschemastypes.html#xmlSchemaValidateFacetWhtsp">xmlSchemaValidateFacetWhtsp</a><br />
</dd><dt>act</dt><dd><a href="html/libxml-pattern.html#xmlStreamPush">xmlStreamPush</a><br />
<a href="html/libxml-pattern.html#xmlStreamPushAttr">xmlStreamPushAttr</a><br />
</dd><dt>activate</dt><dd><a href="html/libxml-xmlreader.html#xmlTextReaderSetParserProp">xmlTextReaderSetParserProp</a><br />
@@ -309,6 +312,7 @@ A:link, A:visited, A:active { text-decoration: underline }
</dd><dt>acts</dt><dd><a href="html/libxml-tree.html#xmlGetProp">xmlGetProp</a><br />
</dd><dt>actual</dt><dd><a href="html/libxml-xmlstring.html#xmlGetUTF8Char">xmlGetUTF8Char</a><br />
<a href="html/libxml-xmlschemastypes.html#xmlSchemaValidateLengthFacet">xmlSchemaValidateLengthFacet</a><br />
+<a href="html/libxml-xmlschemastypes.html#xmlSchemaValidateLengthFacetWhtsp">xmlSchemaValidateLengthFacetWhtsp</a><br />
<a href="html/libxml-xpath.html#xmlXPathFreeNodeSet">xmlXPathFreeNodeSet</a><br />
<a href="html/libxml-xpointer.html#xmlXPtrFreeLocationSet">xmlXPtrFreeLocationSet</a><br />
</dd><dt>actually</dt><dd><a href="html/libxml-tree.html#_xmlDoc">_xmlDoc</a><br />
@@ -423,7 +427,9 @@ 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#xmlSchemaValidateFacetWhtsp">xmlSchemaValidateFacetWhtsp</a><br />
<a href="html/libxml-xmlschemastypes.html#xmlSchemaValidateLengthFacet">xmlSchemaValidateLengthFacet</a><br />
+<a href="html/libxml-xmlschemastypes.html#xmlSchemaValidateLengthFacetWhtsp">xmlSchemaValidateLengthFacetWhtsp</a><br />
<a href="html/libxml-xmlschemastypes.html#xmlSchemaValidateListSimpleTypeFacet">xmlSchemaValidateListSimpleTypeFacet</a><br />
<a href="html/libxml-debugXML.html#xmlShellValidate">xmlShellValidate</a><br />
<a href="html/libxml-valid.html#xmlValidateDtd">xmlValidateDtd</a><br />
diff --git a/doc/APIchunk9.html b/doc/APIchunk9.html
index 3804369..0d92536 100644
--- a/doc/APIchunk9.html
+++ b/doc/APIchunk9.html
@@ -252,7 +252,9 @@ A:link, A:visited, A:active { text-decoration: underline }
</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 />
<a href="html/libxml-xmlschemastypes.html#xmlSchemaIsBuiltInTypeFacet">xmlSchemaIsBuiltInTypeFacet</a><br />
+<a href="html/libxml-xmlschemastypes.html#xmlSchemaValidateFacetWhtsp">xmlSchemaValidateFacetWhtsp</a><br />
<a href="html/libxml-xmlschemastypes.html#xmlSchemaValidateLengthFacet">xmlSchemaValidateLengthFacet</a><br />
+<a href="html/libxml-xmlschemastypes.html#xmlSchemaValidateLengthFacetWhtsp">xmlSchemaValidateLengthFacetWhtsp</a><br />
</dd><dt>builtin</dt><dd><a href="html/libxml-schemasInternals.html#XML_SCHEMAS_TYPE_BUILTIN_PRIMITIVE">XML_SCHEMAS_TYPE_BUILTIN_PRIMITIVE</a><br />
<a href="html/libxml-xmlerror.html#initGenericErrorDefaultFunc">initGenericErrorDefaultFunc</a><br />
</dd><dt>bunch</dt><dd><a href="html/libxml-parserInternals.html#xmlParseNamespace">xmlParseNamespace</a><br />
diff --git a/doc/APIconstructors.html b/doc/APIconstructors.html
index 9372c05..a65bd61 100644
--- a/doc/APIconstructors.html
+++ b/doc/APIconstructors.html
@@ -484,6 +484,7 @@ A:link, A:visited, A:active { text-decoration: underline }
</p><h2>Type xmlSchemaValPtr:</h2><p><a href="html/libxml-xmlschemastypes.html#xmlSchemaCopyValue">xmlSchemaCopyValue</a><br />
<a href="html/libxml-xmlschemastypes.html#xmlSchemaNewNOTATIONValue">xmlSchemaNewNOTATIONValue</a><br />
<a href="html/libxml-xmlschemastypes.html#xmlSchemaNewStringValue">xmlSchemaNewStringValue</a><br />
+</p><h2>Type xmlSchemaValType:</h2><p><a href="html/libxml-xmlschemastypes.html#xmlSchemaGetValType">xmlSchemaGetValType</a><br />
</p><h2>Type xmlSchemaValidCtxtPtr:</h2><p><a href="html/libxml-xmlschemas.html#xmlSchemaNewValidCtxt">xmlSchemaNewValidCtxt</a><br />
</p><h2>Type xmlStreamCtxtPtr:</h2><p><a href="html/libxml-pattern.html#xmlPatternGetStreamCtxt">xmlPatternGetStreamCtxt</a><br />
</p><h2>Type xmlTextReaderPtr:</h2><p><a href="html/libxml-xmlreader.html#xmlNewTextReader">xmlNewTextReader</a><br />
diff --git a/doc/APIfiles.html b/doc/APIfiles.html
index 33bd419..3b6a935 100644
--- a/doc/APIfiles.html
+++ b/doc/APIfiles.html
@@ -1050,6 +1050,8 @@ A:link, A:visited, A:active { text-decoration: underline }
<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_INTERNAL_INVALID">XML_SCHEMAS_TYPE_INTERNAL_INVALID</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMAS_TYPE_INTERNAL_RESOLVED">XML_SCHEMAS_TYPE_INTERNAL_RESOLVED</a><br />
<a href="html/libxml-schemasInternals.html#XML_SCHEMAS_TYPE_MARKED">XML_SCHEMAS_TYPE_MARKED</a><br />
<a href="html/libxml-schemasInternals.html#XML_SCHEMAS_TYPE_MIXED">XML_SCHEMAS_TYPE_MIXED</a><br />
<a href="html/libxml-schemasInternals.html#XML_SCHEMAS_TYPE_OWNED_ATTR_WILDCARD">XML_SCHEMAS_TYPE_OWNED_ATTR_WILDCARD</a><br />
@@ -1071,6 +1073,7 @@ A:link, A:visited, A:active { text-decoration: underline }
<a href="html/libxml-schemasInternals.html#XML_SCHEMA_CONTENT_MIXED_OR_ELEMENTS">XML_SCHEMA_CONTENT_MIXED_OR_ELEMENTS</a><br />
<a href="html/libxml-schemasInternals.html#XML_SCHEMA_CONTENT_SIMPLE">XML_SCHEMA_CONTENT_SIMPLE</a><br />
<a href="html/libxml-schemasInternals.html#XML_SCHEMA_CONTENT_UNKNOWN">XML_SCHEMA_CONTENT_UNKNOWN</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMA_EXTRA_QNAMEREF">XML_SCHEMA_EXTRA_QNAMEREF</a><br />
<a href="html/libxml-schemasInternals.html#XML_SCHEMA_FACET_ENUMERATION">XML_SCHEMA_FACET_ENUMERATION</a><br />
<a href="html/libxml-schemasInternals.html#XML_SCHEMA_FACET_FRACTIONDIGITS">XML_SCHEMA_FACET_FRACTIONDIGITS</a><br />
<a href="html/libxml-schemasInternals.html#XML_SCHEMA_FACET_LENGTH">XML_SCHEMA_FACET_LENGTH</a><br />
@@ -1101,6 +1104,7 @@ A:link, A:visited, A:active { text-decoration: underline }
<a href="html/libxml-schemasInternals.html#XML_SCHEMA_TYPE_IDC_UNIQUE">XML_SCHEMA_TYPE_IDC_UNIQUE</a><br />
<a href="html/libxml-schemasInternals.html#XML_SCHEMA_TYPE_LIST">XML_SCHEMA_TYPE_LIST</a><br />
<a href="html/libxml-schemasInternals.html#XML_SCHEMA_TYPE_NOTATION">XML_SCHEMA_TYPE_NOTATION</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMA_TYPE_PARTICLE">XML_SCHEMA_TYPE_PARTICLE</a><br />
<a href="html/libxml-schemasInternals.html#XML_SCHEMA_TYPE_RESTRICTION">XML_SCHEMA_TYPE_RESTRICTION</a><br />
<a href="html/libxml-schemasInternals.html#XML_SCHEMA_TYPE_SEQUENCE">XML_SCHEMA_TYPE_SEQUENCE</a><br />
<a href="html/libxml-schemasInternals.html#XML_SCHEMA_TYPE_SIMPLE">XML_SCHEMA_TYPE_SIMPLE</a><br />
@@ -1672,7 +1676,9 @@ A:link, A:visited, A:active { text-decoration: underline }
</p><h2><a name="xmlerror" id="xmlerror">Module xmlerror</a>:</h2><p><a href="html/libxml-xmlerror.html#XML_C14N_CREATE_CTXT">XML_C14N_CREATE_CTXT</a><br />
<a href="html/libxml-xmlerror.html#XML_C14N_CREATE_STACK">XML_C14N_CREATE_STACK</a><br />
<a href="html/libxml-xmlerror.html#XML_C14N_INVALID_NODE">XML_C14N_INVALID_NODE</a><br />
+<a href="html/libxml-xmlerror.html#XML_C14N_RELATIVE_NAMESPACE">XML_C14N_RELATIVE_NAMESPACE</a><br />
<a href="html/libxml-xmlerror.html#XML_C14N_REQUIRES_UTF8">XML_C14N_REQUIRES_UTF8</a><br />
+<a href="html/libxml-xmlerror.html#XML_C14N_UNKNOW_NODE">XML_C14N_UNKNOW_NODE</a><br />
<a href="html/libxml-xmlerror.html#XML_CATALOG_ENTRY_BROKEN">XML_CATALOG_ENTRY_BROKEN</a><br />
<a href="html/libxml-xmlerror.html#XML_CATALOG_MISSING_ATTR">XML_CATALOG_MISSING_ATTR</a><br />
<a href="html/libxml-xmlerror.html#XML_CATALOG_NOT_CATALOG">XML_CATALOG_NOT_CATALOG</a><br />
@@ -2686,6 +2692,7 @@ A:link, A:visited, A:active { text-decoration: underline }
<a href="html/libxml-xmlschemastypes.html#xmlSchemaGetCanonValue">xmlSchemaGetCanonValue</a><br />
<a href="html/libxml-xmlschemastypes.html#xmlSchemaGetFacetValueAsULong">xmlSchemaGetFacetValueAsULong</a><br />
<a href="html/libxml-xmlschemastypes.html#xmlSchemaGetPredefinedType">xmlSchemaGetPredefinedType</a><br />
+<a href="html/libxml-xmlschemastypes.html#xmlSchemaGetValType">xmlSchemaGetValType</a><br />
<a href="html/libxml-xmlschemastypes.html#xmlSchemaInitTypes">xmlSchemaInitTypes</a><br />
<a href="html/libxml-xmlschemastypes.html#xmlSchemaIsBuiltInTypeFacet">xmlSchemaIsBuiltInTypeFacet</a><br />
<a href="html/libxml-xmlschemastypes.html#xmlSchemaNewFacet">xmlSchemaNewFacet</a><br />
@@ -2694,7 +2701,9 @@ A:link, A:visited, A:active { text-decoration: underline }
<a href="html/libxml-xmlschemastypes.html#xmlSchemaValPredefTypeNode">xmlSchemaValPredefTypeNode</a><br />
<a href="html/libxml-xmlschemastypes.html#xmlSchemaValPredefTypeNodeNoNorm">xmlSchemaValPredefTypeNodeNoNorm</a><br />
<a href="html/libxml-xmlschemastypes.html#xmlSchemaValidateFacet">xmlSchemaValidateFacet</a><br />
+<a href="html/libxml-xmlschemastypes.html#xmlSchemaValidateFacetWhtsp">xmlSchemaValidateFacetWhtsp</a><br />
<a href="html/libxml-xmlschemastypes.html#xmlSchemaValidateLengthFacet">xmlSchemaValidateLengthFacet</a><br />
+<a href="html/libxml-xmlschemastypes.html#xmlSchemaValidateLengthFacetWhtsp">xmlSchemaValidateLengthFacetWhtsp</a><br />
<a href="html/libxml-xmlschemastypes.html#xmlSchemaValidateListSimpleTypeFacet">xmlSchemaValidateListSimpleTypeFacet</a><br />
<a href="html/libxml-xmlschemastypes.html#xmlSchemaValidatePredefinedType">xmlSchemaValidatePredefinedType</a><br />
<a href="html/libxml-xmlschemastypes.html#xmlSchemaWhiteSpaceReplace">xmlSchemaWhiteSpaceReplace</a><br />
diff --git a/doc/APIfunctions.html b/doc/APIfunctions.html
index c96a8d0..edf5edc 100644
--- a/doc/APIfunctions.html
+++ b/doc/APIfunctions.html
@@ -295,6 +295,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#xmlParseCtxtExternalEntity">xmlParseCtxtExternalEntity</a><br />
<a href="html/libxml-parser.html#xmlParseDTD">xmlParseDTD</a><br />
+<a href="html/libxml-parser.html#xmlParseDoc">xmlParseDoc</a><br />
<a href="html/libxml-parserInternals.html#xmlParseElementContentDecl">xmlParseElementContentDecl</a><br />
<a href="html/libxml-parser.html#xmlParseExternalEntity">xmlParseExternalEntity</a><br />
<a href="html/libxml-parserInternals.html#xmlParseExternalSubset">xmlParseExternalSubset</a><br />
@@ -329,6 +330,7 @@ A:link, A:visited, A:active { text-decoration: underline }
<a href="html/libxml-SAX2.html#xmlSAX2StartElementNs">xmlSAX2StartElementNs</a><br />
<a href="html/libxml-SAX2.html#xmlSAX2UnparsedEntityDecl">xmlSAX2UnparsedEntityDecl</a><br />
<a href="html/libxml-parser.html#xmlSAXParseDTD">xmlSAXParseDTD</a><br />
+<a href="html/libxml-parser.html#xmlSAXParseDoc">xmlSAXParseDoc</a><br />
<a href="html/libxml-xmlschemastypes.html#xmlSchemaCheckFacet">xmlSchemaCheckFacet</a><br />
<a href="html/libxml-xmlschemastypes.html#xmlSchemaCollapseString">xmlSchemaCollapseString</a><br />
<a href="html/libxml-xmlschemastypes.html#xmlSchemaGetPredefinedType">xmlSchemaGetPredefinedType</a><br />
@@ -337,7 +339,9 @@ A:link, A:visited, A:active { text-decoration: underline }
<a href="html/libxml-xmlschemastypes.html#xmlSchemaValPredefTypeNode">xmlSchemaValPredefTypeNode</a><br />
<a href="html/libxml-xmlschemastypes.html#xmlSchemaValPredefTypeNodeNoNorm">xmlSchemaValPredefTypeNodeNoNorm</a><br />
<a href="html/libxml-xmlschemastypes.html#xmlSchemaValidateFacet">xmlSchemaValidateFacet</a><br />
+<a href="html/libxml-xmlschemastypes.html#xmlSchemaValidateFacetWhtsp">xmlSchemaValidateFacetWhtsp</a><br />
<a href="html/libxml-xmlschemastypes.html#xmlSchemaValidateLengthFacet">xmlSchemaValidateLengthFacet</a><br />
+<a href="html/libxml-xmlschemastypes.html#xmlSchemaValidateLengthFacetWhtsp">xmlSchemaValidateLengthFacetWhtsp</a><br />
<a href="html/libxml-xmlschemastypes.html#xmlSchemaValidateListSimpleTypeFacet">xmlSchemaValidateListSimpleTypeFacet</a><br />
<a href="html/libxml-xmlschemastypes.html#xmlSchemaValidatePredefinedType">xmlSchemaValidatePredefinedType</a><br />
<a href="html/libxml-xmlschemastypes.html#xmlSchemaWhiteSpaceReplace">xmlSchemaWhiteSpaceReplace</a><br />
@@ -592,6 +596,7 @@ A:link, A:visited, A:active { text-decoration: underline }
</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#xmlSchemaValidateLengthFacet">xmlSchemaValidateLengthFacet</a><br />
+<a href="html/libxml-xmlschemastypes.html#xmlSchemaValidateLengthFacetWhtsp">xmlSchemaValidateLengthFacetWhtsp</a><br />
<a href="html/libxml-xmlschemastypes.html#xmlSchemaValidateListSimpleTypeFacet">xmlSchemaValidateListSimpleTypeFacet</a><br />
</p><h2>Type va_list:</h2><p><a href="html/libxml-xmlstring.html#xmlStrVPrintf">xmlStrVPrintf</a><br />
<a href="html/libxml-xmlwriter.html#xmlTextWriterWriteVFormatAttribute">xmlTextWriterWriteVFormatAttribute</a><br />
@@ -970,11 +975,9 @@ A:link, A:visited, A:active { text-decoration: underline }
<a href="html/libxml-tree.html#xmlNewDocNodeEatName">xmlNewDocNodeEatName</a><br />
<a href="html/libxml-tree.html#xmlNewNodeEatName">xmlNewNodeEatName</a><br />
<a href="html/libxml-tree.html#xmlNewNsPropEatName">xmlNewNsPropEatName</a><br />
-<a href="html/libxml-parser.html#xmlParseDoc">xmlParseDoc</a><br />
<a href="html/libxml-parser.html#xmlParserInputDeallocate">xmlParserInputDeallocate</a><br />
<a href="html/libxml-parser.html#xmlRecoverDoc">xmlRecoverDoc</a><br />
<a href="html/libxml-SAX2.html#xmlSAX2EntityDecl">xmlSAX2EntityDecl</a><br />
-<a href="html/libxml-parser.html#xmlSAXParseDoc">xmlSAXParseDoc</a><br />
<a href="html/libxml-xmlstring.html#xmlStrPrintf">xmlStrPrintf</a><br />
<a href="html/libxml-xmlstring.html#xmlStrVPrintf">xmlStrVPrintf</a><br />
<a href="html/libxml-xmlstring.html#xmlStrcasestr">xmlStrcasestr</a><br />
@@ -1792,7 +1795,9 @@ A:link, A:visited, A:active { text-decoration: underline }
<a href="html/libxml-xmlschemastypes.html#xmlSchemaFreeFacet">xmlSchemaFreeFacet</a><br />
<a href="html/libxml-xmlschemastypes.html#xmlSchemaGetFacetValueAsULong">xmlSchemaGetFacetValueAsULong</a><br />
<a href="html/libxml-xmlschemastypes.html#xmlSchemaValidateFacet">xmlSchemaValidateFacet</a><br />
+<a href="html/libxml-xmlschemastypes.html#xmlSchemaValidateFacetWhtsp">xmlSchemaValidateFacetWhtsp</a><br />
<a href="html/libxml-xmlschemastypes.html#xmlSchemaValidateLengthFacet">xmlSchemaValidateLengthFacet</a><br />
+<a href="html/libxml-xmlschemastypes.html#xmlSchemaValidateLengthFacetWhtsp">xmlSchemaValidateLengthFacetWhtsp</a><br />
<a href="html/libxml-xmlschemastypes.html#xmlSchemaValidateListSimpleTypeFacet">xmlSchemaValidateListSimpleTypeFacet</a><br />
</p><h2>Type xmlSchemaParserCtxtPtr:</h2><p><a href="html/libxml-xmlschemastypes.html#xmlSchemaCheckFacet">xmlSchemaCheckFacet</a><br />
<a href="html/libxml-xmlschemas.html#xmlSchemaFreeParserCtxt">xmlSchemaFreeParserCtxt</a><br />
@@ -1816,13 +1821,18 @@ A:link, A:visited, A:active { text-decoration: underline }
<a href="html/libxml-xmlschemastypes.html#xmlSchemaCopyValue">xmlSchemaCopyValue</a><br />
<a href="html/libxml-xmlschemastypes.html#xmlSchemaFreeValue">xmlSchemaFreeValue</a><br />
<a href="html/libxml-xmlschemastypes.html#xmlSchemaGetCanonValue">xmlSchemaGetCanonValue</a><br />
+<a href="html/libxml-xmlschemastypes.html#xmlSchemaGetValType">xmlSchemaGetValType</a><br />
<a href="html/libxml-xmlschemastypes.html#xmlSchemaValidateFacet">xmlSchemaValidateFacet</a><br />
+<a href="html/libxml-xmlschemastypes.html#xmlSchemaValidateFacetWhtsp">xmlSchemaValidateFacetWhtsp</a><br />
<a href="html/libxml-xmlschemastypes.html#xmlSchemaValidateLengthFacet">xmlSchemaValidateLengthFacet</a><br />
+<a href="html/libxml-xmlschemastypes.html#xmlSchemaValidateLengthFacetWhtsp">xmlSchemaValidateLengthFacetWhtsp</a><br />
</p><h2>Type xmlSchemaValPtr *:</h2><p><a href="html/libxml-xmlschemastypes.html#xmlSchemaValPredefTypeNode">xmlSchemaValPredefTypeNode</a><br />
<a href="html/libxml-xmlschemastypes.html#xmlSchemaValPredefTypeNodeNoNorm">xmlSchemaValPredefTypeNodeNoNorm</a><br />
<a href="html/libxml-xmlschemastypes.html#xmlSchemaValidatePredefinedType">xmlSchemaValidatePredefinedType</a><br />
</p><h2>Type xmlSchemaValType:</h2><p><a href="html/libxml-xmlschemastypes.html#xmlSchemaGetBuiltInType">xmlSchemaGetBuiltInType</a><br />
<a href="html/libxml-xmlschemastypes.html#xmlSchemaNewStringValue">xmlSchemaNewStringValue</a><br />
+<a href="html/libxml-xmlschemastypes.html#xmlSchemaValidateFacetWhtsp">xmlSchemaValidateFacetWhtsp</a><br />
+<a href="html/libxml-xmlschemastypes.html#xmlSchemaValidateLengthFacetWhtsp">xmlSchemaValidateLengthFacetWhtsp</a><br />
</p><h2>Type xmlSchemaValidCtxtPtr:</h2><p><a href="html/libxml-xmlschemas.html#xmlSchemaFreeValidCtxt">xmlSchemaFreeValidCtxt</a><br />
<a href="html/libxml-xmlschemas.html#xmlSchemaGetValidErrors">xmlSchemaGetValidErrors</a><br />
<a href="html/libxml-xmlschemas.html#xmlSchemaSetValidErrors">xmlSchemaSetValidErrors</a><br />
@@ -1840,6 +1850,8 @@ A:link, A:visited, A:active { text-decoration: underline }
</p><h2>Type xmlSchemaValidityWarningFunc *:</h2><p><a href="html/libxml-xmlschemas.html#xmlSchemaGetParserErrors">xmlSchemaGetParserErrors</a><br />
<a href="html/libxml-xmlschemas.html#xmlSchemaGetValidErrors">xmlSchemaGetValidErrors</a><br />
</p><h2>Type xmlSchemaWhitespaceValueType:</h2><p><a href="html/libxml-xmlschemastypes.html#xmlSchemaCompareValuesWhtsp">xmlSchemaCompareValuesWhtsp</a><br />
+<a href="html/libxml-xmlschemastypes.html#xmlSchemaValidateFacetWhtsp">xmlSchemaValidateFacetWhtsp</a><br />
+<a href="html/libxml-xmlschemastypes.html#xmlSchemaValidateLengthFacetWhtsp">xmlSchemaValidateLengthFacetWhtsp</a><br />
</p><h2>Type xmlSchemaWildcardPtr:</h2><p><a href="html/libxml-schemasInternals.html#xmlSchemaFreeWildcard">xmlSchemaFreeWildcard</a><br />
</p><h2>Type xmlShellCtxtPtr:</h2><p><a href="html/libxml-debugXML.html#xmlShellBase">xmlShellBase</a><br />
<a href="html/libxml-debugXML.html#xmlShellCat">xmlShellCat</a><br />
diff --git a/doc/APIsymbols.html b/doc/APIsymbols.html
index 7dbc146..5294822 100644
--- a/doc/APIsymbols.html
+++ b/doc/APIsymbols.html
@@ -143,7 +143,9 @@ A:link, A:visited, A:active { text-decoration: underline }
<a href="html/libxml-xmlerror.html#XML_C14N_CREATE_CTXT">XML_C14N_CREATE_CTXT</a><br />
<a href="html/libxml-xmlerror.html#XML_C14N_CREATE_STACK">XML_C14N_CREATE_STACK</a><br />
<a href="html/libxml-xmlerror.html#XML_C14N_INVALID_NODE">XML_C14N_INVALID_NODE</a><br />
+<a href="html/libxml-xmlerror.html#XML_C14N_RELATIVE_NAMESPACE">XML_C14N_RELATIVE_NAMESPACE</a><br />
<a href="html/libxml-xmlerror.html#XML_C14N_REQUIRES_UTF8">XML_C14N_REQUIRES_UTF8</a><br />
+<a href="html/libxml-xmlerror.html#XML_C14N_UNKNOW_NODE">XML_C14N_UNKNOW_NODE</a><br />
<a href="html/libxml-hash.html#XML_CAST_FPTR">XML_CAST_FPTR</a><br />
<a href="html/libxml-catalog.html#XML_CATALOGS_NAMESPACE">XML_CATALOGS_NAMESPACE</a><br />
<a href="html/libxml-xmlerror.html#XML_CATALOG_ENTRY_BROKEN">XML_CATALOG_ENTRY_BROKEN</a><br />
@@ -1058,6 +1060,8 @@ A:link, A:visited, A:active { text-decoration: underline }
<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_INTERNAL_INVALID">XML_SCHEMAS_TYPE_INTERNAL_INVALID</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMAS_TYPE_INTERNAL_RESOLVED">XML_SCHEMAS_TYPE_INTERNAL_RESOLVED</a><br />
<a href="html/libxml-schemasInternals.html#XML_SCHEMAS_TYPE_MARKED">XML_SCHEMAS_TYPE_MARKED</a><br />
<a href="html/libxml-schemasInternals.html#XML_SCHEMAS_TYPE_MIXED">XML_SCHEMAS_TYPE_MIXED</a><br />
<a href="html/libxml-schemasInternals.html#XML_SCHEMAS_TYPE_OWNED_ATTR_WILDCARD">XML_SCHEMAS_TYPE_OWNED_ATTR_WILDCARD</a><br />
@@ -1157,6 +1161,7 @@ A:link, A:visited, A:active { text-decoration: underline }
<a href="html/libxml-schemasInternals.html#XML_SCHEMA_CONTENT_MIXED_OR_ELEMENTS">XML_SCHEMA_CONTENT_MIXED_OR_ELEMENTS</a><br />
<a href="html/libxml-schemasInternals.html#XML_SCHEMA_CONTENT_SIMPLE">XML_SCHEMA_CONTENT_SIMPLE</a><br />
<a href="html/libxml-schemasInternals.html#XML_SCHEMA_CONTENT_UNKNOWN">XML_SCHEMA_CONTENT_UNKNOWN</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMA_EXTRA_QNAMEREF">XML_SCHEMA_EXTRA_QNAMEREF</a><br />
<a href="html/libxml-schemasInternals.html#XML_SCHEMA_FACET_ENUMERATION">XML_SCHEMA_FACET_ENUMERATION</a><br />
<a href="html/libxml-schemasInternals.html#XML_SCHEMA_FACET_FRACTIONDIGITS">XML_SCHEMA_FACET_FRACTIONDIGITS</a><br />
<a href="html/libxml-schemasInternals.html#XML_SCHEMA_FACET_LENGTH">XML_SCHEMA_FACET_LENGTH</a><br />
@@ -1187,6 +1192,7 @@ A:link, A:visited, A:active { text-decoration: underline }
<a href="html/libxml-schemasInternals.html#XML_SCHEMA_TYPE_IDC_UNIQUE">XML_SCHEMA_TYPE_IDC_UNIQUE</a><br />
<a href="html/libxml-schemasInternals.html#XML_SCHEMA_TYPE_LIST">XML_SCHEMA_TYPE_LIST</a><br />
<a href="html/libxml-schemasInternals.html#XML_SCHEMA_TYPE_NOTATION">XML_SCHEMA_TYPE_NOTATION</a><br />
+<a href="html/libxml-schemasInternals.html#XML_SCHEMA_TYPE_PARTICLE">XML_SCHEMA_TYPE_PARTICLE</a><br />
<a href="html/libxml-schemasInternals.html#XML_SCHEMA_TYPE_RESTRICTION">XML_SCHEMA_TYPE_RESTRICTION</a><br />
<a href="html/libxml-schemasInternals.html#XML_SCHEMA_TYPE_SEQUENCE">XML_SCHEMA_TYPE_SEQUENCE</a><br />
<a href="html/libxml-schemasInternals.html#XML_SCHEMA_TYPE_SIMPLE">XML_SCHEMA_TYPE_SIMPLE</a><br />
@@ -2546,6 +2552,7 @@ A:link, A:visited, A:active { text-decoration: underline }
<a href="html/libxml-xmlschemastypes.html#xmlSchemaGetFacetValueAsULong">xmlSchemaGetFacetValueAsULong</a><br />
<a href="html/libxml-xmlschemas.html#xmlSchemaGetParserErrors">xmlSchemaGetParserErrors</a><br />
<a href="html/libxml-xmlschemastypes.html#xmlSchemaGetPredefinedType">xmlSchemaGetPredefinedType</a><br />
+<a href="html/libxml-xmlschemastypes.html#xmlSchemaGetValType">xmlSchemaGetValType</a><br />
<a href="html/libxml-xmlschemas.html#xmlSchemaGetValidErrors">xmlSchemaGetValidErrors</a><br />
<a href="html/libxml-xmlschemastypes.html#xmlSchemaInitTypes">xmlSchemaInitTypes</a><br />
<a href="html/libxml-xmlschemastypes.html#xmlSchemaIsBuiltInTypeFacet">xmlSchemaIsBuiltInTypeFacet</a><br />
@@ -2582,7 +2589,9 @@ A:link, A:visited, A:active { text-decoration: underline }
<a href="html/libxml-xmlschemas.html#xmlSchemaValidOption">xmlSchemaValidOption</a><br />
<a href="html/libxml-xmlschemas.html#xmlSchemaValidateDoc">xmlSchemaValidateDoc</a><br />
<a href="html/libxml-xmlschemastypes.html#xmlSchemaValidateFacet">xmlSchemaValidateFacet</a><br />
+<a href="html/libxml-xmlschemastypes.html#xmlSchemaValidateFacetWhtsp">xmlSchemaValidateFacetWhtsp</a><br />
<a href="html/libxml-xmlschemastypes.html#xmlSchemaValidateLengthFacet">xmlSchemaValidateLengthFacet</a><br />
+<a href="html/libxml-xmlschemastypes.html#xmlSchemaValidateLengthFacetWhtsp">xmlSchemaValidateLengthFacetWhtsp</a><br />
<a href="html/libxml-xmlschemastypes.html#xmlSchemaValidateListSimpleTypeFacet">xmlSchemaValidateListSimpleTypeFacet</a><br />
<a href="html/libxml-xmlschemas.html#xmlSchemaValidateOneElement">xmlSchemaValidateOneElement</a><br />
<a href="html/libxml-xmlschemastypes.html#xmlSchemaValidatePredefinedType">xmlSchemaValidatePredefinedType</a><br />
diff --git a/doc/apibuild.py b/doc/apibuild.py
index bd88a18..8851cc0 100755
--- a/doc/apibuild.py
+++ b/doc/apibuild.py
@@ -33,6 +33,7 @@ ignored_files = {
"rngparser.h": "not yet integrated",
"elfgcchack.h": "not a normal header",
"testapi.c": "generated regression tests",
+ "tst.c": "not part of the library",
"testdso.c": "test for dynamid shared libraries",
}
@@ -70,9 +71,10 @@ def uniq(items):
return d.keys()
class identifier:
- def __init__(self, name, module=None, type=None, lineno = 0,
+ def __init__(self, name, header=None, module=None, type=None, lineno = 0,
info=None, extra=None, conditionals = None):
self.name = name
+ self.header = header
self.module = module
self.type = type
self.info = info
@@ -102,6 +104,8 @@ class identifier:
return r
+ def set_header(self, header):
+ self.header = header
def set_module(self, module):
self.module = module
def set_type(self, type):
@@ -122,6 +126,8 @@ class identifier:
def get_name(self):
return self.name
+ def get_header(self):
+ return self.module
def get_module(self):
return self.module
def get_type(self):
@@ -137,12 +143,14 @@ class identifier:
def get_conditionals(self):
return self.conditionals
- def update(self, module, type = None, info = None, extra=None,
+ def update(self, header, module, type = None, info = None, extra=None,
conditionals=None):
if self.name == debugsym:
print "=> update %s : %s" % (debugsym, (module, type, info,
extra, conditionals))
- if module != None and self.module == None:
+ if header != None and self.header == None:
+ self.set_header(module)
+ if module != None and (self.module == None or self.header == self.module):
self.set_module(module)
if type != None and self.type == None:
self.set_type(type)
@@ -153,7 +161,6 @@ class identifier:
if conditionals != None:
self.set_conditionals(conditionals)
-
class index:
def __init__(self, name = "noname"):
self.name = name
@@ -168,15 +175,15 @@ class index:
self.references = {}
self.info = {}
- def add_ref(self, name, module, static, type, lineno, info=None, extra=None, conditionals = None):
+ def add_ref(self, name, header, module, static, type, lineno, info=None, extra=None, conditionals = None):
if name[0:2] == '__':
return None
d = None
try:
d = self.identifiers[name]
- d.update(module, type, lineno, info, extra, conditionals)
+ d.update(header, module, type, lineno, info, extra, conditionals)
except:
- d = identifier(name, module, type, lineno, info, extra, conditionals)
+ d = identifier(name, header, module, type, lineno, info, extra, conditionals)
self.identifiers[name] = d
if d != None and static == 1:
@@ -190,15 +197,15 @@ class index:
return d
- def add(self, name, module, static, type, lineno, info=None, extra=None, conditionals = None):
+ def add(self, name, header, module, static, type, lineno, info=None, extra=None, conditionals = None):
if name[0:2] == '__':
return None
d = None
try:
d = self.identifiers[name]
- d.update(module, type, lineno, info, extra, conditionals)
+ d.update(header, module, type, lineno, info, extra, conditionals)
except:
- d = identifier(name, module, type, lineno, info, extra, conditionals)
+ d = identifier(name, header, module, type, lineno, info, extra, conditionals)
self.identifiers[name] = d
if d != None and static == 1:
@@ -239,7 +246,7 @@ class index:
del self.macros[id]
if self.functions.has_key(id):
print "function %s from %s redeclared in %s" % (
- id, self.functions[id].module, idx.functions[id].module)
+ id, self.functions[id].header, idx.functions[id].header)
else:
self.functions[id] = idx.functions[id]
self.identifiers[id] = idx.functions[id]
@@ -252,21 +259,21 @@ class index:
del self.macros[id]
if self.variables.has_key(id):
print "variable %s from %s redeclared in %s" % (
- id, self.variables[id].module, idx.variables[id].module)
+ id, self.variables[id].header, idx.variables[id].header)
else:
self.variables[id] = idx.variables[id]
self.identifiers[id] = idx.variables[id]
for id in idx.structs.keys():
if self.structs.has_key(id):
print "struct %s from %s redeclared in %s" % (
- id, self.structs[id].module, idx.structs[id].module)
+ id, self.structs[id].header, idx.structs[id].header)
else:
self.structs[id] = idx.structs[id]
self.identifiers[id] = idx.structs[id]
for id in idx.typedefs.keys():
if self.typedefs.has_key(id):
print "typedef %s from %s redeclared in %s" % (
- id, self.typedefs[id].module, idx.typedefs[id].module)
+ id, self.typedefs[id].header, idx.typedefs[id].header)
else:
self.typedefs[id] = idx.typedefs[id]
self.identifiers[id] = idx.typedefs[id]
@@ -283,14 +290,14 @@ class index:
continue
if self.macros.has_key(id):
print "macro %s from %s redeclared in %s" % (
- id, self.macros[id].module, idx.macros[id].module)
+ id, self.macros[id].header, idx.macros[id].header)
else:
self.macros[id] = idx.macros[id]
self.identifiers[id] = idx.macros[id]
for id in idx.enums.keys():
if self.enums.has_key(id):
print "enum %s from %s redeclared in %s" % (
- id, self.enums[id].module, idx.enums[id].module)
+ id, self.enums[id].header, idx.enums[id].header)
else:
self.enums[id] = idx.enums[id]
self.identifiers[id] = idx.enums[id]
@@ -306,7 +313,7 @@ class index:
print " H: %s" % self.functions[id].conditionals
print " C: %s" % idx.functions[id].conditionals
up = idx.functions[id]
- self.functions[id].update(None, up.type, up.info, up.extra)
+ self.functions[id].update(None, up.module, up.type, up.info, up.extra)
# else:
# print "Function %s from %s is not declared in headers" % (
# id, idx.functions[id].module)
@@ -574,13 +581,21 @@ class CParser:
return self.lexer.getlineno()
def index_add(self, name, module, static, type, info=None, extra = None):
- self.index.add(name, module, static, type, self.lineno(),
- info, extra, self.conditionals)
+ if self.is_header == 1:
+ self.index.add(name, module, module, static, type, self.lineno(),
+ info, extra, self.conditionals)
+ else:
+ self.index.add(name, None, module, static, type, self.lineno(),
+ info, extra, self.conditionals)
def index_add_ref(self, name, module, static, type, info=None,
extra = None):
- self.index.add_ref(name, module, static, type, self.lineno(),
- info, extra, self.conditionals)
+ if self.is_header == 1:
+ self.index.add_ref(name, module, module, static, type,
+ self.lineno(), info, extra, self.conditionals)
+ else:
+ self.index.add_ref(name, None, module, static, type, self.lineno(),
+ info, extra, self.conditionals)
def warning(self, msg):
if self.no_error:
@@ -1603,12 +1618,14 @@ class docBuilder:
module = os.path.basename(file)
if module[-2:] == '.h':
module = module[:-2]
+ elif module[-2:] == '.c':
+ module = module[:-2]
return module
def serialize_enum(self, output, name):
id = self.idx.enums[name]
output.write(" <enum name='%s' file='%s'" % (name,
- self.modulename_file(id.module)))
+ self.modulename_file(id.header)))
if id.info != None:
info = id.info
if info[0] != None and info[0] != '':
@@ -1626,7 +1643,7 @@ class docBuilder:
def serialize_macro(self, output, name):
id = self.idx.macros[name]
output.write(" <macro name='%s' file='%s'>\n" % (name,
- self.modulename_file(id.module)))
+ self.modulename_file(id.header)))
if id.info != None:
try:
(args, desc) = id.info
@@ -1649,7 +1666,7 @@ class docBuilder:
id = self.idx.typedefs[name]
if id.info[0:7] == 'struct ':
output.write(" <struct name='%s' file='%s' type='%s'" % (
- name, self.modulename_file(id.module), id.info))
+ name, self.modulename_file(id.header), id.info))
name = id.info[7:]
if self.idx.structs.has_key(name) and ( \
type(self.idx.structs[name].info) == type(()) or
@@ -1671,24 +1688,25 @@ class docBuilder:
output.write("/>\n");
else :
output.write(" <typedef name='%s' file='%s' type='%s'/>\n" % (
- name, self.modulename_file(id.module), id.info))
+ name, self.modulename_file(id.header), id.info))
def serialize_variable(self, output, name):
id = self.idx.variables[name]
if id.info != None:
output.write(" <variable name='%s' file='%s' type='%s'/>\n" % (
- name, self.modulename_file(id.module), id.info))
+ name, self.modulename_file(id.header), id.info))
else:
output.write(" <variable name='%s' file='%s'/>\n" % (
- name, self.modulename_file(id.module)))
+ name, self.modulename_file(id.header)))
def serialize_function(self, output, name):
id = self.idx.functions[name]
if name == debugsym:
print "=>", id
- output.write(" <%s name='%s' file='%s'>\n" % (id.type, name,
- self.modulename_file(id.module)))
+ output.write(" <%s name='%s' file='%s' module='%s'>\n" % (id.type,
+ name, self.modulename_file(id.header),
+ self.modulename_file(id.module)))
#
# Processing of conditionals modified by Bill 1/1/05
#
@@ -1870,7 +1888,7 @@ class docBuilder:
typ.sort()
for id in typ:
idf = self.idx.identifiers[id]
- module = idf.module
+ module = idf.header
output.write(" <reference name='%s' href='%s'/>\n" % (id,
'html/' + self.basename + '-' +
self.modulename_file(module) + '.html#' +
diff --git a/doc/elfgcchack.xsl b/doc/elfgcchack.xsl
index 5f5cb40..8f24aed 100644
--- a/doc/elfgcchack.xsl
+++ b/doc/elfgcchack.xsl
@@ -15,6 +15,12 @@
* autogenerated with xsltproc doc/elfgcchack.xsl doc/libxml2-api.xml
*/
+#ifdef IN_LIBXML
+#ifdef __GNUC__
+#ifdef PIC
+#ifdef linux
+#if (__GNUC__ == 3 &amp;&amp; __GNUC_MINOR__ >= 3) || (__GNUC__ > 3)
+
#include "libxml/c14n.h"
#include "libxml/catalog.h"
#include "libxml/chvalid.h"
@@ -64,18 +70,37 @@
/* special hot spot not exported ones */
-extern __typeof (__xmlGenericError) __xmlGenericError__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_globals
+#undef __xmlGenericError
extern __typeof (__xmlGenericError) __xmlGenericError __attribute((alias("__xmlGenericError__internal_alias")));
+#else
+#ifndef __xmlGenericError
+extern __typeof (__xmlGenericError) __xmlGenericError__internal_alias __attribute((visibility("hidden")));
#define __xmlGenericError __xmlGenericError__internal_alias
+#endif
+#endif
-extern __typeof (__xmlGenericErrorContext) __xmlGenericErrorContext__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_globals
+#undef __xmlGenericErrorContext
extern __typeof (__xmlGenericErrorContext) __xmlGenericErrorContext __attribute((alias("__xmlGenericErrorContext__internal_alias")));
+#else
+#ifndef __xmlGenericErrorContext
+extern __typeof (__xmlGenericErrorContext) __xmlGenericErrorContext__internal_alias __attribute((visibility("hidden")));
#define __xmlGenericErrorContext __xmlGenericErrorContext__internal_alias
+#endif
+#endif
/* list generated from libxml2-api.xml */
-
</xsl:text>
<xsl:apply-templates select="/api/symbols/function"/>
+ <xsl:text>
+#endif
+#endif
+#endif
+#endif
+#endif
+
+</xsl:text>
</xsl:template>
<xsl:template match="function">
@@ -83,25 +108,37 @@ extern __typeof (__xmlGenericErrorContext) __xmlGenericErrorContext __attribute(
<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:text>#ifdef bottom_</xsl:text>
+ <xsl:value-of select="string(@module)"/>
+ <xsl:text>
+#undef </xsl:text>
+ <xsl:value-of select="$str"/>
+ <xsl:text>
+extern __typeof (</xsl:text>
<xsl:value-of select="$str"/>
<xsl:text>) </xsl:text>
+ <xsl:value-of select="$str"/>
+ <xsl:text> __attribute((alias("</xsl:text>
<xsl:value-of select="$alias"/>
- <xsl:text> __attribute((visibility("hidden")));
+ <xsl:text>")));
+#else
+#ifndef </xsl:text>
+ <xsl:value-of select="$str"/>
+ <xsl:text>
</xsl:text>
<xsl:text>extern __typeof (</xsl:text>
<xsl:value-of select="$str"/>
<xsl:text>) </xsl:text>
- <xsl:value-of select="$str"/>
- <xsl:text> __attribute((alias("</xsl:text>
<xsl:value-of select="$alias"/>
- <xsl:text>")));
+ <xsl:text> __attribute((visibility("hidden")));
</xsl:text>
<xsl:text>#define </xsl:text>
<xsl:value-of select="$str"/>
<xsl:text> </xsl:text>
<xsl:value-of select="$alias"/>
<xsl:text>
+#endif
+#endif
</xsl:text>
<xsl:apply-templates select="cond" mode="end"/>
<xsl:text>
diff --git a/doc/examples/Makefile.am b/doc/examples/Makefile.am
index 97edc55..0bc8934 100644
--- a/doc/examples/Makefile.am
+++ b/doc/examples/Makefile.am
@@ -15,39 +15,19 @@ install-data-local:
$(mkinstalldirs) $(DESTDIR)$(HTML_DIR)
-@INSTALL@ -m 0644 $(srcdir)/*.html $(srcdir)/*.c $(srcdir)/*.xml $(srcdir)/*.xsl $(srcdir)/*.res $(DESTDIR)$(HTML_DIR)
-EXTRA_DIST=examples.xsl index.py test1.xml examples.xml test2.xml writer.xml test3.xml tst.xml reader1.res reader3.res tree1.res tree2.res io1.res io2.res xpath1.res xpath2.res reader4.res
+EXTRA_DIST=examples.xsl index.py test3.xml tst.xml test2.xml writer.xml test1.xml examples.xml xpath1.res tree2.res reader3.res tree1.res reader1.res xpath2.res reader4.res io2.res io1.res
-noinst_PROGRAMS=xpath1 parse1 parse2 tree1 tree2 testWriter reader1 reader2 io1 parse3 parse4 io2 xpath2 reader4 reader3
+noinst_PROGRAMS=reader3 io2 reader1 reader2 reader4 testWriter parse3 tree2 tree1 xpath2 parse1 xpath1 io1 parse4 parse2
-xpath1_SOURCES=xpath1.c
-xpath1_LDFLAGS=
-xpath1_DEPENDENCIES= $(DEPS)
-xpath1_LDADD= @RDL_LIBS@ $(LDADDS)
-
-parse1_SOURCES=parse1.c
-parse1_LDFLAGS=
-parse1_DEPENDENCIES= $(DEPS)
-parse1_LDADD= @RDL_LIBS@ $(LDADDS)
-
-parse2_SOURCES=parse2.c
-parse2_LDFLAGS=
-parse2_DEPENDENCIES= $(DEPS)
-parse2_LDADD= @RDL_LIBS@ $(LDADDS)
-
-tree1_SOURCES=tree1.c
-tree1_LDFLAGS=
-tree1_DEPENDENCIES= $(DEPS)
-tree1_LDADD= @RDL_LIBS@ $(LDADDS)
-
-tree2_SOURCES=tree2.c
-tree2_LDFLAGS=
-tree2_DEPENDENCIES= $(DEPS)
-tree2_LDADD= @RDL_LIBS@ $(LDADDS)
+reader3_SOURCES=reader3.c
+reader3_LDFLAGS=
+reader3_DEPENDENCIES= $(DEPS)
+reader3_LDADD= @RDL_LIBS@ $(LDADDS)
-testWriter_SOURCES=testWriter.c
-testWriter_LDFLAGS=
-testWriter_DEPENDENCIES= $(DEPS)
-testWriter_LDADD= @RDL_LIBS@ $(LDADDS)
+io2_SOURCES=io2.c
+io2_LDFLAGS=
+io2_DEPENDENCIES= $(DEPS)
+io2_LDADD= @RDL_LIBS@ $(LDADDS)
reader1_SOURCES=reader1.c
reader1_LDFLAGS=
@@ -59,40 +39,60 @@ reader2_LDFLAGS=
reader2_DEPENDENCIES= $(DEPS)
reader2_LDADD= @RDL_LIBS@ $(LDADDS)
-io1_SOURCES=io1.c
-io1_LDFLAGS=
-io1_DEPENDENCIES= $(DEPS)
-io1_LDADD= @RDL_LIBS@ $(LDADDS)
+reader4_SOURCES=reader4.c
+reader4_LDFLAGS=
+reader4_DEPENDENCIES= $(DEPS)
+reader4_LDADD= @RDL_LIBS@ $(LDADDS)
+
+testWriter_SOURCES=testWriter.c
+testWriter_LDFLAGS=
+testWriter_DEPENDENCIES= $(DEPS)
+testWriter_LDADD= @RDL_LIBS@ $(LDADDS)
parse3_SOURCES=parse3.c
parse3_LDFLAGS=
parse3_DEPENDENCIES= $(DEPS)
parse3_LDADD= @RDL_LIBS@ $(LDADDS)
-parse4_SOURCES=parse4.c
-parse4_LDFLAGS=
-parse4_DEPENDENCIES= $(DEPS)
-parse4_LDADD= @RDL_LIBS@ $(LDADDS)
+tree2_SOURCES=tree2.c
+tree2_LDFLAGS=
+tree2_DEPENDENCIES= $(DEPS)
+tree2_LDADD= @RDL_LIBS@ $(LDADDS)
-io2_SOURCES=io2.c
-io2_LDFLAGS=
-io2_DEPENDENCIES= $(DEPS)
-io2_LDADD= @RDL_LIBS@ $(LDADDS)
+tree1_SOURCES=tree1.c
+tree1_LDFLAGS=
+tree1_DEPENDENCIES= $(DEPS)
+tree1_LDADD= @RDL_LIBS@ $(LDADDS)
xpath2_SOURCES=xpath2.c
xpath2_LDFLAGS=
xpath2_DEPENDENCIES= $(DEPS)
xpath2_LDADD= @RDL_LIBS@ $(LDADDS)
-reader4_SOURCES=reader4.c
-reader4_LDFLAGS=
-reader4_DEPENDENCIES= $(DEPS)
-reader4_LDADD= @RDL_LIBS@ $(LDADDS)
+parse1_SOURCES=parse1.c
+parse1_LDFLAGS=
+parse1_DEPENDENCIES= $(DEPS)
+parse1_LDADD= @RDL_LIBS@ $(LDADDS)
-reader3_SOURCES=reader3.c
-reader3_LDFLAGS=
-reader3_DEPENDENCIES= $(DEPS)
-reader3_LDADD= @RDL_LIBS@ $(LDADDS)
+xpath1_SOURCES=xpath1.c
+xpath1_LDFLAGS=
+xpath1_DEPENDENCIES= $(DEPS)
+xpath1_LDADD= @RDL_LIBS@ $(LDADDS)
+
+io1_SOURCES=io1.c
+io1_LDFLAGS=
+io1_DEPENDENCIES= $(DEPS)
+io1_LDADD= @RDL_LIBS@ $(LDADDS)
+
+parse4_SOURCES=parse4.c
+parse4_LDFLAGS=
+parse4_DEPENDENCIES= $(DEPS)
+parse4_LDADD= @RDL_LIBS@ $(LDADDS)
+
+parse2_SOURCES=parse2.c
+parse2_LDFLAGS=
+parse2_DEPENDENCIES= $(DEPS)
+parse2_LDADD= @RDL_LIBS@ $(LDADDS)
valgrind:
$(MAKE) CHECKER='valgrind' tests
@@ -100,35 +100,35 @@ valgrind:
tests: $(noinst_PROGRAMS)
@(echo '## examples regression tests')
@(echo > .memdump)
- @($(CHECKER) ././xpath1 test3.xml '//child2' > xpath1.tmp ; diff xpath1.tmp xpath1.res ; rm xpath1.tmp)
+ @($(CHECKER) ./reader3 > reader3.tmp ; diff reader3.tmp reader3.res ; rm reader3.tmp)
@(grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0" ; exit 0)
- @($(CHECKER) ./parse1 test1.xml)
+ @($(CHECKER) ./io2 > io2.tmp ; diff io2.tmp io2.res ; rm -f io2.tmp)
@(grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0" ; exit 0)
- @($(CHECKER) ./parse2 test2.xml)
+ @($(CHECKER) ./reader1 test2.xml > reader1.tmp ; diff reader1.tmp reader1.res ; rm reader1.tmp)
@(grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0" ; exit 0)
- @($(CHECKER) ./tree1 test2.xml > tree1.tmp ; diff tree1.tmp tree1.res ; rm tree1.tmp)
+ @($(CHECKER) ./reader2 test2.xml > reader1.tmp ; diff reader1.tmp reader1.res ; rm reader1.tmp)
@(grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0" ; exit 0)
- @($(CHECKER) ./tree2 > tree2.tmp ; diff tree2.tmp tree2.res ; rm tree2.tmp)
+ @($(CHECKER) ./reader4 test1.xml test2.xml test3.xml > reader4.tmp ; diff reader4.tmp reader4.res ; rm reader4.tmp)
@(grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0" ; exit 0)
@($(CHECKER) ./testWriter ; for i in 1 2 3 4 ; do diff writer.xml writer$$i.res ; done ; rm writer*.res)
@(grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0" ; exit 0)
- @($(CHECKER) ./reader1 test2.xml > reader1.tmp ; diff reader1.tmp reader1.res ; rm reader1.tmp)
+ @($(CHECKER) ./parse3)
@(grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0" ; exit 0)
- @($(CHECKER) ./reader2 test2.xml > reader1.tmp ; diff reader1.tmp reader1.res ; rm reader1.tmp)
+ @($(CHECKER) ./tree2 > tree2.tmp ; diff tree2.tmp tree2.res ; rm tree2.tmp)
@(grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0" ; exit 0)
- @($(CHECKER) ./io1 > io1.tmp ; diff io1.tmp io1.res ; rm -f io1.tmp)
+ @($(CHECKER) ./tree1 test2.xml > tree1.tmp ; diff tree1.tmp tree1.res ; rm tree1.tmp)
@(grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0" ; exit 0)
- @($(CHECKER) ./parse3)
+ @($(CHECKER) ./xpath2 test3.xml '//discarded' discarded > xpath2.tmp ; diff xpath2.tmp xpath2.res ; rm xpath2.tmp)
@(grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0" ; exit 0)
- @($(CHECKER) ./parse4 test3.xml)
+ @($(CHECKER) ./parse1 test1.xml)
@(grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0" ; exit 0)
- @($(CHECKER) ./io2 > io2.tmp ; diff io2.tmp io2.res ; rm -f io2.tmp)
+ @($(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)
- @($(CHECKER) ./xpath2 test3.xml '//discarded' discarded > xpath2.tmp ; diff xpath2.tmp xpath2.res ; rm xpath2.tmp)
+ @($(CHECKER) ./io1 > io1.tmp ; diff io1.tmp io1.res ; rm -f io1.tmp)
@(grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0" ; exit 0)
- @($(CHECKER) ./reader4 test1.xml test2.xml test3.xml > reader4.tmp ; diff reader4.tmp reader4.res ; rm reader4.tmp)
+ @($(CHECKER) ./parse4 test3.xml)
@(grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0" ; exit 0)
- @($(CHECKER) ./reader3 > reader3.tmp ; diff reader3.tmp reader3.res ; rm reader3.tmp)
+ @($(CHECKER) ./parse2 test2.xml)
@(grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0" ; exit 0)
diff --git a/doc/examples/Makefile.in b/doc/examples/Makefile.in
index 4e50e30..e020575 100644
--- a/doc/examples/Makefile.in
+++ b/doc/examples/Makefile.in
@@ -38,11 +38,11 @@ PRE_UNINSTALL = :
POST_UNINSTALL = :
build_triplet = @build@
host_triplet = @host@
-noinst_PROGRAMS = xpath1$(EXEEXT) parse1$(EXEEXT) parse2$(EXEEXT) \
- tree1$(EXEEXT) tree2$(EXEEXT) testWriter$(EXEEXT) \
- reader1$(EXEEXT) reader2$(EXEEXT) io1$(EXEEXT) parse3$(EXEEXT) \
- parse4$(EXEEXT) io2$(EXEEXT) xpath2$(EXEEXT) reader4$(EXEEXT) \
- reader3$(EXEEXT)
+noinst_PROGRAMS = reader3$(EXEEXT) io2$(EXEEXT) reader1$(EXEEXT) \
+ reader2$(EXEEXT) reader4$(EXEEXT) testWriter$(EXEEXT) \
+ parse3$(EXEEXT) tree2$(EXEEXT) tree1$(EXEEXT) xpath2$(EXEEXT) \
+ parse1$(EXEEXT) xpath1$(EXEEXT) io1$(EXEEXT) parse4$(EXEEXT) \
+ parse2$(EXEEXT)
subdir = doc/examples
DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
@@ -322,31 +322,15 @@ target_alias = @target_alias@
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@
-EXTRA_DIST = examples.xsl index.py test1.xml examples.xml test2.xml writer.xml test3.xml tst.xml reader1.res reader3.res tree1.res tree2.res io1.res io2.res xpath1.res xpath2.res reader4.res
-xpath1_SOURCES = xpath1.c
-xpath1_LDFLAGS =
-xpath1_DEPENDENCIES = $(DEPS)
-xpath1_LDADD = @RDL_LIBS@ $(LDADDS)
-parse1_SOURCES = parse1.c
-parse1_LDFLAGS =
-parse1_DEPENDENCIES = $(DEPS)
-parse1_LDADD = @RDL_LIBS@ $(LDADDS)
-parse2_SOURCES = parse2.c
-parse2_LDFLAGS =
-parse2_DEPENDENCIES = $(DEPS)
-parse2_LDADD = @RDL_LIBS@ $(LDADDS)
-tree1_SOURCES = tree1.c
-tree1_LDFLAGS =
-tree1_DEPENDENCIES = $(DEPS)
-tree1_LDADD = @RDL_LIBS@ $(LDADDS)
-tree2_SOURCES = tree2.c
-tree2_LDFLAGS =
-tree2_DEPENDENCIES = $(DEPS)
-tree2_LDADD = @RDL_LIBS@ $(LDADDS)
-testWriter_SOURCES = testWriter.c
-testWriter_LDFLAGS =
-testWriter_DEPENDENCIES = $(DEPS)
-testWriter_LDADD = @RDL_LIBS@ $(LDADDS)
+EXTRA_DIST = examples.xsl index.py test3.xml tst.xml test2.xml writer.xml test1.xml examples.xml xpath1.res tree2.res reader3.res tree1.res reader1.res xpath2.res reader4.res io2.res io1.res
+reader3_SOURCES = reader3.c
+reader3_LDFLAGS =
+reader3_DEPENDENCIES = $(DEPS)
+reader3_LDADD = @RDL_LIBS@ $(LDADDS)
+io2_SOURCES = io2.c
+io2_LDFLAGS =
+io2_DEPENDENCIES = $(DEPS)
+io2_LDADD = @RDL_LIBS@ $(LDADDS)
reader1_SOURCES = reader1.c
reader1_LDFLAGS =
reader1_DEPENDENCIES = $(DEPS)
@@ -355,34 +339,50 @@ reader2_SOURCES = reader2.c
reader2_LDFLAGS =
reader2_DEPENDENCIES = $(DEPS)
reader2_LDADD = @RDL_LIBS@ $(LDADDS)
-io1_SOURCES = io1.c
-io1_LDFLAGS =
-io1_DEPENDENCIES = $(DEPS)
-io1_LDADD = @RDL_LIBS@ $(LDADDS)
+reader4_SOURCES = reader4.c
+reader4_LDFLAGS =
+reader4_DEPENDENCIES = $(DEPS)
+reader4_LDADD = @RDL_LIBS@ $(LDADDS)
+testWriter_SOURCES = testWriter.c
+testWriter_LDFLAGS =
+testWriter_DEPENDENCIES = $(DEPS)
+testWriter_LDADD = @RDL_LIBS@ $(LDADDS)
parse3_SOURCES = parse3.c
parse3_LDFLAGS =
parse3_DEPENDENCIES = $(DEPS)
parse3_LDADD = @RDL_LIBS@ $(LDADDS)
-parse4_SOURCES = parse4.c
-parse4_LDFLAGS =
-parse4_DEPENDENCIES = $(DEPS)
-parse4_LDADD = @RDL_LIBS@ $(LDADDS)
-io2_SOURCES = io2.c
-io2_LDFLAGS =
-io2_DEPENDENCIES = $(DEPS)
-io2_LDADD = @RDL_LIBS@ $(LDADDS)
+tree2_SOURCES = tree2.c
+tree2_LDFLAGS =
+tree2_DEPENDENCIES = $(DEPS)
+tree2_LDADD = @RDL_LIBS@ $(LDADDS)
+tree1_SOURCES = tree1.c
+tree1_LDFLAGS =
+tree1_DEPENDENCIES = $(DEPS)
+tree1_LDADD = @RDL_LIBS@ $(LDADDS)
xpath2_SOURCES = xpath2.c
xpath2_LDFLAGS =
xpath2_DEPENDENCIES = $(DEPS)
xpath2_LDADD = @RDL_LIBS@ $(LDADDS)
-reader4_SOURCES = reader4.c
-reader4_LDFLAGS =
-reader4_DEPENDENCIES = $(DEPS)
-reader4_LDADD = @RDL_LIBS@ $(LDADDS)
-reader3_SOURCES = reader3.c
-reader3_LDFLAGS =
-reader3_DEPENDENCIES = $(DEPS)
-reader3_LDADD = @RDL_LIBS@ $(LDADDS)
+parse1_SOURCES = parse1.c
+parse1_LDFLAGS =
+parse1_DEPENDENCIES = $(DEPS)
+parse1_LDADD = @RDL_LIBS@ $(LDADDS)
+xpath1_SOURCES = xpath1.c
+xpath1_LDFLAGS =
+xpath1_DEPENDENCIES = $(DEPS)
+xpath1_LDADD = @RDL_LIBS@ $(LDADDS)
+io1_SOURCES = io1.c
+io1_LDFLAGS =
+io1_DEPENDENCIES = $(DEPS)
+io1_LDADD = @RDL_LIBS@ $(LDADDS)
+parse4_SOURCES = parse4.c
+parse4_LDFLAGS =
+parse4_DEPENDENCIES = $(DEPS)
+parse4_LDADD = @RDL_LIBS@ $(LDADDS)
+parse2_SOURCES = parse2.c
+parse2_LDFLAGS =
+parse2_DEPENDENCIES = $(DEPS)
+parse2_LDADD = @RDL_LIBS@ $(LDADDS)
all: all-am
.SUFFIXES:
@@ -707,35 +707,35 @@ valgrind:
tests: $(noinst_PROGRAMS)
@(echo '## examples regression tests')
@(echo > .memdump)
- @($(CHECKER) ././xpath1 test3.xml '//child2' > xpath1.tmp ; diff xpath1.tmp xpath1.res ; rm xpath1.tmp)
+ @($(CHECKER) ./reader3 > reader3.tmp ; diff reader3.tmp reader3.res ; rm reader3.tmp)
@(grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0" ; exit 0)
- @($(CHECKER) ./parse1 test1.xml)
+ @($(CHECKER) ./io2 > io2.tmp ; diff io2.tmp io2.res ; rm -f io2.tmp)
@(grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0" ; exit 0)
- @($(CHECKER) ./parse2 test2.xml)
+ @($(CHECKER) ./reader1 test2.xml > reader1.tmp ; diff reader1.tmp reader1.res ; rm reader1.tmp)
@(grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0" ; exit 0)
- @($(CHECKER) ./tree1 test2.xml > tree1.tmp ; diff tree1.tmp tree1.res ; rm tree1.tmp)
+ @($(CHECKER) ./reader2 test2.xml > reader1.tmp ; diff reader1.tmp reader1.res ; rm reader1.tmp)
@(grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0" ; exit 0)
- @($(CHECKER) ./tree2 > tree2.tmp ; diff tree2.tmp tree2.res ; rm tree2.tmp)
+ @($(CHECKER) ./reader4 test1.xml test2.xml test3.xml > reader4.tmp ; diff reader4.tmp reader4.res ; rm reader4.tmp)
@(grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0" ; exit 0)
@($(CHECKER) ./testWriter ; for i in 1 2 3 4 ; do diff writer.xml writer$$i.res ; done ; rm writer*.res)
@(grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0" ; exit 0)
- @($(CHECKER) ./reader1 test2.xml > reader1.tmp ; diff reader1.tmp reader1.res ; rm reader1.tmp)
+ @($(CHECKER) ./parse3)
@(grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0" ; exit 0)
- @($(CHECKER) ./reader2 test2.xml > reader1.tmp ; diff reader1.tmp reader1.res ; rm reader1.tmp)
+ @($(CHECKER) ./tree2 > tree2.tmp ; diff tree2.tmp tree2.res ; rm tree2.tmp)
@(grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0" ; exit 0)
- @($(CHECKER) ./io1 > io1.tmp ; diff io1.tmp io1.res ; rm -f io1.tmp)
+ @($(CHECKER) ./tree1 test2.xml > tree1.tmp ; diff tree1.tmp tree1.res ; rm tree1.tmp)
@(grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0" ; exit 0)
- @($(CHECKER) ./parse3)
+ @($(CHECKER) ./xpath2 test3.xml '//discarded' discarded > xpath2.tmp ; diff xpath2.tmp xpath2.res ; rm xpath2.tmp)
@(grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0" ; exit 0)
- @($(CHECKER) ./parse4 test3.xml)
+ @($(CHECKER) ./parse1 test1.xml)
@(grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0" ; exit 0)
- @($(CHECKER) ./io2 > io2.tmp ; diff io2.tmp io2.res ; rm -f io2.tmp)
+ @($(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)
- @($(CHECKER) ./xpath2 test3.xml '//discarded' discarded > xpath2.tmp ; diff xpath2.tmp xpath2.res ; rm xpath2.tmp)
+ @($(CHECKER) ./io1 > io1.tmp ; diff io1.tmp io1.res ; rm -f io1.tmp)
@(grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0" ; exit 0)
- @($(CHECKER) ./reader4 test1.xml test2.xml test3.xml > reader4.tmp ; diff reader4.tmp reader4.res ; rm reader4.tmp)
+ @($(CHECKER) ./parse4 test3.xml)
@(grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0" ; exit 0)
- @($(CHECKER) ./reader3 > reader3.tmp ; diff reader3.tmp reader3.res ; rm reader3.tmp)
+ @($(CHECKER) ./parse2 test2.xml)
@(grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0" ; exit 0)
# Tell versions [3.59,3.63) of GNU make to not export all variables.
# Otherwise a system limit (for SysV at least) may be exceeded.
diff --git a/doc/examples/examples.xml b/doc/examples/examples.xml
index 7a683cd..91122ad 100644
--- a/doc/examples/examples.xml
+++ b/doc/examples/examples.xml
@@ -1,135 +1,136 @@
<examples>
- <example filename='xpath1.c'>
- <synopsis>Evaluate XPath expression and prints result node set.</synopsis>
- <purpose>Shows how to evaluate XPath expression and register known namespaces in XPath context.</purpose>
- <usage>xpath1 &lt;xml-file&gt; &lt;xpath-expr&gt; [&lt;known-ns-list&gt;]</usage>
- <test>./xpath1 test3.xml &apos;//child2&apos; &gt; xpath1.tmp ; diff xpath1.tmp xpath1.res ; rm xpath1.tmp</test>
- <author>Aleksey Sanin</author>
+ <example filename='reader3.c'>
+ <synopsis>Show how to extract subdocuments with xmlReader</synopsis>
+ <purpose>Demonstrate the use of xmlTextReaderPreservePattern() to parse an XML file with the xmlReader while collecting only some subparts of the document. (Note that the XMLReader functions require libxml2 version later than 2.6.)</purpose>
+ <usage>reader3</usage>
+ <test>reader3 &gt; reader3.tmp ; diff reader3.tmp reader3.res ; rm reader3.tmp</test>
+ <author>Daniel Veillard</author>
<copy>see Copyright for the status of this software. </copy>
- <section>XPath</section>
+ <section>xmlReader</section>
<includes>
- <include>&lt;libxml/parser.h&gt;</include>
- <include>&lt;libxml/xpath.h&gt;</include>
- <include>&lt;libxml/xpathInternals.h&gt;</include>
- <include>&lt;libxml/tree.h&gt;</include>
+ <include>&lt;libxml/xmlreader.h&gt;</include>
</includes>
<uses>
- <enum line='229' file='tree' name='XML_ELEMENT_NODE'/>
- <typedef line='88' file='xpath' name='xmlXPathObjectPtr'/>
- <function line='54' file='xmlmemory' name='xmlMemoryDump'/>
- <function line='117' file='xpath' name='xmlXPathEvalExpression'/>
- <function line='94' file='parser' name='xmlParseFile'/>
- <function line='186' file='xpathInternals' name='xmlXPathRegisterNs'/>
- <function line='129' file='xpath' name='xmlXPathFreeObject'/>
- <variable line='193' file='globals' name='xmlFree'/>
- <typedef line='218' file='tree' name='xmlNsPtr'/>
- <function line='101' file='xpath' name='xmlXPathNewContext'/>
- <function line='49' file='parser' name='xmlCleanupParser'/>
- <macro line='43' file='xmlversion' name='LIBXML_TEST_VERSION'/>
- <typedef line='87' file='xpath' name='xmlXPathContextPtr'/>
- <function line='130' file='xpath' name='xmlXPathFreeContext'/>
- <function line='39' file='parser' name='xmlInitParser'/>
- <function line='156' file='xmlstring' name='xmlStrdup'/>
- <function line='131' file='tree' name='xmlFreeDoc'/>
- <function line='180' file='xmlstring' name='xmlStrchr'/>
- <typedef line='206' file='tree' name='xmlNodePtr'/>
- <typedef line='86' file='tree' name='xmlDocPtr'/>
- <enum line='217' file='tree' name='XML_NAMESPACE_DECL'/>
+ <function line='106' file='parser' name='xmlCleanupParser'/>
+ <typedef line='31' file='xmlreader' name='xmlTextReaderPtr'/>
+ <function line='110' file='xmlmemory' name='xmlMemoryDump'/>
+ <function line='99' file='tree' name='xmlFreeDoc'/>
+ <function line='65' file='xmlreader' name='xmlFreeTextReader'/>
+ <macro line='90' file='xmlversion' name='LIBXML_TEST_VERSION'/>
+ <function line='95' file='tree' name='xmlDocDump'/>
+ <function line='51' file='xmlreader' name='xmlTextReaderRead'/>
+ <function line='61' file='xmlreader' name='xmlTextReaderCurrentDoc'/>
+ <function line='42' file='xmlreader' name='xmlTextReaderPreservePattern'/>
+ <function line='37' file='xmlreader' name='xmlReaderForFile'/>
+ <typedef line='76' file='tree' name='xmlDocPtr'/>
</uses>
</example>
- <example filename='parse1.c'>
- <synopsis>Parse an XML file to a tree and free it</synopsis>
- <purpose>Demonstrate the use of xmlReadFile() to read an XML file into a tree and and xmlFreeDoc() to free the resulting tree</purpose>
- <usage>parse1 test1.xml</usage>
- <test>parse1 test1.xml</test>
- <author>Daniel Veillard</author>
+ <example filename='io2.c'>
+ <synopsis>Output to char buffer</synopsis>
+ <purpose>Demonstrate the use of xmlDocDumpMemory to output document to a character buffer</purpose>
+ <usage>io2</usage>
+ <test>io2 &gt; io2.tmp ; diff io2.tmp io2.res ; rm -f io2.tmp</test>
+ <author>John Fleck</author>
<copy>see Copyright for the status of this software. </copy>
- <section>Parsing</section>
+ <section>InputOutput</section>
<includes>
- <include>&lt;libxml/tree.h&gt;</include>
<include>&lt;libxml/parser.h&gt;</include>
</includes>
<uses>
- <function line='54' file='xmlmemory' name='xmlMemoryDump'/>
- <function line='50' file='parser' name='xmlCleanupParser'/>
- <macro line='45' file='xmlversion' name='LIBXML_TEST_VERSION'/>
- <typedef line='24' file='tree' name='xmlDocPtr'/>
- <function line='31' file='tree' name='xmlFreeDoc'/>
- <function line='26' file='parser' name='xmlReadFile'/>
+ <function line='29' file='tree' name='xmlNodeSetContent'/>
+ <function line='36' file='tree' name='xmlDocDumpFormatMemory'/>
+ <variable line='42' file='globals' name='xmlFree'/>
+ <function line='30' file='tree' name='xmlDocSetRootElement'/>
+ <typedef line='20' file='tree' name='xmlDocPtr'/>
+ <function line='43' file='tree' name='xmlFreeDoc'/>
+ <typedef line='19' file='tree' name='xmlNodePtr'/>
+ <function line='27' file='tree' name='xmlNewDoc'/>
+ <function line='28' file='tree' name='xmlNewNode'/>
</uses>
</example>
- <example filename='parse2.c'>
- <synopsis>Parse and validate an XML file to a tree and free the result</synopsis>
- <purpose>Create a parser context for an XML file, then parse and validate the file, creating a tree, check the validation result and xmlFreeDoc() to free the resulting tree.</purpose>
- <usage>parse2 test2.xml</usage>
- <test>parse2 test2.xml</test>
+ <example filename='reader1.c'>
+ <synopsis>Parse an XML file with an xmlReader</synopsis>
+ <purpose>Demonstrate the use of xmlReaderForFile() to parse an XML file and dump the informations about the nodes found in the process. (Note that the XMLReader functions require libxml2 version later than 2.6.)</purpose>
+ <usage>reader1 &lt;filename&gt;</usage>
+ <test>reader1 test2.xml &gt; reader1.tmp ; diff reader1.tmp reader1.res ; rm reader1.tmp</test>
<author>Daniel Veillard</author>
<copy>see Copyright for the status of this software. </copy>
- <section>Parsing</section>
+ <section>xmlReader</section>
<includes>
- <include>&lt;libxml/tree.h&gt;</include>
- <include>&lt;libxml/parser.h&gt;</include>
+ <include>&lt;libxml/xmlreader.h&gt;</include>
</includes>
<uses>
- <function line='47' file='parser' name='xmlFreeParserCtxt'/>
- <enum line='35' file='parser' name='XML_PARSE_DTDVALID'/>
- <function line='29' file='parser' name='xmlNewParserCtxt'/>
- <typedef line='25' file='tree' name='xmlParserCtxtPtr'/>
- <function line='35' file='parser' name='xmlCtxtReadFile'/>
- <function line='66' file='parser' name='xmlCleanupParser'/>
- <macro line='61' file='xmlversion' name='LIBXML_TEST_VERSION'/>
- <function line='44' file='tree' name='xmlFreeDoc'/>
- <typedef line='26' file='tree' name='xmlDocPtr'/>
- <function line='70' file='xmlmemory' name='xmlMemoryDump'/>
+ <function line='44' file='xmlstring' name='xmlStrlen'/>
+ <function line='94' file='parser' name='xmlCleanupParser'/>
+ <function line='37' file='xmlreader' name='xmlTextReaderNodeType'/>
+ <typedef line='59' file='xmlreader' name='xmlTextReaderPtr'/>
+ <function line='98' file='xmlmemory' name='xmlMemoryDump'/>
+ <function line='33' file='xmlreader' name='xmlTextReaderConstValue'/>
+ <function line='36' file='xmlreader' name='xmlTextReaderDepth'/>
+ <function line='69' file='xmlreader' name='xmlFreeTextReader'/>
+ <macro line='89' file='xmlversion' name='LIBXML_TEST_VERSION'/>
+ <function line='29' file='xmlreader' name='xmlTextReaderConstName'/>
+ <function line='40' file='xmlreader' name='xmlTextReaderHasValue'/>
+ <function line='67' file='xmlreader' name='xmlTextReaderRead'/>
+ <function line='39' file='xmlreader' name='xmlTextReaderIsEmptyElement'/>
+ <function line='62' file='xmlreader' name='xmlReaderForFile'/>
</uses>
</example>
- <example filename='tree1.c'>
- <synopsis>Navigates a tree to print element names</synopsis>
- <purpose>Parse a file to a tree, use xmlDocGetRootElement() to get the root element, then walk the document and print all the element name in document order.</purpose>
- <usage>tree1 filename_or_URL</usage>
- <test>tree1 test2.xml &gt; tree1.tmp ; diff tree1.tmp tree1.res ; rm tree1.tmp</test>
- <author>Dodji Seketeli</author>
+ <example filename='reader2.c'>
+ <synopsis>Parse and validate an XML file with an xmlReader</synopsis>
+ <purpose>Demonstrate the use of xmlReaderForFile() to parse an XML file validating the content in the process and activating options like entities substitution, and DTD attributes defaulting. (Note that the XMLReader functions require libxml2 version later than 2.6.)</purpose>
+ <usage>reader2 &lt;valid_xml_filename&gt;</usage>
+ <test>reader2 test2.xml &gt; reader1.tmp ; diff reader1.tmp reader1.res ; rm reader1.tmp</test>
+ <author>Daniel Veillard</author>
<copy>see Copyright for the status of this software. </copy>
- <section>Tree</section>
+ <section>xmlReader</section>
<includes>
- <include>&lt;libxml/tree.h&gt;</include>
- <include>&lt;libxml/parser.h&gt;</include>
+ <include>&lt;libxml/xmlreader.h&gt;</include>
</includes>
<uses>
- <enum line='36' file='tree' name='XML_ELEMENT_NODE'/>
- <function line='74' file='tree' name='xmlDocGetRootElement'/>
- <function line='85' file='parser' name='xmlCleanupParser'/>
- <macro line='67' file='xmlversion' name='LIBXML_TEST_VERSION'/>
- <function line='79' file='tree' name='xmlFreeDoc'/>
- <function line='67' file='parser' name='xmlReadFile'/>
+ <function line='45' file='xmlstring' name='xmlStrlen'/>
+ <function line='109' file='parser' name='xmlCleanupParser'/>
+ <function line='38' file='xmlreader' name='xmlTextReaderNodeType'/>
+ <typedef line='60' file='xmlreader' name='xmlTextReaderPtr'/>
+ <function line='113' file='xmlmemory' name='xmlMemoryDump'/>
+ <function line='34' file='xmlreader' name='xmlTextReaderConstValue'/>
+ <enum line='70' file='parser' name='XML_PARSE_NOENT'/>
+ <function line='37' file='xmlreader' name='xmlTextReaderDepth'/>
+ <enum line='71' file='parser' name='XML_PARSE_DTDVALID'/>
+ <enum line='69' file='parser' name='XML_PARSE_DTDATTR'/>
+ <function line='84' file='xmlreader' name='xmlFreeTextReader'/>
+ <macro line='104' file='xmlversion' name='LIBXML_TEST_VERSION'/>
+ <function line='30' file='xmlreader' name='xmlTextReaderConstName'/>
+ <function line='41' file='xmlreader' name='xmlTextReaderHasValue'/>
+ <function line='76' file='xmlreader' name='xmlTextReaderRead'/>
+ <function line='40' file='xmlreader' name='xmlTextReaderIsEmptyElement'/>
+ <function line='68' file='xmlreader' name='xmlReaderForFile'/>
+ <function line='81' file='xmlreader' name='xmlTextReaderIsValid'/>
</uses>
</example>
- <example filename='tree2.c'>
- <synopsis>Creates a tree</synopsis>
- <purpose>Shows how to create document, nodes and dump it to stdout or file.</purpose>
- <usage>tree2 &lt;filename&gt; -Default output: stdout</usage>
- <test>tree2 &gt; tree2.tmp ; diff tree2.tmp tree2.res ; rm tree2.tmp</test>
- <author>Lucas Brasilino &lt;brasilino@recife.pe.gov.br&gt;</author>
- <copy>see Copyright for the status of this software </copy>
- <section>Tree</section>
+ <example filename='reader4.c'>
+ <synopsis>Parse multiple XML files reusing an xmlReader</synopsis>
+ <purpose>Demonstrate the use of xmlReaderForFile() and xmlReaderNewFile to parse XML files while reusing the reader object and parser context. (Note that the XMLReader functions require libxml2 version later than 2.6.)</purpose>
+ <usage>reader4 &lt;filename&gt; [ filename ... ]</usage>
+ <test>reader4 test1.xml test2.xml test3.xml &gt; reader4.tmp ; diff reader4.tmp reader4.res ; rm reader4.tmp</test>
+ <author>Graham Bennett</author>
+ <copy>see Copyright for the status of this software. </copy>
+ <section>xmlReader</section>
<includes>
- <include>&lt;libxml/tree.h&gt;</include>
- <include>&lt;libxml/parser.h&gt;</include>
+ <include>&lt;libxml/xmlreader.h&gt;</include>
</includes>
<uses>
- <function line='75' file='tree' name='xmlNewText'/>
- <function line='110' file='xmlmemory' name='xmlMemoryDump'/>
- <function line='96' file='tree' name='xmlSaveFormatFileEnc'/>
- <function line='78' file='tree' name='xmlAddChild'/>
- <function line='41' file='tree' name='xmlDocSetRootElement'/>
- <function line='105' file='parser' name='xmlCleanupParser'/>
- <macro line='34' file='xmlversion' name='LIBXML_TEST_VERSION'/>
- <function line='89' file='tree' name='xmlNewProp'/>
- <function line='88' file='tree' name='xmlNewChild'/>
- <function line='74' file='tree' name='xmlNewNode'/>
- <function line='46' file='tree' name='xmlCreateIntSubset'/>
<function line='99' file='tree' name='xmlFreeDoc'/>
- <function line='39' file='tree' name='xmlNewDoc'/>
+ <typedef line='54' file='xmlreader' name='xmlTextReaderPtr'/>
+ <function line='109' file='parser' name='xmlCleanupParser'/>
+ <function line='113' file='xmlmemory' name='xmlMemoryDump'/>
+ <function line='83' file='xmlreader' name='xmlReaderNewFile'/>
+ <function line='104' file='xmlreader' name='xmlFreeTextReader'/>
+ <macro line='72' file='xmlversion' name='LIBXML_TEST_VERSION'/>
+ <function line='26' file='xmlreader' name='xmlTextReaderRead'/>
+ <function line='97' file='xmlreader' name='xmlTextReaderCurrentDoc'/>
+ <function line='72' file='xmlreader' name='xmlReaderForFile'/>
+ <typedef line='56' file='tree' name='xmlDocPtr'/>
</uses>
</example>
<example filename='testWriter.c'>
@@ -181,83 +182,6 @@
<function line='885' file='tree' name='xmlNewDoc'/>
</uses>
</example>
- <example filename='reader1.c'>
- <synopsis>Parse an XML file with an xmlReader</synopsis>
- <purpose>Demonstrate the use of xmlReaderForFile() to parse an XML file and dump the informations about the nodes found in the process. (Note that the XMLReader functions require libxml2 version later than 2.6.)</purpose>
- <usage>reader1 &lt;filename&gt;</usage>
- <test>reader1 test2.xml &gt; reader1.tmp ; diff reader1.tmp reader1.res ; rm reader1.tmp</test>
- <author>Daniel Veillard</author>
- <copy>see Copyright for the status of this software. </copy>
- <section>xmlReader</section>
- <includes>
- <include>&lt;libxml/xmlreader.h&gt;</include>
- </includes>
- <uses>
- <function line='44' file='xmlstring' name='xmlStrlen'/>
- <function line='37' file='xmlreader' name='xmlTextReaderNodeType'/>
- <typedef line='59' file='xmlreader' name='xmlTextReaderPtr'/>
- <function line='98' file='xmlmemory' name='xmlMemoryDump'/>
- <function line='33' file='xmlreader' name='xmlTextReaderConstValue'/>
- <function line='36' file='xmlreader' name='xmlTextReaderDepth'/>
- <function line='69' file='xmlreader' name='xmlFreeTextReader'/>
- <function line='29' file='xmlreader' name='xmlTextReaderConstName'/>
- <function line='40' file='xmlreader' name='xmlTextReaderHasValue'/>
- <function line='67' file='xmlreader' name='xmlTextReaderRead'/>
- <function line='39' file='xmlreader' name='xmlTextReaderIsEmptyElement'/>
- <function line='62' file='xmlreader' name='xmlReaderForFile'/>
- </uses>
- </example>
- <example filename='reader2.c'>
- <synopsis>Parse and validate an XML file with an xmlReader</synopsis>
- <purpose>Demonstrate the use of xmlReaderForFile() to parse an XML file validating the content in the process and activating options like entities substitution, and DTD attributes defaulting. (Note that the XMLReader functions require libxml2 version later than 2.6.)</purpose>
- <usage>reader2 &lt;valid_xml_filename&gt;</usage>
- <test>reader2 test2.xml &gt; reader1.tmp ; diff reader1.tmp reader1.res ; rm reader1.tmp</test>
- <author>Daniel Veillard</author>
- <copy>see Copyright for the status of this software. </copy>
- <section>xmlReader</section>
- <includes>
- <include>&lt;libxml/xmlreader.h&gt;</include>
- </includes>
- <uses>
- <function line='45' file='xmlstring' name='xmlStrlen'/>
- <function line='38' file='xmlreader' name='xmlTextReaderNodeType'/>
- <typedef line='60' file='xmlreader' name='xmlTextReaderPtr'/>
- <function line='34' file='xmlreader' name='xmlTextReaderConstValue'/>
- <enum line='70' file='parser' name='XML_PARSE_NOENT'/>
- <function line='37' file='xmlreader' name='xmlTextReaderDepth'/>
- <enum line='71' file='parser' name='XML_PARSE_DTDVALID'/>
- <enum line='69' file='parser' name='XML_PARSE_DTDATTR'/>
- <function line='84' file='xmlreader' name='xmlFreeTextReader'/>
- <function line='30' file='xmlreader' name='xmlTextReaderConstName'/>
- <function line='41' file='xmlreader' name='xmlTextReaderHasValue'/>
- <function line='76' file='xmlreader' name='xmlTextReaderRead'/>
- <function line='40' file='xmlreader' name='xmlTextReaderIsEmptyElement'/>
- <function line='68' file='xmlreader' name='xmlReaderForFile'/>
- <function line='81' file='xmlreader' name='xmlTextReaderIsValid'/>
- </uses>
- </example>
- <example filename='io1.c'>
- <synopsis>Example of custom Input/Output</synopsis>
- <purpose>Demonstrate the use of xmlRegisterInputCallbacks to build a custom I/O layer, this is used in an XInclude method context to show how dynamic document can be built in a clean way.</purpose>
- <usage>io1</usage>
- <test>io1 &gt; io1.tmp ; diff io1.tmp io1.res ; rm -f io1.tmp</test>
- <author>Daniel Veillard</author>
- <copy>see Copyright for the status of this software. </copy>
- <section>InputOutput</section>
- <includes>
- <include>&lt;libxml/parser.h&gt;</include>
- <include>&lt;libxml/xmlIO.h&gt;</include>
- <include>&lt;libxml/xinclude.h&gt;</include>
- <include>&lt;libxml/tree.h&gt;</include>
- </includes>
- <uses>
- <function line='143' file='tree' name='xmlDocDump'/>
- <function line='134' file='xinclude' name='xmlXIncludeProcess'/>
- <function line='117' file='xmlIO' name='xmlRegisterInputCallbacks'/>
- <function line='124' file='parser' name='xmlReadMemory'/>
- <typedef line='105' file='tree' name='xmlDocPtr'/>
- </uses>
- </example>
<example filename='parse3.c'>
<synopsis>Parse an XML document in memory to a tree and free it</synopsis>
<purpose>Demonstrate the use of xmlReadMemory() to read an XML file into a tree and and xmlFreeDoc() to free the resulting tree</purpose>
@@ -272,47 +196,54 @@
</includes>
<uses>
<function line='33' file='parser' name='xmlReadMemory'/>
+ <function line='58' file='xmlmemory' name='xmlMemoryDump'/>
+ <function line='54' file='parser' name='xmlCleanupParser'/>
+ <macro line='49' file='xmlversion' name='LIBXML_TEST_VERSION'/>
+ <function line='38' file='tree' name='xmlFreeDoc'/>
<typedef line='27' file='tree' name='xmlDocPtr'/>
</uses>
</example>
- <example filename='parse4.c'>
- <synopsis>Parse an XML document chunk by chunk to a tree and free it</synopsis>
- <purpose>Demonstrate the use of xmlCreatePushParserCtxt() and xmlParseChunk() to read an XML file progressively into a tree and and xmlFreeDoc() to free the resulting tree</purpose>
- <usage>parse4 test3.xml</usage>
- <test>parse4 test3.xml</test>
- <author>Daniel Veillard</author>
- <copy>see Copyright for the status of this software. </copy>
- <section>Parsing</section>
+ <example filename='tree2.c'>
+ <synopsis>Creates a tree</synopsis>
+ <purpose>Shows how to create document, nodes and dump it to stdout or file.</purpose>
+ <usage>tree2 &lt;filename&gt; -Default output: stdout</usage>
+ <test>tree2 &gt; tree2.tmp ; diff tree2.tmp tree2.res ; rm tree2.tmp</test>
+ <author>Lucas Brasilino &lt;brasilino@recife.pe.gov.br&gt;</author>
+ <copy>see Copyright for the status of this software </copy>
+ <section>Tree</section>
<includes>
<include>&lt;libxml/tree.h&gt;</include>
<include>&lt;libxml/parser.h&gt;</include>
</includes>
<uses>
- <function line='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'/>
+ <function line='75' file='tree' name='xmlNewText'/>
+ <function line='96' file='tree' name='xmlSaveFormatFileEnc'/>
+ <function line='78' file='tree' name='xmlAddChild'/>
+ <function line='41' file='tree' name='xmlDocSetRootElement'/>
+ <function line='89' file='tree' name='xmlNewProp'/>
+ <function line='88' file='tree' name='xmlNewChild'/>
+ <function line='74' file='tree' name='xmlNewNode'/>
+ <function line='46' file='tree' name='xmlCreateIntSubset'/>
+ <function line='99' file='tree' name='xmlFreeDoc'/>
+ <function line='39' file='tree' name='xmlNewDoc'/>
</uses>
</example>
- <example filename='io2.c'>
- <synopsis>Output to char buffer</synopsis>
- <purpose>Demonstrate the use of xmlDocDumpMemory to output document to a character buffer</purpose>
- <usage>io2</usage>
- <test>io2 &gt; io2.tmp ; diff io2.tmp io2.res ; rm -f io2.tmp</test>
- <author>John Fleck</author>
+ <example filename='tree1.c'>
+ <synopsis>Navigates a tree to print element names</synopsis>
+ <purpose>Parse a file to a tree, use xmlDocGetRootElement() to get the root element, then walk the document and print all the element name in document order.</purpose>
+ <usage>tree1 filename_or_URL</usage>
+ <test>tree1 test2.xml &gt; tree1.tmp ; diff tree1.tmp tree1.res ; rm tree1.tmp</test>
+ <author>Dodji Seketeli</author>
<copy>see Copyright for the status of this software. </copy>
- <section>InputOutput</section>
+ <section>Tree</section>
<includes>
+ <include>&lt;libxml/tree.h&gt;</include>
<include>&lt;libxml/parser.h&gt;</include>
</includes>
<uses>
- <function line='29' file='tree' name='xmlNodeSetContent'/>
- <function line='36' file='tree' name='xmlDocDumpFormatMemory'/>
- <variable line='42' file='globals' name='xmlFree'/>
- <function line='30' file='tree' name='xmlDocSetRootElement'/>
- <typedef line='19' file='tree' name='xmlNodePtr'/>
- <function line='27' file='tree' name='xmlNewDoc'/>
- <function line='28' file='tree' name='xmlNewNode'/>
+ <enum line='36' file='tree' name='XML_ELEMENT_NODE'/>
+ <function line='74' file='tree' name='xmlDocGetRootElement'/>
+ <function line='67' file='parser' name='xmlReadFile'/>
</uses>
</example>
<example filename='xpath2.c'>
@@ -341,75 +272,144 @@
<function line='124' file='xpath' name='xmlXPathFreeContext'/>
<function line='41' file='parser' name='xmlInitParser'/>
<enum line='180' file='tree' name='XML_NAMESPACE_DECL'/>
+ <typedef line='86' file='tree' name='xmlDocPtr'/>
</uses>
</example>
- <example filename='reader4.c'>
- <synopsis>Parse multiple XML files reusing an xmlReader</synopsis>
- <purpose>Demonstrate the use of xmlReaderForFile() and xmlReaderNewFile to parse XML files while reusing the reader object and parser context. (Note that the XMLReader functions require libxml2 version later than 2.6.)</purpose>
- <usage>reader4 &lt;filename&gt; [ filename ... ]</usage>
- <test>reader4 test1.xml test2.xml test3.xml &gt; reader4.tmp ; diff reader4.tmp reader4.res ; rm reader4.tmp</test>
- <author>Graham Bennett</author>
+ <example filename='parse1.c'>
+ <synopsis>Parse an XML file to a tree and free it</synopsis>
+ <purpose>Demonstrate the use of xmlReadFile() to read an XML file into a tree and and xmlFreeDoc() to free the resulting tree</purpose>
+ <usage>parse1 test1.xml</usage>
+ <test>parse1 test1.xml</test>
+ <author>Daniel Veillard</author>
<copy>see Copyright for the status of this software. </copy>
- <section>xmlReader</section>
+ <section>Parsing</section>
<includes>
- <include>&lt;libxml/xmlreader.h&gt;</include>
+ <include>&lt;libxml/tree.h&gt;</include>
+ <include>&lt;libxml/parser.h&gt;</include>
</includes>
<uses>
- <typedef line='54' file='xmlreader' name='xmlTextReaderPtr'/>
- <function line='83' file='xmlreader' name='xmlReaderNewFile'/>
- <function line='104' file='xmlreader' name='xmlFreeTextReader'/>
- <function line='26' file='xmlreader' name='xmlTextReaderRead'/>
- <function line='97' file='xmlreader' name='xmlTextReaderCurrentDoc'/>
- <function line='72' file='xmlreader' name='xmlReaderForFile'/>
+ <function line='26' file='parser' name='xmlReadFile'/>
</uses>
</example>
- <example filename='reader3.c'>
- <synopsis>Show how to extract subdocuments with xmlReader</synopsis>
- <purpose>Demonstrate the use of xmlTextReaderPreservePattern() to parse an XML file with the xmlReader while collecting only some subparts of the document. (Note that the XMLReader functions require libxml2 version later than 2.6.)</purpose>
- <usage>reader3</usage>
- <test>reader3 &gt; reader3.tmp ; diff reader3.tmp reader3.res ; rm reader3.tmp</test>
+ <example filename='xpath1.c'>
+ <synopsis>Evaluate XPath expression and prints result node set.</synopsis>
+ <purpose>Shows how to evaluate XPath expression and register known namespaces in XPath context.</purpose>
+ <usage>xpath1 &lt;xml-file&gt; &lt;xpath-expr&gt; [&lt;known-ns-list&gt;]</usage>
+ <test>./xpath1 test3.xml &apos;//child2&apos; &gt; xpath1.tmp ; diff xpath1.tmp xpath1.res ; rm xpath1.tmp</test>
+ <author>Aleksey Sanin</author>
+ <copy>see Copyright for the status of this software. </copy>
+ <section>XPath</section>
+ <includes>
+ <include>&lt;libxml/parser.h&gt;</include>
+ <include>&lt;libxml/xpath.h&gt;</include>
+ <include>&lt;libxml/xpathInternals.h&gt;</include>
+ <include>&lt;libxml/tree.h&gt;</include>
+ </includes>
+ <uses>
+ <enum line='229' file='tree' name='XML_ELEMENT_NODE'/>
+ <typedef line='88' file='xpath' name='xmlXPathObjectPtr'/>
+ <function line='117' file='xpath' name='xmlXPathEvalExpression'/>
+ <function line='94' file='parser' name='xmlParseFile'/>
+ <function line='186' file='xpathInternals' name='xmlXPathRegisterNs'/>
+ <function line='129' file='xpath' name='xmlXPathFreeObject'/>
+ <variable line='193' file='globals' name='xmlFree'/>
+ <typedef line='218' file='tree' name='xmlNsPtr'/>
+ <function line='101' file='xpath' name='xmlXPathNewContext'/>
+ <typedef line='87' file='xpath' name='xmlXPathContextPtr'/>
+ <function line='130' file='xpath' name='xmlXPathFreeContext'/>
+ <function line='39' file='parser' name='xmlInitParser'/>
+ <function line='156' file='xmlstring' name='xmlStrdup'/>
+ <function line='180' file='xmlstring' name='xmlStrchr'/>
+ <typedef line='206' file='tree' name='xmlNodePtr'/>
+ <enum line='217' file='tree' name='XML_NAMESPACE_DECL'/>
+ </uses>
+ </example>
+ <example filename='io1.c'>
+ <synopsis>Example of custom Input/Output</synopsis>
+ <purpose>Demonstrate the use of xmlRegisterInputCallbacks to build a custom I/O layer, this is used in an XInclude method context to show how dynamic document can be built in a clean way.</purpose>
+ <usage>io1</usage>
+ <test>io1 &gt; io1.tmp ; diff io1.tmp io1.res ; rm -f io1.tmp</test>
<author>Daniel Veillard</author>
<copy>see Copyright for the status of this software. </copy>
- <section>xmlReader</section>
+ <section>InputOutput</section>
<includes>
- <include>&lt;libxml/xmlreader.h&gt;</include>
+ <include>&lt;libxml/parser.h&gt;</include>
+ <include>&lt;libxml/xmlIO.h&gt;</include>
+ <include>&lt;libxml/xinclude.h&gt;</include>
+ <include>&lt;libxml/tree.h&gt;</include>
</includes>
<uses>
- <typedef line='31' file='xmlreader' name='xmlTextReaderPtr'/>
- <function line='65' file='xmlreader' name='xmlFreeTextReader'/>
- <function line='95' file='tree' name='xmlDocDump'/>
- <function line='51' file='xmlreader' name='xmlTextReaderRead'/>
- <function line='61' file='xmlreader' name='xmlTextReaderCurrentDoc'/>
- <function line='42' file='xmlreader' name='xmlTextReaderPreservePattern'/>
- <function line='37' file='xmlreader' name='xmlReaderForFile'/>
+ <function line='143' file='tree' name='xmlDocDump'/>
+ <function line='134' file='xinclude' name='xmlXIncludeProcess'/>
+ <function line='117' file='xmlIO' name='xmlRegisterInputCallbacks'/>
+ <function line='124' file='parser' name='xmlReadMemory'/>
+ </uses>
+ </example>
+ <example filename='parse4.c'>
+ <synopsis>Parse an XML document chunk by chunk to a tree and free it</synopsis>
+ <purpose>Demonstrate the use of xmlCreatePushParserCtxt() and xmlParseChunk() to read an XML file progressively into a tree and and xmlFreeDoc() to free the resulting tree</purpose>
+ <usage>parse4 test3.xml</usage>
+ <test>parse4 test3.xml</test>
+ <author>Daniel Veillard</author>
+ <copy>see Copyright for the status of this software. </copy>
+ <section>Parsing</section>
+ <includes>
+ <include>&lt;libxml/tree.h&gt;</include>
+ <include>&lt;libxml/parser.h&gt;</include>
+ </includes>
+ <uses>
+ <function line='94' file='parser' name='xmlFreeParserCtxt'/>
+ <function line='86' file='parser' name='xmlParseChunk'/>
+ <function line='67' file='parser' name='xmlCreatePushParserCtxt'/>
+ <typedef line='45' file='tree' name='xmlParserCtxtPtr'/>
+ </uses>
+ </example>
+ <example filename='parse2.c'>
+ <synopsis>Parse and validate an XML file to a tree and free the result</synopsis>
+ <purpose>Create a parser context for an XML file, then parse and validate the file, creating a tree, check the validation result and xmlFreeDoc() to free the resulting tree.</purpose>
+ <usage>parse2 test2.xml</usage>
+ <test>parse2 test2.xml</test>
+ <author>Daniel Veillard</author>
+ <copy>see Copyright for the status of this software. </copy>
+ <section>Parsing</section>
+ <includes>
+ <include>&lt;libxml/tree.h&gt;</include>
+ <include>&lt;libxml/parser.h&gt;</include>
+ </includes>
+ <uses>
+ <function line='47' file='parser' name='xmlFreeParserCtxt'/>
+ <enum line='35' file='parser' name='XML_PARSE_DTDVALID'/>
+ <function line='29' file='parser' name='xmlNewParserCtxt'/>
+ <typedef line='25' file='tree' name='xmlParserCtxtPtr'/>
+ <function line='35' file='parser' name='xmlCtxtReadFile'/>
</uses>
</example>
<symbols>
<symbol name='LIBXML_TEST_VERSION'>
- <ref filename='xpath1.c'/>
- <ref filename='parse1.c'/>
- <ref filename='parse2.c'/>
- <ref filename='tree1.c'/>
- <ref filename='tree2.c'/>
+ <ref filename='reader3.c'/>
+ <ref filename='reader1.c'/>
+ <ref filename='reader2.c'/>
+ <ref filename='reader4.c'/>
<ref filename='testWriter.c'/>
+ <ref filename='parse3.c'/>
</symbol>
<symbol name='XML_DEFAULT_VERSION'>
<ref filename='testWriter.c'/>
</symbol>
<symbol name='XML_ELEMENT_NODE'>
- <ref filename='xpath1.c'/>
<ref filename='tree1.c'/>
+ <ref filename='xpath1.c'/>
</symbol>
<symbol name='XML_NAMESPACE_DECL'>
- <ref filename='xpath1.c'/>
<ref filename='xpath2.c'/>
+ <ref filename='xpath1.c'/>
</symbol>
<symbol name='XML_PARSE_DTDATTR'>
<ref filename='reader2.c'/>
</symbol>
<symbol name='XML_PARSE_DTDVALID'>
- <ref filename='parse2.c'/>
<ref filename='reader2.c'/>
+ <ref filename='parse2.c'/>
</symbol>
<symbol name='XML_PARSE_NOENT'>
<ref filename='reader2.c'/>
@@ -430,12 +430,12 @@
<ref filename='testWriter.c'/>
</symbol>
<symbol name='xmlCleanupParser'>
- <ref filename='xpath1.c'/>
- <ref filename='parse1.c'/>
- <ref filename='parse2.c'/>
- <ref filename='tree1.c'/>
- <ref filename='tree2.c'/>
+ <ref filename='reader3.c'/>
+ <ref filename='reader1.c'/>
+ <ref filename='reader2.c'/>
+ <ref filename='reader4.c'/>
<ref filename='testWriter.c'/>
+ <ref filename='parse3.c'/>
</symbol>
<symbol name='xmlCreateIntSubset'>
<ref filename='tree2.c'/>
@@ -447,9 +447,9 @@
<ref filename='parse2.c'/>
</symbol>
<symbol name='xmlDocDump'>
- <ref filename='io1.c'/>
- <ref filename='xpath2.c'/>
<ref filename='reader3.c'/>
+ <ref filename='xpath2.c'/>
+ <ref filename='io1.c'/>
</symbol>
<symbol name='xmlDocDumpFormatMemory'>
<ref filename='io2.c'/>
@@ -458,76 +458,76 @@
<ref filename='tree1.c'/>
</symbol>
<symbol name='xmlDocPtr'>
- <ref filename='xpath1.c'/>
- <ref filename='parse1.c'/>
- <ref filename='parse2.c'/>
+ <ref filename='reader3.c'/>
+ <ref filename='io2.c'/>
+ <ref filename='reader4.c'/>
<ref filename='testWriter.c'/>
- <ref filename='io1.c'/>
<ref filename='parse3.c'/>
+ <ref filename='xpath2.c'/>
</symbol>
<symbol name='xmlDocSetRootElement'>
- <ref filename='tree2.c'/>
- <ref filename='testWriter.c'/>
<ref filename='io2.c'/>
+ <ref filename='testWriter.c'/>
+ <ref filename='tree2.c'/>
</symbol>
<symbol name='xmlFindCharEncodingHandler'>
<ref filename='testWriter.c'/>
</symbol>
<symbol name='xmlFree'>
- <ref filename='xpath1.c'/>
- <ref filename='testWriter.c'/>
<ref filename='io2.c'/>
+ <ref filename='testWriter.c'/>
+ <ref filename='xpath1.c'/>
</symbol>
<symbol name='xmlFreeDoc'>
- <ref filename='xpath1.c'/>
- <ref filename='parse1.c'/>
- <ref filename='parse2.c'/>
- <ref filename='tree1.c'/>
- <ref filename='tree2.c'/>
+ <ref filename='reader3.c'/>
+ <ref filename='io2.c'/>
+ <ref filename='reader4.c'/>
<ref filename='testWriter.c'/>
+ <ref filename='parse3.c'/>
+ <ref filename='tree2.c'/>
</symbol>
<symbol name='xmlFreeParserCtxt'>
- <ref filename='parse2.c'/>
<ref filename='parse4.c'/>
+ <ref filename='parse2.c'/>
</symbol>
<symbol name='xmlFreeTextReader'>
+ <ref filename='reader3.c'/>
<ref filename='reader1.c'/>
<ref filename='reader2.c'/>
<ref filename='reader4.c'/>
- <ref filename='reader3.c'/>
</symbol>
<symbol name='xmlFreeTextWriter'>
<ref filename='testWriter.c'/>
</symbol>
<symbol name='xmlInitParser'>
- <ref filename='xpath1.c'/>
<ref filename='xpath2.c'/>
+ <ref filename='xpath1.c'/>
</symbol>
<symbol name='xmlMalloc'>
<ref filename='testWriter.c'/>
</symbol>
<symbol name='xmlMemoryDump'>
- <ref filename='xpath1.c'/>
- <ref filename='parse1.c'/>
- <ref filename='parse2.c'/>
- <ref filename='tree2.c'/>
- <ref filename='testWriter.c'/>
+ <ref filename='reader3.c'/>
<ref filename='reader1.c'/>
+ <ref filename='reader2.c'/>
+ <ref filename='reader4.c'/>
+ <ref filename='testWriter.c'/>
+ <ref filename='parse3.c'/>
</symbol>
<symbol name='xmlNewChild'>
<ref filename='tree2.c'/>
</symbol>
<symbol name='xmlNewDoc'>
- <ref filename='tree2.c'/>
- <ref filename='testWriter.c'/>
<ref filename='io2.c'/>
+ <ref filename='testWriter.c'/>
+ <ref filename='tree2.c'/>
</symbol>
<symbol name='xmlNewDocNode'>
<ref filename='testWriter.c'/>
</symbol>
<symbol name='xmlNewNode'>
- <ref filename='tree2.c'/>
<ref filename='io2.c'/>
+ <ref filename='tree2.c'/>
</symbol>
<symbol name='xmlNewParserCtxt'>
<ref filename='parse2.c'/>
@@ -551,9 +551,9 @@
<ref filename='testWriter.c'/>
</symbol>
<symbol name='xmlNodePtr'>
- <ref filename='xpath1.c'/>
- <ref filename='testWriter.c'/>
<ref filename='io2.c'/>
+ <ref filename='testWriter.c'/>
+ <ref filename='xpath1.c'/>
</symbol>
<symbol name='xmlNodeSetContent'>
<ref filename='io2.c'/>
@@ -566,26 +566,26 @@
<ref filename='parse4.c'/>
</symbol>
<symbol name='xmlParseFile'>
- <ref filename='xpath1.c'/>
<ref filename='xpath2.c'/>
+ <ref filename='xpath1.c'/>
</symbol>
<symbol name='xmlParserCtxtPtr'>
- <ref filename='parse2.c'/>
<ref filename='parse4.c'/>
+ <ref filename='parse2.c'/>
</symbol>
<symbol name='xmlReadFile'>
- <ref filename='parse1.c'/>
<ref filename='tree1.c'/>
+ <ref filename='parse1.c'/>
</symbol>
<symbol name='xmlReadMemory'>
- <ref filename='io1.c'/>
<ref filename='parse3.c'/>
+ <ref filename='io1.c'/>
</symbol>
<symbol name='xmlReaderForFile'>
+ <ref filename='reader3.c'/>
<ref filename='reader1.c'/>
<ref filename='reader2.c'/>
<ref filename='reader4.c'/>
- <ref filename='reader3.c'/>
</symbol>
<symbol name='xmlReaderNewFile'>
<ref filename='reader4.c'/>
@@ -621,8 +621,8 @@
<ref filename='reader2.c'/>
</symbol>
<symbol name='xmlTextReaderCurrentDoc'>
- <ref filename='reader4.c'/>
<ref filename='reader3.c'/>
+ <ref filename='reader4.c'/>
</symbol>
<symbol name='xmlTextReaderDepth'>
<ref filename='reader1.c'/>
@@ -647,16 +647,16 @@
<ref filename='reader3.c'/>
</symbol>
<symbol name='xmlTextReaderPtr'>
+ <ref filename='reader3.c'/>
<ref filename='reader1.c'/>
<ref filename='reader2.c'/>
<ref filename='reader4.c'/>
- <ref filename='reader3.c'/>
</symbol>
<symbol name='xmlTextReaderRead'>
+ <ref filename='reader3.c'/>
<ref filename='reader1.c'/>
<ref filename='reader2.c'/>
<ref filename='reader4.c'/>
- <ref filename='reader3.c'/>
</symbol>
<symbol name='xmlTextWriterEndDocument'>
<ref filename='testWriter.c'/>
@@ -692,28 +692,28 @@
<ref filename='io1.c'/>
</symbol>
<symbol name='xmlXPathContextPtr'>
- <ref filename='xpath1.c'/>
<ref filename='xpath2.c'/>
+ <ref filename='xpath1.c'/>
</symbol>
<symbol name='xmlXPathEvalExpression'>
- <ref filename='xpath1.c'/>
<ref filename='xpath2.c'/>
+ <ref filename='xpath1.c'/>
</symbol>
<symbol name='xmlXPathFreeContext'>
- <ref filename='xpath1.c'/>
<ref filename='xpath2.c'/>
+ <ref filename='xpath1.c'/>
</symbol>
<symbol name='xmlXPathFreeObject'>
- <ref filename='xpath1.c'/>
<ref filename='xpath2.c'/>
+ <ref filename='xpath1.c'/>
</symbol>
<symbol name='xmlXPathNewContext'>
- <ref filename='xpath1.c'/>
<ref filename='xpath2.c'/>
+ <ref filename='xpath1.c'/>
</symbol>
<symbol name='xmlXPathObjectPtr'>
- <ref filename='xpath1.c'/>
<ref filename='xpath2.c'/>
+ <ref filename='xpath1.c'/>
</symbol>
<symbol name='xmlXPathRegisterNs'>
<ref filename='xpath1.c'/>
@@ -721,28 +721,28 @@
</symbols>
<sections>
<section name='InputOutput'>
- <example filename='io1.c'/>
<example filename='io2.c'/>
+ <example filename='io1.c'/>
</section>
<section name='Parsing'>
- <example filename='parse1.c'/>
- <example filename='parse2.c'/>
<example filename='parse3.c'/>
+ <example filename='parse1.c'/>
<example filename='parse4.c'/>
+ <example filename='parse2.c'/>
</section>
<section name='Tree'>
- <example filename='tree1.c'/>
<example filename='tree2.c'/>
+ <example filename='tree1.c'/>
</section>
<section name='XPath'>
- <example filename='xpath1.c'/>
<example filename='xpath2.c'/>
+ <example filename='xpath1.c'/>
</section>
<section name='xmlReader'>
+ <example filename='reader3.c'/>
<example filename='reader1.c'/>
<example filename='reader2.c'/>
<example filename='reader4.c'/>
- <example filename='reader3.c'/>
</section>
<section name='xmlWriter'>
<example filename='testWriter.c'/>
diff --git a/doc/html/libxml-parser.html b/doc/html/libxml-parser.html
index deef591..97fd455 100644
--- a/doc/html/libxml-parser.html
+++ b/doc/html/libxml-parser.html
@@ -145,7 +145,7 @@ void <a href="#warningSAXFunc">warningSAXFunc</a> (void * ctx, <br /> con
<pre class="programlisting">int <a href="#xmlParseChunk">xmlParseChunk</a> (<a href="libxml-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt, <br /> const char * chunk, <br /> int size, <br /> int terminate)</pre>
<pre class="programlisting">int <a href="#xmlParseCtxtExternalEntity">xmlParseCtxtExternalEntity</a> (<a href="libxml-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctx, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * URL, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * ID, <br /> <a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> * lst)</pre>
<pre class="programlisting"><a href="libxml-tree.html#xmlDtdPtr">xmlDtdPtr</a> <a href="#xmlParseDTD">xmlParseDTD</a> (const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * ExternalID, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * SystemID)</pre>
-<pre class="programlisting"><a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> <a href="#xmlParseDoc">xmlParseDoc</a> (<a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * cur)</pre>
+<pre class="programlisting"><a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> <a href="#xmlParseDoc">xmlParseDoc</a> (const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * cur)</pre>
<pre class="programlisting">int <a href="#xmlParseDocument">xmlParseDocument</a> (<a href="libxml-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt)</pre>
<pre class="programlisting"><a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> <a href="#xmlParseEntity">xmlParseEntity</a> (const char * filename)</pre>
<pre class="programlisting">int <a href="#xmlParseExtParsedEnt">xmlParseExtParsedEnt</a> (<a href="libxml-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt)</pre>
@@ -171,7 +171,7 @@ void <a href="#xmlParserInputDeallocate">xmlParserInputDeallocate</a> (<a href="
<pre class="programlisting"><a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> <a href="#xmlRecoverFile">xmlRecoverFile</a> (const char * filename)</pre>
<pre class="programlisting"><a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> <a href="#xmlRecoverMemory">xmlRecoverMemory</a> (const char * buffer, <br /> int size)</pre>
<pre class="programlisting"><a href="libxml-tree.html#xmlDtdPtr">xmlDtdPtr</a> <a href="#xmlSAXParseDTD">xmlSAXParseDTD</a> (<a href="libxml-tree.html#xmlSAXHandlerPtr">xmlSAXHandlerPtr</a> sax, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * ExternalID, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * SystemID)</pre>
-<pre class="programlisting"><a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> <a href="#xmlSAXParseDoc">xmlSAXParseDoc</a> (<a href="libxml-tree.html#xmlSAXHandlerPtr">xmlSAXHandlerPtr</a> sax, <br /> <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * cur, <br /> int recovery)</pre>
+<pre class="programlisting"><a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> <a href="#xmlSAXParseDoc">xmlSAXParseDoc</a> (<a href="libxml-tree.html#xmlSAXHandlerPtr">xmlSAXHandlerPtr</a> sax, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * cur, <br /> int recovery)</pre>
<pre class="programlisting"><a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> <a href="#xmlSAXParseEntity">xmlSAXParseEntity</a> (<a href="libxml-tree.html#xmlSAXHandlerPtr">xmlSAXHandlerPtr</a> sax, <br /> const char * filename)</pre>
<pre class="programlisting"><a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> <a href="#xmlSAXParseFile">xmlSAXParseFile</a> (<a href="libxml-tree.html#xmlSAXHandlerPtr">xmlSAXHandlerPtr</a> sax, <br /> const char * filename, <br /> int recovery)</pre>
<pre class="programlisting"><a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> <a href="#xmlSAXParseFileWithData">xmlSAXParseFileWithData</a> (<a href="libxml-tree.html#xmlSAXHandlerPtr">xmlSAXHandlerPtr</a> sax, <br /> const char * filename, <br /> int recovery, <br /> void * data)</pre>
@@ -434,7 +434,7 @@ void warningSAXFunc (void * ctx, <br /> const char * msg, <br /> ...
</pre><p>Parse an external general entity within an existing parsing context An external general parsed entity is well-formed if it matches the production labeled extParsedEnt. [78] extParsedEnt ::= TextDecl? content</p>
<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctx</tt></i>:</span></td><td>the existing parsing context</td></tr><tr><td><span class="term"><i><tt>URL</tt></i>:</span></td><td>the URL for the entity to load</td></tr><tr><td><span class="term"><i><tt>ID</tt></i>:</span></td><td>the System ID for the entity to load</td></tr><tr><td><span class="term"><i><tt>lst</tt></i>:</span></td><td>the return value for the set of parsed nodes</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 if the entity is well formed, -1 in case of args problem and the parser error code otherwise</td></tr></tbody></table></div><h3><a name="xmlParseDTD" id="xmlParseDTD"></a>Function: xmlParseDTD</h3><pre class="programlisting"><a href="libxml-tree.html#xmlDtdPtr">xmlDtdPtr</a> xmlParseDTD (const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * ExternalID, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * SystemID)<br />
</pre><p>Load and parse an external subset.</p>
-<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ExternalID</tt></i>:</span></td><td>a NAME* containing the External ID of the DTD</td></tr><tr><td><span class="term"><i><tt>SystemID</tt></i>:</span></td><td>a NAME* containing the URL to the DTD</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the resulting <a href="libxml-tree.html#xmlDtdPtr">xmlDtdPtr</a> or NULL in case of error.</td></tr></tbody></table></div><h3><a name="xmlParseDoc" id="xmlParseDoc"></a>Function: xmlParseDoc</h3><pre class="programlisting"><a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> xmlParseDoc (<a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * cur)<br />
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ExternalID</tt></i>:</span></td><td>a NAME* containing the External ID of the DTD</td></tr><tr><td><span class="term"><i><tt>SystemID</tt></i>:</span></td><td>a NAME* containing the URL to the DTD</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the resulting <a href="libxml-tree.html#xmlDtdPtr">xmlDtdPtr</a> or NULL in case of error.</td></tr></tbody></table></div><h3><a name="xmlParseDoc" id="xmlParseDoc"></a>Function: xmlParseDoc</h3><pre class="programlisting"><a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> xmlParseDoc (const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * cur)<br />
</pre><p>parse an XML in-memory document and build a tree.</p>
<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>cur</tt></i>:</span></td><td>a pointer to an array of <a href="libxml-xmlstring.html#xmlChar">xmlChar</a></td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the resulting document tree</td></tr></tbody></table></div><h3><a name="xmlParseDocument" id="xmlParseDocument"></a>Function: xmlParseDocument</h3><pre class="programlisting">int xmlParseDocument (<a href="libxml-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt)<br />
</pre><p>parse an XML document (and build a tree if using the standard SAX interface). [1] document ::= prolog element Misc* [22] prolog ::= XMLDecl? Misc* (doctypedecl Misc*)?</p>
@@ -483,7 +483,7 @@ void xmlParserInputDeallocate (<a href="libxml-xmlstring.html#xmlChar">xmlChar</
</pre><p>parse an XML in-memory block and build a tree. In the case the document is not Well Formed, a tree is built anyway</p>
<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>buffer</tt></i>:</span></td><td>an pointer to a char array</td></tr><tr><td><span class="term"><i><tt>size</tt></i>:</span></td><td>the size of the array</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the resulting document tree</td></tr></tbody></table></div><h3><a name="xmlSAXParseDTD" id="xmlSAXParseDTD"></a>Function: xmlSAXParseDTD</h3><pre class="programlisting"><a href="libxml-tree.html#xmlDtdPtr">xmlDtdPtr</a> xmlSAXParseDTD (<a href="libxml-tree.html#xmlSAXHandlerPtr">xmlSAXHandlerPtr</a> sax, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * ExternalID, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * SystemID)<br />
</pre><p>Load and parse an external subset.</p>
-<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>sax</tt></i>:</span></td><td>the SAX handler block</td></tr><tr><td><span class="term"><i><tt>ExternalID</tt></i>:</span></td><td>a NAME* containing the External ID of the DTD</td></tr><tr><td><span class="term"><i><tt>SystemID</tt></i>:</span></td><td>a NAME* containing the URL to the DTD</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the resulting <a href="libxml-tree.html#xmlDtdPtr">xmlDtdPtr</a> or NULL in case of error.</td></tr></tbody></table></div><h3><a name="xmlSAXParseDoc" id="xmlSAXParseDoc"></a>Function: xmlSAXParseDoc</h3><pre class="programlisting"><a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> xmlSAXParseDoc (<a href="libxml-tree.html#xmlSAXHandlerPtr">xmlSAXHandlerPtr</a> sax, <br /> <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * cur, <br /> int recovery)<br />
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>sax</tt></i>:</span></td><td>the SAX handler block</td></tr><tr><td><span class="term"><i><tt>ExternalID</tt></i>:</span></td><td>a NAME* containing the External ID of the DTD</td></tr><tr><td><span class="term"><i><tt>SystemID</tt></i>:</span></td><td>a NAME* containing the URL to the DTD</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the resulting <a href="libxml-tree.html#xmlDtdPtr">xmlDtdPtr</a> or NULL in case of error.</td></tr></tbody></table></div><h3><a name="xmlSAXParseDoc" id="xmlSAXParseDoc"></a>Function: xmlSAXParseDoc</h3><pre class="programlisting"><a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> xmlSAXParseDoc (<a href="libxml-tree.html#xmlSAXHandlerPtr">xmlSAXHandlerPtr</a> sax, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * cur, <br /> int recovery)<br />
</pre><p>parse an XML in-memory document and build a tree. It use the given SAX function block to handle the parsing callback. If sax is NULL, fallback to the default DOM tree building routines.</p>
<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>sax</tt></i>:</span></td><td>the SAX handler block</td></tr><tr><td><span class="term"><i><tt>cur</tt></i>:</span></td><td>a pointer to an array of <a href="libxml-xmlstring.html#xmlChar">xmlChar</a></td></tr><tr><td><span class="term"><i><tt>recovery</tt></i>:</span></td><td>work in recovery mode, i.e. tries to read no Well Formed documents</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the resulting document tree</td></tr></tbody></table></div><h3><a name="xmlSAXParseEntity" id="xmlSAXParseEntity"></a>Function: xmlSAXParseEntity</h3><pre class="programlisting"><a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> xmlSAXParseEntity (<a href="libxml-tree.html#xmlSAXHandlerPtr">xmlSAXHandlerPtr</a> sax, <br /> const char * filename)<br />
</pre><p>parse an XML external entity out of context and build a tree. It use the given SAX function block to handle the parsing callback. If sax is NULL, fallback to the default DOM tree building routines. [78] extParsedEnt ::= TextDecl? content This correspond to a "Well Balanced" chunk</p>
diff --git a/doc/html/libxml-schemasInternals.html b/doc/html/libxml-schemasInternals.html
index 92aae08..db6d611 100644
--- a/doc/html/libxml-schemasInternals.html
+++ b/doc/html/libxml-schemasInternals.html
@@ -10,7 +10,7 @@ A:link, A:visited, A:active { text-decoration: underline }
</style><style type="text/css">
div.deprecated pre.programlisting {border-style: double;border-color:red}
pre.programlisting {border-style: double;background: #EECFA1}
- </style><title>Module schemasInternals from libxml2</title></head><body bgcolor="#8b7765" text="#000000" link="#a06060" vlink="#000000"><table border="0" width="100%" cellpadding="5" cellspacing="0" align="center"><tr><td width="120"><a href="http://swpat.ffii.org/"><img src="../epatents.png" alt="Action against software patents" /></a></td><td width="180"><a href="http://www.gnome.org/"><img src="../gnome2.png" alt="Gnome2 Logo" /></a><a href="http://www.w3.org/Status"><img src="../w3c.png" alt="W3C Logo" /></a><a href="http://www.redhat.com/"><img src="../redhat.gif" alt="Red Hat Logo" /></a><div align="left"><a href="http://xmlsoft.org/"><img src="../Libxml2-Logo-180x168.gif" alt="Made with Libxml2 Logo" /></a></div></td><td><table border="0" width="90%" cellpadding="2" cellspacing="0" align="center" bgcolor="#000000"><tr><td><table width="100%" border="0" cellspacing="1" cellpadding="3" bgcolor="#fffacd"><tr><td align="center"><h1></h1><h2>Module schemasInternals from libxml2</h2></td></tr></table></td></tr></table></td></tr></table><table border="0" cellpadding="4" cellspacing="0" width="100%" align="center"><tr><td bgcolor="#8b7765"><table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td valign="top" width="200" bgcolor="#8b7765"><table border="0" cellspacing="0" cellpadding="1" width="100%" bgcolor="#000000"><tr><td><table width="100%" border="0" cellspacing="1" cellpadding="3"><tr><td colspan="1" bgcolor="#eecfa1" align="center"><center><b>API Menu</b></center></td></tr><tr><td bgcolor="#fffacd"><form action="../search.php" enctype="application/x-www-form-urlencoded" method="get"><input name="query" type="text" size="20" value="" /><input name="submit" type="submit" value="Search ..." /></form><ul><li><a style="font-weight:bold" href="../index.html">Main Menu</a></li><li><a style="font-weight:bold" href="../docs.html">Developer Menu</a></li><li><a style="font-weight:bold" href="../examples/index.html">Code Examples</a></li><li><a style="font-weight:bold" href="index.html">API Menu</a></li><li><a href="libxml-parser.html">Parser API</a></li><li><a href="libxml-tree.html">Tree API</a></li><li><a href="libxml-xmlreader.html">Reader API</a></li><li><a href="../guidelines.html">XML Guidelines</a></li><li><a href="../ChangeLog.html">ChangeLog</a></li></ul></td></tr></table><table width="100%" border="0" cellspacing="1" cellpadding="3"><tr><td colspan="1" bgcolor="#eecfa1" align="center"><center><b>API Indexes</b></center></td></tr><tr><td bgcolor="#fffacd"><ul><li><a href="../APIchunk0.html">Alphabetic</a></li><li><a href="../APIconstructors.html">Constructors</a></li><li><a href="../APIfunctions.html">Functions/Types</a></li><li><a href="../APIfiles.html">Modules</a></li><li><a href="../APIsymbols.html">Symbols</a></li></ul></td></tr></table><table width="100%" border="0" cellspacing="1" cellpadding="3"><tr><td colspan="1" bgcolor="#eecfa1" align="center"><center><b>Related links</b></center></td></tr><tr><td bgcolor="#fffacd"><ul><li><a href="http://mail.gnome.org/archives/xml/">Mail archive</a></li><li><a href="http://xmlsoft.org/XSLT/">XSLT libxslt</a></li><li><a href="http://phd.cs.unibo.it/gdome2/">DOM gdome2</a></li><li><a href="http://www.aleksey.com/xmlsec/">XML-DSig xmlsec</a></li><li><a href="ftp://xmlsoft.org/">FTP</a></li><li><a href="http://www.zlatkovic.com/projects/libxml/">Windows binaries</a></li><li><a href="http://www.blastwave.org/packages.php/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_MARKED">XML_SCHEMAS_ATTRGROUP_MARKED</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_ATTRGROUP_WILDCARD_BUILDED">XML_SCHEMAS_ATTRGROUP_WILDCARD_BUILDED</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_ATTR_FIXED">XML_SCHEMAS_ATTR_FIXED</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_ATTR_GLOBAL">XML_SCHEMAS_ATTR_GLOBAL</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_ATTR_INTERNAL_RESOLVED">XML_SCHEMAS_ATTR_INTERNAL_RESOLVED</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_ATTR_NSDEFAULT">XML_SCHEMAS_ATTR_NSDEFAULT</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_ATTR_USE_OPTIONAL">XML_SCHEMAS_ATTR_USE_OPTIONAL</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_ATTR_USE_PROHIBITED">XML_SCHEMAS_ATTR_USE_PROHIBITED</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_ATTR_USE_REQUIRED">XML_SCHEMAS_ATTR_USE_REQUIRED</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_BLOCK_DEFAULT_EXTENSION">XML_SCHEMAS_BLOCK_DEFAULT_EXTENSION</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_BLOCK_DEFAULT_RESTRICTION">XML_SCHEMAS_BLOCK_DEFAULT_RESTRICTION</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_BLOCK_DEFAULT_SUBSTITUTION">XML_SCHEMAS_BLOCK_DEFAULT_SUBSTITUTION</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_ELEM_ABSTRACT">XML_SCHEMAS_ELEM_ABSTRACT</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_ELEM_BLOCK_ABSENT">XML_SCHEMAS_ELEM_BLOCK_ABSENT</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_ELEM_BLOCK_EXTENSION">XML_SCHEMAS_ELEM_BLOCK_EXTENSION</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_ELEM_BLOCK_RESTRICTION">XML_SCHEMAS_ELEM_BLOCK_RESTRICTION</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_ELEM_BLOCK_SUBSTITUTION">XML_SCHEMAS_ELEM_BLOCK_SUBSTITUTION</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_ELEM_CIRCULAR">XML_SCHEMAS_ELEM_CIRCULAR</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_ELEM_DEFAULT">XML_SCHEMAS_ELEM_DEFAULT</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_ELEM_FINAL_ABSENT">XML_SCHEMAS_ELEM_FINAL_ABSENT</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_ELEM_FINAL_EXTENSION">XML_SCHEMAS_ELEM_FINAL_EXTENSION</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_ELEM_FINAL_RESTRICTION">XML_SCHEMAS_ELEM_FINAL_RESTRICTION</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_ELEM_FIXED">XML_SCHEMAS_ELEM_FIXED</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_ELEM_GLOBAL">XML_SCHEMAS_ELEM_GLOBAL</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_ELEM_INTERNAL_RESOLVED">XML_SCHEMAS_ELEM_INTERNAL_RESOLVED</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_ELEM_NILLABLE">XML_SCHEMAS_ELEM_NILLABLE</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_ELEM_NSDEFAULT">XML_SCHEMAS_ELEM_NSDEFAULT</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_ELEM_REF">XML_SCHEMAS_ELEM_REF</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_ELEM_TOPLEVEL">XML_SCHEMAS_ELEM_TOPLEVEL</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_FACET_COLLAPSE">XML_SCHEMAS_FACET_COLLAPSE</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_FACET_PRESERVE">XML_SCHEMAS_FACET_PRESERVE</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_FACET_REPLACE">XML_SCHEMAS_FACET_REPLACE</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_FACET_UNKNOWN">XML_SCHEMAS_FACET_UNKNOWN</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_FINAL_DEFAULT_EXTENSION">XML_SCHEMAS_FINAL_DEFAULT_EXTENSION</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_FINAL_DEFAULT_LIST">XML_SCHEMAS_FINAL_DEFAULT_LIST</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_FINAL_DEFAULT_RESTRICTION">XML_SCHEMAS_FINAL_DEFAULT_RESTRICTION</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_FINAL_DEFAULT_UNION">XML_SCHEMAS_FINAL_DEFAULT_UNION</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_INCLUDING_CONVERT_NS">XML_SCHEMAS_INCLUDING_CONVERT_NS</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_QUALIF_ATTR">XML_SCHEMAS_QUALIF_ATTR</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_QUALIF_ELEM">XML_SCHEMAS_QUALIF_ELEM</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_TYPE_ABSTRACT">XML_SCHEMAS_TYPE_ABSTRACT</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_TYPE_BLOCK_DEFAULT">XML_SCHEMAS_TYPE_BLOCK_DEFAULT</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_TYPE_BLOCK_EXTENSION">XML_SCHEMAS_TYPE_BLOCK_EXTENSION</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_TYPE_BLOCK_RESTRICTION">XML_SCHEMAS_TYPE_BLOCK_RESTRICTION</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_TYPE_BUILTIN_PRIMITIVE">XML_SCHEMAS_TYPE_BUILTIN_PRIMITIVE</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_TYPE_DERIVATION_METHOD_EXTENSION">XML_SCHEMAS_TYPE_DERIVATION_METHOD_EXTENSION</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_TYPE_DERIVATION_METHOD_RESTRICTION">XML_SCHEMAS_TYPE_DERIVATION_METHOD_RESTRICTION</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_TYPE_FACETSNEEDVALUE">XML_SCHEMAS_TYPE_FACETSNEEDVALUE</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_TYPE_FINAL_DEFAULT">XML_SCHEMAS_TYPE_FINAL_DEFAULT</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_TYPE_FINAL_EXTENSION">XML_SCHEMAS_TYPE_FINAL_EXTENSION</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_TYPE_FINAL_LIST">XML_SCHEMAS_TYPE_FINAL_LIST</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_TYPE_FINAL_RESTRICTION">XML_SCHEMAS_TYPE_FINAL_RESTRICTION</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_TYPE_FINAL_UNION">XML_SCHEMAS_TYPE_FINAL_UNION</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_TYPE_GLOBAL">XML_SCHEMAS_TYPE_GLOBAL</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_TYPE_MARKED">XML_SCHEMAS_TYPE_MARKED</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_TYPE_MIXED">XML_SCHEMAS_TYPE_MIXED</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_TYPE_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
+ </style><title>Module schemasInternals from libxml2</title></head><body bgcolor="#8b7765" text="#000000" link="#a06060" vlink="#000000"><table border="0" width="100%" cellpadding="5" cellspacing="0" align="center"><tr><td width="120"><a href="http://swpat.ffii.org/"><img src="../epatents.png" alt="Action against software patents" /></a></td><td width="180"><a href="http://www.gnome.org/"><img src="../gnome2.png" alt="Gnome2 Logo" /></a><a href="http://www.w3.org/Status"><img src="../w3c.png" alt="W3C Logo" /></a><a href="http://www.redhat.com/"><img src="../redhat.gif" alt="Red Hat Logo" /></a><div align="left"><a href="http://xmlsoft.org/"><img src="../Libxml2-Logo-180x168.gif" alt="Made with Libxml2 Logo" /></a></div></td><td><table border="0" width="90%" cellpadding="2" cellspacing="0" align="center" bgcolor="#000000"><tr><td><table width="100%" border="0" cellspacing="1" cellpadding="3" bgcolor="#fffacd"><tr><td align="center"><h1></h1><h2>Module schemasInternals from libxml2</h2></td></tr></table></td></tr></table></td></tr></table><table border="0" cellpadding="4" cellspacing="0" width="100%" align="center"><tr><td bgcolor="#8b7765"><table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td valign="top" width="200" bgcolor="#8b7765"><table border="0" cellspacing="0" cellpadding="1" width="100%" bgcolor="#000000"><tr><td><table width="100%" border="0" cellspacing="1" cellpadding="3"><tr><td colspan="1" bgcolor="#eecfa1" align="center"><center><b>API Menu</b></center></td></tr><tr><td bgcolor="#fffacd"><form action="../search.php" enctype="application/x-www-form-urlencoded" method="get"><input name="query" type="text" size="20" value="" /><input name="submit" type="submit" value="Search ..." /></form><ul><li><a style="font-weight:bold" href="../index.html">Main Menu</a></li><li><a style="font-weight:bold" href="../docs.html">Developer Menu</a></li><li><a style="font-weight:bold" href="../examples/index.html">Code Examples</a></li><li><a style="font-weight:bold" href="index.html">API Menu</a></li><li><a href="libxml-parser.html">Parser API</a></li><li><a href="libxml-tree.html">Tree API</a></li><li><a href="libxml-xmlreader.html">Reader API</a></li><li><a href="../guidelines.html">XML Guidelines</a></li><li><a href="../ChangeLog.html">ChangeLog</a></li></ul></td></tr></table><table width="100%" border="0" cellspacing="1" cellpadding="3"><tr><td colspan="1" bgcolor="#eecfa1" align="center"><center><b>API Indexes</b></center></td></tr><tr><td bgcolor="#fffacd"><ul><li><a href="../APIchunk0.html">Alphabetic</a></li><li><a href="../APIconstructors.html">Constructors</a></li><li><a href="../APIfunctions.html">Functions/Types</a></li><li><a href="../APIfiles.html">Modules</a></li><li><a href="../APIsymbols.html">Symbols</a></li></ul></td></tr></table><table width="100%" border="0" cellspacing="1" cellpadding="3"><tr><td colspan="1" bgcolor="#eecfa1" align="center"><center><b>Related links</b></center></td></tr><tr><td bgcolor="#fffacd"><ul><li><a href="http://mail.gnome.org/archives/xml/">Mail archive</a></li><li><a href="http://xmlsoft.org/XSLT/">XSLT libxslt</a></li><li><a href="http://phd.cs.unibo.it/gdome2/">DOM gdome2</a></li><li><a href="http://www.aleksey.com/xmlsec/">XML-DSig xmlsec</a></li><li><a href="ftp://xmlsoft.org/">FTP</a></li><li><a href="http://www.zlatkovic.com/projects/libxml/">Windows binaries</a></li><li><a href="http://www.blastwave.org/packages.php/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_MARKED">XML_SCHEMAS_ATTRGROUP_MARKED</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_ATTRGROUP_WILDCARD_BUILDED">XML_SCHEMAS_ATTRGROUP_WILDCARD_BUILDED</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_ATTR_FIXED">XML_SCHEMAS_ATTR_FIXED</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_ATTR_GLOBAL">XML_SCHEMAS_ATTR_GLOBAL</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_ATTR_INTERNAL_RESOLVED">XML_SCHEMAS_ATTR_INTERNAL_RESOLVED</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_ATTR_NSDEFAULT">XML_SCHEMAS_ATTR_NSDEFAULT</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_ATTR_USE_OPTIONAL">XML_SCHEMAS_ATTR_USE_OPTIONAL</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_ATTR_USE_PROHIBITED">XML_SCHEMAS_ATTR_USE_PROHIBITED</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_ATTR_USE_REQUIRED">XML_SCHEMAS_ATTR_USE_REQUIRED</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_BLOCK_DEFAULT_EXTENSION">XML_SCHEMAS_BLOCK_DEFAULT_EXTENSION</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_BLOCK_DEFAULT_RESTRICTION">XML_SCHEMAS_BLOCK_DEFAULT_RESTRICTION</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_BLOCK_DEFAULT_SUBSTITUTION">XML_SCHEMAS_BLOCK_DEFAULT_SUBSTITUTION</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_ELEM_ABSTRACT">XML_SCHEMAS_ELEM_ABSTRACT</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_ELEM_BLOCK_ABSENT">XML_SCHEMAS_ELEM_BLOCK_ABSENT</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_ELEM_BLOCK_EXTENSION">XML_SCHEMAS_ELEM_BLOCK_EXTENSION</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_ELEM_BLOCK_RESTRICTION">XML_SCHEMAS_ELEM_BLOCK_RESTRICTION</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_ELEM_BLOCK_SUBSTITUTION">XML_SCHEMAS_ELEM_BLOCK_SUBSTITUTION</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_ELEM_CIRCULAR">XML_SCHEMAS_ELEM_CIRCULAR</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_ELEM_DEFAULT">XML_SCHEMAS_ELEM_DEFAULT</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_ELEM_FINAL_ABSENT">XML_SCHEMAS_ELEM_FINAL_ABSENT</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_ELEM_FINAL_EXTENSION">XML_SCHEMAS_ELEM_FINAL_EXTENSION</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_ELEM_FINAL_RESTRICTION">XML_SCHEMAS_ELEM_FINAL_RESTRICTION</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_ELEM_FIXED">XML_SCHEMAS_ELEM_FIXED</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_ELEM_GLOBAL">XML_SCHEMAS_ELEM_GLOBAL</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_ELEM_INTERNAL_RESOLVED">XML_SCHEMAS_ELEM_INTERNAL_RESOLVED</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_ELEM_NILLABLE">XML_SCHEMAS_ELEM_NILLABLE</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_ELEM_NSDEFAULT">XML_SCHEMAS_ELEM_NSDEFAULT</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_ELEM_REF">XML_SCHEMAS_ELEM_REF</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_ELEM_TOPLEVEL">XML_SCHEMAS_ELEM_TOPLEVEL</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_FACET_COLLAPSE">XML_SCHEMAS_FACET_COLLAPSE</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_FACET_PRESERVE">XML_SCHEMAS_FACET_PRESERVE</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_FACET_REPLACE">XML_SCHEMAS_FACET_REPLACE</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_FACET_UNKNOWN">XML_SCHEMAS_FACET_UNKNOWN</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_FINAL_DEFAULT_EXTENSION">XML_SCHEMAS_FINAL_DEFAULT_EXTENSION</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_FINAL_DEFAULT_LIST">XML_SCHEMAS_FINAL_DEFAULT_LIST</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_FINAL_DEFAULT_RESTRICTION">XML_SCHEMAS_FINAL_DEFAULT_RESTRICTION</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_FINAL_DEFAULT_UNION">XML_SCHEMAS_FINAL_DEFAULT_UNION</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_INCLUDING_CONVERT_NS">XML_SCHEMAS_INCLUDING_CONVERT_NS</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_QUALIF_ATTR">XML_SCHEMAS_QUALIF_ATTR</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_QUALIF_ELEM">XML_SCHEMAS_QUALIF_ELEM</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_TYPE_ABSTRACT">XML_SCHEMAS_TYPE_ABSTRACT</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_TYPE_BLOCK_DEFAULT">XML_SCHEMAS_TYPE_BLOCK_DEFAULT</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_TYPE_BLOCK_EXTENSION">XML_SCHEMAS_TYPE_BLOCK_EXTENSION</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_TYPE_BLOCK_RESTRICTION">XML_SCHEMAS_TYPE_BLOCK_RESTRICTION</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_TYPE_BUILTIN_PRIMITIVE">XML_SCHEMAS_TYPE_BUILTIN_PRIMITIVE</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_TYPE_DERIVATION_METHOD_EXTENSION">XML_SCHEMAS_TYPE_DERIVATION_METHOD_EXTENSION</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_TYPE_DERIVATION_METHOD_RESTRICTION">XML_SCHEMAS_TYPE_DERIVATION_METHOD_RESTRICTION</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_TYPE_FACETSNEEDVALUE">XML_SCHEMAS_TYPE_FACETSNEEDVALUE</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_TYPE_FINAL_DEFAULT">XML_SCHEMAS_TYPE_FINAL_DEFAULT</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_TYPE_FINAL_EXTENSION">XML_SCHEMAS_TYPE_FINAL_EXTENSION</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_TYPE_FINAL_LIST">XML_SCHEMAS_TYPE_FINAL_LIST</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_TYPE_FINAL_RESTRICTION">XML_SCHEMAS_TYPE_FINAL_RESTRICTION</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_TYPE_FINAL_UNION">XML_SCHEMAS_TYPE_FINAL_UNION</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_TYPE_GLOBAL">XML_SCHEMAS_TYPE_GLOBAL</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_TYPE_INTERNAL_INVALID">XML_SCHEMAS_TYPE_INTERNAL_INVALID</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_TYPE_INTERNAL_RESOLVED">XML_SCHEMAS_TYPE_INTERNAL_RESOLVED</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_TYPE_MARKED">XML_SCHEMAS_TYPE_MARKED</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_TYPE_MIXED">XML_SCHEMAS_TYPE_MIXED</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_TYPE_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
@@ -104,6 +104,8 @@ The content of this structure is not made public by the API.
<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_INTERNAL_INVALID" id="XML_SCHEMAS_TYPE_INTERNAL_INVALID"></a>Macro: XML_SCHEMAS_TYPE_INTERNAL_INVALID</h3><pre>#define XML_SCHEMAS_TYPE_INTERNAL_INVALID</pre><p>indicates that the type is invalid</p>
+<h3><a name="XML_SCHEMAS_TYPE_INTERNAL_RESOLVED" id="XML_SCHEMAS_TYPE_INTERNAL_RESOLVED"></a>Macro: XML_SCHEMAS_TYPE_INTERNAL_RESOLVED</h3><pre>#define XML_SCHEMAS_TYPE_INTERNAL_RESOLVED</pre><p>indicates that the type was typefixed</p>
<h3><a name="XML_SCHEMAS_TYPE_MARKED" id="XML_SCHEMAS_TYPE_MARKED"></a>Macro: XML_SCHEMAS_TYPE_MARKED</h3><pre>#define XML_SCHEMAS_TYPE_MARKED</pre><p>Marks the item as marked; used for circular checks.</p>
<h3><a name="XML_SCHEMAS_TYPE_MIXED" id="XML_SCHEMAS_TYPE_MIXED"></a>Macro: XML_SCHEMAS_TYPE_MIXED</h3><pre>#define XML_SCHEMAS_TYPE_MIXED</pre><p>the element content type is mixed</p>
<h3><a name="XML_SCHEMAS_TYPE_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>
@@ -268,6 +270,7 @@ The content of this structure is not made public by the API.
<a name="XML_SCHEMA_TYPE_IDC_UNIQUE" id="XML_SCHEMA_TYPE_IDC_UNIQUE">XML_SCHEMA_TYPE_IDC_UNIQUE</a> = 22
<a name="XML_SCHEMA_TYPE_IDC_KEY" id="XML_SCHEMA_TYPE_IDC_KEY">XML_SCHEMA_TYPE_IDC_KEY</a> = 23
<a name="XML_SCHEMA_TYPE_IDC_KEYREF" id="XML_SCHEMA_TYPE_IDC_KEYREF">XML_SCHEMA_TYPE_IDC_KEYREF</a> = 24
+ <a name="XML_SCHEMA_TYPE_PARTICLE" id="XML_SCHEMA_TYPE_PARTICLE">XML_SCHEMA_TYPE_PARTICLE</a> = 25
<a name="XML_SCHEMA_FACET_MININCLUSIVE" id="XML_SCHEMA_FACET_MININCLUSIVE">XML_SCHEMA_FACET_MININCLUSIVE</a> = 1000
<a name="XML_SCHEMA_FACET_MINEXCLUSIVE" id="XML_SCHEMA_FACET_MINEXCLUSIVE">XML_SCHEMA_FACET_MINEXCLUSIVE</a> = 1001
<a name="XML_SCHEMA_FACET_MAXINCLUSIVE" id="XML_SCHEMA_FACET_MAXINCLUSIVE">XML_SCHEMA_FACET_MAXINCLUSIVE</a> = 1002
@@ -280,6 +283,7 @@ The content of this structure is not made public by the API.
<a name="XML_SCHEMA_FACET_LENGTH" id="XML_SCHEMA_FACET_LENGTH">XML_SCHEMA_FACET_LENGTH</a> = 1009
<a name="XML_SCHEMA_FACET_MAXLENGTH" id="XML_SCHEMA_FACET_MAXLENGTH">XML_SCHEMA_FACET_MAXLENGTH</a> = 1010
<a name="XML_SCHEMA_FACET_MINLENGTH" id="XML_SCHEMA_FACET_MINLENGTH">XML_SCHEMA_FACET_MINLENGTH</a> = 1011
+ <a name="XML_SCHEMA_EXTRA_QNAMEREF" id="XML_SCHEMA_EXTRA_QNAMEREF">XML_SCHEMA_EXTRA_QNAMEREF</a> = 2000
}
</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.
diff --git a/doc/html/libxml-xmlerror.html b/doc/html/libxml-xmlerror.html
index 425bcfc..5d8f74e 100644
--- a/doc/html/libxml-xmlerror.html
+++ b/doc/html/libxml-xmlerror.html
@@ -657,6 +657,8 @@ void <a href="#xmlStructuredErrorFunc">xmlStructuredErrorFunc</a> (void * userD
<a name="XML_C14N_REQUIRES_UTF8" id="XML_C14N_REQUIRES_UTF8">XML_C14N_REQUIRES_UTF8</a> = 1951 : 1951
<a name="XML_C14N_CREATE_STACK" id="XML_C14N_CREATE_STACK">XML_C14N_CREATE_STACK</a> = 1952 : 1952
<a name="XML_C14N_INVALID_NODE" id="XML_C14N_INVALID_NODE">XML_C14N_INVALID_NODE</a> = 1953 : 1953
+ <a name="XML_C14N_UNKNOW_NODE" id="XML_C14N_UNKNOW_NODE">XML_C14N_UNKNOW_NODE</a> = 1954 : 1954
+ <a name="XML_C14N_RELATIVE_NAMESPACE" id="XML_C14N_RELATIVE_NAMESPACE">XML_C14N_RELATIVE_NAMESPACE</a> = 1955 : 1955
<a name="XML_FTP_PASV_ANSWER" id="XML_FTP_PASV_ANSWER">XML_FTP_PASV_ANSWER</a> = 2000
<a name="XML_FTP_EPSV_ANSWER" id="XML_FTP_EPSV_ANSWER">XML_FTP_EPSV_ANSWER</a> = 2001 : 2001
<a name="XML_FTP_ACCNT" id="XML_FTP_ACCNT">XML_FTP_ACCNT</a> = 2002 : 2002
diff --git a/doc/html/libxml-xmlschemas.html b/doc/html/libxml-xmlschemas.html
index 91b1ab9..69cbc50 100644
--- a/doc/html/libxml-xmlschemas.html
+++ b/doc/html/libxml-xmlschemas.html
@@ -66,6 +66,7 @@ void <a href="#xmlSchemaValidityWarningFunc">xmlSchemaValidityWarningFunc</a> (v
int preserve : whether to free the document
int counter : used to give ononymous components uniqu
<a href="libxml-hash.html#xmlHashTablePtr">xmlHashTablePtr</a> idcDef
+ void * volatiles : Misc. helper items (e.g. <a href="libxml-SAX.html#reference">reference</a> item
}</pre><h3><a name="xmlSchemaParserCtxt" id="xmlSchemaParserCtxt">Structure xmlSchemaParserCtxt</a></h3><pre class="programlisting">Structure xmlSchemaParserCtxt<br />struct _xmlSchemaParserCtxt {
The content of this structure is not made public by the API.
}</pre><h3><a name="xmlSchemaValidCtxt" id="xmlSchemaValidCtxt">Structure xmlSchemaValidCtxt</a></h3><pre class="programlisting">Structure xmlSchemaValidCtxt<br />struct _xmlSchemaValidCtxt {
diff --git a/doc/html/libxml-xmlschemastypes.html b/doc/html/libxml-xmlschemastypes.html
index cf304ad..ced84aa 100644
--- a/doc/html/libxml-xmlschemastypes.html
+++ b/doc/html/libxml-xmlschemastypes.html
@@ -24,6 +24,7 @@ A:link, A:visited, A:active { text-decoration: underline }
<pre class="programlisting">int <a href="#xmlSchemaGetCanonValue">xmlSchemaGetCanonValue</a> (<a href="libxml-schemasInternals.html#xmlSchemaValPtr">xmlSchemaValPtr</a> val, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> ** retValue)</pre>
<pre class="programlisting">unsigned long <a href="#xmlSchemaGetFacetValueAsULong">xmlSchemaGetFacetValueAsULong</a> (<a href="libxml-schemasInternals.html#xmlSchemaFacetPtr">xmlSchemaFacetPtr</a> facet)</pre>
<pre class="programlisting"><a href="libxml-schemasInternals.html#xmlSchemaTypePtr">xmlSchemaTypePtr</a> <a href="#xmlSchemaGetPredefinedType">xmlSchemaGetPredefinedType</a> (const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * ns)</pre>
+<pre class="programlisting"><a href="libxml-schemasInternals.html#xmlSchemaValType">xmlSchemaValType</a> <a href="#xmlSchemaGetValType">xmlSchemaGetValType</a> (<a href="libxml-schemasInternals.html#xmlSchemaValPtr">xmlSchemaValPtr</a> val)</pre>
<pre class="programlisting">void <a href="#xmlSchemaInitTypes">xmlSchemaInitTypes</a> (void)</pre>
<pre class="programlisting">int <a href="#xmlSchemaIsBuiltInTypeFacet">xmlSchemaIsBuiltInTypeFacet</a> (<a href="libxml-schemasInternals.html#xmlSchemaTypePtr">xmlSchemaTypePtr</a> type, <br /> int facetType)</pre>
<pre class="programlisting"><a href="libxml-schemasInternals.html#xmlSchemaFacetPtr">xmlSchemaFacetPtr</a> <a href="#xmlSchemaNewFacet">xmlSchemaNewFacet</a> (void)</pre>
@@ -32,7 +33,9 @@ A:link, A:visited, A:active { text-decoration: underline }
<pre class="programlisting">int <a href="#xmlSchemaValPredefTypeNode">xmlSchemaValPredefTypeNode</a> (<a href="libxml-schemasInternals.html#xmlSchemaTypePtr">xmlSchemaTypePtr</a> type, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * value, <br /> <a href="libxml-schemasInternals.html#xmlSchemaValPtr">xmlSchemaValPtr</a> * val, <br /> <a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> node)</pre>
<pre class="programlisting">int <a href="#xmlSchemaValPredefTypeNodeNoNorm">xmlSchemaValPredefTypeNodeNoNorm</a> (<a href="libxml-schemasInternals.html#xmlSchemaTypePtr">xmlSchemaTypePtr</a> type, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * value, <br /> <a href="libxml-schemasInternals.html#xmlSchemaValPtr">xmlSchemaValPtr</a> * val, <br /> <a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> node)</pre>
<pre class="programlisting">int <a href="#xmlSchemaValidateFacet">xmlSchemaValidateFacet</a> (<a href="libxml-schemasInternals.html#xmlSchemaTypePtr">xmlSchemaTypePtr</a> base, <br /> <a href="libxml-schemasInternals.html#xmlSchemaFacetPtr">xmlSchemaFacetPtr</a> facet, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * value, <br /> <a href="libxml-schemasInternals.html#xmlSchemaValPtr">xmlSchemaValPtr</a> val)</pre>
+<pre class="programlisting">int <a href="#xmlSchemaValidateFacetWhtsp">xmlSchemaValidateFacetWhtsp</a> (<a href="libxml-schemasInternals.html#xmlSchemaFacetPtr">xmlSchemaFacetPtr</a> facet, <br /> <a href="libxml-xmlschemastypes.html#xmlSchemaWhitespaceValueType">xmlSchemaWhitespaceValueType</a> fws, <br /> <a href="libxml-schemasInternals.html#xmlSchemaValType">xmlSchemaValType</a> valType, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * value, <br /> <a href="libxml-schemasInternals.html#xmlSchemaValPtr">xmlSchemaValPtr</a> val, <br /> <a href="libxml-xmlschemastypes.html#xmlSchemaWhitespaceValueType">xmlSchemaWhitespaceValueType</a> ws)</pre>
<pre class="programlisting">int <a href="#xmlSchemaValidateLengthFacet">xmlSchemaValidateLengthFacet</a> (<a href="libxml-schemasInternals.html#xmlSchemaTypePtr">xmlSchemaTypePtr</a> type, <br /> <a href="libxml-schemasInternals.html#xmlSchemaFacetPtr">xmlSchemaFacetPtr</a> facet, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * value, <br /> <a href="libxml-schemasInternals.html#xmlSchemaValPtr">xmlSchemaValPtr</a> val, <br /> unsigned long * length)</pre>
+<pre class="programlisting">int <a href="#xmlSchemaValidateLengthFacetWhtsp">xmlSchemaValidateLengthFacetWhtsp</a> (<a href="libxml-schemasInternals.html#xmlSchemaFacetPtr">xmlSchemaFacetPtr</a> facet, <br /> <a href="libxml-schemasInternals.html#xmlSchemaValType">xmlSchemaValType</a> valType, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * value, <br /> <a href="libxml-schemasInternals.html#xmlSchemaValPtr">xmlSchemaValPtr</a> val, <br /> unsigned long * length, <br /> <a href="libxml-xmlschemastypes.html#xmlSchemaWhitespaceValueType">xmlSchemaWhitespaceValueType</a> ws)</pre>
<pre class="programlisting">int <a href="#xmlSchemaValidateListSimpleTypeFacet">xmlSchemaValidateListSimpleTypeFacet</a> (<a href="libxml-schemasInternals.html#xmlSchemaFacetPtr">xmlSchemaFacetPtr</a> facet, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * value, <br /> unsigned long actualLen, <br /> unsigned long * expectedLen)</pre>
<pre class="programlisting">int <a href="#xmlSchemaValidatePredefinedType">xmlSchemaValidatePredefinedType</a> (<a href="libxml-schemasInternals.html#xmlSchemaTypePtr">xmlSchemaTypePtr</a> type, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * value, <br /> <a href="libxml-schemasInternals.html#xmlSchemaValPtr">xmlSchemaValPtr</a> * val)</pre>
<pre class="programlisting"><a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * <a href="#xmlSchemaWhiteSpaceReplace">xmlSchemaWhiteSpaceReplace</a> (const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * value)</pre>
@@ -64,12 +67,14 @@ 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>type</tt></i>:</span></td><td>the built-in simple type.</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the item type of @type as defined by the built-in datatype hierarchy of XML Schema Part 2: Datatypes, or NULL in case of an error.</td></tr></tbody></table></div><h3><a name="xmlSchemaGetBuiltInType" id="xmlSchemaGetBuiltInType"></a>Function: xmlSchemaGetBuiltInType</h3><pre class="programlisting"><a href="libxml-schemasInternals.html#xmlSchemaTypePtr">xmlSchemaTypePtr</a> xmlSchemaGetBuiltInType (<a href="libxml-schemasInternals.html#xmlSchemaValType">xmlSchemaValType</a> type)<br />
</pre><p>Gives you the type struct for a built-in type by its type id.</p>
<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>type</tt></i>:</span></td><td>the type of the built in type</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the type if found, NULL otherwise.</td></tr></tbody></table></div><h3><a name="xmlSchemaGetCanonValue" id="xmlSchemaGetCanonValue"></a>Function: xmlSchemaGetCanonValue</h3><pre class="programlisting">int xmlSchemaGetCanonValue (<a href="libxml-schemasInternals.html#xmlSchemaValPtr">xmlSchemaValPtr</a> val, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> ** retValue)<br />
-</pre><p>Get a the cononical representation of the value. The caller has to free the returned retValue.</p>
-<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>val</tt></i>:</span></td><td>the precomputed value</td></tr><tr><td><span class="term"><i><tt>retValue</tt></i>:</span></td><td>the returned value</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 if the value could be built and -1 in case of API errors or if the value type is not supported yet.</td></tr></tbody></table></div><h3><a name="xmlSchemaGetFacetValueAsULong" id="xmlSchemaGetFacetValueAsULong"></a>Function: xmlSchemaGetFacetValueAsULong</h3><pre class="programlisting">unsigned long xmlSchemaGetFacetValueAsULong (<a href="libxml-schemasInternals.html#xmlSchemaFacetPtr">xmlSchemaFacetPtr</a> facet)<br />
+</pre><p>Get a the cononical lexical representation of the value. The caller has to free the returned retValue. WARNING: Some value types are not supported yet, resulting in a @retValue of "???".</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>val</tt></i>:</span></td><td>the precomputed value</td></tr><tr><td><span class="term"><i><tt>retValue</tt></i>:</span></td><td>the returned value</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 if the value could be built and -1 in case of API errors.</td></tr></tbody></table></div><h3><a name="xmlSchemaGetFacetValueAsULong" id="xmlSchemaGetFacetValueAsULong"></a>Function: xmlSchemaGetFacetValueAsULong</h3><pre class="programlisting">unsigned long xmlSchemaGetFacetValueAsULong (<a href="libxml-schemasInternals.html#xmlSchemaFacetPtr">xmlSchemaFacetPtr</a> facet)<br />
</pre><p>Extract the value of a facet</p>
<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>facet</tt></i>:</span></td><td>an schemas type facet</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the value as a long</td></tr></tbody></table></div><h3><a name="xmlSchemaGetPredefinedType" id="xmlSchemaGetPredefinedType"></a>Function: xmlSchemaGetPredefinedType</h3><pre class="programlisting"><a href="libxml-schemasInternals.html#xmlSchemaTypePtr">xmlSchemaTypePtr</a> xmlSchemaGetPredefinedType (const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * ns)<br />
</pre><p>Lookup a type in the default XML Schemas type library</p>
-<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>the type name</td></tr><tr><td><span class="term"><i><tt>ns</tt></i>:</span></td><td>the URI of the namespace usually "http://www.w3.org/2001/XMLSchema"</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the type if found, NULL otherwise</td></tr></tbody></table></div><h3><a name="xmlSchemaInitTypes" id="xmlSchemaInitTypes"></a>Function: xmlSchemaInitTypes</h3><pre class="programlisting">void xmlSchemaInitTypes (void)<br />
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>the type name</td></tr><tr><td><span class="term"><i><tt>ns</tt></i>:</span></td><td>the URI of the namespace usually "http://www.w3.org/2001/XMLSchema"</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the type if found, NULL otherwise</td></tr></tbody></table></div><h3><a name="xmlSchemaGetValType" id="xmlSchemaGetValType"></a>Function: xmlSchemaGetValType</h3><pre class="programlisting"><a href="libxml-schemasInternals.html#xmlSchemaValType">xmlSchemaValType</a> xmlSchemaGetValType (<a href="libxml-schemasInternals.html#xmlSchemaValPtr">xmlSchemaValPtr</a> val)<br />
+</pre><p>Accessor for the type of a value</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>val</tt></i>:</span></td><td>a schemas value</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the <a href="libxml-schemasInternals.html#xmlSchemaValType">xmlSchemaValType</a> of the value</td></tr></tbody></table></div><h3><a name="xmlSchemaInitTypes" id="xmlSchemaInitTypes"></a>Function: xmlSchemaInitTypes</h3><pre class="programlisting">void xmlSchemaInitTypes (void)<br />
</pre><p>Initialize the default XML Schemas type library</p>
<h3><a name="xmlSchemaIsBuiltInTypeFacet" id="xmlSchemaIsBuiltInTypeFacet"></a>Function: xmlSchemaIsBuiltInTypeFacet</h3><pre class="programlisting">int xmlSchemaIsBuiltInTypeFacet (<a href="libxml-schemasInternals.html#xmlSchemaTypePtr">xmlSchemaTypePtr</a> type, <br /> int facetType)<br />
</pre><p>Evaluates if a specific facet can be used in conjunction with a type.</p>
@@ -85,9 +90,13 @@ A:link, A:visited, A:active { text-decoration: underline }
</pre><p>Check that a value conforms to the lexical space of the predefined type. if true a value is computed and returned in @val. This one does apply any normalization to the value.</p>
<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>type</tt></i>:</span></td><td>the predefined type</td></tr><tr><td><span class="term"><i><tt>value</tt></i>:</span></td><td>the value to check</td></tr><tr><td><span class="term"><i><tt>val</tt></i>:</span></td><td>the return computed value</td></tr><tr><td><span class="term"><i><tt>node</tt></i>:</span></td><td>the node containing the value</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 if this validates, a positive error code number otherwise and -1 in case of internal or API error.</td></tr></tbody></table></div><h3><a name="xmlSchemaValidateFacet" id="xmlSchemaValidateFacet"></a>Function: xmlSchemaValidateFacet</h3><pre class="programlisting">int xmlSchemaValidateFacet (<a href="libxml-schemasInternals.html#xmlSchemaTypePtr">xmlSchemaTypePtr</a> base, <br /> <a href="libxml-schemasInternals.html#xmlSchemaFacetPtr">xmlSchemaFacetPtr</a> facet, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * value, <br /> <a href="libxml-schemasInternals.html#xmlSchemaValPtr">xmlSchemaValPtr</a> val)<br />
</pre><p>Check a value against a facet condition</p>
-<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>base</tt></i>:</span></td><td>the base type</td></tr><tr><td><span class="term"><i><tt>facet</tt></i>:</span></td><td>the facet to check</td></tr><tr><td><span class="term"><i><tt>value</tt></i>:</span></td><td>the lexical repr of the value to validate</td></tr><tr><td><span class="term"><i><tt>val</tt></i>:</span></td><td>the precomputed value</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 if the element is schemas valid, a positive error code number otherwise and -1 in case of internal or API error.</td></tr></tbody></table></div><h3><a name="xmlSchemaValidateLengthFacet" id="xmlSchemaValidateLengthFacet"></a>Function: xmlSchemaValidateLengthFacet</h3><pre class="programlisting">int xmlSchemaValidateLengthFacet (<a href="libxml-schemasInternals.html#xmlSchemaTypePtr">xmlSchemaTypePtr</a> type, <br /> <a href="libxml-schemasInternals.html#xmlSchemaFacetPtr">xmlSchemaFacetPtr</a> facet, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * value, <br /> <a href="libxml-schemasInternals.html#xmlSchemaValPtr">xmlSchemaValPtr</a> val, <br /> unsigned long * length)<br />
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>base</tt></i>:</span></td><td>the base type</td></tr><tr><td><span class="term"><i><tt>facet</tt></i>:</span></td><td>the facet to check</td></tr><tr><td><span class="term"><i><tt>value</tt></i>:</span></td><td>the lexical repr of the value to validate</td></tr><tr><td><span class="term"><i><tt>val</tt></i>:</span></td><td>the precomputed value</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 if the element is schemas valid, a positive error code number otherwise and -1 in case of internal or API error.</td></tr></tbody></table></div><h3><a name="xmlSchemaValidateFacetWhtsp" id="xmlSchemaValidateFacetWhtsp"></a>Function: xmlSchemaValidateFacetWhtsp</h3><pre class="programlisting">int xmlSchemaValidateFacetWhtsp (<a href="libxml-schemasInternals.html#xmlSchemaFacetPtr">xmlSchemaFacetPtr</a> facet, <br /> <a href="libxml-xmlschemastypes.html#xmlSchemaWhitespaceValueType">xmlSchemaWhitespaceValueType</a> fws, <br /> <a href="libxml-schemasInternals.html#xmlSchemaValType">xmlSchemaValType</a> valType, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * value, <br /> <a href="libxml-schemasInternals.html#xmlSchemaValPtr">xmlSchemaValPtr</a> val, <br /> <a href="libxml-xmlschemastypes.html#xmlSchemaWhitespaceValueType">xmlSchemaWhitespaceValueType</a> ws)<br />
+</pre><p>Check a value against a facet condition. This takes value normalization according to the specified whitespace types into account. Note that @value needs to be the *normalized* value if the facet is of type "pattern".</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>facet</tt></i>:</span></td><td>the facet to check</td></tr><tr><td><span class="term"><i><tt>fws</tt></i>:</span></td><td>the whitespace type of the facet's value</td></tr><tr><td><span class="term"><i><tt>valType</tt></i>:</span></td><td>the built-in type of the value</td></tr><tr><td><span class="term"><i><tt>value</tt></i>:</span></td><td>the lexical (or normalized for pattern) repr of the value to validate</td></tr><tr><td><span class="term"><i><tt>val</tt></i>:</span></td><td>the precomputed value</td></tr><tr><td><span class="term"><i><tt>ws</tt></i>:</span></td><td>the whitespace type of the value</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 if the element is schemas valid, a positive error code number otherwise and -1 in case of internal or API error.</td></tr></tbody></table></div><h3><a name="xmlSchemaValidateLengthFacet" id="xmlSchemaValidateLengthFacet"></a>Function: xmlSchemaValidateLengthFacet</h3><pre class="programlisting">int xmlSchemaValidateLengthFacet (<a href="libxml-schemasInternals.html#xmlSchemaTypePtr">xmlSchemaTypePtr</a> type, <br /> <a href="libxml-schemasInternals.html#xmlSchemaFacetPtr">xmlSchemaFacetPtr</a> facet, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * value, <br /> <a href="libxml-schemasInternals.html#xmlSchemaValPtr">xmlSchemaValPtr</a> val, <br /> unsigned long * length)<br />
</pre><p>Checka a value against a "length", "minLength" and "maxLength" facet; sets @length to the computed length of @value.</p>
-<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>type</tt></i>:</span></td><td>the built-in type</td></tr><tr><td><span class="term"><i><tt>facet</tt></i>:</span></td><td>the facet to check</td></tr><tr><td><span class="term"><i><tt>value</tt></i>:</span></td><td>the lexical repr. of the value to be validated</td></tr><tr><td><span class="term"><i><tt>val</tt></i>:</span></td><td>the precomputed value</td></tr><tr><td><span class="term"><i><tt>length</tt></i>:</span></td><td>the actual length of the value</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 if the value is valid, a positive error code otherwise and -1 in case of an internal or API error.</td></tr></tbody></table></div><h3><a name="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 />
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>type</tt></i>:</span></td><td>the built-in type</td></tr><tr><td><span class="term"><i><tt>facet</tt></i>:</span></td><td>the facet to check</td></tr><tr><td><span class="term"><i><tt>value</tt></i>:</span></td><td>the lexical repr. of the value to be validated</td></tr><tr><td><span class="term"><i><tt>val</tt></i>:</span></td><td>the precomputed value</td></tr><tr><td><span class="term"><i><tt>length</tt></i>:</span></td><td>the actual length of the value</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 if the value is valid, a positive error code otherwise and -1 in case of an internal or API error.</td></tr></tbody></table></div><h3><a name="xmlSchemaValidateLengthFacetWhtsp" id="xmlSchemaValidateLengthFacetWhtsp"></a>Function: xmlSchemaValidateLengthFacetWhtsp</h3><pre class="programlisting">int xmlSchemaValidateLengthFacetWhtsp (<a href="libxml-schemasInternals.html#xmlSchemaFacetPtr">xmlSchemaFacetPtr</a> facet, <br /> <a href="libxml-schemasInternals.html#xmlSchemaValType">xmlSchemaValType</a> valType, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * value, <br /> <a href="libxml-schemasInternals.html#xmlSchemaValPtr">xmlSchemaValPtr</a> val, <br /> unsigned long * length, <br /> <a href="libxml-xmlschemastypes.html#xmlSchemaWhitespaceValueType">xmlSchemaWhitespaceValueType</a> ws)<br />
+</pre><p>Checka a value against a "length", "minLength" and "maxLength" facet; sets @length to the computed length of @value.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>facet</tt></i>:</span></td><td>the facet to check</td></tr><tr><td><span class="term"><i><tt>valType</tt></i>:</span></td><td>the built-in type</td></tr><tr><td><span class="term"><i><tt>value</tt></i>:</span></td><td>the lexical repr. of the value to be validated</td></tr><tr><td><span class="term"><i><tt>val</tt></i>:</span></td><td>the precomputed value</td></tr><tr><td><span class="term"><i><tt>length</tt></i>:</span></td><td>the actual length of the value</td></tr><tr><td><span class="term"><i><tt>ws</tt></i>:</span></td><td>the whitespace type of the value</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 if the value is valid, a positive error code otherwise and -1 in case of an internal or API error.</td></tr></tbody></table></div><h3><a name="xmlSchemaValidateListSimpleTypeFacet" id="xmlSchemaValidateListSimpleTypeFacet"></a>Function: xmlSchemaValidateListSimpleTypeFacet</h3><pre class="programlisting">int xmlSchemaValidateListSimpleTypeFacet (<a href="libxml-schemasInternals.html#xmlSchemaFacetPtr">xmlSchemaFacetPtr</a> facet, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * value, <br /> unsigned long actualLen, <br /> unsigned long * expectedLen)<br />
</pre><p>Checks the value of a list simple type against a facet.</p>
<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>facet</tt></i>:</span></td><td>the facet to check</td></tr><tr><td><span class="term"><i><tt>value</tt></i>:</span></td><td>the lexical repr of the value to validate</td></tr><tr><td><span class="term"><i><tt>actualLen</tt></i>:</span></td><td>the number of list items</td></tr><tr><td><span class="term"><i><tt>expectedLen</tt></i>:</span></td><td>the resulting expected number of list items</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 if the value is valid, a positive error code number otherwise and -1 in case of an internal error.</td></tr></tbody></table></div><h3><a name="xmlSchemaValidatePredefinedType" id="xmlSchemaValidatePredefinedType"></a>Function: xmlSchemaValidatePredefinedType</h3><pre class="programlisting">int xmlSchemaValidatePredefinedType (<a href="libxml-schemasInternals.html#xmlSchemaTypePtr">xmlSchemaTypePtr</a> type, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * value, <br /> <a href="libxml-schemasInternals.html#xmlSchemaValPtr">xmlSchemaValPtr</a> * val)<br />
</pre><p>Check that a value conforms to the lexical space of the predefined type. if true a value is computed and returned in @val.</p>
diff --git a/doc/libxml2-api.xml b/doc/libxml2-api.xml
index df10929..0be6307 100644
--- a/doc/libxml2-api.xml
+++ b/doc/libxml2-api.xml
@@ -1063,6 +1063,7 @@
<exports symbol='XML_SCHEMAS_ATTR_USE_REQUIRED' type='macro'/>
<exports symbol='XML_SCHEMAS_FACET_COLLAPSE' type='macro'/>
<exports symbol='XML_SCHEMAS_ANY_STRICT' type='macro'/>
+ <exports symbol='XML_SCHEMAS_TYPE_INTERNAL_RESOLVED' type='macro'/>
<exports symbol='XML_SCHEMAS_QUALIF_ELEM' type='macro'/>
<exports symbol='XML_SCHEMAS_TYPE_VARIETY_LIST' type='macro'/>
<exports symbol='XML_SCHEMAS_TYPE_DERIVATION_METHOD_RESTRICTION' type='macro'/>
@@ -1107,6 +1108,7 @@
<exports symbol='XML_SCHEMAS_ELEM_FINAL_EXTENSION' type='macro'/>
<exports symbol='XML_SCHEMAS_ELEM_FINAL_ABSENT' type='macro'/>
<exports symbol='XML_SCHEMAS_TYPE_BLOCK_EXTENSION' type='macro'/>
+ <exports symbol='XML_SCHEMAS_TYPE_INTERNAL_INVALID' type='macro'/>
<exports symbol='XML_SCHEMAS_ELEM_TOPLEVEL' type='macro'/>
<exports symbol='XML_SCHEMAS_ELEM_ABSTRACT' type='macro'/>
<exports symbol='XML_SCHEMAS_BLOCK_DEFAULT_EXTENSION' type='macro'/>
@@ -1121,6 +1123,7 @@
<exports symbol='XML_SCHEMAS_ELEM_BLOCK_ABSENT' type='macro'/>
<exports symbol='XML_SCHEMAS_ATTRGROUP_GLOBAL' type='macro'/>
<exports symbol='XML_SCHEMAS_ELEM_REF' type='macro'/>
+ <exports symbol='XML_SCHEMA_EXTRA_QNAMEREF' type='enum'/>
<exports symbol='XML_SCHEMA_TYPE_EXTENSION' type='enum'/>
<exports symbol='XML_SCHEMAS_NMTOKEN' type='enum'/>
<exports symbol='XML_SCHEMAS_ID' type='enum'/>
@@ -1143,6 +1146,7 @@
<exports symbol='XML_SCHEMAS_DOUBLE' type='enum'/>
<exports symbol='XML_SCHEMAS_NINTEGER' type='enum'/>
<exports symbol='XML_SCHEMAS_NORMSTRING' type='enum'/>
+ <exports symbol='XML_SCHEMA_TYPE_PARTICLE' type='enum'/>
<exports symbol='XML_SCHEMA_CONTENT_MIXED_OR_ELEMENTS' type='enum'/>
<exports symbol='XML_SCHEMA_TYPE_SIMPLE' type='enum'/>
<exports symbol='XML_SCHEMAS_NCNAME' type='enum'/>
@@ -1164,7 +1168,7 @@
<exports symbol='XML_SCHEMA_CONTENT_EMPTY' type='enum'/>
<exports symbol='XML_SCHEMA_FACET_ENUMERATION' type='enum'/>
<exports symbol='XML_SCHEMA_CONTENT_UNKNOWN' type='enum'/>
- <exports symbol='XML_SCHEMA_TYPE_RESTRICTION' type='enum'/>
+ <exports symbol='XML_SCHEMA_FACET_MININCLUSIVE' type='enum'/>
<exports symbol='XML_SCHEMAS_GMONTH' type='enum'/>
<exports symbol='XML_SCHEMA_CONTENT_ELEMENTS' type='enum'/>
<exports symbol='XML_SCHEMAS_GYEAR' type='enum'/>
@@ -1208,9 +1212,9 @@
<exports symbol='XML_SCHEMA_TYPE_NOTATION' type='enum'/>
<exports symbol='XML_SCHEMA_CONTENT_ANY' type='enum'/>
<exports symbol='XML_SCHEMA_FACET_MINLENGTH' type='enum'/>
+ <exports symbol='XML_SCHEMA_TYPE_RESTRICTION' type='enum'/>
<exports symbol='XML_SCHEMA_TYPE_SEQUENCE' type='enum'/>
<exports symbol='XML_SCHEMA_TYPE_ELEMENT' type='enum'/>
- <exports symbol='XML_SCHEMA_FACET_MININCLUSIVE' type='enum'/>
<exports symbol='XML_SCHEMA_FACET_MAXLENGTH' type='enum'/>
<exports symbol='xmlSchemaAttributeGroupPtr' type='typedef'/>
<exports symbol='xmlSchemaElementPtr' type='typedef'/>
@@ -2066,7 +2070,7 @@
<exports symbol='XML_SCHEMAV_CVC_ELT_5_1_2' type='enum'/>
<exports symbol='XML_RNGP_INTERLEAVE_CREATE_FAILED' type='enum'/>
<exports symbol='XML_IO_EAGAIN' type='enum'/>
- <exports symbol='XML_DTD_LOAD_ERROR' type='enum'/>
+ <exports symbol='XML_ERR_NOTATION_NOT_STARTED' type='enum'/>
<exports symbol='XML_DTD_ENTITY_TYPE' type='enum'/>
<exports symbol='XML_SCHEMAP_SRC_SIMPLE_TYPE_4' type='enum'/>
<exports symbol='XML_FTP_URL_SYNTAX' type='enum'/>
@@ -2086,7 +2090,6 @@
<exports symbol='XML_SCHEMAP_SRC_ELEMENT_3' type='enum'/>
<exports symbol='XML_SCHEMAP_UNKNOWN_REF' type='enum'/>
<exports symbol='XML_RNGP_PAT_DATA_EXCEPT_EMPTY' type='enum'/>
- <exports symbol='XML_ERR_NS_DECL_ERROR' type='enum'/>
<exports symbol='XML_RNGP_PAT_START_DATA' type='enum'/>
<exports symbol='XML_DTD_MISSING_ATTRIBUTE' type='enum'/>
<exports symbol='XML_IO_EMFILE' type='enum'/>
@@ -2108,6 +2111,7 @@
<exports symbol='XML_RNGP_PAT_START_EMPTY' type='enum'/>
<exports symbol='XML_ERR_ATTLIST_NOT_FINISHED' type='enum'/>
<exports symbol='XML_XINCLUDE_TEXT_FRAGMENT' type='enum'/>
+ <exports symbol='XML_C14N_RELATIVE_NAMESPACE' type='enum'/>
<exports symbol='XML_SCHEMAP_FAILED_LOAD' type='enum'/>
<exports symbol='XML_ERR_ATTRIBUTE_WITHOUT_VALUE' type='enum'/>
<exports symbol='XML_XPTR_SYNTAX_ERROR' type='enum'/>
@@ -2266,7 +2270,7 @@
<exports symbol='XML_XPATH_INVALID_TYPE' type='enum'/>
<exports symbol='XML_CHECK_NS_SCOPE' type='enum'/>
<exports symbol='XML_IO_FLUSH' type='enum'/>
- <exports symbol='XML_C14N_INVALID_NODE' type='enum'/>
+ <exports symbol='XML_CATALOG_ENTRY_BROKEN' type='enum'/>
<exports symbol='XML_XPATH_INVALID_CTXT_POSITION' type='enum'/>
<exports symbol='XML_SCHEMAV_CVC_LENGTH_VALID' type='enum'/>
<exports symbol='XML_DTD_STANDALONE_DEFAULTED' type='enum'/>
@@ -2297,9 +2301,10 @@
<exports symbol='XML_SCHEMAP_UNKNOWN_ATTR_CHILD' type='enum'/>
<exports symbol='XML_ERR_UNKNOWN_ENCODING' type='enum'/>
<exports symbol='XML_RNGP_REF_NO_NAME' type='enum'/>
+ <exports symbol='XML_C14N_UNKNOW_NODE' type='enum'/>
<exports symbol='XML_SCHEMAP_REF_AND_SUBTYPE' type='enum'/>
<exports symbol='XML_RNGP_PAT_ONEMORE_INTERLEAVE_ATTR' type='enum'/>
- <exports symbol='XML_CATALOG_ENTRY_BROKEN' type='enum'/>
+ <exports symbol='XML_C14N_INVALID_NODE' type='enum'/>
<exports symbol='XML_RNGP_TEXT_EXPECTED' type='enum'/>
<exports symbol='XML_XPATH_UNDEF_VARIABLE_ERROR' type='enum'/>
<exports symbol='XML_SCHEMAV_NOROLLBACK' type='enum'/>
@@ -2389,6 +2394,7 @@
<exports symbol='XML_SCHEMAP_S4S_ELEM_MISSING' type='enum'/>
<exports symbol='XML_SCHEMAV_CVC_ELT_5_1_1' type='enum'/>
<exports symbol='XML_CHECK_FOUND_FRAGMENT' type='enum'/>
+ <exports symbol='XML_DTD_LOAD_ERROR' type='enum'/>
<exports symbol='XML_CHECK_UNKNOWN_NODE' type='enum'/>
<exports symbol='XML_SCHEMAP_UNKNOWN_NOTATION_CHILD' type='enum'/>
<exports symbol='XML_SCHEMAP_SRC_CT_1' type='enum'/>
@@ -2478,7 +2484,7 @@
<exports symbol='XML_SCHEMAV_CVC_MININCLUSIVE_VALID' type='enum'/>
<exports symbol='XML_SCHEMAV_ISABSTRACT' type='enum'/>
<exports symbol='XML_RNGP_DEFINE_MISSING' type='enum'/>
- <exports symbol='XML_ERR_NOTATION_NOT_STARTED' type='enum'/>
+ <exports symbol='XML_ERR_NS_DECL_ERROR' type='enum'/>
<exports symbol='XML_ERR_INTERNAL_ERROR' type='enum'/>
<exports symbol='XML_SCHEMAP_COS_ST_RESTRICTS_1_3_1' type='enum'/>
<exports symbol='XML_ERR_ELEMCONTENT_NOT_FINISHED' type='enum'/>
@@ -2865,6 +2871,7 @@
<exports symbol='XML_SCHEMA_WHITESPACE_PRESERVE' type='enum'/>
<exports symbol='xmlSchemaWhitespaceValueType' type='typedef'/>
<exports symbol='xmlSchemaValPredefTypeNode' type='function'/>
+ <exports symbol='xmlSchemaValidateLengthFacetWhtsp' type='function'/>
<exports symbol='xmlSchemaIsBuiltInTypeFacet' type='function'/>
<exports symbol='xmlSchemaGetCanonValue' type='function'/>
<exports symbol='xmlSchemaGetBuiltInListSimpleTypeItemType' type='function'/>
@@ -2875,6 +2882,7 @@
<exports symbol='xmlSchemaNewFacet' type='function'/>
<exports symbol='xmlSchemaCompareValues' type='function'/>
<exports symbol='xmlSchemaValidateLengthFacet' type='function'/>
+ <exports symbol='xmlSchemaGetValType' type='function'/>
<exports symbol='xmlSchemaGetPredefinedType' type='function'/>
<exports symbol='xmlSchemaValidatePredefinedType' type='function'/>
<exports symbol='xmlSchemaFreeFacet' type='function'/>
@@ -2888,6 +2896,7 @@
<exports symbol='xmlSchemaNewStringValue' type='function'/>
<exports symbol='xmlSchemaGetBuiltInType' type='function'/>
<exports symbol='xmlSchemaInitTypes' type='function'/>
+ <exports symbol='xmlSchemaValidateFacetWhtsp' type='function'/>
<exports symbol='xmlSchemaCheckFacet' type='function'/>
</file>
<file name='xmlstring'>
@@ -4042,6 +4051,12 @@
<macro name='XML_SCHEMAS_TYPE_GLOBAL' file='schemasInternals'>
<info>the type is global</info>
</macro>
+ <macro name='XML_SCHEMAS_TYPE_INTERNAL_INVALID' file='schemasInternals'>
+ <info>indicates that the type is invalid</info>
+ </macro>
+ <macro name='XML_SCHEMAS_TYPE_INTERNAL_RESOLVED' file='schemasInternals'>
+ <info>indicates that the type was typefixed</info>
+ </macro>
<macro name='XML_SCHEMAS_TYPE_MARKED' file='schemasInternals'>
<info>Marks the item as marked; used for circular checks.</info>
</macro>
@@ -4316,7 +4331,9 @@
<enum name='XML_C14N_CREATE_CTXT' file='xmlerror' value='1950' type='xmlParserErrors'/>
<enum name='XML_C14N_CREATE_STACK' file='xmlerror' value='1952' type='xmlParserErrors' info='1952'/>
<enum name='XML_C14N_INVALID_NODE' file='xmlerror' value='1953' type='xmlParserErrors' info='1953'/>
+ <enum name='XML_C14N_RELATIVE_NAMESPACE' file='xmlerror' value='1955' type='xmlParserErrors' info='1955'/>
<enum name='XML_C14N_REQUIRES_UTF8' file='xmlerror' value='1951' type='xmlParserErrors' info='1951'/>
+ <enum name='XML_C14N_UNKNOW_NODE' file='xmlerror' value='1954' type='xmlParserErrors' info='1954'/>
<enum name='XML_CATALOG_ENTRY_BROKEN' file='xmlerror' value='1651' type='xmlParserErrors' info='1651'/>
<enum name='XML_CATALOG_MISSING_ATTR' file='xmlerror' value='1650' type='xmlParserErrors'/>
<enum name='XML_CATALOG_NOT_CATALOG' file='xmlerror' value='1653' type='xmlParserErrors' info='1653'/>
@@ -5248,6 +5265,7 @@
<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_EXTRA_QNAMEREF' file='schemasInternals' value='2000' type='xmlSchemaTypeType'/>
<enum name='XML_SCHEMA_FACET_ENUMERATION' file='schemasInternals' value='1007' type='xmlSchemaTypeType'/>
<enum name='XML_SCHEMA_FACET_FRACTIONDIGITS' file='schemasInternals' value='1005' type='xmlSchemaTypeType'/>
<enum name='XML_SCHEMA_FACET_LENGTH' file='schemasInternals' value='1009' type='xmlSchemaTypeType'/>
@@ -5278,6 +5296,7 @@
<enum name='XML_SCHEMA_TYPE_IDC_UNIQUE' file='schemasInternals' value='22' type='xmlSchemaTypeType'/>
<enum name='XML_SCHEMA_TYPE_LIST' file='schemasInternals' value='19' type='xmlSchemaTypeType'/>
<enum name='XML_SCHEMA_TYPE_NOTATION' file='schemasInternals' value='18' type='xmlSchemaTypeType'/>
+ <enum name='XML_SCHEMA_TYPE_PARTICLE' file='schemasInternals' value='25' type='xmlSchemaTypeType'/>
<enum name='XML_SCHEMA_TYPE_RESTRICTION' file='schemasInternals' value='12' type='xmlSchemaTypeType'/>
<enum name='XML_SCHEMA_TYPE_SEQUENCE' file='schemasInternals' value='6' type='xmlSchemaTypeType'/>
<enum name='XML_SCHEMA_TYPE_SIMPLE' file='schemasInternals' value='4' type='xmlSchemaTypeType'/>
@@ -6041,6 +6060,7 @@ actually an xmlCharEncoding'/>
<field name='preserve' type='int' info=' whether to free the document'/>
<field name='counter' type='int' info=' used to give ononymous components unique names'/>
<field name='idcDef' type='xmlHashTablePtr' info=''/>
+ <field name='volatiles' type='void *' info=' Misc. helper items (e.g. reference items)'/>
</struct>
<struct name='xmlSchemaAnnot' file='schemasInternals' type='struct _xmlSchemaAnnot'>
<field name='next' type='struct _xmlSchemaAnnot *' info=''/>
@@ -6407,7 +6427,7 @@ actually an xmlCharEncoding'/>
<variable name='xmlXPathNAN' file='xpath' type='double'/>
<variable name='xmlXPathNINF' file='xpath' type='double'/>
<variable name='xmlXPathPINF' file='xpath' type='double'/>
- <function name='UTF8ToHtml' file='HTMLparser'>
+ <function name='UTF8ToHtml' file='HTMLparser' module='HTMLparser'>
<cond>defined(LIBXML_HTML_ENABLED)</cond>
<info>Take a block of UTF-8 chars in and try to convert it to an ASCII plus HTML entities block of chars out.</info>
<return type='int' info='0 if success, -2 if the transcoding fails, or -1 otherwise The value of @inlen after return is the number of octets consumed as the return value is positive, else unpredictable. The value of @outlen after return is the number of octets consumed.'/>
@@ -6416,7 +6436,7 @@ actually an xmlCharEncoding'/>
<arg name='in' type='const unsigned char *' info='a pointer to an array of UTF-8 chars'/>
<arg name='inlen' type='int *' info='the length of @in'/>
</function>
- <function name='UTF8Toisolat1' file='encoding'>
+ <function name='UTF8Toisolat1' file='encoding' module='encoding'>
<cond>defined(LIBXML_OUTPUT_ENABLED)</cond>
<info>Take a block of UTF-8 chars in and try to convert it to an ISO Latin 1 block of chars out.</info>
<return type='int' info='the number of bytes written if success, -2 if the transcoding fails, or -1 otherwise The value of @inlen after return is the number of octets consumed if the return value is positive, else unpredictable. The value of @outlen after return is the number of octets consumed.'/>
@@ -6425,7 +6445,7 @@ actually an xmlCharEncoding'/>
<arg name='in' type='const unsigned char *' info='a pointer to an array of UTF-8 chars'/>
<arg name='inlen' type='int *' info='the length of @in'/>
</function>
- <function name='attribute' file='SAX'>
+ <function name='attribute' file='SAX' module='legacy'>
<cond>defined(LIBXML_LEGACY_ENABLED)</cond>
<info>Handle an attribute that has been read by the parser. The default handling is to convert the attribute into an DOM subtree and past it in a new xmlAttr element added to the element. DEPRECATED: use xmlSAX2Attribute()</info>
<return type='void'/>
@@ -6433,7 +6453,7 @@ actually an xmlCharEncoding'/>
<arg name='fullname' type='const xmlChar *' info='The attribute name, including namespace prefix'/>
<arg name='value' type='const xmlChar *' info='The attribute value'/>
</function>
- <function name='attributeDecl' file='SAX'>
+ <function name='attributeDecl' file='SAX' module='legacy'>
<cond>defined(LIBXML_LEGACY_ENABLED)</cond>
<info>An attribute definition has been parsed DEPRECATED: use xmlSAX2AttributeDecl()</info>
<return type='void'/>
@@ -6445,7 +6465,7 @@ actually an xmlCharEncoding'/>
<arg name='defaultValue' type='const xmlChar *' info='the attribute default value'/>
<arg name='tree' type='xmlEnumerationPtr' info='the tree of enumerated value set'/>
</function>
- <functype name='attributeDeclSAXFunc' file='parser'>
+ <functype name='attributeDeclSAXFunc' file='parser' module='parser'>
<info>An attribute definition has been parsed.</info>
<return type='void'/>
<arg name='ctx' type='void *' info='the user data (XML parser context)'/>
@@ -6456,14 +6476,14 @@ actually an xmlCharEncoding'/>
<arg name='defaultValue' type='const xmlChar *' info='the attribute default value'/>
<arg name='tree' type='xmlEnumerationPtr' info='the tree of enumerated value set'/>
</functype>
- <functype name='attributeSAXFunc' file='parser'>
+ <functype name='attributeSAXFunc' file='parser' module='parser'>
<info>Handle an attribute that has been read by the parser. The default handling is to convert the attribute into an DOM subtree and past it in a new xmlAttr element added to the element.</info>
<return type='void'/>
<arg name='ctx' type='void *' info='the user data (XML parser context)'/>
<arg name='name' type='const xmlChar *' info='The attribute name, including namespace prefix'/>
<arg name='value' type='const xmlChar *' info='The attribute value'/>
</functype>
- <function name='cdataBlock' file='SAX'>
+ <function name='cdataBlock' file='SAX' module='legacy'>
<cond>defined(LIBXML_LEGACY_ENABLED)</cond>
<info>called when a pcdata block has been parsed DEPRECATED: use xmlSAX2CDataBlock()</info>
<return type='void'/>
@@ -6471,14 +6491,14 @@ actually an xmlCharEncoding'/>
<arg name='value' type='const xmlChar *' info='The pcdata content'/>
<arg name='len' type='int' info='the block length'/>
</function>
- <functype name='cdataBlockSAXFunc' file='parser'>
+ <functype name='cdataBlockSAXFunc' file='parser' module='parser'>
<info>Called when a pcdata block has been parsed.</info>
<return type='void'/>
<arg name='ctx' type='void *' info='the user data (XML parser context)'/>
<arg name='value' type='const xmlChar *' info='The pcdata content'/>
<arg name='len' type='int' info='the block length'/>
</functype>
- <function name='characters' file='SAX'>
+ <function name='characters' file='SAX' module='legacy'>
<cond>defined(LIBXML_LEGACY_ENABLED)</cond>
<info>receiving some chars from the parser. DEPRECATED: use xmlSAX2Characters()</info>
<return type='void'/>
@@ -6486,41 +6506,41 @@ actually an xmlCharEncoding'/>
<arg name='ch' type='const xmlChar *' info='a xmlChar string'/>
<arg name='len' type='int' info='the number of xmlChar'/>
</function>
- <functype name='charactersSAXFunc' file='parser'>
+ <functype name='charactersSAXFunc' file='parser' module='parser'>
<info>Receiving some chars from the parser.</info>
<return type='void'/>
<arg name='ctx' type='void *' info='the user data (XML parser context)'/>
<arg name='ch' type='const xmlChar *' info='a xmlChar string'/>
<arg name='len' type='int' info='the number of xmlChar'/>
</functype>
- <function name='checkNamespace' file='SAX'>
+ <function name='checkNamespace' file='SAX' module='legacy'>
<cond>defined(LIBXML_LEGACY_ENABLED)</cond>
<info>Check that the current element namespace is the same as the one read upon parsing. DEPRECATED</info>
<return type='int' info='1 if true 0 otherwise'/>
<arg name='ctx' type='void *' info='the user data (XML parser context)'/>
<arg name='namespace' type='xmlChar *' info='the namespace to check against'/>
</function>
- <function name='comment' file='SAX'>
+ <function name='comment' file='SAX' module='legacy'>
<cond>defined(LIBXML_LEGACY_ENABLED)</cond>
<info>A comment has been parsed. DEPRECATED: use xmlSAX2Comment()</info>
<return type='void'/>
<arg name='ctx' type='void *' info='the user data (XML parser context)'/>
<arg name='value' type='const xmlChar *' info='the comment content'/>
</function>
- <functype name='commentSAXFunc' file='parser'>
+ <functype name='commentSAXFunc' file='parser' module='parser'>
<info>A comment has been parsed.</info>
<return type='void'/>
<arg name='ctx' type='void *' info='the user data (XML parser context)'/>
<arg name='value' type='const xmlChar *' info='the comment content'/>
</functype>
- <function name='docbCreateFileParserCtxt' file='DOCBparser'>
+ <function name='docbCreateFileParserCtxt' file='DOCBparser' module='DOCBparser'>
<cond>defined(LIBXML_DOCB_ENABLED)</cond>
<info>Create a parser context for a file content. Automatic support for ZLIB/Compress compressed document is provided by default if found at compile-time.</info>
<return type='docbParserCtxtPtr' info='the new parser context or NULL'/>
<arg name='filename' type='const char *' info='the filename'/>
<arg name='encoding' type='const char *' info='the SGML document encoding, or NULL'/>
</function>
- <function name='docbCreatePushParserCtxt' file='DOCBparser'>
+ <function name='docbCreatePushParserCtxt' file='DOCBparser' module='DOCBparser'>
<cond>defined(LIBXML_DOCB_ENABLED)</cond>
<info>Create a parser context for using the DocBook SGML parser in push mode To allow content encoding detection, @size should be &gt;= 4 The value of @filename is used for fetching external entities and error/warning reports.</info>
<return type='docbParserCtxtPtr' info='the new parser context or NULL'/>
@@ -6531,12 +6551,12 @@ actually an xmlCharEncoding'/>
<arg name='filename' type='const char *' info='an optional file name or URI'/>
<arg name='enc' type='xmlCharEncoding' info='an optional encoding'/>
</function>
- <function name='docbDefaultSAXHandlerInit' file='SAX2'>
+ <function name='docbDefaultSAXHandlerInit' file='SAX2' module='SAX2'>
<cond>defined(LIBXML_DOCB_ENABLED)</cond>
<info>Initialize the default SAX handler</info>
<return type='void'/>
</function>
- <function name='docbEncodeEntities' file='DOCBparser'>
+ <function name='docbEncodeEntities' file='DOCBparser' module='DOCBparser'>
<cond>defined(LIBXML_DOCB_ENABLED)</cond>
<info>Take a block of UTF-8 chars in and try to convert it to an ASCII plus SGML entities block of chars out.</info>
<return type='int' info='0 if success, -2 if the transcoding fails, or -1 otherwise The value of @inlen after return is the number of octets consumed as the return value is positive, else unpredictable. The value of @outlen after return is the number of octets consumed.'/>
@@ -6546,13 +6566,13 @@ actually an xmlCharEncoding'/>
<arg name='inlen' type='int *' info='the length of @in'/>
<arg name='quoteChar' type='int' info='the quote character to escape (&apos; or &quot;) or zero.'/>
</function>
- <function name='docbFreeParserCtxt' file='DOCBparser'>
+ <function name='docbFreeParserCtxt' file='DOCBparser' module='DOCBparser'>
<cond>defined(LIBXML_DOCB_ENABLED)</cond>
<info>Free all the memory used by a parser context. However the parsed document in ctxt-&gt;myDoc is not freed.</info>
<return type='void'/>
<arg name='ctxt' type='docbParserCtxtPtr' info='an SGML parser context'/>
</function>
- <function name='docbParseChunk' file='DOCBparser'>
+ <function name='docbParseChunk' file='DOCBparser' module='DOCBparser'>
<cond>defined(LIBXML_DOCB_ENABLED)</cond>
<info>Parse a Chunk of memory</info>
<return type='int' info='zero if no error, the xmlParserErrors otherwise.'/>
@@ -6561,27 +6581,27 @@ actually an xmlCharEncoding'/>
<arg name='size' type='int' info='the size in byte of the chunk'/>
<arg name='terminate' type='int' info='last chunk indicator'/>
</function>
- <function name='docbParseDoc' file='DOCBparser'>
+ <function name='docbParseDoc' file='DOCBparser' module='DOCBparser'>
<cond>defined(LIBXML_DOCB_ENABLED)</cond>
<info>parse an SGML in-memory document and build a tree.</info>
<return type='docbDocPtr' info='the resulting document tree'/>
<arg name='cur' type='xmlChar *' info='a pointer to an array of xmlChar'/>
<arg name='encoding' type='const char *' info='a free form C string describing the SGML document encoding, or NULL'/>
</function>
- <function name='docbParseDocument' file='DOCBparser'>
+ <function name='docbParseDocument' file='DOCBparser' module='DOCBparser'>
<cond>defined(LIBXML_DOCB_ENABLED)</cond>
<info>parse an SGML document (and build a tree if using the standard SAX interface).</info>
<return type='int' info='0, -1 in case of error. the parser context is augmented as a result of the parsing.'/>
<arg name='ctxt' type='docbParserCtxtPtr' info='an SGML parser context'/>
</function>
- <function name='docbParseFile' file='DOCBparser'>
+ <function name='docbParseFile' file='DOCBparser' module='DOCBparser'>
<cond>defined(LIBXML_DOCB_ENABLED)</cond>
<info>parse a Docbook SGML file and build a tree. Automatic support for ZLIB/Compress compressed document is provided by default if found at compile-time.</info>
<return type='docbDocPtr' info='the resulting document tree'/>
<arg name='filename' type='const char *' info='the filename'/>
<arg name='encoding' type='const char *' info='a free form C string describing document encoding, or NULL'/>
</function>
- <function name='docbSAXParseDoc' file='DOCBparser'>
+ <function name='docbSAXParseDoc' file='DOCBparser' module='DOCBparser'>
<cond>defined(LIBXML_DOCB_ENABLED)</cond>
<info>parse an SGML in-memory document and build a tree. It use the given SAX function block to handle the parsing callback. If sax is NULL, fallback to the default DOM tree building routines.</info>
<return type='docbDocPtr' info='the resulting document tree'/>
@@ -6590,7 +6610,7 @@ actually an xmlCharEncoding'/>
<arg name='sax' type='docbSAXHandlerPtr' info='the SAX handler block'/>
<arg name='userData' type='void *' info='if using SAX, this pointer will be provided on callbacks.'/>
</function>
- <function name='docbSAXParseFile' file='DOCBparser'>
+ <function name='docbSAXParseFile' file='DOCBparser' module='DOCBparser'>
<cond>defined(LIBXML_DOCB_ENABLED)</cond>
<info>parse an SGML file and build a tree. Automatic support for ZLIB/Compress compressed document is provided by default if found at compile-time. It use the given SAX function block to handle the parsing callback. If sax is NULL, fallback to the default DOM tree building routines.</info>
<return type='docbDocPtr' info='the resulting document tree'/>
@@ -6599,7 +6619,7 @@ actually an xmlCharEncoding'/>
<arg name='sax' type='docbSAXHandlerPtr' info='the SAX handler block'/>
<arg name='userData' type='void *' info='if using SAX, this pointer will be provided on callbacks.'/>
</function>
- <function name='elementDecl' file='SAX'>
+ <function name='elementDecl' file='SAX' module='legacy'>
<cond>defined(LIBXML_LEGACY_ENABLED)</cond>
<info>An element definition has been parsed DEPRECATED: use xmlSAX2ElementDecl()</info>
<return type='void'/>
@@ -6608,7 +6628,7 @@ actually an xmlCharEncoding'/>
<arg name='type' type='int' info='the element type'/>
<arg name='content' type='xmlElementContentPtr' info='the element value tree'/>
</function>
- <functype name='elementDeclSAXFunc' file='parser'>
+ <functype name='elementDeclSAXFunc' file='parser' module='parser'>
<info>An element definition has been parsed.</info>
<return type='void'/>
<arg name='ctx' type='void *' info='the user data (XML parser context)'/>
@@ -6616,25 +6636,25 @@ actually an xmlCharEncoding'/>
<arg name='type' type='int' info='the element type'/>
<arg name='content' type='xmlElementContentPtr' info='the element value tree'/>
</functype>
- <function name='endDocument' file='SAX'>
+ <function name='endDocument' file='SAX' module='legacy'>
<cond>defined(LIBXML_LEGACY_ENABLED)</cond>
<info>called when the document end has been detected. DEPRECATED: use xmlSAX2EndDocument()</info>
<return type='void'/>
<arg name='ctx' type='void *' info='the user data (XML parser context)'/>
</function>
- <functype name='endDocumentSAXFunc' file='parser'>
+ <functype name='endDocumentSAXFunc' file='parser' module='parser'>
<info>Called when the document end has been detected.</info>
<return type='void'/>
<arg name='ctx' type='void *' info='the user data (XML parser context)'/>
</functype>
- <function name='endElement' file='SAX'>
+ <function name='endElement' file='SAX' module='legacy'>
<cond>defined(LIBXML_LEGACY_ENABLED)</cond>
<info>called when the end of an element has been detected. DEPRECATED: use xmlSAX2EndElement()</info>
<return type='void'/>
<arg name='ctx' type='void *' info='the user data (XML parser context)'/>
<arg name='name' type='const xmlChar *' info='The element name'/>
</function>
- <functype name='endElementNsSAX2Func' file='parser'>
+ <functype name='endElementNsSAX2Func' file='parser' module='parser'>
<info>SAX2 callback when an element end has been detected by the parser. It provides the namespace informations for the element.</info>
<return type='void'/>
<arg name='ctx' type='void *' info='the user data (XML parser context)'/>
@@ -6642,13 +6662,13 @@ actually an xmlCharEncoding'/>
<arg name='prefix' type='const xmlChar *' info='the element namespace prefix if available'/>
<arg name='URI' type='const xmlChar *' info='the element namespace name if available'/>
</functype>
- <functype name='endElementSAXFunc' file='parser'>
+ <functype name='endElementSAXFunc' file='parser' module='parser'>
<info>Called when the end of an element has been detected.</info>
<return type='void'/>
<arg name='ctx' type='void *' info='the user data (XML parser context)'/>
<arg name='name' type='const xmlChar *' info='The element name'/>
</functype>
- <function name='entityDecl' file='SAX'>
+ <function name='entityDecl' file='SAX' module='legacy'>
<cond>defined(LIBXML_LEGACY_ENABLED)</cond>
<info>An entity definition has been parsed DEPRECATED: use xmlSAX2EntityDecl()</info>
<return type='void'/>
@@ -6659,7 +6679,7 @@ actually an xmlCharEncoding'/>
<arg name='systemId' type='const xmlChar *' info='The system ID of the entity'/>
<arg name='content' type='xmlChar *' info='the entity value (without processing).'/>
</function>
- <functype name='entityDeclSAXFunc' file='parser'>
+ <functype name='entityDeclSAXFunc' file='parser' module='parser'>
<info>An entity definition has been parsed.</info>
<return type='void'/>
<arg name='ctx' type='void *' info='the user data (XML parser context)'/>
@@ -6669,14 +6689,14 @@ actually an xmlCharEncoding'/>
<arg name='systemId' type='const xmlChar *' info='The system ID of the entity'/>
<arg name='content' type='xmlChar *' info='the entity value (without processing).'/>
</functype>
- <functype name='errorSAXFunc' file='parser'>
+ <functype name='errorSAXFunc' file='parser' module='parser'>
<info>Display and format an error messages, callback.</info>
<return type='void'/>
<arg name='ctx' type='void *' info='an XML parser context'/>
<arg name='msg' type='const char *' info='the message to display/transmit'/>
<arg name='...' type='...' info='extra parameters for the message display'/>
</functype>
- <function name='externalSubset' file='SAX'>
+ <function name='externalSubset' file='SAX' module='legacy'>
<cond>defined(LIBXML_LEGACY_ENABLED)</cond>
<info>Callback on external subset declaration. DEPRECATED: use xmlSAX2ExternalSubset()</info>
<return type='void'/>
@@ -6685,7 +6705,7 @@ actually an xmlCharEncoding'/>
<arg name='ExternalID' type='const xmlChar *' info='the external ID'/>
<arg name='SystemID' type='const xmlChar *' info='the SYSTEM ID (e.g. filename or URL)'/>
</function>
- <functype name='externalSubsetSAXFunc' file='parser'>
+ <functype name='externalSubsetSAXFunc' file='parser' module='parser'>
<info>Callback on external subset declaration.</info>
<return type='void'/>
<arg name='ctx' type='void *' info='the user data (XML parser context)'/>
@@ -6693,14 +6713,14 @@ actually an xmlCharEncoding'/>
<arg name='ExternalID' type='const xmlChar *' info='the external ID'/>
<arg name='SystemID' type='const xmlChar *' info='the SYSTEM ID (e.g. filename or URL)'/>
</functype>
- <functype name='fatalErrorSAXFunc' file='parser'>
+ <functype name='fatalErrorSAXFunc' file='parser' module='parser'>
<info>Display and format fatal error messages, callback. Note: so far fatalError() SAX callbacks are not used, error() get all the callbacks for errors.</info>
<return type='void'/>
<arg name='ctx' type='void *' info='an XML parser context'/>
<arg name='msg' type='const char *' info='the message to display/transmit'/>
<arg name='...' type='...' info='extra parameters for the message display'/>
</functype>
- <functype name='ftpDataCallback' file='nanoftp'>
+ <functype name='ftpDataCallback' file='nanoftp' module='nanoftp'>
<cond>defined(LIBXML_FTP_ENABLED)</cond>
<info>A callback for the xmlNanoFTPGet command.</info>
<return type='void'/>
@@ -6708,7 +6728,7 @@ actually an xmlCharEncoding'/>
<arg name='data' type='const char *' info='the data received'/>
<arg name='len' type='int' info='its size in bytes'/>
</functype>
- <functype name='ftpListCallback' file='nanoftp'>
+ <functype name='ftpListCallback' file='nanoftp' module='nanoftp'>
<cond>defined(LIBXML_FTP_ENABLED)</cond>
<info>A callback for the xmlNanoFTPList command. Note that only one of year and day:minute are specified.</info>
<return type='void'/>
@@ -6725,63 +6745,63 @@ actually an xmlCharEncoding'/>
<arg name='hour' type='int' info='the hour'/>
<arg name='minute' type='int' info='the minute'/>
</functype>
- <function name='getColumnNumber' file='SAX'>
+ <function name='getColumnNumber' file='SAX' module='legacy'>
<cond>defined(LIBXML_LEGACY_ENABLED)</cond>
<info>Provide the column number of the current parsing point. DEPRECATED: use xmlSAX2GetColumnNumber()</info>
<return type='int' info='an int'/>
<arg name='ctx' type='void *' info='the user data (XML parser context)'/>
</function>
- <function name='getEntity' file='SAX'>
+ <function name='getEntity' file='SAX' module='legacy'>
<cond>defined(LIBXML_LEGACY_ENABLED)</cond>
<info>Get an entity by name DEPRECATED: use xmlSAX2GetEntity()</info>
<return type='xmlEntityPtr' info='the xmlEntityPtr if found.'/>
<arg name='ctx' type='void *' info='the user data (XML parser context)'/>
<arg name='name' type='const xmlChar *' info='The entity name'/>
</function>
- <functype name='getEntitySAXFunc' file='parser'>
+ <functype name='getEntitySAXFunc' file='parser' module='parser'>
<info>Get an entity by name.</info>
<return type='xmlEntityPtr' info='the xmlEntityPtr if found.'/>
<arg name='ctx' type='void *' info='the user data (XML parser context)'/>
<arg name='name' type='const xmlChar *' info='The entity name'/>
</functype>
- <function name='getLineNumber' file='SAX'>
+ <function name='getLineNumber' file='SAX' module='legacy'>
<cond>defined(LIBXML_LEGACY_ENABLED)</cond>
<info>Provide the line number of the current parsing point. DEPRECATED: use xmlSAX2GetLineNumber()</info>
<return type='int' info='an int'/>
<arg name='ctx' type='void *' info='the user data (XML parser context)'/>
</function>
- <function name='getNamespace' file='SAX'>
+ <function name='getNamespace' file='SAX' module='legacy'>
<cond>defined(LIBXML_LEGACY_ENABLED)</cond>
<info>Get the current element namespace. DEPRECATED</info>
<return type='xmlNsPtr' info='the xmlNsPtr or NULL if none'/>
<arg name='ctx' type='void *' info='the user data (XML parser context)'/>
</function>
- <function name='getParameterEntity' file='SAX'>
+ <function name='getParameterEntity' file='SAX' module='legacy'>
<cond>defined(LIBXML_LEGACY_ENABLED)</cond>
<info>Get a parameter entity by name DEPRECATED: use xmlSAX2GetParameterEntity()</info>
<return type='xmlEntityPtr' info='the xmlEntityPtr if found.'/>
<arg name='ctx' type='void *' info='the user data (XML parser context)'/>
<arg name='name' type='const xmlChar *' info='The entity name'/>
</function>
- <functype name='getParameterEntitySAXFunc' file='parser'>
+ <functype name='getParameterEntitySAXFunc' file='parser' module='parser'>
<info>Get a parameter entity by name.</info>
<return type='xmlEntityPtr' info='the xmlEntityPtr if found.'/>
<arg name='ctx' type='void *' info='the user data (XML parser context)'/>
<arg name='name' type='const xmlChar *' info='The entity name'/>
</functype>
- <function name='getPublicId' file='SAX'>
+ <function name='getPublicId' file='SAX' module='legacy'>
<cond>defined(LIBXML_LEGACY_ENABLED)</cond>
<info>Provides the public ID e.g. &quot;-//SGMLSOURCE//DTD DEMO//EN&quot; DEPRECATED: use xmlSAX2GetPublicId()</info>
<return type='const xmlChar *' info='a xmlChar *'/>
<arg name='ctx' type='void *' info='the user data (XML parser context)'/>
</function>
- <function name='getSystemId' file='SAX'>
+ <function name='getSystemId' file='SAX' module='legacy'>
<cond>defined(LIBXML_LEGACY_ENABLED)</cond>
<info>Provides the system ID, basically URL or filename e.g. http://www.sgmlsource.com/dtds/memo.dtd DEPRECATED: use xmlSAX2GetSystemId()</info>
<return type='const xmlChar *' info='a xmlChar *'/>
<arg name='ctx' type='void *' info='the user data (XML parser context)'/>
</function>
- <function name='globalNamespace' file='SAX'>
+ <function name='globalNamespace' file='SAX' module='legacy'>
<cond>defined(LIBXML_LEGACY_ENABLED)</cond>
<info>An old global namespace has been parsed. DEPRECATED</info>
<return type='void'/>
@@ -6789,29 +6809,29 @@ actually an xmlCharEncoding'/>
<arg name='href' type='const xmlChar *' info='the namespace associated URN'/>
<arg name='prefix' type='const xmlChar *' info='the namespace prefix'/>
</function>
- <function name='hasExternalSubset' file='SAX'>
+ <function name='hasExternalSubset' file='SAX' module='legacy'>
<cond>defined(LIBXML_LEGACY_ENABLED)</cond>
<info>Does this document has an external subset DEPRECATED: use xmlSAX2HasExternalSubset()</info>
<return type='int' info='1 if true'/>
<arg name='ctx' type='void *' info='the user data (XML parser context)'/>
</function>
- <functype name='hasExternalSubsetSAXFunc' file='parser'>
+ <functype name='hasExternalSubsetSAXFunc' file='parser' module='parser'>
<info>Does this document has an external subset?</info>
<return type='int' info='1 if true'/>
<arg name='ctx' type='void *' info='the user data (XML parser context)'/>
</functype>
- <function name='hasInternalSubset' file='SAX'>
+ <function name='hasInternalSubset' file='SAX' module='legacy'>
<cond>defined(LIBXML_LEGACY_ENABLED)</cond>
<info>Does this document has an internal subset DEPRECATED: use xmlSAX2HasInternalSubset()</info>
<return type='int' info='1 if true'/>
<arg name='ctx' type='void *' info='the user data (XML parser context)'/>
</function>
- <functype name='hasInternalSubsetSAXFunc' file='parser'>
+ <functype name='hasInternalSubsetSAXFunc' file='parser' module='parser'>
<info>Does this document has an internal subset.</info>
<return type='int' info='1 if true'/>
<arg name='ctx' type='void *' info='the user data (XML parser context)'/>
</functype>
- <function name='htmlAttrAllowed' file='HTMLparser'>
+ <function name='htmlAttrAllowed' file='HTMLparser' module='HTMLparser'>
<cond>defined(LIBXML_HTML_ENABLED)</cond>
<info>Checks whether an attribute is valid for an element Has full knowledge of Required and Deprecated attributes</info>
<return type='htmlStatus' info='one of HTML_REQUIRED, HTML_VALID, HTML_DEPRECATED, HTML_INVALID'/>
@@ -6819,7 +6839,7 @@ actually an xmlCharEncoding'/>
<arg name='attr' type='const xmlChar *' info='HTML attribute'/>
<arg name='legacy' type='int' info='whether to allow deprecated attributes'/>
</function>
- <function name='htmlAutoCloseTag' file='HTMLparser'>
+ <function name='htmlAutoCloseTag' file='HTMLparser' module='HTMLparser'>
<cond>defined(LIBXML_HTML_ENABLED)</cond>
<info>The HTML DTD allows a tag to implicitly close other tags. The list is kept in htmlStartClose array. This function checks if the element or one of it&apos;s children would autoclose the given tag.</info>
<return type='int' info='1 if autoclose, 0 otherwise'/>
@@ -6827,21 +6847,21 @@ actually an xmlCharEncoding'/>
<arg name='name' type='const xmlChar *' info='The tag name'/>
<arg name='elem' type='htmlNodePtr' info='the HTML element'/>
</function>
- <function name='htmlCreateFileParserCtxt' file='parserInternals'>
+ <function name='htmlCreateFileParserCtxt' file='parserInternals' module='HTMLparser'>
<cond>defined(LIBXML_HTML_ENABLED)</cond>
<info>Create a parser context for a file content. Automatic support for ZLIB/Compress compressed document is provided by default if found at compile-time.</info>
<return type='htmlParserCtxtPtr' info='the new parser context or NULL'/>
<arg name='filename' type='const char *' info='the filename'/>
<arg name='encoding' type='const char *' info='a free form C string describing the HTML document encoding, or NULL'/>
</function>
- <function name='htmlCreateMemoryParserCtxt' file='HTMLparser'>
+ <function name='htmlCreateMemoryParserCtxt' file='HTMLparser' module='HTMLparser'>
<cond>defined(LIBXML_HTML_ENABLED)</cond>
<info>Create a parser context for an HTML in-memory document.</info>
<return type='htmlParserCtxtPtr' info='the new parser context or NULL'/>
<arg name='buffer' type='const char *' info='a pointer to a char array'/>
<arg name='size' type='int' info='the size of the array'/>
</function>
- <function name='htmlCreatePushParserCtxt' file='HTMLparser'>
+ <function name='htmlCreatePushParserCtxt' file='HTMLparser' module='HTMLparser'>
<cond>defined(LIBXML_HTML_ENABLED) &amp;&amp; defined(LIBXML_PUSH_ENABLED)</cond>
<info>Create a parser context for using the HTML parser in push mode The value of @filename is used for fetching external entities and error/warning reports.</info>
<return type='htmlParserCtxtPtr' info='the new parser context or NULL'/>
@@ -6852,7 +6872,7 @@ actually an xmlCharEncoding'/>
<arg name='filename' type='const char *' info='an optional file name or URI'/>
<arg name='enc' type='xmlCharEncoding' info='an optional encoding'/>
</function>
- <function name='htmlCtxtReadDoc' file='HTMLparser'>
+ <function name='htmlCtxtReadDoc' file='HTMLparser' module='HTMLparser'>
<cond>defined(LIBXML_HTML_ENABLED)</cond>
<info>parse an XML in-memory document and build a tree. This reuses the existing @ctxt parser context</info>
<return type='htmlDocPtr' info='the resulting document tree'/>
@@ -6862,7 +6882,7 @@ actually an xmlCharEncoding'/>
<arg name='encoding' type='const char *' info='the document encoding, or NULL'/>
<arg name='options' type='int' info='a combination of htmlParserOption(s)'/>
</function>
- <function name='htmlCtxtReadFd' file='HTMLparser'>
+ <function name='htmlCtxtReadFd' file='HTMLparser' module='HTMLparser'>
<cond>defined(LIBXML_HTML_ENABLED)</cond>
<info>parse an XML from a file descriptor and build a tree. This reuses the existing @ctxt parser context</info>
<return type='htmlDocPtr' info='the resulting document tree'/>
@@ -6872,7 +6892,7 @@ actually an xmlCharEncoding'/>
<arg name='encoding' type='const char *' info='the document encoding, or NULL'/>
<arg name='options' type='int' info='a combination of htmlParserOption(s)'/>
</function>
- <function name='htmlCtxtReadFile' file='HTMLparser'>
+ <function name='htmlCtxtReadFile' file='HTMLparser' module='HTMLparser'>
<cond>defined(LIBXML_HTML_ENABLED)</cond>
<info>parse an XML file from the filesystem or the network. This reuses the existing @ctxt parser context</info>
<return type='htmlDocPtr' info='the resulting document tree'/>
@@ -6881,7 +6901,7 @@ actually an xmlCharEncoding'/>
<arg name='encoding' type='const char *' info='the document encoding, or NULL'/>
<arg name='options' type='int' info='a combination of htmlParserOption(s)'/>
</function>
- <function name='htmlCtxtReadIO' file='HTMLparser'>
+ <function name='htmlCtxtReadIO' file='HTMLparser' module='HTMLparser'>
<cond>defined(LIBXML_HTML_ENABLED)</cond>
<info>parse an HTML document from I/O functions and source and build a tree. This reuses the existing @ctxt parser context</info>
<return type='htmlDocPtr' info='the resulting document tree'/>
@@ -6893,7 +6913,7 @@ actually an xmlCharEncoding'/>
<arg name='encoding' type='const char *' info='the document encoding, or NULL'/>
<arg name='options' type='int' info='a combination of htmlParserOption(s)'/>
</function>
- <function name='htmlCtxtReadMemory' file='HTMLparser'>
+ <function name='htmlCtxtReadMemory' file='HTMLparser' module='HTMLparser'>
<cond>defined(LIBXML_HTML_ENABLED)</cond>
<info>parse an XML in-memory document and build a tree. This reuses the existing @ctxt parser context</info>
<return type='htmlDocPtr' info='the resulting document tree'/>
@@ -6904,25 +6924,25 @@ actually an xmlCharEncoding'/>
<arg name='encoding' type='const char *' info='the document encoding, or NULL'/>
<arg name='options' type='int' info='a combination of htmlParserOption(s)'/>
</function>
- <function name='htmlCtxtReset' file='HTMLparser'>
+ <function name='htmlCtxtReset' file='HTMLparser' module='HTMLparser'>
<cond>defined(LIBXML_HTML_ENABLED)</cond>
<info>Reset a parser context</info>
<return type='void'/>
<arg name='ctxt' type='htmlParserCtxtPtr' info='an HTML parser context'/>
</function>
- <function name='htmlCtxtUseOptions' file='HTMLparser'>
+ <function name='htmlCtxtUseOptions' file='HTMLparser' module='HTMLparser'>
<cond>defined(LIBXML_HTML_ENABLED)</cond>
<info>Applies the options to the parser context</info>
<return type='int' info='0 in case of success, the set of unknown or unimplemented options in case of error.'/>
<arg name='ctxt' type='htmlParserCtxtPtr' info='an HTML parser context'/>
<arg name='options' type='int' info='a combination of htmlParserOption(s)'/>
</function>
- <function name='htmlDefaultSAXHandlerInit' file='SAX2'>
+ <function name='htmlDefaultSAXHandlerInit' file='SAX2' module='SAX2'>
<cond>defined(LIBXML_HTML_ENABLED)</cond>
<info>Initialize the default SAX handler</info>
<return type='void'/>
</function>
- <function name='htmlDocContentDumpFormatOutput' file='HTMLtree'>
+ <function name='htmlDocContentDumpFormatOutput' file='HTMLtree' module='HTMLtree'>
<cond>defined(LIBXML_HTML_ENABLED) &amp;&amp; defined(LIBXML_OUTPUT_ENABLED)</cond>
<info>Dump an HTML document.</info>
<return type='void'/>
@@ -6931,7 +6951,7 @@ actually an xmlCharEncoding'/>
<arg name='encoding' type='const char *' info='the encoding string'/>
<arg name='format' type='int' info='should formatting spaces been added'/>
</function>
- <function name='htmlDocContentDumpOutput' file='HTMLtree'>
+ <function name='htmlDocContentDumpOutput' file='HTMLtree' module='HTMLtree'>
<cond>defined(LIBXML_HTML_ENABLED) &amp;&amp; defined(LIBXML_OUTPUT_ENABLED)</cond>
<info>Dump an HTML document. Formating return/spaces are added.</info>
<return type='void'/>
@@ -6939,14 +6959,14 @@ actually an xmlCharEncoding'/>
<arg name='cur' type='xmlDocPtr' info='the document'/>
<arg name='encoding' type='const char *' info='the encoding string'/>
</function>
- <function name='htmlDocDump' file='HTMLtree'>
+ <function name='htmlDocDump' file='HTMLtree' module='HTMLtree'>
<cond>defined(LIBXML_HTML_ENABLED) &amp;&amp; defined(LIBXML_OUTPUT_ENABLED)</cond>
<info>Dump an HTML document to an open FILE.</info>
<return type='int' info='the number of byte written or -1 in case of failure.'/>
<arg name='f' type='FILE *' info='the FILE*'/>
<arg name='cur' type='xmlDocPtr' info='the document'/>
</function>
- <function name='htmlDocDumpMemory' file='HTMLtree'>
+ <function name='htmlDocDumpMemory' file='HTMLtree' module='HTMLtree'>
<cond>defined(LIBXML_HTML_ENABLED) &amp;&amp; defined(LIBXML_OUTPUT_ENABLED)</cond>
<info>Dump an HTML document in memory and return the xmlChar * and it&apos;s size. It&apos;s up to the caller to free the memory.</info>
<return type='void'/>
@@ -6954,21 +6974,21 @@ actually an xmlCharEncoding'/>
<arg name='mem' type='xmlChar **' info='OUT: the memory pointer'/>
<arg name='size' type='int *' info='OUT: the memory length'/>
</function>
- <function name='htmlElementAllowedHere' file='HTMLparser'>
+ <function name='htmlElementAllowedHere' file='HTMLparser' module='HTMLparser'>
<cond>defined(LIBXML_HTML_ENABLED)</cond>
<info>Checks whether an HTML element may be a direct child of a parent element. Note - doesn&apos;t check for deprecated elements</info>
<return type='int' info='1 if allowed; 0 otherwise.'/>
<arg name='parent' type='const htmlElemDesc *' info='HTML parent element'/>
<arg name='elt' type='const xmlChar *' info='HTML element'/>
</function>
- <function name='htmlElementStatusHere' file='HTMLparser'>
+ <function name='htmlElementStatusHere' file='HTMLparser' module='HTMLparser'>
<cond>defined(LIBXML_HTML_ENABLED)</cond>
<info>Checks whether an HTML element may be a direct child of a parent element. and if so whether it is valid or deprecated.</info>
<return type='htmlStatus' info='one of HTML_VALID, HTML_DEPRECATED, HTML_INVALID'/>
<arg name='parent' type='const htmlElemDesc *' info='HTML parent element'/>
<arg name='elt' type='const htmlElemDesc *' info='HTML element'/>
</function>
- <function name='htmlEncodeEntities' file='HTMLparser'>
+ <function name='htmlEncodeEntities' file='HTMLparser' module='HTMLparser'>
<cond>defined(LIBXML_HTML_ENABLED)</cond>
<info>Take a block of UTF-8 chars in and try to convert it to an ASCII plus HTML entities block of chars out.</info>
<return type='int' info='0 if success, -2 if the transcoding fails, or -1 otherwise The value of @inlen after return is the number of octets consumed as the return value is positive, else unpredictable. The value of @outlen after return is the number of octets consumed.'/>
@@ -6978,75 +6998,75 @@ actually an xmlCharEncoding'/>
<arg name='inlen' type='int *' info='the length of @in'/>
<arg name='quoteChar' type='int' info='the quote character to escape (&apos; or &quot;) or zero.'/>
</function>
- <function name='htmlEntityLookup' file='HTMLparser'>
+ <function name='htmlEntityLookup' file='HTMLparser' module='HTMLparser'>
<cond>defined(LIBXML_HTML_ENABLED)</cond>
<info>Lookup the given entity in EntitiesTable TODO: the linear scan is really ugly, an hash table is really needed.</info>
<return type='const htmlEntityDesc *' info='the associated htmlEntityDescPtr if found, NULL otherwise.'/>
<arg name='name' type='const xmlChar *' info='the entity name'/>
</function>
- <function name='htmlEntityValueLookup' file='HTMLparser'>
+ <function name='htmlEntityValueLookup' file='HTMLparser' module='HTMLparser'>
<cond>defined(LIBXML_HTML_ENABLED)</cond>
<info>Lookup the given entity in EntitiesTable TODO: the linear scan is really ugly, an hash table is really needed.</info>
<return type='const htmlEntityDesc *' info='the associated htmlEntityDescPtr if found, NULL otherwise.'/>
<arg name='value' type='unsigned int' info='the entity&apos;s unicode value'/>
</function>
- <function name='htmlFreeParserCtxt' file='HTMLparser'>
+ <function name='htmlFreeParserCtxt' file='HTMLparser' module='HTMLparser'>
<cond>defined(LIBXML_HTML_ENABLED)</cond>
<info>Free all the memory used by a parser context. However the parsed document in ctxt-&gt;myDoc is not freed.</info>
<return type='void'/>
<arg name='ctxt' type='htmlParserCtxtPtr' info='an HTML parser context'/>
</function>
- <function name='htmlGetMetaEncoding' file='HTMLtree'>
+ <function name='htmlGetMetaEncoding' file='HTMLtree' module='HTMLtree'>
<cond>defined(LIBXML_HTML_ENABLED)</cond>
<info>Encoding definition lookup in the Meta tags</info>
<return type='const xmlChar *' info='the current encoding as flagged in the HTML source'/>
<arg name='doc' type='htmlDocPtr' info='the document'/>
</function>
- <function name='htmlHandleOmittedElem' file='HTMLparser'>
+ <function name='htmlHandleOmittedElem' file='HTMLparser' module='HTMLparser'>
<cond>defined(LIBXML_HTML_ENABLED)</cond>
<info>Set and return the previous value for handling HTML omitted tags.</info>
<return type='int' info='the last value for 0 for no handling, 1 for auto insertion.'/>
<arg name='val' type='int' info='int 0 or 1'/>
</function>
- <function name='htmlInitAutoClose' file='parserInternals'>
+ <function name='htmlInitAutoClose' file='parserInternals' module='HTMLparser'>
<cond>defined(LIBXML_HTML_ENABLED)</cond>
<info>Initialize the htmlStartCloseIndex for fast lookup of closing tags names. This is not reentrant. Call xmlInitParser() once before processing in case of use in multithreaded programs.</info>
<return type='void'/>
</function>
- <function name='htmlIsAutoClosed' file='HTMLparser'>
+ <function name='htmlIsAutoClosed' file='HTMLparser' module='HTMLparser'>
<cond>defined(LIBXML_HTML_ENABLED)</cond>
<info>The HTML DTD allows a tag to implicitly close other tags. The list is kept in htmlStartClose array. This function checks if a tag is autoclosed by one of it&apos;s child</info>
<return type='int' info='1 if autoclosed, 0 otherwise'/>
<arg name='doc' type='htmlDocPtr' info='the HTML document'/>
<arg name='elem' type='htmlNodePtr' info='the HTML element'/>
</function>
- <function name='htmlIsBooleanAttr' file='HTMLtree'>
+ <function name='htmlIsBooleanAttr' file='HTMLtree' module='HTMLtree'>
<cond>defined(LIBXML_HTML_ENABLED)</cond>
<info>Determine if a given attribute is a boolean attribute.</info>
<return type='int' info='false if the attribute is not boolean, true otherwise.'/>
<arg name='name' type='const xmlChar *' info='the name of the attribute to check'/>
</function>
- <function name='htmlIsScriptAttribute' file='HTMLparser'>
+ <function name='htmlIsScriptAttribute' file='HTMLparser' module='HTMLparser'>
<cond>defined(LIBXML_HTML_ENABLED)</cond>
<info>Check if an attribute is of content type Script</info>
<return type='int' info='1 is the attribute is a script 0 otherwise'/>
<arg name='name' type='const xmlChar *' info='an attribute name'/>
</function>
- <function name='htmlNewDoc' file='HTMLtree'>
+ <function name='htmlNewDoc' file='HTMLtree' module='HTMLparser'>
<cond>defined(LIBXML_HTML_ENABLED)</cond>
<info>Creates a new HTML document</info>
<return type='htmlDocPtr' info='a new document'/>
<arg name='URI' type='const xmlChar *' info='URI for the dtd, or NULL'/>
<arg name='ExternalID' type='const xmlChar *' info='the external ID of the DTD, or NULL'/>
</function>
- <function name='htmlNewDocNoDtD' file='HTMLtree'>
+ <function name='htmlNewDocNoDtD' file='HTMLtree' module='HTMLparser'>
<cond>defined(LIBXML_HTML_ENABLED)</cond>
<info>Creates a new HTML document without a DTD node if @URI and @ExternalID are NULL</info>
<return type='htmlDocPtr' info='a new document, do not initialize the DTD if not provided'/>
<arg name='URI' type='const xmlChar *' info='URI for the dtd, or NULL'/>
<arg name='ExternalID' type='const xmlChar *' info='the external ID of the DTD, or NULL'/>
</function>
- <function name='htmlNodeDump' file='HTMLtree'>
+ <function name='htmlNodeDump' file='HTMLtree' module='HTMLtree'>
<cond>defined(LIBXML_HTML_ENABLED) &amp;&amp; defined(LIBXML_OUTPUT_ENABLED)</cond>
<info>Dump an HTML node, recursive behaviour,children are printed too, and formatting returns are added.</info>
<return type='int' info='the number of byte written or -1 in case of error'/>
@@ -7054,7 +7074,7 @@ actually an xmlCharEncoding'/>
<arg name='doc' type='xmlDocPtr' info='the document'/>
<arg name='cur' type='xmlNodePtr' info='the current node'/>
</function>
- <function name='htmlNodeDumpFile' file='HTMLtree'>
+ <function name='htmlNodeDumpFile' file='HTMLtree' module='HTMLtree'>
<cond>defined(LIBXML_HTML_ENABLED) &amp;&amp; defined(LIBXML_OUTPUT_ENABLED)</cond>
<info>Dump an HTML node, recursive behaviour,children are printed too, and formatting returns are added.</info>
<return type='void'/>
@@ -7062,7 +7082,7 @@ actually an xmlCharEncoding'/>
<arg name='doc' type='xmlDocPtr' info='the document'/>
<arg name='cur' type='xmlNodePtr' info='the current node'/>
</function>
- <function name='htmlNodeDumpFileFormat' file='HTMLtree'>
+ <function name='htmlNodeDumpFileFormat' file='HTMLtree' module='HTMLtree'>
<cond>defined(LIBXML_HTML_ENABLED) &amp;&amp; defined(LIBXML_OUTPUT_ENABLED)</cond>
<info>Dump an HTML node, recursive behaviour,children are printed too. TODO: if encoding == NULL try to save in the doc encoding</info>
<return type='int' info='the number of byte written or -1 in case of failure.'/>
@@ -7072,7 +7092,7 @@ actually an xmlCharEncoding'/>
<arg name='encoding' type='const char *' info='the document encoding'/>
<arg name='format' type='int' info='should formatting spaces been added'/>
</function>
- <function name='htmlNodeDumpFormatOutput' file='HTMLtree'>
+ <function name='htmlNodeDumpFormatOutput' file='HTMLtree' module='HTMLtree'>
<cond>defined(LIBXML_HTML_ENABLED) &amp;&amp; defined(LIBXML_OUTPUT_ENABLED)</cond>
<info>Dump an HTML node, recursive behaviour,children are printed too.</info>
<return type='void'/>
@@ -7082,7 +7102,7 @@ actually an xmlCharEncoding'/>
<arg name='encoding' type='const char *' info='the encoding string'/>
<arg name='format' type='int' info='should formatting spaces been added'/>
</function>
- <function name='htmlNodeDumpOutput' file='HTMLtree'>
+ <function name='htmlNodeDumpOutput' file='HTMLtree' module='HTMLtree'>
<cond>defined(LIBXML_HTML_ENABLED) &amp;&amp; defined(LIBXML_OUTPUT_ENABLED)</cond>
<info>Dump an HTML node, recursive behaviour,children are printed too, and formatting returns/spaces are added.</info>
<return type='void'/>
@@ -7091,20 +7111,20 @@ actually an xmlCharEncoding'/>
<arg name='cur' type='xmlNodePtr' info='the current node'/>
<arg name='encoding' type='const char *' info='the encoding string'/>
</function>
- <function name='htmlNodeStatus' file='HTMLparser'>
+ <function name='htmlNodeStatus' file='HTMLparser' module='HTMLparser'>
<cond>defined(LIBXML_HTML_ENABLED)</cond>
<info>Checks whether the tree node is valid. Experimental (the author only uses the HTML enhancements in a SAX parser)</info>
<return type='htmlStatus' info='for Element nodes, a return from htmlElementAllowedHere (if legacy allowed) or htmlElementStatusHere (otherwise). for Attribute nodes, a return from htmlAttrAllowed for other nodes, HTML_NA (no checks performed)'/>
<arg name='node' type='const htmlNodePtr' info='an htmlNodePtr in a tree'/>
<arg name='legacy' type='int' info='whether to allow deprecated elements (YES is faster here for Element nodes)'/>
</function>
- <function name='htmlParseCharRef' file='HTMLparser'>
+ <function name='htmlParseCharRef' file='HTMLparser' module='HTMLparser'>
<cond>defined(LIBXML_HTML_ENABLED)</cond>
<info>parse Reference declarations [66] CharRef ::= &apos;&amp;#&apos; [0-9]+ &apos;;&apos; | &apos;&amp;#x&apos; [0-9a-fA-F]+ &apos;;&apos;</info>
<return type='int' info='the value parsed (as an int)'/>
<arg name='ctxt' type='htmlParserCtxtPtr' info='an HTML parser context'/>
</function>
- <function name='htmlParseChunk' file='HTMLparser'>
+ <function name='htmlParseChunk' file='HTMLparser' module='HTMLparser'>
<cond>defined(LIBXML_HTML_ENABLED) &amp;&amp; defined(LIBXML_PUSH_ENABLED)</cond>
<info>Parse a Chunk of memory</info>
<return type='int' info='zero if no error, the xmlParserErrors otherwise.'/>
@@ -7113,40 +7133,40 @@ actually an xmlCharEncoding'/>
<arg name='size' type='int' info='the size in byte of the chunk'/>
<arg name='terminate' type='int' info='last chunk indicator'/>
</function>
- <function name='htmlParseDoc' file='HTMLparser'>
+ <function name='htmlParseDoc' file='HTMLparser' module='HTMLparser'>
<cond>defined(LIBXML_HTML_ENABLED)</cond>
<info>parse an HTML in-memory document and build a tree.</info>
<return type='htmlDocPtr' info='the resulting document tree'/>
<arg name='cur' type='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'>
+ <function name='htmlParseDocument' file='HTMLparser' module='HTMLparser'>
<cond>defined(LIBXML_HTML_ENABLED)</cond>
<info>parse an HTML document (and build a tree if using the standard SAX interface).</info>
<return type='int' info='0, -1 in case of error. the parser context is augmented as a result of the parsing.'/>
<arg name='ctxt' type='htmlParserCtxtPtr' info='an HTML parser context'/>
</function>
- <function name='htmlParseElement' file='HTMLparser'>
+ <function name='htmlParseElement' file='HTMLparser' module='HTMLparser'>
<cond>defined(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'>
+ <function name='htmlParseEntityRef' file='HTMLparser' module='HTMLparser'>
<cond>defined(LIBXML_HTML_ENABLED)</cond>
<info>parse an HTML ENTITY references [68] EntityRef ::= &apos;&amp;&apos; Name &apos;;&apos;</info>
<return type='const htmlEntityDesc *' info='the associated htmlEntityDescPtr if found, or NULL otherwise, if non-NULL *str will have to be freed by the caller.'/>
<arg name='ctxt' type='htmlParserCtxtPtr' info='an HTML parser context'/>
<arg name='str' type='const xmlChar **' info='location to store the entity name'/>
</function>
- <function name='htmlParseFile' file='HTMLparser'>
+ <function name='htmlParseFile' file='HTMLparser' module='HTMLparser'>
<cond>defined(LIBXML_HTML_ENABLED)</cond>
<info>parse an HTML file and build a tree. Automatic support for ZLIB/Compress compressed document is provided by default if found at compile-time.</info>
<return type='htmlDocPtr' info='the resulting document tree'/>
<arg name='filename' type='const char *' info='the filename'/>
<arg name='encoding' type='const char *' info='a free form C string describing the HTML document encoding, or NULL'/>
</function>
- <function name='htmlReadDoc' file='HTMLparser'>
+ <function name='htmlReadDoc' file='HTMLparser' module='HTMLparser'>
<cond>defined(LIBXML_HTML_ENABLED)</cond>
<info>parse an XML in-memory document and build a tree.</info>
<return type='htmlDocPtr' info='the resulting document tree'/>
@@ -7155,7 +7175,7 @@ actually an xmlCharEncoding'/>
<arg name='encoding' type='const char *' info='the document encoding, or NULL'/>
<arg name='options' type='int' info='a combination of htmlParserOption(s)'/>
</function>
- <function name='htmlReadFd' file='HTMLparser'>
+ <function name='htmlReadFd' file='HTMLparser' module='HTMLparser'>
<cond>defined(LIBXML_HTML_ENABLED)</cond>
<info>parse an XML from a file descriptor and build a tree.</info>
<return type='htmlDocPtr' info='the resulting document tree'/>
@@ -7164,7 +7184,7 @@ actually an xmlCharEncoding'/>
<arg name='encoding' type='const char *' info='the document encoding, or NULL'/>
<arg name='options' type='int' info='a combination of htmlParserOption(s)'/>
</function>
- <function name='htmlReadFile' file='HTMLparser'>
+ <function name='htmlReadFile' file='HTMLparser' module='HTMLparser'>
<cond>defined(LIBXML_HTML_ENABLED)</cond>
<info>parse an XML file from the filesystem or the network.</info>
<return type='htmlDocPtr' info='the resulting document tree'/>
@@ -7172,7 +7192,7 @@ actually an xmlCharEncoding'/>
<arg name='encoding' type='const char *' info='the document encoding, or NULL'/>
<arg name='options' type='int' info='a combination of htmlParserOption(s)'/>
</function>
- <function name='htmlReadIO' file='HTMLparser'>
+ <function name='htmlReadIO' file='HTMLparser' module='HTMLparser'>
<cond>defined(LIBXML_HTML_ENABLED)</cond>
<info>parse an HTML document from I/O functions and source and build a tree.</info>
<return type='htmlDocPtr' info='the resulting document tree'/>
@@ -7183,7 +7203,7 @@ actually an xmlCharEncoding'/>
<arg name='encoding' type='const char *' info='the document encoding, or NULL'/>
<arg name='options' type='int' info='a combination of htmlParserOption(s)'/>
</function>
- <function name='htmlReadMemory' file='HTMLparser'>
+ <function name='htmlReadMemory' file='HTMLparser' module='HTMLparser'>
<cond>defined(LIBXML_HTML_ENABLED)</cond>
<info>parse an XML in-memory document and build a tree.</info>
<return type='htmlDocPtr' info='the resulting document tree'/>
@@ -7193,7 +7213,7 @@ actually an xmlCharEncoding'/>
<arg name='encoding' type='const char *' info='the document encoding, or NULL'/>
<arg name='options' type='int' info='a combination of htmlParserOption(s)'/>
</function>
- <function name='htmlSAXParseDoc' file='HTMLparser'>
+ <function name='htmlSAXParseDoc' file='HTMLparser' module='HTMLparser'>
<cond>defined(LIBXML_HTML_ENABLED)</cond>
<info>Parse an HTML in-memory document. If sax is not NULL, use the SAX callbacks to handle parse events. If sax is NULL, fallback to the default DOM behavior and return a tree.</info>
<return type='htmlDocPtr' info='the resulting document tree unless SAX is NULL or the document is not well formed.'/>
@@ -7202,7 +7222,7 @@ actually an xmlCharEncoding'/>
<arg name='sax' type='htmlSAXHandlerPtr' info='the SAX handler block'/>
<arg name='userData' type='void *' info='if using SAX, this pointer will be provided on callbacks.'/>
</function>
- <function name='htmlSAXParseFile' file='HTMLparser'>
+ <function name='htmlSAXParseFile' file='HTMLparser' module='HTMLparser'>
<cond>defined(LIBXML_HTML_ENABLED)</cond>
<info>parse an HTML file and build a tree. Automatic support for ZLIB/Compress compressed document is provided by default if found at compile-time. It use the given SAX function block to handle the parsing callback. If sax is NULL, fallback to the default DOM tree building routines.</info>
<return type='htmlDocPtr' info='the resulting document tree unless SAX is NULL or the document is not well formed.'/>
@@ -7211,14 +7231,14 @@ actually an xmlCharEncoding'/>
<arg name='sax' type='htmlSAXHandlerPtr' info='the SAX handler block'/>
<arg name='userData' type='void *' info='if using SAX, this pointer will be provided on callbacks.'/>
</function>
- <function name='htmlSaveFile' file='HTMLtree'>
+ <function name='htmlSaveFile' file='HTMLtree' module='HTMLtree'>
<cond>defined(LIBXML_HTML_ENABLED) &amp;&amp; defined(LIBXML_OUTPUT_ENABLED)</cond>
<info>Dump an HTML document to a file. If @filename is &quot;-&quot; the stdout file is used.</info>
<return type='int' info='the number of byte written or -1 in case of failure.'/>
<arg name='filename' type='const char *' info='the filename (or URL)'/>
<arg name='cur' type='xmlDocPtr' info='the document'/>
</function>
- <function name='htmlSaveFileEnc' file='HTMLtree'>
+ <function name='htmlSaveFileEnc' file='HTMLtree' module='HTMLtree'>
<cond>defined(LIBXML_HTML_ENABLED) &amp;&amp; defined(LIBXML_OUTPUT_ENABLED)</cond>
<info>Dump an HTML document to a file using a given encoding and formatting returns/spaces are added.</info>
<return type='int' info='the number of byte written or -1 in case of failure.'/>
@@ -7226,7 +7246,7 @@ actually an xmlCharEncoding'/>
<arg name='cur' type='xmlDocPtr' info='the document'/>
<arg name='encoding' type='const char *' info='the document encoding'/>
</function>
- <function name='htmlSaveFileFormat' file='HTMLtree'>
+ <function name='htmlSaveFileFormat' file='HTMLtree' module='HTMLtree'>
<cond>defined(LIBXML_HTML_ENABLED) &amp;&amp; defined(LIBXML_OUTPUT_ENABLED)</cond>
<info>Dump an HTML document to a file using a given encoding.</info>
<return type='int' info='the number of byte written or -1 in case of failure.'/>
@@ -7235,20 +7255,20 @@ actually an xmlCharEncoding'/>
<arg name='encoding' type='const char *' info='the document encoding'/>
<arg name='format' type='int' info='should formatting spaces been added'/>
</function>
- <function name='htmlSetMetaEncoding' file='HTMLtree'>
+ <function name='htmlSetMetaEncoding' file='HTMLtree' module='HTMLtree'>
<cond>defined(LIBXML_HTML_ENABLED)</cond>
<info>Sets the current encoding in the Meta tags NOTE: this will not change the document content encoding, just the META flag associated.</info>
<return type='int' info='0 in case of success and -1 in case of error'/>
<arg name='doc' type='htmlDocPtr' info='the document'/>
<arg name='encoding' type='const xmlChar *' info='the encoding string'/>
</function>
- <function name='htmlTagLookup' file='HTMLparser'>
+ <function name='htmlTagLookup' file='HTMLparser' module='HTMLparser'>
<cond>defined(LIBXML_HTML_ENABLED)</cond>
<info>Lookup the HTML tag in the ElementTable</info>
<return type='const htmlElemDesc *' info='the related htmlElemDescPtr or NULL if not found.'/>
<arg name='tag' type='const xmlChar *' info='The tag name in lowercase'/>
</function>
- <function name='ignorableWhitespace' file='SAX'>
+ <function name='ignorableWhitespace' file='SAX' module='legacy'>
<cond>defined(LIBXML_LEGACY_ENABLED)</cond>
<info>receiving some ignorable whitespaces from the parser. UNUSED: by default the DOM building will use characters DEPRECATED: use xmlSAX2IgnorableWhitespace()</info>
<return type='void'/>
@@ -7256,49 +7276,49 @@ actually an xmlCharEncoding'/>
<arg name='ch' type='const xmlChar *' info='a xmlChar string'/>
<arg name='len' type='int' info='the number of xmlChar'/>
</function>
- <functype name='ignorableWhitespaceSAXFunc' file='parser'>
+ <functype name='ignorableWhitespaceSAXFunc' file='parser' module='parser'>
<info>Receiving some ignorable whitespaces from the parser. UNUSED: by default the DOM building will use characters.</info>
<return type='void'/>
<arg name='ctx' type='void *' info='the user data (XML parser context)'/>
<arg name='ch' type='const xmlChar *' info='a xmlChar string'/>
<arg name='len' type='int' info='the number of xmlChar'/>
</functype>
- <function name='initGenericErrorDefaultFunc' file='xmlerror'>
+ <function name='initGenericErrorDefaultFunc' file='xmlerror' module='error'>
<info>Set or reset (if NULL) the default handler for generic errors to the builtin error function.</info>
<return type='void'/>
<arg name='handler' type='xmlGenericErrorFunc *' info='the handler'/>
</function>
- <function name='initdocbDefaultSAXHandler' file='SAX'>
+ <function name='initdocbDefaultSAXHandler' file='SAX' module='SAX'>
<cond>defined(LIBXML_LEGACY_ENABLED) &amp;&amp; defined(LIBXML_SAX1_ENABLED) &amp;&amp; defined(LIBXML_DOCB_ENABLED)</cond>
<info>Initialize the default DocBook SAX version 1 handler DEPRECATED: use xmlSAX2InitDocbDefaultSAXHandler() for the new SAX2 blocks</info>
<return type='void'/>
<arg name='hdlr' type='xmlSAXHandlerV1 *' info='the SAX handler'/>
</function>
- <function name='inithtmlDefaultSAXHandler' file='SAX'>
+ <function name='inithtmlDefaultSAXHandler' file='SAX' module='SAX'>
<cond>defined(LIBXML_LEGACY_ENABLED) &amp;&amp; defined(LIBXML_SAX1_ENABLED) &amp;&amp; defined(LIBXML_HTML_ENABLED)</cond>
<info>Initialize the default HTML SAX version 1 handler DEPRECATED: use xmlSAX2InitHtmlDefaultSAXHandler() for the new SAX2 blocks</info>
<return type='void'/>
<arg name='hdlr' type='xmlSAXHandlerV1 *' info='the SAX handler'/>
</function>
- <function name='initxmlDefaultSAXHandler' file='SAX'>
+ <function name='initxmlDefaultSAXHandler' file='SAX' module='SAX'>
<cond>defined(LIBXML_LEGACY_ENABLED) &amp;&amp; defined(LIBXML_SAX1_ENABLED)</cond>
<info>Initialize the default XML SAX version 1 handler DEPRECATED: use xmlSAX2InitDefaultSAXHandler() for the new SAX2 blocks</info>
<return type='void'/>
<arg name='hdlr' type='xmlSAXHandlerV1 *' info='the SAX handler'/>
<arg name='warning' type='int' info='flag if non-zero sets the handler warning procedure'/>
</function>
- <function name='inputPop' file='parserInternals'>
+ <function name='inputPop' file='parserInternals' module='parser'>
<info>Pops the top parser input from the input stack</info>
<return type='xmlParserInputPtr' info='the input just removed'/>
<arg name='ctxt' type='xmlParserCtxtPtr' info='an XML parser context'/>
</function>
- <function name='inputPush' file='parserInternals'>
+ <function name='inputPush' file='parserInternals' module='parser'>
<info>Pushes a new parser input on top of the input stack</info>
<return type='int' info='0 in case of error, the index in the stack otherwise'/>
<arg name='ctxt' type='xmlParserCtxtPtr' info='an XML parser context'/>
<arg name='value' type='xmlParserInputPtr' info='the parser input'/>
</function>
- <function name='internalSubset' file='SAX'>
+ <function name='internalSubset' file='SAX' module='legacy'>
<cond>defined(LIBXML_LEGACY_ENABLED)</cond>
<info>Callback on internal subset declaration. DEPRECATED: use xmlSAX2InternalSubset()</info>
<return type='void'/>
@@ -7307,7 +7327,7 @@ actually an xmlCharEncoding'/>
<arg name='ExternalID' type='const xmlChar *' info='the external ID'/>
<arg name='SystemID' type='const xmlChar *' info='the SYSTEM ID (e.g. filename or URL)'/>
</function>
- <functype name='internalSubsetSAXFunc' file='parser'>
+ <functype name='internalSubsetSAXFunc' file='parser' module='parser'>
<info>Callback on internal subset declaration.</info>
<return type='void'/>
<arg name='ctx' type='void *' info='the user data (XML parser context)'/>
@@ -7315,18 +7335,18 @@ actually an xmlCharEncoding'/>
<arg name='ExternalID' type='const xmlChar *' info='the external ID'/>
<arg name='SystemID' type='const xmlChar *' info='the SYSTEM ID (e.g. filename or URL)'/>
</functype>
- <function name='isStandalone' file='SAX'>
+ <function name='isStandalone' file='SAX' module='legacy'>
<cond>defined(LIBXML_LEGACY_ENABLED)</cond>
<info>Is this document tagged standalone ? DEPRECATED: use xmlSAX2IsStandalone()</info>
<return type='int' info='1 if true'/>
<arg name='ctx' type='void *' info='the user data (XML parser context)'/>
</function>
- <functype name='isStandaloneSAXFunc' file='parser'>
+ <functype name='isStandaloneSAXFunc' file='parser' module='parser'>
<info>Is this document tagged standalone?</info>
<return type='int' info='1 if true'/>
<arg name='ctx' type='void *' info='the user data (XML parser context)'/>
</functype>
- <function name='isolat1ToUTF8' file='encoding'>
+ <function name='isolat1ToUTF8' file='encoding' module='encoding'>
<info>Take a block of ISO Latin 1 chars in and try to convert it to an UTF-8 block of chars out.</info>
<return type='int' info='the number of bytes written if success, or -1 otherwise The value of @inlen after return is the number of octets consumed if the return value is positive, else unpredictable. The value of @outlen after return is the number of octets consumed.'/>
<arg name='out' type='unsigned char *' info='a pointer to an array of bytes to store the result'/>
@@ -7334,18 +7354,18 @@ actually an xmlCharEncoding'/>
<arg name='in' type='const unsigned char *' info='a pointer to an array of ISO Latin 1 chars'/>
<arg name='inlen' type='int *' info='the length of @in'/>
</function>
- <function name='namePop' file='parserInternals'>
+ <function name='namePop' file='parserInternals' module='parser'>
<info>Pops the top element name from the name stack</info>
<return type='const xmlChar *' info='the name just removed'/>
<arg name='ctxt' type='xmlParserCtxtPtr' info='an XML parser context'/>
</function>
- <function name='namePush' file='parserInternals'>
+ <function name='namePush' file='parserInternals' module='parser'>
<info>Pushes a new element name on top of the name stack</info>
<return type='int' info='-1 in case of error, the index in the stack otherwise'/>
<arg name='ctxt' type='xmlParserCtxtPtr' info='an XML parser context'/>
<arg name='value' type='const xmlChar *' info='the element name'/>
</function>
- <function name='namespaceDecl' file='SAX'>
+ <function name='namespaceDecl' file='SAX' module='legacy'>
<cond>defined(LIBXML_LEGACY_ENABLED)</cond>
<info>A namespace has been parsed. DEPRECATED</info>
<return type='void'/>
@@ -7353,18 +7373,18 @@ actually an xmlCharEncoding'/>
<arg name='href' type='const xmlChar *' info='the namespace associated URN'/>
<arg name='prefix' type='const xmlChar *' info='the namespace prefix'/>
</function>
- <function name='nodePop' file='parserInternals'>
+ <function name='nodePop' file='parserInternals' module='parser'>
<info>Pops the top element node from the node stack</info>
<return type='xmlNodePtr' info='the node just removed'/>
<arg name='ctxt' type='xmlParserCtxtPtr' info='an XML parser context'/>
</function>
- <function name='nodePush' file='parserInternals'>
+ <function name='nodePush' file='parserInternals' module='parser'>
<info>Pushes a new element node on top of the node stack</info>
<return type='int' info='0 in case of error, the index in the stack otherwise'/>
<arg name='ctxt' type='xmlParserCtxtPtr' info='an XML parser context'/>
<arg name='value' type='xmlNodePtr' info='the element node'/>
</function>
- <function name='notationDecl' file='SAX'>
+ <function name='notationDecl' file='SAX' module='legacy'>
<cond>defined(LIBXML_LEGACY_ENABLED)</cond>
<info>What to do when a notation declaration has been parsed. DEPRECATED: use xmlSAX2NotationDecl()</info>
<return type='void'/>
@@ -7373,7 +7393,7 @@ actually an xmlCharEncoding'/>
<arg name='publicId' type='const xmlChar *' info='The public ID of the entity'/>
<arg name='systemId' type='const xmlChar *' info='The system ID of the entity'/>
</function>
- <functype name='notationDeclSAXFunc' file='parser'>
+ <functype name='notationDeclSAXFunc' file='parser' module='parser'>
<info>What to do when a notation declaration has been parsed.</info>
<return type='void'/>
<arg name='ctx' type='void *' info='the user data (XML parser context)'/>
@@ -7381,7 +7401,7 @@ actually an xmlCharEncoding'/>
<arg name='publicId' type='const xmlChar *' info='The public ID of the entity'/>
<arg name='systemId' type='const xmlChar *' info='The system ID of the entity'/>
</functype>
- <function name='processingInstruction' file='SAX'>
+ <function name='processingInstruction' file='SAX' module='legacy'>
<cond>defined(LIBXML_LEGACY_ENABLED)</cond>
<info>A processing instruction has been parsed. DEPRECATED: use xmlSAX2ProcessingInstruction()</info>
<return type='void'/>
@@ -7389,27 +7409,27 @@ actually an xmlCharEncoding'/>
<arg name='target' type='const xmlChar *' info='the target name'/>
<arg name='data' type='const xmlChar *' info='the PI data&apos;s'/>
</function>
- <functype name='processingInstructionSAXFunc' file='parser'>
+ <functype name='processingInstructionSAXFunc' file='parser' module='parser'>
<info>A processing instruction has been parsed.</info>
<return type='void'/>
<arg name='ctx' type='void *' info='the user data (XML parser context)'/>
<arg name='target' type='const xmlChar *' info='the target name'/>
<arg name='data' type='const xmlChar *' info='the PI data&apos;s'/>
</functype>
- <function name='reference' file='SAX'>
+ <function name='reference' file='SAX' module='legacy'>
<cond>defined(LIBXML_LEGACY_ENABLED)</cond>
<info>called when an entity reference is detected. DEPRECATED: use xmlSAX2Reference()</info>
<return type='void'/>
<arg name='ctx' type='void *' info='the user data (XML parser context)'/>
<arg name='name' type='const xmlChar *' info='The entity name'/>
</function>
- <functype name='referenceSAXFunc' file='parser'>
+ <functype name='referenceSAXFunc' file='parser' module='parser'>
<info>Called when an entity reference is detected.</info>
<return type='void'/>
<arg name='ctx' type='void *' info='the user data (XML parser context)'/>
<arg name='name' type='const xmlChar *' info='The entity name'/>
</functype>
- <function name='resolveEntity' file='SAX'>
+ <function name='resolveEntity' file='SAX' module='legacy'>
<cond>defined(LIBXML_LEGACY_ENABLED)</cond>
<info>The entity loader, to control the loading of external entities, the application can either: - override this resolveEntity() callback in the SAX block - or better use the xmlSetExternalEntityLoader() function to set up it&apos;s own entity resolution routine DEPRECATED: use xmlSAX2ResolveEntity()</info>
<return type='xmlParserInputPtr' info='the xmlParserInputPtr if inlined or NULL for DOM behaviour.'/>
@@ -7417,45 +7437,45 @@ actually an xmlCharEncoding'/>
<arg name='publicId' type='const xmlChar *' info='The public ID of the entity'/>
<arg name='systemId' type='const xmlChar *' info='The system ID of the entity'/>
</function>
- <functype name='resolveEntitySAXFunc' file='parser'>
+ <functype name='resolveEntitySAXFunc' file='parser' module='parser'>
<info>Callback: The entity loader, to control the loading of external entities, the application can either: - override this resolveEntity() callback in the SAX block - or better use the xmlSetExternalEntityLoader() function to set up it&apos;s own entity resolution routine</info>
<return type='xmlParserInputPtr' info='the xmlParserInputPtr if inlined or NULL for DOM behaviour.'/>
<arg name='ctx' type='void *' info='the user data (XML parser context)'/>
<arg name='publicId' type='const xmlChar *' info='The public ID of the entity'/>
<arg name='systemId' type='const xmlChar *' info='The system ID of the entity'/>
</functype>
- <function name='setDocumentLocator' file='SAX'>
+ <function name='setDocumentLocator' file='SAX' module='legacy'>
<cond>defined(LIBXML_LEGACY_ENABLED)</cond>
<info>Receive the document locator at startup, actually xmlDefaultSAXLocator Everything is available on the context, so this is useless in our case. DEPRECATED</info>
<return type='void'/>
<arg name='ctx' type='void *' info='the user data (XML parser context)'/>
<arg name='loc' type='xmlSAXLocatorPtr' info='A SAX Locator'/>
</function>
- <functype name='setDocumentLocatorSAXFunc' file='parser'>
+ <functype name='setDocumentLocatorSAXFunc' file='parser' module='parser'>
<info>Receive the document locator at startup, actually xmlDefaultSAXLocator. Everything is available on the context, so this is useless in our case.</info>
<return type='void'/>
<arg name='ctx' type='void *' info='the user data (XML parser context)'/>
<arg name='loc' type='xmlSAXLocatorPtr' info='A SAX Locator'/>
</functype>
- <function name='setNamespace' file='SAX'>
+ <function name='setNamespace' file='SAX' module='legacy'>
<cond>defined(LIBXML_LEGACY_ENABLED)</cond>
<info>Set the current element namespace. DEPRECATED</info>
<return type='void'/>
<arg name='ctx' type='void *' info='the user data (XML parser context)'/>
<arg name='name' type='const xmlChar *' info='the namespace prefix'/>
</function>
- <function name='startDocument' file='SAX'>
+ <function name='startDocument' file='SAX' module='legacy'>
<cond>defined(LIBXML_LEGACY_ENABLED)</cond>
<info>called when the document start being processed. DEPRECATED: use xmlSAX2StartDocument()</info>
<return type='void'/>
<arg name='ctx' type='void *' info='the user data (XML parser context)'/>
</function>
- <functype name='startDocumentSAXFunc' file='parser'>
+ <functype name='startDocumentSAXFunc' file='parser' module='parser'>
<info>Called when the document start being processed.</info>
<return type='void'/>
<arg name='ctx' type='void *' info='the user data (XML parser context)'/>
</functype>
- <function name='startElement' file='SAX'>
+ <function name='startElement' file='SAX' module='legacy'>
<cond>defined(LIBXML_LEGACY_ENABLED)</cond>
<info>called when an opening tag has been processed. DEPRECATED: use xmlSAX2StartElement()</info>
<return type='void'/>
@@ -7463,7 +7483,7 @@ actually an xmlCharEncoding'/>
<arg name='fullname' type='const xmlChar *' info='The element name, including namespace prefix'/>
<arg name='atts' type='const xmlChar **' info='An array of name/value attributes pairs, NULL terminated'/>
</function>
- <functype name='startElementNsSAX2Func' file='parser'>
+ <functype name='startElementNsSAX2Func' file='parser' module='parser'>
<info>SAX2 callback when an element start has been detected by the parser. It provides the namespace informations for the element, as well as the new namespace declarations on the element.</info>
<return type='void'/>
<arg name='ctx' type='void *' info='the user data (XML parser context)'/>
@@ -7476,14 +7496,14 @@ actually an xmlCharEncoding'/>
<arg name='nb_defaulted' type='int' info='the number of defaulted attributes. The defaulted ones are at the end of the array'/>
<arg name='attributes' type='const xmlChar **' info='pointer to the array of (localname/prefix/URI/value/end) attribute values.'/>
</functype>
- <functype name='startElementSAXFunc' file='parser'>
+ <functype name='startElementSAXFunc' file='parser' module='parser'>
<info>Called when an opening tag has been processed.</info>
<return type='void'/>
<arg name='ctx' type='void *' info='the user data (XML parser context)'/>
<arg name='name' type='const xmlChar *' info='The element name, including namespace prefix'/>
<arg name='atts' type='const xmlChar **' info='An array of name/value attributes pairs, NULL terminated'/>
</functype>
- <function name='unparsedEntityDecl' file='SAX'>
+ <function name='unparsedEntityDecl' file='SAX' module='legacy'>
<cond>defined(LIBXML_LEGACY_ENABLED)</cond>
<info>What to do when an unparsed entity declaration is parsed DEPRECATED: use xmlSAX2UnparsedEntityDecl()</info>
<return type='void'/>
@@ -7493,7 +7513,7 @@ actually an xmlCharEncoding'/>
<arg name='systemId' type='const xmlChar *' info='The system ID of the entity'/>
<arg name='notationName' type='const xmlChar *' info='the name of the notation'/>
</function>
- <functype name='unparsedEntityDeclSAXFunc' file='parser'>
+ <functype name='unparsedEntityDeclSAXFunc' file='parser' module='parser'>
<info>What to do when an unparsed entity declaration is parsed.</info>
<return type='void'/>
<arg name='ctx' type='void *' info='the user data (XML parser context)'/>
@@ -7502,27 +7522,27 @@ actually an xmlCharEncoding'/>
<arg name='systemId' type='const xmlChar *' info='The system ID of the entity'/>
<arg name='notationName' type='const xmlChar *' info='the name of the notation'/>
</functype>
- <function name='valuePop' file='xpathInternals'>
+ <function name='valuePop' file='xpathInternals' module='xpath'>
<cond>defined(LIBXML_XPATH_ENABLED)</cond>
<info>Pops the top XPath object from the value stack</info>
<return type='xmlXPathObjectPtr' info='the XPath object just removed'/>
<arg name='ctxt' type='xmlXPathParserContextPtr' info='an XPath evaluation context'/>
</function>
- <function name='valuePush' file='xpathInternals'>
+ <function name='valuePush' file='xpathInternals' module='xpath'>
<cond>defined(LIBXML_XPATH_ENABLED)</cond>
<info>Pushes a new XPath object on top of the value stack</info>
<return type='int' info='the number of items on the value stack'/>
<arg name='ctxt' type='xmlXPathParserContextPtr' info='an XPath evaluation context'/>
<arg name='value' type='xmlXPathObjectPtr' info='the XPath object'/>
</function>
- <functype name='warningSAXFunc' file='parser'>
+ <functype name='warningSAXFunc' file='parser' module='parser'>
<info>Display and format a warning messages, callback.</info>
<return type='void'/>
<arg name='ctx' type='void *' info='an XML parser context'/>
<arg name='msg' type='const char *' info='the message to display/transmit'/>
<arg name='...' type='...' info='extra parameters for the message display'/>
</functype>
- <functype name='xlinkExtendedLinkFunk' file='xlink'>
+ <functype name='xlinkExtendedLinkFunk' file='xlink' module='xlink'>
<cond>defined(LIBXML_XPTR_ENABLED)</cond>
<info>This is the prototype for a extended link detection callback.</info>
<return type='void'/>
@@ -7540,7 +7560,7 @@ actually an xmlCharEncoding'/>
<arg name='titles' type='const xlinkTitle *' info=''/>
<arg name='langs' type='const xmlChar **' info='array of xml:lang values for the titles'/>
</functype>
- <functype name='xlinkExtendedLinkSetFunk' file='xlink'>
+ <functype name='xlinkExtendedLinkSetFunk' file='xlink' module='xlink'>
<cond>defined(LIBXML_XPTR_ENABLED)</cond>
<info>This is the prototype for a extended link set detection callback.</info>
<return type='void'/>
@@ -7553,43 +7573,43 @@ actually an xmlCharEncoding'/>
<arg name='titles' type='const xlinkTitle *' info=''/>
<arg name='langs' type='const xmlChar **' info='array of xml:lang values for the titles'/>
</functype>
- <function name='xlinkGetDefaultDetect' file='xlink'>
+ <function name='xlinkGetDefaultDetect' file='xlink' module='xlink'>
<cond>defined(LIBXML_XPTR_ENABLED)</cond>
<info>Get the default xlink detection routine</info>
<return type='xlinkNodeDetectFunc' info='the current function or NULL;'/>
</function>
- <function name='xlinkGetDefaultHandler' file='xlink'>
+ <function name='xlinkGetDefaultHandler' file='xlink' module='xlink'>
<cond>defined(LIBXML_XPTR_ENABLED)</cond>
<info>Get the default xlink handler.</info>
<return type='xlinkHandlerPtr' info='the current xlinkHandlerPtr value.'/>
</function>
- <function name='xlinkIsLink' file='xlink'>
+ <function name='xlinkIsLink' file='xlink' module='xlink'>
<cond>defined(LIBXML_XPTR_ENABLED)</cond>
<info>Check whether the given node carries the attributes needed to be a link element (or is one of the linking elements issued from the (X)HTML DtDs). This routine don&apos;t try to do full checking of the link validity but tries to detect and return the appropriate link type.</info>
<return type='xlinkType' info='the xlinkType of the node (XLINK_TYPE_NONE if there is no link detected.'/>
<arg name='doc' type='xmlDocPtr' info='the document containing the node'/>
<arg name='node' type='xmlNodePtr' info='the node pointer itself'/>
</function>
- <functype name='xlinkNodeDetectFunc' file='xlink'>
+ <functype name='xlinkNodeDetectFunc' file='xlink' module='xlink'>
<cond>defined(LIBXML_XPTR_ENABLED)</cond>
<info>This is the prototype for the link detection routine. It calls the default link detection callbacks upon link detection.</info>
<return type='void'/>
<arg name='ctx' type='void *' info='user data pointer'/>
<arg name='node' type='xmlNodePtr' info='the node to check'/>
</functype>
- <function name='xlinkSetDefaultDetect' file='xlink'>
+ <function name='xlinkSetDefaultDetect' file='xlink' module='xlink'>
<cond>defined(LIBXML_XPTR_ENABLED)</cond>
<info>Set the default xlink detection routine</info>
<return type='void'/>
<arg name='func' type='xlinkNodeDetectFunc' info='pointer to the new detection routine.'/>
</function>
- <function name='xlinkSetDefaultHandler' file='xlink'>
+ <function name='xlinkSetDefaultHandler' file='xlink' module='xlink'>
<cond>defined(LIBXML_XPTR_ENABLED)</cond>
<info>Set the default xlink handlers</info>
<return type='void'/>
<arg name='handler' type='xlinkHandlerPtr' info='the new value for the xlink handler block'/>
</function>
- <functype name='xlinkSimpleLinkFunk' file='xlink'>
+ <functype name='xlinkSimpleLinkFunk' file='xlink' module='xlink'>
<cond>defined(LIBXML_XPTR_ENABLED)</cond>
<info>This is the prototype for a simple link detection callback.</info>
<return type='void'/>
@@ -7599,7 +7619,7 @@ actually an xmlCharEncoding'/>
<arg name='role' type='const xlinkRole' info='the role string'/>
<arg name='title' type='const xlinkTitle' info='the link title'/>
</functype>
- <function name='xmlACatalogAdd' file='catalog'>
+ <function name='xmlACatalogAdd' file='catalog' module='catalog'>
<cond>defined(LIBXML_CATALOG_ENABLED)</cond>
<info>Add an entry in the catalog, it may overwrite existing but different entries.</info>
<return type='int' info='0 if successful, -1 otherwise'/>
@@ -7608,21 +7628,21 @@ actually an xmlCharEncoding'/>
<arg name='orig' type='const xmlChar *' info='the system, public or prefix to match'/>
<arg name='replace' type='const xmlChar *' info='the replacement value for the match'/>
</function>
- <function name='xmlACatalogDump' file='catalog'>
+ <function name='xmlACatalogDump' file='catalog' module='catalog'>
<cond>defined(LIBXML_CATALOG_ENABLED) &amp;&amp; defined(LIBXML_OUTPUT_ENABLED)</cond>
<info>Dump the given catalog to the given file.</info>
<return type='void'/>
<arg name='catal' type='xmlCatalogPtr' info='a Catalog'/>
<arg name='out' type='FILE *' info='the file.'/>
</function>
- <function name='xmlACatalogRemove' file='catalog'>
+ <function name='xmlACatalogRemove' file='catalog' module='catalog'>
<cond>defined(LIBXML_CATALOG_ENABLED)</cond>
<info>Remove an entry from the catalog</info>
<return type='int' info='the number of entries removed if successful, -1 otherwise'/>
<arg name='catal' type='xmlCatalogPtr' info='a Catalog'/>
<arg name='value' type='const xmlChar *' info='the value to remove'/>
</function>
- <function name='xmlACatalogResolve' file='catalog'>
+ <function name='xmlACatalogResolve' file='catalog' module='catalog'>
<cond>defined(LIBXML_CATALOG_ENABLED)</cond>
<info>Do a complete resolution lookup of an External Identifier</info>
<return type='xmlChar *' info='the URI of the resource or NULL if not found, it must be freed by the caller.'/>
@@ -7630,28 +7650,28 @@ actually an xmlCharEncoding'/>
<arg name='pubID' type='const xmlChar *' info='the public ID string'/>
<arg name='sysID' type='const xmlChar *' info='the system ID string'/>
</function>
- <function name='xmlACatalogResolvePublic' file='catalog'>
+ <function name='xmlACatalogResolvePublic' file='catalog' module='catalog'>
<cond>defined(LIBXML_CATALOG_ENABLED)</cond>
<info>Try to lookup the catalog local reference associated to a public ID in that catalog</info>
<return type='xmlChar *' info='the local resource if found or NULL otherwise, the value returned must be freed by the caller.'/>
<arg name='catal' type='xmlCatalogPtr' info='a Catalog'/>
<arg name='pubID' type='const xmlChar *' info='the public ID string'/>
</function>
- <function name='xmlACatalogResolveSystem' file='catalog'>
+ <function name='xmlACatalogResolveSystem' file='catalog' module='catalog'>
<cond>defined(LIBXML_CATALOG_ENABLED)</cond>
<info>Try to lookup the catalog resource for a system ID</info>
<return type='xmlChar *' info='the resource if found or NULL otherwise, the value returned must be freed by the caller.'/>
<arg name='catal' type='xmlCatalogPtr' info='a Catalog'/>
<arg name='sysID' type='const xmlChar *' info='the system ID string'/>
</function>
- <function name='xmlACatalogResolveURI' file='catalog'>
+ <function name='xmlACatalogResolveURI' file='catalog' module='catalog'>
<cond>defined(LIBXML_CATALOG_ENABLED)</cond>
<info>Do a complete resolution lookup of an URI</info>
<return type='xmlChar *' info='the URI of the resource or NULL if not found, it must be freed by the caller.'/>
<arg name='catal' type='xmlCatalogPtr' info='a Catalog'/>
<arg name='URI' type='const xmlChar *' info='the URI'/>
</function>
- <function name='xmlAddAttributeDecl' file='valid'>
+ <function name='xmlAddAttributeDecl' file='valid' module='valid'>
<info>Register a new attribute declaration Note that @tree becomes the ownership of the DTD</info>
<return type='xmlAttributePtr' info='NULL if not new, otherwise the attribute decl'/>
<arg name='ctxt' type='xmlValidCtxtPtr' info='the validation context'/>
@@ -7664,19 +7684,19 @@ actually an xmlCharEncoding'/>
<arg name='defaultValue' type='const xmlChar *' info='the attribute default value'/>
<arg name='tree' type='xmlEnumerationPtr' info='if it&apos;s an enumeration, the associated list'/>
</function>
- <function name='xmlAddChild' file='tree'>
+ <function name='xmlAddChild' file='tree' module='tree'>
<info>Add a new node to @parent, at the end of the child (or property) list merging adjacent TEXT nodes (in which case @cur is freed) If the new node is ATTRIBUTE, it is added into properties instead of children. If there is an attribute with equal name, it is first destroyed.</info>
<return type='xmlNodePtr' info='the child or NULL in case of error.'/>
<arg name='parent' type='xmlNodePtr' info='the parent node'/>
<arg name='cur' type='xmlNodePtr' info='the child node'/>
</function>
- <function name='xmlAddChildList' file='tree'>
+ <function name='xmlAddChildList' file='tree' module='tree'>
<info>Add a list of node at the end of the child list of the parent merging adjacent TEXT nodes (@cur may be freed)</info>
<return type='xmlNodePtr' info='the last child or NULL in case of error.'/>
<arg name='parent' type='xmlNodePtr' info='the parent node'/>
<arg name='cur' type='xmlNodePtr' info='the first node in the list'/>
</function>
- <function name='xmlAddDocEntity' file='entities'>
+ <function name='xmlAddDocEntity' file='entities' module='entities'>
<info>Register a new entity for this document.</info>
<return type='xmlEntityPtr' info='a pointer to the entity or NULL in case of error'/>
<arg name='doc' type='xmlDocPtr' info='the document'/>
@@ -7686,7 +7706,7 @@ actually an xmlCharEncoding'/>
<arg name='SystemID' type='const xmlChar *' info='the entity system ID if available'/>
<arg name='content' type='const xmlChar *' info='the entity content'/>
</function>
- <function name='xmlAddDtdEntity' file='entities'>
+ <function name='xmlAddDtdEntity' file='entities' module='entities'>
<info>Register a new entity for this document DTD external subset.</info>
<return type='xmlEntityPtr' info='a pointer to the entity or NULL in case of error'/>
<arg name='doc' type='xmlDocPtr' info='the document'/>
@@ -7696,7 +7716,7 @@ actually an xmlCharEncoding'/>
<arg name='SystemID' type='const xmlChar *' info='the entity system ID if available'/>
<arg name='content' type='const xmlChar *' info='the entity content'/>
</function>
- <function name='xmlAddElementDecl' file='valid'>
+ <function name='xmlAddElementDecl' file='valid' module='valid'>
<info>Register a new element declaration</info>
<return type='xmlElementPtr' info='NULL if not, otherwise the entity'/>
<arg name='ctxt' type='xmlValidCtxtPtr' info='the validation context'/>
@@ -7705,13 +7725,13 @@ actually an xmlCharEncoding'/>
<arg name='type' type='xmlElementTypeVal' info='the element type'/>
<arg name='content' type='xmlElementContentPtr' info='the element content tree or NULL'/>
</function>
- <function name='xmlAddEncodingAlias' file='encoding'>
+ <function name='xmlAddEncodingAlias' file='encoding' module='encoding'>
<info>Registers an alias @alias for an encoding named @name. Existing alias will be overwritten.</info>
<return type='int' info='0 in case of success, -1 in case of error'/>
<arg name='name' type='const char *' info='the encoding name as parsed, in UTF-8 format (ASCII actually)'/>
<arg name='alias' type='const char *' info='the alias name as parsed, in UTF-8 format (ASCII actually)'/>
</function>
- <function name='xmlAddID' file='valid'>
+ <function name='xmlAddID' file='valid' module='valid'>
<info>Register a new id declaration</info>
<return type='xmlIDPtr' info='NULL if not, otherwise the new xmlIDPtr'/>
<arg name='ctxt' type='xmlValidCtxtPtr' info='the validation context'/>
@@ -7719,13 +7739,13 @@ actually an xmlCharEncoding'/>
<arg name='value' type='const xmlChar *' info='the value name'/>
<arg name='attr' type='xmlAttrPtr' info='the attribute holding the ID'/>
</function>
- <function name='xmlAddNextSibling' file='tree'>
+ <function name='xmlAddNextSibling' file='tree' module='tree'>
<info>Add a new node @elem as the next sibling of @cur If the new node was already inserted in a document it is first unlinked from its existing context. As a result of text merging @elem may be freed. If the new node is ATTRIBUTE, it is added into properties instead of children. If there is an attribute with equal name, it is first destroyed.</info>
<return type='xmlNodePtr' info='the new node or NULL in case of error.'/>
<arg name='cur' type='xmlNodePtr' info='the child node'/>
<arg name='elem' type='xmlNodePtr' info='the new node'/>
</function>
- <function name='xmlAddNotationDecl' file='valid'>
+ <function name='xmlAddNotationDecl' file='valid' module='valid'>
<info>Register a new notation declaration</info>
<return type='xmlNotationPtr' info='NULL if not, otherwise the entity'/>
<arg name='ctxt' type='xmlValidCtxtPtr' info='the validation context'/>
@@ -7734,14 +7754,14 @@ actually an xmlCharEncoding'/>
<arg name='PublicID' type='const xmlChar *' info='the public identifier or NULL'/>
<arg name='SystemID' type='const xmlChar *' info='the system identifier or NULL'/>
</function>
- <function name='xmlAddPrevSibling' file='tree'>
+ <function name='xmlAddPrevSibling' file='tree' module='tree'>
<cond>defined(LIBXML_TREE_ENABLED) || defined(LIBXML_HTML_ENABLED) || defined(LIBXML_SCHEMAS_ENABLED)</cond>
<info>Add a new node @elem as the previous sibling of @cur merging adjacent TEXT nodes (@elem may be freed) If the new node was already inserted in a document it is first unlinked from its existing context. If the new node is ATTRIBUTE, it is added into properties instead of children. If there is an attribute with equal name, it is first destroyed.</info>
<return type='xmlNodePtr' info='the new node or NULL in case of error.'/>
<arg name='cur' type='xmlNodePtr' info='the child node'/>
<arg name='elem' type='xmlNodePtr' info='the new node'/>
</function>
- <function name='xmlAddRef' file='valid'>
+ <function name='xmlAddRef' file='valid' module='valid'>
<info>Register a new ref declaration</info>
<return type='xmlRefPtr' info='NULL if not, otherwise the new xmlRefPtr'/>
<arg name='ctxt' type='xmlValidCtxtPtr' info='the validation context'/>
@@ -7749,24 +7769,24 @@ actually an xmlCharEncoding'/>
<arg name='value' type='const xmlChar *' info='the value name'/>
<arg name='attr' type='xmlAttrPtr' info='the attribute holding the Ref'/>
</function>
- <function name='xmlAddSibling' file='tree'>
+ <function name='xmlAddSibling' file='tree' module='tree'>
<info>Add a new element @elem to the list of siblings of @cur merging adjacent TEXT nodes (@elem may be freed) If the new element was already inserted in a document it is first unlinked from its existing context.</info>
<return type='xmlNodePtr' info='the new element or NULL in case of error.'/>
<arg name='cur' type='xmlNodePtr' info='the child node'/>
<arg name='elem' type='xmlNodePtr' info='the new node'/>
</function>
- <function name='xmlAllocOutputBuffer' file='xmlIO'>
+ <function name='xmlAllocOutputBuffer' file='xmlIO' module='xmlIO'>
<cond>defined(LIBXML_OUTPUT_ENABLED)</cond>
<info>Create a buffered parser output</info>
<return type='xmlOutputBufferPtr' info='the new parser output or NULL'/>
<arg name='encoder' type='xmlCharEncodingHandlerPtr' info='the encoding converter or NULL'/>
</function>
- <function name='xmlAllocParserInputBuffer' file='xmlIO'>
+ <function name='xmlAllocParserInputBuffer' file='xmlIO' module='xmlIO'>
<info>Create a buffered parser input for progressive parsing</info>
<return type='xmlParserInputBufferPtr' info='the new parser input or NULL'/>
<arg name='enc' type='xmlCharEncoding' info='the charset encoding if known'/>
</function>
- <function name='xmlAttrSerializeTxtContent' file='tree'>
+ <function name='xmlAttrSerializeTxtContent' file='tree' module='xmlsave'>
<cond>defined(LIBXML_OUTPUT_ENABLED)</cond>
<info>Serialize text attribute values to an xml simple buffer</info>
<return type='void'/>
@@ -7775,25 +7795,25 @@ actually an xmlCharEncoding'/>
<arg name='attr' type='xmlAttrPtr' info='the attribute node'/>
<arg name='string' type='const xmlChar *' info='the text content'/>
</function>
- <function name='xmlAutomataCompile' file='xmlautomata'>
+ <function name='xmlAutomataCompile' file='xmlautomata' module='xmlregexp'>
<cond>defined(LIBXML_REGEXP_ENABLED) &amp;&amp; defined(LIBXML_AUTOMATA_ENABLED)</cond>
<info>Compile the automata into a Reg Exp ready for being executed. The automata should be free after this point.</info>
<return type='xmlRegexpPtr' info='the compiled regexp or NULL in case of error'/>
<arg name='am' type='xmlAutomataPtr' info='an automata'/>
</function>
- <function name='xmlAutomataGetInitState' file='xmlautomata'>
+ <function name='xmlAutomataGetInitState' file='xmlautomata' module='xmlregexp'>
<cond>defined(LIBXML_REGEXP_ENABLED) &amp;&amp; defined(LIBXML_AUTOMATA_ENABLED)</cond>
<info>Initial state lookup</info>
<return type='xmlAutomataStatePtr' info='the initial state of the automata'/>
<arg name='am' type='xmlAutomataPtr' info='an automata'/>
</function>
- <function name='xmlAutomataIsDeterminist' file='xmlautomata'>
+ <function name='xmlAutomataIsDeterminist' file='xmlautomata' module='xmlregexp'>
<cond>defined(LIBXML_REGEXP_ENABLED) &amp;&amp; defined(LIBXML_AUTOMATA_ENABLED)</cond>
<info>Checks if an automata is determinist.</info>
<return type='int' info='1 if true, 0 if not, and -1 in case of error'/>
<arg name='am' type='xmlAutomataPtr' info='an automata'/>
</function>
- <function name='xmlAutomataNewAllTrans' file='xmlautomata'>
+ <function name='xmlAutomataNewAllTrans' file='xmlautomata' module='xmlregexp'>
<cond>defined(LIBXML_REGEXP_ENABLED) &amp;&amp; defined(LIBXML_AUTOMATA_ENABLED)</cond>
<info>If @to is NULL, this creates first a new target state in the automata and then adds a an ALL transition from the @from state to the target state. That transition is an epsilon transition allowed only when all transitions from the @from node have been activated.</info>
<return type='xmlAutomataStatePtr' info='the target state or NULL in case of error'/>
@@ -7802,7 +7822,7 @@ actually an xmlCharEncoding'/>
<arg name='to' type='xmlAutomataStatePtr' info='the target point of the transition or NULL'/>
<arg name='lax' type='int' info='allow to transition if not all all transitions have been activated'/>
</function>
- <function name='xmlAutomataNewCountTrans' file='xmlautomata'>
+ <function name='xmlAutomataNewCountTrans' file='xmlautomata' module='xmlregexp'>
<cond>defined(LIBXML_REGEXP_ENABLED) &amp;&amp; defined(LIBXML_AUTOMATA_ENABLED)</cond>
<info>If @to is NULL, this creates first a new target state in the automata and then adds a transition from the @from state to the target state activated by a succession of input of value @token and whose number is between @min and @max</info>
<return type='xmlAutomataStatePtr' info='the target state or NULL in case of error'/>
@@ -7814,7 +7834,7 @@ actually an xmlCharEncoding'/>
<arg name='max' type='int' info='the maximum successive occurences of token'/>
<arg name='data' type='void *' info='data associated to the transition'/>
</function>
- <function name='xmlAutomataNewCountTrans2' file='xmlautomata'>
+ <function name='xmlAutomataNewCountTrans2' file='xmlautomata' module='xmlregexp'>
<cond>defined(LIBXML_REGEXP_ENABLED) &amp;&amp; defined(LIBXML_AUTOMATA_ENABLED)</cond>
<info>If @to is NULL, this creates first a new target state in the automata and then adds a transition from the @from state to the target state activated by a succession of input of value @token and @token2 and whose number is between @min and @max</info>
<return type='xmlAutomataStatePtr' info='the target state or NULL in case of error'/>
@@ -7827,7 +7847,7 @@ actually an xmlCharEncoding'/>
<arg name='max' type='int' info='the maximum successive occurences of token'/>
<arg name='data' type='void *' info='data associated to the transition'/>
</function>
- <function name='xmlAutomataNewCountedTrans' file='xmlautomata'>
+ <function name='xmlAutomataNewCountedTrans' file='xmlautomata' module='xmlregexp'>
<cond>defined(LIBXML_REGEXP_ENABLED) &amp;&amp; defined(LIBXML_AUTOMATA_ENABLED)</cond>
<info>If @to is NULL, this creates first a new target state in the automata and then adds an epsilon transition from the @from state to the target state which will increment the counter provided</info>
<return type='xmlAutomataStatePtr' info='the target state or NULL in case of error'/>
@@ -7836,7 +7856,7 @@ actually an xmlCharEncoding'/>
<arg name='to' type='xmlAutomataStatePtr' info='the target point of the transition or NULL'/>
<arg name='counter' type='int' info='the counter associated to that transition'/>
</function>
- <function name='xmlAutomataNewCounter' file='xmlautomata'>
+ <function name='xmlAutomataNewCounter' file='xmlautomata' module='xmlregexp'>
<cond>defined(LIBXML_REGEXP_ENABLED) &amp;&amp; defined(LIBXML_AUTOMATA_ENABLED)</cond>
<info>Create a new counter</info>
<return type='int' info='the counter number or -1 in case of error'/>
@@ -7844,7 +7864,7 @@ actually an xmlCharEncoding'/>
<arg name='min' type='int' info='the minimal value on the counter'/>
<arg name='max' type='int' info='the maximal value on the counter'/>
</function>
- <function name='xmlAutomataNewCounterTrans' file='xmlautomata'>
+ <function name='xmlAutomataNewCounterTrans' file='xmlautomata' module='xmlregexp'>
<cond>defined(LIBXML_REGEXP_ENABLED) &amp;&amp; defined(LIBXML_AUTOMATA_ENABLED)</cond>
<info>If @to is NULL, this creates first a new target state in the automata and then adds an epsilon transition from the @from state to the target state which will be allowed only if the counter is within the right range.</info>
<return type='xmlAutomataStatePtr' info='the target state or NULL in case of error'/>
@@ -7853,7 +7873,7 @@ actually an xmlCharEncoding'/>
<arg name='to' type='xmlAutomataStatePtr' info='the target point of the transition or NULL'/>
<arg name='counter' type='int' info='the counter associated to that transition'/>
</function>
- <function name='xmlAutomataNewEpsilon' file='xmlautomata'>
+ <function name='xmlAutomataNewEpsilon' file='xmlautomata' module='xmlregexp'>
<cond>defined(LIBXML_REGEXP_ENABLED) &amp;&amp; defined(LIBXML_AUTOMATA_ENABLED)</cond>
<info>If @to is NULL, this creates first a new target state in the automata and then adds an epsilon transition from the @from state to the target state</info>
<return type='xmlAutomataStatePtr' info='the target state or NULL in case of error'/>
@@ -7861,7 +7881,7 @@ actually an xmlCharEncoding'/>
<arg name='from' type='xmlAutomataStatePtr' info='the starting point of the transition'/>
<arg name='to' type='xmlAutomataStatePtr' info='the target point of the transition or NULL'/>
</function>
- <function name='xmlAutomataNewOnceTrans' file='xmlautomata'>
+ <function name='xmlAutomataNewOnceTrans' file='xmlautomata' module='xmlregexp'>
<cond>defined(LIBXML_REGEXP_ENABLED) &amp;&amp; defined(LIBXML_AUTOMATA_ENABLED)</cond>
<info>If @to is NULL, this creates first a new target state in the automata and then adds a transition from the @from state to the target state activated by a succession of input of value @token and whose number is between @min and @max, moreover that transition can only be crossed once.</info>
<return type='xmlAutomataStatePtr' info='the target state or NULL in case of error'/>
@@ -7873,7 +7893,7 @@ actually an xmlCharEncoding'/>
<arg name='max' type='int' info='the maximum successive occurences of token'/>
<arg name='data' type='void *' info='data associated to the transition'/>
</function>
- <function name='xmlAutomataNewOnceTrans2' file='xmlautomata'>
+ <function name='xmlAutomataNewOnceTrans2' file='xmlautomata' module='xmlregexp'>
<cond>defined(LIBXML_REGEXP_ENABLED) &amp;&amp; defined(LIBXML_AUTOMATA_ENABLED)</cond>
<info>If @to is NULL, this creates first a new target state in the automata and then adds a transition from the @from state to the target state activated by a succession of input of value @token and @token2 and whose number is between @min and @max, moreover that transition can only be crossed once.</info>
<return type='xmlAutomataStatePtr' info='the target state or NULL in case of error'/>
@@ -7886,13 +7906,13 @@ actually an xmlCharEncoding'/>
<arg name='max' type='int' info='the maximum successive occurences of token'/>
<arg name='data' type='void *' info='data associated to the transition'/>
</function>
- <function name='xmlAutomataNewState' file='xmlautomata'>
+ <function name='xmlAutomataNewState' file='xmlautomata' module='xmlregexp'>
<cond>defined(LIBXML_REGEXP_ENABLED) &amp;&amp; defined(LIBXML_AUTOMATA_ENABLED)</cond>
<info>Create a new disconnected state in the automata</info>
<return type='xmlAutomataStatePtr' info='the new state or NULL in case of error'/>
<arg name='am' type='xmlAutomataPtr' info='an automata'/>
</function>
- <function name='xmlAutomataNewTransition' file='xmlautomata'>
+ <function name='xmlAutomataNewTransition' file='xmlautomata' module='xmlregexp'>
<cond>defined(LIBXML_REGEXP_ENABLED) &amp;&amp; defined(LIBXML_AUTOMATA_ENABLED)</cond>
<info>If @to is NULL, this creates first a new target state in the automata and then adds a transition from the @from state to the target state activated by the value of @token</info>
<return type='xmlAutomataStatePtr' info='the target state or NULL in case of error'/>
@@ -7902,7 +7922,7 @@ actually an xmlCharEncoding'/>
<arg name='token' type='const xmlChar *' info='the input string associated to that transition'/>
<arg name='data' type='void *' info='data passed to the callback function if the transition is activated'/>
</function>
- <function name='xmlAutomataNewTransition2' file='xmlautomata'>
+ <function name='xmlAutomataNewTransition2' file='xmlautomata' module='xmlregexp'>
<cond>defined(LIBXML_REGEXP_ENABLED) &amp;&amp; defined(LIBXML_AUTOMATA_ENABLED)</cond>
<info>If @to is NULL, this creates first a new target state in the automata and then adds a transition from the @from state to the target state activated by the value of @token</info>
<return type='xmlAutomataStatePtr' info='the target state or NULL in case of error'/>
@@ -7913,129 +7933,129 @@ actually an xmlCharEncoding'/>
<arg name='token2' type='const xmlChar *' info='the second input string associated to that transition'/>
<arg name='data' type='void *' info='data passed to the callback function if the transition is activated'/>
</function>
- <function name='xmlAutomataSetFinalState' file='xmlautomata'>
+ <function name='xmlAutomataSetFinalState' file='xmlautomata' module='xmlregexp'>
<cond>defined(LIBXML_REGEXP_ENABLED) &amp;&amp; defined(LIBXML_AUTOMATA_ENABLED)</cond>
<info>Makes that state a final state</info>
<return type='int' info='0 or -1 in case of error'/>
<arg name='am' type='xmlAutomataPtr' info='an automata'/>
<arg name='state' type='xmlAutomataStatePtr' info='a state in this automata'/>
</function>
- <function name='xmlBoolToText' file='debugXML'>
+ <function name='xmlBoolToText' file='debugXML' module='debugXML'>
<cond>defined(LIBXML_DEBUG_ENABLED)</cond>
<info>Convenient way to turn bool into text</info>
<return type='const char *' info='a pointer to either &quot;True&quot; or &quot;False&quot;'/>
<arg name='boolval' type='int' info='a bool to turn into text'/>
</function>
- <function name='xmlBufferAdd' file='tree'>
+ <function name='xmlBufferAdd' file='tree' module='tree'>
<info>Add a string range to an XML buffer. if len == -1, the length of str is recomputed.</info>
<return type='int' info='0 successful, a positive error code number otherwise and -1 in case of internal or API error.'/>
<arg name='buf' type='xmlBufferPtr' info='the buffer to dump'/>
<arg name='str' type='const xmlChar *' info='the #xmlChar string'/>
<arg name='len' type='int' info='the number of #xmlChar to add'/>
</function>
- <function name='xmlBufferAddHead' file='tree'>
+ <function name='xmlBufferAddHead' file='tree' module='tree'>
<info>Add a string range to the beginning of an XML buffer. if len == -1, the length of @str is recomputed.</info>
<return type='int' info='0 successful, a positive error code number otherwise and -1 in case of internal or API error.'/>
<arg name='buf' type='xmlBufferPtr' info='the buffer'/>
<arg name='str' type='const xmlChar *' info='the #xmlChar string'/>
<arg name='len' type='int' info='the number of #xmlChar to add'/>
</function>
- <function name='xmlBufferCCat' file='tree'>
+ <function name='xmlBufferCCat' file='tree' module='tree'>
<info>Append a zero terminated C string to an XML buffer.</info>
<return type='int' info='0 successful, a positive error code number otherwise and -1 in case of internal or API error.'/>
<arg name='buf' type='xmlBufferPtr' info='the buffer to dump'/>
<arg name='str' type='const char *' info='the C char string'/>
</function>
- <function name='xmlBufferCat' file='tree'>
+ <function name='xmlBufferCat' file='tree' module='tree'>
<info>Append a zero terminated string to an XML buffer.</info>
<return type='int' info='0 successful, a positive error code number otherwise and -1 in case of internal or API error.'/>
<arg name='buf' type='xmlBufferPtr' info='the buffer to add to'/>
<arg name='str' type='const xmlChar *' info='the #xmlChar string'/>
</function>
- <function name='xmlBufferContent' file='tree'>
+ <function name='xmlBufferContent' file='tree' module='tree'>
<info>Function to extract the content of a buffer</info>
<return type='const xmlChar *' info='the internal content'/>
<arg name='buf' type='const xmlBufferPtr' info='the buffer'/>
</function>
- <function name='xmlBufferCreate' file='tree'>
+ <function name='xmlBufferCreate' file='tree' module='tree'>
<info>routine to create an XML buffer.</info>
<return type='xmlBufferPtr' info='the new structure.'/>
</function>
- <function name='xmlBufferCreateSize' file='tree'>
+ <function name='xmlBufferCreateSize' file='tree' module='tree'>
<info>routine to create an XML buffer.</info>
<return type='xmlBufferPtr' info='the new structure.'/>
<arg name='size' type='size_t' info='initial size of buffer'/>
</function>
- <function name='xmlBufferCreateStatic' file='tree'>
+ <function name='xmlBufferCreateStatic' file='tree' module='tree'>
<info>routine to create an XML buffer from an immutable memory area. The area won&apos;t be modified nor copied, and is expected to be present until the end of the buffer lifetime.</info>
<return type='xmlBufferPtr' info='the new structure.'/>
<arg name='mem' type='void *' info='the memory area'/>
<arg name='size' type='size_t' info='the size in byte'/>
</function>
- <function name='xmlBufferDump' file='tree'>
+ <function name='xmlBufferDump' file='tree' module='tree'>
<info>Dumps an XML buffer to a FILE *.</info>
<return type='int' info='the number of #xmlChar written'/>
<arg name='file' type='FILE *' info='the file output'/>
<arg name='buf' type='xmlBufferPtr' info='the buffer to dump'/>
</function>
- <function name='xmlBufferEmpty' file='tree'>
+ <function name='xmlBufferEmpty' file='tree' module='tree'>
<info>empty a buffer.</info>
<return type='void'/>
<arg name='buf' type='xmlBufferPtr' info='the buffer'/>
</function>
- <function name='xmlBufferFree' file='tree'>
+ <function name='xmlBufferFree' file='tree' module='tree'>
<info>Frees an XML buffer. It frees both the content and the structure which encapsulate it.</info>
<return type='void'/>
<arg name='buf' type='xmlBufferPtr' info='the buffer to free'/>
</function>
- <function name='xmlBufferGrow' file='tree'>
+ <function name='xmlBufferGrow' file='tree' module='tree'>
<info>Grow the available space of an XML buffer.</info>
<return type='int' info='the new available space or -1 in case of error'/>
<arg name='buf' type='xmlBufferPtr' info='the buffer'/>
<arg name='len' type='unsigned int' info='the minimum free size to allocate'/>
</function>
- <function name='xmlBufferLength' file='tree'>
+ <function name='xmlBufferLength' file='tree' module='tree'>
<info>Function to get the length of a buffer</info>
<return type='int' info='the length of data in the internal content'/>
<arg name='buf' type='const xmlBufferPtr' info='the buffer'/>
</function>
- <function name='xmlBufferResize' file='tree'>
+ <function name='xmlBufferResize' file='tree' module='tree'>
<info>Resize a buffer to accommodate minimum size of @size.</info>
<return type='int' info='0 in case of problems, 1 otherwise'/>
<arg name='buf' type='xmlBufferPtr' info='the buffer to resize'/>
<arg name='size' type='unsigned int' info='the desired size'/>
</function>
- <function name='xmlBufferSetAllocationScheme' file='tree'>
+ <function name='xmlBufferSetAllocationScheme' file='tree' module='tree'>
<info>Sets the allocation scheme for this buffer</info>
<return type='void'/>
<arg name='buf' type='xmlBufferPtr' info='the buffer to tune'/>
<arg name='scheme' type='xmlBufferAllocationScheme' info='allocation scheme to use'/>
</function>
- <function name='xmlBufferShrink' file='tree'>
+ <function name='xmlBufferShrink' file='tree' module='tree'>
<info>Remove the beginning of an XML buffer.</info>
<return type='int' info='the number of #xmlChar removed, or -1 in case of failure.'/>
<arg name='buf' type='xmlBufferPtr' info='the buffer to dump'/>
<arg name='len' type='unsigned int' info='the number of xmlChar to remove'/>
</function>
- <function name='xmlBufferWriteCHAR' file='tree'>
+ <function name='xmlBufferWriteCHAR' file='tree' module='tree'>
<info>routine which manages and grows an output buffer. This one adds xmlChars at the end of the buffer.</info>
<return type='void'/>
<arg name='buf' type='xmlBufferPtr' info='the XML buffer'/>
<arg name='string' type='const xmlChar *' info='the string to add'/>
</function>
- <function name='xmlBufferWriteChar' file='tree'>
+ <function name='xmlBufferWriteChar' file='tree' module='tree'>
<info>routine which manage and grows an output buffer. This one add C chars at the end of the array.</info>
<return type='void'/>
<arg name='buf' type='xmlBufferPtr' info='the XML buffer output'/>
<arg name='string' type='const char *' info='the string to add'/>
</function>
- <function name='xmlBufferWriteQuotedString' file='tree'>
+ <function name='xmlBufferWriteQuotedString' file='tree' module='tree'>
<info>routine which manage and grows an output buffer. This one writes a quoted or double quoted #xmlChar string, checking first if it holds quote or double-quotes internally</info>
<return type='void'/>
<arg name='buf' type='xmlBufferPtr' info='the XML buffer output'/>
<arg name='string' type='const xmlChar *' info='the string to add'/>
</function>
- <function name='xmlBuildQName' file='tree'>
+ <function name='xmlBuildQName' file='tree' module='tree'>
<info>Builds the QName @prefix:@ncname in @memory if there is enough space and prefix is not NULL nor empty, otherwise allocate a new string. If prefix is NULL or empty it returns ncname.</info>
<return type='xmlChar *' info='the new string which must be freed by the caller if different from @memory and @ncname or NULL in case of error'/>
<arg name='ncname' type='const xmlChar *' info='the Name'/>
@@ -8043,24 +8063,24 @@ 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'>
+ <function name='xmlBuildRelativeURI' file='uri' module='uri'>
<info>Expresses the URI of the reference in terms relative to the base. Some examples of this operation include: base = &quot;http://site1.com/docs/book1.html&quot; URI input URI returned docs/pic1.gif pic1.gif docs/img/pic1.gif img/pic1.gif img/pic1.gif ../img/pic1.gif http://site1.com/docs/pic1.gif pic1.gif http://site2.com/docs/pic1.gif http://site2.com/docs/pic1.gif base = &quot;docs/book1.html&quot; URI input URI returned docs/pic1.gif pic1.gif docs/img/pic1.gif img/pic1.gif img/pic1.gif ../img/pic1.gif http://site1.com/docs/pic1.gif http://site1.com/docs/pic1.gif Note: if the URI reference is really 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'>
+ <function name='xmlBuildURI' file='uri' module='uri'>
<info>Computes he final URI of the reference done by checking that the given URI is valid, and building the final URI using the base URI. This is processed according to section 5.2 of the RFC 2396 5.2. Resolving Relative References to Absolute Form</info>
<return type='xmlChar *' info='a new URI string (to be freed by the caller) or NULL in case of error.'/>
<arg name='URI' type='const xmlChar *' info='the URI instance found in the document'/>
<arg name='base' type='const xmlChar *' info='the base value'/>
</function>
- <function name='xmlByteConsumed' file='parser'>
+ <function name='xmlByteConsumed' file='parser' module='encoding'>
<info>This function provides the current index of the parser relative to the start of the current entity. This function is computed in bytes from the beginning starting at zero and finishing at the size in byte of the file if parsing a file. The function is of constant cost if the input is UTF-8 but can be costly if run on non-UTF-8 input.</info>
<return type='long' info='the index in bytes from the beginning of the entity or -1 in case the index could not be computed.'/>
<arg name='ctxt' type='xmlParserCtxtPtr' info='an XML parser context'/>
</function>
- <function name='xmlC14NDocDumpMemory' file='c14n'>
+ <function name='xmlC14NDocDumpMemory' file='c14n' module='c14n'>
<cond>defined(LIBXML_C14N_ENABLED) &amp;&amp; defined(LIBXML_OUTPUT_ENABLED)</cond>
<info>Dumps the canonized image of given XML document into memory. For details see &quot;Canonical XML&quot; (http://www.w3.org/TR/xml-c14n) or &quot;Exclusive XML Canonicalization&quot; (http://www.w3.org/TR/xml-exc-c14n)</info>
<return type='int' info='the number of bytes written on success or a negative value on fail'/>
@@ -8071,7 +8091,7 @@ actually an xmlCharEncoding'/>
<arg name='with_comments' type='int' info='include comments in the result (!=0) or not (==0)'/>
<arg name='doc_txt_ptr' type='xmlChar **' info='the memory pointer for allocated canonical XML text; the caller of this functions is responsible for calling xmlFree() to free allocated memory'/>
</function>
- <function name='xmlC14NDocSave' file='c14n'>
+ <function name='xmlC14NDocSave' file='c14n' module='c14n'>
<cond>defined(LIBXML_C14N_ENABLED) &amp;&amp; defined(LIBXML_OUTPUT_ENABLED)</cond>
<info>Dumps the canonized image of given XML document into the file. For details see &quot;Canonical XML&quot; (http://www.w3.org/TR/xml-c14n) or &quot;Exclusive XML Canonicalization&quot; (http://www.w3.org/TR/xml-exc-c14n)</info>
<return type='int' info='the number of bytes written success or a negative value on fail'/>
@@ -8083,7 +8103,7 @@ actually an xmlCharEncoding'/>
<arg name='filename' type='const char *' info='the filename to store canonical XML image'/>
<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'>
+ <function name='xmlC14NDocSaveTo' file='c14n' module='c14n'>
<cond>defined(LIBXML_C14N_ENABLED) &amp;&amp; defined(LIBXML_OUTPUT_ENABLED)</cond>
<info>Dumps the canonized image of given XML document into the provided buffer. For details see &quot;Canonical XML&quot; (http://www.w3.org/TR/xml-c14n) or &quot;Exclusive XML Canonicalization&quot; (http://www.w3.org/TR/xml-exc-c14n)</info>
<return type='int' info='non-negative value on success or a negative value on fail'/>
@@ -8094,7 +8114,7 @@ actually an xmlCharEncoding'/>
<arg name='with_comments' type='int' info='include comments in the result (!=0) or not (==0)'/>
<arg name='buf' type='xmlOutputBufferPtr' info='the output buffer to store canonical XML; this buffer MUST have encoder==NULL because C14N requires UTF-8 output'/>
</function>
- <function name='xmlC14NExecute' file='c14n'>
+ <function name='xmlC14NExecute' file='c14n' module='c14n'>
<cond>defined(LIBXML_C14N_ENABLED) &amp;&amp; defined(LIBXML_OUTPUT_ENABLED)</cond>
<info>Dumps the canonized image of given XML document into the provided buffer. For details see &quot;Canonical XML&quot; (http://www.w3.org/TR/xml-c14n) or &quot;Exclusive XML Canonicalization&quot; (http://www.w3.org/TR/xml-exc-c14n)</info>
<return type='int' info='non-negative value on success or a negative value on fail'/>
@@ -8106,7 +8126,7 @@ actually an xmlCharEncoding'/>
<arg name='with_comments' type='int' info='include comments in the result (!=0) or not (==0)'/>
<arg name='buf' type='xmlOutputBufferPtr' info='the output buffer to store canonical XML; this buffer MUST have encoder==NULL because C14N requires UTF-8 output'/>
</function>
- <functype name='xmlC14NIsVisibleCallback' file='c14n'>
+ <functype name='xmlC14NIsVisibleCallback' file='c14n' module='c14n'>
<cond>defined(LIBXML_C14N_ENABLED) &amp;&amp; defined(LIBXML_OUTPUT_ENABLED)</cond>
<info></info>
<return type='int' info=''/>
@@ -8114,12 +8134,12 @@ actually an xmlCharEncoding'/>
<arg name='node' type='xmlNodePtr' info=''/>
<arg name='parent' type='xmlNodePtr' info=''/>
</functype>
- <function name='xmlCanonicPath' file='uri'>
+ <function name='xmlCanonicPath' file='uri' module='uri'>
<info>Constructs a canonic path from the specified path.</info>
<return type='xmlChar *' info='a new canonic path, or a duplicate of the path parameter if the construction fails. The caller is responsible for freeing the memory occupied by the returned string. If there is insufficient memory available, or the argument is NULL, the function returns NULL.'/>
<arg name='path' type='const xmlChar *' info='the resource locator in a filesystem notation'/>
</function>
- <function name='xmlCatalogAdd' file='catalog'>
+ <function name='xmlCatalogAdd' file='catalog' module='catalog'>
<cond>defined(LIBXML_CATALOG_ENABLED)</cond>
<info>Add an entry in the catalog, it may overwrite existing but different entries. If called before any other catalog routine, allows to override the default shared catalog put in place by xmlInitializeCatalog();</info>
<return type='int' info='0 if successful, -1 otherwise'/>
@@ -8127,59 +8147,59 @@ actually an xmlCharEncoding'/>
<arg name='orig' type='const xmlChar *' info='the system, public or prefix to match'/>
<arg name='replace' type='const xmlChar *' info='the replacement value for the match'/>
</function>
- <function name='xmlCatalogAddLocal' file='catalog'>
+ <function name='xmlCatalogAddLocal' file='catalog' module='catalog'>
<cond>defined(LIBXML_CATALOG_ENABLED)</cond>
<info>Add the new entry to the catalog list</info>
<return type='void *' info='the updated list'/>
<arg name='catalogs' type='void *' info='a document&apos;s list of catalogs'/>
<arg name='URL' type='const xmlChar *' info='the URL to a new local catalog'/>
</function>
- <function name='xmlCatalogCleanup' file='catalog'>
+ <function name='xmlCatalogCleanup' file='catalog' module='catalog'>
<cond>defined(LIBXML_CATALOG_ENABLED)</cond>
<info>Free up all the memory associated with catalogs</info>
<return type='void'/>
</function>
- <function name='xmlCatalogConvert' file='catalog'>
+ <function name='xmlCatalogConvert' file='catalog' module='catalog'>
<cond>defined(LIBXML_CATALOG_ENABLED)</cond>
<info>Convert all the SGML catalog entries as XML ones</info>
<return type='int' info='the number of entries converted if successful, -1 otherwise'/>
</function>
- <function name='xmlCatalogDump' file='catalog'>
+ <function name='xmlCatalogDump' file='catalog' module='catalog'>
<cond>defined(LIBXML_CATALOG_ENABLED) &amp;&amp; defined(LIBXML_OUTPUT_ENABLED)</cond>
<info>Dump all the global catalog content to the given file.</info>
<return type='void'/>
<arg name='out' type='FILE *' info='the file.'/>
</function>
- <function name='xmlCatalogFreeLocal' file='catalog'>
+ <function name='xmlCatalogFreeLocal' file='catalog' module='catalog'>
<cond>defined(LIBXML_CATALOG_ENABLED)</cond>
<info>Free up the memory associated to the catalog list</info>
<return type='void'/>
<arg name='catalogs' type='void *' info='a document&apos;s list of catalogs'/>
</function>
- <function name='xmlCatalogGetDefaults' file='catalog'>
+ <function name='xmlCatalogGetDefaults' file='catalog' module='catalog'>
<cond>defined(LIBXML_CATALOG_ENABLED)</cond>
<info>Used to get the user preference w.r.t. to what catalogs should be accepted</info>
<return type='xmlCatalogAllow' info='the current xmlCatalogAllow value'/>
</function>
- <function name='xmlCatalogGetPublic' file='catalog'>
+ <function name='xmlCatalogGetPublic' file='catalog' module='catalog'>
<cond>defined(LIBXML_CATALOG_ENABLED)</cond>
<info>Try to lookup the catalog reference associated to a public ID DEPRECATED, use xmlCatalogResolvePublic()</info>
<return type='const xmlChar *' info='the resource if found or NULL otherwise.'/>
<arg name='pubID' type='const xmlChar *' info='the public ID string'/>
</function>
- <function name='xmlCatalogGetSystem' file='catalog'>
+ <function name='xmlCatalogGetSystem' file='catalog' module='catalog'>
<cond>defined(LIBXML_CATALOG_ENABLED)</cond>
<info>Try to lookup the catalog reference associated to a system ID DEPRECATED, use xmlCatalogResolveSystem()</info>
<return type='const xmlChar *' info='the resource if found or NULL otherwise.'/>
<arg name='sysID' type='const xmlChar *' info='the system ID string'/>
</function>
- <function name='xmlCatalogIsEmpty' file='catalog'>
+ <function name='xmlCatalogIsEmpty' file='catalog' module='catalog'>
<cond>defined(LIBXML_CATALOG_ENABLED)</cond>
<info>Check is a catalog is empty</info>
<return type='int' info='1 if the catalog is empty, 0 if not, amd -1 in case of error.'/>
<arg name='catal' type='xmlCatalogPtr' info='should this create an SGML catalog'/>
</function>
- <function name='xmlCatalogLocalResolve' file='catalog'>
+ <function name='xmlCatalogLocalResolve' file='catalog' module='catalog'>
<cond>defined(LIBXML_CATALOG_ENABLED)</cond>
<info>Do a complete resolution lookup of an External Identifier using a document&apos;s private catalog list</info>
<return type='xmlChar *' info='the URI of the resource or NULL if not found, it must be freed by the caller.'/>
@@ -8187,89 +8207,89 @@ actually an xmlCharEncoding'/>
<arg name='pubID' type='const xmlChar *' info='the public ID string'/>
<arg name='sysID' type='const xmlChar *' info='the system ID string'/>
</function>
- <function name='xmlCatalogLocalResolveURI' file='catalog'>
+ <function name='xmlCatalogLocalResolveURI' file='catalog' module='catalog'>
<cond>defined(LIBXML_CATALOG_ENABLED)</cond>
<info>Do a complete resolution lookup of an URI using a document&apos;s private catalog list</info>
<return type='xmlChar *' info='the URI of the resource or NULL if not found, it must be freed by the caller.'/>
<arg name='catalogs' type='void *' info='a document&apos;s list of catalogs'/>
<arg name='URI' type='const xmlChar *' info='the URI'/>
</function>
- <function name='xmlCatalogRemove' file='catalog'>
+ <function name='xmlCatalogRemove' file='catalog' module='catalog'>
<cond>defined(LIBXML_CATALOG_ENABLED)</cond>
<info>Remove an entry from the catalog</info>
<return type='int' info='the number of entries removed if successful, -1 otherwise'/>
<arg name='value' type='const xmlChar *' info='the value to remove'/>
</function>
- <function name='xmlCatalogResolve' file='catalog'>
+ <function name='xmlCatalogResolve' file='catalog' module='catalog'>
<cond>defined(LIBXML_CATALOG_ENABLED)</cond>
<info>Do a complete resolution lookup of an External Identifier</info>
<return type='xmlChar *' info='the URI of the resource or NULL if not found, it must be freed by the caller.'/>
<arg name='pubID' type='const xmlChar *' info='the public ID string'/>
<arg name='sysID' type='const xmlChar *' info='the system ID string'/>
</function>
- <function name='xmlCatalogResolvePublic' file='catalog'>
+ <function name='xmlCatalogResolvePublic' file='catalog' module='catalog'>
<cond>defined(LIBXML_CATALOG_ENABLED)</cond>
<info>Try to lookup the catalog reference associated to a public ID</info>
<return type='xmlChar *' info='the resource if found or NULL otherwise, the value returned must be freed by the caller.'/>
<arg name='pubID' type='const xmlChar *' info='the public ID string'/>
</function>
- <function name='xmlCatalogResolveSystem' file='catalog'>
+ <function name='xmlCatalogResolveSystem' file='catalog' module='catalog'>
<cond>defined(LIBXML_CATALOG_ENABLED)</cond>
<info>Try to lookup the catalog resource for a system ID</info>
<return type='xmlChar *' info='the resource if found or NULL otherwise, the value returned must be freed by the caller.'/>
<arg name='sysID' type='const xmlChar *' info='the system ID string'/>
</function>
- <function name='xmlCatalogResolveURI' file='catalog'>
+ <function name='xmlCatalogResolveURI' file='catalog' module='catalog'>
<cond>defined(LIBXML_CATALOG_ENABLED)</cond>
<info>Do a complete resolution lookup of an URI</info>
<return type='xmlChar *' info='the URI of the resource or NULL if not found, it must be freed by the caller.'/>
<arg name='URI' type='const xmlChar *' info='the URI'/>
</function>
- <function name='xmlCatalogSetDebug' file='catalog'>
+ <function name='xmlCatalogSetDebug' file='catalog' module='catalog'>
<cond>defined(LIBXML_CATALOG_ENABLED)</cond>
<info>Used to set the debug level for catalog operation, 0 disable debugging, 1 enable it</info>
<return type='int' info='the previous value of the catalog debugging level'/>
<arg name='level' type='int' info='the debug level of catalogs required'/>
</function>
- <function name='xmlCatalogSetDefaultPrefer' file='catalog'>
+ <function name='xmlCatalogSetDefaultPrefer' file='catalog' module='catalog'>
<cond>defined(LIBXML_CATALOG_ENABLED)</cond>
<info>Allows to set the preference between public and system for deletion in XML Catalog resolution. C.f. section 4.1.1 of the spec Values accepted are XML_CATA_PREFER_PUBLIC or XML_CATA_PREFER_SYSTEM</info>
<return type='xmlCatalogPrefer' info='the previous value of the default preference for delegation'/>
<arg name='prefer' type='xmlCatalogPrefer' info='the default preference for delegation'/>
</function>
- <function name='xmlCatalogSetDefaults' file='catalog'>
+ <function name='xmlCatalogSetDefaults' file='catalog' module='catalog'>
<cond>defined(LIBXML_CATALOG_ENABLED)</cond>
<info>Used to set the user preference w.r.t. to what catalogs should be accepted</info>
<return type='void'/>
<arg name='allow' type='xmlCatalogAllow' info='what catalogs should be accepted'/>
</function>
- <function name='xmlCharEncCloseFunc' file='encoding'>
+ <function name='xmlCharEncCloseFunc' file='encoding' module='encoding'>
<info>Generic front-end for encoding handler close function</info>
<return type='int' info='0 if success, or -1 in case of error'/>
<arg name='handler' type='xmlCharEncodingHandler *' info='char enconding transformation data structure'/>
</function>
- <function name='xmlCharEncFirstLine' file='encoding'>
+ <function name='xmlCharEncFirstLine' file='encoding' module='encoding'>
<info>Front-end for the encoding handler input function, but handle only the very first line, i.e. limit itself to 45 chars.</info>
<return type='int' info='the number of byte written if success, or -1 general error -2 if the transcoding fails (for *in is not valid utf8 string or the result of transformation can&apos;t fit into the encoding we want), or'/>
<arg name='handler' type='xmlCharEncodingHandler *' info='char enconding transformation data structure'/>
<arg name='out' type='xmlBufferPtr' info='an xmlBuffer for the output.'/>
<arg name='in' type='xmlBufferPtr' info='an xmlBuffer for the input'/>
</function>
- <function name='xmlCharEncInFunc' file='encoding'>
+ <function name='xmlCharEncInFunc' file='encoding' module='encoding'>
<info>Generic front-end for the encoding handler input function</info>
<return type='int' info='the number of byte written if success, or -1 general error -2 if the transcoding fails (for *in is not valid utf8 string or the result of transformation can&apos;t fit into the encoding we want), or'/>
<arg name='handler' type='xmlCharEncodingHandler *' info='char encoding transformation data structure'/>
<arg name='out' type='xmlBufferPtr' info='an xmlBuffer for the output.'/>
<arg name='in' type='xmlBufferPtr' info='an xmlBuffer for the input'/>
</function>
- <function name='xmlCharEncOutFunc' file='encoding'>
+ <function name='xmlCharEncOutFunc' file='encoding' module='encoding'>
<info>Generic front-end for the encoding handler output function a first call with @in == NULL has to be made firs to initiate the output in case of non-stateless encoding needing to initiate their state or the output (like the BOM in UTF16). In case of UTF8 sequence conversion errors for the given encoder, the content will be automatically remapped to a CharRef sequence.</info>
<return type='int' info='the number of byte written if success, or -1 general error -2 if the transcoding fails (for *in is not valid utf8 string or the result of transformation can&apos;t fit into the encoding we want), or'/>
<arg name='handler' type='xmlCharEncodingHandler *' info='char enconding transformation data structure'/>
<arg name='out' type='xmlBufferPtr' info='an xmlBuffer for the output.'/>
<arg name='in' type='xmlBufferPtr' info='an xmlBuffer for the input'/>
</function>
- <functype name='xmlCharEncodingInputFunc' file='encoding'>
+ <functype name='xmlCharEncodingInputFunc' file='encoding' module='encoding'>
<info>Take a block of chars in the original encoding and try to convert it to an UTF-8 block of chars out.</info>
<return type='int' info='the number of bytes written, -1 if lack of space, or -2 if the transcoding failed. The value of @inlen after return is the number of octets consumed if the return value is positive, else unpredictiable. The value of @outlen after return is the number of octets consumed.'/>
<arg name='out' type='unsigned char *' info='a pointer to an array of bytes to store the UTF-8 result'/>
@@ -8277,7 +8297,7 @@ actually an xmlCharEncoding'/>
<arg name='in' type='const unsigned char *' info='a pointer to an array of chars in the original encoding'/>
<arg name='inlen' type='int *' info='the length of @in'/>
</functype>
- <functype name='xmlCharEncodingOutputFunc' file='encoding'>
+ <functype name='xmlCharEncodingOutputFunc' file='encoding' module='encoding'>
<info>Take a block of UTF-8 chars in and try to convert it to another encoding. Note: a first call designed to produce heading info is called with in = NULL. If stateful this should also initialize the encoder state.</info>
<return type='int' info='the number of bytes written, -1 if lack of space, or -2 if the transcoding failed. The value of @inlen after return is the number of octets consumed if the return value is positive, else unpredictiable. The value of @outlen after return is the number of octets produced.'/>
<arg name='out' type='unsigned char *' info='a pointer to an array of bytes to store the result'/>
@@ -8285,236 +8305,236 @@ actually an xmlCharEncoding'/>
<arg name='in' type='const unsigned char *' info='a pointer to an array of UTF-8 chars'/>
<arg name='inlen' type='int *' info='the length of @in'/>
</functype>
- <function name='xmlCharInRange' file='chvalid'>
+ <function name='xmlCharInRange' file='chvalid' module='chvalid'>
<info>Does a binary search of the range table to determine if char is valid</info>
<return type='int' info='true if character valid, false otherwise'/>
<arg name='val' type='unsigned int' info='character to be validated'/>
<arg name='rptr' type='const xmlChRangeGroupPtr' info='pointer to range to be used to validate'/>
</function>
- <function name='xmlCharStrdup' file='xmlstring'>
+ <function name='xmlCharStrdup' file='xmlstring' module='xmlstring'>
<info>a strdup for char&apos;s to xmlChar&apos;s</info>
<return type='xmlChar *' info='a new xmlChar * or NULL'/>
<arg name='cur' type='const char *' info='the input char *'/>
</function>
- <function name='xmlCharStrndup' file='xmlstring'>
+ <function name='xmlCharStrndup' file='xmlstring' module='xmlstring'>
<info>a strndup for char&apos;s to xmlChar&apos;s</info>
<return type='xmlChar *' info='a new xmlChar * or NULL'/>
<arg name='cur' type='const char *' info='the input char *'/>
<arg name='len' type='int' info='the len of @cur'/>
</function>
- <function name='xmlCheckFilename' file='xmlIO'>
+ <function name='xmlCheckFilename' file='xmlIO' module='xmlIO'>
<info>function checks to see if @path is a valid source (file, socket...) for XML. if stat is not available on the target machine,</info>
<return type='int' info='1. if stat fails, returns 0 (if calling stat on the filename fails, it can&apos;t be right). if stat succeeds and the file is a directory, returns 2. otherwise returns 1.'/>
<arg name='path' type='const char *' info='the path to check'/>
</function>
- <function name='xmlCheckHTTPInput' file='xmlIO'>
+ <function name='xmlCheckHTTPInput' file='xmlIO' module='xmlIO'>
<info>Check an input in case it was created from an HTTP stream, in that case it will handle encoding and update of the base URL in case of redirection. It also checks for HTTP errors in which case the input is cleanly freed up and an appropriate error is raised in context</info>
<return type='xmlParserInputPtr' info='the input or NULL in case of HTTP error.'/>
<arg name='ctxt' type='xmlParserCtxtPtr' info='an XML parser context'/>
<arg name='ret' type='xmlParserInputPtr' info='an XML parser input'/>
</function>
- <function name='xmlCheckLanguageID' file='parserInternals'>
+ <function name='xmlCheckLanguageID' file='parserInternals' module='parser'>
<info>Checks that the value conforms to the LanguageID production: NOTE: this is somewhat deprecated, those productions were removed from the XML Second edition. [33] LanguageID ::= Langcode (&apos;-&apos; Subcode)* [34] Langcode ::= ISO639Code | IanaCode | UserCode [35] ISO639Code ::= ([a-z] | [A-Z]) ([a-z] | [A-Z]) [36] IanaCode ::= (&apos;i&apos; | &apos;I&apos;) &apos;-&apos; ([a-z] | [A-Z])+ [37] UserCode ::= (&apos;x&apos; | &apos;X&apos;) &apos;-&apos; ([a-z] | [A-Z])+ [38] Subcode ::= ([a-z] | [A-Z])+</info>
<return type='int' info='1 if correct 0 otherwise'/>
<arg name='lang' type='const xmlChar *' info='pointer to the string value'/>
</function>
- <function name='xmlCheckUTF8' file='xmlstring'>
+ <function name='xmlCheckUTF8' file='xmlstring' module='xmlstring'>
<info>Checks @utf for being valid UTF-8. @utf is assumed to be null-terminated. This function is not super-strict, as it will allow longer UTF-8 sequences than necessary. Note that Java is capable of producing these sequences if provoked. Also note, this routine checks for the 4-byte maximum size, but does not check for 0x10ffff maximum value.</info>
<return type='int' info='value: true if @utf is valid.'/>
<arg name='utf' type='const unsigned char *' info='Pointer to putative UTF-8 encoded string.'/>
</function>
- <function name='xmlCheckVersion' file='xmlversion'>
+ <function name='xmlCheckVersion' file='xmlversion' module='parserInternals'>
<info>check the compiled lib version against the include one. This can warn or immediately kill the application</info>
<return type='void'/>
<arg name='version' type='int' info='the include version number'/>
</function>
- <function name='xmlCleanupCharEncodingHandlers' file='encoding'>
+ <function name='xmlCleanupCharEncodingHandlers' file='encoding' module='encoding'>
<info>Cleanup the memory allocated for the char encoding support, it unregisters all the encoding handlers and the aliases.</info>
<return type='void'/>
</function>
- <function name='xmlCleanupEncodingAliases' file='encoding'>
+ <function name='xmlCleanupEncodingAliases' file='encoding' module='encoding'>
<info>Unregisters all aliases</info>
<return type='void'/>
</function>
- <function name='xmlCleanupGlobals' file='globals'>
+ <function name='xmlCleanupGlobals' file='globals' module='globals'>
<info>Additional cleanup for multi-threading</info>
<return type='void'/>
</function>
- <function name='xmlCleanupInputCallbacks' file='xmlIO'>
+ <function name='xmlCleanupInputCallbacks' file='xmlIO' module='xmlIO'>
<info>clears the entire input callback table. this includes the compiled-in I/O.</info>
<return type='void'/>
</function>
- <function name='xmlCleanupMemory' file='xmlmemory'>
+ <function name='xmlCleanupMemory' file='xmlmemory' module='xmlmemory'>
<info>Free up all the memory allocated by the library for its own use. This should not be called by user level code.</info>
<return type='void'/>
</function>
- <function name='xmlCleanupOutputCallbacks' file='xmlIO'>
+ <function name='xmlCleanupOutputCallbacks' file='xmlIO' module='xmlIO'>
<cond>defined(LIBXML_OUTPUT_ENABLED)</cond>
<info>clears the entire output callback table. this includes the compiled-in I/O callbacks.</info>
<return type='void'/>
</function>
- <function name='xmlCleanupParser' file='parser'>
+ <function name='xmlCleanupParser' file='parser' module='parser'>
<info>Cleanup function for the XML library. It tries to reclaim all parsing related global memory allocated for the library processing. It doesn&apos;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='xmlCleanupPredefinedEntities' file='entities'>
+ <function name='xmlCleanupPredefinedEntities' file='entities' module='legacy'>
<cond>defined(LIBXML_LEGACY_ENABLED)</cond>
<info>Cleanup up the predefined entities table. Deprecated call</info>
<return type='void'/>
</function>
- <function name='xmlCleanupThreads' file='threads'>
+ <function name='xmlCleanupThreads' file='threads' module='threads'>
<info>xmlCleanupThreads() is used to to cleanup all the thread related data of the libxml2 library once processing has ended.</info>
<return type='void'/>
</function>
- <function name='xmlClearNodeInfoSeq' file='parser'>
+ <function name='xmlClearNodeInfoSeq' file='parser' module='parserInternals'>
<info>-- Clear (release memory and reinitialize) node info sequence</info>
<return type='void'/>
<arg name='seq' type='xmlParserNodeInfoSeqPtr' info='a node info sequence pointer'/>
</function>
- <function name='xmlClearParserCtxt' file='parser'>
+ <function name='xmlClearParserCtxt' file='parser' module='parserInternals'>
<info>Clear (release owned resources) and reinitialize a parser context</info>
<return type='void'/>
<arg name='ctxt' type='xmlParserCtxtPtr' info='an XML parser context'/>
</function>
- <function name='xmlConvertSGMLCatalog' file='catalog'>
+ <function name='xmlConvertSGMLCatalog' file='catalog' module='catalog'>
<cond>defined(LIBXML_CATALOG_ENABLED)</cond>
<info>Convert all the SGML catalog entries as XML ones</info>
<return type='int' info='the number of entries converted if successful, -1 otherwise'/>
<arg name='catal' type='xmlCatalogPtr' info='the catalog'/>
</function>
- <function name='xmlCopyAttributeTable' file='valid'>
+ <function name='xmlCopyAttributeTable' file='valid' module='valid'>
<cond>defined(LIBXML_TREE_ENABLED)</cond>
<info>Build a copy of an attribute table.</info>
<return type='xmlAttributeTablePtr' info='the new xmlAttributeTablePtr or NULL in case of error.'/>
<arg name='table' type='xmlAttributeTablePtr' info='An attribute table'/>
</function>
- <function name='xmlCopyChar' file='parserInternals'>
+ <function name='xmlCopyChar' file='parserInternals' module='parserInternals'>
<info>append the char value in the array</info>
<return type='int' info='the number of xmlChar written'/>
<arg name='len' type='int' info='Ignored, compatibility'/>
<arg name='out' type='xmlChar *' info='pointer to an array of xmlChar'/>
<arg name='val' type='int' info='the char value'/>
</function>
- <function name='xmlCopyCharMultiByte' file='parserInternals'>
+ <function name='xmlCopyCharMultiByte' file='parserInternals' module='parserInternals'>
<info>append the char value in the array</info>
<return type='int' info='the number of xmlChar written'/>
<arg name='out' type='xmlChar *' info='pointer to an array of xmlChar'/>
<arg name='val' type='int' info='the char value'/>
</function>
- <function name='xmlCopyDoc' file='tree'>
+ <function name='xmlCopyDoc' file='tree' module='tree'>
<cond>defined(LIBXML_TREE_ENABLED) || defined(LIBXML_SCHEMAS_ENABLED)</cond>
<info>Do a copy of the document info. If recursive, the content tree will be copied too as well as DTD, namespaces and entities.</info>
<return type='xmlDocPtr' info='a new #xmlDocPtr, or NULL in case of error.'/>
<arg name='doc' type='xmlDocPtr' info='the document'/>
<arg name='recursive' type='int' info='if not zero do a recursive copy.'/>
</function>
- <function name='xmlCopyDocElementContent' file='valid'>
+ <function name='xmlCopyDocElementContent' file='valid' module='valid'>
<info>Build a copy of an element content description.</info>
<return type='xmlElementContentPtr' info='the new xmlElementContentPtr or NULL in case of error.'/>
<arg name='doc' type='xmlDocPtr' info='the document owning the element declaration'/>
<arg name='cur' type='xmlElementContentPtr' info='An element content pointer.'/>
</function>
- <function name='xmlCopyDtd' file='tree'>
+ <function name='xmlCopyDtd' file='tree' module='tree'>
<cond>defined(LIBXML_TREE_ENABLED)</cond>
<info>Do a copy of the dtd.</info>
<return type='xmlDtdPtr' info='a new #xmlDtdPtr, or NULL in case of error.'/>
<arg name='dtd' type='xmlDtdPtr' info='the dtd'/>
</function>
- <function name='xmlCopyElementContent' file='valid'>
+ <function name='xmlCopyElementContent' file='valid' module='valid'>
<info>Build a copy of an element content description. Deprecated, use xmlCopyDocElementContent instead</info>
<return type='xmlElementContentPtr' info='the new xmlElementContentPtr or NULL in case of error.'/>
<arg name='cur' type='xmlElementContentPtr' info='An element content pointer.'/>
</function>
- <function name='xmlCopyElementTable' file='valid'>
+ <function name='xmlCopyElementTable' file='valid' module='valid'>
<cond>defined(LIBXML_TREE_ENABLED)</cond>
<info>Build a copy of an element table.</info>
<return type='xmlElementTablePtr' info='the new xmlElementTablePtr or NULL in case of error.'/>
<arg name='table' type='xmlElementTablePtr' info='An element table'/>
</function>
- <function name='xmlCopyEntitiesTable' file='entities'>
+ <function name='xmlCopyEntitiesTable' file='entities' module='entities'>
<cond>defined(LIBXML_TREE_ENABLED)</cond>
<info>Build a copy of an entity table.</info>
<return type='xmlEntitiesTablePtr' info='the new xmlEntitiesTablePtr or NULL in case of error.'/>
<arg name='table' type='xmlEntitiesTablePtr' info='An entity table'/>
</function>
- <function name='xmlCopyEnumeration' file='valid'>
+ <function name='xmlCopyEnumeration' file='valid' module='valid'>
<cond>defined(LIBXML_TREE_ENABLED)</cond>
<info>Copy an enumeration attribute node (recursive).</info>
<return type='xmlEnumerationPtr' info='the xmlEnumerationPtr just created or NULL in case of error.'/>
<arg name='cur' type='xmlEnumerationPtr' info='the tree to copy.'/>
</function>
- <function name='xmlCopyError' file='xmlerror'>
+ <function name='xmlCopyError' file='xmlerror' module='error'>
<info>Save the original error to the new place.</info>
<return type='int' info='0 in case of success and -1 in case of error.'/>
<arg name='from' type='xmlErrorPtr' info='a source error'/>
<arg name='to' type='xmlErrorPtr' info='a target error'/>
</function>
- <function name='xmlCopyNamespace' file='tree'>
+ <function name='xmlCopyNamespace' file='tree' module='tree'>
<info>Do a copy of the namespace.</info>
<return type='xmlNsPtr' info='a new #xmlNsPtr, or NULL in case of error.'/>
<arg name='cur' type='xmlNsPtr' info='the namespace'/>
</function>
- <function name='xmlCopyNamespaceList' file='tree'>
+ <function name='xmlCopyNamespaceList' file='tree' module='tree'>
<info>Do a copy of an namespace list.</info>
<return type='xmlNsPtr' info='a new #xmlNsPtr, or NULL in case of error.'/>
<arg name='cur' type='xmlNsPtr' info='the first namespace'/>
</function>
- <function name='xmlCopyNode' file='tree'>
+ <function name='xmlCopyNode' file='tree' module='tree'>
<info>Do a copy of the node.</info>
<return type='xmlNodePtr' info='a new #xmlNodePtr, or NULL in case of error.'/>
<arg name='node' type='const xmlNodePtr' info='the node'/>
<arg name='extended' type='int' info='if 1 do a recursive copy (properties, namespaces and children when applicable) if 2 copy properties and namespaces (when applicable)'/>
</function>
- <function name='xmlCopyNodeList' file='tree'>
+ <function name='xmlCopyNodeList' file='tree' module='tree'>
<info>Do a recursive copy of the node list. Use xmlDocCopyNodeList() if possible to ensure string interning.</info>
<return type='xmlNodePtr' info='a new #xmlNodePtr, or NULL in case of error.'/>
<arg name='node' type='const xmlNodePtr' info='the first node in the list.'/>
</function>
- <function name='xmlCopyNotationTable' file='valid'>
+ <function name='xmlCopyNotationTable' file='valid' module='valid'>
<cond>defined(LIBXML_TREE_ENABLED)</cond>
<info>Build a copy of a notation table.</info>
<return type='xmlNotationTablePtr' info='the new xmlNotationTablePtr or NULL in case of error.'/>
<arg name='table' type='xmlNotationTablePtr' info='A notation table'/>
</function>
- <function name='xmlCopyProp' file='tree'>
+ <function name='xmlCopyProp' file='tree' module='tree'>
<info>Do a copy of the attribute.</info>
<return type='xmlAttrPtr' info='a new #xmlAttrPtr, or NULL in case of error.'/>
<arg name='target' type='xmlNodePtr' info='the element where the attribute will be grafted'/>
<arg name='cur' type='xmlAttrPtr' info='the attribute'/>
</function>
- <function name='xmlCopyPropList' file='tree'>
+ <function name='xmlCopyPropList' file='tree' module='tree'>
<info>Do a copy of an attribute list.</info>
<return type='xmlAttrPtr' info='a new #xmlAttrPtr, or NULL in case of error.'/>
<arg name='target' type='xmlNodePtr' info='the element where the attributes will be grafted'/>
<arg name='cur' type='xmlAttrPtr' info='the first attribute'/>
</function>
- <function name='xmlCreateDocParserCtxt' file='parser'>
+ <function name='xmlCreateDocParserCtxt' file='parser' module='parser'>
<info>Creates a parser context for an XML in-memory document.</info>
<return type='xmlParserCtxtPtr' info='the new parser context or NULL'/>
<arg name='cur' type='const xmlChar *' info='a pointer to an array of xmlChar'/>
</function>
- <function name='xmlCreateEntitiesTable' file='entities'>
+ <function name='xmlCreateEntitiesTable' file='entities' module='entities'>
<info>create and initialize an empty entities hash table. This really doesn&apos;t make sense and should be deprecated</info>
<return type='xmlEntitiesTablePtr' info='the xmlEntitiesTablePtr just created or NULL in case of error.'/>
</function>
- <function name='xmlCreateEntityParserCtxt' file='parserInternals'>
+ <function name='xmlCreateEntityParserCtxt' file='parserInternals' module='parser'>
<info>Create a parser context for an external entity Automatic support for ZLIB/Compress compressed document is provided by default if found at compile-time.</info>
<return type='xmlParserCtxtPtr' info='the new parser context or NULL'/>
<arg name='URL' type='const xmlChar *' info='the entity URL'/>
<arg name='ID' type='const xmlChar *' info='the entity PUBLIC ID'/>
<arg name='base' type='const xmlChar *' info='a possible base for the target URI'/>
</function>
- <function name='xmlCreateEnumeration' file='valid'>
+ <function name='xmlCreateEnumeration' file='valid' module='valid'>
<info>create and initialize an enumeration attribute node.</info>
<return type='xmlEnumerationPtr' info='the xmlEnumerationPtr just created or NULL in case of error.'/>
<arg name='name' type='const xmlChar *' info='the enumeration name or NULL'/>
</function>
- <function name='xmlCreateFileParserCtxt' file='parserInternals'>
+ <function name='xmlCreateFileParserCtxt' file='parserInternals' module='parser'>
<info>Create a parser context for a file content. Automatic support for ZLIB/Compress compressed document is provided by default if found at compile-time.</info>
<return type='xmlParserCtxtPtr' info='the new parser context or NULL'/>
<arg name='filename' type='const char *' info='the filename'/>
</function>
- <function name='xmlCreateIOParserCtxt' file='parser'>
+ <function name='xmlCreateIOParserCtxt' file='parser' module='parser'>
<info>Create a parser context for using the XML parser with an existing I/O stream</info>
<return type='xmlParserCtxtPtr' info='the new parser context or NULL'/>
<arg name='sax' type='xmlSAXHandlerPtr' info='a SAX handler'/>
@@ -8524,7 +8544,7 @@ actually an xmlCharEncoding'/>
<arg name='ioctx' type='void *' info='an I/O handler'/>
<arg name='enc' type='xmlCharEncoding' info='the charset encoding if known'/>
</function>
- <function name='xmlCreateIntSubset' file='tree'>
+ <function name='xmlCreateIntSubset' file='tree' module='tree'>
<info>Create the internal subset of a document</info>
<return type='xmlDtdPtr' info='a pointer to the new DTD structure'/>
<arg name='doc' type='xmlDocPtr' info='the document pointer'/>
@@ -8532,13 +8552,13 @@ actually an xmlCharEncoding'/>
<arg name='ExternalID' type='const xmlChar *' info='the external (PUBLIC) ID'/>
<arg name='SystemID' type='const xmlChar *' info='the system ID'/>
</function>
- <function name='xmlCreateMemoryParserCtxt' file='parserInternals'>
+ <function name='xmlCreateMemoryParserCtxt' file='parserInternals' module='parser'>
<info>Create a parser context for an XML in-memory document.</info>
<return type='xmlParserCtxtPtr' info='the new parser context or NULL'/>
<arg name='buffer' type='const char *' info='a pointer to a char array'/>
<arg name='size' type='int' info='the size of the array'/>
</function>
- <function name='xmlCreatePushParserCtxt' file='parser'>
+ <function name='xmlCreatePushParserCtxt' file='parser' module='parser'>
<cond>defined(LIBXML_PUSH_ENABLED)</cond>
<info>Create a parser context for using the XML parser in push mode. If @buffer and @size are non-NULL, the data is used to detect the encoding. The remaining characters will be parsed so they don&apos;t need to be fed in again through xmlParseChunk. To allow content encoding detection, @size should be &gt;= 4 The value of @filename is used for fetching external entities and error/warning reports.</info>
<return type='xmlParserCtxtPtr' info='the new parser context or NULL'/>
@@ -8548,22 +8568,22 @@ actually an xmlCharEncoding'/>
<arg name='size' type='int' info='number of chars in the array'/>
<arg name='filename' type='const char *' info='an optional file name or URI'/>
</function>
- <function name='xmlCreateURI' file='uri'>
+ <function name='xmlCreateURI' file='uri' module='uri'>
<info>Simply creates an empty xmlURI</info>
<return type='xmlURIPtr' info='the new structure or NULL in case of error'/>
</function>
- <function name='xmlCreateURLParserCtxt' file='parserInternals'>
+ <function name='xmlCreateURLParserCtxt' file='parserInternals' module='parser'>
<info>Create a parser context for a file or URL content. Automatic support for ZLIB/Compress compressed document is provided by default if found at compile-time and for file accesses</info>
<return type='xmlParserCtxtPtr' info='the new parser context or NULL'/>
<arg name='filename' type='const char *' info='the filename or URL'/>
<arg name='options' type='int' info='a combination of xmlParserOption'/>
</function>
- <function name='xmlCtxtGetLastError' file='xmlerror'>
+ <function name='xmlCtxtGetLastError' file='xmlerror' module='error'>
<info>Get the last parsing error registered.</info>
<return type='xmlErrorPtr' info='NULL if no error occured or a pointer to the error'/>
<arg name='ctx' type='void *' info='an XML parser context'/>
</function>
- <function name='xmlCtxtReadDoc' file='parser'>
+ <function name='xmlCtxtReadDoc' file='parser' module='parser'>
<info>parse an XML in-memory document and build a tree. This reuses the existing @ctxt parser context</info>
<return type='xmlDocPtr' info='the resulting document tree'/>
<arg name='ctxt' type='xmlParserCtxtPtr' info='an XML parser context'/>
@@ -8572,7 +8592,7 @@ actually an xmlCharEncoding'/>
<arg name='encoding' type='const char *' info='the document encoding, or NULL'/>
<arg name='options' type='int' info='a combination of xmlParserOption'/>
</function>
- <function name='xmlCtxtReadFd' file='parser'>
+ <function name='xmlCtxtReadFd' file='parser' module='parser'>
<info>parse an XML from a file descriptor and build a tree. This reuses the existing @ctxt parser context NOTE that the file descriptor will not be closed when the reader is closed or reset.</info>
<return type='xmlDocPtr' info='the resulting document tree'/>
<arg name='ctxt' type='xmlParserCtxtPtr' info='an XML parser context'/>
@@ -8581,7 +8601,7 @@ actually an xmlCharEncoding'/>
<arg name='encoding' type='const char *' info='the document encoding, or NULL'/>
<arg name='options' type='int' info='a combination of xmlParserOption'/>
</function>
- <function name='xmlCtxtReadFile' file='parser'>
+ <function name='xmlCtxtReadFile' file='parser' module='parser'>
<info>parse an XML file from the filesystem or the network. This reuses the existing @ctxt parser context</info>
<return type='xmlDocPtr' info='the resulting document tree'/>
<arg name='ctxt' type='xmlParserCtxtPtr' info='an XML parser context'/>
@@ -8589,7 +8609,7 @@ actually an xmlCharEncoding'/>
<arg name='encoding' type='const char *' info='the document encoding, or NULL'/>
<arg name='options' type='int' info='a combination of xmlParserOption'/>
</function>
- <function name='xmlCtxtReadIO' file='parser'>
+ <function name='xmlCtxtReadIO' file='parser' module='parser'>
<info>parse an XML document from I/O functions and source and build a tree. This reuses the existing @ctxt parser context</info>
<return type='xmlDocPtr' info='the resulting document tree'/>
<arg name='ctxt' type='xmlParserCtxtPtr' info='an XML parser context'/>
@@ -8600,7 +8620,7 @@ actually an xmlCharEncoding'/>
<arg name='encoding' type='const char *' info='the document encoding, or NULL'/>
<arg name='options' type='int' info='a combination of xmlParserOption'/>
</function>
- <function name='xmlCtxtReadMemory' file='parser'>
+ <function name='xmlCtxtReadMemory' file='parser' module='parser'>
<info>parse an XML in-memory document and build a tree. This reuses the existing @ctxt parser context</info>
<return type='xmlDocPtr' info='the resulting document tree'/>
<arg name='ctxt' type='xmlParserCtxtPtr' info='an XML parser context'/>
@@ -8610,17 +8630,17 @@ actually an xmlCharEncoding'/>
<arg name='encoding' type='const char *' info='the document encoding, or NULL'/>
<arg name='options' type='int' info='a combination of xmlParserOption'/>
</function>
- <function name='xmlCtxtReset' file='parser'>
+ <function name='xmlCtxtReset' file='parser' module='parser'>
<info>Reset a parser context</info>
<return type='void'/>
<arg name='ctxt' type='xmlParserCtxtPtr' info='an XML parser context'/>
</function>
- <function name='xmlCtxtResetLastError' file='xmlerror'>
+ <function name='xmlCtxtResetLastError' file='xmlerror' module='error'>
<info>Cleanup the last global error registered. For parsing error this does not change the well-formedness result.</info>
<return type='void'/>
<arg name='ctx' type='void *' info='an XML parser context'/>
</function>
- <function name='xmlCtxtResetPush' file='parser'>
+ <function name='xmlCtxtResetPush' file='parser' module='parser'>
<info>Reset a push parser context</info>
<return type='int' info='0 in case of success and 1 in case of error'/>
<arg name='ctxt' type='xmlParserCtxtPtr' info='an XML parser context'/>
@@ -8629,26 +8649,26 @@ actually an xmlCharEncoding'/>
<arg name='filename' type='const char *' info='an optional file name or URI'/>
<arg name='encoding' type='const char *' info='the document encoding, or NULL'/>
</function>
- <function name='xmlCtxtUseOptions' file='parser'>
+ <function name='xmlCtxtUseOptions' file='parser' module='parser'>
<info>Applies the options to the parser context</info>
<return type='int' info='0 in case of success, the set of unknown or unimplemented options in case of error.'/>
<arg name='ctxt' type='xmlParserCtxtPtr' info='an XML parser context'/>
<arg name='options' type='int' info='a combination of xmlParserOption'/>
</function>
- <function name='xmlCurrentChar' file='parserInternals'>
+ <function name='xmlCurrentChar' file='parserInternals' module='parserInternals'>
<info>The current char value, if using UTF-8 this may actually span multiple bytes in the input buffer. Implement the end of line normalization: 2.11 End-of-Line Handling Wherever an external parsed entity or the literal entity value of an internal parsed entity contains either the literal two-character sequence &quot;#xD#xA&quot; or a standalone literal #xD, an XML processor must pass to the application the single character #xA. This behavior can conveniently be produced by normalizing all line breaks to #xA on input, before parsing.)</info>
<return type='int' info='the current char value and its length'/>
<arg name='ctxt' type='xmlParserCtxtPtr' info='the XML parser context'/>
<arg name='len' type='int *' info='pointer to the length of the char read'/>
</function>
- <function name='xmlDebugCheckDocument' file='debugXML'>
+ <function name='xmlDebugCheckDocument' file='debugXML' module='debugXML'>
<cond>defined(LIBXML_DEBUG_ENABLED)</cond>
<info>Check the document for potential content problems, and output the errors to @output</info>
<return type='int' info='the number of errors found'/>
<arg name='output' type='FILE *' info='the FILE * for the output'/>
<arg name='doc' type='xmlDocPtr' info='the document'/>
</function>
- <function name='xmlDebugDumpAttr' file='debugXML'>
+ <function name='xmlDebugDumpAttr' file='debugXML' module='debugXML'>
<cond>defined(LIBXML_DEBUG_ENABLED)</cond>
<info>Dumps debug information for the attribute</info>
<return type='void'/>
@@ -8656,7 +8676,7 @@ actually an xmlCharEncoding'/>
<arg name='attr' type='xmlAttrPtr' info='the attribute'/>
<arg name='depth' type='int' info='the indentation level.'/>
</function>
- <function name='xmlDebugDumpAttrList' file='debugXML'>
+ <function name='xmlDebugDumpAttrList' file='debugXML' module='debugXML'>
<cond>defined(LIBXML_DEBUG_ENABLED)</cond>
<info>Dumps debug information for the attribute list</info>
<return type='void'/>
@@ -8664,35 +8684,35 @@ actually an xmlCharEncoding'/>
<arg name='attr' type='xmlAttrPtr' info='the attribute list'/>
<arg name='depth' type='int' info='the indentation level.'/>
</function>
- <function name='xmlDebugDumpDTD' file='debugXML'>
+ <function name='xmlDebugDumpDTD' file='debugXML' module='debugXML'>
<cond>defined(LIBXML_DEBUG_ENABLED)</cond>
<info>Dumps debug information for the DTD</info>
<return type='void'/>
<arg name='output' type='FILE *' info='the FILE * for the output'/>
<arg name='dtd' type='xmlDtdPtr' info='the DTD'/>
</function>
- <function name='xmlDebugDumpDocument' file='debugXML'>
+ <function name='xmlDebugDumpDocument' file='debugXML' module='debugXML'>
<cond>defined(LIBXML_DEBUG_ENABLED)</cond>
<info>Dumps debug information for the document, it&apos;s recursive</info>
<return type='void'/>
<arg name='output' type='FILE *' info='the FILE * for the output'/>
<arg name='doc' type='xmlDocPtr' info='the document'/>
</function>
- <function name='xmlDebugDumpDocumentHead' file='debugXML'>
+ <function name='xmlDebugDumpDocumentHead' file='debugXML' module='debugXML'>
<cond>defined(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'>
+ <function name='xmlDebugDumpEntities' file='debugXML' module='debugXML'>
<cond>defined(LIBXML_DEBUG_ENABLED)</cond>
<info>Dumps debug information for all the entities in use by the document</info>
<return type='void'/>
<arg name='output' type='FILE *' info='the FILE * for the output'/>
<arg name='doc' type='xmlDocPtr' info='the document'/>
</function>
- <function name='xmlDebugDumpNode' file='debugXML'>
+ <function name='xmlDebugDumpNode' file='debugXML' module='debugXML'>
<cond>defined(LIBXML_DEBUG_ENABLED)</cond>
<info>Dumps debug information for the element node, it is recursive</info>
<return type='void'/>
@@ -8700,7 +8720,7 @@ actually an xmlCharEncoding'/>
<arg name='node' type='xmlNodePtr' info='the node'/>
<arg name='depth' type='int' info='the indentation level.'/>
</function>
- <function name='xmlDebugDumpNodeList' file='debugXML'>
+ <function name='xmlDebugDumpNodeList' file='debugXML' module='debugXML'>
<cond>defined(LIBXML_DEBUG_ENABLED)</cond>
<info>Dumps debug information for the list of element node, it is recursive</info>
<return type='void'/>
@@ -8708,7 +8728,7 @@ actually an xmlCharEncoding'/>
<arg name='node' type='xmlNodePtr' info='the node list'/>
<arg name='depth' type='int' info='the indentation level.'/>
</function>
- <function name='xmlDebugDumpOneNode' file='debugXML'>
+ <function name='xmlDebugDumpOneNode' file='debugXML' module='debugXML'>
<cond>defined(LIBXML_DEBUG_ENABLED)</cond>
<info>Dumps debug information for the element node, it is not recursive</info>
<return type='void'/>
@@ -8716,14 +8736,14 @@ actually an xmlCharEncoding'/>
<arg name='node' type='xmlNodePtr' info='the node'/>
<arg name='depth' type='int' info='the indentation level.'/>
</function>
- <function name='xmlDebugDumpString' file='debugXML'>
+ <function name='xmlDebugDumpString' file='debugXML' module='debugXML'>
<cond>defined(LIBXML_DEBUG_ENABLED)</cond>
<info>Dumps informations about the string, shorten it if necessary</info>
<return type='void'/>
<arg name='output' type='FILE *' info='the FILE * for the output'/>
<arg name='str' type='const xmlChar *' info='the string'/>
</function>
- <function name='xmlDecodeEntities' file='parserInternals'>
+ <function name='xmlDecodeEntities' file='parserInternals' module='legacy'>
<cond>defined(LIBXML_LEGACY_ENABLED)</cond>
<info>This function is deprecated, we now always process entities content through xmlStringDecodeEntities TODO: remove it in next major release. [67] Reference ::= EntityRef | CharRef [69] PEReference ::= &apos;%&apos; Name &apos;;&apos;</info>
<return type='xmlChar *' info='A newly allocated string with the substitution done. The caller must deallocate it !'/>
@@ -8734,107 +8754,107 @@ actually an xmlCharEncoding'/>
<arg name='end2' type='xmlChar' info='an end marker xmlChar, 0 if none'/>
<arg name='end3' type='xmlChar' info='an end marker xmlChar, 0 if none'/>
</function>
- <function name='xmlDefaultSAXHandlerInit' file='SAX2'>
+ <function name='xmlDefaultSAXHandlerInit' file='SAX2' module='SAX2'>
<info>Initialize the default SAX2 handler</info>
<return type='void'/>
</function>
- <function name='xmlDelEncodingAlias' file='encoding'>
+ <function name='xmlDelEncodingAlias' file='encoding' module='encoding'>
<info>Unregisters an encoding alias @alias</info>
<return type='int' info='0 in case of success, -1 in case of error'/>
<arg name='alias' type='const char *' info='the alias name as parsed, in UTF-8 format (ASCII actually)'/>
</function>
- <function name='xmlDeregisterNodeDefault' file='globals'>
+ <function name='xmlDeregisterNodeDefault' file='globals' module='globals'>
<info>Registers a callback for node destruction</info>
<return type='xmlDeregisterNodeFunc' info='the previous value of the deregistration function'/>
<arg name='func' type='xmlDeregisterNodeFunc' info='function pointer to the new DeregisterNodeFunc'/>
</function>
- <functype name='xmlDeregisterNodeFunc' file='globals'>
+ <functype name='xmlDeregisterNodeFunc' file='globals' module='globals'>
<info></info>
<return type='void'/>
<arg name='node' type='xmlNodePtr' info=''/>
</functype>
- <function name='xmlDetectCharEncoding' file='encoding'>
+ <function name='xmlDetectCharEncoding' file='encoding' module='encoding'>
<info>Guess the encoding of the entity using the first bytes of the entity content according to the non-normative appendix F of the XML-1.0 recommendation.</info>
<return type='xmlCharEncoding' info='one of the XML_CHAR_ENCODING_... values.'/>
<arg name='in' type='const unsigned char *' info='a pointer to the first bytes of the XML entity, must be at least 2 bytes long (at least 4 if encoding is UTF4 variant).'/>
<arg name='len' type='int' info='pointer to the length of the buffer'/>
</function>
- <function name='xmlDictCleanup' file='dict'>
+ <function name='xmlDictCleanup' file='dict' module='dict'>
<info>Free the dictionary mutex.</info>
<return type='void'/>
</function>
- <function name='xmlDictCreate' file='dict'>
+ <function name='xmlDictCreate' file='dict' module='dict'>
<info>Create a new dictionary</info>
<return type='xmlDictPtr' info='the newly created dictionnary, or NULL if an error occured.'/>
</function>
- <function name='xmlDictCreateSub' file='dict'>
+ <function name='xmlDictCreateSub' file='dict' module='dict'>
<info>Create a new dictionary, inheriting strings from the read-only dictionnary @sub. On lookup, strings are first searched in the new dictionnary, then in @sub, and if not found are created in the new dictionnary.</info>
<return type='xmlDictPtr' info='the newly created dictionnary, or NULL if an error occured.'/>
<arg name='sub' type='xmlDictPtr' info='an existing dictionnary'/>
</function>
- <function name='xmlDictExists' file='dict'>
+ <function name='xmlDictExists' file='dict' module='dict'>
<info>Check if the @name exists in the dictionnary @dict.</info>
<return type='const xmlChar *' info='the internal copy of the name or NULL if not found.'/>
<arg name='dict' type='xmlDictPtr' info='the dictionnary'/>
<arg name='name' type='const xmlChar *' info='the name of the userdata'/>
<arg name='len' type='int' info='the length of the name, if -1 it is recomputed'/>
</function>
- <function name='xmlDictFree' file='dict'>
+ <function name='xmlDictFree' file='dict' module='dict'>
<info>Free the hash @dict and its contents. The userdata is deallocated with @f if provided.</info>
<return type='void'/>
<arg name='dict' type='xmlDictPtr' info='the dictionnary'/>
</function>
- <function name='xmlDictLookup' file='dict'>
+ <function name='xmlDictLookup' file='dict' module='dict'>
<info>Add the @name to the dictionnary @dict if not present.</info>
<return type='const xmlChar *' info='the internal copy of the name or NULL in case of internal error'/>
<arg name='dict' type='xmlDictPtr' info='the dictionnary'/>
<arg name='name' type='const xmlChar *' info='the name of the userdata'/>
<arg name='len' type='int' info='the length of the name, if -1 it is recomputed'/>
</function>
- <function name='xmlDictOwns' file='dict'>
+ <function name='xmlDictOwns' file='dict' module='dict'>
<info>check if a string is owned by the disctionary</info>
<return type='int' info='1 if true, 0 if false and -1 in case of error -1 in case of error'/>
<arg name='dict' type='xmlDictPtr' info='the dictionnary'/>
<arg name='str' type='const xmlChar *' info='the string'/>
</function>
- <function name='xmlDictQLookup' file='dict'>
+ <function name='xmlDictQLookup' file='dict' module='dict'>
<info>Add the QName @prefix:@name to the hash @dict if not present.</info>
<return type='const xmlChar *' info='the internal copy of the QName or NULL in case of internal error'/>
<arg name='dict' type='xmlDictPtr' info='the dictionnary'/>
<arg name='prefix' type='const xmlChar *' info='the prefix'/>
<arg name='name' type='const xmlChar *' info='the name'/>
</function>
- <function name='xmlDictReference' file='dict'>
+ <function name='xmlDictReference' file='dict' module='dict'>
<info>Increment the reference counter of a dictionary</info>
<return type='int' info='0 in case of success and -1 in case of error'/>
<arg name='dict' type='xmlDictPtr' info='the dictionnary'/>
</function>
- <function name='xmlDictSize' file='dict'>
+ <function name='xmlDictSize' file='dict' module='dict'>
<info>Query the number of elements installed in the hash @dict.</info>
<return type='int' info='the number of elements in the dictionnary or -1 in case of error'/>
<arg name='dict' type='xmlDictPtr' info='the dictionnary'/>
</function>
- <function name='xmlDocCopyNode' file='tree'>
+ <function name='xmlDocCopyNode' file='tree' module='tree'>
<info>Do a copy of the node to a given document.</info>
<return type='xmlNodePtr' info='a new #xmlNodePtr, or NULL in case of error.'/>
<arg name='node' type='const xmlNodePtr' info='the node'/>
<arg name='doc' type='xmlDocPtr' info='the document'/>
<arg name='extended' type='int' info='if 1 do a recursive copy (properties, namespaces and children when applicable) if 2 copy properties and namespaces (when applicable)'/>
</function>
- <function name='xmlDocCopyNodeList' file='tree'>
+ <function name='xmlDocCopyNodeList' file='tree' module='tree'>
<info>Do a recursive copy of the node list.</info>
<return type='xmlNodePtr' info='a new #xmlNodePtr, or NULL in case of error.'/>
<arg name='doc' type='xmlDocPtr' info='the target document'/>
<arg name='node' type='const xmlNodePtr' info='the first node in the list.'/>
</function>
- <function name='xmlDocDump' file='tree'>
+ <function name='xmlDocDump' file='tree' module='xmlsave'>
<cond>defined(LIBXML_OUTPUT_ENABLED)</cond>
<info>Dump an XML document to an open FILE.</info>
<return type='int' info='the number of bytes written or -1 in case of failure.'/>
<arg name='f' type='FILE *' info='the FILE*'/>
<arg name='cur' type='xmlDocPtr' info='the document'/>
</function>
- <function name='xmlDocDumpFormatMemory' file='tree'>
+ <function name='xmlDocDumpFormatMemory' file='tree' module='xmlsave'>
<cond>defined(LIBXML_OUTPUT_ENABLED)</cond>
<info>Dump an XML document in memory and return the #xmlChar * and it&apos;s size. It&apos;s up to the caller to free the memory with xmlFree(). Note that @format = 1 provide node indenting only if xmlIndentTreeOutput = 1 or xmlKeepBlanksDefault(0) was called</info>
<return type='void'/>
@@ -8843,7 +8863,7 @@ actually an xmlCharEncoding'/>
<arg name='size' type='int *' info='OUT: the memory length'/>
<arg name='format' type='int' info='should formatting spaces been added'/>
</function>
- <function name='xmlDocDumpFormatMemoryEnc' file='tree'>
+ <function name='xmlDocDumpFormatMemoryEnc' file='tree' module='xmlsave'>
<cond>defined(LIBXML_OUTPUT_ENABLED)</cond>
<info>Dump the current DOM tree into memory using the character encoding specified by the caller. Note it is up to the caller of this function to free the allocated memory with xmlFree(). Note that @format = 1 provide node indenting only if xmlIndentTreeOutput = 1 or xmlKeepBlanksDefault(0) was called</info>
<return type='void'/>
@@ -8853,7 +8873,7 @@ actually an xmlCharEncoding'/>
<arg name='txt_encoding' type='const char *' info='Character encoding to use when generating XML text'/>
<arg name='format' type='int' info='should formatting spaces been added'/>
</function>
- <function name='xmlDocDumpMemory' file='tree'>
+ <function name='xmlDocDumpMemory' file='tree' module='xmlsave'>
<cond>defined(LIBXML_OUTPUT_ENABLED)</cond>
<info>Dump an XML document in memory and return the #xmlChar * and it&apos;s size in bytes. It&apos;s up to the caller to free the memory with xmlFree(). The resulting byte array is zero terminated, though the last 0 is not included in the returned size.</info>
<return type='void'/>
@@ -8861,7 +8881,7 @@ actually an xmlCharEncoding'/>
<arg name='mem' type='xmlChar **' info='OUT: the memory pointer'/>
<arg name='size' type='int *' info='OUT: the memory length'/>
</function>
- <function name='xmlDocDumpMemoryEnc' file='tree'>
+ <function name='xmlDocDumpMemoryEnc' file='tree' module='xmlsave'>
<cond>defined(LIBXML_OUTPUT_ENABLED)</cond>
<info>Dump the current DOM tree into memory using the character encoding specified by the caller. Note it is up to the caller of this function to free the allocated memory with xmlFree().</info>
<return type='void'/>
@@ -8870,7 +8890,7 @@ actually an xmlCharEncoding'/>
<arg name='doc_txt_len' type='int *' info='Length of the generated XML text'/>
<arg name='txt_encoding' type='const char *' info='Character encoding to use when generating XML text'/>
</function>
- <function name='xmlDocFormatDump' file='tree'>
+ <function name='xmlDocFormatDump' file='tree' module='xmlsave'>
<cond>defined(LIBXML_OUTPUT_ENABLED)</cond>
<info>Dump an XML document to an open FILE.</info>
<return type='int' info='the number of bytes written or -1 in case of failure. Note that @format = 1 provide node indenting only if xmlIndentTreeOutput = 1 or xmlKeepBlanksDefault(0) was called'/>
@@ -8878,75 +8898,75 @@ actually an xmlCharEncoding'/>
<arg name='cur' type='xmlDocPtr' info='the document'/>
<arg name='format' type='int' info='should formatting spaces been added'/>
</function>
- <function name='xmlDocGetRootElement' file='tree'>
+ <function name='xmlDocGetRootElement' file='tree' module='tree'>
<info>Get the root element of the document (doc-&gt;children is a list containing possibly comments, PIs, etc ...).</info>
<return type='xmlNodePtr' info='the #xmlNodePtr for the root or NULL'/>
<arg name='doc' type='xmlDocPtr' info='the document'/>
</function>
- <function name='xmlDocSetRootElement' file='tree'>
+ <function name='xmlDocSetRootElement' file='tree' module='tree'>
<cond>defined(LIBXML_TREE_ENABLED) || defined(LIBXML_WRITER_ENABLED)</cond>
<info>Set the root element of the document (doc-&gt;children is a list containing possibly comments, PIs, etc ...).</info>
<return type='xmlNodePtr' info='the old root element if any was found'/>
<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'>
+ <function name='xmlDumpAttributeDecl' file='valid' module='valid'>
<cond>defined(LIBXML_OUTPUT_ENABLED)</cond>
<info>This will dump the content of the attribute declaration as an XML DTD definition</info>
<return type='void'/>
<arg name='buf' type='xmlBufferPtr' info='the XML buffer output'/>
<arg name='attr' type='xmlAttributePtr' info='An attribute declaration'/>
</function>
- <function name='xmlDumpAttributeTable' file='valid'>
+ <function name='xmlDumpAttributeTable' file='valid' module='valid'>
<cond>defined(LIBXML_OUTPUT_ENABLED)</cond>
<info>This will dump the content of the attribute table as an XML DTD definition</info>
<return type='void'/>
<arg name='buf' type='xmlBufferPtr' info='the XML buffer output'/>
<arg name='table' type='xmlAttributeTablePtr' info='An attribute table'/>
</function>
- <function name='xmlDumpElementDecl' file='valid'>
+ <function name='xmlDumpElementDecl' file='valid' module='valid'>
<cond>defined(LIBXML_OUTPUT_ENABLED)</cond>
<info>This will dump the content of the element declaration as an XML DTD definition</info>
<return type='void'/>
<arg name='buf' type='xmlBufferPtr' info='the XML buffer output'/>
<arg name='elem' type='xmlElementPtr' info='An element table'/>
</function>
- <function name='xmlDumpElementTable' file='valid'>
+ <function name='xmlDumpElementTable' file='valid' module='valid'>
<cond>defined(LIBXML_OUTPUT_ENABLED)</cond>
<info>This will dump the content of the element table as an XML DTD definition</info>
<return type='void'/>
<arg name='buf' type='xmlBufferPtr' info='the XML buffer output'/>
<arg name='table' type='xmlElementTablePtr' info='An element table'/>
</function>
- <function name='xmlDumpEntitiesTable' file='entities'>
+ <function name='xmlDumpEntitiesTable' file='entities' module='entities'>
<cond>defined(LIBXML_OUTPUT_ENABLED)</cond>
<info>This will dump the content of the entity table as an XML DTD definition</info>
<return type='void'/>
<arg name='buf' type='xmlBufferPtr' info='An XML buffer.'/>
<arg name='table' type='xmlEntitiesTablePtr' info='An entity table'/>
</function>
- <function name='xmlDumpEntityDecl' file='entities'>
+ <function name='xmlDumpEntityDecl' file='entities' module='entities'>
<cond>defined(LIBXML_OUTPUT_ENABLED)</cond>
<info>This will dump the content of the entity table as an XML DTD definition</info>
<return type='void'/>
<arg name='buf' type='xmlBufferPtr' info='An XML buffer.'/>
<arg name='ent' type='xmlEntityPtr' info='An entity table'/>
</function>
- <function name='xmlDumpNotationDecl' file='valid'>
+ <function name='xmlDumpNotationDecl' file='valid' module='valid'>
<cond>defined(LIBXML_OUTPUT_ENABLED)</cond>
<info>This will dump the content the notation declaration as an XML DTD definition</info>
<return type='void'/>
<arg name='buf' type='xmlBufferPtr' info='the XML buffer output'/>
<arg name='nota' type='xmlNotationPtr' info='A notation declaration'/>
</function>
- <function name='xmlDumpNotationTable' file='valid'>
+ <function name='xmlDumpNotationTable' file='valid' module='valid'>
<cond>defined(LIBXML_OUTPUT_ENABLED)</cond>
<info>This will dump the content of the notation table as an XML DTD definition</info>
<return type='void'/>
<arg name='buf' type='xmlBufferPtr' info='the XML buffer output'/>
<arg name='table' type='xmlNotationTablePtr' info='A notation table'/>
</function>
- <function name='xmlElemDump' file='tree'>
+ <function name='xmlElemDump' file='tree' module='xmlsave'>
<cond>defined(LIBXML_OUTPUT_ENABLED)</cond>
<info>Dump an XML/HTML node, recursive behaviour, children are printed too.</info>
<return type='void'/>
@@ -8954,26 +8974,26 @@ actually an xmlCharEncoding'/>
<arg name='doc' type='xmlDocPtr' info='the document'/>
<arg name='cur' type='xmlNodePtr' info='the current node'/>
</function>
- <function name='xmlEncodeEntities' file='entities'>
+ <function name='xmlEncodeEntities' file='entities' module='legacy'>
<cond>defined(LIBXML_LEGACY_ENABLED)</cond>
<info>TODO: remove xmlEncodeEntities, once we are not afraid of breaking binary compatibility People must migrate their code to xmlEncodeEntitiesReentrant ! This routine will issue a warning when encountered.</info>
<return type='const xmlChar *' info='NULL'/>
<arg name='doc' type='xmlDocPtr' info='the document containing the string'/>
<arg name='input' type='const xmlChar *' info='A string to convert to XML.'/>
</function>
- <function name='xmlEncodeEntitiesReentrant' file='entities'>
+ <function name='xmlEncodeEntitiesReentrant' file='entities' module='entities'>
<info>Do a global encoding of a string, replacing the predefined entities and non ASCII values with their entities and CharRef counterparts. Contrary to xmlEncodeEntities, this routine is reentrant, and result must be deallocated.</info>
<return type='xmlChar *' info='A newly allocated string with the substitution done.'/>
<arg name='doc' type='xmlDocPtr' info='the document containing the string'/>
<arg name='input' type='const xmlChar *' info='A string to convert to XML.'/>
</function>
- <function name='xmlEncodeSpecialChars' file='entities'>
+ <function name='xmlEncodeSpecialChars' file='entities' module='entities'>
<info>Do a global encoding of a string, replacing the predefined entities this routine is reentrant, and result must be deallocated.</info>
<return type='xmlChar *' info='A newly allocated string with the substitution done.'/>
<arg name='doc' type='xmlDocPtr' info='the document containing the string'/>
<arg name='input' type='const xmlChar *' info='A string to convert to XML.'/>
</function>
- <functype name='xmlEntityReferenceFunc' file='parserInternals'>
+ <functype name='xmlEntityReferenceFunc' file='parserInternals' module='parserInternals'>
<cond>defined(LIBXML_LEGACY_ENABLED)</cond>
<info>Callback function used when one needs to be able to track back the provenance of a chunk of nodes inherited from an entity replacement.</info>
<return type='void'/>
@@ -8981,216 +9001,216 @@ actually an xmlCharEncoding'/>
<arg name='firstNode' type='xmlNodePtr' info='the fist node in the chunk'/>
<arg name='lastNode' type='xmlNodePtr' info='the last nod in the chunk'/>
</functype>
- <function name='xmlErrMemory' file='parserInternals'>
+ <function name='xmlErrMemory' file='parserInternals' module='parserInternals'>
<info>Handle a redefinition of attribute error</info>
<return type='void'/>
<arg name='ctxt' type='xmlParserCtxtPtr' info='an XML parser context'/>
<arg name='extra' type='const char *' info='extra informations'/>
</function>
- <functype name='xmlExternalEntityLoader' file='parser'>
+ <functype name='xmlExternalEntityLoader' file='parser' module='parser'>
<info>External entity loaders types.</info>
<return type='xmlParserInputPtr' info='the entity input parser.'/>
<arg name='URL' type='const char *' info='The System ID of the resource requested'/>
<arg name='ID' type='const char *' info='The Public ID of the resource requested'/>
<arg name='context' type='xmlParserCtxtPtr' info='the XML parser context'/>
</functype>
- <function name='xmlFileClose' file='xmlIO'>
+ <function name='xmlFileClose' file='xmlIO' module='xmlIO'>
<info>Close an I/O channel</info>
<return type='int' info='0 or -1 in case of error'/>
<arg name='context' type='void *' info='the I/O context'/>
</function>
- <function name='xmlFileMatch' file='xmlIO'>
+ <function name='xmlFileMatch' file='xmlIO' module='xmlIO'>
<info>input from FILE *</info>
<return type='int' info='1 if matches, 0 otherwise'/>
<arg name='filename' type='const char *' info='the URI for matching'/>
</function>
- <function name='xmlFileOpen' file='xmlIO'>
+ <function name='xmlFileOpen' file='xmlIO' module='xmlIO'>
<info>Wrapper around xmlFileOpen_real that try it with an unescaped version of @filename, if this fails fallback to @filename</info>
<return type='void *' info='a handler or NULL in case or failure'/>
<arg name='filename' type='const char *' info='the URI for matching'/>
</function>
- <function name='xmlFileRead' file='xmlIO'>
+ <function name='xmlFileRead' file='xmlIO' module='xmlIO'>
<info>Read @len bytes to @buffer from the I/O channel.</info>
<return type='int' info='the number of bytes written or &lt; 0 in case of failure'/>
<arg name='context' type='void *' info='the I/O context'/>
<arg name='buffer' type='char *' info='where to drop data'/>
<arg name='len' type='int' info='number of bytes to write'/>
</function>
- <function name='xmlFindCharEncodingHandler' file='encoding'>
+ <function name='xmlFindCharEncodingHandler' file='encoding' module='encoding'>
<info>Search in the registered set the handler able to read/write that encoding.</info>
<return type='xmlCharEncodingHandlerPtr' info='the handler or NULL if not found'/>
<arg name='name' type='const char *' info='a string describing the char encoding.'/>
</function>
- <function name='xmlFreeAttributeTable' file='valid'>
+ <function name='xmlFreeAttributeTable' file='valid' module='valid'>
<info>Deallocate the memory used by an entities hash table.</info>
<return type='void'/>
<arg name='table' type='xmlAttributeTablePtr' info='An attribute table'/>
</function>
- <function name='xmlFreeAutomata' file='xmlautomata'>
+ <function name='xmlFreeAutomata' file='xmlautomata' module='xmlregexp'>
<cond>defined(LIBXML_REGEXP_ENABLED) &amp;&amp; defined(LIBXML_AUTOMATA_ENABLED)</cond>
<info>Free an automata</info>
<return type='void'/>
<arg name='am' type='xmlAutomataPtr' info='an automata'/>
</function>
- <function name='xmlFreeCatalog' file='catalog'>
+ <function name='xmlFreeCatalog' file='catalog' module='catalog'>
<cond>defined(LIBXML_CATALOG_ENABLED)</cond>
<info>Free the memory allocated to a Catalog</info>
<return type='void'/>
<arg name='catal' type='xmlCatalogPtr' info='a Catalog'/>
</function>
- <function name='xmlFreeDoc' file='tree'>
+ <function name='xmlFreeDoc' file='tree' module='tree'>
<info>Free up all the structures used by a document, tree included.</info>
<return type='void'/>
<arg name='cur' type='xmlDocPtr' info='pointer to the document'/>
</function>
- <function name='xmlFreeDocElementContent' file='valid'>
+ <function name='xmlFreeDocElementContent' file='valid' module='valid'>
<info>Free an element content structure. The whole subtree is removed.</info>
<return type='void'/>
<arg name='doc' type='xmlDocPtr' info='the document owning the element declaration'/>
<arg name='cur' type='xmlElementContentPtr' info='the element content tree to free'/>
</function>
- <function name='xmlFreeDtd' file='tree'>
+ <function name='xmlFreeDtd' file='tree' module='tree'>
<info>Free a DTD structure.</info>
<return type='void'/>
<arg name='cur' type='xmlDtdPtr' info='the DTD structure to free up'/>
</function>
- <function name='xmlFreeElementContent' file='valid'>
+ <function name='xmlFreeElementContent' file='valid' module='valid'>
<info>Free an element content structure. The whole subtree is removed. Deprecated, use xmlFreeDocElementContent instead</info>
<return type='void'/>
<arg name='cur' type='xmlElementContentPtr' info='the element content tree to free'/>
</function>
- <function name='xmlFreeElementTable' file='valid'>
+ <function name='xmlFreeElementTable' file='valid' module='valid'>
<info>Deallocate the memory used by an element hash table.</info>
<return type='void'/>
<arg name='table' type='xmlElementTablePtr' info='An element table'/>
</function>
- <function name='xmlFreeEntitiesTable' file='entities'>
+ <function name='xmlFreeEntitiesTable' file='entities' module='entities'>
<info>Deallocate the memory used by an entities hash table.</info>
<return type='void'/>
<arg name='table' type='xmlEntitiesTablePtr' info='An entity table'/>
</function>
- <function name='xmlFreeEnumeration' file='valid'>
+ <function name='xmlFreeEnumeration' file='valid' module='valid'>
<info>free an enumeration attribute node (recursive).</info>
<return type='void'/>
<arg name='cur' type='xmlEnumerationPtr' info='the tree to free.'/>
</function>
- <functype name='xmlFreeFunc' file='xmlmemory'>
+ <functype name='xmlFreeFunc' file='xmlmemory' module='xmlmemory'>
<info>Signature for a free() implementation.</info>
<return type='void'/>
<arg name='mem' type='void *' info='an already allocated block of memory'/>
</functype>
- <function name='xmlFreeIDTable' file='valid'>
+ <function name='xmlFreeIDTable' file='valid' module='valid'>
<info>Deallocate the memory used by an ID hash table.</info>
<return type='void'/>
<arg name='table' type='xmlIDTablePtr' info='An id table'/>
</function>
- <function name='xmlFreeInputStream' file='parserInternals'>
+ <function name='xmlFreeInputStream' file='parserInternals' module='parserInternals'>
<info>Free up an input stream.</info>
<return type='void'/>
<arg name='input' type='xmlParserInputPtr' info='an xmlParserInputPtr'/>
</function>
- <function name='xmlFreeMutex' file='threads'>
+ <function name='xmlFreeMutex' file='threads' module='threads'>
<info>xmlFreeMutex() is used to reclaim resources associated with a libxml2 token struct.</info>
<return type='void'/>
<arg name='tok' type='xmlMutexPtr' info='the simple mutex'/>
</function>
- <function name='xmlFreeNode' file='tree'>
+ <function name='xmlFreeNode' file='tree' module='tree'>
<info>Free a node, this is a recursive behaviour, all the children are freed too. This doesn&apos;t unlink the child from the list, use xmlUnlinkNode() first.</info>
<return type='void'/>
<arg name='cur' type='xmlNodePtr' info='the node'/>
</function>
- <function name='xmlFreeNodeList' file='tree'>
+ <function name='xmlFreeNodeList' file='tree' module='tree'>
<info>Free a node and all its siblings, this is a recursive behaviour, all the children are freed too.</info>
<return type='void'/>
<arg name='cur' type='xmlNodePtr' info='the first node in the list'/>
</function>
- <function name='xmlFreeNotationTable' file='valid'>
+ <function name='xmlFreeNotationTable' file='valid' module='valid'>
<info>Deallocate the memory used by an entities hash table.</info>
<return type='void'/>
<arg name='table' type='xmlNotationTablePtr' info='An notation table'/>
</function>
- <function name='xmlFreeNs' file='tree'>
+ <function name='xmlFreeNs' file='tree' module='tree'>
<info>Free up the structures associated to a namespace</info>
<return type='void'/>
<arg name='cur' type='xmlNsPtr' info='the namespace pointer'/>
</function>
- <function name='xmlFreeNsList' file='tree'>
+ <function name='xmlFreeNsList' file='tree' module='tree'>
<info>Free up all the structures associated to the chained namespaces.</info>
<return type='void'/>
<arg name='cur' type='xmlNsPtr' info='the first namespace pointer'/>
</function>
- <function name='xmlFreeParserCtxt' file='parser'>
+ <function name='xmlFreeParserCtxt' file='parser' module='parserInternals'>
<info>Free all the memory used by a parser context. However the parsed document in ctxt-&gt;myDoc is not freed.</info>
<return type='void'/>
<arg name='ctxt' type='xmlParserCtxtPtr' info='an XML parser context'/>
</function>
- <function name='xmlFreeParserInputBuffer' file='xmlIO'>
+ <function name='xmlFreeParserInputBuffer' file='xmlIO' module='xmlIO'>
<info>Free up the memory used by a buffered parser input</info>
<return type='void'/>
<arg name='in' type='xmlParserInputBufferPtr' info='a buffered parser input'/>
</function>
- <function name='xmlFreePattern' file='pattern'>
+ <function name='xmlFreePattern' file='pattern' module='pattern'>
<cond>defined(LIBXML_PATTERN_ENABLED)</cond>
<info>Free up the memory allocated by @comp</info>
<return type='void'/>
<arg name='comp' type='xmlPatternPtr' info='an XSLT comp'/>
</function>
- <function name='xmlFreePatternList' file='pattern'>
+ <function name='xmlFreePatternList' file='pattern' module='pattern'>
<cond>defined(LIBXML_PATTERN_ENABLED)</cond>
<info>Free up the memory allocated by all the elements of @comp</info>
<return type='void'/>
<arg name='comp' type='xmlPatternPtr' info='an XSLT comp list'/>
</function>
- <function name='xmlFreeProp' file='tree'>
+ <function name='xmlFreeProp' file='tree' module='tree'>
<info>Free one attribute, all the content is freed too</info>
<return type='void'/>
<arg name='cur' type='xmlAttrPtr' info='an attribute'/>
</function>
- <function name='xmlFreePropList' file='tree'>
+ <function name='xmlFreePropList' file='tree' module='tree'>
<info>Free a property and all its siblings, all the children are freed too.</info>
<return type='void'/>
<arg name='cur' type='xmlAttrPtr' info='the first property in the list'/>
</function>
- <function name='xmlFreeRMutex' file='threads'>
+ <function name='xmlFreeRMutex' file='threads' module='threads'>
<info>xmlRFreeMutex() is used to reclaim resources associated with a reentrant mutex.</info>
<return type='void'/>
<arg name='tok' type='xmlRMutexPtr' info='the reentrant mutex'/>
</function>
- <function name='xmlFreeRefTable' file='valid'>
+ <function name='xmlFreeRefTable' file='valid' module='valid'>
<info>Deallocate the memory used by an Ref hash table.</info>
<return type='void'/>
<arg name='table' type='xmlRefTablePtr' info='An ref table'/>
</function>
- <function name='xmlFreeStreamCtxt' file='pattern'>
+ <function name='xmlFreeStreamCtxt' file='pattern' module='pattern'>
<cond>defined(LIBXML_PATTERN_ENABLED)</cond>
<info>Free the stream context</info>
<return type='void'/>
<arg name='stream' type='xmlStreamCtxtPtr' info='the stream context'/>
</function>
- <function name='xmlFreeTextReader' file='xmlreader'>
+ <function name='xmlFreeTextReader' file='xmlreader' module='xmlreader'>
<cond>defined(LIBXML_READER_ENABLED)</cond>
<info>Deallocate all the resources associated to the reader</info>
<return type='void'/>
<arg name='reader' type='xmlTextReaderPtr' info='the xmlTextReaderPtr'/>
</function>
- <function name='xmlFreeTextWriter' file='xmlwriter'>
+ <function name='xmlFreeTextWriter' file='xmlwriter' module='xmlwriter'>
<cond>defined(LIBXML_WRITER_ENABLED)</cond>
<info>Deallocate all the resources associated to the writer</info>
<return type='void'/>
<arg name='writer' type='xmlTextWriterPtr' info='the xmlTextWriterPtr'/>
</function>
- <function name='xmlFreeURI' file='uri'>
+ <function name='xmlFreeURI' file='uri' module='uri'>
<info>Free up the xmlURI struct</info>
<return type='void'/>
<arg name='uri' type='xmlURIPtr' info='pointer to an xmlURI'/>
</function>
- <function name='xmlFreeValidCtxt' file='valid'>
+ <function name='xmlFreeValidCtxt' file='valid' module='valid'>
<cond>defined(LIBXML_VALID_ENABLED)</cond>
<info>Free a validation context structure.</info>
<return type='void'/>
<arg name='cur' type='xmlValidCtxtPtr' info='the validation context to free'/>
</function>
- <function name='xmlGcMemGet' file='xmlmemory'>
+ <function name='xmlGcMemGet' file='xmlmemory' module='xmlmemory'>
<info>Provides the memory access functions set currently in use The mallocAtomicFunc is specialized for atomic block allocations (i.e. of areas useful for garbage collected memory allocators</info>
<return type='int' info='0 on success'/>
<arg name='freeFunc' type='xmlFreeFunc *' info='place to save the free() function in use'/>
@@ -9199,7 +9219,7 @@ actually an xmlCharEncoding'/>
<arg name='reallocFunc' type='xmlReallocFunc *' info='place to save the realloc() function in use'/>
<arg name='strdupFunc' type='xmlStrdupFunc *' info='place to save the strdup() function in use'/>
</function>
- <function name='xmlGcMemSetup' file='xmlmemory'>
+ <function name='xmlGcMemSetup' file='xmlmemory' module='xmlmemory'>
<info>Override the default memory access functions with a new set This has to be called before any other libxml routines ! The mallocAtomicFunc is specialized for atomic block allocations (i.e. of areas useful for garbage collected memory allocators Should this be blocked if there was already some allocations done ?</info>
<return type='int' info='0 on success'/>
<arg name='freeFunc' type='xmlFreeFunc' info='the free() function to use'/>
@@ -9208,68 +9228,68 @@ actually an xmlCharEncoding'/>
<arg name='reallocFunc' type='xmlReallocFunc' info='the realloc() function to use'/>
<arg name='strdupFunc' type='xmlStrdupFunc' info='the strdup() function to use'/>
</function>
- <functype name='xmlGenericErrorFunc' file='xmlerror'>
+ <functype name='xmlGenericErrorFunc' file='xmlerror' module='xmlerror'>
<info>Signature of the function to use when there is an error and no parsing or validity context available .</info>
<return type='void'/>
<arg name='ctx' type='void *' info='a parsing context'/>
<arg name='msg' type='const char *' info='the message'/>
<arg name='...' type='...' info='the extra arguments of the varags to format the message'/>
</functype>
- <function name='xmlGetBufferAllocationScheme' file='tree'>
+ <function name='xmlGetBufferAllocationScheme' file='tree' module='tree'>
<info>Types are XML_BUFFER_ALLOC_EXACT - use exact sizes, keeps memory usage down XML_BUFFER_ALLOC_DOUBLEIT - double buffer when extra needed, improves performance</info>
<return type='xmlBufferAllocationScheme' info='the current allocation scheme'/>
</function>
- <function name='xmlGetCharEncodingHandler' file='encoding'>
+ <function name='xmlGetCharEncodingHandler' file='encoding' module='encoding'>
<info>Search in the registered set the handler able to read/write that encoding.</info>
<return type='xmlCharEncodingHandlerPtr' info='the handler or NULL if not found'/>
<arg name='enc' type='xmlCharEncoding' info='an xmlCharEncoding value.'/>
</function>
- <function name='xmlGetCharEncodingName' file='encoding'>
+ <function name='xmlGetCharEncodingName' file='encoding' module='encoding'>
<info>The &quot;canonical&quot; name for XML encoding. C.f. http://www.w3.org/TR/REC-xml#charencoding Section 4.3.3 Character Encoding in Entities</info>
<return type='const char *' info='the canonical name for the given encoding'/>
<arg name='enc' type='xmlCharEncoding' info='the encoding'/>
</function>
- <function name='xmlGetCompressMode' file='tree'>
+ <function name='xmlGetCompressMode' file='tree' module='tree'>
<info>get the default compression mode used, ZLIB based.</info>
<return type='int' info='0 (uncompressed) to 9 (max compression)'/>
</function>
- <function name='xmlGetDocCompressMode' file='tree'>
+ <function name='xmlGetDocCompressMode' file='tree' module='tree'>
<info>get the compression ratio for a document, ZLIB based</info>
<return type='int' info='0 (uncompressed) to 9 (max compression)'/>
<arg name='doc' type='xmlDocPtr' info='the document'/>
</function>
- <function name='xmlGetDocEntity' file='entities'>
+ <function name='xmlGetDocEntity' file='entities' module='entities'>
<info>Do an entity lookup in the document entity hash table and</info>
<return type='xmlEntityPtr' info='the corresponding entity, otherwise a lookup is done in the predefined entities too. Returns A pointer to the entity structure or NULL if not found.'/>
<arg name='doc' type='xmlDocPtr' info='the document referencing the entity'/>
<arg name='name' type='const xmlChar *' info='the entity name'/>
</function>
- <function name='xmlGetDtdAttrDesc' file='valid'>
+ <function name='xmlGetDtdAttrDesc' file='valid' module='valid'>
<info>Search the DTD for the description of this attribute on this element.</info>
<return type='xmlAttributePtr' info='the xmlAttributePtr if found or NULL'/>
<arg name='dtd' type='xmlDtdPtr' info='a pointer to the DtD to search'/>
<arg name='elem' type='const xmlChar *' info='the element name'/>
<arg name='name' type='const xmlChar *' info='the attribute name'/>
</function>
- <function name='xmlGetDtdElementDesc' file='valid'>
+ <function name='xmlGetDtdElementDesc' file='valid' module='valid'>
<info>Search the DTD for the description of this element</info>
<return type='xmlElementPtr' info='the xmlElementPtr if found or NULL'/>
<arg name='dtd' type='xmlDtdPtr' info='a pointer to the DtD to search'/>
<arg name='name' type='const xmlChar *' info='the element name'/>
</function>
- <function name='xmlGetDtdEntity' file='entities'>
+ <function name='xmlGetDtdEntity' file='entities' module='entities'>
<info>Do an entity lookup in the DTD entity hash table and</info>
<return type='xmlEntityPtr' info='the corresponding entity, if found. Note: the first argument is the document node, not the DTD node. Returns A pointer to the entity structure or NULL if not found.'/>
<arg name='doc' type='xmlDocPtr' info='the document referencing the entity'/>
<arg name='name' type='const xmlChar *' info='the entity name'/>
</function>
- <function name='xmlGetDtdNotationDesc' file='valid'>
+ <function name='xmlGetDtdNotationDesc' file='valid' module='valid'>
<info>Search the DTD for the description of this notation</info>
<return type='xmlNotationPtr' info='the xmlNotationPtr if found or NULL'/>
<arg name='dtd' type='xmlDtdPtr' info='a pointer to the DtD to search'/>
<arg name='name' type='const xmlChar *' info='the notation name'/>
</function>
- <function name='xmlGetDtdQAttrDesc' file='valid'>
+ <function name='xmlGetDtdQAttrDesc' file='valid' module='valid'>
<info>Search the DTD for the description of this qualified attribute on this element.</info>
<return type='xmlAttributePtr' info='the xmlAttributePtr if found or NULL'/>
<arg name='dtd' type='xmlDtdPtr' info='a pointer to the DtD to search'/>
@@ -9277,23 +9297,23 @@ actually an xmlCharEncoding'/>
<arg name='name' type='const xmlChar *' info='the attribute name'/>
<arg name='prefix' type='const xmlChar *' info='the attribute namespace prefix'/>
</function>
- <function name='xmlGetDtdQElementDesc' file='valid'>
+ <function name='xmlGetDtdQElementDesc' file='valid' module='valid'>
<info>Search the DTD for the description of this element</info>
<return type='xmlElementPtr' info='the xmlElementPtr if found or NULL'/>
<arg name='dtd' type='xmlDtdPtr' info='a pointer to the DtD to search'/>
<arg name='name' type='const xmlChar *' info='the element name'/>
<arg name='prefix' type='const xmlChar *' info='the element namespace prefix'/>
</function>
- <function name='xmlGetEncodingAlias' file='encoding'>
+ <function name='xmlGetEncodingAlias' file='encoding' module='encoding'>
<info>Lookup an encoding name for the given alias.</info>
<return type='const char *' info='NULL if not found, otherwise the original name'/>
<arg name='alias' type='const char *' info='the alias name as parsed, in UTF-8 format (ASCII actually)'/>
</function>
- <function name='xmlGetExternalEntityLoader' file='parser'>
+ <function name='xmlGetExternalEntityLoader' file='parser' module='xmlIO'>
<info>Get the default external entity resolver function for the application</info>
<return type='xmlExternalEntityLoader' info='the xmlExternalEntityLoader function pointer'/>
</function>
- <function name='xmlGetFeature' file='parser'>
+ <function name='xmlGetFeature' file='parser' module='legacy'>
<cond>defined(LIBXML_LEGACY_ENABLED)</cond>
<info>Read the current value of one feature of this parser instance</info>
<return type='int' info='-1 in case or error, 0 otherwise'/>
@@ -9301,129 +9321,129 @@ actually an xmlCharEncoding'/>
<arg name='name' type='const char *' info='the feature name'/>
<arg name='result' type='void *' info='location to store the result'/>
</function>
- <function name='xmlGetFeaturesList' file='parser'>
+ <function name='xmlGetFeaturesList' file='parser' module='legacy'>
<cond>defined(LIBXML_LEGACY_ENABLED)</cond>
<info>Copy at most *@len feature names into the @result array</info>
<return type='int' info='-1 in case or error, or the total number of features, len is updated with the number of strings copied, strings must not be deallocated'/>
<arg name='len' type='int *' info='the length of the features name array (input/output)'/>
<arg name='result' type='const char **' info='an array of string to be filled with the features name.'/>
</function>
- <function name='xmlGetGlobalState' file='threads'>
+ <function name='xmlGetGlobalState' file='threads' module='threads'>
<info>xmlGetGlobalState() is called to retrieve the global state for a thread.</info>
<return type='xmlGlobalStatePtr' info='the thread global state or NULL in case of error'/>
</function>
- <function name='xmlGetID' file='valid'>
+ <function name='xmlGetID' file='valid' module='valid'>
<info>Search the attribute declaring the given ID</info>
<return type='xmlAttrPtr' info='NULL if not found, otherwise the xmlAttrPtr defining the ID'/>
<arg name='doc' type='xmlDocPtr' info='pointer to the document'/>
<arg name='ID' type='const xmlChar *' info='the ID value'/>
</function>
- <function name='xmlGetIntSubset' file='tree'>
+ <function name='xmlGetIntSubset' file='tree' module='tree'>
<info>Get the internal subset of a document</info>
<return type='xmlDtdPtr' info='a pointer to the DTD structure or NULL if not found'/>
<arg name='doc' type='xmlDocPtr' info='the document pointer'/>
</function>
- <function name='xmlGetLastChild' file='tree'>
+ <function name='xmlGetLastChild' file='tree' module='tree'>
<info>Search the last child of a node.</info>
<return type='xmlNodePtr' info='the last child or NULL if none.'/>
<arg name='parent' type='xmlNodePtr' info='the parent node'/>
</function>
- <function name='xmlGetLastError' file='xmlerror'>
+ <function name='xmlGetLastError' file='xmlerror' module='error'>
<info>Get the last global error registered. This is per thread if compiled with thread support.</info>
<return type='xmlErrorPtr' info='NULL if no error occured or a pointer to the error'/>
</function>
- <function name='xmlGetLineNo' file='tree'>
+ <function name='xmlGetLineNo' file='tree' module='tree'>
<info>Get line number of @node. This requires activation of this option before invoking the parser by calling xmlLineNumbersDefault(1)</info>
<return type='long' info='the line number if successful, -1 otherwise'/>
<arg name='node' type='xmlNodePtr' info='valid node'/>
</function>
- <function name='xmlGetNoNsProp' file='tree'>
+ <function name='xmlGetNoNsProp' file='tree' module='tree'>
<info>Search and get the value of an attribute associated to a node This does the entity substitution. This function looks in DTD attribute declaration for #FIXED or default declaration values unless DTD use has been turned off. This function is similar to xmlGetProp except it will accept only an attribute in no namespace.</info>
<return type='xmlChar *' info='the attribute value or NULL if not found. It&apos;s up to the caller to free the memory with xmlFree().'/>
<arg name='node' type='xmlNodePtr' info='the node'/>
<arg name='name' type='const xmlChar *' info='the attribute name'/>
</function>
- <function name='xmlGetNodePath' file='tree'>
+ <function name='xmlGetNodePath' file='tree' module='tree'>
<cond>defined(LIBXML_TREE_ENABLED) || defined(LIBXML_DEBUG_ENABLED)</cond>
<info>Build a structure based Path for the given node</info>
<return type='xmlChar *' info='the new path or NULL in case of error. The caller must free the returned string'/>
<arg name='node' type='xmlNodePtr' info='a node'/>
</function>
- <function name='xmlGetNsList' file='tree'>
+ <function name='xmlGetNsList' file='tree' module='tree'>
<cond>defined(LIBXML_TREE_ENABLED) || defined(LIBXML_XPATH_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'/>
<arg name='node' type='xmlNodePtr' info='the current node'/>
</function>
- <function name='xmlGetNsProp' file='tree'>
+ <function name='xmlGetNsProp' file='tree' module='tree'>
<info>Search and get the value of an attribute associated to a node This attribute has to be anchored in the namespace specified. This does the entity substitution. This function looks in DTD attribute declaration for #FIXED or default declaration values unless DTD use has been turned off.</info>
<return type='xmlChar *' info='the attribute value or NULL if not found. It&apos;s up to the caller to free the memory with xmlFree().'/>
<arg name='node' type='xmlNodePtr' info='the node'/>
<arg name='name' type='const xmlChar *' info='the attribute name'/>
<arg name='nameSpace' type='const xmlChar *' info='the URI of the namespace'/>
</function>
- <function name='xmlGetParameterEntity' file='entities'>
+ <function name='xmlGetParameterEntity' file='entities' module='entities'>
<info>Do an entity lookup in the internal and external subsets and</info>
<return type='xmlEntityPtr' info='the corresponding parameter entity, if found. Returns A pointer to the entity structure or NULL if not found.'/>
<arg name='doc' type='xmlDocPtr' info='the document referencing the entity'/>
<arg name='name' type='const xmlChar *' info='the entity name'/>
</function>
- <function name='xmlGetPredefinedEntity' file='entities'>
+ <function name='xmlGetPredefinedEntity' file='entities' module='entities'>
<info>Check whether this name is an predefined entity.</info>
<return type='xmlEntityPtr' info='NULL if not, otherwise the entity'/>
<arg name='name' type='const xmlChar *' info='the entity name'/>
</function>
- <function name='xmlGetProp' file='tree'>
+ <function name='xmlGetProp' file='tree' module='tree'>
<info>Search and get the value of an attribute associated to a node This does the entity substitution. This function looks in DTD attribute declaration for #FIXED or default declaration values unless DTD use has been turned off. NOTE: this function acts independently of namespaces associated to the attribute. Use xmlGetNsProp() or xmlGetNoNsProp() for namespace aware processing.</info>
<return type='xmlChar *' info='the attribute value or NULL if not found. It&apos;s up to the caller to free the memory with xmlFree().'/>
<arg name='node' type='xmlNodePtr' info='the node'/>
<arg name='name' type='const xmlChar *' info='the attribute name'/>
</function>
- <function name='xmlGetRefs' file='valid'>
+ <function name='xmlGetRefs' file='valid' module='valid'>
<info>Find the set of references for the supplied ID.</info>
<return type='xmlListPtr' info='NULL if not found, otherwise node set for the ID.'/>
<arg name='doc' type='xmlDocPtr' info='pointer to the document'/>
<arg name='ID' type='const xmlChar *' info='the ID value'/>
</function>
- <function name='xmlGetThreadId' file='threads'>
+ <function name='xmlGetThreadId' file='threads' module='threads'>
<info>xmlGetThreadId() find the current thread ID number</info>
<return type='int' info='the current thread ID number'/>
</function>
- <function name='xmlGetUTF8Char' file='xmlstring'>
+ <function name='xmlGetUTF8Char' file='xmlstring' module='xmlstring'>
<info>Read the first UTF8 character from @utf</info>
<return type='int' info='the char value or -1 in case of error, and sets *len to the actual number of bytes consumed (0 in case of error)'/>
<arg name='utf' type='const unsigned char *' info='a sequence of UTF-8 encoded bytes'/>
<arg name='len' type='int *' info='a pointer to the minimum number of bytes present in the sequence. This is used to assure the next character is completely contained within the sequence.'/>
</function>
- <function name='xmlHandleEntity' file='parserInternals'>
+ <function name='xmlHandleEntity' file='parserInternals' module='legacy'>
<cond>defined(LIBXML_LEGACY_ENABLED)</cond>
<info>Default handling of defined entities, when should we define a new input stream ? When do we just handle that as a set of chars ? OBSOLETE: to be removed at some point.</info>
<return type='void'/>
<arg name='ctxt' type='xmlParserCtxtPtr' info='an XML parser context'/>
<arg name='entity' type='xmlEntityPtr' info='an XML entity pointer.'/>
</function>
- <function name='xmlHasNsProp' file='tree'>
+ <function name='xmlHasNsProp' file='tree' module='tree'>
<info>Search for an attribute associated to a node This attribute has to be anchored in the namespace specified. This does the entity substitution. This function looks in DTD attribute declaration for #FIXED or default declaration values unless DTD use has been turned off. Note that a namespace of NULL indicates to use the default namespace.</info>
<return type='xmlAttrPtr' info='the attribute or the attribute declaration or NULL if neither was found.'/>
<arg name='node' type='xmlNodePtr' info='the node'/>
<arg name='name' type='const xmlChar *' info='the attribute name'/>
<arg name='nameSpace' type='const xmlChar *' info='the URI of the namespace'/>
</function>
- <function name='xmlHasProp' file='tree'>
+ <function name='xmlHasProp' file='tree' module='tree'>
<info>Search an attribute associated to a node This function also looks in DTD attribute declaration for #FIXED or default declaration values unless DTD use has been turned off.</info>
<return type='xmlAttrPtr' info='the attribute or the attribute declaration or NULL if neither was found.'/>
<arg name='node' type='xmlNodePtr' info='the node'/>
<arg name='name' type='const xmlChar *' info='the attribute name'/>
</function>
- <function name='xmlHashAddEntry' file='hash'>
+ <function name='xmlHashAddEntry' file='hash' module='hash'>
<info>Add the @userdata to the hash @table. This can later be retrieved by using the @name. Duplicate names generate errors.</info>
<return type='int' info='0 the addition succeeded and -1 in case of error.'/>
<arg name='table' type='xmlHashTablePtr' info='the hash table'/>
<arg name='name' type='const xmlChar *' info='the name of the userdata'/>
<arg name='userdata' type='void *' info='a pointer to the userdata'/>
</function>
- <function name='xmlHashAddEntry2' file='hash'>
+ <function name='xmlHashAddEntry2' file='hash' module='hash'>
<info>Add the @userdata to the hash @table. This can later be retrieved by using the (@name, @name2) tuple. Duplicate tuples generate errors.</info>
<return type='int' info='0 the addition succeeded and -1 in case of error.'/>
<arg name='table' type='xmlHashTablePtr' info='the hash table'/>
@@ -9431,7 +9451,7 @@ actually an xmlCharEncoding'/>
<arg name='name2' type='const xmlChar *' info='a second name of the userdata'/>
<arg name='userdata' type='void *' info='a pointer to the userdata'/>
</function>
- <function name='xmlHashAddEntry3' file='hash'>
+ <function name='xmlHashAddEntry3' file='hash' module='hash'>
<info>Add the @userdata to the hash @table. This can later be retrieved by using the tuple (@name, @name2, @name3). Duplicate entries generate errors.</info>
<return type='int' info='0 the addition succeeded and -1 in case of error.'/>
<arg name='table' type='xmlHashTablePtr' info='the hash table'/>
@@ -9440,55 +9460,55 @@ actually an xmlCharEncoding'/>
<arg name='name3' type='const xmlChar *' info='a third name of the userdata'/>
<arg name='userdata' type='void *' info='a pointer to the userdata'/>
</function>
- <functype name='xmlHashCopier' file='hash'>
+ <functype name='xmlHashCopier' file='hash' module='hash'>
<info>Callback to copy data from a hash.</info>
<return type='void *' info='a copy of the data or NULL in case of error.'/>
<arg name='payload' type='void *' info='the data in the hash'/>
<arg name='name' type='xmlChar *' info='the name associated'/>
</functype>
- <function name='xmlHashCopy' file='hash'>
+ <function name='xmlHashCopy' file='hash' module='hash'>
<info>Scan the hash @table and applied @f to each value.</info>
<return type='xmlHashTablePtr' info='the new table or NULL in case of error.'/>
<arg name='table' type='xmlHashTablePtr' info='the hash table'/>
<arg name='f' type='xmlHashCopier' info='the copier function for items in the hash'/>
</function>
- <function name='xmlHashCreate' file='hash'>
+ <function name='xmlHashCreate' file='hash' module='hash'>
<info>Create a new xmlHashTablePtr.</info>
<return type='xmlHashTablePtr' info='the newly created object, or NULL if an error occured.'/>
<arg name='size' type='int' info='the size of the hash table'/>
</function>
- <function name='xmlHashCreateDict' file='hash'>
+ <function name='xmlHashCreateDict' file='hash' module='hash'>
<info>Create a new xmlHashTablePtr which will use @dict as the internal dictionary</info>
<return type='xmlHashTablePtr' info='the newly created object, or NULL if an error occured.'/>
<arg name='size' type='int' info='the size of the hash table'/>
<arg name='dict' type='xmlDictPtr' info='a dictionary to use for the hash'/>
</function>
- <functype name='xmlHashDeallocator' file='hash'>
+ <functype name='xmlHashDeallocator' file='hash' module='hash'>
<info>Callback to free data from a hash.</info>
<return type='void'/>
<arg name='payload' type='void *' info='the data in the hash'/>
<arg name='name' type='xmlChar *' info='the name associated'/>
</functype>
- <function name='xmlHashFree' file='hash'>
+ <function name='xmlHashFree' file='hash' module='hash'>
<info>Free the hash @table and its contents. The userdata is deallocated with @f if provided.</info>
<return type='void'/>
<arg name='table' type='xmlHashTablePtr' info='the hash table'/>
<arg name='f' type='xmlHashDeallocator' info='the deallocator function for items in the hash'/>
</function>
- <function name='xmlHashLookup' file='hash'>
+ <function name='xmlHashLookup' file='hash' module='hash'>
<info>Find the userdata specified by the @name.</info>
<return type='void *' info='the pointer to the userdata'/>
<arg name='table' type='xmlHashTablePtr' info='the hash table'/>
<arg name='name' type='const xmlChar *' info='the name of the userdata'/>
</function>
- <function name='xmlHashLookup2' file='hash'>
+ <function name='xmlHashLookup2' file='hash' module='hash'>
<info>Find the userdata specified by the (@name, @name2) tuple.</info>
<return type='void *' info='the pointer to the userdata'/>
<arg name='table' type='xmlHashTablePtr' info='the hash table'/>
<arg name='name' type='const xmlChar *' info='the name of the userdata'/>
<arg name='name2' type='const xmlChar *' info='a second name of the userdata'/>
</function>
- <function name='xmlHashLookup3' file='hash'>
+ <function name='xmlHashLookup3' file='hash' module='hash'>
<info>Find the userdata specified by the (@name, @name2, @name3) tuple.</info>
<return type='void *' info='the a pointer to the userdata'/>
<arg name='table' type='xmlHashTablePtr' info='the hash table'/>
@@ -9496,14 +9516,14 @@ actually an xmlCharEncoding'/>
<arg name='name2' type='const xmlChar *' info='a second name of the userdata'/>
<arg name='name3' type='const xmlChar *' info='a third name of the userdata'/>
</function>
- <function name='xmlHashQLookup' file='hash'>
+ <function name='xmlHashQLookup' file='hash' module='hash'>
<info>Find the userdata specified by the QName @prefix:@name/@name.</info>
<return type='void *' info='the pointer to the userdata'/>
<arg name='table' type='xmlHashTablePtr' info='the hash table'/>
<arg name='prefix' type='const xmlChar *' info='the prefix of the userdata'/>
<arg name='name' type='const xmlChar *' info='the name of the userdata'/>
</function>
- <function name='xmlHashQLookup2' file='hash'>
+ <function name='xmlHashQLookup2' file='hash' module='hash'>
<info>Find the userdata specified by the QNames tuple</info>
<return type='void *' info='the pointer to the userdata'/>
<arg name='table' type='xmlHashTablePtr' info='the hash table'/>
@@ -9512,7 +9532,7 @@ actually an xmlCharEncoding'/>
<arg name='prefix2' type='const xmlChar *' info='the second prefix of the userdata'/>
<arg name='name2' type='const xmlChar *' info='a second name of the userdata'/>
</function>
- <function name='xmlHashQLookup3' file='hash'>
+ <function name='xmlHashQLookup3' file='hash' module='hash'>
<info>Find the userdata specified by the (@name, @name2, @name3) tuple.</info>
<return type='void *' info='the a pointer to the userdata'/>
<arg name='table' type='xmlHashTablePtr' info='the hash table'/>
@@ -9523,14 +9543,14 @@ actually an xmlCharEncoding'/>
<arg name='prefix3' type='const xmlChar *' info='the third prefix of the userdata'/>
<arg name='name3' type='const xmlChar *' info='a third name of the userdata'/>
</function>
- <function name='xmlHashRemoveEntry' file='hash'>
+ <function name='xmlHashRemoveEntry' file='hash' module='hash'>
<info>Find the userdata specified by the @name and remove it from the hash @table. Existing userdata for this tuple will be removed and freed with @f.</info>
<return type='int' info='0 if the removal succeeded and -1 in case of error or not found.'/>
<arg name='table' type='xmlHashTablePtr' info='the hash table'/>
<arg name='name' type='const xmlChar *' info='the name of the userdata'/>
<arg name='f' type='xmlHashDeallocator' info='the deallocator function for removed item (if any)'/>
</function>
- <function name='xmlHashRemoveEntry2' file='hash'>
+ <function name='xmlHashRemoveEntry2' file='hash' module='hash'>
<info>Find the userdata specified by the (@name, @name2) tuple and remove it from the hash @table. Existing userdata for this tuple will be removed and freed with @f.</info>
<return type='int' info='0 if the removal succeeded and -1 in case of error or not found.'/>
<arg name='table' type='xmlHashTablePtr' info='the hash table'/>
@@ -9538,7 +9558,7 @@ actually an xmlCharEncoding'/>
<arg name='name2' type='const xmlChar *' info='a second name of the userdata'/>
<arg name='f' type='xmlHashDeallocator' info='the deallocator function for removed item (if any)'/>
</function>
- <function name='xmlHashRemoveEntry3' file='hash'>
+ <function name='xmlHashRemoveEntry3' file='hash' module='hash'>
<info>Find the userdata specified by the (@name, @name2, @name3) tuple and remove it from the hash @table. Existing userdata for this tuple will be removed and freed with @f.</info>
<return type='int' info='0 if the removal succeeded and -1 in case of error or not found.'/>
<arg name='table' type='xmlHashTablePtr' info='the hash table'/>
@@ -9547,14 +9567,14 @@ actually an xmlCharEncoding'/>
<arg name='name3' type='const xmlChar *' info='a third name of the userdata'/>
<arg name='f' type='xmlHashDeallocator' info='the deallocator function for removed item (if any)'/>
</function>
- <function name='xmlHashScan' file='hash'>
+ <function name='xmlHashScan' file='hash' module='hash'>
<info>Scan the hash @table and applied @f to each value.</info>
<return type='void'/>
<arg name='table' type='xmlHashTablePtr' info='the hash table'/>
<arg name='f' type='xmlHashScanner' info='the scanner function for items in the hash'/>
<arg name='data' type='void *' info='extra data passed to f'/>
</function>
- <function name='xmlHashScan3' file='hash'>
+ <function name='xmlHashScan3' file='hash' module='hash'>
<info>Scan the hash @table and applied @f to each value matching (@name, @name2, @name3) tuple. If one of the names is null, the comparison is considered to match.</info>
<return type='void'/>
<arg name='table' type='xmlHashTablePtr' info='the hash table'/>
@@ -9564,14 +9584,14 @@ actually an xmlCharEncoding'/>
<arg name='f' type='xmlHashScanner' info='the scanner function for items in the hash'/>
<arg name='data' type='void *' info='extra data passed to f'/>
</function>
- <function name='xmlHashScanFull' file='hash'>
+ <function name='xmlHashScanFull' file='hash' module='hash'>
<info>Scan the hash @table and applied @f to each value.</info>
<return type='void'/>
<arg name='table' type='xmlHashTablePtr' info='the hash table'/>
<arg name='f' type='xmlHashScannerFull' info='the scanner function for items in the hash'/>
<arg name='data' type='void *' info='extra data passed to f'/>
</function>
- <function name='xmlHashScanFull3' file='hash'>
+ <function name='xmlHashScanFull3' file='hash' module='hash'>
<info>Scan the hash @table and applied @f to each value matching (@name, @name2, @name3) tuple. If one of the names is null, the comparison is considered to match.</info>
<return type='void'/>
<arg name='table' type='xmlHashTablePtr' info='the hash table'/>
@@ -9581,14 +9601,14 @@ actually an xmlCharEncoding'/>
<arg name='f' type='xmlHashScannerFull' info='the scanner function for items in the hash'/>
<arg name='data' type='void *' info='extra data passed to f'/>
</function>
- <functype name='xmlHashScanner' file='hash'>
+ <functype name='xmlHashScanner' file='hash' module='hash'>
<info>Callback when scanning data in a hash with the simple scanner.</info>
<return type='void'/>
<arg name='payload' type='void *' info='the data in the hash'/>
<arg name='data' type='void *' info='extra scannner data'/>
<arg name='name' type='xmlChar *' info='the name associated'/>
</functype>
- <functype name='xmlHashScannerFull' file='hash'>
+ <functype name='xmlHashScannerFull' file='hash' module='hash'>
<info>Callback when scanning data in a hash with the full scanner.</info>
<return type='void'/>
<arg name='payload' type='void *' info='the data in the hash'/>
@@ -9597,12 +9617,12 @@ actually an xmlCharEncoding'/>
<arg name='name2' type='const xmlChar *' info='the second name associated'/>
<arg name='name3' type='const xmlChar *' info='the third name associated'/>
</functype>
- <function name='xmlHashSize' file='hash'>
+ <function name='xmlHashSize' file='hash' module='hash'>
<info>Query the number of elements installed in the hash @table.</info>
<return type='int' info='the number of elements in the hash table or -1 in case of error'/>
<arg name='table' type='xmlHashTablePtr' info='the hash table'/>
</function>
- <function name='xmlHashUpdateEntry' file='hash'>
+ <function name='xmlHashUpdateEntry' file='hash' module='hash'>
<info>Add the @userdata to the hash @table. This can later be retrieved by using the @name. Existing entry for this @name will be removed and freed with @f if found.</info>
<return type='int' info='0 the addition succeeded and -1 in case of error.'/>
<arg name='table' type='xmlHashTablePtr' info='the hash table'/>
@@ -9610,7 +9630,7 @@ actually an xmlCharEncoding'/>
<arg name='userdata' type='void *' info='a pointer to the userdata'/>
<arg name='f' type='xmlHashDeallocator' info='the deallocator function for replaced item (if any)'/>
</function>
- <function name='xmlHashUpdateEntry2' file='hash'>
+ <function name='xmlHashUpdateEntry2' file='hash' module='hash'>
<info>Add the @userdata to the hash @table. This can later be retrieved by using the (@name, @name2) tuple. Existing entry for this tuple will be removed and freed with @f if found.</info>
<return type='int' info='0 the addition succeeded and -1 in case of error.'/>
<arg name='table' type='xmlHashTablePtr' info='the hash table'/>
@@ -9619,7 +9639,7 @@ actually an xmlCharEncoding'/>
<arg name='userdata' type='void *' info='a pointer to the userdata'/>
<arg name='f' type='xmlHashDeallocator' info='the deallocator function for replaced item (if any)'/>
</function>
- <function name='xmlHashUpdateEntry3' file='hash'>
+ <function name='xmlHashUpdateEntry3' file='hash' module='hash'>
<info>Add the @userdata to the hash @table. This can later be retrieved by using the tuple (@name, @name2, @name3). Existing entry for this tuple will be removed and freed with @f if found.</info>
<return type='int' info='0 the addition succeeded and -1 in case of error.'/>
<arg name='table' type='xmlHashTablePtr' info='the hash table'/>
@@ -9629,25 +9649,25 @@ actually an xmlCharEncoding'/>
<arg name='userdata' type='void *' info='a pointer to the userdata'/>
<arg name='f' type='xmlHashDeallocator' info='the deallocator function for replaced item (if any)'/>
</function>
- <function name='xmlIOFTPClose' file='xmlIO'>
+ <function name='xmlIOFTPClose' file='xmlIO' module='xmlIO'>
<cond>defined(LIBXML_FTP_ENABLED)</cond>
<info>Close an FTP I/O channel</info>
<return type='int' info='0'/>
<arg name='context' type='void *' info='the I/O context'/>
</function>
- <function name='xmlIOFTPMatch' file='xmlIO'>
+ <function name='xmlIOFTPMatch' file='xmlIO' module='xmlIO'>
<cond>defined(LIBXML_FTP_ENABLED)</cond>
<info>check if the URI matches an FTP one</info>
<return type='int' info='1 if matches, 0 otherwise'/>
<arg name='filename' type='const char *' info='the URI for matching'/>
</function>
- <function name='xmlIOFTPOpen' file='xmlIO'>
+ <function name='xmlIOFTPOpen' file='xmlIO' module='xmlIO'>
<cond>defined(LIBXML_FTP_ENABLED)</cond>
<info>open an FTP I/O channel</info>
<return type='void *' info='an I/O context or NULL in case of error'/>
<arg name='filename' type='const char *' info='the URI for matching'/>
</function>
- <function name='xmlIOFTPRead' file='xmlIO'>
+ <function name='xmlIOFTPRead' file='xmlIO' module='xmlIO'>
<cond>defined(LIBXML_FTP_ENABLED)</cond>
<info>Read @len bytes to @buffer from the I/O channel.</info>
<return type='int' info='the number of bytes written'/>
@@ -9655,32 +9675,32 @@ actually an xmlCharEncoding'/>
<arg name='buffer' type='char *' info='where to drop data'/>
<arg name='len' type='int' info='number of bytes to write'/>
</function>
- <function name='xmlIOHTTPClose' file='xmlIO'>
+ <function name='xmlIOHTTPClose' file='xmlIO' module='xmlIO'>
<cond>defined(LIBXML_HTTP_ENABLED)</cond>
<info>Close an HTTP I/O channel</info>
<return type='int' info='0'/>
<arg name='context' type='void *' info='the I/O context'/>
</function>
- <function name='xmlIOHTTPMatch' file='xmlIO'>
+ <function name='xmlIOHTTPMatch' file='xmlIO' module='xmlIO'>
<cond>defined(LIBXML_HTTP_ENABLED)</cond>
<info>check if the URI matches an HTTP one</info>
<return type='int' info='1 if matches, 0 otherwise'/>
<arg name='filename' type='const char *' info='the URI for matching'/>
</function>
- <function name='xmlIOHTTPOpen' file='xmlIO'>
+ <function name='xmlIOHTTPOpen' file='xmlIO' module='xmlIO'>
<cond>defined(LIBXML_HTTP_ENABLED)</cond>
<info>open an HTTP I/O channel</info>
<return type='void *' info='an I/O context or NULL in case of error'/>
<arg name='filename' type='const char *' info='the URI for matching'/>
</function>
- <function name='xmlIOHTTPOpenW' file='xmlIO'>
+ <function name='xmlIOHTTPOpenW' file='xmlIO' module='xmlIO'>
<cond>defined(LIBXML_HTTP_ENABLED) &amp;&amp; defined(LIBXML_OUTPUT_ENABLED)</cond>
<info>Open a temporary buffer to collect the document for a subsequent HTTP POST request. Non-static as is called from the output buffer creation routine.</info>
<return type='void *' info='an I/O context or NULL in case of error.'/>
<arg name='post_uri' type='const char *' info='The destination URI for the document'/>
<arg name='compression' type='int' info='The compression desired for the document.'/>
</function>
- <function name='xmlIOHTTPRead' file='xmlIO'>
+ <function name='xmlIOHTTPRead' file='xmlIO' module='xmlIO'>
<cond>defined(LIBXML_HTTP_ENABLED)</cond>
<info>Read @len bytes to @buffer from the I/O channel.</info>
<return type='int' info='the number of bytes written'/>
@@ -9688,7 +9708,7 @@ actually an xmlCharEncoding'/>
<arg name='buffer' type='char *' info='where to drop data'/>
<arg name='len' type='int' info='number of bytes to write'/>
</function>
- <function name='xmlIOParseDTD' file='parser'>
+ <function name='xmlIOParseDTD' file='parser' module='parser'>
<cond>defined(LIBXML_VALID_ENABLED)</cond>
<info>Load and parse a DTD</info>
<return type='xmlDtdPtr' info='the resulting xmlDtdPtr or NULL in case of error. @input will be freed at parsing end.'/>
@@ -9696,408 +9716,408 @@ actually an xmlCharEncoding'/>
<arg name='input' type='xmlParserInputBufferPtr' info='an Input Buffer'/>
<arg name='enc' type='xmlCharEncoding' info='the charset encoding if known'/>
</function>
- <function name='xmlInitCharEncodingHandlers' file='encoding'>
+ <function name='xmlInitCharEncodingHandlers' file='encoding' module='encoding'>
<info>Initialize the char encoding support, it registers the default encoding supported. NOTE: while public, this function usually doesn&apos;t need to be called in normal processing.</info>
<return type='void'/>
</function>
- <function name='xmlInitGlobals' file='globals'>
+ <function name='xmlInitGlobals' file='globals' module='globals'>
<info>Additional initialisation for multi-threading</info>
<return type='void'/>
</function>
- <function name='xmlInitMemory' file='xmlmemory'>
+ <function name='xmlInitMemory' file='xmlmemory' module='xmlmemory'>
<info>Initialize the memory layer.</info>
<return type='int' info='0 on success'/>
</function>
- <function name='xmlInitNodeInfoSeq' file='parser'>
+ <function name='xmlInitNodeInfoSeq' file='parser' module='parserInternals'>
<info>-- Initialize (set to initial state) node info sequence</info>
<return type='void'/>
<arg name='seq' type='xmlParserNodeInfoSeqPtr' info='a node info sequence pointer'/>
</function>
- <function name='xmlInitParser' file='parser'>
+ <function name='xmlInitParser' file='parser' module='parser'>
<info>Initialization function for the XML parser. This is not reentrant. Call once before processing in case of use in multithreaded programs.</info>
<return type='void'/>
</function>
- <function name='xmlInitParserCtxt' file='parser'>
+ <function name='xmlInitParserCtxt' file='parser' module='parserInternals'>
<info>Initialize a parser context</info>
<return type='int' info='0 in case of success and -1 in case of error'/>
<arg name='ctxt' type='xmlParserCtxtPtr' info='an XML parser context'/>
</function>
- <function name='xmlInitThreads' file='threads'>
+ <function name='xmlInitThreads' file='threads' module='threads'>
<info>xmlInitThreads() is used to to initialize all the thread related data of the libxml2 library.</info>
<return type='void'/>
</function>
- <function name='xmlInitializeCatalog' file='catalog'>
+ <function name='xmlInitializeCatalog' file='catalog' module='catalog'>
<cond>defined(LIBXML_CATALOG_ENABLED)</cond>
<info>Do the catalog initialization. this function is not thread safe, catalog initialization should preferably be done once at startup</info>
<return type='void'/>
</function>
- <function name='xmlInitializeGlobalState' file='globals'>
+ <function name='xmlInitializeGlobalState' file='globals' module='globals'>
<info>xmlInitializeGlobalState() initialize a global state with all the default values of the library.</info>
<return type='void'/>
<arg name='gs' type='xmlGlobalStatePtr' info='a pointer to a newly allocated global state'/>
</function>
- <function name='xmlInitializePredefinedEntities' file='entities'>
+ <function name='xmlInitializePredefinedEntities' file='entities' module='legacy'>
<cond>defined(LIBXML_LEGACY_ENABLED)</cond>
<info>Set up the predefined entities. Deprecated call</info>
<return type='void'/>
</function>
- <functype name='xmlInputCloseCallback' file='xmlIO'>
+ <functype name='xmlInputCloseCallback' file='xmlIO' module='xmlIO'>
<info>Callback used in the I/O Input API to close the resource</info>
<return type='int' info='0 or -1 in case of error'/>
<arg name='context' type='void *' info='an Input context'/>
</functype>
- <functype name='xmlInputMatchCallback' file='xmlIO'>
+ <functype name='xmlInputMatchCallback' file='xmlIO' module='xmlIO'>
<info>Callback used in the I/O Input API to detect if the current handler can provide input fonctionnalities for this resource.</info>
<return type='int' info='1 if yes and 0 if another Input module should be used'/>
<arg name='filename' type='char const *' info='the filename or URI'/>
</functype>
- <functype name='xmlInputOpenCallback' file='xmlIO'>
+ <functype name='xmlInputOpenCallback' file='xmlIO' module='xmlIO'>
<info>Callback used in the I/O Input API to open the resource</info>
<return type='void *' info='an Input context or NULL in case or error'/>
<arg name='filename' type='char const *' info='the filename or URI'/>
</functype>
- <functype name='xmlInputReadCallback' file='xmlIO'>
+ <functype name='xmlInputReadCallback' file='xmlIO' module='xmlIO'>
<info>Callback used in the I/O Input API to read the resource</info>
<return type='int' info='the number of bytes read or -1 in case of error'/>
<arg name='context' type='void *' info='an Input context'/>
<arg name='buffer' type='char *' info='the buffer to store data read'/>
<arg name='len' type='int' info='the length of the buffer in bytes'/>
</functype>
- <function name='xmlIsBaseChar' file='chvalid'>
+ <function name='xmlIsBaseChar' file='chvalid' module='chvalid'>
<info>This function is DEPRECATED. Use xmlIsBaseChar_ch or xmlIsBaseCharQ instead</info>
<return type='int' info='true if argument valid, false otherwise'/>
<arg name='ch' type='unsigned int' info='character to validate'/>
</function>
- <function name='xmlIsBlank' file='chvalid'>
+ <function name='xmlIsBlank' file='chvalid' module='chvalid'>
<info>This function is DEPRECATED. Use xmlIsBlank_ch or xmlIsBlankQ instead</info>
<return type='int' info='true if argument valid, false otherwise'/>
<arg name='ch' type='unsigned int' info='character to validate'/>
</function>
- <function name='xmlIsBlankNode' file='tree'>
+ <function name='xmlIsBlankNode' file='tree' module='tree'>
<info>Checks whether this node is an empty or whitespace only (and possibly ignorable) text-node.</info>
<return type='int' info='1 yes, 0 no'/>
<arg name='node' type='xmlNodePtr' info='the node'/>
</function>
- <function name='xmlIsChar' file='chvalid'>
+ <function name='xmlIsChar' file='chvalid' module='chvalid'>
<info>This function is DEPRECATED. Use xmlIsChar_ch or xmlIsCharQ instead</info>
<return type='int' info='true if argument valid, false otherwise'/>
<arg name='ch' type='unsigned int' info='character to validate'/>
</function>
- <function name='xmlIsCombining' file='chvalid'>
+ <function name='xmlIsCombining' file='chvalid' module='chvalid'>
<info>This function is DEPRECATED. Use xmlIsCombiningQ instead</info>
<return type='int' info='true if argument valid, false otherwise'/>
<arg name='ch' type='unsigned int' info='character to validate'/>
</function>
- <function name='xmlIsDigit' file='chvalid'>
+ <function name='xmlIsDigit' file='chvalid' module='chvalid'>
<info>This function is DEPRECATED. Use xmlIsDigit_ch or xmlIsDigitQ instead</info>
<return type='int' info='true if argument valid, false otherwise'/>
<arg name='ch' type='unsigned int' info='character to validate'/>
</function>
- <function name='xmlIsExtender' file='chvalid'>
+ <function name='xmlIsExtender' file='chvalid' module='chvalid'>
<info>This function is DEPRECATED. Use xmlIsExtender_ch or xmlIsExtenderQ instead</info>
<return type='int' info='true if argument valid, false otherwise'/>
<arg name='ch' type='unsigned int' info='character to validate'/>
</function>
- <function name='xmlIsID' file='valid'>
+ <function name='xmlIsID' file='valid' module='valid'>
<info>Determine whether an attribute is of type ID. In case we have DTD(s) then this is done if DTD loading has been requested. In the case of HTML documents parsed with the HTML parser, then ID detection is done systematically.</info>
<return type='int' info='0 or 1 depending on the lookup result'/>
<arg name='doc' type='xmlDocPtr' info='the document'/>
<arg name='elem' type='xmlNodePtr' info='the element carrying the attribute'/>
<arg name='attr' type='xmlAttrPtr' info='the attribute'/>
</function>
- <function name='xmlIsIdeographic' file='chvalid'>
+ <function name='xmlIsIdeographic' file='chvalid' module='chvalid'>
<info>This function is DEPRECATED. Use xmlIsIdeographicQ instead</info>
<return type='int' info='true if argument valid, false otherwise'/>
<arg name='ch' type='unsigned int' info='character to validate'/>
</function>
- <function name='xmlIsLetter' file='parserInternals'>
+ <function name='xmlIsLetter' file='parserInternals' module='parserInternals'>
<info>Check whether the character is allowed by the production [84] Letter ::= BaseChar | Ideographic</info>
<return type='int' info='0 if not, non-zero otherwise'/>
<arg name='c' type='int' info='an unicode character (int)'/>
</function>
- <function name='xmlIsMainThread' file='threads'>
+ <function name='xmlIsMainThread' file='threads' module='threads'>
<info>xmlIsMainThread() check whether the current thread is the main thread.</info>
<return type='int' info='1 if the current thread is the main thread, 0 otherwise'/>
</function>
- <function name='xmlIsMixedElement' file='valid'>
+ <function name='xmlIsMixedElement' file='valid' module='valid'>
<info>Search in the DtDs whether an element accept Mixed content (or ANY) basically if it is supposed to accept text childs</info>
<return type='int' info='0 if no, 1 if yes, and -1 if no element description is available'/>
<arg name='doc' type='xmlDocPtr' info='the document'/>
<arg name='name' type='const xmlChar *' info='the element name'/>
</function>
- <function name='xmlIsPubidChar' file='chvalid'>
+ <function name='xmlIsPubidChar' file='chvalid' module='chvalid'>
<info>This function is DEPRECATED. Use xmlIsPubidChar_ch or xmlIsPubidCharQ instead</info>
<return type='int' info='true if argument valid, false otherwise'/>
<arg name='ch' type='unsigned int' info='character to validate'/>
</function>
- <function name='xmlIsRef' file='valid'>
+ <function name='xmlIsRef' file='valid' module='valid'>
<info>Determine whether an attribute is of type Ref. In case we have DTD(s) then this is simple, otherwise we use an heuristic: name Ref (upper or lowercase).</info>
<return type='int' info='0 or 1 depending on the lookup result'/>
<arg name='doc' type='xmlDocPtr' info='the document'/>
<arg name='elem' type='xmlNodePtr' info='the element carrying the attribute'/>
<arg name='attr' type='xmlAttrPtr' info='the attribute'/>
</function>
- <function name='xmlIsXHTML' file='tree'>
+ <function name='xmlIsXHTML' file='tree' module='xmlsave'>
<info>Try to find if the document correspond to an XHTML DTD</info>
<return type='int' info='1 if true, 0 if not and -1 in case of error'/>
<arg name='systemID' type='const xmlChar *' info='the system identifier'/>
<arg name='publicID' type='const xmlChar *' info='the public identifier'/>
</function>
- <function name='xmlKeepBlanksDefault' file='parser'>
+ <function name='xmlKeepBlanksDefault' file='parser' module='parserInternals'>
<info>Set and return the previous value for default blanks text nodes support. The 1.x version of the parser used an heuristic to try to detect ignorable white spaces. As a result the SAX callback was generating xmlSAX2IgnorableWhitespace() callbacks instead of characters() one, and when using the DOM output text nodes containing those blanks were not generated. The 2.x and later version will switch to the XML standard way and ignorableWhitespace() are only generated when running the parser in validating mode and when the current element doesn&apos;t allow CDATA or mixed content. This function is provided as a way to force the standard behavior on 1.X libs and to switch back to the old mode for compatibility when running 1.X client code on 2.X . Upgrade of 1.X code should be done by using xmlIsBlankNode() commodity function to detect the &quot;empty&quot; nodes generated. This value also affect autogeneration of indentation when saving code if blanks sections are kept, indentation is not generated.</info>
<return type='int' info='the last value for 0 for no substitution, 1 for substitution.'/>
<arg name='val' type='int' info='int 0 or 1'/>
</function>
- <function name='xmlLineNumbersDefault' file='parser'>
+ <function name='xmlLineNumbersDefault' file='parser' module='parserInternals'>
<info>Set and return the previous value for enabling line numbers in elements contents. This may break on old application and is turned off by default.</info>
<return type='int' info='the last value for 0 for no substitution, 1 for substitution.'/>
<arg name='val' type='int' info='int 0 or 1'/>
</function>
- <function name='xmlLinkGetData' file='list'>
+ <function name='xmlLinkGetData' file='list' module='list'>
<info>See Returns.</info>
<return type='void *' info='a pointer to the data referenced from this link'/>
<arg name='lk' type='xmlLinkPtr' info='a link'/>
</function>
- <function name='xmlListAppend' file='list'>
+ <function name='xmlListAppend' file='list' module='list'>
<info>Insert data in the ordered list at the end for this value</info>
<return type='int' info='0 in case of success, 1 in case of failure'/>
<arg name='l' type='xmlListPtr' info='a list'/>
<arg name='data' type='void *' info='the data'/>
</function>
- <function name='xmlListClear' file='list'>
+ <function name='xmlListClear' file='list' module='list'>
<info>Remove the all data in the list</info>
<return type='void'/>
<arg name='l' type='xmlListPtr' info='a list'/>
</function>
- <function name='xmlListCopy' file='list'>
+ <function name='xmlListCopy' file='list' module='list'>
<info>Move all the element from the old list in the new list</info>
<return type='int' info='0 in case of success 1 in case of error'/>
<arg name='cur' type='xmlListPtr' info='the new list'/>
<arg name='old' type='const xmlListPtr' info='the old list'/>
</function>
- <function name='xmlListCreate' file='list'>
+ <function name='xmlListCreate' file='list' module='list'>
<info>Create a new list</info>
<return type='xmlListPtr' info='the new list or NULL in case of error'/>
<arg name='deallocator' type='xmlListDeallocator' info='an optional deallocator function'/>
<arg name='compare' type='xmlListDataCompare' info='an optional comparison function'/>
</function>
- <functype name='xmlListDataCompare' file='list'>
+ <functype name='xmlListDataCompare' file='list' module='list'>
<info>Callback function used to compare 2 data.</info>
<return type='int' info='0 is equality, -1 or 1 otherwise depending on the ordering.'/>
<arg name='data0' type='const void *' info='the first data'/>
<arg name='data1' type='const void *' info='the second data'/>
</functype>
- <functype name='xmlListDeallocator' file='list'>
+ <functype name='xmlListDeallocator' file='list' module='list'>
<info>Callback function used to free data from a list.</info>
<return type='void'/>
<arg name='lk' type='xmlLinkPtr' info='the data to deallocate'/>
</functype>
- <function name='xmlListDelete' file='list'>
+ <function name='xmlListDelete' file='list' module='list'>
<info>Deletes the list and its associated data</info>
<return type='void'/>
<arg name='l' type='xmlListPtr' info='a list'/>
</function>
- <function name='xmlListDup' file='list'>
+ <function name='xmlListDup' file='list' module='list'>
<info>Duplicate the list</info>
<return type='xmlListPtr' info='a new copy of the list or NULL in case of error'/>
<arg name='old' type='const xmlListPtr' info='the list'/>
</function>
- <function name='xmlListEmpty' file='list'>
+ <function name='xmlListEmpty' file='list' module='list'>
<info>Is the list empty ?</info>
<return type='int' info='1 if the list is empty, 0 if not empty and -1 in case of error'/>
<arg name='l' type='xmlListPtr' info='a list'/>
</function>
- <function name='xmlListEnd' file='list'>
+ <function name='xmlListEnd' file='list' module='list'>
<info>Get the last element in the list</info>
<return type='xmlLinkPtr' info='the last element in the list, or NULL'/>
<arg name='l' type='xmlListPtr' info='a list'/>
</function>
- <function name='xmlListFront' file='list'>
+ <function name='xmlListFront' file='list' module='list'>
<info>Get the first element in the list</info>
<return type='xmlLinkPtr' info='the first element in the list, or NULL'/>
<arg name='l' type='xmlListPtr' info='a list'/>
</function>
- <function name='xmlListInsert' file='list'>
+ <function name='xmlListInsert' file='list' module='list'>
<info>Insert data in the ordered list at the beginning for this value</info>
<return type='int' info='0 in case of success, 1 in case of failure'/>
<arg name='l' type='xmlListPtr' info='a list'/>
<arg name='data' type='void *' info='the data'/>
</function>
- <function name='xmlListMerge' file='list'>
+ <function name='xmlListMerge' file='list' module='list'>
<info>include all the elements of the second list in the first one and clear the second list</info>
<return type='void'/>
<arg name='l1' type='xmlListPtr' info='the original list'/>
<arg name='l2' type='xmlListPtr' info='the new list'/>
</function>
- <function name='xmlListPopBack' file='list'>
+ <function name='xmlListPopBack' file='list' module='list'>
<info>Removes the last element in the list</info>
<return type='void'/>
<arg name='l' type='xmlListPtr' info='a list'/>
</function>
- <function name='xmlListPopFront' file='list'>
+ <function name='xmlListPopFront' file='list' module='list'>
<info>Removes the first element in the list</info>
<return type='void'/>
<arg name='l' type='xmlListPtr' info='a list'/>
</function>
- <function name='xmlListPushBack' file='list'>
+ <function name='xmlListPushBack' file='list' module='list'>
<info>add the new data at the end of the list</info>
<return type='int' info='1 if successful, 0 otherwise'/>
<arg name='l' type='xmlListPtr' info='a list'/>
<arg name='data' type='void *' info='new data'/>
</function>
- <function name='xmlListPushFront' file='list'>
+ <function name='xmlListPushFront' file='list' module='list'>
<info>add the new data at the beginning of the list</info>
<return type='int' info='1 if successful, 0 otherwise'/>
<arg name='l' type='xmlListPtr' info='a list'/>
<arg name='data' type='void *' info='new data'/>
</function>
- <function name='xmlListRemoveAll' file='list'>
+ <function name='xmlListRemoveAll' file='list' module='list'>
<info>Remove the all instance associated to data in the list</info>
<return type='int' info='the number of deallocation, or 0 if not found'/>
<arg name='l' type='xmlListPtr' info='a list'/>
<arg name='data' type='void *' info='list data'/>
</function>
- <function name='xmlListRemoveFirst' file='list'>
+ <function name='xmlListRemoveFirst' file='list' module='list'>
<info>Remove the first instance associated to data in the list</info>
<return type='int' info='1 if a deallocation occured, or 0 if not found'/>
<arg name='l' type='xmlListPtr' info='a list'/>
<arg name='data' type='void *' info='list data'/>
</function>
- <function name='xmlListRemoveLast' file='list'>
+ <function name='xmlListRemoveLast' file='list' module='list'>
<info>Remove the last instance associated to data in the list</info>
<return type='int' info='1 if a deallocation occured, or 0 if not found'/>
<arg name='l' type='xmlListPtr' info='a list'/>
<arg name='data' type='void *' info='list data'/>
</function>
- <function name='xmlListReverse' file='list'>
+ <function name='xmlListReverse' file='list' module='list'>
<info>Reverse the order of the elements in the list</info>
<return type='void'/>
<arg name='l' type='xmlListPtr' info='a list'/>
</function>
- <function name='xmlListReverseSearch' file='list'>
+ <function name='xmlListReverseSearch' file='list' module='list'>
<info>Search the list in reverse order for an existing value of @data</info>
<return type='void *' info='the value associated to @data or NULL in case of error'/>
<arg name='l' type='xmlListPtr' info='a list'/>
<arg name='data' type='void *' info='a search value'/>
</function>
- <function name='xmlListReverseWalk' file='list'>
+ <function name='xmlListReverseWalk' file='list' module='list'>
<info>Walk all the element of the list in reverse order and apply the walker function to it</info>
<return type='void'/>
<arg name='l' type='xmlListPtr' info='a list'/>
<arg name='walker' type='xmlListWalker' info='a processing function'/>
<arg name='user' type='const void *' info='a user parameter passed to the walker function'/>
</function>
- <function name='xmlListSearch' file='list'>
+ <function name='xmlListSearch' file='list' module='list'>
<info>Search the list for an existing value of @data</info>
<return type='void *' info='the value associated to @data or NULL in case of error'/>
<arg name='l' type='xmlListPtr' info='a list'/>
<arg name='data' type='void *' info='a search value'/>
</function>
- <function name='xmlListSize' file='list'>
+ <function name='xmlListSize' file='list' module='list'>
<info>Get the number of elements in the list</info>
<return type='int' info='the number of elements in the list or -1 in case of error'/>
<arg name='l' type='xmlListPtr' info='a list'/>
</function>
- <function name='xmlListSort' file='list'>
+ <function name='xmlListSort' file='list' module='list'>
<info>Sort all the elements in the list</info>
<return type='void'/>
<arg name='l' type='xmlListPtr' info='a list'/>
</function>
- <function name='xmlListWalk' file='list'>
+ <function name='xmlListWalk' file='list' module='list'>
<info>Walk all the element of the first from first to last and apply the walker function to it</info>
<return type='void'/>
<arg name='l' type='xmlListPtr' info='a list'/>
<arg name='walker' type='xmlListWalker' info='a processing function'/>
<arg name='user' type='const void *' info='a user parameter passed to the walker function'/>
</function>
- <functype name='xmlListWalker' file='list'>
+ <functype name='xmlListWalker' file='list' module='list'>
<info>Callback function used when walking a list with xmlListWalk().</info>
<return type='int' info='0 to stop walking the list, 1 otherwise.'/>
<arg name='data' type='const void *' info='the data found in the list'/>
<arg name='user' type='const void *' info='extra user provided data to the walker'/>
</functype>
- <function name='xmlLoadACatalog' file='catalog'>
+ <function name='xmlLoadACatalog' file='catalog' module='catalog'>
<cond>defined(LIBXML_CATALOG_ENABLED)</cond>
<info>Load the catalog and build the associated data structures. This can be either an XML Catalog or an SGML Catalog It will recurse in SGML CATALOG entries. On the other hand XML Catalogs are not handled recursively.</info>
<return type='xmlCatalogPtr' info='the catalog parsed or NULL in case of error'/>
<arg name='filename' type='const char *' info='a file path'/>
</function>
- <function name='xmlLoadCatalog' file='catalog'>
+ <function name='xmlLoadCatalog' file='catalog' module='catalog'>
<cond>defined(LIBXML_CATALOG_ENABLED)</cond>
<info>Load the catalog and makes its definitions effective for the default external entity loader. It will recurse in SGML CATALOG entries. this function is not thread safe, catalog initialization should preferably be done once at startup</info>
<return type='int' info='0 in case of success -1 in case of error'/>
<arg name='filename' type='const char *' info='a file path'/>
</function>
- <function name='xmlLoadCatalogs' file='catalog'>
+ <function name='xmlLoadCatalogs' file='catalog' module='catalog'>
<cond>defined(LIBXML_CATALOG_ENABLED)</cond>
<info>Load the catalogs and makes their definitions effective for the default external entity loader. this function is not thread safe, catalog initialization should preferably be done once at startup</info>
<return type='void'/>
<arg name='pathss' type='const char *' info='a list of directories separated by a colon or a space.'/>
</function>
- <function name='xmlLoadExternalEntity' file='parser'>
+ <function name='xmlLoadExternalEntity' file='parser' module='xmlIO'>
<info>Load an external entity, note that the use of this function for unparsed entities may generate problems TODO: a more generic External entity API must be designed</info>
<return type='xmlParserInputPtr' info='the xmlParserInputPtr or NULL'/>
<arg name='URL' type='const char *' info='the URL for the entity to load'/>
<arg name='ID' type='const char *' info='the Public ID for the entity to load'/>
<arg name='ctxt' type='xmlParserCtxtPtr' info='the context in which the entity is called or NULL'/>
</function>
- <function name='xmlLoadSGMLSuperCatalog' file='catalog'>
+ <function name='xmlLoadSGMLSuperCatalog' file='catalog' module='catalog'>
<cond>defined(LIBXML_CATALOG_ENABLED)</cond>
<info>Load an SGML super catalog. It won&apos;t expand CATALOG or DELEGATE references. This is only needed for manipulating SGML Super Catalogs like adding and removing CATALOG or DELEGATE entries.</info>
<return type='xmlCatalogPtr' info='the catalog parsed or NULL in case of error'/>
<arg name='filename' type='const char *' info='a file path'/>
</function>
- <function name='xmlLockLibrary' file='threads'>
+ <function name='xmlLockLibrary' file='threads' module='threads'>
<info>xmlLockLibrary() is used to take out a re-entrant lock on the libxml2 library.</info>
<return type='void'/>
</function>
- <function name='xmlLsCountNode' file='debugXML'>
+ <function name='xmlLsCountNode' file='debugXML' module='debugXML'>
<cond>defined(LIBXML_DEBUG_ENABLED)</cond>
<info>Count the children of @node.</info>
<return type='int' info='the number of children of @node.'/>
<arg name='node' type='xmlNodePtr' info='the node to count'/>
</function>
- <function name='xmlLsOneNode' file='debugXML'>
+ <function name='xmlLsOneNode' file='debugXML' module='debugXML'>
<cond>defined(LIBXML_DEBUG_ENABLED)</cond>
<info>Dump to @output the type and name of @node.</info>
<return type='void'/>
<arg name='output' type='FILE *' info='the FILE * for the output'/>
<arg name='node' type='xmlNodePtr' info='the node to dump'/>
</function>
- <function name='xmlMallocAtomicLoc' file='xmlmemory'>
+ <function name='xmlMallocAtomicLoc' file='xmlmemory' module='xmlmemory'>
<info>a malloc() equivalent, with logging of the allocation info.</info>
<return type='void *' info='a pointer to the allocated area or NULL in case of lack of memory.'/>
<arg name='size' type='size_t' info='an int specifying the size in byte to allocate.'/>
<arg name='file' type='const char *' info='the file name or NULL'/>
<arg name='line' type='int' info='the line number'/>
</function>
- <functype name='xmlMallocFunc' file='xmlmemory'>
+ <functype name='xmlMallocFunc' file='xmlmemory' module='xmlmemory'>
<info>Signature for a malloc() implementation.</info>
<return type='void *' info='a pointer to the newly allocated block or NULL in case of error.'/>
<arg name='size' type='size_t' info='the size requested in bytes'/>
</functype>
- <function name='xmlMallocLoc' file='xmlmemory'>
+ <function name='xmlMallocLoc' file='xmlmemory' module='xmlmemory'>
<info>a malloc() equivalent, with logging of the allocation info.</info>
<return type='void *' info='a pointer to the allocated area or NULL in case of lack of memory.'/>
<arg name='size' type='size_t' info='an int specifying the size in byte to allocate.'/>
<arg name='file' type='const char *' info='the file name or NULL'/>
<arg name='line' type='int' info='the line number'/>
</function>
- <function name='xmlMemBlocks' file='xmlmemory'>
+ <function name='xmlMemBlocks' file='xmlmemory' module='xmlmemory'>
<info>Provides the number of memory areas currently allocated</info>
<return type='int' info='an int representing the number of blocks'/>
</function>
- <function name='xmlMemDisplay' file='xmlmemory'>
+ <function name='xmlMemDisplay' file='xmlmemory' module='xmlmemory'>
<info>show in-extenso the memory blocks allocated</info>
<return type='void'/>
<arg name='fp' type='FILE *' info='a FILE descriptor used as the output file, if NULL, the result is written to the file .memorylist'/>
</function>
- <function name='xmlMemFree' file='xmlmemory'>
+ <function name='xmlMemFree' file='xmlmemory' module='xmlmemory'>
<info>a free() equivalent, with error checking.</info>
<return type='void'/>
<arg name='ptr' type='void *' info='the memory block pointer'/>
</function>
- <function name='xmlMemGet' file='xmlmemory'>
+ <function name='xmlMemGet' file='xmlmemory' module='xmlmemory'>
<info>Provides the memory access functions set currently in use</info>
<return type='int' info='0 on success'/>
<arg name='freeFunc' type='xmlFreeFunc *' info='place to save the free() function in use'/>
@@ -10105,18 +10125,18 @@ actually an xmlCharEncoding'/>
<arg name='reallocFunc' type='xmlReallocFunc *' info='place to save the realloc() function in use'/>
<arg name='strdupFunc' type='xmlStrdupFunc *' info='place to save the strdup() function in use'/>
</function>
- <function name='xmlMemMalloc' file='xmlmemory'>
+ <function name='xmlMemMalloc' file='xmlmemory' module='xmlmemory'>
<info>a malloc() equivalent, with logging of the allocation info.</info>
<return type='void *' info='a pointer to the allocated area or NULL in case of lack of memory.'/>
<arg name='size' type='size_t' info='an int specifying the size in byte to allocate.'/>
</function>
- <function name='xmlMemRealloc' file='xmlmemory'>
+ <function name='xmlMemRealloc' file='xmlmemory' module='xmlmemory'>
<info>a realloc() equivalent, with logging of the allocation info.</info>
<return type='void *' info='a pointer to the allocated area or NULL in case of lack of memory.'/>
<arg name='ptr' type='void *' info='the initial memory block pointer'/>
<arg name='size' type='size_t' info='an int specifying the size in byte to allocate.'/>
</function>
- <function name='xmlMemSetup' file='xmlmemory'>
+ <function name='xmlMemSetup' file='xmlmemory' module='xmlmemory'>
<info>Override the default memory access functions with a new set This has to be called before any other libxml routines ! Should this be blocked if there was already some allocations done ?</info>
<return type='int' info='0 on success'/>
<arg name='freeFunc' type='xmlFreeFunc' info='the free() function to use'/>
@@ -10124,52 +10144,52 @@ actually an xmlCharEncoding'/>
<arg name='reallocFunc' type='xmlReallocFunc' info='the realloc() function to use'/>
<arg name='strdupFunc' type='xmlStrdupFunc' info='the strdup() function to use'/>
</function>
- <function name='xmlMemShow' file='xmlmemory'>
+ <function name='xmlMemShow' file='xmlmemory' module='xmlmemory'>
<info>show a show display of the memory allocated, and dump the @nr last allocated areas which were not freed</info>
<return type='void'/>
<arg name='fp' type='FILE *' info='a FILE descriptor used as the output file'/>
<arg name='nr' type='int' info='number of entries to dump'/>
</function>
- <function name='xmlMemStrdupLoc' file='xmlmemory'>
+ <function name='xmlMemStrdupLoc' file='xmlmemory' module='xmlmemory'>
<info>a strdup() equivalent, with logging of the allocation info.</info>
<return type='char *' info='a pointer to the new string or NULL if allocation error occurred.'/>
<arg name='str' type='const char *' info='the initial string pointer'/>
<arg name='file' type='const char *' info='the file name or NULL'/>
<arg name='line' type='int' info='the line number'/>
</function>
- <function name='xmlMemUsed' file='xmlmemory'>
+ <function name='xmlMemUsed' file='xmlmemory' module='xmlmemory'>
<info>Provides the amount of memory currently allocated</info>
<return type='int' info='an int representing the amount of memory allocated.'/>
</function>
- <function name='xmlMemoryDump' file='xmlmemory'>
+ <function name='xmlMemoryDump' file='xmlmemory' module='xmlmemory'>
<info>Dump in-extenso the memory blocks allocated to the file .memorylist</info>
<return type='void'/>
</function>
- <function name='xmlMemoryStrdup' file='xmlmemory'>
+ <function name='xmlMemoryStrdup' file='xmlmemory' module='xmlmemory'>
<info>a strdup() equivalent, with logging of the allocation info.</info>
<return type='char *' info='a pointer to the new string or NULL if allocation error occurred.'/>
<arg name='str' type='const char *' info='the initial string pointer'/>
</function>
- <function name='xmlModuleClose' file='xmlmodule'>
+ <function name='xmlModuleClose' file='xmlmodule' module='xmlmodule'>
<cond>defined(LIBXML_MODULES_ENABLED)</cond>
<info>The close operations unload the associated module and free the data associated to the module.</info>
<return type='int' info='0 in case of success, -1 in case of argument error and -2 if the module could not be closed/unloaded.'/>
<arg name='module' type='xmlModulePtr' info='the module handle'/>
</function>
- <function name='xmlModuleFree' file='xmlmodule'>
+ <function name='xmlModuleFree' file='xmlmodule' module='xmlmodule'>
<cond>defined(LIBXML_MODULES_ENABLED)</cond>
<info>The free operations free the data associated to the module but does not unload the associated shared library which may still be in use.</info>
<return type='int' info='0 in case of success, -1 in case of argument error'/>
<arg name='module' type='xmlModulePtr' info='the module handle'/>
</function>
- <function name='xmlModuleOpen' file='xmlmodule'>
+ <function name='xmlModuleOpen' file='xmlmodule' module='xmlmodule'>
<cond>defined(LIBXML_MODULES_ENABLED)</cond>
<info>Opens a module/shared library given its name or path TODO: options are not yet implemented.</info>
<return type='xmlModulePtr' info='a handle for the module or NULL in case of error'/>
<arg name='name' type='const char *' info='the module name'/>
<arg name='options' type='int' info='a set of xmlModuleOption'/>
</function>
- <function name='xmlModuleSymbol' file='xmlmodule'>
+ <function name='xmlModuleSymbol' file='xmlmodule' module='xmlmodule'>
<cond>defined(LIBXML_MODULES_ENABLED)</cond>
<info>Lookup for a symbol address in the given module</info>
<return type='int' info='0 if the symbol was found, or -1 in case of error'/>
@@ -10177,92 +10197,92 @@ actually an xmlCharEncoding'/>
<arg name='name' type='const char *' info='the name of the symbol'/>
<arg name='symbol' type='void **' info='the resulting symbol address'/>
</function>
- <function name='xmlMutexLock' file='threads'>
+ <function name='xmlMutexLock' file='threads' module='threads'>
<info>xmlMutexLock() is used to lock a libxml2 token.</info>
<return type='void'/>
<arg name='tok' type='xmlMutexPtr' info='the simple mutex'/>
</function>
- <function name='xmlMutexUnlock' file='threads'>
+ <function name='xmlMutexUnlock' file='threads' module='threads'>
<info>xmlMutexUnlock() is used to unlock a libxml2 token.</info>
<return type='void'/>
<arg name='tok' type='xmlMutexPtr' info='the simple mutex'/>
</function>
- <function name='xmlNamespaceParseNCName' file='parserInternals'>
+ <function name='xmlNamespaceParseNCName' file='parserInternals' module='legacy'>
<cond>defined(LIBXML_LEGACY_ENABLED)</cond>
<info>parse an XML namespace name. TODO: this seems not in use anymore, the namespace handling is done on top of the SAX interfaces, i.e. not on raw input. [NS 3] NCName ::= (Letter | &apos;_&apos;) (NCNameChar)* [NS 4] NCNameChar ::= Letter | Digit | &apos;.&apos; | &apos;-&apos; | &apos;_&apos; | CombiningChar | Extender</info>
<return type='xmlChar *' info='the namespace name or NULL'/>
<arg name='ctxt' type='xmlParserCtxtPtr' info='an XML parser context'/>
</function>
- <function name='xmlNamespaceParseNSDef' file='parserInternals'>
+ <function name='xmlNamespaceParseNSDef' file='parserInternals' module='legacy'>
<cond>defined(LIBXML_LEGACY_ENABLED)</cond>
<info>parse a namespace prefix declaration TODO: this seems not in use anymore, the namespace handling is done on top of the SAX interfaces, i.e. not on raw input. [NS 1] NSDef ::= PrefixDef Eq SystemLiteral [NS 2] PrefixDef ::= &apos;xmlns&apos; (&apos;:&apos; NCName)?</info>
<return type='xmlChar *' info='the namespace name'/>
<arg name='ctxt' type='xmlParserCtxtPtr' info='an XML parser context'/>
</function>
- <function name='xmlNamespaceParseQName' file='parserInternals'>
+ <function name='xmlNamespaceParseQName' file='parserInternals' module='legacy'>
<cond>defined(LIBXML_LEGACY_ENABLED)</cond>
<info>TODO: this seems not in use anymore, the namespace handling is done on top of the SAX interfaces, i.e. not on raw input. parse an XML qualified name [NS 5] QName ::= (Prefix &apos;:&apos;)? LocalPart [NS 6] Prefix ::= NCName [NS 7] LocalPart ::= NCName</info>
<return type='xmlChar *' info='the local part, and prefix is updated to get the Prefix if any.'/>
<arg name='ctxt' type='xmlParserCtxtPtr' info='an XML parser context'/>
<arg name='prefix' type='xmlChar **' info='a xmlChar **'/>
</function>
- <function name='xmlNanoFTPCheckResponse' file='nanoftp'>
+ <function name='xmlNanoFTPCheckResponse' file='nanoftp' module='nanoftp'>
<cond>defined(LIBXML_FTP_ENABLED)</cond>
<info>Check if there is a response from the FTP server after a command.</info>
<return type='int' info='the code number, or 0'/>
<arg name='ctx' type='void *' info='an FTP context'/>
</function>
- <function name='xmlNanoFTPCleanup' file='nanoftp'>
+ <function name='xmlNanoFTPCleanup' file='nanoftp' module='nanoftp'>
<cond>defined(LIBXML_FTP_ENABLED)</cond>
<info>Cleanup the FTP protocol layer. This cleanup proxy informations.</info>
<return type='void'/>
</function>
- <function name='xmlNanoFTPClose' file='nanoftp'>
+ <function name='xmlNanoFTPClose' file='nanoftp' module='nanoftp'>
<cond>defined(LIBXML_FTP_ENABLED)</cond>
<info>Close the connection and both control and transport</info>
<return type='int' info='-1 incase of error, 0 otherwise'/>
<arg name='ctx' type='void *' info='an FTP context'/>
</function>
- <function name='xmlNanoFTPCloseConnection' file='nanoftp'>
+ <function name='xmlNanoFTPCloseConnection' file='nanoftp' module='nanoftp'>
<cond>defined(LIBXML_FTP_ENABLED)</cond>
<info>Close the data connection from the server</info>
<return type='int' info='-1 incase of error, 0 otherwise'/>
<arg name='ctx' type='void *' info='an FTP context'/>
</function>
- <function name='xmlNanoFTPConnect' file='nanoftp'>
+ <function name='xmlNanoFTPConnect' file='nanoftp' module='nanoftp'>
<cond>defined(LIBXML_FTP_ENABLED)</cond>
<info>Tries to open a control connection</info>
<return type='int' info='-1 in case of error, 0 otherwise'/>
<arg name='ctx' type='void *' info='an FTP context'/>
</function>
- <function name='xmlNanoFTPConnectTo' file='nanoftp'>
+ <function name='xmlNanoFTPConnectTo' file='nanoftp' module='nanoftp'>
<cond>defined(LIBXML_FTP_ENABLED)</cond>
<info>Tries to open a control connection to the given server/port</info>
<return type='void *' info='an fTP context or NULL if it failed'/>
<arg name='server' type='const char *' info='an FTP server name'/>
<arg name='port' type='int' info='the port (use 21 if 0)'/>
</function>
- <function name='xmlNanoFTPCwd' file='nanoftp'>
+ <function name='xmlNanoFTPCwd' file='nanoftp' module='nanoftp'>
<cond>defined(LIBXML_FTP_ENABLED)</cond>
<info>Tries to change the remote directory</info>
<return type='int' info='-1 incase of error, 1 if CWD worked, 0 if it failed'/>
<arg name='ctx' type='void *' info='an FTP context'/>
<arg name='directory' type='const char *' info='a directory on the server'/>
</function>
- <function name='xmlNanoFTPDele' file='nanoftp'>
+ <function name='xmlNanoFTPDele' file='nanoftp' module='nanoftp'>
<cond>defined(LIBXML_FTP_ENABLED)</cond>
<info>Tries to delete an item (file or directory) from server</info>
<return type='int' info='-1 incase of error, 1 if DELE worked, 0 if it failed'/>
<arg name='ctx' type='void *' info='an FTP context'/>
<arg name='file' type='const char *' info='a file or directory on the server'/>
</function>
- <function name='xmlNanoFTPFreeCtxt' file='nanoftp'>
+ <function name='xmlNanoFTPFreeCtxt' file='nanoftp' module='nanoftp'>
<cond>defined(LIBXML_FTP_ENABLED)</cond>
<info>Frees the context after closing the connection.</info>
<return type='void'/>
<arg name='ctx' type='void *' info='an FTP context'/>
</function>
- <function name='xmlNanoFTPGet' file='nanoftp'>
+ <function name='xmlNanoFTPGet' file='nanoftp' module='nanoftp'>
<cond>defined(LIBXML_FTP_ENABLED)</cond>
<info>Fetch the given file from the server. All data are passed back in the callbacks. The last callback has a size of 0 block.</info>
<return type='int' info='-1 incase of error, 0 otherwise'/>
@@ -10271,31 +10291,31 @@ actually an xmlCharEncoding'/>
<arg name='userData' type='void *' info='the user callback data'/>
<arg name='filename' type='const char *' info='the file to retrieve'/>
</function>
- <function name='xmlNanoFTPGetConnection' file='nanoftp'>
+ <function name='xmlNanoFTPGetConnection' file='nanoftp' module='nanoftp'>
<cond>defined(LIBXML_FTP_ENABLED)</cond>
<info>Try to open a data connection to the server. Currently only passive mode is supported.</info>
<return type='int' info='-1 incase of error, 0 otherwise'/>
<arg name='ctx' type='void *' info='an FTP context'/>
</function>
- <function name='xmlNanoFTPGetResponse' file='nanoftp'>
+ <function name='xmlNanoFTPGetResponse' file='nanoftp' module='nanoftp'>
<cond>defined(LIBXML_FTP_ENABLED)</cond>
<info>Get the response from the FTP server after a command.</info>
<return type='int' info='the code number'/>
<arg name='ctx' type='void *' info='an FTP context'/>
</function>
- <function name='xmlNanoFTPGetSocket' file='nanoftp'>
+ <function name='xmlNanoFTPGetSocket' file='nanoftp' module='nanoftp'>
<cond>defined(LIBXML_FTP_ENABLED)</cond>
<info>Initiate fetch of the given file from the server.</info>
<return type='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'>
+ <function name='xmlNanoFTPInit' file='nanoftp' module='nanoftp'>
<cond>defined(LIBXML_FTP_ENABLED)</cond>
<info>Initialize the FTP protocol layer. Currently it just checks for proxy informations, and get the hostname</info>
<return type='void'/>
</function>
- <function name='xmlNanoFTPList' file='nanoftp'>
+ <function name='xmlNanoFTPList' file='nanoftp' module='nanoftp'>
<cond>defined(LIBXML_FTP_ENABLED)</cond>
<info>Do a listing on the server. All files info are passed back in the callbacks.</info>
<return type='int' info='-1 incase of error, 0 otherwise'/>
@@ -10304,19 +10324,19 @@ actually an xmlCharEncoding'/>
<arg name='userData' type='void *' info='the user callback data'/>
<arg name='filename' type='const char *' info='optional files to list'/>
</function>
- <function name='xmlNanoFTPNewCtxt' file='nanoftp'>
+ <function name='xmlNanoFTPNewCtxt' file='nanoftp' module='nanoftp'>
<cond>defined(LIBXML_FTP_ENABLED)</cond>
<info>Allocate and initialize a new FTP context.</info>
<return type='void *' info='an FTP context or NULL in case of error.'/>
<arg name='URL' type='const char *' info='The URL used to initialize the context'/>
</function>
- <function name='xmlNanoFTPOpen' file='nanoftp'>
+ <function name='xmlNanoFTPOpen' file='nanoftp' module='nanoftp'>
<cond>defined(LIBXML_FTP_ENABLED)</cond>
<info>Start to fetch the given ftp:// resource</info>
<return type='void *' info='an FTP context, or NULL'/>
<arg name='URL' type='const char *' info='the URL to the resource'/>
</function>
- <function name='xmlNanoFTPProxy' file='nanoftp'>
+ <function name='xmlNanoFTPProxy' file='nanoftp' module='nanoftp'>
<cond>defined(LIBXML_FTP_ENABLED)</cond>
<info>Setup the FTP proxy informations. This can also be done by using ftp_proxy ftp_proxy_user and ftp_proxy_password environment variables.</info>
<return type='void'/>
@@ -10326,13 +10346,13 @@ actually an xmlCharEncoding'/>
<arg name='passwd' type='const char *' info='the proxy password'/>
<arg name='type' type='int' info='the type of proxy 1 for using SITE, 2 for USER a@b'/>
</function>
- <function name='xmlNanoFTPQuit' file='nanoftp'>
+ <function name='xmlNanoFTPQuit' file='nanoftp' module='nanoftp'>
<cond>defined(LIBXML_FTP_ENABLED)</cond>
<info>Send a QUIT command to the server</info>
<return type='int' info='-1 in case of error, 0 otherwise'/>
<arg name='ctx' type='void *' info='an FTP context'/>
</function>
- <function name='xmlNanoFTPRead' file='nanoftp'>
+ <function name='xmlNanoFTPRead' file='nanoftp' module='nanoftp'>
<cond>defined(LIBXML_FTP_ENABLED)</cond>
<info>This function tries to read @len bytes from the existing FTP connection and saves them in @dest. This is a blocking call.</info>
<return type='int' info='the number of byte read. 0 is an indication of an end of connection. -1 indicates a parameter error.'/>
@@ -10340,49 +10360,49 @@ actually an xmlCharEncoding'/>
<arg name='dest' type='void *' info='a buffer'/>
<arg name='len' type='int' info='the buffer length'/>
</function>
- <function name='xmlNanoFTPScanProxy' file='nanoftp'>
+ <function name='xmlNanoFTPScanProxy' file='nanoftp' module='nanoftp'>
<cond>defined(LIBXML_FTP_ENABLED)</cond>
<info>(Re)Initialize the FTP Proxy context by parsing the URL and finding the protocol host port it indicates. Should be like ftp://myproxy/ or ftp://myproxy:3128/ A NULL URL cleans up proxy informations.</info>
<return type='void'/>
<arg name='URL' type='const char *' info='The proxy URL used to initialize the proxy context'/>
</function>
- <function name='xmlNanoFTPUpdateURL' file='nanoftp'>
+ <function name='xmlNanoFTPUpdateURL' file='nanoftp' module='nanoftp'>
<cond>defined(LIBXML_FTP_ENABLED)</cond>
<info>Update an FTP context by parsing the URL and finding new path it indicates. If there is an error in the protocol, hostname, port or other information, the error is raised. It indicates a new connection has to be established.</info>
<return type='int' info='0 if Ok, -1 in case of error (other host).'/>
<arg name='ctx' type='void *' info='an FTP context'/>
<arg name='URL' type='const char *' info='The URL used to update the context'/>
</function>
- <function name='xmlNanoHTTPAuthHeader' file='nanohttp'>
+ <function name='xmlNanoHTTPAuthHeader' file='nanohttp' module='nanohttp'>
<cond>defined(LIBXML_HTTP_ENABLED)</cond>
<info>Get the authentication header of an HTTP context</info>
<return type='const char *' info='the stashed value of the WWW-Authenticate or Proxy-Authenticate header.'/>
<arg name='ctx' type='void *' info='the HTTP context'/>
</function>
- <function name='xmlNanoHTTPCleanup' file='nanohttp'>
+ <function name='xmlNanoHTTPCleanup' file='nanohttp' module='nanohttp'>
<cond>defined(LIBXML_HTTP_ENABLED)</cond>
<info>Cleanup the HTTP protocol layer.</info>
<return type='void'/>
</function>
- <function name='xmlNanoHTTPClose' file='nanohttp'>
+ <function name='xmlNanoHTTPClose' file='nanohttp' module='nanohttp'>
<cond>defined(LIBXML_HTTP_ENABLED)</cond>
<info>This function closes an HTTP context, it ends up the connection and free all data related to it.</info>
<return type='void'/>
<arg name='ctx' type='void *' info='the HTTP context'/>
</function>
- <function name='xmlNanoHTTPContentLength' file='nanohttp'>
+ <function name='xmlNanoHTTPContentLength' file='nanohttp' module='nanohttp'>
<cond>defined(LIBXML_HTTP_ENABLED)</cond>
<info>Provides the specified content length from the HTTP header.</info>
<return type='int' info='the specified content length from the HTTP header. Note that a value of -1 indicates that the content length element was not included in the response header.'/>
<arg name='ctx' type='void *' info='the HTTP context'/>
</function>
- <function name='xmlNanoHTTPEncoding' file='nanohttp'>
+ <function name='xmlNanoHTTPEncoding' file='nanohttp' module='nanohttp'>
<cond>defined(LIBXML_HTTP_ENABLED)</cond>
<info>Provides the specified encoding if specified in the HTTP headers.</info>
<return type='const char *' info='the specified encoding or NULL if not available'/>
<arg name='ctx' type='void *' info='the HTTP context'/>
</function>
- <function name='xmlNanoHTTPFetch' file='nanohttp'>
+ <function name='xmlNanoHTTPFetch' file='nanohttp' module='nanohttp'>
<cond>defined(LIBXML_HTTP_ENABLED)</cond>
<info>This function try to fetch the indicated resource via HTTP GET and save it&apos;s content in the file.</info>
<return type='int' info='-1 in case of failure, 0 incase of success. The contentType, if provided must be freed by the caller'/>
@@ -10390,12 +10410,12 @@ actually an xmlCharEncoding'/>
<arg name='filename' type='const char *' info='the filename where the content should be saved'/>
<arg name='contentType' type='char **' info='if available the Content-Type information will be returned at that location'/>
</function>
- <function name='xmlNanoHTTPInit' file='nanohttp'>
+ <function name='xmlNanoHTTPInit' file='nanohttp' module='nanohttp'>
<cond>defined(LIBXML_HTTP_ENABLED)</cond>
<info>Initialize the HTTP protocol layer. Currently it just checks for proxy informations</info>
<return type='void'/>
</function>
- <function name='xmlNanoHTTPMethod' file='nanohttp'>
+ <function name='xmlNanoHTTPMethod' file='nanohttp' module='nanohttp'>
<cond>defined(LIBXML_HTTP_ENABLED)</cond>
<info>This function try to open a connection to the indicated resource via HTTP using the given @method, adding the given extra headers and the input buffer for the request content.</info>
<return type='void *' info='NULL in case of failure, otherwise a request handler. The contentType, if provided must be freed by the caller'/>
@@ -10406,7 +10426,7 @@ actually an xmlCharEncoding'/>
<arg name='headers' type='const char *' info='the extra headers'/>
<arg name='ilen' type='int' info='input length'/>
</function>
- <function name='xmlNanoHTTPMethodRedir' file='nanohttp'>
+ <function name='xmlNanoHTTPMethodRedir' file='nanohttp' module='nanohttp'>
<cond>defined(LIBXML_HTTP_ENABLED)</cond>
<info>This function try to open a connection to the indicated resource via HTTP using the given @method, adding the given extra headers and the input buffer for the request content.</info>
<return type='void *' info='NULL in case of failure, otherwise a request handler. The contentType, or redir, if provided must be freed by the caller'/>
@@ -10418,20 +10438,20 @@ actually an xmlCharEncoding'/>
<arg name='headers' type='const char *' info='the extra headers'/>
<arg name='ilen' type='int' info='input length'/>
</function>
- <function name='xmlNanoHTTPMimeType' file='nanohttp'>
+ <function name='xmlNanoHTTPMimeType' file='nanohttp' module='nanohttp'>
<cond>defined(LIBXML_HTTP_ENABLED)</cond>
<info>Provides the specified Mime-Type if specified in the HTTP headers.</info>
<return type='const char *' info='the specified Mime-Type or NULL if not available'/>
<arg name='ctx' type='void *' info='the HTTP context'/>
</function>
- <function name='xmlNanoHTTPOpen' file='nanohttp'>
+ <function name='xmlNanoHTTPOpen' file='nanohttp' module='nanohttp'>
<cond>defined(LIBXML_HTTP_ENABLED)</cond>
<info>This function try to open a connection to the indicated resource via HTTP GET.</info>
<return type='void *' info='NULL in case of failure, otherwise a request handler. The contentType, if provided must be freed by the caller'/>
<arg name='URL' type='const char *' info='The URL to load'/>
<arg name='contentType' type='char **' info='if available the Content-Type information will be returned at that location'/>
</function>
- <function name='xmlNanoHTTPOpenRedir' file='nanohttp'>
+ <function name='xmlNanoHTTPOpenRedir' file='nanohttp' module='nanohttp'>
<cond>defined(LIBXML_HTTP_ENABLED)</cond>
<info>This function try to open a connection to the indicated resource via HTTP GET.</info>
<return type='void *' info='NULL in case of failure, otherwise a request handler. The contentType, if provided must be freed by the caller'/>
@@ -10439,7 +10459,7 @@ actually an xmlCharEncoding'/>
<arg name='contentType' type='char **' info='if available the Content-Type information will be returned at that location'/>
<arg name='redir' type='char **' info='if available the redirected URL will be returned'/>
</function>
- <function name='xmlNanoHTTPRead' file='nanohttp'>
+ <function name='xmlNanoHTTPRead' file='nanohttp' module='nanohttp'>
<cond>defined(LIBXML_HTTP_ENABLED)</cond>
<info>This function tries to read @len bytes from the existing HTTP connection and saves them in @dest. This is a blocking call.</info>
<return type='int' info='the number of byte read. 0 is an indication of an end of connection. -1 indicates a parameter error.'/>
@@ -10447,63 +10467,63 @@ actually an xmlCharEncoding'/>
<arg name='dest' type='void *' info='a buffer'/>
<arg name='len' type='int' info='the buffer length'/>
</function>
- <function name='xmlNanoHTTPRedir' file='nanohttp'>
+ <function name='xmlNanoHTTPRedir' file='nanohttp' module='nanohttp'>
<cond>defined(LIBXML_HTTP_ENABLED)</cond>
<info>Provides the specified redirection URL if available from the HTTP header.</info>
<return type='const char *' info='the specified redirection URL or NULL if not redirected.'/>
<arg name='ctx' type='void *' info='the HTTP context'/>
</function>
- <function name='xmlNanoHTTPReturnCode' file='nanohttp'>
+ <function name='xmlNanoHTTPReturnCode' file='nanohttp' module='nanohttp'>
<cond>defined(LIBXML_HTTP_ENABLED)</cond>
<info>Get the latest HTTP return code received</info>
<return type='int' info='the HTTP return code for the request.'/>
<arg name='ctx' type='void *' info='the HTTP context'/>
</function>
- <function name='xmlNanoHTTPSave' file='nanohttp'>
+ <function name='xmlNanoHTTPSave' file='nanohttp' module='nanohttp'>
<cond>defined(LIBXML_HTTP_ENABLED) &amp;&amp; defined(LIBXML_OUTPUT_ENABLED)</cond>
<info>This function saves the output of the HTTP transaction to a file It closes and free the context at the end</info>
<return type='int' info='-1 in case of failure, 0 incase of success.'/>
<arg name='ctxt' type='void *' info='the HTTP context'/>
<arg name='filename' type='const char *' info='the filename where the content should be saved'/>
</function>
- <function name='xmlNanoHTTPScanProxy' file='nanohttp'>
+ <function name='xmlNanoHTTPScanProxy' file='nanohttp' module='nanohttp'>
<cond>defined(LIBXML_HTTP_ENABLED)</cond>
<info>(Re)Initialize the HTTP Proxy context by parsing the URL and finding the protocol host port it indicates. Should be like http://myproxy/ or http://myproxy:3128/ A NULL URL cleans up proxy informations.</info>
<return type='void'/>
<arg name='URL' type='const char *' info='The proxy URL used to initialize the proxy context'/>
</function>
- <function name='xmlNewAutomata' file='xmlautomata'>
+ <function name='xmlNewAutomata' file='xmlautomata' module='xmlregexp'>
<cond>defined(LIBXML_REGEXP_ENABLED) &amp;&amp; defined(LIBXML_AUTOMATA_ENABLED)</cond>
<info>Create a new automata</info>
<return type='xmlAutomataPtr' info='the new object or NULL in case of failure'/>
</function>
- <function name='xmlNewCDataBlock' file='tree'>
+ <function name='xmlNewCDataBlock' file='tree' module='tree'>
<info>Creation of a new node containing a CDATA block.</info>
<return type='xmlNodePtr' info='a pointer to the new node object.'/>
<arg name='doc' type='xmlDocPtr' info='the document'/>
<arg name='content' type='const xmlChar *' info='the CDATA block content content'/>
<arg name='len' type='int' info='the length of the block'/>
</function>
- <function name='xmlNewCatalog' file='catalog'>
+ <function name='xmlNewCatalog' file='catalog' module='catalog'>
<cond>defined(LIBXML_CATALOG_ENABLED)</cond>
<info>create a new Catalog.</info>
<return type='xmlCatalogPtr' info='the xmlCatalogPtr or NULL in case of error'/>
<arg name='sgml' type='int' info='should this create an SGML catalog'/>
</function>
- <function name='xmlNewCharEncodingHandler' file='encoding'>
+ <function name='xmlNewCharEncodingHandler' file='encoding' module='encoding'>
<info>Create and registers an xmlCharEncodingHandler.</info>
<return type='xmlCharEncodingHandlerPtr' info='the xmlCharEncodingHandlerPtr created (or NULL in case of error).'/>
<arg name='name' type='const char *' info='the encoding name, in UTF-8 format (ASCII actually)'/>
<arg name='input' type='xmlCharEncodingInputFunc' info='the xmlCharEncodingInputFunc to read that encoding'/>
<arg name='output' type='xmlCharEncodingOutputFunc' info='the xmlCharEncodingOutputFunc to write that encoding'/>
</function>
- <function name='xmlNewCharRef' file='tree'>
+ <function name='xmlNewCharRef' file='tree' module='tree'>
<info>Creation of a new character reference node.</info>
<return type='xmlNodePtr' info='a pointer to the new node object.'/>
<arg name='doc' type='xmlDocPtr' info='the document'/>
<arg name='name' type='const xmlChar *' info='the char ref string, starting with # or &quot;&amp;# ... ;&quot;'/>
</function>
- <function name='xmlNewChild' file='tree'>
+ <function name='xmlNewChild' file='tree' module='tree'>
<cond>defined(LIBXML_TREE_ENABLED) || defined(LIBXML_SCHEMAS_ENABLED)</cond>
<info>Creation of a new child element, added at the end of @parent children list. @ns and @content parameters are optional (NULL). If @ns is NULL, the newly created element inherits the namespace of @parent. If @content is non NULL, a child list containing the TEXTs and ENTITY_REFs node will be created. NOTE: @content is supposed to be a piece of XML CDATA, so it allows entity references. XML special chars must be escaped first by using xmlEncodeEntitiesReentrant(), or xmlNewTextChild() should be used.</info>
<return type='xmlNodePtr' info='a pointer to the new node object.'/>
@@ -10512,36 +10532,36 @@ actually an xmlCharEncoding'/>
<arg name='name' type='const xmlChar *' info='the name of the child'/>
<arg name='content' type='const xmlChar *' info='the XML content of the child if any.'/>
</function>
- <function name='xmlNewComment' file='tree'>
+ <function name='xmlNewComment' file='tree' module='tree'>
<info>Creation of a new node containing a comment.</info>
<return type='xmlNodePtr' info='a pointer to the new node object.'/>
<arg name='content' type='const xmlChar *' info='the comment content'/>
</function>
- <function name='xmlNewDoc' file='tree'>
+ <function name='xmlNewDoc' file='tree' module='tree'>
<info>Creates a new XML document</info>
<return type='xmlDocPtr' info='a new document'/>
<arg name='version' type='const xmlChar *' info='xmlChar string giving the version of XML &quot;1.0&quot;'/>
</function>
- <function name='xmlNewDocComment' file='tree'>
+ <function name='xmlNewDocComment' file='tree' module='tree'>
<info>Creation of a new node containing a comment within a document.</info>
<return type='xmlNodePtr' info='a pointer to the new node object.'/>
<arg name='doc' type='xmlDocPtr' info='the document'/>
<arg name='content' type='const xmlChar *' info='the comment content'/>
</function>
- <function name='xmlNewDocElementContent' file='valid'>
+ <function name='xmlNewDocElementContent' file='valid' module='valid'>
<info>Allocate an element content structure for the document.</info>
<return type='xmlElementContentPtr' info='NULL if not, otherwise the new element content structure'/>
<arg name='doc' type='xmlDocPtr' info='the document'/>
<arg name='name' type='const xmlChar *' info='the subelement name or NULL'/>
<arg name='type' type='xmlElementContentType' info='the type of element content decl'/>
</function>
- <function name='xmlNewDocFragment' file='tree'>
+ <function name='xmlNewDocFragment' file='tree' module='tree'>
<cond>defined(LIBXML_TREE_ENABLED)</cond>
<info>Creation of a new Fragment node.</info>
<return type='xmlNodePtr' info='a pointer to the new node object.'/>
<arg name='doc' type='xmlDocPtr' info='the document owning the fragment'/>
</function>
- <function name='xmlNewDocNode' file='tree'>
+ <function name='xmlNewDocNode' file='tree' module='tree'>
<info>Creation of a new node element within a document. @ns and @content are optional (NULL). NOTE: @content is supposed to be a piece of XML CDATA, so it allow entities references, but XML special chars need to be escaped first by using xmlEncodeEntitiesReentrant(). Use xmlNewDocRawNode() if you don&apos;t need entities support.</info>
<return type='xmlNodePtr' info='a pointer to the new node object.'/>
<arg name='doc' type='xmlDocPtr' info='the document'/>
@@ -10549,7 +10569,7 @@ actually an xmlCharEncoding'/>
<arg name='name' type='const xmlChar *' info='the node name'/>
<arg name='content' type='const xmlChar *' info='the XML text content if any'/>
</function>
- <function name='xmlNewDocNodeEatName' file='tree'>
+ <function name='xmlNewDocNodeEatName' file='tree' module='tree'>
<info>Creation of a new node element within a document. @ns and @content are optional (NULL). NOTE: @content is supposed to be a piece of XML CDATA, so it allow entities references, but XML special chars need to be escaped first by using xmlEncodeEntitiesReentrant(). Use xmlNewDocRawNode() if you don&apos;t need entities support.</info>
<return type='xmlNodePtr' info='a pointer to the new node object.'/>
<arg name='doc' type='xmlDocPtr' info='the document'/>
@@ -10557,21 +10577,21 @@ actually an xmlCharEncoding'/>
<arg name='name' type='xmlChar *' info='the node name'/>
<arg name='content' type='const xmlChar *' info='the XML text content if any'/>
</function>
- <function name='xmlNewDocPI' file='tree'>
+ <function name='xmlNewDocPI' file='tree' module='tree'>
<info>Creation of a processing instruction element.</info>
<return type='xmlNodePtr' info='a pointer to the new node object.'/>
<arg name='doc' type='xmlDocPtr' info='the target document'/>
<arg name='name' type='const xmlChar *' info='the processing instruction name'/>
<arg name='content' type='const xmlChar *' info='the PI content'/>
</function>
- <function name='xmlNewDocProp' file='tree'>
+ <function name='xmlNewDocProp' file='tree' module='tree'>
<info>Create a new property carried by a document.</info>
<return type='xmlAttrPtr' info='a pointer to the attribute'/>
<arg name='doc' type='xmlDocPtr' info='the document'/>
<arg name='name' type='const xmlChar *' info='the name of the attribute'/>
<arg name='value' type='const xmlChar *' info='the value of the attribute'/>
</function>
- <function name='xmlNewDocRawNode' file='tree'>
+ <function name='xmlNewDocRawNode' file='tree' module='tree'>
<cond>defined(LIBXML_TREE_ENABLED)</cond>
<info>Creation of a new node element within a document. @ns and @content are optional (NULL).</info>
<return type='xmlNodePtr' info='a pointer to the new node object.'/>
@@ -10580,20 +10600,20 @@ actually an xmlCharEncoding'/>
<arg name='name' type='const xmlChar *' info='the node name'/>
<arg name='content' type='const xmlChar *' info='the text content if any'/>
</function>
- <function name='xmlNewDocText' file='tree'>
+ <function name='xmlNewDocText' file='tree' module='tree'>
<info>Creation of a new text node within a document.</info>
<return type='xmlNodePtr' info='a pointer to the new node object.'/>
<arg name='doc' type='xmlDocPtr' info='the document'/>
<arg name='content' type='const xmlChar *' info='the text content'/>
</function>
- <function name='xmlNewDocTextLen' file='tree'>
+ <function name='xmlNewDocTextLen' file='tree' module='tree'>
<info>Creation of a new text node with an extra content length parameter. The text node pertain to a given document.</info>
<return type='xmlNodePtr' info='a pointer to the new node object.'/>
<arg name='doc' type='xmlDocPtr' info='the document'/>
<arg name='content' type='const xmlChar *' info='the text content'/>
<arg name='len' type='int' info='the text len.'/>
</function>
- <function name='xmlNewDtd' file='tree'>
+ <function name='xmlNewDtd' file='tree' module='tree'>
<info>Creation of a new DTD for the external subset. To create an internal subset, use xmlCreateIntSubset().</info>
<return type='xmlDtdPtr' info='a pointer to the new DTD structure'/>
<arg name='doc' type='xmlDocPtr' info='the document pointer'/>
@@ -10601,19 +10621,19 @@ actually an xmlCharEncoding'/>
<arg name='ExternalID' type='const xmlChar *' info='the external ID'/>
<arg name='SystemID' type='const xmlChar *' info='the system ID'/>
</function>
- <function name='xmlNewElementContent' file='valid'>
+ <function name='xmlNewElementContent' file='valid' module='valid'>
<info>Allocate an element content structure. Deprecated in favor of xmlNewDocElementContent</info>
<return type='xmlElementContentPtr' info='NULL if not, otherwise the new element content structure'/>
<arg name='name' type='const xmlChar *' info='the subelement name or NULL'/>
<arg name='type' type='xmlElementContentType' info='the type of element content decl'/>
</function>
- <function name='xmlNewEntityInputStream' file='parserInternals'>
+ <function name='xmlNewEntityInputStream' file='parserInternals' module='parserInternals'>
<info>Create a new input stream based on an xmlEntityPtr</info>
<return type='xmlParserInputPtr' info='the new input stream or NULL'/>
<arg name='ctxt' type='xmlParserCtxtPtr' info='an XML parser context'/>
<arg name='entity' type='xmlEntityPtr' info='an Entity pointer'/>
</function>
- <function name='xmlNewGlobalNs' file='tree'>
+ <function name='xmlNewGlobalNs' file='tree' module='legacy'>
<cond>defined(LIBXML_LEGACY_ENABLED)</cond>
<info>Creation of a Namespace, the old way using PI and without scoping DEPRECATED !!! It now create a namespace on the root element of the document if found.</info>
<return type='xmlNsPtr' info='NULL this functionality had been removed'/>
@@ -10621,48 +10641,48 @@ actually an xmlCharEncoding'/>
<arg name='href' type='const xmlChar *' info='the URI associated'/>
<arg name='prefix' type='const xmlChar *' info='the prefix for the namespace'/>
</function>
- <function name='xmlNewIOInputStream' file='parser'>
+ <function name='xmlNewIOInputStream' file='parser' module='parserInternals'>
<info>Create a new input stream structure encapsulating the @input into a stream suitable for the parser.</info>
<return type='xmlParserInputPtr' info='the new input stream or NULL'/>
<arg name='ctxt' type='xmlParserCtxtPtr' info='an XML parser context'/>
<arg name='input' type='xmlParserInputBufferPtr' info='an I/O Input'/>
<arg name='enc' type='xmlCharEncoding' info='the charset encoding if known'/>
</function>
- <function name='xmlNewInputFromFile' file='parserInternals'>
+ <function name='xmlNewInputFromFile' file='parserInternals' module='parserInternals'>
<info>Create a new input stream based on a file or an URL.</info>
<return type='xmlParserInputPtr' info='the new input stream or NULL in case of error'/>
<arg name='ctxt' type='xmlParserCtxtPtr' info='an XML parser context'/>
<arg name='filename' type='const char *' info='the filename to use as entity'/>
</function>
- <function name='xmlNewInputStream' file='parserInternals'>
+ <function name='xmlNewInputStream' file='parserInternals' module='parserInternals'>
<info>Create a new input stream structure</info>
<return type='xmlParserInputPtr' info='the new input stream or NULL'/>
<arg name='ctxt' type='xmlParserCtxtPtr' info='an XML parser context'/>
</function>
- <function name='xmlNewMutex' file='threads'>
+ <function name='xmlNewMutex' file='threads' module='threads'>
<info>xmlNewMutex() is used to allocate a libxml2 token struct for use in synchronizing access to data.</info>
<return type='xmlMutexPtr' info='a new simple mutex pointer or NULL in case of error'/>
</function>
- <function name='xmlNewNode' file='tree'>
+ <function name='xmlNewNode' file='tree' module='tree'>
<info>Creation of a new node element. @ns is optional (NULL).</info>
<return type='xmlNodePtr' info='a pointer to the new node object. Uses xmlStrdup() to make copy of @name.'/>
<arg name='ns' type='xmlNsPtr' info='namespace if any'/>
<arg name='name' type='const xmlChar *' info='the node name'/>
</function>
- <function name='xmlNewNodeEatName' file='tree'>
+ <function name='xmlNewNodeEatName' file='tree' module='tree'>
<info>Creation of a new node element. @ns is optional (NULL).</info>
<return type='xmlNodePtr' info='a pointer to the new node object, with pointer @name as new node&apos;s name. Use xmlNewNode() if a copy of @name string is is needed as new node&apos;s name.'/>
<arg name='ns' type='xmlNsPtr' info='namespace if any'/>
<arg name='name' type='xmlChar *' info='the node name'/>
</function>
- <function name='xmlNewNs' file='tree'>
+ <function name='xmlNewNs' file='tree' module='tree'>
<info>Creation of a new Namespace. This function will refuse to create a namespace with a similar prefix than an existing one present on this node. We use href==NULL in the case of an element creation where the namespace was not defined.</info>
<return type='xmlNsPtr' info='a new namespace pointer or NULL'/>
<arg name='node' type='xmlNodePtr' info='the element carrying the namespace'/>
<arg name='href' type='const xmlChar *' info='the URI associated'/>
<arg name='prefix' type='const xmlChar *' info='the prefix for the namespace'/>
</function>
- <function name='xmlNewNsProp' file='tree'>
+ <function name='xmlNewNsProp' file='tree' module='tree'>
<info>Create a new property tagged with a namespace and carried by a node.</info>
<return type='xmlAttrPtr' info='a pointer to the attribute'/>
<arg name='node' type='xmlNodePtr' info='the holding node'/>
@@ -10670,7 +10690,7 @@ actually an xmlCharEncoding'/>
<arg name='name' type='const xmlChar *' info='the name of the attribute'/>
<arg name='value' type='const xmlChar *' info='the value of the attribute'/>
</function>
- <function name='xmlNewNsPropEatName' file='tree'>
+ <function name='xmlNewNsPropEatName' file='tree' module='tree'>
<info>Create a new property tagged with a namespace and carried by a node.</info>
<return type='xmlAttrPtr' info='a pointer to the attribute'/>
<arg name='node' type='xmlNodePtr' info='the holding node'/>
@@ -10678,17 +10698,17 @@ actually an xmlCharEncoding'/>
<arg name='name' type='xmlChar *' info='the name of the attribute'/>
<arg name='value' type='const xmlChar *' info='the value of the attribute'/>
</function>
- <function name='xmlNewPI' file='tree'>
+ <function name='xmlNewPI' file='tree' module='tree'>
<info>Creation of a processing instruction element. Use xmlDocNewPI preferably to get string interning</info>
<return type='xmlNodePtr' info='a pointer to the new node object.'/>
<arg name='name' type='const xmlChar *' info='the processing instruction name'/>
<arg name='content' type='const xmlChar *' info='the PI content'/>
</function>
- <function name='xmlNewParserCtxt' file='parser'>
+ <function name='xmlNewParserCtxt' file='parser' module='parserInternals'>
<info>Allocate and initialize a new parser context.</info>
<return type='xmlParserCtxtPtr' info='the xmlParserCtxtPtr or NULL'/>
</function>
- <function name='xmlNewProp' file='tree'>
+ <function name='xmlNewProp' file='tree' module='tree'>
<cond>defined(LIBXML_TREE_ENABLED) || defined(LIBXML_HTML_ENABLED) || defined(LIBXML_SCHEMAS_ENABLED)</cond>
<info>Create a new property carried by a node.</info>
<return type='xmlAttrPtr' info='a pointer to the attribute'/>
@@ -10696,28 +10716,28 @@ actually an xmlCharEncoding'/>
<arg name='name' type='const xmlChar *' info='the name of the attribute'/>
<arg name='value' type='const xmlChar *' info='the value of the attribute'/>
</function>
- <function name='xmlNewRMutex' file='threads'>
+ <function name='xmlNewRMutex' file='threads' module='threads'>
<info>xmlRNewMutex() is used to allocate a reentrant mutex for use in synchronizing access to data. token_r is a re-entrant lock and thus useful for synchronizing access to data structures that may be manipulated in a recursive fashion.</info>
<return type='xmlRMutexPtr' info='the new reentrant mutex pointer or NULL in case of error'/>
</function>
- <function name='xmlNewReference' file='tree'>
+ <function name='xmlNewReference' file='tree' module='tree'>
<info>Creation of a new reference node.</info>
<return type='xmlNodePtr' info='a pointer to the new node object.'/>
<arg name='doc' type='xmlDocPtr' info='the document'/>
<arg name='name' type='const xmlChar *' info='the reference name, or the reference string with &amp; and ;'/>
</function>
- <function name='xmlNewStringInputStream' file='parserInternals'>
+ <function name='xmlNewStringInputStream' file='parserInternals' module='parserInternals'>
<info>Create a new input stream based on a memory buffer.</info>
<return type='xmlParserInputPtr' info='the new input stream'/>
<arg name='ctxt' type='xmlParserCtxtPtr' info='an XML parser context'/>
<arg name='buffer' type='const xmlChar *' info='an memory buffer'/>
</function>
- <function name='xmlNewText' file='tree'>
+ <function name='xmlNewText' file='tree' module='tree'>
<info>Creation of a new text node.</info>
<return type='xmlNodePtr' info='a pointer to the new node object.'/>
<arg name='content' type='const xmlChar *' info='the text content'/>
</function>
- <function name='xmlNewTextChild' file='tree'>
+ <function name='xmlNewTextChild' file='tree' module='tree'>
<cond>defined(LIBXML_TREE_ENABLED)</cond>
<info>Creation of a new child element, added at the end of @parent children list. @ns and @content parameters are optional (NULL). If @ns is NULL, the newly created element inherits the namespace of @parent. If @content is non NULL, a child TEXT node will be created containing the string @content. NOTE: Use xmlNewChild() if @content will contain entities that need to be preserved. Use this function, xmlNewTextChild(), if you need to ensure that reserved XML chars that might appear in @content, such as the ampersand, greater-than or less-than signs, are automatically replaced by their XML escaped entity representations.</info>
<return type='xmlNodePtr' info='a pointer to the new node object.'/>
@@ -10726,60 +10746,60 @@ actually an xmlCharEncoding'/>
<arg name='name' type='const xmlChar *' info='the name of the child'/>
<arg name='content' type='const xmlChar *' info='the text content of the child if any.'/>
</function>
- <function name='xmlNewTextLen' file='tree'>
+ <function name='xmlNewTextLen' file='tree' module='tree'>
<info>Creation of a new text node with an extra parameter for the content&apos;s length</info>
<return type='xmlNodePtr' info='a pointer to the new node object.'/>
<arg name='content' type='const xmlChar *' info='the text content'/>
<arg name='len' type='int' info='the text len.'/>
</function>
- <function name='xmlNewTextReader' file='xmlreader'>
+ <function name='xmlNewTextReader' file='xmlreader' module='xmlreader'>
<cond>defined(LIBXML_READER_ENABLED)</cond>
<info>Create an xmlTextReader structure fed with @input</info>
<return type='xmlTextReaderPtr' info='the new xmlTextReaderPtr or NULL in case of error'/>
<arg name='input' type='xmlParserInputBufferPtr' info='the xmlParserInputBufferPtr used to read data'/>
<arg name='URI' type='const char *' info='the URI information for the source if available'/>
</function>
- <function name='xmlNewTextReaderFilename' file='xmlreader'>
+ <function name='xmlNewTextReaderFilename' file='xmlreader' module='xmlreader'>
<cond>defined(LIBXML_READER_ENABLED)</cond>
<info>Create an xmlTextReader structure fed with the resource at @URI</info>
<return type='xmlTextReaderPtr' info='the new xmlTextReaderPtr or NULL in case of error'/>
<arg name='URI' type='const char *' info='the URI of the resource to process'/>
</function>
- <function name='xmlNewTextWriter' file='xmlwriter'>
+ <function name='xmlNewTextWriter' file='xmlwriter' module='xmlwriter'>
<cond>defined(LIBXML_WRITER_ENABLED)</cond>
<info>Create a new xmlNewTextWriter structure using an xmlOutputBufferPtr NOTE: the @out parameter will be deallocated when the writer is closed (if the call succeed.)</info>
<return type='xmlTextWriterPtr' info='the new xmlTextWriterPtr or NULL in case of error'/>
<arg name='out' type='xmlOutputBufferPtr' info='an xmlOutputBufferPtr'/>
</function>
- <function name='xmlNewTextWriterDoc' file='xmlwriter'>
+ <function name='xmlNewTextWriterDoc' file='xmlwriter' module='xmlwriter'>
<cond>defined(LIBXML_WRITER_ENABLED)</cond>
<info>Create a new xmlNewTextWriter structure with @*doc as output</info>
<return type='xmlTextWriterPtr' info='the new xmlTextWriterPtr or NULL in case of error'/>
<arg name='doc' type='xmlDocPtr *' info='address of a xmlDocPtr to hold the new XML document tree'/>
<arg name='compression' type='int' info='compress the output?'/>
</function>
- <function name='xmlNewTextWriterFilename' file='xmlwriter'>
+ <function name='xmlNewTextWriterFilename' file='xmlwriter' module='xmlwriter'>
<cond>defined(LIBXML_WRITER_ENABLED)</cond>
<info>Create a new xmlNewTextWriter structure with @uri as output</info>
<return type='xmlTextWriterPtr' info='the new xmlTextWriterPtr or NULL in case of error'/>
<arg name='uri' type='const char *' info='the URI of the resource for the output'/>
<arg name='compression' type='int' info='compress the output?'/>
</function>
- <function name='xmlNewTextWriterMemory' file='xmlwriter'>
+ <function name='xmlNewTextWriterMemory' file='xmlwriter' module='xmlwriter'>
<cond>defined(LIBXML_WRITER_ENABLED)</cond>
<info>Create a new xmlNewTextWriter structure with @buf as output TODO: handle compression</info>
<return type='xmlTextWriterPtr' info='the new xmlTextWriterPtr or NULL in case of error'/>
<arg name='buf' type='xmlBufferPtr' info='xmlBufferPtr'/>
<arg name='compression' type='int' info='compress the output?'/>
</function>
- <function name='xmlNewTextWriterPushParser' file='xmlwriter'>
+ <function name='xmlNewTextWriterPushParser' file='xmlwriter' module='xmlwriter'>
<cond>defined(LIBXML_WRITER_ENABLED)</cond>
<info>Create a new xmlNewTextWriter structure with @ctxt as output NOTE: the @ctxt context will be freed with the resulting writer (if the call succeeds). TODO: handle compression</info>
<return type='xmlTextWriterPtr' info='the new xmlTextWriterPtr or NULL in case of error'/>
<arg name='ctxt' type='xmlParserCtxtPtr' info='xmlParserCtxtPtr to hold the new XML document tree'/>
<arg name='compression' type='int' info='compress the output?'/>
</function>
- <function name='xmlNewTextWriterTree' file='xmlwriter'>
+ <function name='xmlNewTextWriterTree' file='xmlwriter' module='xmlwriter'>
<cond>defined(LIBXML_WRITER_ENABLED)</cond>
<info>Create a new xmlNewTextWriter structure with @doc as output starting at @node</info>
<return type='xmlTextWriterPtr' info='the new xmlTextWriterPtr or NULL in case of error'/>
@@ -10787,43 +10807,43 @@ actually an xmlCharEncoding'/>
<arg name='node' type='xmlNodePtr' info='xmlNodePtr or NULL for doc-&gt;children'/>
<arg name='compression' type='int' info='compress the output?'/>
</function>
- <function name='xmlNewValidCtxt' file='valid'>
+ <function name='xmlNewValidCtxt' file='valid' module='valid'>
<cond>defined(LIBXML_VALID_ENABLED)</cond>
<info>Allocate a validation context structure.</info>
<return type='xmlValidCtxtPtr' info='NULL if not, otherwise the new validation context structure'/>
</function>
- <function name='xmlNextChar' file='parserInternals'>
+ <function name='xmlNextChar' file='parserInternals' module='parserInternals'>
<info>Skip to the next char input char.</info>
<return type='void'/>
<arg name='ctxt' type='xmlParserCtxtPtr' info='the XML parser context'/>
</function>
- <function name='xmlNoNetExternalEntityLoader' file='xmlIO'>
+ <function name='xmlNoNetExternalEntityLoader' file='xmlIO' module='xmlIO'>
<info>A specific entity loader disabling network accesses, though still allowing local catalog accesses for resolution.</info>
<return type='xmlParserInputPtr' info='a new allocated xmlParserInputPtr, or NULL.'/>
<arg name='URL' type='const char *' info='the URL for the entity to load'/>
<arg name='ID' type='const char *' info='the System ID for the entity to load'/>
<arg name='ctxt' type='xmlParserCtxtPtr' info='the context in which the entity is called or NULL'/>
</function>
- <function name='xmlNodeAddContent' file='tree'>
+ <function name='xmlNodeAddContent' file='tree' module='tree'>
<info>Append the extra substring to the node content.</info>
<return type='void'/>
<arg name='cur' type='xmlNodePtr' info='the node being modified'/>
<arg name='content' type='const xmlChar *' info='extra content'/>
</function>
- <function name='xmlNodeAddContentLen' file='tree'>
+ <function name='xmlNodeAddContentLen' file='tree' module='tree'>
<info>Append the extra substring to the node content.</info>
<return type='void'/>
<arg name='cur' type='xmlNodePtr' info='the node being modified'/>
<arg name='content' type='const xmlChar *' info='extra content'/>
<arg name='len' type='int' info='the size of @content'/>
</function>
- <function name='xmlNodeBufGetContent' file='tree'>
+ <function name='xmlNodeBufGetContent' file='tree' module='tree'>
<info>Read the value of a node @cur, this can be either the text carried directly by this node if it&apos;s a TEXT node or the aggregate string of the values carried by this node child&apos;s (TEXT and ENTITY_REF). Entity references are substituted. Fills up the buffer @buffer with this value</info>
<return type='int' info='0 in case of success and -1 in case of error.'/>
<arg name='buffer' type='xmlBufferPtr' info='a buffer'/>
<arg name='cur' type='xmlNodePtr' info='the node being read'/>
</function>
- <function name='xmlNodeDump' file='tree'>
+ <function name='xmlNodeDump' file='tree' module='xmlsave'>
<cond>defined(LIBXML_OUTPUT_ENABLED)</cond>
<info>Dump an XML node, recursive behaviour,children are printed too. Note that @format = 1 provide node indenting only if xmlIndentTreeOutput = 1 or xmlKeepBlanksDefault(0) was called</info>
<return type='int' info='the number of bytes written to the buffer or -1 in case of error'/>
@@ -10833,7 +10853,7 @@ actually an xmlCharEncoding'/>
<arg name='level' type='int' info='the imbrication level for indenting'/>
<arg name='format' type='int' info='is formatting allowed'/>
</function>
- <function name='xmlNodeDumpOutput' file='tree'>
+ <function name='xmlNodeDumpOutput' file='tree' module='xmlsave'>
<cond>defined(LIBXML_OUTPUT_ENABLED)</cond>
<info>Dump an XML node, recursive behaviour, children are printed too. Note that @format = 1 provide node indenting only if xmlIndentTreeOutput = 1 or xmlKeepBlanksDefault(0) was called</info>
<return type='void'/>
@@ -10844,33 +10864,33 @@ actually an xmlCharEncoding'/>
<arg name='format' type='int' info='is formatting allowed'/>
<arg name='encoding' type='const char *' info='an optional encoding string'/>
</function>
- <function name='xmlNodeGetBase' file='tree'>
+ <function name='xmlNodeGetBase' file='tree' module='tree'>
<info>Searches for the BASE URL. The code should work on both XML and HTML document even if base mechanisms are completely different. It returns the base as defined in RFC 2396 sections 5.1.1. Base URI within Document Content and 5.1.2. Base URI from the Encapsulating Entity However it does not return the document base (5.1.3), use xmlDocumentGetBase() for this</info>
<return type='xmlChar *' info='a pointer to the base URL, or NULL if not found It&apos;s up to the caller to free the memory with xmlFree().'/>
<arg name='doc' type='xmlDocPtr' info='the document the node pertains to'/>
<arg name='cur' type='xmlNodePtr' info='the node being checked'/>
</function>
- <function name='xmlNodeGetContent' file='tree'>
+ <function name='xmlNodeGetContent' file='tree' module='tree'>
<info>Read the value of a node, this can be either the text carried directly by this node if it&apos;s a TEXT node or the aggregate string of the values carried by this node child&apos;s (TEXT and ENTITY_REF). Entity references are substituted.</info>
<return type='xmlChar *' info='a new #xmlChar * or NULL if no content is available. It&apos;s up to the caller to free the memory with xmlFree().'/>
<arg name='cur' type='xmlNodePtr' info='the node being read'/>
</function>
- <function name='xmlNodeGetLang' file='tree'>
+ <function name='xmlNodeGetLang' file='tree' module='tree'>
<info>Searches the language of a node, i.e. the values of the xml:lang attribute or the one carried by the nearest ancestor.</info>
<return type='xmlChar *' info='a pointer to the lang value, or NULL if not found It&apos;s up to the caller to free the memory with xmlFree().'/>
<arg name='cur' type='xmlNodePtr' info='the node being checked'/>
</function>
- <function name='xmlNodeGetSpacePreserve' file='tree'>
+ <function name='xmlNodeGetSpacePreserve' file='tree' module='tree'>
<info>Searches the space preserving behaviour of a node, i.e. the values of the xml:space attribute or the one carried by the nearest ancestor.</info>
<return type='int' info='-1 if xml:space is not inherited, 0 if &quot;default&quot;, 1 if &quot;preserve&quot;'/>
<arg name='cur' type='xmlNodePtr' info='the node being checked'/>
</function>
- <function name='xmlNodeIsText' file='tree'>
+ <function name='xmlNodeIsText' file='tree' module='tree'>
<info>Is this node a Text node ?</info>
<return type='int' info='1 yes, 0 no'/>
<arg name='node' type='xmlNodePtr' info='the node'/>
</function>
- <function name='xmlNodeListGetRawString' file='tree'>
+ <function name='xmlNodeListGetRawString' file='tree' module='tree'>
<cond>defined(LIBXML_TREE_ENABLED)</cond>
<info>Builds the string equivalent to the text contained in the Node list made of TEXTs and ENTITY_REFs, contrary to xmlNodeListGetString() this function doesn&apos;t do any character encoding handling.</info>
<return type='xmlChar *' info='a pointer to the string copy, the caller must free it with xmlFree().'/>
@@ -10878,27 +10898,27 @@ actually an xmlCharEncoding'/>
<arg name='list' type='xmlNodePtr' info='a Node list'/>
<arg name='inLine' type='int' info='should we replace entity contents or show their external form'/>
</function>
- <function name='xmlNodeListGetString' file='tree'>
+ <function name='xmlNodeListGetString' file='tree' module='tree'>
<info>Build the string equivalent to the text contained in the Node list made of TEXTs and ENTITY_REFs</info>
<return type='xmlChar *' info='a pointer to the string copy, the caller must free it with xmlFree().'/>
<arg name='doc' type='xmlDocPtr' info='the document'/>
<arg name='list' type='xmlNodePtr' info='a Node list'/>
<arg name='inLine' type='int' info='should we replace entity contents or show their external form'/>
</function>
- <function name='xmlNodeSetBase' file='tree'>
+ <function name='xmlNodeSetBase' file='tree' module='tree'>
<cond>defined(LIBXML_TREE_ENABLED) || defined(LIBXML_XINCLUDE_ENABLED)</cond>
<info>Set (or reset) the base URI of a node, i.e. the value of the xml:base attribute.</info>
<return type='void'/>
<arg name='cur' type='xmlNodePtr' info='the node being changed'/>
<arg name='uri' type='const xmlChar *' info='the new base URI'/>
</function>
- <function name='xmlNodeSetContent' file='tree'>
+ <function name='xmlNodeSetContent' file='tree' module='tree'>
<info>Replace the content of a node.</info>
<return type='void'/>
<arg name='cur' type='xmlNodePtr' info='the node being modified'/>
<arg name='content' type='const xmlChar *' info='the new value of the content'/>
</function>
- <function name='xmlNodeSetContentLen' file='tree'>
+ <function name='xmlNodeSetContentLen' file='tree' module='tree'>
<cond>defined(LIBXML_TREE_ENABLED)</cond>
<info>Replace the content of a node.</info>
<return type='void'/>
@@ -10906,58 +10926,58 @@ actually an xmlCharEncoding'/>
<arg name='content' type='const xmlChar *' info='the new value of the content'/>
<arg name='len' type='int' info='the size of @content'/>
</function>
- <function name='xmlNodeSetLang' file='tree'>
+ <function name='xmlNodeSetLang' file='tree' module='tree'>
<cond>defined(LIBXML_TREE_ENABLED)</cond>
<info>Set the language of a node, i.e. the values of the xml:lang attribute.</info>
<return type='void'/>
<arg name='cur' type='xmlNodePtr' info='the node being changed'/>
<arg name='lang' type='const xmlChar *' info='the language description'/>
</function>
- <function name='xmlNodeSetName' file='tree'>
+ <function name='xmlNodeSetName' file='tree' module='tree'>
<cond>defined(LIBXML_TREE_ENABLED)</cond>
<info>Set (or reset) the name of a node.</info>
<return type='void'/>
<arg name='cur' type='xmlNodePtr' info='the node being changed'/>
<arg name='name' type='const xmlChar *' info='the new tag name'/>
</function>
- <function name='xmlNodeSetSpacePreserve' file='tree'>
+ <function name='xmlNodeSetSpacePreserve' file='tree' module='tree'>
<cond>defined(LIBXML_TREE_ENABLED)</cond>
<info>Set (or reset) the space preserving behaviour of a node, i.e. the value of the xml:space attribute.</info>
<return type='void'/>
<arg name='cur' type='xmlNodePtr' info='the node being changed'/>
<arg name='val' type='int' info='the xml:space value (&quot;0&quot;: default, 1: &quot;preserve&quot;)'/>
</function>
- <function name='xmlNormalizeURIPath' file='uri'>
+ <function name='xmlNormalizeURIPath' file='uri' module='uri'>
<info>Applies the 5 normalization steps to a path string--that is, RFC 2396 Section 5.2, steps 6.c through 6.g. Normalization occurs directly on the string, no new allocation is done</info>
<return type='int' info='0 or an error code'/>
<arg name='path' type='char *' info='pointer to the path string'/>
</function>
- <function name='xmlNormalizeWindowsPath' file='xmlIO'>
+ <function name='xmlNormalizeWindowsPath' file='xmlIO' module='xmlIO'>
<info>This function is obsolete. Please see xmlURIFromPath in uri.c for a better solution.</info>
<return type='xmlChar *' info='a canonicalized version of the path'/>
<arg name='path' type='const xmlChar *' info='the input file path'/>
</function>
- <function name='xmlOutputBufferClose' file='xmlIO'>
+ <function name='xmlOutputBufferClose' file='xmlIO' module='xmlIO'>
<cond>defined(LIBXML_OUTPUT_ENABLED)</cond>
<info>flushes and close the output I/O channel and free up all the associated resources</info>
<return type='int' info='the number of byte written or -1 in case of error.'/>
<arg name='out' type='xmlOutputBufferPtr' info='a buffered output'/>
</function>
- <function name='xmlOutputBufferCreateFd' file='xmlIO'>
+ <function name='xmlOutputBufferCreateFd' file='xmlIO' module='xmlIO'>
<cond>defined(LIBXML_OUTPUT_ENABLED)</cond>
<info>Create a buffered output for the progressive saving to a file descriptor</info>
<return type='xmlOutputBufferPtr' info='the new parser output or NULL'/>
<arg name='fd' type='int' info='a file descriptor number'/>
<arg name='encoder' type='xmlCharEncodingHandlerPtr' info='the encoding converter or NULL'/>
</function>
- <function name='xmlOutputBufferCreateFile' file='xmlIO'>
+ <function name='xmlOutputBufferCreateFile' file='xmlIO' module='xmlIO'>
<cond>defined(LIBXML_OUTPUT_ENABLED)</cond>
<info>Create a buffered output for the progressive saving to a FILE * buffered C I/O</info>
<return type='xmlOutputBufferPtr' info='the new parser output or NULL'/>
<arg name='file' type='FILE *' info='a FILE*'/>
<arg name='encoder' type='xmlCharEncodingHandlerPtr' info='the encoding converter or NULL'/>
</function>
- <function name='xmlOutputBufferCreateFilename' file='xmlIO'>
+ <function name='xmlOutputBufferCreateFilename' file='xmlIO' module='xmlIO'>
<cond>defined(LIBXML_OUTPUT_ENABLED)</cond>
<info>Create a buffered output for the progressive saving of a file If filename is &quot;-&apos; then we use stdout as the output. Automatic support for ZLIB/Compress compressed document is provided by default if found at compile-time. TODO: currently if compression is set, the library only support writing to a local file.</info>
<return type='xmlOutputBufferPtr' info='the new output or NULL'/>
@@ -10965,19 +10985,19 @@ actually an xmlCharEncoding'/>
<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'>
+ <function name='xmlOutputBufferCreateFilenameDefault' file='globals' module='xmlIO'>
<info>Registers a callback for URI output file handling</info>
<return type='xmlOutputBufferCreateFilenameFunc' info='the old value of the registration function'/>
<arg name='func' type='xmlOutputBufferCreateFilenameFunc' info='function pointer to the new OutputBufferCreateFilenameFunc'/>
</function>
- <functype name='xmlOutputBufferCreateFilenameFunc' file='globals'>
+ <functype name='xmlOutputBufferCreateFilenameFunc' file='globals' module='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'>
+ <function name='xmlOutputBufferCreateIO' file='xmlIO' module='xmlIO'>
<cond>defined(LIBXML_OUTPUT_ENABLED)</cond>
<info>Create a buffered output for the progressive saving to an I/O handler</info>
<return type='xmlOutputBufferPtr' info='the new parser output or NULL'/>
@@ -10986,13 +11006,13 @@ actually an xmlCharEncoding'/>
<arg name='ioctx' type='void *' info='an I/O handler'/>
<arg name='encoder' type='xmlCharEncodingHandlerPtr' info='the charset encoding if known'/>
</function>
- <function name='xmlOutputBufferFlush' file='xmlIO'>
+ <function name='xmlOutputBufferFlush' file='xmlIO' module='xmlIO'>
<cond>defined(LIBXML_OUTPUT_ENABLED)</cond>
<info>flushes the output I/O channel</info>
<return type='int' info='the number of byte written or -1 in case of error.'/>
<arg name='out' type='xmlOutputBufferPtr' info='a buffered output'/>
</function>
- <function name='xmlOutputBufferWrite' file='xmlIO'>
+ <function name='xmlOutputBufferWrite' file='xmlIO' module='xmlIO'>
<cond>defined(LIBXML_OUTPUT_ENABLED)</cond>
<info>Write the content of the array in the output I/O buffer This routine handle the I18N transcoding from internal UTF-8 The buffer is lossless, i.e. will store in case of partial or delayed writes.</info>
<return type='int' info='the number of chars immediately written, or -1 in case of error.'/>
@@ -11000,7 +11020,7 @@ actually an xmlCharEncoding'/>
<arg name='len' type='int' info='the size in bytes of the array.'/>
<arg name='buf' type='const char *' info='an char array'/>
</function>
- <function name='xmlOutputBufferWriteEscape' file='xmlIO'>
+ <function name='xmlOutputBufferWriteEscape' file='xmlIO' module='xmlIO'>
<cond>defined(LIBXML_OUTPUT_ENABLED)</cond>
<info>Write the content of the string in the output I/O buffer This routine escapes the 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.'/>
@@ -11008,32 +11028,32 @@ actually an xmlCharEncoding'/>
<arg name='str' type='const xmlChar *' info='a zero terminated UTF-8 string'/>
<arg name='escaping' type='xmlCharEncodingOutputFunc' info='an optional escaping function (or NULL)'/>
</function>
- <function name='xmlOutputBufferWriteString' file='xmlIO'>
+ <function name='xmlOutputBufferWriteString' file='xmlIO' module='xmlIO'>
<cond>defined(LIBXML_OUTPUT_ENABLED)</cond>
<info>Write the content of the string in the output I/O buffer This routine handle the I18N transcoding from internal UTF-8 The buffer is lossless, i.e. will store in case of partial or delayed writes.</info>
<return type='int' info='the number of chars immediately written, or -1 in case of error.'/>
<arg name='out' type='xmlOutputBufferPtr' info='a buffered parser output'/>
<arg name='str' type='const char *' info='a zero terminated C string'/>
</function>
- <functype name='xmlOutputCloseCallback' file='xmlIO'>
+ <functype name='xmlOutputCloseCallback' file='xmlIO' module='xmlIO'>
<cond>defined(LIBXML_OUTPUT_ENABLED)</cond>
<info>Callback used in the I/O Output API to close the resource</info>
<return type='int' info='0 or -1 in case of error'/>
<arg name='context' type='void *' info='an Output context'/>
</functype>
- <functype name='xmlOutputMatchCallback' file='xmlIO'>
+ <functype name='xmlOutputMatchCallback' file='xmlIO' module='xmlIO'>
<cond>defined(LIBXML_OUTPUT_ENABLED)</cond>
<info>Callback used in the I/O Output API to detect if the current handler can provide output 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'>
+ <functype name='xmlOutputOpenCallback' file='xmlIO' module='xmlIO'>
<cond>defined(LIBXML_OUTPUT_ENABLED)</cond>
<info>Callback used in the I/O Output API to open the resource</info>
<return type='void *' info='an Output context or NULL in case or error'/>
<arg name='filename' type='char const *' info='the filename or URI'/>
</functype>
- <functype name='xmlOutputWriteCallback' file='xmlIO'>
+ <functype name='xmlOutputWriteCallback' file='xmlIO' module='xmlIO'>
<cond>defined(LIBXML_OUTPUT_ENABLED)</cond>
<info>Callback used in the I/O Output API to write to the resource</info>
<return type='int' info='the number of bytes written or -1 in case of error'/>
@@ -11041,30 +11061,30 @@ actually an xmlCharEncoding'/>
<arg name='buffer' type='const char *' info='the buffer of data to write'/>
<arg name='len' type='int' info='the length of the buffer in bytes'/>
</functype>
- <function name='xmlParseAttValue' file='parserInternals'>
+ <function name='xmlParseAttValue' file='parserInternals' module='parser'>
<info>parse a value for an attribute Note: the parser won&apos;t do substitution of entities here, this will be handled later in xmlStringGetNodeList [10] AttValue ::= &apos;&quot;&apos; ([^&lt;&amp;&quot;] | Reference)* &apos;&quot;&apos; | &quot;&apos;&quot; ([^&lt;&amp;&apos;] | Reference)* &quot;&apos;&quot; 3.3.3 Attribute-Value Normalization: Before the value of an attribute is passed to the application or checked for validity, the XML processor must normalize it as follows: - a character reference is processed by appending the referenced character to the attribute value - an entity reference is processed by recursively processing the replacement text of the entity - a whitespace character (#x20, #xD, #xA, #x9) is processed by appending #x20 to the normalized value, except that only a single #x20 is appended for a &quot;#xD#xA&quot; sequence that is part of an external parsed entity or the literal entity value of an internal parsed entity - other characters are processed by appending them to the normalized value If the declared value is not CDATA, then the XML processor must further process the normalized attribute value by discarding any leading and trailing space (#x20) characters, and by replacing sequences of space (#x20) characters by a single space (#x20) character. All attributes for which no declaration has been read should be treated by a non-validating parser as if declared CDATA.</info>
<return type='xmlChar *' info='the AttValue parsed or NULL. The value has to be freed by the caller.'/>
<arg name='ctxt' type='xmlParserCtxtPtr' info='an XML parser context'/>
</function>
- <function name='xmlParseAttribute' file='parserInternals'>
+ <function name='xmlParseAttribute' file='parserInternals' module='parser'>
<cond>defined(LIBXML_SAX1_ENABLED)</cond>
<info>parse an attribute [41] Attribute ::= Name Eq AttValue [ WFC: No External Entity References ] Attribute values cannot contain direct or indirect entity references to external entities. [ WFC: No &lt; in Attribute Values ] The replacement text of any entity referred to directly or indirectly in an attribute value (other than &quot;&amp;lt;&quot;) must not contain a &lt;. [ VC: Attribute Value Type ] The attribute must have been declared; the value must be of the type declared for it. [25] Eq ::= S? &apos;=&apos; S? With namespace: [NS 11] Attribute ::= QName Eq AttValue Also the case QName == xmlns:??? is handled independently as a namespace definition.</info>
<return type='const xmlChar *' info='the attribute name, and the value in *value.'/>
<arg name='ctxt' type='xmlParserCtxtPtr' info='an XML parser context'/>
<arg name='value' type='xmlChar **' info='a xmlChar ** used to store the value of the attribute'/>
</function>
- <function name='xmlParseAttributeListDecl' file='parserInternals'>
+ <function name='xmlParseAttributeListDecl' file='parserInternals' module='parser'>
<info>: parse the Attribute list def for an element [52] AttlistDecl ::= &apos;&lt;!ATTLIST&apos; S Name AttDef* S? &apos;&gt;&apos; [53] AttDef ::= S Name S AttType S DefaultDecl</info>
<return type='void'/>
<arg name='ctxt' type='xmlParserCtxtPtr' info='an XML parser context'/>
</function>
- <function name='xmlParseAttributeType' file='parserInternals'>
+ <function name='xmlParseAttributeType' file='parserInternals' module='parser'>
<info>parse the Attribute list def for an element [54] AttType ::= StringType | TokenizedType | EnumeratedType [55] StringType ::= &apos;CDATA&apos; [56] TokenizedType ::= &apos;ID&apos; | &apos;IDREF&apos; | &apos;IDREFS&apos; | &apos;ENTITY&apos; | &apos;ENTITIES&apos; | &apos;NMTOKEN&apos; | &apos;NMTOKENS&apos; Validity constraints for attribute values syntax are checked in xmlValidateAttributeValue() [ VC: ID ] Values of type ID must match the Name production. A name must not appear more than once in an XML document as a value of this type; i.e., ID values must uniquely identify the elements which bear them. [ VC: One ID per Element Type ] No element type may have more than one ID attribute specified. [ VC: ID Attribute Default ] An ID attribute must have a declared default of #IMPLIED or #REQUIRED. [ VC: IDREF ] Values of type IDREF must match the Name production, and values of type IDREFS must match Names; each IDREF Name must match the value of an ID attribute on some element in the XML document; i.e. IDREF values must match the value of some ID attribute. [ VC: Entity Name ] Values of type ENTITY must match the Name production, values of type ENTITIES must match Names; each Entity Name must match the name of an unparsed entity declared in the DTD. [ VC: Name Token ] Values of type NMTOKEN must match the Nmtoken production; values of type NMTOKENS must match Nmtokens.</info>
<return type='int' info='the attribute type'/>
<arg name='ctxt' type='xmlParserCtxtPtr' info='an XML parser context'/>
<arg name='tree' type='xmlEnumerationPtr *' info='the enumeration tree built while parsing'/>
</function>
- <function name='xmlParseBalancedChunkMemory' file='parser'>
+ <function name='xmlParseBalancedChunkMemory' file='parser' module='parser'>
<cond>defined(LIBXML_SAX1_ENABLED)</cond>
<info>Parse a well-balanced chunk of an XML document called by the parser The allowed sequence for the Well Balanced Chunk is the one defined by the content production in the XML grammar: [43] content ::= (element | CharData | Reference | CDSect | PI | Comment)*</info>
<return type='int' info='0 if the chunk is well balanced, -1 in case of args problem and the parser error code otherwise'/>
@@ -11075,7 +11095,7 @@ actually an xmlCharEncoding'/>
<arg name='string' type='const xmlChar *' info='the input string in UTF8 or ISO-Latin (zero terminated)'/>
<arg name='lst' type='xmlNodePtr *' info='the return value for the set of parsed nodes'/>
</function>
- <function name='xmlParseBalancedChunkMemoryRecover' file='parser'>
+ <function name='xmlParseBalancedChunkMemoryRecover' file='parser' module='parser'>
<cond>defined(LIBXML_SAX1_ENABLED)</cond>
<info>Parse a well-balanced chunk of an XML document called by the parser The allowed sequence for the Well Balanced Chunk is the one defined by the content production in the XML grammar: [43] content ::= (element | CharData | Reference | CDSect | PI | Comment)*</info>
<return type='int' info='0 if the chunk is well balanced, -1 in case of args problem and the parser error code otherwise In case recover is set to 1, the nodelist will not be empty even if the parsed chunk is not well balanced.'/>
@@ -11087,34 +11107,34 @@ actually an xmlCharEncoding'/>
<arg name='lst' type='xmlNodePtr *' info='the return value for the set of parsed nodes'/>
<arg name='recover' type='int' info='return nodes even if the data is broken (use 0)'/>
</function>
- <function name='xmlParseCDSect' file='parserInternals'>
+ <function name='xmlParseCDSect' file='parserInternals' module='parser'>
<info>Parse escaped pure raw content. [18] CDSect ::= CDStart CData CDEnd [19] CDStart ::= &apos;&lt;![CDATA[&apos; [20] Data ::= (Char* - (Char* &apos;]]&gt;&apos; Char*)) [21] CDEnd ::= &apos;]]&gt;&apos;</info>
<return type='void'/>
<arg name='ctxt' type='xmlParserCtxtPtr' info='an XML parser context'/>
</function>
- <function name='xmlParseCatalogFile' file='catalog'>
+ <function name='xmlParseCatalogFile' file='catalog' module='catalog'>
<cond>defined(LIBXML_CATALOG_ENABLED)</cond>
<info>parse an XML file and build a tree. It&apos;s like xmlParseFile() except it bypass all catalog lookups.</info>
<return type='xmlDocPtr' info='the resulting document tree or NULL in case of error'/>
<arg name='filename' type='const char *' info='the filename'/>
</function>
- <function name='xmlParseCharData' file='parserInternals'>
+ <function name='xmlParseCharData' file='parserInternals' module='parser'>
<info>parse a CharData section. if we are within a CDATA section &apos;]]&gt;&apos; marks an end of section. The right angle bracket (&gt;) may be represented using the string &quot;&amp;gt;&quot;, and must, for compatibility, be escaped using &quot;&amp;gt;&quot; or a character reference when it appears in the string &quot;]]&gt;&quot; in content, when that string is not marking the end of a CDATA section. [14] CharData ::= [^&lt;&amp;]* - ([^&lt;&amp;]* &apos;]]&gt;&apos; [^&lt;&amp;]*)</info>
<return type='void'/>
<arg name='ctxt' type='xmlParserCtxtPtr' info='an XML parser context'/>
<arg name='cdata' type='int' info='int indicating whether we are within a CDATA section'/>
</function>
- <function name='xmlParseCharEncoding' file='encoding'>
+ <function name='xmlParseCharEncoding' file='encoding' module='encoding'>
<info>Compare the string to the encoding schemes already known. Note that the comparison is case insensitive accordingly to the section [XML] 4.3.3 Character Encoding in Entities.</info>
<return type='xmlCharEncoding' info='one of the XML_CHAR_ENCODING_... values or XML_CHAR_ENCODING_NONE if not recognized.'/>
<arg name='name' type='const char *' info='the encoding name as parsed, in UTF-8 format (ASCII actually)'/>
</function>
- <function name='xmlParseCharRef' file='parserInternals'>
+ <function name='xmlParseCharRef' file='parserInternals' module='parser'>
<info>parse Reference declarations [66] CharRef ::= &apos;&amp;#&apos; [0-9]+ &apos;;&apos; | &apos;&amp;#x&apos; [0-9a-fA-F]+ &apos;;&apos; [ WFC: Legal Character ] Characters referred to using character references must match the production for Char.</info>
<return type='int' info='the value parsed (as an int), 0 in case of error'/>
<arg name='ctxt' type='xmlParserCtxtPtr' info='an XML parser context'/>
</function>
- <function name='xmlParseChunk' file='parser'>
+ <function name='xmlParseChunk' file='parser' module='parser'>
<cond>defined(LIBXML_PUSH_ENABLED)</cond>
<info>Parse a Chunk of memory</info>
<return type='int' info='zero if no error, the xmlParserErrors otherwise.'/>
@@ -11123,17 +11143,17 @@ actually an xmlCharEncoding'/>
<arg name='size' type='int' info='the size in byte of the chunk'/>
<arg name='terminate' type='int' info='last chunk indicator'/>
</function>
- <function name='xmlParseComment' file='parserInternals'>
+ <function name='xmlParseComment' file='parserInternals' module='parser'>
<info>Skip an XML (SGML) comment &lt;!-- .... --&gt; The spec says that &quot;For compatibility, the string &quot;--&quot; (double-hyphen) must not occur within comments. &quot; [15] Comment ::= &apos;&lt;!--&apos; ((Char - &apos;-&apos;) | (&apos;-&apos; (Char - &apos;-&apos;)))* &apos;--&gt;&apos;</info>
<return type='void'/>
<arg name='ctxt' type='xmlParserCtxtPtr' info='an XML parser context'/>
</function>
- <function name='xmlParseContent' file='parserInternals'>
+ <function name='xmlParseContent' file='parserInternals' module='parser'>
<info>Parse a content: [43] content ::= (element | CharData | Reference | CDSect | PI | Comment)*</info>
<return type='void'/>
<arg name='ctxt' type='xmlParserCtxtPtr' info='an XML parser context'/>
</function>
- <function name='xmlParseCtxtExternalEntity' file='parser'>
+ <function name='xmlParseCtxtExternalEntity' file='parser' module='parser'>
<info>Parse an external general entity within an existing parsing context An external general parsed entity is well-formed if it matches the production labeled extParsedEnt. [78] extParsedEnt ::= TextDecl? content</info>
<return type='int' info='0 if the entity is well formed, -1 in case of args problem and the parser error code otherwise'/>
<arg name='ctx' type='xmlParserCtxtPtr' info='the existing parsing context'/>
@@ -11141,119 +11161,119 @@ actually an xmlCharEncoding'/>
<arg name='ID' type='const xmlChar *' info='the System ID for the entity to load'/>
<arg name='lst' type='xmlNodePtr *' info='the return value for the set of parsed nodes'/>
</function>
- <function name='xmlParseDTD' file='parser'>
+ <function name='xmlParseDTD' file='parser' module='parser'>
<cond>defined(LIBXML_VALID_ENABLED)</cond>
<info>Load and parse an external subset.</info>
<return type='xmlDtdPtr' info='the resulting xmlDtdPtr or NULL in case of error.'/>
<arg name='ExternalID' type='const xmlChar *' info='a NAME* containing the External ID of the DTD'/>
<arg name='SystemID' type='const xmlChar *' info='a NAME* containing the URL to the DTD'/>
</function>
- <function name='xmlParseDefaultDecl' file='parserInternals'>
+ <function name='xmlParseDefaultDecl' file='parserInternals' module='parser'>
<info>Parse an attribute default declaration [60] DefaultDecl ::= &apos;#REQUIRED&apos; | &apos;#IMPLIED&apos; | ((&apos;#FIXED&apos; S)? AttValue) [ VC: Required Attribute ] if the default declaration is the keyword #REQUIRED, then the attribute must be specified for all elements of the type in the attribute-list declaration. [ VC: Attribute Default Legal ] The declared default value must meet the lexical constraints of the declared attribute type c.f. xmlValidateAttributeDecl() [ VC: Fixed Attribute Default ] if an attribute has a default value declared with the #FIXED keyword, instances of that attribute must match the default value. [ WFC: No &lt; in Attribute Values ] handled in xmlParseAttValue()</info>
<return type='int' info='XML_ATTRIBUTE_NONE, XML_ATTRIBUTE_REQUIRED, XML_ATTRIBUTE_IMPLIED or XML_ATTRIBUTE_FIXED.'/>
<arg name='ctxt' type='xmlParserCtxtPtr' info='an XML parser context'/>
<arg name='value' type='xmlChar **' info='Receive a possible fixed default value for the attribute'/>
</function>
- <function name='xmlParseDoc' file='parser'>
+ <function name='xmlParseDoc' file='parser' module='parser'>
<cond>defined(LIBXML_SAX1_ENABLED)</cond>
<info>parse an XML in-memory document and build a tree.</info>
<return type='xmlDocPtr' info='the resulting document tree'/>
- <arg name='cur' type='xmlChar *' info='a pointer to an array of xmlChar'/>
+ <arg name='cur' type='const xmlChar *' info='a pointer to an array of xmlChar'/>
</function>
- <function name='xmlParseDocTypeDecl' file='parserInternals'>
+ <function name='xmlParseDocTypeDecl' file='parserInternals' module='parser'>
<info>parse a DOCTYPE declaration [28] doctypedecl ::= &apos;&lt;!DOCTYPE&apos; S Name (S ExternalID)? S? (&apos;[&apos; (markupdecl | PEReference | S)* &apos;]&apos; S?)? &apos;&gt;&apos; [ VC: Root Element Type ] The Name in the document type declaration must match the element type of the root element.</info>
<return type='void'/>
<arg name='ctxt' type='xmlParserCtxtPtr' info='an XML parser context'/>
</function>
- <function name='xmlParseDocument' file='parser'>
+ <function name='xmlParseDocument' file='parser' module='parser'>
<info>parse an XML document (and build a tree if using the standard SAX interface). [1] document ::= prolog element Misc* [22] prolog ::= XMLDecl? Misc* (doctypedecl Misc*)?</info>
<return type='int' info='0, -1 in case of error. the parser context is augmented as a result of the parsing.'/>
<arg name='ctxt' type='xmlParserCtxtPtr' info='an XML parser context'/>
</function>
- <function name='xmlParseElement' file='parserInternals'>
+ <function name='xmlParseElement' file='parserInternals' module='parser'>
<info>parse an XML element, this is highly recursive [39] element ::= EmptyElemTag | STag content ETag [ WFC: Element Type Match ] The Name in an element&apos;s end-tag must match the element type in the start-tag.</info>
<return type='void'/>
<arg name='ctxt' type='xmlParserCtxtPtr' info='an XML parser context'/>
</function>
- <function name='xmlParseElementChildrenContentDecl' file='parserInternals'>
+ <function name='xmlParseElementChildrenContentDecl' file='parserInternals' module='parser'>
<info>parse the declaration for a Mixed Element content The leading &apos;(&apos; and spaces have been skipped in xmlParseElementContentDecl [47] children ::= (choice | seq) (&apos;?&apos; | &apos;*&apos; | &apos;+&apos;)? [48] cp ::= (Name | choice | seq) (&apos;?&apos; | &apos;*&apos; | &apos;+&apos;)? [49] choice ::= &apos;(&apos; S? cp ( S? &apos;|&apos; S? cp )* S? &apos;)&apos; [50] seq ::= &apos;(&apos; S? cp ( S? &apos;,&apos; S? cp )* S? &apos;)&apos; [ VC: Proper Group/PE Nesting ] applies to [49] and [50] TODO Parameter-entity replacement text must be properly nested with parenthesized groups. That is to say, if either of the opening or closing parentheses in a choice, seq, or Mixed construct is contained in the replacement text for a parameter entity, both must be contained in the same replacement text. For interoperability, if a parameter-entity reference appears in a choice, seq, or Mixed construct, its replacement text should not be empty, and neither the first nor last non-blank character of the replacement text should be a connector (| or ,).</info>
<return type='xmlElementContentPtr' info='the tree of xmlElementContentPtr describing the element hierarchy.'/>
<arg name='ctxt' type='xmlParserCtxtPtr' info='an XML parser context'/>
<arg name='inputchk' type='int' info='the input used for the current entity, needed for boundary checks'/>
</function>
- <function name='xmlParseElementContentDecl' file='parserInternals'>
+ <function name='xmlParseElementContentDecl' file='parserInternals' module='parser'>
<info>parse the declaration for an Element content either Mixed or Children, the cases EMPTY and ANY are handled directly in xmlParseElementDecl [46] contentspec ::= &apos;EMPTY&apos; | &apos;ANY&apos; | Mixed | children</info>
<return type='int' info='the type of element content XML_ELEMENT_TYPE_xxx'/>
<arg name='ctxt' type='xmlParserCtxtPtr' info='an XML parser context'/>
<arg name='name' type='const xmlChar *' info='the name of the element being defined.'/>
<arg name='result' type='xmlElementContentPtr *' info='the Element Content pointer will be stored here if any'/>
</function>
- <function name='xmlParseElementDecl' file='parserInternals'>
+ <function name='xmlParseElementDecl' file='parserInternals' module='parser'>
<info>parse an Element declaration. [45] elementdecl ::= &apos;&lt;!ELEMENT&apos; S Name S contentspec S? &apos;&gt;&apos; [ VC: Unique Element Type Declaration ] No element type may be declared more than once</info>
<return type='int' info='the type of the element, or -1 in case of error'/>
<arg name='ctxt' type='xmlParserCtxtPtr' info='an XML parser context'/>
</function>
- <function name='xmlParseElementMixedContentDecl' file='parserInternals'>
+ <function name='xmlParseElementMixedContentDecl' file='parserInternals' module='parser'>
<info>parse the declaration for a Mixed Element content The leading &apos;(&apos; and spaces have been skipped in xmlParseElementContentDecl [51] Mixed ::= &apos;(&apos; S? &apos;#PCDATA&apos; (S? &apos;|&apos; S? Name)* S? &apos;)*&apos; | &apos;(&apos; S? &apos;#PCDATA&apos; S? &apos;)&apos; [ VC: Proper Group/PE Nesting ] applies to [51] too (see [49]) [ VC: No Duplicate Types ] The same name must not appear more than once in a single mixed-content declaration.</info>
<return type='xmlElementContentPtr' info='the list of the xmlElementContentPtr describing the element choices'/>
<arg name='ctxt' type='xmlParserCtxtPtr' info='an XML parser context'/>
<arg name='inputchk' type='int' info='the input used for the current entity, needed for boundary checks'/>
</function>
- <function name='xmlParseEncName' file='parserInternals'>
+ <function name='xmlParseEncName' file='parserInternals' module='parser'>
<info>parse the XML encoding name [81] EncName ::= [A-Za-z] ([A-Za-z0-9._] | &apos;-&apos;)*</info>
<return type='xmlChar *' info='the encoding name value or NULL'/>
<arg name='ctxt' type='xmlParserCtxtPtr' info='an XML parser context'/>
</function>
- <function name='xmlParseEncodingDecl' file='parserInternals'>
+ <function name='xmlParseEncodingDecl' file='parserInternals' module='parser'>
<info>parse the XML encoding declaration [80] EncodingDecl ::= S &apos;encoding&apos; Eq (&apos;&quot;&apos; EncName &apos;&quot;&apos; | &quot;&apos;&quot; EncName &quot;&apos;&quot;) this setups the conversion filters.</info>
<return type='const xmlChar *' info='the encoding value or NULL'/>
<arg name='ctxt' type='xmlParserCtxtPtr' info='an XML parser context'/>
</function>
- <function name='xmlParseEndTag' file='parserInternals'>
+ <function name='xmlParseEndTag' file='parserInternals' module='parser'>
<cond>defined(LIBXML_SAX1_ENABLED)</cond>
<info>parse an end of tag [42] ETag ::= &apos;&lt;/&apos; Name S? &apos;&gt;&apos; With namespace [NS 9] ETag ::= &apos;&lt;/&apos; QName S? &apos;&gt;&apos;</info>
<return type='void'/>
<arg name='ctxt' type='xmlParserCtxtPtr' info='an XML parser context'/>
</function>
- <function name='xmlParseEntity' file='parser'>
+ <function name='xmlParseEntity' file='parser' module='parser'>
<cond>defined(LIBXML_SAX1_ENABLED)</cond>
<info>parse an XML external entity out of context and build a tree. [78] extParsedEnt ::= TextDecl? content This correspond to a &quot;Well Balanced&quot; chunk</info>
<return type='xmlDocPtr' info='the resulting document tree'/>
<arg name='filename' type='const char *' info='the filename'/>
</function>
- <function name='xmlParseEntityDecl' file='parserInternals'>
+ <function name='xmlParseEntityDecl' file='parserInternals' module='parser'>
<info>parse &lt;!ENTITY declarations [70] EntityDecl ::= GEDecl | PEDecl [71] GEDecl ::= &apos;&lt;!ENTITY&apos; S Name S EntityDef S? &apos;&gt;&apos; [72] PEDecl ::= &apos;&lt;!ENTITY&apos; S &apos;%&apos; S Name S PEDef S? &apos;&gt;&apos; [73] EntityDef ::= EntityValue | (ExternalID NDataDecl?) [74] PEDef ::= EntityValue | ExternalID [76] NDataDecl ::= S &apos;NDATA&apos; S Name [ VC: Notation Declared ] The Name must match the declared name of a notation.</info>
<return type='void'/>
<arg name='ctxt' type='xmlParserCtxtPtr' info='an XML parser context'/>
</function>
- <function name='xmlParseEntityRef' file='parserInternals'>
+ <function name='xmlParseEntityRef' file='parserInternals' module='parser'>
<info>parse ENTITY references declarations [68] EntityRef ::= &apos;&amp;&apos; Name &apos;;&apos; [ WFC: Entity Declared ] In a document without any DTD, a document with only an internal DTD subset which contains no parameter entity references, or a document with &quot;standalone=&apos;yes&apos;&quot;, the Name given in the entity reference must match that in an entity declaration, except that well-formed documents need not declare any of the following entities: amp, lt, gt, apos, quot. The declaration of a parameter entity must precede any reference to it. Similarly, the declaration of a general entity must precede any reference to it which appears in a default value in an attribute-list declaration. Note that if entities are declared in the external subset or in external parameter entities, a non-validating processor is not obligated to read and process their declarations; for such documents, the rule that an entity must be declared is a well-formedness constraint only if standalone=&apos;yes&apos;. [ WFC: Parsed Entity ] An entity reference must not contain the name of an unparsed entity</info>
<return type='xmlEntityPtr' info='the xmlEntityPtr if found, or NULL otherwise.'/>
<arg name='ctxt' type='xmlParserCtxtPtr' info='an XML parser context'/>
</function>
- <function name='xmlParseEntityValue' file='parserInternals'>
+ <function name='xmlParseEntityValue' file='parserInternals' module='parser'>
<info>parse a value for ENTITY declarations [9] EntityValue ::= &apos;&quot;&apos; ([^%&amp;&quot;] | PEReference | Reference)* &apos;&quot;&apos; | &quot;&apos;&quot; ([^%&amp;&apos;] | PEReference | Reference)* &quot;&apos;&quot;</info>
<return type='xmlChar *' info='the EntityValue parsed with reference substituted or NULL'/>
<arg name='ctxt' type='xmlParserCtxtPtr' info='an XML parser context'/>
<arg name='orig' type='xmlChar **' info='if non-NULL store a copy of the original entity value'/>
</function>
- <function name='xmlParseEnumeratedType' file='parserInternals'>
+ <function name='xmlParseEnumeratedType' file='parserInternals' module='parser'>
<info>parse an Enumerated attribute type. [57] EnumeratedType ::= NotationType | Enumeration [58] NotationType ::= &apos;NOTATION&apos; S &apos;(&apos; S? Name (S? &apos;|&apos; S? Name)* S? &apos;)&apos;</info>
<return type='int' info='XML_ATTRIBUTE_ENUMERATION or XML_ATTRIBUTE_NOTATION'/>
<arg name='ctxt' type='xmlParserCtxtPtr' info='an XML parser context'/>
<arg name='tree' type='xmlEnumerationPtr *' info='the enumeration tree built while parsing'/>
</function>
- <function name='xmlParseEnumerationType' file='parserInternals'>
+ <function name='xmlParseEnumerationType' file='parserInternals' module='parser'>
<info>parse an Enumeration attribute type. [59] Enumeration ::= &apos;(&apos; S? Nmtoken (S? &apos;|&apos; S? Nmtoken)* S? &apos;)&apos; [ VC: Enumeration ] Values of this type must match one of the Nmtoken tokens in the declaration</info>
<return type='xmlEnumerationPtr' info='the enumeration attribute tree built while parsing'/>
<arg name='ctxt' type='xmlParserCtxtPtr' info='an XML parser context'/>
</function>
- <function name='xmlParseExtParsedEnt' file='parser'>
+ <function name='xmlParseExtParsedEnt' file='parser' module='parser'>
<info>parse a general parsed entity An external general parsed entity is well-formed if it matches the production labeled extParsedEnt. [78] extParsedEnt ::= TextDecl? content</info>
<return type='int' info='0, -1 in case of error. the parser context is augmented as a result of the parsing.'/>
<arg name='ctxt' type='xmlParserCtxtPtr' info='an XML parser context'/>
</function>
- <function name='xmlParseExternalEntity' file='parser'>
+ <function name='xmlParseExternalEntity' file='parser' module='parser'>
<cond>defined(LIBXML_SAX1_ENABLED)</cond>
<info>Parse an external general entity An external general parsed entity is well-formed if it matches the production labeled extParsedEnt. [78] extParsedEnt ::= TextDecl? content</info>
<return type='int' info='0 if the entity is well formed, -1 in case of args problem and the parser error code otherwise'/>
@@ -11265,27 +11285,27 @@ actually an xmlCharEncoding'/>
<arg name='ID' type='const xmlChar *' info='the System ID for the entity to load'/>
<arg name='lst' type='xmlNodePtr *' info='the return value for the set of parsed nodes'/>
</function>
- <function name='xmlParseExternalID' file='parserInternals'>
+ <function name='xmlParseExternalID' file='parserInternals' module='parser'>
<info>Parse an External ID or a Public ID NOTE: Productions [75] and [83] interact badly since [75] can generate &apos;PUBLIC&apos; S PubidLiteral S SystemLiteral [75] ExternalID ::= &apos;SYSTEM&apos; S SystemLiteral | &apos;PUBLIC&apos; S PubidLiteral S SystemLiteral [83] PublicID ::= &apos;PUBLIC&apos; S PubidLiteral</info>
<return type='xmlChar *' info='the function returns SystemLiteral and in the second case publicID receives PubidLiteral, is strict is off it is possible to return NULL and have publicID set.'/>
<arg name='ctxt' type='xmlParserCtxtPtr' info='an XML parser context'/>
<arg name='publicID' type='xmlChar **' info='a xmlChar** receiving PubidLiteral'/>
<arg name='strict' type='int' info='indicate whether we should restrict parsing to only production [75], see NOTE below'/>
</function>
- <function name='xmlParseExternalSubset' file='parserInternals'>
+ <function name='xmlParseExternalSubset' file='parserInternals' module='parser'>
<info>parse Markup declarations from an external subset [30] extSubset ::= textDecl? extSubsetDecl [31] extSubsetDecl ::= (markupdecl | conditionalSect | PEReference | S) *</info>
<return type='void'/>
<arg name='ctxt' type='xmlParserCtxtPtr' info='an XML parser context'/>
<arg name='ExternalID' type='const xmlChar *' info='the external identifier'/>
<arg name='SystemID' type='const xmlChar *' info='the system identifier (or URL)'/>
</function>
- <function name='xmlParseFile' file='parser'>
+ <function name='xmlParseFile' file='parser' module='parser'>
<cond>defined(LIBXML_SAX1_ENABLED)</cond>
<info>parse an XML file and build a tree. Automatic support for ZLIB/Compress compressed document is provided by default if found at compile-time.</info>
<return type='xmlDocPtr' info='the resulting document tree if the file was wellformed, NULL otherwise.'/>
<arg name='filename' type='const char *' info='the filename'/>
</function>
- <function name='xmlParseInNodeContext' file='parser'>
+ <function name='xmlParseInNodeContext' file='parser' module='parser'>
<info>Parse a well-balanced chunk of an XML document within the context (DTD, namespaces, etc ...) of the given node. The allowed sequence for the data is a Well Balanced Chunk defined by the content production in the XML grammar: [43] content ::= (element | CharData | Reference | CDSect | PI | Comment)*</info>
<return type='xmlParserErrors' info='XML_ERR_OK if the chunk is well balanced, and the parser error code otherwise'/>
<arg name='node' type='xmlNodePtr' info='the context node'/>
@@ -11294,198 +11314,198 @@ actually an xmlCharEncoding'/>
<arg name='options' type='int' info='a combination of xmlParserOption'/>
<arg name='lst' type='xmlNodePtr *' info='the return value for the set of parsed nodes'/>
</function>
- <function name='xmlParseMarkupDecl' file='parserInternals'>
+ <function name='xmlParseMarkupDecl' file='parserInternals' module='parser'>
<info>parse Markup declarations [29] markupdecl ::= elementdecl | AttlistDecl | EntityDecl | NotationDecl | PI | Comment [ VC: Proper Declaration/PE Nesting ] Parameter-entity replacement text must be properly nested with markup declarations. That is to say, if either the first character or the last character of a markup declaration (markupdecl above) is contained in the replacement text for a parameter-entity reference, both must be contained in the same replacement text. [ WFC: PEs in Internal Subset ] In the internal DTD subset, parameter-entity references can occur only where markup declarations can occur, not within markup declarations. (This does not apply to references that occur in external parameter entities or to the external subset.)</info>
<return type='void'/>
<arg name='ctxt' type='xmlParserCtxtPtr' info='an XML parser context'/>
</function>
- <function name='xmlParseMemory' file='parser'>
+ <function name='xmlParseMemory' file='parser' module='parser'>
<cond>defined(LIBXML_SAX1_ENABLED)</cond>
<info>parse an XML in-memory block and build a tree.</info>
<return type='xmlDocPtr' info='the resulting document tree'/>
<arg name='buffer' type='const char *' info='an pointer to a char array'/>
<arg name='size' type='int' info='the size of the array'/>
</function>
- <function name='xmlParseMisc' file='parserInternals'>
+ <function name='xmlParseMisc' file='parserInternals' module='parser'>
<info>parse an XML Misc* optional field. [27] Misc ::= Comment | PI | S</info>
<return type='void'/>
<arg name='ctxt' type='xmlParserCtxtPtr' info='an XML parser context'/>
</function>
- <function name='xmlParseName' file='parserInternals'>
+ <function name='xmlParseName' file='parserInternals' module='parser'>
<info>parse an XML name. [4] NameChar ::= Letter | Digit | &apos;.&apos; | &apos;-&apos; | &apos;_&apos; | &apos;:&apos; | CombiningChar | Extender [5] Name ::= (Letter | &apos;_&apos; | &apos;:&apos;) (NameChar)* [6] Names ::= Name (#x20 Name)*</info>
<return type='const xmlChar *' info='the Name parsed or NULL'/>
<arg name='ctxt' type='xmlParserCtxtPtr' info='an XML parser context'/>
</function>
- <function name='xmlParseNamespace' file='parserInternals'>
+ <function name='xmlParseNamespace' file='parserInternals' module='legacy'>
<cond>defined(LIBXML_LEGACY_ENABLED)</cond>
<info>xmlParseNamespace: parse specific PI &apos;&lt;?namespace ...&apos; constructs. This is what the older xml-name Working Draft specified, a bunch of other stuff may still rely on it, so support is still here as if it was declared on the root of the Tree:-( TODO: remove from library To be removed at next drop of binary compatibility</info>
<return type='void'/>
<arg name='ctxt' type='xmlParserCtxtPtr' info='an XML parser context'/>
</function>
- <function name='xmlParseNmtoken' file='parserInternals'>
+ <function name='xmlParseNmtoken' file='parserInternals' module='parser'>
<info>parse an XML Nmtoken. [7] Nmtoken ::= (NameChar)+ [8] Nmtokens ::= Nmtoken (#x20 Nmtoken)*</info>
<return type='xmlChar *' info='the Nmtoken parsed or NULL'/>
<arg name='ctxt' type='xmlParserCtxtPtr' info='an XML parser context'/>
</function>
- <function name='xmlParseNotationDecl' file='parserInternals'>
+ <function name='xmlParseNotationDecl' file='parserInternals' module='parser'>
<info>parse a notation declaration [82] NotationDecl ::= &apos;&lt;!NOTATION&apos; S Name S (ExternalID | PublicID) S? &apos;&gt;&apos; Hence there is actually 3 choices: &apos;PUBLIC&apos; S PubidLiteral &apos;PUBLIC&apos; S PubidLiteral S SystemLiteral and &apos;SYSTEM&apos; S SystemLiteral See the NOTE on xmlParseExternalID().</info>
<return type='void'/>
<arg name='ctxt' type='xmlParserCtxtPtr' info='an XML parser context'/>
</function>
- <function name='xmlParseNotationType' file='parserInternals'>
+ <function name='xmlParseNotationType' file='parserInternals' module='parser'>
<info>parse an Notation attribute type. Note: the leading &apos;NOTATION&apos; S part has already being parsed... [58] NotationType ::= &apos;NOTATION&apos; S &apos;(&apos; S? Name (S? &apos;|&apos; S? Name)* S? &apos;)&apos; [ VC: Notation Attributes ] Values of this type must match one of the notation names included in the declaration; all notation names in the declaration must be declared.</info>
<return type='xmlEnumerationPtr' info='the notation attribute tree built while parsing'/>
<arg name='ctxt' type='xmlParserCtxtPtr' info='an XML parser context'/>
</function>
- <function name='xmlParsePEReference' file='parserInternals'>
+ <function name='xmlParsePEReference' file='parserInternals' module='parser'>
<info>parse PEReference declarations The entity content is handled directly by pushing it&apos;s content as a new input stream. [69] PEReference ::= &apos;%&apos; Name &apos;;&apos; [ WFC: No Recursion ] A parsed entity must not contain a recursive reference to itself, either directly or indirectly. [ WFC: Entity Declared ] In a document without any DTD, a document with only an internal DTD subset which contains no parameter entity references, or a document with &quot;standalone=&apos;yes&apos;&quot;, ... ... The declaration of a parameter entity must precede any reference to it... [ VC: Entity Declared ] In a document with an external subset or external parameter entities with &quot;standalone=&apos;no&apos;&quot;, ... ... The declaration of a parameter entity must precede any reference to it... [ WFC: In DTD ] Parameter-entity references may only appear in the DTD. NOTE: misleading but this is handled.</info>
<return type='void'/>
<arg name='ctxt' type='xmlParserCtxtPtr' info='an XML parser context'/>
</function>
- <function name='xmlParsePI' file='parserInternals'>
+ <function name='xmlParsePI' file='parserInternals' module='parser'>
<info>parse an XML Processing Instruction. [16] PI ::= &apos;&lt;?&apos; PITarget (S (Char* - (Char* &apos;?&gt;&apos; Char*)))? &apos;?&gt;&apos; The processing is transfered to SAX once parsed.</info>
<return type='void'/>
<arg name='ctxt' type='xmlParserCtxtPtr' info='an XML parser context'/>
</function>
- <function name='xmlParsePITarget' file='parserInternals'>
+ <function name='xmlParsePITarget' file='parserInternals' module='parser'>
<info>parse the name of a PI [17] PITarget ::= Name - ((&apos;X&apos; | &apos;x&apos;) (&apos;M&apos; | &apos;m&apos;) (&apos;L&apos; | &apos;l&apos;))</info>
<return type='const xmlChar *' info='the PITarget name or NULL'/>
<arg name='ctxt' type='xmlParserCtxtPtr' info='an XML parser context'/>
</function>
- <function name='xmlParsePubidLiteral' file='parserInternals'>
+ <function name='xmlParsePubidLiteral' file='parserInternals' module='parser'>
<info>parse an XML public literal [12] PubidLiteral ::= &apos;&quot;&apos; PubidChar* &apos;&quot;&apos; | &quot;&apos;&quot; (PubidChar - &quot;&apos;&quot;)* &quot;&apos;&quot;</info>
<return type='xmlChar *' info='the PubidLiteral parsed or NULL.'/>
<arg name='ctxt' type='xmlParserCtxtPtr' info='an XML parser context'/>
</function>
- <function name='xmlParseQuotedString' file='parserInternals'>
+ <function name='xmlParseQuotedString' file='parserInternals' module='legacy'>
<cond>defined(LIBXML_LEGACY_ENABLED)</cond>
<info>Parse and return a string between quotes or doublequotes TODO: Deprecated, to be removed at next drop of binary compatibility</info>
<return type='xmlChar *' info='the string parser or NULL.'/>
<arg name='ctxt' type='xmlParserCtxtPtr' info='an XML parser context'/>
</function>
- <function name='xmlParseReference' file='parserInternals'>
+ <function name='xmlParseReference' file='parserInternals' module='parser'>
<info>parse and handle entity references in content, depending on the SAX interface, this may end-up in a call to character() if this is a CharRef, a predefined entity, if there is no reference() callback. or if the parser was asked to switch to that mode. [67] Reference ::= EntityRef | CharRef</info>
<return type='void'/>
<arg name='ctxt' type='xmlParserCtxtPtr' info='an XML parser context'/>
</function>
- <function name='xmlParseSDDecl' file='parserInternals'>
+ <function name='xmlParseSDDecl' file='parserInternals' module='parser'>
<info>parse the XML standalone declaration [32] SDDecl ::= S &apos;standalone&apos; Eq ((&quot;&apos;&quot; (&apos;yes&apos; | &apos;no&apos;) &quot;&apos;&quot;) | (&apos;&quot;&apos; (&apos;yes&apos; | &apos;no&apos;)&apos;&quot;&apos;)) [ VC: Standalone Document Declaration ] TODO The standalone document declaration must have the value &quot;no&quot; if any external markup declarations contain declarations of: - attributes with default values, if elements to which these attributes apply appear in the document without specifications of values for these attributes, or - entities (other than amp, lt, gt, apos, quot), if references to those entities appear in the document, or - attributes with values subject to normalization, where the attribute appears in the document with a value which will change as a result of normalization, or - element types with element content, if white space occurs directly within any instance of those types.</info>
<return type='int' info='1 if standalone, 0 otherwise'/>
<arg name='ctxt' type='xmlParserCtxtPtr' info='an XML parser context'/>
</function>
- <function name='xmlParseStartTag' file='parserInternals'>
+ <function name='xmlParseStartTag' file='parserInternals' module='parser'>
<cond>defined(LIBXML_SAX1_ENABLED)</cond>
<info>parse a start of tag either for rule element or EmptyElement. In both case we don&apos;t parse the tag closing chars. [40] STag ::= &apos;&lt;&apos; Name (S Attribute)* S? &apos;&gt;&apos; [ WFC: Unique Att Spec ] No attribute name may appear more than once in the same start-tag or empty-element tag. [44] EmptyElemTag ::= &apos;&lt;&apos; Name (S Attribute)* S? &apos;/&gt;&apos; [ WFC: Unique Att Spec ] No attribute name may appear more than once in the same start-tag or empty-element tag. With namespace: [NS 8] STag ::= &apos;&lt;&apos; QName (S Attribute)* S? &apos;&gt;&apos; [NS 10] EmptyElement ::= &apos;&lt;&apos; QName (S Attribute)* S? &apos;/&gt;&apos;</info>
<return type='const xmlChar *' info='the element name parsed'/>
<arg name='ctxt' type='xmlParserCtxtPtr' info='an XML parser context'/>
</function>
- <function name='xmlParseSystemLiteral' file='parserInternals'>
+ <function name='xmlParseSystemLiteral' file='parserInternals' module='parser'>
<info>parse an XML Literal [11] SystemLiteral ::= (&apos;&quot;&apos; [^&quot;]* &apos;&quot;&apos;) | (&quot;&apos;&quot; [^&apos;]* &quot;&apos;&quot;)</info>
<return type='xmlChar *' info='the SystemLiteral parsed or NULL'/>
<arg name='ctxt' type='xmlParserCtxtPtr' info='an XML parser context'/>
</function>
- <function name='xmlParseTextDecl' file='parserInternals'>
+ <function name='xmlParseTextDecl' file='parserInternals' module='parser'>
<info>parse an XML declaration header for external entities [77] TextDecl ::= &apos;&lt;?xml&apos; VersionInfo? EncodingDecl S? &apos;?&gt;&apos; Question: Seems that EncodingDecl is mandatory ? Is that a typo ?</info>
<return type='void'/>
<arg name='ctxt' type='xmlParserCtxtPtr' info='an XML parser context'/>
</function>
- <function name='xmlParseURI' file='uri'>
+ <function name='xmlParseURI' file='uri' module='uri'>
<info>Parse an URI URI-reference = [ absoluteURI | relativeURI ] [ &quot;#&quot; fragment ]</info>
<return type='xmlURIPtr' info='a newly built xmlURIPtr or NULL in case of error'/>
<arg name='str' type='const char *' info='the URI string to analyze'/>
</function>
- <function name='xmlParseURIReference' file='uri'>
+ <function name='xmlParseURIReference' file='uri' module='uri'>
<info>Parse an URI reference string and fills in the appropriate fields of the @uri structure URI-reference = [ absoluteURI | relativeURI ] [ &quot;#&quot; fragment ]</info>
<return type='int' info='0 or the error code'/>
<arg name='uri' type='xmlURIPtr' info='pointer to an URI structure'/>
<arg name='str' type='const char *' info='the string to analyze'/>
</function>
- <function name='xmlParseVersionInfo' file='parserInternals'>
+ <function name='xmlParseVersionInfo' file='parserInternals' module='parser'>
<info>parse the XML version. [24] VersionInfo ::= S &apos;version&apos; Eq (&apos; VersionNum &apos; | &quot; VersionNum &quot;) [25] Eq ::= S? &apos;=&apos; S?</info>
<return type='xmlChar *' info='the version string, e.g. &quot;1.0&quot;'/>
<arg name='ctxt' type='xmlParserCtxtPtr' info='an XML parser context'/>
</function>
- <function name='xmlParseVersionNum' file='parserInternals'>
+ <function name='xmlParseVersionNum' file='parserInternals' module='parser'>
<info>parse the XML version value. [26] VersionNum ::= ([a-zA-Z0-9_.:] | &apos;-&apos;)+</info>
<return type='xmlChar *' info='the string giving the XML version number, or NULL'/>
<arg name='ctxt' type='xmlParserCtxtPtr' info='an XML parser context'/>
</function>
- <function name='xmlParseXMLDecl' file='parserInternals'>
+ <function name='xmlParseXMLDecl' file='parserInternals' module='parser'>
<info>parse an XML declaration header [23] XMLDecl ::= &apos;&lt;?xml&apos; VersionInfo EncodingDecl? SDDecl? S? &apos;?&gt;&apos;</info>
<return type='void'/>
<arg name='ctxt' type='xmlParserCtxtPtr' info='an XML parser context'/>
</function>
- <function name='xmlParserAddNodeInfo' file='parser'>
+ <function name='xmlParserAddNodeInfo' file='parser' module='parserInternals'>
<info>Insert node info record into the sorted sequence</info>
<return type='void'/>
<arg name='ctxt' type='xmlParserCtxtPtr' info='an XML parser context'/>
<arg name='info' type='const xmlParserNodeInfoPtr' info='a node info sequence pointer'/>
</function>
- <function name='xmlParserError' file='xmlerror'>
+ <function name='xmlParserError' file='xmlerror' module='error'>
<info>Display and format an error messages, gives file, line, position and extra parameters.</info>
<return type='void'/>
<arg name='ctx' type='void *' info='an XML parser context'/>
<arg name='msg' type='const char *' info='the message to display/transmit'/>
<arg name='...' type='...' info='extra parameters for the message display'/>
</function>
- <function name='xmlParserFindNodeInfo' file='parser'>
+ <function name='xmlParserFindNodeInfo' file='parser' module='parserInternals'>
<info>Find the parser node info struct for a given node</info>
<return type='const xmlParserNodeInfo *' info='an xmlParserNodeInfo block pointer or NULL'/>
<arg name='ctx' type='const xmlParserCtxtPtr' info='an XML parser context'/>
<arg name='node' type='const xmlNodePtr' info='an XML node within the tree'/>
</function>
- <function name='xmlParserFindNodeInfoIndex' file='parser'>
+ <function name='xmlParserFindNodeInfoIndex' file='parser' module='parserInternals'>
<info>xmlParserFindNodeInfoIndex : Find the index that the info record for the given node is or should be at in a sorted sequence</info>
<return type='unsigned long' info='a long indicating the position of the record'/>
<arg name='seq' type='const xmlParserNodeInfoSeqPtr' info='a node info sequence pointer'/>
<arg name='node' type='const xmlNodePtr' info='an XML node pointer'/>
</function>
- <function name='xmlParserGetDirectory' file='xmlIO'>
+ <function name='xmlParserGetDirectory' file='xmlIO' module='xmlIO'>
<info>lookup the directory for that file</info>
<return type='char *' info='a new allocated string containing the directory, or NULL.'/>
<arg name='filename' type='const char *' info='the path to a file'/>
</function>
- <function name='xmlParserHandlePEReference' file='parserInternals'>
+ <function name='xmlParserHandlePEReference' file='parserInternals' module='parser'>
<info>[69] PEReference ::= &apos;%&apos; Name &apos;;&apos; [ WFC: No Recursion ] A parsed entity must not contain a recursive reference to itself, either directly or indirectly. [ WFC: Entity Declared ] In a document without any DTD, a document with only an internal DTD subset which contains no parameter entity references, or a document with &quot;standalone=&apos;yes&apos;&quot;, ... ... The declaration of a parameter entity must precede any reference to it... [ VC: Entity Declared ] In a document with an external subset or external parameter entities with &quot;standalone=&apos;no&apos;&quot;, ... ... The declaration of a parameter entity must precede any reference to it... [ WFC: In DTD ] Parameter-entity references may only appear in the DTD. NOTE: misleading but this is handled. A PEReference may have been detected in the current input stream the handling is done accordingly to http://www.w3.org/TR/REC-xml#entproc i.e. - Included in literal in entity values - Included as Parameter Entity reference within DTDs</info>
<return type='void'/>
<arg name='ctxt' type='xmlParserCtxtPtr' info='the parser context'/>
</function>
- <function name='xmlParserHandleReference' file='parserInternals'>
+ <function name='xmlParserHandleReference' file='parserInternals' module='legacy'>
<cond>defined(LIBXML_LEGACY_ENABLED)</cond>
<info>TODO: Remove, now deprecated ... the test is done directly in the content parsing routines. [67] Reference ::= EntityRef | CharRef [68] EntityRef ::= &apos;&amp;&apos; Name &apos;;&apos; [ WFC: Entity Declared ] the Name given in the entity reference must match that in an entity declaration, except that well-formed documents need not declare any of the following entities: amp, lt, gt, apos, quot. [ WFC: Parsed Entity ] An entity reference must not contain the name of an unparsed entity [66] CharRef ::= &apos;&amp;#&apos; [0-9]+ &apos;;&apos; | &apos;&amp;#x&apos; [0-9a-fA-F]+ &apos;;&apos; A PEReference may have been detected in the current input stream the handling is done accordingly to http://www.w3.org/TR/REC-xml#entproc</info>
<return type='void'/>
<arg name='ctxt' type='xmlParserCtxtPtr' info='the parser context'/>
</function>
- <function name='xmlParserInputBufferCreateFd' file='xmlIO'>
+ <function name='xmlParserInputBufferCreateFd' file='xmlIO' module='xmlIO'>
<info>Create a buffered parser input for the progressive parsing for the input from a file descriptor</info>
<return type='xmlParserInputBufferPtr' info='the new parser input or NULL'/>
<arg name='fd' type='int' info='a file descriptor number'/>
<arg name='enc' type='xmlCharEncoding' info='the charset encoding if known'/>
</function>
- <function name='xmlParserInputBufferCreateFile' file='xmlIO'>
+ <function name='xmlParserInputBufferCreateFile' file='xmlIO' module='xmlIO'>
<info>Create a buffered parser input for the progressive parsing of a FILE * buffered C I/O</info>
<return type='xmlParserInputBufferPtr' info='the new parser input or NULL'/>
<arg name='file' type='FILE *' info='a FILE*'/>
<arg name='enc' type='xmlCharEncoding' info='the charset encoding if known'/>
</function>
- <function name='xmlParserInputBufferCreateFilename' file='xmlIO'>
+ <function name='xmlParserInputBufferCreateFilename' file='xmlIO' module='xmlIO'>
<info>Create a buffered parser input for the progressive parsing of a file If filename is &quot;-&apos; then we use stdin as the input. Automatic support for ZLIB/Compress compressed document is provided by default if found at compile-time. Do an encoding check if enc == XML_CHAR_ENCODING_NONE</info>
<return type='xmlParserInputBufferPtr' info='the new parser input or NULL'/>
<arg name='URI' type='const char *' info='a C string containing the URI or filename'/>
<arg name='enc' type='xmlCharEncoding' info='the charset encoding if known'/>
</function>
- <function name='xmlParserInputBufferCreateFilenameDefault' file='globals'>
+ <function name='xmlParserInputBufferCreateFilenameDefault' file='globals' module='xmlIO'>
<info>Registers a callback for URI input file handling</info>
<return type='xmlParserInputBufferCreateFilenameFunc' info='the old value of the registration function'/>
<arg name='func' type='xmlParserInputBufferCreateFilenameFunc' info='function pointer to the new ParserInputBufferCreateFilenameFunc'/>
</function>
- <functype name='xmlParserInputBufferCreateFilenameFunc' file='globals'>
+ <functype name='xmlParserInputBufferCreateFilenameFunc' file='globals' module='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'>
+ <function name='xmlParserInputBufferCreateIO' file='xmlIO' module='xmlIO'>
<info>Create a buffered parser input for the progressive parsing for the input from an I/O handler</info>
<return type='xmlParserInputBufferPtr' info='the new parser input or NULL'/>
<arg name='ioread' type='xmlInputReadCallback' info='an I/O read function'/>
@@ -11493,124 +11513,124 @@ actually an xmlCharEncoding'/>
<arg name='ioctx' type='void *' info='an I/O handler'/>
<arg name='enc' type='xmlCharEncoding' info='the charset encoding if known'/>
</function>
- <function name='xmlParserInputBufferCreateMem' file='xmlIO'>
+ <function name='xmlParserInputBufferCreateMem' file='xmlIO' module='xmlIO'>
<info>Create a buffered parser input for the progressive parsing for the input from a memory area.</info>
<return type='xmlParserInputBufferPtr' info='the new parser input or NULL'/>
<arg name='mem' type='const char *' info='the memory input'/>
<arg name='size' type='int' info='the length of the memory block'/>
<arg name='enc' type='xmlCharEncoding' info='the charset encoding if known'/>
</function>
- <function name='xmlParserInputBufferCreateStatic' file='xmlIO'>
+ <function name='xmlParserInputBufferCreateStatic' file='xmlIO' module='xmlIO'>
<info>Create a buffered parser input for the progressive parsing for the input from an immutable memory area. This will not copy the memory area to the buffer, but the memory is expected to be available until the end of the parsing, this is useful for example when using mmap&apos;ed file.</info>
<return type='xmlParserInputBufferPtr' info='the new parser input or NULL'/>
<arg name='mem' type='const char *' info='the memory input'/>
<arg name='size' type='int' info='the length of the memory block'/>
<arg name='enc' type='xmlCharEncoding' info='the charset encoding if known'/>
</function>
- <function name='xmlParserInputBufferGrow' file='xmlIO'>
+ <function name='xmlParserInputBufferGrow' file='xmlIO' module='xmlIO'>
<info>Grow up the content of the input buffer, the old data are preserved This routine handle the I18N transcoding to internal UTF-8 This routine is used when operating the parser in normal (pull) mode TODO: one should be able to remove one extra copy by copying directly onto in-&gt;buffer or in-&gt;raw</info>
<return type='int' info='the number of chars read and stored in the buffer, or -1 in case of error.'/>
<arg name='in' type='xmlParserInputBufferPtr' info='a buffered parser input'/>
<arg name='len' type='int' info='indicative value of the amount of chars to read'/>
</function>
- <function name='xmlParserInputBufferPush' file='xmlIO'>
+ <function name='xmlParserInputBufferPush' file='xmlIO' module='xmlIO'>
<info>Push the content of the arry in the input buffer This routine handle the I18N transcoding to internal UTF-8 This is used when operating the parser in progressive (push) mode.</info>
<return type='int' info='the number of chars read and stored in the buffer, or -1 in case of error.'/>
<arg name='in' type='xmlParserInputBufferPtr' info='a buffered parser input'/>
<arg name='len' type='int' info='the size in bytes of the array.'/>
<arg name='buf' type='const char *' info='an char array'/>
</function>
- <function name='xmlParserInputBufferRead' file='xmlIO'>
+ <function name='xmlParserInputBufferRead' file='xmlIO' module='xmlIO'>
<info>Refresh the content of the input buffer, the old data are considered consumed This routine handle the I18N transcoding to internal UTF-8</info>
<return type='int' info='the number of chars read and stored in the buffer, or -1 in case of error.'/>
<arg name='in' type='xmlParserInputBufferPtr' info='a buffered parser input'/>
<arg name='len' type='int' info='indicative value of the amount of chars to read'/>
</function>
- <functype name='xmlParserInputDeallocate' file='parser'>
+ <functype name='xmlParserInputDeallocate' file='parser' module='parser'>
<info>Callback for freeing some parser input allocations.</info>
<return type='void'/>
<arg name='str' type='xmlChar *' info='the string to deallocate'/>
</functype>
- <function name='xmlParserInputGrow' file='parser'>
+ <function name='xmlParserInputGrow' file='parser' module='parserInternals'>
<info>This function increase the input for the parser. It tries to preserve pointers to the input buffer, and keep already read data</info>
<return type='int' info='the number of xmlChars read, or -1 in case of error, 0 indicate the end of this entity'/>
<arg name='in' type='xmlParserInputPtr' info='an XML parser input'/>
<arg name='len' type='int' info='an indicative size for the lookahead'/>
</function>
- <function name='xmlParserInputRead' file='parser'>
+ <function name='xmlParserInputRead' file='parser' module='parserInternals'>
<info>This function refresh the input for the parser. It doesn&apos;t try to preserve pointers to the input buffer, and discard already read data</info>
<return type='int' info='the number of xmlChars read, or -1 in case of error, 0 indicate the end of this entity'/>
<arg name='in' type='xmlParserInputPtr' info='an XML parser input'/>
<arg name='len' type='int' info='an indicative size for the lookahead'/>
</function>
- <function name='xmlParserInputShrink' file='parserInternals'>
+ <function name='xmlParserInputShrink' file='parserInternals' module='parserInternals'>
<info>This function removes used input for the parser.</info>
<return type='void'/>
<arg name='in' type='xmlParserInputPtr' info='an XML parser input'/>
</function>
- <function name='xmlParserPrintFileContext' file='xmlerror'>
+ <function name='xmlParserPrintFileContext' file='xmlerror' module='error'>
<info>Displays current context within the input content for error tracking</info>
<return type='void'/>
<arg name='input' type='xmlParserInputPtr' info='an xmlParserInputPtr input'/>
</function>
- <function name='xmlParserPrintFileInfo' file='xmlerror'>
+ <function name='xmlParserPrintFileInfo' file='xmlerror' module='error'>
<info>Displays the associated file and line informations for the current input</info>
<return type='void'/>
<arg name='input' type='xmlParserInputPtr' info='an xmlParserInputPtr input'/>
</function>
- <function name='xmlParserValidityError' file='xmlerror'>
+ <function name='xmlParserValidityError' file='xmlerror' module='error'>
<info>Display and format an validity error messages, gives file, line, position and extra parameters.</info>
<return type='void'/>
<arg name='ctx' type='void *' info='an XML parser context'/>
<arg name='msg' type='const char *' info='the message to display/transmit'/>
<arg name='...' type='...' info='extra parameters for the message display'/>
</function>
- <function name='xmlParserValidityWarning' file='xmlerror'>
+ <function name='xmlParserValidityWarning' file='xmlerror' module='error'>
<info>Display and format a validity warning messages, gives file, line, position and extra parameters.</info>
<return type='void'/>
<arg name='ctx' type='void *' info='an XML parser context'/>
<arg name='msg' type='const char *' info='the message to display/transmit'/>
<arg name='...' type='...' info='extra parameters for the message display'/>
</function>
- <function name='xmlParserWarning' file='xmlerror'>
+ <function name='xmlParserWarning' file='xmlerror' module='error'>
<info>Display and format a warning messages, gives file, line, position and extra parameters.</info>
<return type='void'/>
<arg name='ctx' type='void *' info='an XML parser context'/>
<arg name='msg' type='const char *' info='the message to display/transmit'/>
<arg name='...' type='...' info='extra parameters for the message display'/>
</function>
- <function name='xmlPatternFromRoot' file='pattern'>
+ <function name='xmlPatternFromRoot' file='pattern' module='pattern'>
<cond>defined(LIBXML_PATTERN_ENABLED)</cond>
<info>Check if the pattern must be looked at from the root.</info>
<return type='int' info='1 if true, 0 if false and -1 in case of error'/>
<arg name='comp' type='xmlPatternPtr' info='the precompiled pattern'/>
</function>
- <function name='xmlPatternGetStreamCtxt' file='pattern'>
+ <function name='xmlPatternGetStreamCtxt' file='pattern' module='pattern'>
<cond>defined(LIBXML_PATTERN_ENABLED)</cond>
<info>Get a streaming context for that pattern Use xmlFreeStreamCtxt to free the context.</info>
<return type='xmlStreamCtxtPtr' info='a pointer to the context or NULL in case of failure'/>
<arg name='comp' type='xmlPatternPtr' info='the precompiled pattern'/>
</function>
- <function name='xmlPatternMatch' file='pattern'>
+ <function name='xmlPatternMatch' file='pattern' module='pattern'>
<cond>defined(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='xmlPatternMaxDepth' file='pattern'>
+ <function name='xmlPatternMaxDepth' file='pattern' module='pattern'>
<cond>defined(LIBXML_PATTERN_ENABLED)</cond>
<info>Check the maximum depth reachable by a pattern</info>
<return type='int' info='-2 if no limit (using //), otherwise the depth, and -1 in case of error'/>
<arg name='comp' type='xmlPatternPtr' info='the precompiled pattern'/>
</function>
- <function name='xmlPatternStreamable' file='pattern'>
+ <function name='xmlPatternStreamable' file='pattern' module='pattern'>
<cond>defined(LIBXML_PATTERN_ENABLED)</cond>
<info>Check if the pattern is streamable i.e. xmlPatternGetStreamCtxt() should work.</info>
<return type='int' info='1 if streamable, 0 if not and -1 in case of error.'/>
<arg name='comp' type='xmlPatternPtr' info='the precompiled pattern'/>
</function>
- <function name='xmlPatterncompile' file='pattern'>
+ <function name='xmlPatterncompile' file='pattern' module='pattern'>
<cond>defined(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'/>
@@ -11619,43 +11639,43 @@ actually an xmlCharEncoding'/>
<arg name='flags' type='int' info='compilation flags, undefined yet'/>
<arg name='namespaces' type='const xmlChar **' info='the prefix definitions, array of [URI, prefix] or NULL'/>
</function>
- <function name='xmlPedanticParserDefault' file='parser'>
+ <function name='xmlPedanticParserDefault' file='parser' module='parserInternals'>
<info>Set and return the previous value for enabling pedantic warnings.</info>
<return type='int' info='the last value for 0 for no substitution, 1 for substitution.'/>
<arg name='val' type='int' info='int 0 or 1'/>
</function>
- <function name='xmlPopInput' file='parserInternals'>
+ <function name='xmlPopInput' file='parserInternals' module='parser'>
<info>xmlPopInput: the current input pointed by ctxt-&gt;input came to an end pop it and return the next char.</info>
<return type='xmlChar' info='the current xmlChar in the parser context'/>
<arg name='ctxt' type='xmlParserCtxtPtr' info='an XML parser context'/>
</function>
- <function name='xmlPopInputCallbacks' file='xmlIO'>
+ <function name='xmlPopInputCallbacks' file='xmlIO' module='xmlIO'>
<info>Clear the top input callback from the input stack. this includes the compiled-in I/O.</info>
<return type='int' info='the number of input callback registered or -1 in case of error.'/>
</function>
- <function name='xmlPrintURI' file='uri'>
+ <function name='xmlPrintURI' file='uri' module='uri'>
<info>Prints the URI in the stream @stream.</info>
<return type='void'/>
<arg name='stream' type='FILE *' info='a FILE* for the output'/>
<arg name='uri' type='xmlURIPtr' info='pointer to an xmlURI'/>
</function>
- <function name='xmlPushInput' file='parserInternals'>
+ <function name='xmlPushInput' file='parserInternals' module='parser'>
<info>xmlPushInput: switch to a new input stream which is stacked on top of the previous one(s).</info>
<return type='void'/>
<arg name='ctxt' type='xmlParserCtxtPtr' info='an XML parser context'/>
<arg name='input' type='xmlParserInputPtr' info='an XML parser input fragment (entity, XML fragment ...).'/>
</function>
- <function name='xmlRMutexLock' file='threads'>
+ <function name='xmlRMutexLock' file='threads' module='threads'>
<info>xmlRMutexLock() is used to lock a libxml2 token_r.</info>
<return type='void'/>
<arg name='tok' type='xmlRMutexPtr' info='the reentrant mutex'/>
</function>
- <function name='xmlRMutexUnlock' file='threads'>
+ <function name='xmlRMutexUnlock' file='threads' module='threads'>
<info>xmlRMutexUnlock() is used to unlock a libxml2 token_r.</info>
<return type='void'/>
<arg name='tok' type='xmlRMutexPtr' info='the reentrant mutex'/>
</function>
- <function name='xmlReadDoc' file='parser'>
+ <function name='xmlReadDoc' file='parser' module='parser'>
<info>parse an XML in-memory document and build a tree.</info>
<return type='xmlDocPtr' info='the resulting document tree'/>
<arg name='cur' type='const xmlChar *' info='a pointer to a zero terminated string'/>
@@ -11663,7 +11683,7 @@ actually an xmlCharEncoding'/>
<arg name='encoding' type='const char *' info='the document encoding, or NULL'/>
<arg name='options' type='int' info='a combination of xmlParserOption'/>
</function>
- <function name='xmlReadFd' file='parser'>
+ <function name='xmlReadFd' file='parser' module='parser'>
<info>parse an XML from a file descriptor and build a tree. NOTE that the file descriptor will not be closed when the reader is closed or reset.</info>
<return type='xmlDocPtr' info='the resulting document tree'/>
<arg name='fd' type='int' info='an open file descriptor'/>
@@ -11671,14 +11691,14 @@ actually an xmlCharEncoding'/>
<arg name='encoding' type='const char *' info='the document encoding, or NULL'/>
<arg name='options' type='int' info='a combination of xmlParserOption'/>
</function>
- <function name='xmlReadFile' file='parser'>
+ <function name='xmlReadFile' file='parser' module='parser'>
<info>parse an XML file from the filesystem or the network.</info>
<return type='xmlDocPtr' info='the resulting document tree'/>
<arg name='filename' type='const char *' info='a file or URL'/>
<arg name='encoding' type='const char *' info='the document encoding, or NULL'/>
<arg name='options' type='int' info='a combination of xmlParserOption'/>
</function>
- <function name='xmlReadIO' file='parser'>
+ <function name='xmlReadIO' file='parser' module='parser'>
<info>parse an XML document from I/O functions and source and build a tree.</info>
<return type='xmlDocPtr' info='the resulting document tree'/>
<arg name='ioread' type='xmlInputReadCallback' info='an I/O read function'/>
@@ -11688,7 +11708,7 @@ actually an xmlCharEncoding'/>
<arg name='encoding' type='const char *' info='the document encoding, or NULL'/>
<arg name='options' type='int' info='a combination of xmlParserOption'/>
</function>
- <function name='xmlReadMemory' file='parser'>
+ <function name='xmlReadMemory' file='parser' module='parser'>
<info>parse an XML in-memory document and build a tree.</info>
<return type='xmlDocPtr' info='the resulting document tree'/>
<arg name='buffer' type='const char *' info='a pointer to a char array'/>
@@ -11697,7 +11717,7 @@ actually an xmlCharEncoding'/>
<arg name='encoding' type='const char *' info='the document encoding, or NULL'/>
<arg name='options' type='int' info='a combination of xmlParserOption'/>
</function>
- <function name='xmlReaderForDoc' file='xmlreader'>
+ <function name='xmlReaderForDoc' file='xmlreader' module='xmlreader'>
<cond>defined(LIBXML_READER_ENABLED)</cond>
<info>Create an xmltextReader for an XML in-memory document. The parsing flags @options are a combination of xmlParserOption.</info>
<return type='xmlTextReaderPtr' info='the new reader or NULL in case of error.'/>
@@ -11706,7 +11726,7 @@ actually an xmlCharEncoding'/>
<arg name='encoding' type='const char *' info='the document encoding, or NULL'/>
<arg name='options' type='int' info='a combination of xmlParserOption'/>
</function>
- <function name='xmlReaderForFd' file='xmlreader'>
+ <function name='xmlReaderForFd' file='xmlreader' module='xmlreader'>
<cond>defined(LIBXML_READER_ENABLED)</cond>
<info>Create an xmltextReader for an XML from a file descriptor. The parsing flags @options are a combination of xmlParserOption. NOTE that the file descriptor will not be closed when the reader is closed or reset.</info>
<return type='xmlTextReaderPtr' info='the new reader or NULL in case of error.'/>
@@ -11715,7 +11735,7 @@ actually an xmlCharEncoding'/>
<arg name='encoding' type='const char *' info='the document encoding, or NULL'/>
<arg name='options' type='int' info='a combination of xmlParserOption'/>
</function>
- <function name='xmlReaderForFile' file='xmlreader'>
+ <function name='xmlReaderForFile' file='xmlreader' module='xmlreader'>
<cond>defined(LIBXML_READER_ENABLED)</cond>
<info>parse an XML file from the filesystem or the network. The parsing flags @options are a combination of xmlParserOption.</info>
<return type='xmlTextReaderPtr' info='the new reader or NULL in case of error.'/>
@@ -11723,7 +11743,7 @@ actually an xmlCharEncoding'/>
<arg name='encoding' type='const char *' info='the document encoding, or NULL'/>
<arg name='options' type='int' info='a combination of xmlParserOption'/>
</function>
- <function name='xmlReaderForIO' file='xmlreader'>
+ <function name='xmlReaderForIO' file='xmlreader' module='xmlreader'>
<cond>defined(LIBXML_READER_ENABLED)</cond>
<info>Create an xmltextReader for an XML document from I/O functions and source. The parsing flags @options are a combination of xmlParserOption.</info>
<return type='xmlTextReaderPtr' info='the new reader or NULL in case of error.'/>
@@ -11734,7 +11754,7 @@ actually an xmlCharEncoding'/>
<arg name='encoding' type='const char *' info='the document encoding, or NULL'/>
<arg name='options' type='int' info='a combination of xmlParserOption'/>
</function>
- <function name='xmlReaderForMemory' file='xmlreader'>
+ <function name='xmlReaderForMemory' file='xmlreader' module='xmlreader'>
<cond>defined(LIBXML_READER_ENABLED)</cond>
<info>Create an xmltextReader for an XML in-memory document. The parsing flags @options are a combination of xmlParserOption.</info>
<return type='xmlTextReaderPtr' info='the new reader or NULL in case of error.'/>
@@ -11744,7 +11764,7 @@ actually an xmlCharEncoding'/>
<arg name='encoding' type='const char *' info='the document encoding, or NULL'/>
<arg name='options' type='int' info='a combination of xmlParserOption'/>
</function>
- <function name='xmlReaderNewDoc' file='xmlreader'>
+ <function name='xmlReaderNewDoc' file='xmlreader' module='xmlreader'>
<cond>defined(LIBXML_READER_ENABLED)</cond>
<info>Setup an xmltextReader to parse an XML in-memory document. The parsing flags @options are a combination of xmlParserOption. This reuses the existing @reader xmlTextReader.</info>
<return type='int' info='0 in case of success and -1 in case of error'/>
@@ -11754,7 +11774,7 @@ actually an xmlCharEncoding'/>
<arg name='encoding' type='const char *' info='the document encoding, or NULL'/>
<arg name='options' type='int' info='a combination of xmlParserOption'/>
</function>
- <function name='xmlReaderNewFd' file='xmlreader'>
+ <function name='xmlReaderNewFd' file='xmlreader' module='xmlreader'>
<cond>defined(LIBXML_READER_ENABLED)</cond>
<info>Setup an xmltextReader to parse an XML from a file descriptor. NOTE that the file descriptor will not be closed when the reader is closed or reset. The parsing flags @options are a combination of xmlParserOption. This reuses the existing @reader xmlTextReader.</info>
<return type='int' info='0 in case of success and -1 in case of error'/>
@@ -11764,7 +11784,7 @@ actually an xmlCharEncoding'/>
<arg name='encoding' type='const char *' info='the document encoding, or NULL'/>
<arg name='options' type='int' info='a combination of xmlParserOption'/>
</function>
- <function name='xmlReaderNewFile' file='xmlreader'>
+ <function name='xmlReaderNewFile' file='xmlreader' module='xmlreader'>
<cond>defined(LIBXML_READER_ENABLED)</cond>
<info>parse an XML file from the filesystem or the network. The parsing flags @options are a combination of xmlParserOption. This reuses the existing @reader xmlTextReader.</info>
<return type='int' info='0 in case of success and -1 in case of error'/>
@@ -11773,7 +11793,7 @@ actually an xmlCharEncoding'/>
<arg name='encoding' type='const char *' info='the document encoding, or NULL'/>
<arg name='options' type='int' info='a combination of xmlParserOption'/>
</function>
- <function name='xmlReaderNewIO' file='xmlreader'>
+ <function name='xmlReaderNewIO' file='xmlreader' module='xmlreader'>
<cond>defined(LIBXML_READER_ENABLED)</cond>
<info>Setup an xmltextReader to parse an XML document from I/O functions and source. The parsing flags @options are a combination of xmlParserOption. This reuses the existing @reader xmlTextReader.</info>
<return type='int' info='0 in case of success and -1 in case of error'/>
@@ -11785,7 +11805,7 @@ actually an xmlCharEncoding'/>
<arg name='encoding' type='const char *' info='the document encoding, or NULL'/>
<arg name='options' type='int' info='a combination of xmlParserOption'/>
</function>
- <function name='xmlReaderNewMemory' file='xmlreader'>
+ <function name='xmlReaderNewMemory' file='xmlreader' module='xmlreader'>
<cond>defined(LIBXML_READER_ENABLED)</cond>
<info>Setup an xmltextReader to parse an XML in-memory document. The parsing flags @options are a combination of xmlParserOption. This reuses the existing @reader xmlTextReader.</info>
<return type='int' info='0 in case of success and -1 in case of error'/>
@@ -11796,26 +11816,26 @@ actually an xmlCharEncoding'/>
<arg name='encoding' type='const char *' info='the document encoding, or NULL'/>
<arg name='options' type='int' info='a combination of xmlParserOption'/>
</function>
- <function name='xmlReaderNewWalker' file='xmlreader'>
+ <function name='xmlReaderNewWalker' file='xmlreader' module='xmlreader'>
<cond>defined(LIBXML_READER_ENABLED)</cond>
<info>Setup an xmltextReader to parse a preparsed XML document. This reuses the existing @reader xmlTextReader.</info>
<return type='int' info='0 in case of success and -1 in case of error'/>
<arg name='reader' type='xmlTextReaderPtr' info='an XML reader'/>
<arg name='doc' type='xmlDocPtr' info='a preparsed document'/>
</function>
- <function name='xmlReaderWalker' file='xmlreader'>
+ <function name='xmlReaderWalker' file='xmlreader' module='xmlreader'>
<cond>defined(LIBXML_READER_ENABLED)</cond>
<info>Create an xmltextReader for a preparsed document.</info>
<return type='xmlTextReaderPtr' info='the new reader or NULL in case of error.'/>
<arg name='doc' type='xmlDocPtr' info='a preparsed document'/>
</function>
- <functype name='xmlReallocFunc' file='xmlmemory'>
+ <functype name='xmlReallocFunc' file='xmlmemory' module='xmlmemory'>
<info>Signature for a realloc() implementation.</info>
<return type='void *' info='a pointer to the newly reallocated block or NULL in case of error.'/>
<arg name='mem' type='void *' info='an already allocated block of memory'/>
<arg name='size' type='size_t' info='the new size requested in bytes'/>
</functype>
- <function name='xmlReallocLoc' file='xmlmemory'>
+ <function name='xmlReallocLoc' file='xmlmemory' module='xmlmemory'>
<info>a realloc() equivalent, with logging of the allocation info.</info>
<return type='void *' info='a pointer to the allocated area or NULL in case of lack of memory.'/>
<arg name='ptr' type='void *' info='the initial memory block pointer'/>
@@ -11823,33 +11843,33 @@ actually an xmlCharEncoding'/>
<arg name='file' type='const char *' info='the file name or NULL'/>
<arg name='line' type='int' info='the line number'/>
</function>
- <function name='xmlReconciliateNs' file='tree'>
+ <function name='xmlReconciliateNs' file='tree' module='tree'>
<cond>defined(LIBXML_TREE_ENABLED)</cond>
<info>This function checks that all the namespaces declared within the given tree are properly declared. This is needed for example after Copy or Cut and then paste operations. The subtree may still hold pointers to namespace declarations outside the subtree or invalid/masked. As much as possible the function try to reuse the existing namespaces found in the new environment. If not possible the new namespaces are redeclared on @tree at the top of the given subtree.</info>
<return type='int' info='the number of namespace declarations created or -1 in case of error.'/>
<arg name='doc' type='xmlDocPtr' info='the document'/>
<arg name='tree' type='xmlNodePtr' info='a node defining the subtree to reconciliate'/>
</function>
- <function name='xmlRecoverDoc' file='parser'>
+ <function name='xmlRecoverDoc' file='parser' module='parser'>
<cond>defined(LIBXML_SAX1_ENABLED)</cond>
<info>parse an XML in-memory document and build a tree. In the case the document is not Well Formed, a tree is built anyway</info>
<return type='xmlDocPtr' info='the resulting document tree'/>
<arg name='cur' type='xmlChar *' info='a pointer to an array of xmlChar'/>
</function>
- <function name='xmlRecoverFile' file='parser'>
+ <function name='xmlRecoverFile' file='parser' module='parser'>
<cond>defined(LIBXML_SAX1_ENABLED)</cond>
<info>parse an XML file and build a tree. Automatic support for ZLIB/Compress compressed document is provided by default if found at compile-time. In the case the document is not Well Formed, a tree is built anyway</info>
<return type='xmlDocPtr' info='the resulting document tree'/>
<arg name='filename' type='const char *' info='the filename'/>
</function>
- <function name='xmlRecoverMemory' file='parser'>
+ <function name='xmlRecoverMemory' file='parser' module='parser'>
<cond>defined(LIBXML_SAX1_ENABLED)</cond>
<info>parse an XML in-memory block and build a tree. In the case the document is not Well Formed, a tree is built anyway</info>
<return type='xmlDocPtr' info='the resulting document tree'/>
<arg name='buffer' type='const char *' info='an pointer to a char array'/>
<arg name='size' type='int' info='the size of the array'/>
</function>
- <functype name='xmlRegExecCallbacks' file='xmlregexp'>
+ <functype name='xmlRegExecCallbacks' file='xmlregexp' module='xmlregexp'>
<cond>defined(LIBXML_REGEXP_ENABLED)</cond>
<info></info>
<return type='void'/>
@@ -11858,7 +11878,7 @@ actually an xmlCharEncoding'/>
<arg name='transdata' type='void *' info=''/>
<arg name='inputdata' type='void *' info=''/>
</functype>
- <function name='xmlRegExecErrInfo' file='xmlregexp'>
+ <function name='xmlRegExecErrInfo' file='xmlregexp' module='xmlregexp'>
<cond>defined(LIBXML_REGEXP_ENABLED)</cond>
<info>Extract error informations from the regexp execution, the parameter @string will be updated with the value pushed and not accepted, the parameter @values must point to an array of @nbval string pointers on return nbval will contain the number of possible strings in that state and the @values array will be updated with them. The string values</info>
<return type='int' info='will be freed with the @exec context and don&apos;t need to be deallocated. Returns: 0 in case of success or -1 in case of error.'/>
@@ -11869,7 +11889,7 @@ actually an xmlCharEncoding'/>
<arg name='values' type='xmlChar **' info='pointer to the array of acceptable values'/>
<arg name='terminal' type='int *' info='return value if this was a terminal state'/>
</function>
- <function name='xmlRegExecNextValues' file='xmlregexp'>
+ <function name='xmlRegExecNextValues' file='xmlregexp' module='xmlregexp'>
<cond>defined(LIBXML_REGEXP_ENABLED)</cond>
<info>Extract informations from the regexp execution, the parameter @values must point to an array of @nbval string pointers on return nbval will contain the number of possible strings in that state and the @values array will be updated with them. The string values</info>
<return type='int' info='will be freed with the @exec context and don&apos;t need to be deallocated. Returns: 0 in case of success or -1 in case of error.'/>
@@ -11879,7 +11899,7 @@ actually an xmlCharEncoding'/>
<arg name='values' type='xmlChar **' info='pointer to the array of acceptable values'/>
<arg name='terminal' type='int *' info='return value if this was a terminal state'/>
</function>
- <function name='xmlRegExecPushString' file='xmlregexp'>
+ <function name='xmlRegExecPushString' file='xmlregexp' module='xmlregexp'>
<cond>defined(LIBXML_REGEXP_ENABLED)</cond>
<info>Push one input token in the execution context</info>
<return type='int' info='1 if the regexp reached a final state, 0 if non-final, and a negative value in case of error.'/>
@@ -11887,7 +11907,7 @@ actually an xmlCharEncoding'/>
<arg name='value' type='const xmlChar *' info='a string token input'/>
<arg name='data' type='void *' info='data associated to the token to reuse in callbacks'/>
</function>
- <function name='xmlRegExecPushString2' file='xmlregexp'>
+ <function name='xmlRegExecPushString2' file='xmlregexp' module='xmlregexp'>
<cond>defined(LIBXML_REGEXP_ENABLED)</cond>
<info>Push one input token in the execution context</info>
<return type='int' info='1 if the regexp reached a final state, 0 if non-final, and a negative value in case of error.'/>
@@ -11896,19 +11916,19 @@ actually an xmlCharEncoding'/>
<arg name='value2' type='const xmlChar *' info='the second string token input'/>
<arg name='data' type='void *' info='data associated to the token to reuse in callbacks'/>
</function>
- <function name='xmlRegFreeExecCtxt' file='xmlregexp'>
+ <function name='xmlRegFreeExecCtxt' file='xmlregexp' module='xmlregexp'>
<cond>defined(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'>
+ <function name='xmlRegFreeRegexp' file='xmlregexp' module='xmlregexp'>
<cond>defined(LIBXML_REGEXP_ENABLED)</cond>
<info>Free a regexp</info>
<return type='void'/>
<arg name='regexp' type='xmlRegexpPtr' info='the regexp'/>
</function>
- <function name='xmlRegNewExecCtxt' file='xmlregexp'>
+ <function name='xmlRegNewExecCtxt' file='xmlregexp' module='xmlregexp'>
<cond>defined(LIBXML_REGEXP_ENABLED)</cond>
<info>Build a context used for progressive evaluation of a regexp.</info>
<return type='xmlRegExecCtxtPtr' info='the new context'/>
@@ -11916,52 +11936,52 @@ actually an xmlCharEncoding'/>
<arg name='callback' type='xmlRegExecCallbacks' info='a callback function used for handling progresses in the automata matching phase'/>
<arg name='data' type='void *' info='the context data associated to the callback in this context'/>
</function>
- <function name='xmlRegexpCompile' file='xmlregexp'>
+ <function name='xmlRegexpCompile' file='xmlregexp' module='xmlregexp'>
<cond>defined(LIBXML_REGEXP_ENABLED)</cond>
<info>Parses a regular expression conforming to XML Schemas Part 2 Datatype Appendix F and builds an automata suitable for testing strings against that regular expression</info>
<return type='xmlRegexpPtr' info='the compiled expression or NULL in case of error'/>
<arg name='regexp' type='const xmlChar *' info='a regular expression string'/>
</function>
- <function name='xmlRegexpExec' file='xmlregexp'>
+ <function name='xmlRegexpExec' file='xmlregexp' module='xmlregexp'>
<cond>defined(LIBXML_REGEXP_ENABLED)</cond>
<info>Check if the regular expression generates the value</info>
<return type='int' info='1 if it matches, 0 if not and a negative value in case of error'/>
<arg name='comp' type='xmlRegexpPtr' info='the compiled regular expression'/>
<arg name='content' type='const xmlChar *' info='the value to check against the regular expression'/>
</function>
- <function name='xmlRegexpIsDeterminist' file='xmlregexp'>
+ <function name='xmlRegexpIsDeterminist' file='xmlregexp' module='xmlregexp'>
<cond>defined(LIBXML_REGEXP_ENABLED)</cond>
<info>Check if the regular expression is determinist</info>
<return type='int' info='1 if it yes, 0 if not and a negative value in case of error'/>
<arg name='comp' type='xmlRegexpPtr' info='the compiled regular expression'/>
</function>
- <function name='xmlRegexpPrint' file='xmlregexp'>
+ <function name='xmlRegexpPrint' file='xmlregexp' module='xmlregexp'>
<cond>defined(LIBXML_REGEXP_ENABLED)</cond>
<info>Print the content of the compiled regular expression</info>
<return type='void'/>
<arg name='output' type='FILE *' info='the file for the output debug'/>
<arg name='regexp' type='xmlRegexpPtr' info='the compiled regexp'/>
</function>
- <function name='xmlRegisterCharEncodingHandler' file='encoding'>
+ <function name='xmlRegisterCharEncodingHandler' file='encoding' module='encoding'>
<info>Register the char encoding handler, surprising, isn&apos;t it ?</info>
<return type='void'/>
<arg name='handler' type='xmlCharEncodingHandlerPtr' info='the xmlCharEncodingHandlerPtr handler block'/>
</function>
- <function name='xmlRegisterDefaultInputCallbacks' file='xmlIO'>
+ <function name='xmlRegisterDefaultInputCallbacks' file='xmlIO' module='xmlIO'>
<info>Registers the default compiled-in I/O handlers.</info>
<return type='void'/>
</function>
- <function name='xmlRegisterDefaultOutputCallbacks' file='xmlIO'>
+ <function name='xmlRegisterDefaultOutputCallbacks' file='xmlIO' module='xmlIO'>
<cond>defined(LIBXML_OUTPUT_ENABLED)</cond>
<info>Registers the default compiled-in I/O handlers.</info>
<return type='void'/>
</function>
- <function name='xmlRegisterHTTPPostCallbacks' file='xmlIO'>
+ <function name='xmlRegisterHTTPPostCallbacks' file='xmlIO' module='xmlIO'>
<cond>defined(LIBXML_OUTPUT_ENABLED) &amp;&amp; defined(LIBXML_HTTP_ENABLED)</cond>
<info>By default, libxml submits HTTP output requests using the &quot;PUT&quot; method. Calling this method changes the HTTP output method to use the &quot;POST&quot; method instead.</info>
<return type='void'/>
</function>
- <function name='xmlRegisterInputCallbacks' file='xmlIO'>
+ <function name='xmlRegisterInputCallbacks' file='xmlIO' module='xmlIO'>
<info>Register a new set of I/O callback for handling parser input.</info>
<return type='int' info='the registered handler number or -1 in case of error'/>
<arg name='matchFunc' type='xmlInputMatchCallback' info='the xmlInputMatchCallback'/>
@@ -11969,17 +11989,17 @@ actually an xmlCharEncoding'/>
<arg name='readFunc' type='xmlInputReadCallback' info='the xmlInputReadCallback'/>
<arg name='closeFunc' type='xmlInputCloseCallback' info='the xmlInputCloseCallback'/>
</function>
- <function name='xmlRegisterNodeDefault' file='globals'>
+ <function name='xmlRegisterNodeDefault' file='globals' module='globals'>
<info>Registers a callback for node creation</info>
<return type='xmlRegisterNodeFunc' info='the old value of the registration function'/>
<arg name='func' type='xmlRegisterNodeFunc' info='function pointer to the new RegisterNodeFunc'/>
</function>
- <functype name='xmlRegisterNodeFunc' file='globals'>
+ <functype name='xmlRegisterNodeFunc' file='globals' module='globals'>
<info></info>
<return type='void'/>
<arg name='node' type='xmlNodePtr' info=''/>
</functype>
- <function name='xmlRegisterOutputCallbacks' file='xmlIO'>
+ <function name='xmlRegisterOutputCallbacks' file='xmlIO' module='xmlIO'>
<cond>defined(LIBXML_OUTPUT_ENABLED)</cond>
<info>Register a new set of I/O callback for handling output.</info>
<return type='int' info='the registered handler number or -1 in case of error'/>
@@ -11988,44 +12008,44 @@ actually an xmlCharEncoding'/>
<arg name='writeFunc' type='xmlOutputWriteCallback' info='the xmlOutputWriteCallback'/>
<arg name='closeFunc' type='xmlOutputCloseCallback' info='the xmlOutputCloseCallback'/>
</function>
- <function name='xmlRelaxNGCleanupTypes' file='relaxng'>
+ <function name='xmlRelaxNGCleanupTypes' file='relaxng' module='relaxng'>
<cond>defined(LIBXML_SCHEMAS_ENABLED)</cond>
<info>Cleanup the default Schemas type library associated to RelaxNG</info>
<return type='void'/>
</function>
- <function name='xmlRelaxNGDump' file='relaxng'>
+ <function name='xmlRelaxNGDump' file='relaxng' module='relaxng'>
<cond>defined(LIBXML_SCHEMAS_ENABLED) &amp;&amp; defined(LIBXML_OUTPUT_ENABLED)</cond>
<info>Dump a RelaxNG structure back</info>
<return type='void'/>
<arg name='output' type='FILE *' info='the file output'/>
<arg name='schema' type='xmlRelaxNGPtr' info='a schema structure'/>
</function>
- <function name='xmlRelaxNGDumpTree' file='relaxng'>
+ <function name='xmlRelaxNGDumpTree' file='relaxng' module='relaxng'>
<cond>defined(LIBXML_SCHEMAS_ENABLED) &amp;&amp; defined(LIBXML_OUTPUT_ENABLED)</cond>
<info>Dump the transformed RelaxNG tree.</info>
<return type='void'/>
<arg name='output' type='FILE *' info='the file output'/>
<arg name='schema' type='xmlRelaxNGPtr' info='a schema structure'/>
</function>
- <function name='xmlRelaxNGFree' file='relaxng'>
+ <function name='xmlRelaxNGFree' file='relaxng' module='relaxng'>
<cond>defined(LIBXML_SCHEMAS_ENABLED)</cond>
<info>Deallocate a RelaxNG structure.</info>
<return type='void'/>
<arg name='schema' type='xmlRelaxNGPtr' info='a schema structure'/>
</function>
- <function name='xmlRelaxNGFreeParserCtxt' file='relaxng'>
+ <function name='xmlRelaxNGFreeParserCtxt' file='relaxng' module='relaxng'>
<cond>defined(LIBXML_SCHEMAS_ENABLED)</cond>
<info>Free the resources associated to the schema parser context</info>
<return type='void'/>
<arg name='ctxt' type='xmlRelaxNGParserCtxtPtr' info='the schema parser context'/>
</function>
- <function name='xmlRelaxNGFreeValidCtxt' file='relaxng'>
+ <function name='xmlRelaxNGFreeValidCtxt' file='relaxng' module='relaxng'>
<cond>defined(LIBXML_SCHEMAS_ENABLED)</cond>
<info>Free the resources associated to the schema validation context</info>
<return type='void'/>
<arg name='ctxt' type='xmlRelaxNGValidCtxtPtr' info='the schema validation context'/>
</function>
- <function name='xmlRelaxNGGetParserErrors' file='relaxng'>
+ <function name='xmlRelaxNGGetParserErrors' file='relaxng' module='relaxng'>
<cond>defined(LIBXML_SCHEMAS_ENABLED)</cond>
<info>Get the callback information used to handle errors for a validation context</info>
<return type='int' info='-1 in case of failure, 0 otherwise.'/>
@@ -12034,7 +12054,7 @@ actually an xmlCharEncoding'/>
<arg name='warn' type='xmlRelaxNGValidityWarningFunc *' info='the warning callback result'/>
<arg name='ctx' type='void **' info='contextual data for the callbacks result'/>
</function>
- <function name='xmlRelaxNGGetValidErrors' file='relaxng'>
+ <function name='xmlRelaxNGGetValidErrors' file='relaxng' module='relaxng'>
<cond>defined(LIBXML_SCHEMAS_ENABLED)</cond>
<info>Get the error and warning callback informations</info>
<return type='int' info='-1 in case of error and 0 otherwise'/>
@@ -12043,43 +12063,43 @@ actually an xmlCharEncoding'/>
<arg name='warn' type='xmlRelaxNGValidityWarningFunc *' info='the warning function result'/>
<arg name='ctx' type='void **' info='the functions context result'/>
</function>
- <function name='xmlRelaxNGInitTypes' file='relaxng'>
+ <function name='xmlRelaxNGInitTypes' file='relaxng' module='relaxng'>
<cond>defined(LIBXML_SCHEMAS_ENABLED)</cond>
<info>Initilize the default type libraries.</info>
<return type='int' info='0 in case of success and -1 in case of error.'/>
</function>
- <function name='xmlRelaxNGNewDocParserCtxt' file='relaxng'>
+ <function name='xmlRelaxNGNewDocParserCtxt' file='relaxng' module='relaxng'>
<cond>defined(LIBXML_SCHEMAS_ENABLED)</cond>
<info>Create an XML RelaxNGs parser context for that document. Note: since the process of compiling a RelaxNG schemas modifies the document, the @doc parameter is duplicated internally.</info>
<return type='xmlRelaxNGParserCtxtPtr' info='the parser context or NULL in case of error'/>
<arg name='doc' type='xmlDocPtr' info='a preparsed document tree'/>
</function>
- <function name='xmlRelaxNGNewMemParserCtxt' file='relaxng'>
+ <function name='xmlRelaxNGNewMemParserCtxt' file='relaxng' module='relaxng'>
<cond>defined(LIBXML_SCHEMAS_ENABLED)</cond>
<info>Create an XML RelaxNGs parse context for that memory buffer expected to contain an XML RelaxNGs file.</info>
<return type='xmlRelaxNGParserCtxtPtr' info='the parser context or NULL in case of error'/>
<arg name='buffer' type='const char *' info='a pointer to a char array containing the schemas'/>
<arg name='size' type='int' info='the size of the array'/>
</function>
- <function name='xmlRelaxNGNewParserCtxt' file='relaxng'>
+ <function name='xmlRelaxNGNewParserCtxt' file='relaxng' module='relaxng'>
<cond>defined(LIBXML_SCHEMAS_ENABLED)</cond>
<info>Create an XML RelaxNGs parse context for that file/resource expected to contain an XML RelaxNGs file.</info>
<return type='xmlRelaxNGParserCtxtPtr' info='the parser context or NULL in case of error'/>
<arg name='URL' type='const char *' info='the location of the schema'/>
</function>
- <function name='xmlRelaxNGNewValidCtxt' file='relaxng'>
+ <function name='xmlRelaxNGNewValidCtxt' file='relaxng' module='relaxng'>
<cond>defined(LIBXML_SCHEMAS_ENABLED)</cond>
<info>Create an XML RelaxNGs validation context based on the given schema</info>
<return type='xmlRelaxNGValidCtxtPtr' info='the validation context or NULL in case of error'/>
<arg name='schema' type='xmlRelaxNGPtr' info='a precompiled XML RelaxNGs'/>
</function>
- <function name='xmlRelaxNGParse' file='relaxng'>
+ <function name='xmlRelaxNGParse' file='relaxng' module='relaxng'>
<cond>defined(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'>
+ <function name='xmlRelaxNGSetParserErrors' file='relaxng' module='relaxng'>
<cond>defined(LIBXML_SCHEMAS_ENABLED)</cond>
<info>Set the callback functions used to handle errors for a validation context</info>
<return type='void'/>
@@ -12088,7 +12108,7 @@ actually an xmlCharEncoding'/>
<arg name='warn' type='xmlRelaxNGValidityWarningFunc' info='the warning callback'/>
<arg name='ctx' type='void *' info='contextual data for the callbacks'/>
</function>
- <function name='xmlRelaxNGSetValidErrors' file='relaxng'>
+ <function name='xmlRelaxNGSetValidErrors' file='relaxng' module='relaxng'>
<cond>defined(LIBXML_SCHEMAS_ENABLED)</cond>
<info>Set the error and warning callback informations</info>
<return type='void'/>
@@ -12097,14 +12117,14 @@ actually an xmlCharEncoding'/>
<arg name='warn' type='xmlRelaxNGValidityWarningFunc' info='the warning function'/>
<arg name='ctx' type='void *' info='the functions context'/>
</function>
- <function name='xmlRelaxNGValidateDoc' file='relaxng'>
+ <function name='xmlRelaxNGValidateDoc' file='relaxng' module='relaxng'>
<cond>defined(LIBXML_SCHEMAS_ENABLED)</cond>
<info>Validate a document tree in memory.</info>
<return type='int' info='0 if the document is valid, a positive error code number otherwise and -1 in case of internal or API error.'/>
<arg name='ctxt' type='xmlRelaxNGValidCtxtPtr' info='a Relax-NG validation context'/>
<arg name='doc' type='xmlDocPtr' info='a parsed document tree'/>
</function>
- <function name='xmlRelaxNGValidateFullElement' file='relaxng'>
+ <function name='xmlRelaxNGValidateFullElement' file='relaxng' module='relaxng'>
<cond>defined(LIBXML_SCHEMAS_ENABLED)</cond>
<info>Validate a full subtree when xmlRelaxNGValidatePushElement() returned 0 and the content of the node has been expanded.</info>
<return type='int' info='1 if no validation problem was found or -1 in case of error.'/>
@@ -12112,7 +12132,7 @@ actually an xmlCharEncoding'/>
<arg name='doc' type='xmlDocPtr' info='a document instance'/>
<arg name='elem' type='xmlNodePtr' info='an element instance'/>
</function>
- <function name='xmlRelaxNGValidatePopElement' file='relaxng'>
+ <function name='xmlRelaxNGValidatePopElement' file='relaxng' module='relaxng'>
<cond>defined(LIBXML_SCHEMAS_ENABLED)</cond>
<info>Pop the element end from the RelaxNG validation stack.</info>
<return type='int' info='1 if no validation problem was found or 0 otherwise'/>
@@ -12120,7 +12140,7 @@ actually an xmlCharEncoding'/>
<arg name='doc' type='xmlDocPtr' info='a document instance'/>
<arg name='elem' type='xmlNodePtr' info='an element instance'/>
</function>
- <function name='xmlRelaxNGValidatePushCData' file='relaxng'>
+ <function name='xmlRelaxNGValidatePushCData' file='relaxng' module='relaxng'>
<cond>defined(LIBXML_SCHEMAS_ENABLED)</cond>
<info>check the CData parsed for validation in the current stack</info>
<return type='int' info='1 if no validation problem was found or -1 otherwise'/>
@@ -12128,7 +12148,7 @@ actually an xmlCharEncoding'/>
<arg name='data' type='const xmlChar *' info='some character data read'/>
<arg name='len' type='int' info='the lenght of the data'/>
</function>
- <function name='xmlRelaxNGValidatePushElement' file='relaxng'>
+ <function name='xmlRelaxNGValidatePushElement' file='relaxng' module='relaxng'>
<cond>defined(LIBXML_SCHEMAS_ENABLED)</cond>
<info>Push a new element start on the RelaxNG validation stack.</info>
<return type='int' info='1 if no validation problem was found or 0 if validating the element requires a full node, and -1 in case of error.'/>
@@ -12136,7 +12156,7 @@ actually an xmlCharEncoding'/>
<arg name='doc' type='xmlDocPtr' info='a document instance'/>
<arg name='elem' type='xmlNodePtr' info='an element instance'/>
</function>
- <functype name='xmlRelaxNGValidityErrorFunc' file='relaxng'>
+ <functype name='xmlRelaxNGValidityErrorFunc' file='relaxng' module='relaxng'>
<cond>defined(LIBXML_SCHEMAS_ENABLED)</cond>
<info></info>
<return type='void'/>
@@ -12144,7 +12164,7 @@ actually an xmlCharEncoding'/>
<arg name='msg' type='const char *' info=''/>
<arg name='...' type='...' info=''/>
</functype>
- <functype name='xmlRelaxNGValidityWarningFunc' file='relaxng'>
+ <functype name='xmlRelaxNGValidityWarningFunc' file='relaxng' module='relaxng'>
<cond>defined(LIBXML_SCHEMAS_ENABLED)</cond>
<info></info>
<return type='void'/>
@@ -12152,48 +12172,48 @@ actually an xmlCharEncoding'/>
<arg name='msg' type='const char *' info=''/>
<arg name='...' type='...' info=''/>
</functype>
- <function name='xmlRelaxParserSetFlag' file='relaxng'>
+ <function name='xmlRelaxParserSetFlag' file='relaxng' module='relaxng'>
<cond>defined(LIBXML_SCHEMAS_ENABLED)</cond>
<info>Semi private function used to pass informations to a parser context which are a combination of xmlRelaxNGParserFlag .</info>
<return type='int' info='0 if success and -1 in case of error'/>
<arg name='ctxt' type='xmlRelaxNGParserCtxtPtr' info='a RelaxNG parser context'/>
<arg name='flags' type='int' info='a set of flags values'/>
</function>
- <function name='xmlRemoveID' file='valid'>
+ <function name='xmlRemoveID' file='valid' module='valid'>
<info>Remove the given attribute from the ID table maintained internally.</info>
<return type='int' info='-1 if the lookup failed and 0 otherwise'/>
<arg name='doc' type='xmlDocPtr' info='the document'/>
<arg name='attr' type='xmlAttrPtr' info='the attribute'/>
</function>
- <function name='xmlRemoveProp' file='tree'>
+ <function name='xmlRemoveProp' file='tree' module='tree'>
<cond>defined(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'/>
</function>
- <function name='xmlRemoveRef' file='valid'>
+ <function name='xmlRemoveRef' file='valid' module='valid'>
<info>Remove the given attribute from the Ref table maintained internally.</info>
<return type='int' info='-1 if the lookup failed and 0 otherwise'/>
<arg name='doc' type='xmlDocPtr' info='the document'/>
<arg name='attr' type='xmlAttrPtr' info='the attribute'/>
</function>
- <function name='xmlReplaceNode' file='tree'>
+ <function name='xmlReplaceNode' file='tree' module='tree'>
<cond>defined(LIBXML_TREE_ENABLED) || defined(LIBXML_WRITER_ENABLED)</cond>
<info>Unlink the old node from its current context, prune the new one at the same place. If @cur was already inserted in a document it is first unlinked from its existing context.</info>
<return type='xmlNodePtr' info='the @old node'/>
<arg name='old' type='xmlNodePtr' info='the old node'/>
<arg name='cur' type='xmlNodePtr' info='the node'/>
</function>
- <function name='xmlResetError' file='xmlerror'>
+ <function name='xmlResetError' file='xmlerror' module='error'>
<info>Cleanup the error.</info>
<return type='void'/>
<arg name='err' type='xmlErrorPtr' info='pointer to the error.'/>
</function>
- <function name='xmlResetLastError' file='xmlerror'>
+ <function name='xmlResetLastError' file='xmlerror' module='error'>
<info>Cleanup the last global error registered. For parsing error this does not change the well-formedness result.</info>
<return type='void'/>
</function>
- <function name='xmlSAX2AttributeDecl' file='SAX2'>
+ <function name='xmlSAX2AttributeDecl' file='SAX2' module='SAX2'>
<info>An attribute definition has been parsed</info>
<return type='void'/>
<arg name='ctx' type='void *' info='the user data (XML parser context)'/>
@@ -12204,27 +12224,27 @@ actually an xmlCharEncoding'/>
<arg name='defaultValue' type='const xmlChar *' info='the attribute default value'/>
<arg name='tree' type='xmlEnumerationPtr' info='the tree of enumerated value set'/>
</function>
- <function name='xmlSAX2CDataBlock' file='SAX2'>
+ <function name='xmlSAX2CDataBlock' file='SAX2' module='SAX2'>
<info>called when a pcdata block has been parsed</info>
<return type='void'/>
<arg name='ctx' type='void *' info='the user data (XML parser context)'/>
<arg name='value' type='const xmlChar *' info='The pcdata content'/>
<arg name='len' type='int' info='the block length'/>
</function>
- <function name='xmlSAX2Characters' file='SAX2'>
+ <function name='xmlSAX2Characters' file='SAX2' module='SAX2'>
<info>receiving some chars from the parser.</info>
<return type='void'/>
<arg name='ctx' type='void *' info='the user data (XML parser context)'/>
<arg name='ch' type='const xmlChar *' info='a xmlChar string'/>
<arg name='len' type='int' info='the number of xmlChar'/>
</function>
- <function name='xmlSAX2Comment' file='SAX2'>
+ <function name='xmlSAX2Comment' file='SAX2' module='SAX2'>
<info>A xmlSAX2Comment has been parsed.</info>
<return type='void'/>
<arg name='ctx' type='void *' info='the user data (XML parser context)'/>
<arg name='value' type='const xmlChar *' info='the xmlSAX2Comment content'/>
</function>
- <function name='xmlSAX2ElementDecl' file='SAX2'>
+ <function name='xmlSAX2ElementDecl' file='SAX2' module='SAX2'>
<info>An element definition has been parsed</info>
<return type='void'/>
<arg name='ctx' type='void *' info='the user data (XML parser context)'/>
@@ -12232,19 +12252,19 @@ actually an xmlCharEncoding'/>
<arg name='type' type='int' info='the element type'/>
<arg name='content' type='xmlElementContentPtr' info='the element value tree'/>
</function>
- <function name='xmlSAX2EndDocument' file='SAX2'>
+ <function name='xmlSAX2EndDocument' file='SAX2' module='SAX2'>
<info>called when the document end has been detected.</info>
<return type='void'/>
<arg name='ctx' type='void *' info='the user data (XML parser context)'/>
</function>
- <function name='xmlSAX2EndElement' file='SAX2'>
+ <function name='xmlSAX2EndElement' file='SAX2' module='SAX2'>
<cond>defined(LIBXML_SAX1_ENABLED) || defined(LIBXML_HTML_ENABLED)</cond>
<info>called when the end of an element has been detected.</info>
<return type='void'/>
<arg name='ctx' type='void *' info='the user data (XML parser context)'/>
<arg name='name' type='const xmlChar *' info='The element name'/>
</function>
- <function name='xmlSAX2EndElementNs' file='SAX2'>
+ <function name='xmlSAX2EndElementNs' file='SAX2' module='SAX2'>
<info>SAX2 callback when an element end has been detected by the parser. It provides the namespace informations for the element.</info>
<return type='void'/>
<arg name='ctx' type='void *' info='the user data (XML parser context)'/>
@@ -12252,7 +12272,7 @@ actually an xmlCharEncoding'/>
<arg name='prefix' type='const xmlChar *' info='the element namespace prefix if available'/>
<arg name='URI' type='const xmlChar *' info='the element namespace name if available'/>
</function>
- <function name='xmlSAX2EntityDecl' file='SAX2'>
+ <function name='xmlSAX2EntityDecl' file='SAX2' module='SAX2'>
<info>An entity definition has been parsed</info>
<return type='void'/>
<arg name='ctx' type='void *' info='the user data (XML parser context)'/>
@@ -12262,7 +12282,7 @@ actually an xmlCharEncoding'/>
<arg name='systemId' type='const xmlChar *' info='The system ID of the entity'/>
<arg name='content' type='xmlChar *' info='the entity value (without processing).'/>
</function>
- <function name='xmlSAX2ExternalSubset' file='SAX2'>
+ <function name='xmlSAX2ExternalSubset' file='SAX2' module='SAX2'>
<info>Callback on external subset declaration.</info>
<return type='void'/>
<arg name='ctx' type='void *' info='the user data (XML parser context)'/>
@@ -12270,74 +12290,74 @@ actually an xmlCharEncoding'/>
<arg name='ExternalID' type='const xmlChar *' info='the external ID'/>
<arg name='SystemID' type='const xmlChar *' info='the SYSTEM ID (e.g. filename or URL)'/>
</function>
- <function name='xmlSAX2GetColumnNumber' file='SAX2'>
+ <function name='xmlSAX2GetColumnNumber' file='SAX2' module='SAX2'>
<info>Provide the column number of the current parsing point.</info>
<return type='int' info='an int'/>
<arg name='ctx' type='void *' info='the user data (XML parser context)'/>
</function>
- <function name='xmlSAX2GetEntity' file='SAX2'>
+ <function name='xmlSAX2GetEntity' file='SAX2' module='SAX2'>
<info>Get an entity by name</info>
<return type='xmlEntityPtr' info='the xmlEntityPtr if found.'/>
<arg name='ctx' type='void *' info='the user data (XML parser context)'/>
<arg name='name' type='const xmlChar *' info='The entity name'/>
</function>
- <function name='xmlSAX2GetLineNumber' file='SAX2'>
+ <function name='xmlSAX2GetLineNumber' file='SAX2' module='SAX2'>
<info>Provide the line number of the current parsing point.</info>
<return type='int' info='an int'/>
<arg name='ctx' type='void *' info='the user data (XML parser context)'/>
</function>
- <function name='xmlSAX2GetParameterEntity' file='SAX2'>
+ <function name='xmlSAX2GetParameterEntity' file='SAX2' module='SAX2'>
<info>Get a parameter entity by name</info>
<return type='xmlEntityPtr' info='the xmlEntityPtr if found.'/>
<arg name='ctx' type='void *' info='the user data (XML parser context)'/>
<arg name='name' type='const xmlChar *' info='The entity name'/>
</function>
- <function name='xmlSAX2GetPublicId' file='SAX2'>
+ <function name='xmlSAX2GetPublicId' file='SAX2' module='SAX2'>
<info>Provides the public ID e.g. &quot;-//SGMLSOURCE//DTD DEMO//EN&quot;</info>
<return type='const xmlChar *' info='a xmlChar *'/>
<arg name='ctx' type='void *' info='the user data (XML parser context)'/>
</function>
- <function name='xmlSAX2GetSystemId' file='SAX2'>
+ <function name='xmlSAX2GetSystemId' file='SAX2' module='SAX2'>
<info>Provides the system ID, basically URL or filename e.g. http://www.sgmlsource.com/dtds/memo.dtd</info>
<return type='const xmlChar *' info='a xmlChar *'/>
<arg name='ctx' type='void *' info='the user data (XML parser context)'/>
</function>
- <function name='xmlSAX2HasExternalSubset' file='SAX2'>
+ <function name='xmlSAX2HasExternalSubset' file='SAX2' module='SAX2'>
<info>Does this document has an external subset</info>
<return type='int' info='1 if true'/>
<arg name='ctx' type='void *' info='the user data (XML parser context)'/>
</function>
- <function name='xmlSAX2HasInternalSubset' file='SAX2'>
+ <function name='xmlSAX2HasInternalSubset' file='SAX2' module='SAX2'>
<info>Does this document has an internal subset</info>
<return type='int' info='1 if true'/>
<arg name='ctx' type='void *' info='the user data (XML parser context)'/>
</function>
- <function name='xmlSAX2IgnorableWhitespace' file='SAX2'>
+ <function name='xmlSAX2IgnorableWhitespace' file='SAX2' module='SAX2'>
<info>receiving some ignorable whitespaces from the parser. UNUSED: by default the DOM building will use xmlSAX2Characters</info>
<return type='void'/>
<arg name='ctx' type='void *' info='the user data (XML parser context)'/>
<arg name='ch' type='const xmlChar *' info='a xmlChar string'/>
<arg name='len' type='int' info='the number of xmlChar'/>
</function>
- <function name='xmlSAX2InitDefaultSAXHandler' file='SAX2'>
+ <function name='xmlSAX2InitDefaultSAXHandler' file='SAX2' module='SAX2'>
<info>Initialize the default XML SAX2 handler</info>
<return type='void'/>
<arg name='hdlr' type='xmlSAXHandler *' info='the SAX handler'/>
<arg name='warning' type='int' info='flag if non-zero sets the handler warning procedure'/>
</function>
- <function name='xmlSAX2InitDocbDefaultSAXHandler' file='SAX2'>
+ <function name='xmlSAX2InitDocbDefaultSAXHandler' file='SAX2' module='SAX2'>
<cond>defined(LIBXML_DOCB_ENABLED)</cond>
<info>Initialize the default DocBook SAX2 handler</info>
<return type='void'/>
<arg name='hdlr' type='xmlSAXHandler *' info='the SAX handler'/>
</function>
- <function name='xmlSAX2InitHtmlDefaultSAXHandler' file='SAX2'>
+ <function name='xmlSAX2InitHtmlDefaultSAXHandler' file='SAX2' module='SAX2'>
<cond>defined(LIBXML_HTML_ENABLED)</cond>
<info>Initialize the default HTML SAX2 handler</info>
<return type='void'/>
<arg name='hdlr' type='xmlSAXHandler *' info='the SAX handler'/>
</function>
- <function name='xmlSAX2InternalSubset' file='SAX2'>
+ <function name='xmlSAX2InternalSubset' file='SAX2' module='SAX2'>
<info>Callback on internal subset declaration.</info>
<return type='void'/>
<arg name='ctx' type='void *' info='the user data (XML parser context)'/>
@@ -12345,12 +12365,12 @@ actually an xmlCharEncoding'/>
<arg name='ExternalID' type='const xmlChar *' info='the external ID'/>
<arg name='SystemID' type='const xmlChar *' info='the SYSTEM ID (e.g. filename or URL)'/>
</function>
- <function name='xmlSAX2IsStandalone' file='SAX2'>
+ <function name='xmlSAX2IsStandalone' file='SAX2' module='SAX2'>
<info>Is this document tagged standalone ?</info>
<return type='int' info='1 if true'/>
<arg name='ctx' type='void *' info='the user data (XML parser context)'/>
</function>
- <function name='xmlSAX2NotationDecl' file='SAX2'>
+ <function name='xmlSAX2NotationDecl' file='SAX2' module='SAX2'>
<info>What to do when a notation declaration has been parsed.</info>
<return type='void'/>
<arg name='ctx' type='void *' info='the user data (XML parser context)'/>
@@ -12358,38 +12378,38 @@ actually an xmlCharEncoding'/>
<arg name='publicId' type='const xmlChar *' info='The public ID of the entity'/>
<arg name='systemId' type='const xmlChar *' info='The system ID of the entity'/>
</function>
- <function name='xmlSAX2ProcessingInstruction' file='SAX2'>
+ <function name='xmlSAX2ProcessingInstruction' file='SAX2' module='SAX2'>
<info>A processing instruction has been parsed.</info>
<return type='void'/>
<arg name='ctx' type='void *' info='the user data (XML parser context)'/>
<arg name='target' type='const xmlChar *' info='the target name'/>
<arg name='data' type='const xmlChar *' info='the PI data&apos;s'/>
</function>
- <function name='xmlSAX2Reference' file='SAX2'>
+ <function name='xmlSAX2Reference' file='SAX2' module='SAX2'>
<info>called when an entity xmlSAX2Reference is detected.</info>
<return type='void'/>
<arg name='ctx' type='void *' info='the user data (XML parser context)'/>
<arg name='name' type='const xmlChar *' info='The entity name'/>
</function>
- <function name='xmlSAX2ResolveEntity' file='SAX2'>
+ <function name='xmlSAX2ResolveEntity' file='SAX2' module='SAX2'>
<info>The entity loader, to control the loading of external entities, the application can either: - override this xmlSAX2ResolveEntity() callback in the SAX block - or better use the xmlSetExternalEntityLoader() function to set up it&apos;s own entity resolution routine</info>
<return type='xmlParserInputPtr' info='the xmlParserInputPtr if inlined or NULL for DOM behaviour.'/>
<arg name='ctx' type='void *' info='the user data (XML parser context)'/>
<arg name='publicId' type='const xmlChar *' info='The public ID of the entity'/>
<arg name='systemId' type='const xmlChar *' info='The system ID of the entity'/>
</function>
- <function name='xmlSAX2SetDocumentLocator' file='SAX2'>
+ <function name='xmlSAX2SetDocumentLocator' file='SAX2' module='SAX2'>
<info>Receive the document locator at startup, actually xmlDefaultSAXLocator Everything is available on the context, so this is useless in our case.</info>
<return type='void'/>
<arg name='ctx' type='void *' info='the user data (XML parser context)'/>
<arg name='loc' type='xmlSAXLocatorPtr' info='A SAX Locator'/>
</function>
- <function name='xmlSAX2StartDocument' file='SAX2'>
+ <function name='xmlSAX2StartDocument' file='SAX2' module='SAX2'>
<info>called when the document start being processed.</info>
<return type='void'/>
<arg name='ctx' type='void *' info='the user data (XML parser context)'/>
</function>
- <function name='xmlSAX2StartElement' file='SAX2'>
+ <function name='xmlSAX2StartElement' file='SAX2' module='SAX2'>
<cond>defined(LIBXML_SAX1_ENABLED) || defined(LIBXML_HTML_ENABLED)</cond>
<info>called when an opening tag has been processed.</info>
<return type='void'/>
@@ -12397,7 +12417,7 @@ actually an xmlCharEncoding'/>
<arg name='fullname' type='const xmlChar *' info='The element name, including namespace prefix'/>
<arg name='atts' type='const xmlChar **' info='An array of name/value attributes pairs, NULL terminated'/>
</function>
- <function name='xmlSAX2StartElementNs' file='SAX2'>
+ <function name='xmlSAX2StartElementNs' file='SAX2' module='SAX2'>
<info>SAX2 callback when an element start has been detected by the parser. It provides the namespace informations for the element, as well as the new namespace declarations on the element.</info>
<return type='void'/>
<arg name='ctx' type='void *' info='the user data (XML parser context)'/>
@@ -12410,7 +12430,7 @@ actually an xmlCharEncoding'/>
<arg name='nb_defaulted' type='int' info='the number of defaulted attributes.'/>
<arg name='attributes' type='const xmlChar **' info='pointer to the array of (localname/prefix/URI/value/end) attribute values.'/>
</function>
- <function name='xmlSAX2UnparsedEntityDecl' file='SAX2'>
+ <function name='xmlSAX2UnparsedEntityDecl' file='SAX2' module='SAX2'>
<info>What to do when an unparsed entity declaration is parsed</info>
<return type='void'/>
<arg name='ctx' type='void *' info='the user data (XML parser context)'/>
@@ -12419,13 +12439,13 @@ actually an xmlCharEncoding'/>
<arg name='systemId' type='const xmlChar *' info='The system ID of the entity'/>
<arg name='notationName' type='const xmlChar *' info='the name of the notation'/>
</function>
- <function name='xmlSAXDefaultVersion' file='SAX2'>
+ <function name='xmlSAXDefaultVersion' file='SAX2' module='SAX2'>
<cond>defined(LIBXML_SAX1_ENABLED)</cond>
<info>Set the default version of SAX used globally by the library. By default, during initialization the default is set to 2. Note that it is generally a better coding style to use xmlSAXVersion() to set up the version explicitly for a given parsing context.</info>
<return type='int' info='the previous value in case of success and -1 in case of error.'/>
<arg name='version' type='int' info='the version, 1 or 2'/>
</function>
- <function name='xmlSAXParseDTD' file='parser'>
+ <function name='xmlSAXParseDTD' file='parser' module='parser'>
<cond>defined(LIBXML_VALID_ENABLED)</cond>
<info>Load and parse an external subset.</info>
<return type='xmlDtdPtr' info='the resulting xmlDtdPtr or NULL in case of error.'/>
@@ -12433,22 +12453,22 @@ actually an xmlCharEncoding'/>
<arg name='ExternalID' type='const xmlChar *' info='a NAME* containing the External ID of the DTD'/>
<arg name='SystemID' type='const xmlChar *' info='a NAME* containing the URL to the DTD'/>
</function>
- <function name='xmlSAXParseDoc' file='parser'>
+ <function name='xmlSAXParseDoc' file='parser' module='parser'>
<cond>defined(LIBXML_SAX1_ENABLED)</cond>
<info>parse an XML in-memory document and build a tree. It use the given SAX function block to handle the parsing callback. If sax is NULL, fallback to the default DOM tree building routines.</info>
<return type='xmlDocPtr' info='the resulting document tree'/>
<arg name='sax' type='xmlSAXHandlerPtr' info='the SAX handler block'/>
- <arg name='cur' type='xmlChar *' info='a pointer to an array of xmlChar'/>
+ <arg name='cur' type='const xmlChar *' info='a pointer to an array of xmlChar'/>
<arg name='recovery' type='int' info='work in recovery mode, i.e. tries to read no Well Formed documents'/>
</function>
- <function name='xmlSAXParseEntity' file='parser'>
+ <function name='xmlSAXParseEntity' file='parser' module='parser'>
<cond>defined(LIBXML_SAX1_ENABLED)</cond>
<info>parse an XML external entity out of context and build a tree. It use the given SAX function block to handle the parsing callback. If sax is NULL, fallback to the default DOM tree building routines. [78] extParsedEnt ::= TextDecl? content This correspond to a &quot;Well Balanced&quot; chunk</info>
<return type='xmlDocPtr' info='the resulting document tree'/>
<arg name='sax' type='xmlSAXHandlerPtr' info='the SAX handler block'/>
<arg name='filename' type='const char *' info='the filename'/>
</function>
- <function name='xmlSAXParseFile' file='parser'>
+ <function name='xmlSAXParseFile' file='parser' module='parser'>
<cond>defined(LIBXML_SAX1_ENABLED)</cond>
<info>parse an XML file and build a tree. Automatic support for ZLIB/Compress compressed document is provided by default if found at compile-time. It use the given SAX function block to handle the parsing callback. If sax is NULL, fallback to the default DOM tree building routines.</info>
<return type='xmlDocPtr' info='the resulting document tree'/>
@@ -12456,7 +12476,7 @@ actually an xmlCharEncoding'/>
<arg name='filename' type='const char *' info='the filename'/>
<arg name='recovery' type='int' info='work in recovery mode, i.e. tries to read no Well Formed documents'/>
</function>
- <function name='xmlSAXParseFileWithData' file='parser'>
+ <function name='xmlSAXParseFileWithData' file='parser' module='parser'>
<cond>defined(LIBXML_SAX1_ENABLED)</cond>
<info>parse an XML file and build a tree. Automatic support for ZLIB/Compress compressed document is provided by default if found at compile-time. It use the given SAX function block to handle the parsing callback. If sax is NULL, fallback to the default DOM tree building routines. User data (void *) is stored within the parser context in the context&apos;s _private member, so it is available nearly everywhere in libxml</info>
<return type='xmlDocPtr' info='the resulting document tree'/>
@@ -12465,7 +12485,7 @@ actually an xmlCharEncoding'/>
<arg name='recovery' type='int' info='work in recovery mode, i.e. tries to read no Well Formed documents'/>
<arg name='data' type='void *' info='the userdata'/>
</function>
- <function name='xmlSAXParseMemory' file='parser'>
+ <function name='xmlSAXParseMemory' file='parser' module='parser'>
<cond>defined(LIBXML_SAX1_ENABLED)</cond>
<info>parse an XML in-memory block and use the given SAX function block to handle the parsing callback. If sax is NULL, fallback to the default DOM tree building routines.</info>
<return type='xmlDocPtr' info='the resulting document tree'/>
@@ -12474,7 +12494,7 @@ actually an xmlCharEncoding'/>
<arg name='size' type='int' info='the size of the array'/>
<arg name='recovery' type='int' info='work in recovery mode, i.e. tries to read not Well Formed documents'/>
</function>
- <function name='xmlSAXParseMemoryWithData' file='parser'>
+ <function name='xmlSAXParseMemoryWithData' file='parser' module='parser'>
<cond>defined(LIBXML_SAX1_ENABLED)</cond>
<info>parse an XML in-memory block and use the given SAX function block to handle the parsing callback. If sax is NULL, fallback to the default DOM tree building routines. User data (void *) is stored within the parser context in the context&apos;s _private member, so it is available nearly everywhere in libxml</info>
<return type='xmlDocPtr' info='the resulting document tree'/>
@@ -12484,7 +12504,7 @@ actually an xmlCharEncoding'/>
<arg name='recovery' type='int' info='work in recovery mode, i.e. tries to read no Well Formed documents'/>
<arg name='data' type='void *' info='the userdata'/>
</function>
- <function name='xmlSAXUserParseFile' file='parser'>
+ <function name='xmlSAXUserParseFile' file='parser' module='parser'>
<cond>defined(LIBXML_SAX1_ENABLED)</cond>
<info>parse an XML file and call the given SAX handler routines. Automatic support for ZLIB/Compress compressed document is provided</info>
<return type='int' info='0 in case of success or a error number otherwise'/>
@@ -12492,7 +12512,7 @@ actually an xmlCharEncoding'/>
<arg name='user_data' type='void *' info='The user data returned on SAX callbacks'/>
<arg name='filename' type='const char *' info='a file name'/>
</function>
- <function name='xmlSAXUserParseMemory' file='parser'>
+ <function name='xmlSAXUserParseMemory' file='parser' module='parser'>
<cond>defined(LIBXML_SAX1_ENABLED)</cond>
<info>A better SAX parsing routine. parse an XML in-memory buffer and call the given SAX handler routines.</info>
<return type='int' info='0 in case of success or a error number otherwise'/>
@@ -12501,33 +12521,33 @@ actually an xmlCharEncoding'/>
<arg name='buffer' type='const char *' info='an in-memory XML document input'/>
<arg name='size' type='int' info='the length of the XML document in bytes'/>
</function>
- <function name='xmlSAXVersion' file='SAX2'>
+ <function name='xmlSAXVersion' file='SAX2' module='SAX2'>
<info>Initialize the default XML SAX handler according to the version</info>
<return type='int' info='0 in case of success and -1 in case of error.'/>
<arg name='hdlr' type='xmlSAXHandler *' info='the SAX handler'/>
<arg name='version' type='int' info='the version, 1 or 2'/>
</function>
- <function name='xmlSaveClose' file='xmlsave'>
+ <function name='xmlSaveClose' file='xmlsave' module='xmlsave'>
<cond>defined(LIBXML_OUTPUT_ENABLED)</cond>
<info>Close a document saving context, i.e. make sure that all bytes have been output and free the associated data.</info>
<return type='int' info='the number of byte written or -1 in case of error.'/>
<arg name='ctxt' type='xmlSaveCtxtPtr' info='a document saving context'/>
</function>
- <function name='xmlSaveDoc' file='xmlsave'>
+ <function name='xmlSaveDoc' file='xmlsave' module='xmlsave'>
<cond>defined(LIBXML_OUTPUT_ENABLED)</cond>
<info>Save a full document to a saving context TODO: The function is not fully implemented yet as it does not return the byte count but 0 instead</info>
<return type='long' info='the number of byte written or -1 in case of error'/>
<arg name='ctxt' type='xmlSaveCtxtPtr' info='a document saving context'/>
<arg name='doc' type='xmlDocPtr' info='a document'/>
</function>
- <function name='xmlSaveFile' file='tree'>
+ <function name='xmlSaveFile' file='tree' module='xmlsave'>
<cond>defined(LIBXML_OUTPUT_ENABLED)</cond>
<info>Dump an XML document to a file. Will use compression if compiled in and enabled. If @filename is &quot;-&quot; the stdout file is used.</info>
<return type='int' info='the number of bytes written or -1 in case of failure.'/>
<arg name='filename' type='const char *' info='the filename (or URL)'/>
<arg name='cur' type='xmlDocPtr' info='the document'/>
</function>
- <function name='xmlSaveFileEnc' file='tree'>
+ <function name='xmlSaveFileEnc' file='tree' module='xmlsave'>
<cond>defined(LIBXML_OUTPUT_ENABLED)</cond>
<info>Dump an XML document, converting it to the given encoding</info>
<return type='int' info='the number of bytes written or -1 in case of failure.'/>
@@ -12535,7 +12555,7 @@ actually an xmlCharEncoding'/>
<arg name='cur' type='xmlDocPtr' info='the document'/>
<arg name='encoding' type='const char *' info='the name of an encoding (or NULL)'/>
</function>
- <function name='xmlSaveFileTo' file='tree'>
+ <function name='xmlSaveFileTo' file='tree' module='xmlsave'>
<cond>defined(LIBXML_OUTPUT_ENABLED)</cond>
<info>Dump an XML document to an I/O buffer. Warning ! This call xmlOutputBufferClose() on buf which is not available after this call.</info>
<return type='int' info='the number of bytes written or -1 in case of failure.'/>
@@ -12543,13 +12563,13 @@ actually an xmlCharEncoding'/>
<arg name='cur' type='xmlDocPtr' info='the document'/>
<arg name='encoding' type='const char *' info='the encoding if any assuming the I/O layer handles the trancoding'/>
</function>
- <function name='xmlSaveFlush' file='xmlsave'>
+ <function name='xmlSaveFlush' file='xmlsave' module='xmlsave'>
<cond>defined(LIBXML_OUTPUT_ENABLED)</cond>
<info>Flush a document saving context, i.e. make sure that all bytes have been output.</info>
<return type='int' info='the number of byte written or -1 in case of error.'/>
<arg name='ctxt' type='xmlSaveCtxtPtr' info='a document saving context'/>
</function>
- <function name='xmlSaveFormatFile' file='tree'>
+ <function name='xmlSaveFormatFile' file='tree' module='xmlsave'>
<cond>defined(LIBXML_OUTPUT_ENABLED)</cond>
<info>Dump an XML document to a file. Will use compression if compiled in and enabled. If @filename is &quot;-&quot; the stdout file is used. If @format is set then the document will be indented on output. Note that @format = 1 provide node indenting only if xmlIndentTreeOutput = 1 or xmlKeepBlanksDefault(0) was called</info>
<return type='int' info='the number of bytes written or -1 in case of failure.'/>
@@ -12557,7 +12577,7 @@ actually an xmlCharEncoding'/>
<arg name='cur' type='xmlDocPtr' info='the document'/>
<arg name='format' type='int' info='should formatting spaces been added'/>
</function>
- <function name='xmlSaveFormatFileEnc' file='tree'>
+ <function name='xmlSaveFormatFileEnc' file='tree' module='xmlsave'>
<cond>defined(LIBXML_OUTPUT_ENABLED)</cond>
<info>Dump an XML document to a file or an URL.</info>
<return type='int' info='the number of bytes written or -1 in case of error. Note that @format = 1 provide node indenting only if xmlIndentTreeOutput = 1 or xmlKeepBlanksDefault(0) was called'/>
@@ -12566,7 +12586,7 @@ actually an xmlCharEncoding'/>
<arg name='encoding' type='const char *' info='the name of the encoding to use or NULL.'/>
<arg name='format' type='int' info='should formatting spaces be added.'/>
</function>
- <function name='xmlSaveFormatFileTo' file='tree'>
+ <function name='xmlSaveFormatFileTo' file='tree' module='xmlsave'>
<cond>defined(LIBXML_OUTPUT_ENABLED)</cond>
<info>Dump an XML document to an I/O buffer. Warning ! This call xmlOutputBufferClose() on buf which is not available after this call.</info>
<return type='int' info='the number of bytes written or -1 in case of failure.'/>
@@ -12575,21 +12595,21 @@ actually an xmlCharEncoding'/>
<arg name='encoding' type='const char *' info='the encoding if any assuming the I/O layer handles the trancoding'/>
<arg name='format' type='int' info='should formatting spaces been added'/>
</function>
- <function name='xmlSaveSetAttrEscape' file='xmlsave'>
+ <function name='xmlSaveSetAttrEscape' file='xmlsave' module='xmlsave'>
<cond>defined(LIBXML_OUTPUT_ENABLED)</cond>
<info>Set a custom escaping function to be used for text in attribute content</info>
<return type='int' info='0 if successful or -1 in case of error.'/>
<arg name='ctxt' type='xmlSaveCtxtPtr' info='a document saving context'/>
<arg name='escape' type='xmlCharEncodingOutputFunc' info='the escaping function'/>
</function>
- <function name='xmlSaveSetEscape' file='xmlsave'>
+ <function name='xmlSaveSetEscape' file='xmlsave' module='xmlsave'>
<cond>defined(LIBXML_OUTPUT_ENABLED)</cond>
<info>Set a custom escaping function to be used for text in element content</info>
<return type='int' info='0 if successful or -1 in case of error.'/>
<arg name='ctxt' type='xmlSaveCtxtPtr' info='a document saving context'/>
<arg name='escape' type='xmlCharEncodingOutputFunc' info='the escaping function'/>
</function>
- <function name='xmlSaveToFd' file='xmlsave'>
+ <function name='xmlSaveToFd' file='xmlsave' module='xmlsave'>
<cond>defined(LIBXML_OUTPUT_ENABLED)</cond>
<info>Create a document saving context serializing to a file descriptor with the encoding and the options given.</info>
<return type='xmlSaveCtxtPtr' info='a new serialization context or NULL in case of error.'/>
@@ -12597,7 +12617,7 @@ actually an xmlCharEncoding'/>
<arg name='encoding' type='const char *' info='the encoding name to use or NULL'/>
<arg name='options' type='int' info='a set of xmlSaveOptions'/>
</function>
- <function name='xmlSaveToFilename' file='xmlsave'>
+ <function name='xmlSaveToFilename' file='xmlsave' module='xmlsave'>
<cond>defined(LIBXML_OUTPUT_ENABLED)</cond>
<info>Create a document saving context serializing to a filename or possibly to an URL (but this is less reliable) with the encoding and the options given.</info>
<return type='xmlSaveCtxtPtr' info='a new serialization context or NULL in case of error.'/>
@@ -12605,7 +12625,7 @@ actually an xmlCharEncoding'/>
<arg name='encoding' type='const char *' info='the encoding name to use or NULL'/>
<arg name='options' type='int' info='a set of xmlSaveOptions'/>
</function>
- <function name='xmlSaveToIO' file='xmlsave'>
+ <function name='xmlSaveToIO' file='xmlsave' module='xmlsave'>
<cond>defined(LIBXML_OUTPUT_ENABLED)</cond>
<info>Create a document saving context serializing to a file descriptor with the encoding and the options given</info>
<return type='xmlSaveCtxtPtr' info='a new serialization context or NULL in case of error.'/>
@@ -12615,25 +12635,25 @@ actually an xmlCharEncoding'/>
<arg name='encoding' type='const char *' info='the encoding name to use or NULL'/>
<arg name='options' type='int' info='a set of xmlSaveOptions'/>
</function>
- <function name='xmlSaveTree' file='xmlsave'>
+ <function name='xmlSaveTree' file='xmlsave' module='xmlsave'>
<cond>defined(LIBXML_OUTPUT_ENABLED)</cond>
<info>Save a subtree starting at the node parameter to a saving context TODO: The function is not fully implemented yet as it does not return the byte count but 0 instead</info>
<return type='long' info='the number of byte written or -1 in case of error'/>
<arg name='ctxt' type='xmlSaveCtxtPtr' info='a document saving context'/>
<arg name='node' type='xmlNodePtr' info='a document'/>
</function>
- <function name='xmlSaveUri' file='uri'>
+ <function name='xmlSaveUri' file='uri' module='uri'>
<info>Save the URI as an escaped string</info>
<return type='xmlChar *' info='a new string (to be deallocated by caller)'/>
<arg name='uri' type='xmlURIPtr' info='pointer to an xmlURI'/>
</function>
- <function name='xmlScanName' file='parserInternals'>
+ <function name='xmlScanName' file='parserInternals' module='legacy'>
<cond>defined(LIBXML_LEGACY_ENABLED)</cond>
<info>Trickery: parse an XML name but without consuming the input flow Needed for rollback cases. Used only when parsing entities references. TODO: seems deprecated now, only used in the default part of xmlParserHandleReference [4] NameChar ::= Letter | Digit | &apos;.&apos; | &apos;-&apos; | &apos;_&apos; | &apos;:&apos; | CombiningChar | Extender [5] Name ::= (Letter | &apos;_&apos; | &apos;:&apos;) (NameChar)* [6] Names ::= Name (S Name)*</info>
<return type='xmlChar *' info='the Name parsed or NULL'/>
<arg name='ctxt' type='xmlParserCtxtPtr' info='an XML parser context'/>
</function>
- <function name='xmlSchemaCheckFacet' file='xmlschemastypes'>
+ <function name='xmlSchemaCheckFacet' file='xmlschemastypes' module='xmlschemas'>
<cond>defined(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'/>
@@ -12642,25 +12662,25 @@ actually an xmlCharEncoding'/>
<arg name='ctxt' type='xmlSchemaParserCtxtPtr' info='the schema parser context or NULL'/>
<arg name='name' type='const xmlChar *' info='name of the type'/>
</function>
- <function name='xmlSchemaCleanupTypes' file='xmlschemastypes'>
+ <function name='xmlSchemaCleanupTypes' file='xmlschemastypes' module='xmlschemastypes'>
<cond>defined(LIBXML_SCHEMAS_ENABLED)</cond>
<info>Cleanup the default XML Schemas type library</info>
<return type='void'/>
</function>
- <function name='xmlSchemaCollapseString' file='xmlschemastypes'>
+ <function name='xmlSchemaCollapseString' file='xmlschemastypes' module='xmlschemastypes'>
<cond>defined(LIBXML_SCHEMAS_ENABLED)</cond>
<info>Removes and normalize white spaces in the string</info>
<return type='xmlChar *' info='the new string or NULL if no change was required.'/>
<arg name='value' type='const xmlChar *' info='a value'/>
</function>
- <function name='xmlSchemaCompareValues' file='xmlschemastypes'>
+ <function name='xmlSchemaCompareValues' file='xmlschemastypes' module='xmlschemastypes'>
<cond>defined(LIBXML_SCHEMAS_ENABLED)</cond>
<info>Compare 2 values</info>
<return type='int' info='-1 if x &lt; y, 0 if x == y, 1 if x &gt; y, 2 if x &lt;&gt; y, and -2 in case of error'/>
<arg name='x' type='xmlSchemaValPtr' info='a first value'/>
<arg name='y' type='xmlSchemaValPtr' info='a second value'/>
</function>
- <function name='xmlSchemaCompareValuesWhtsp' file='xmlschemastypes'>
+ <function name='xmlSchemaCompareValuesWhtsp' file='xmlschemastypes' module='xmlschemastypes'>
<cond>defined(LIBXML_SCHEMAS_ENABLED)</cond>
<info>Compare 2 values</info>
<return type='int' info='-1 if x &lt; y, 0 if x == y, 1 if x &gt; y, 2 if x &lt;&gt; y, and -2 in case of error'/>
@@ -12669,87 +12689,87 @@ actually an xmlCharEncoding'/>
<arg name='y' type='xmlSchemaValPtr' info='a second value'/>
<arg name='yws' type='xmlSchemaWhitespaceValueType' info='the whitespace value of y'/>
</function>
- <function name='xmlSchemaCopyValue' file='xmlschemastypes'>
+ <function name='xmlSchemaCopyValue' file='xmlschemastypes' module='xmlschemastypes'>
<cond>defined(LIBXML_SCHEMAS_ENABLED)</cond>
<info>Copies the precomputed value. This duplicates any string within.</info>
<return type='xmlSchemaValPtr' info='the copy or NULL if a copy for a data-type is not implemented.'/>
<arg name='val' type='xmlSchemaValPtr' info='the precomputed value to be copied'/>
</function>
- <function name='xmlSchemaDump' file='xmlschemas'>
+ <function name='xmlSchemaDump' file='xmlschemas' module='xmlschemas'>
<cond>defined(LIBXML_SCHEMAS_ENABLED) &amp;&amp; defined(LIBXML_OUTPUT_ENABLED)</cond>
<info>Dump a Schema structure.</info>
<return type='void'/>
<arg name='output' type='FILE *' info='the file output'/>
<arg name='schema' type='xmlSchemaPtr' info='a schema structure'/>
</function>
- <function name='xmlSchemaFree' file='xmlschemas'>
+ <function name='xmlSchemaFree' file='xmlschemas' module='xmlschemas'>
<cond>defined(LIBXML_SCHEMAS_ENABLED)</cond>
<info>Deallocate a Schema structure.</info>
<return type='void'/>
<arg name='schema' type='xmlSchemaPtr' info='a schema structure'/>
</function>
- <function name='xmlSchemaFreeFacet' file='xmlschemastypes'>
+ <function name='xmlSchemaFreeFacet' file='xmlschemastypes' module='xmlschemas'>
<cond>defined(LIBXML_SCHEMAS_ENABLED)</cond>
<info>Deallocate a Schema Facet structure.</info>
<return type='void'/>
<arg name='facet' type='xmlSchemaFacetPtr' info='a schema facet structure'/>
</function>
- <function name='xmlSchemaFreeParserCtxt' file='xmlschemas'>
+ <function name='xmlSchemaFreeParserCtxt' file='xmlschemas' module='xmlschemas'>
<cond>defined(LIBXML_SCHEMAS_ENABLED)</cond>
<info>Free the resources associated to the schema parser context</info>
<return type='void'/>
<arg name='ctxt' type='xmlSchemaParserCtxtPtr' info='the schema parser context'/>
</function>
- <function name='xmlSchemaFreeType' file='schemasInternals'>
+ <function name='xmlSchemaFreeType' file='schemasInternals' module='xmlschemas'>
<cond>defined(LIBXML_SCHEMAS_ENABLED)</cond>
<info>Deallocate a Schema Type structure.</info>
<return type='void'/>
<arg name='type' type='xmlSchemaTypePtr' info='a schema type structure'/>
</function>
- <function name='xmlSchemaFreeValidCtxt' file='xmlschemas'>
+ <function name='xmlSchemaFreeValidCtxt' file='xmlschemas' module='xmlschemas'>
<cond>defined(LIBXML_SCHEMAS_ENABLED)</cond>
<info>Free the resources associated to the schema validation context</info>
<return type='void'/>
<arg name='ctxt' type='xmlSchemaValidCtxtPtr' info='the schema validation context'/>
</function>
- <function name='xmlSchemaFreeValue' file='xmlschemastypes'>
+ <function name='xmlSchemaFreeValue' file='xmlschemastypes' module='xmlschemastypes'>
<cond>defined(LIBXML_SCHEMAS_ENABLED)</cond>
<info>Cleanup the default XML Schemas type library</info>
<return type='void'/>
<arg name='value' type='xmlSchemaValPtr' info='the value to free'/>
</function>
- <function name='xmlSchemaFreeWildcard' file='schemasInternals'>
+ <function name='xmlSchemaFreeWildcard' file='schemasInternals' module='xmlschemas'>
<cond>defined(LIBXML_SCHEMAS_ENABLED)</cond>
<info>Deallocates a wildcard structure.</info>
<return type='void'/>
<arg name='wildcard' type='xmlSchemaWildcardPtr' info='a wildcard structure'/>
</function>
- <function name='xmlSchemaGetBuiltInListSimpleTypeItemType' file='xmlschemastypes'>
+ <function name='xmlSchemaGetBuiltInListSimpleTypeItemType' file='xmlschemastypes' module='xmlschemastypes'>
<cond>defined(LIBXML_SCHEMAS_ENABLED)</cond>
<info>Lookup function</info>
<return type='xmlSchemaTypePtr' info='the item type of @type as defined by the built-in datatype hierarchy of XML Schema Part 2: Datatypes, or NULL in case of an error.'/>
<arg name='type' type='xmlSchemaTypePtr' info='the built-in simple type.'/>
</function>
- <function name='xmlSchemaGetBuiltInType' file='xmlschemastypes'>
+ <function name='xmlSchemaGetBuiltInType' file='xmlschemastypes' module='xmlschemastypes'>
<cond>defined(LIBXML_SCHEMAS_ENABLED)</cond>
<info>Gives you the type struct for a built-in type by its type id.</info>
<return type='xmlSchemaTypePtr' info='the type if found, NULL otherwise.'/>
<arg name='type' type='xmlSchemaValType' info='the type of the built in type'/>
</function>
- <function name='xmlSchemaGetCanonValue' file='xmlschemastypes'>
+ <function name='xmlSchemaGetCanonValue' file='xmlschemastypes' module='xmlschemastypes'>
<cond>defined(LIBXML_SCHEMAS_ENABLED)</cond>
- <info>Get a the cononical representation of the value. The caller has to free the returned retValue.</info>
- <return type='int' info='0 if the value could be built and -1 in case of API errors or if the value type is not supported yet.'/>
+ <info>Get a the cononical lexical representation of the value. The caller has to free the returned retValue. WARNING: Some value types are not supported yet, resulting in a @retValue of &quot;???&quot;.</info>
+ <return type='int' info='0 if the value could be built and -1 in case of API errors.'/>
<arg name='val' type='xmlSchemaValPtr' info='the precomputed value'/>
<arg name='retValue' type='const xmlChar **' info='the returned value'/>
</function>
- <function name='xmlSchemaGetFacetValueAsULong' file='xmlschemastypes'>
+ <function name='xmlSchemaGetFacetValueAsULong' file='xmlschemastypes' module='xmlschemastypes'>
<cond>defined(LIBXML_SCHEMAS_ENABLED)</cond>
<info>Extract the value of a facet</info>
<return type='unsigned long' info='the value as a long'/>
<arg name='facet' type='xmlSchemaFacetPtr' info='an schemas type facet'/>
</function>
- <function name='xmlSchemaGetParserErrors' file='xmlschemas'>
+ <function name='xmlSchemaGetParserErrors' file='xmlschemas' module='xmlschemas'>
<cond>defined(LIBXML_SCHEMAS_ENABLED)</cond>
<info>Get the callback information used to handle errors for a parser context</info>
<return type='int' info='-1 in case of failure, 0 otherwise'/>
@@ -12758,14 +12778,20 @@ actually an xmlCharEncoding'/>
<arg name='warn' type='xmlSchemaValidityWarningFunc *' info='the warning callback result'/>
<arg name='ctx' type='void **' info='contextual data for the callbacks result'/>
</function>
- <function name='xmlSchemaGetPredefinedType' file='xmlschemastypes'>
+ <function name='xmlSchemaGetPredefinedType' file='xmlschemastypes' module='xmlschemastypes'>
<cond>defined(LIBXML_SCHEMAS_ENABLED)</cond>
<info>Lookup a type in the default XML Schemas type library</info>
<return type='xmlSchemaTypePtr' info='the type if found, NULL otherwise'/>
<arg name='name' type='const xmlChar *' info='the type name'/>
<arg name='ns' type='const xmlChar *' info='the URI of the namespace usually &quot;http://www.w3.org/2001/XMLSchema&quot;'/>
</function>
- <function name='xmlSchemaGetValidErrors' file='xmlschemas'>
+ <function name='xmlSchemaGetValType' file='xmlschemastypes' module='xmlschemastypes'>
+ <cond>defined(LIBXML_SCHEMAS_ENABLED)</cond>
+ <info>Accessor for the type of a value</info>
+ <return type='xmlSchemaValType' info='the xmlSchemaValType of the value'/>
+ <arg name='val' type='xmlSchemaValPtr' info='a schemas value'/>
+ </function>
+ <function name='xmlSchemaGetValidErrors' file='xmlschemas' module='xmlschemas'>
<cond>defined(LIBXML_SCHEMAS_ENABLED)</cond>
<info>Get the error and warning callback informations</info>
<return type='int' info='-1 in case of error and 0 otherwise'/>
@@ -12774,69 +12800,69 @@ actually an xmlCharEncoding'/>
<arg name='warn' type='xmlSchemaValidityWarningFunc *' info='the warning function result'/>
<arg name='ctx' type='void **' info='the functions context result'/>
</function>
- <function name='xmlSchemaInitTypes' file='xmlschemastypes'>
+ <function name='xmlSchemaInitTypes' file='xmlschemastypes' module='xmlschemastypes'>
<cond>defined(LIBXML_SCHEMAS_ENABLED)</cond>
<info>Initialize the default XML Schemas type library</info>
<return type='void'/>
</function>
- <function name='xmlSchemaIsBuiltInTypeFacet' file='xmlschemastypes'>
+ <function name='xmlSchemaIsBuiltInTypeFacet' file='xmlschemastypes' module='xmlschemastypes'>
<cond>defined(LIBXML_SCHEMAS_ENABLED)</cond>
<info>Evaluates if a specific facet can be used in conjunction with a type.</info>
<return type='int' info='1 if the facet can be used with the given built-in type, 0 otherwise and -1 in case the type is not a built-in type.'/>
<arg name='type' type='xmlSchemaTypePtr' info='the built-in type'/>
<arg name='facetType' type='int' info='the facet type'/>
</function>
- <function name='xmlSchemaNewDocParserCtxt' file='xmlschemas'>
+ <function name='xmlSchemaNewDocParserCtxt' file='xmlschemas' module='xmlschemas'>
<cond>defined(LIBXML_SCHEMAS_ENABLED)</cond>
<info>Create an XML Schemas parse context for that document. NB. The document may be modified during the parsing process.</info>
<return type='xmlSchemaParserCtxtPtr' info='the parser context or NULL in case of error'/>
<arg name='doc' type='xmlDocPtr' info='a preparsed document tree'/>
</function>
- <function name='xmlSchemaNewFacet' file='xmlschemastypes'>
+ <function name='xmlSchemaNewFacet' file='xmlschemastypes' module='xmlschemas'>
<cond>defined(LIBXML_SCHEMAS_ENABLED)</cond>
<info>Allocate a new Facet structure.</info>
<return type='xmlSchemaFacetPtr' info='the newly allocated structure or NULL in case or error'/>
</function>
- <function name='xmlSchemaNewMemParserCtxt' file='xmlschemas'>
+ <function name='xmlSchemaNewMemParserCtxt' file='xmlschemas' module='xmlschemas'>
<cond>defined(LIBXML_SCHEMAS_ENABLED)</cond>
<info>Create an XML Schemas parse context for that memory buffer expected to contain an XML Schemas file.</info>
<return type='xmlSchemaParserCtxtPtr' info='the parser context or NULL in case of error'/>
<arg name='buffer' type='const char *' info='a pointer to a char array containing the schemas'/>
<arg name='size' type='int' info='the size of the array'/>
</function>
- <function name='xmlSchemaNewNOTATIONValue' file='xmlschemastypes'>
+ <function name='xmlSchemaNewNOTATIONValue' file='xmlschemastypes' module='xmlschemastypes'>
<cond>defined(LIBXML_SCHEMAS_ENABLED)</cond>
<info>Allocate a new NOTATION value.</info>
<return type='xmlSchemaValPtr' info='a pointer to the new value or NULL in case of error'/>
<arg name='name' type='const xmlChar *' info='the notation name'/>
<arg name='ns' type='const xmlChar *' info='the notation namespace name or NULL'/>
</function>
- <function name='xmlSchemaNewParserCtxt' file='xmlschemas'>
+ <function name='xmlSchemaNewParserCtxt' file='xmlschemas' module='xmlschemas'>
<cond>defined(LIBXML_SCHEMAS_ENABLED)</cond>
<info>Create an XML Schemas parse context for that file/resource expected to contain an XML Schemas file.</info>
<return type='xmlSchemaParserCtxtPtr' info='the parser context or NULL in case of error'/>
<arg name='URL' type='const char *' info='the location of the schema'/>
</function>
- <function name='xmlSchemaNewStringValue' file='xmlschemastypes'>
+ <function name='xmlSchemaNewStringValue' file='xmlschemastypes' module='xmlschemastypes'>
<cond>defined(LIBXML_SCHEMAS_ENABLED)</cond>
<info>Allocate a new simple type value. The type can be of XML_SCHEMAS_STRING. WARNING: This one is intended to be expanded for other string based types. We need this for anySimpleType as well.</info>
<return type='xmlSchemaValPtr' info='a pointer to the new value or NULL in case of error'/>
<arg name='type' type='xmlSchemaValType' info='the value type'/>
<arg name='value' type='const xmlChar *' info='the value'/>
</function>
- <function name='xmlSchemaNewValidCtxt' file='xmlschemas'>
+ <function name='xmlSchemaNewValidCtxt' file='xmlschemas' module='xmlschemas'>
<cond>defined(LIBXML_SCHEMAS_ENABLED)</cond>
<info>Create an XML Schemas validation context based on the given schema.</info>
<return type='xmlSchemaValidCtxtPtr' info='the validation context or NULL in case of error'/>
<arg name='schema' type='xmlSchemaPtr' info='a precompiled XML Schemas'/>
</function>
- <function name='xmlSchemaParse' file='xmlschemas'>
+ <function name='xmlSchemaParse' file='xmlschemas' module='xmlschemas'>
<cond>defined(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'>
+ <function name='xmlSchemaSetParserErrors' file='xmlschemas' module='xmlschemas'>
<cond>defined(LIBXML_SCHEMAS_ENABLED)</cond>
<info>Set the callback functions used to handle errors for a validation context</info>
<return type='void'/>
@@ -12845,7 +12871,7 @@ actually an xmlCharEncoding'/>
<arg name='warn' type='xmlSchemaValidityWarningFunc' info='the warning callback'/>
<arg name='ctx' type='void *' info='contextual data for the callbacks'/>
</function>
- <function name='xmlSchemaSetValidErrors' file='xmlschemas'>
+ <function name='xmlSchemaSetValidErrors' file='xmlschemas' module='xmlschemas'>
<cond>defined(LIBXML_SCHEMAS_ENABLED)</cond>
<info>Set the error and warning callback informations</info>
<return type='void'/>
@@ -12854,14 +12880,14 @@ actually an xmlCharEncoding'/>
<arg name='warn' type='xmlSchemaValidityWarningFunc' info='the warning function'/>
<arg name='ctx' type='void *' info='the functions context'/>
</function>
- <function name='xmlSchemaSetValidOptions' file='xmlschemas'>
+ <function name='xmlSchemaSetValidOptions' file='xmlschemas' module='xmlschemas'>
<cond>defined(LIBXML_SCHEMAS_ENABLED)</cond>
<info>Sets the options to be used during the validation.</info>
<return type='int' info='0 in case of success, -1 in case of an API error.'/>
<arg name='ctxt' type='xmlSchemaValidCtxtPtr' info='a schema validation context'/>
<arg name='options' type='int' info='a combination of xmlSchemaValidOption'/>
</function>
- <function name='xmlSchemaValPredefTypeNode' file='xmlschemastypes'>
+ <function name='xmlSchemaValPredefTypeNode' file='xmlschemastypes' module='xmlschemastypes'>
<cond>defined(LIBXML_SCHEMAS_ENABLED)</cond>
<info>Check that a value conforms to the lexical space of the predefined type. if true a value is computed and returned in @val.</info>
<return type='int' info='0 if this validates, a positive error code number otherwise and -1 in case of internal or API error.'/>
@@ -12870,7 +12896,7 @@ actually an xmlCharEncoding'/>
<arg name='val' type='xmlSchemaValPtr *' info='the return computed value'/>
<arg name='node' type='xmlNodePtr' info='the node containing the value'/>
</function>
- <function name='xmlSchemaValPredefTypeNodeNoNorm' file='xmlschemastypes'>
+ <function name='xmlSchemaValPredefTypeNodeNoNorm' file='xmlschemastypes' module='xmlschemastypes'>
<cond>defined(LIBXML_SCHEMAS_ENABLED)</cond>
<info>Check that a value conforms to the lexical space of the predefined type. if true a value is computed and returned in @val. This one does apply any normalization to the value.</info>
<return type='int' info='0 if this validates, a positive error code number otherwise and -1 in case of internal or API error.'/>
@@ -12879,20 +12905,20 @@ actually an xmlCharEncoding'/>
<arg name='val' type='xmlSchemaValPtr *' info='the return computed value'/>
<arg name='node' type='xmlNodePtr' info='the node containing the value'/>
</function>
- <function name='xmlSchemaValidCtxtGetOptions' file='xmlschemas'>
+ <function name='xmlSchemaValidCtxtGetOptions' file='xmlschemas' module='xmlschemas'>
<cond>defined(LIBXML_SCHEMAS_ENABLED)</cond>
<info>Get the validation context options.</info>
<return type='int' info='the option combination or -1 on error.'/>
<arg name='ctxt' type='xmlSchemaValidCtxtPtr' info='a schema validation context'/>
</function>
- <function name='xmlSchemaValidateDoc' file='xmlschemas'>
+ <function name='xmlSchemaValidateDoc' file='xmlschemas' module='xmlschemas'>
<cond>defined(LIBXML_SCHEMAS_ENABLED)</cond>
<info>Validate a document tree in memory.</info>
<return type='int' info='0 if the document is schemas valid, a positive error code number otherwise and -1 in case of internal or API error.'/>
<arg name='ctxt' type='xmlSchemaValidCtxtPtr' info='a schema validation context'/>
<arg name='doc' type='xmlDocPtr' info='a parsed document tree'/>
</function>
- <function name='xmlSchemaValidateFacet' file='xmlschemastypes'>
+ <function name='xmlSchemaValidateFacet' file='xmlschemastypes' module='xmlschemastypes'>
<cond>defined(LIBXML_SCHEMAS_ENABLED)</cond>
<info>Check a value against a facet condition</info>
<return type='int' info='0 if the element is schemas valid, a positive error code number otherwise and -1 in case of internal or API error.'/>
@@ -12901,7 +12927,18 @@ 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='xmlSchemaValidateLengthFacet' file='xmlschemastypes'>
+ <function name='xmlSchemaValidateFacetWhtsp' file='xmlschemastypes' module='xmlschemastypes'>
+ <cond>defined(LIBXML_SCHEMAS_ENABLED)</cond>
+ <info>Check a value against a facet condition. This takes value normalization according to the specified whitespace types into account. Note that @value needs to be the *normalized* value if the facet is of type &quot;pattern&quot;.</info>
+ <return type='int' info='0 if the element is schemas valid, a positive error code number otherwise and -1 in case of internal or API error.'/>
+ <arg name='facet' type='xmlSchemaFacetPtr' info='the facet to check'/>
+ <arg name='fws' type='xmlSchemaWhitespaceValueType' info='the whitespace type of the facet&apos;s value'/>
+ <arg name='valType' type='xmlSchemaValType' info='the built-in type of the value'/>
+ <arg name='value' type='const xmlChar *' info='the lexical (or normalized for pattern) repr of the value to validate'/>
+ <arg name='val' type='xmlSchemaValPtr' info='the precomputed value'/>
+ <arg name='ws' type='xmlSchemaWhitespaceValueType' info='the whitespace type of the value'/>
+ </function>
+ <function name='xmlSchemaValidateLengthFacet' file='xmlschemastypes' module='xmlschemastypes'>
<cond>defined(LIBXML_SCHEMAS_ENABLED)</cond>
<info>Checka a value against a &quot;length&quot;, &quot;minLength&quot; and &quot;maxLength&quot; facet; sets @length to the computed length of @value.</info>
<return type='int' info='0 if the value is valid, a positive error code otherwise and -1 in case of an internal or API error.'/>
@@ -12911,7 +12948,18 @@ actually an xmlCharEncoding'/>
<arg name='val' type='xmlSchemaValPtr' info='the precomputed value'/>
<arg name='length' type='unsigned long *' info='the actual length of the value'/>
</function>
- <function name='xmlSchemaValidateListSimpleTypeFacet' file='xmlschemastypes'>
+ <function name='xmlSchemaValidateLengthFacetWhtsp' file='xmlschemastypes' module='xmlschemastypes'>
+ <cond>defined(LIBXML_SCHEMAS_ENABLED)</cond>
+ <info>Checka a value against a &quot;length&quot;, &quot;minLength&quot; and &quot;maxLength&quot; facet; sets @length to the computed length of @value.</info>
+ <return type='int' info='0 if the value is valid, a positive error code otherwise and -1 in case of an internal or API error.'/>
+ <arg name='facet' type='xmlSchemaFacetPtr' info='the facet to check'/>
+ <arg name='valType' type='xmlSchemaValType' info='the built-in type'/>
+ <arg name='value' type='const xmlChar *' info='the lexical repr. of the value to be validated'/>
+ <arg name='val' type='xmlSchemaValPtr' info='the precomputed value'/>
+ <arg name='length' type='unsigned long *' info='the actual length of the value'/>
+ <arg name='ws' type='xmlSchemaWhitespaceValueType' info='the whitespace type of the value'/>
+ </function>
+ <function name='xmlSchemaValidateListSimpleTypeFacet' file='xmlschemastypes' module='xmlschemastypes'>
<cond>defined(LIBXML_SCHEMAS_ENABLED)</cond>
<info>Checks the value of a list simple type against a facet.</info>
<return type='int' info='0 if the value is valid, a positive error code number otherwise and -1 in case of an internal error.'/>
@@ -12920,14 +12968,14 @@ actually an xmlCharEncoding'/>
<arg name='actualLen' type='unsigned long' info='the number of list items'/>
<arg name='expectedLen' type='unsigned long *' info='the resulting expected number of list items'/>
</function>
- <function name='xmlSchemaValidateOneElement' file='xmlschemas'>
+ <function name='xmlSchemaValidateOneElement' file='xmlschemas' module='xmlschemas'>
<cond>defined(LIBXML_SCHEMAS_ENABLED)</cond>
<info>Validate a branch of a tree, starting with the given @elem.</info>
<return type='int' info='0 if the element and its subtree is valid, a positive error code number otherwise and -1 in case of an internal or API error.'/>
<arg name='ctxt' type='xmlSchemaValidCtxtPtr' info='a schema validation context'/>
<arg name='elem' type='xmlNodePtr' info='an element node'/>
</function>
- <function name='xmlSchemaValidatePredefinedType' file='xmlschemastypes'>
+ <function name='xmlSchemaValidatePredefinedType' file='xmlschemastypes' module='xmlschemastypes'>
<cond>defined(LIBXML_SCHEMAS_ENABLED)</cond>
<info>Check that a value conforms to the lexical space of the predefined type. if true a value is computed and returned in @val.</info>
<return type='int' info='0 if this validates, a positive error code number otherwise and -1 in case of internal or API error.'/>
@@ -12935,7 +12983,7 @@ actually an xmlCharEncoding'/>
<arg name='value' type='const xmlChar *' info='the value to check'/>
<arg name='val' type='xmlSchemaValPtr *' info='the return computed value'/>
</function>
- <function name='xmlSchemaValidateStream' file='xmlschemas'>
+ <function name='xmlSchemaValidateStream' file='xmlschemas' module='xmlschemas'>
<cond>defined(LIBXML_SCHEMAS_ENABLED)</cond>
<info>Validate a document tree in memory.</info>
<return type='int' info='0 if the document is schemas valid, a positive error code number otherwise and -1 in case of internal or API error.'/>
@@ -12945,7 +12993,7 @@ actually an xmlCharEncoding'/>
<arg name='sax' type='xmlSAXHandlerPtr' info='a SAX handler for the resulting events'/>
<arg name='user_data' type='void *' info='the context to provide to the SAX handler.'/>
</function>
- <functype name='xmlSchemaValidityErrorFunc' file='xmlschemas'>
+ <functype name='xmlSchemaValidityErrorFunc' file='xmlschemas' module='xmlschemas'>
<cond>defined(LIBXML_SCHEMAS_ENABLED)</cond>
<info></info>
<return type='void'/>
@@ -12953,7 +13001,7 @@ actually an xmlCharEncoding'/>
<arg name='msg' type='const char *' info=''/>
<arg name='...' type='...' info=''/>
</functype>
- <functype name='xmlSchemaValidityWarningFunc' file='xmlschemas'>
+ <functype name='xmlSchemaValidityWarningFunc' file='xmlschemas' module='xmlschemas'>
<cond>defined(LIBXML_SCHEMAS_ENABLED)</cond>
<info></info>
<return type='void'/>
@@ -12961,54 +13009,54 @@ actually an xmlCharEncoding'/>
<arg name='msg' type='const char *' info=''/>
<arg name='...' type='...' info=''/>
</functype>
- <function name='xmlSchemaWhiteSpaceReplace' file='xmlschemastypes'>
+ <function name='xmlSchemaWhiteSpaceReplace' file='xmlschemastypes' module='xmlschemastypes'>
<cond>defined(LIBXML_SCHEMAS_ENABLED)</cond>
<info>Replaces 0xd, 0x9 and 0xa with a space.</info>
<return type='xmlChar *' info='the new string or NULL if no change was required.'/>
<arg name='value' type='const xmlChar *' info='a value'/>
</function>
- <function name='xmlSearchNs' file='tree'>
+ <function name='xmlSearchNs' file='tree' module='tree'>
<info>Search a Ns registered under a given name space for a document. recurse on the parents until it finds the defined namespace or return NULL otherwise. @nameSpace can be NULL, this is a search for the default namespace. We don&apos;t allow to cross entities boundaries. If you don&apos;t declare the namespace within those you will be in troubles !!! A warning is generated to cover this case.</info>
<return type='xmlNsPtr' info='the namespace pointer or NULL.'/>
<arg name='doc' type='xmlDocPtr' info='the document'/>
<arg name='node' type='xmlNodePtr' info='the current node'/>
<arg name='nameSpace' type='const xmlChar *' info='the namespace prefix'/>
</function>
- <function name='xmlSearchNsByHref' file='tree'>
+ <function name='xmlSearchNsByHref' file='tree' module='tree'>
<info>Search a Ns aliasing a given URI. Recurse on the parents until it finds the defined namespace or return NULL otherwise.</info>
<return type='xmlNsPtr' info='the namespace pointer or NULL.'/>
<arg name='doc' type='xmlDocPtr' info='the document'/>
<arg name='node' type='xmlNodePtr' info='the current node'/>
<arg name='href' type='const xmlChar *' info='the namespace value'/>
</function>
- <function name='xmlSetBufferAllocationScheme' file='tree'>
+ <function name='xmlSetBufferAllocationScheme' file='tree' module='tree'>
<info>Set the buffer allocation method. Types are XML_BUFFER_ALLOC_EXACT - use exact sizes, keeps memory usage down XML_BUFFER_ALLOC_DOUBLEIT - double buffer when extra needed, improves performance</info>
<return type='void'/>
<arg name='scheme' type='xmlBufferAllocationScheme' info='allocation method to use'/>
</function>
- <function name='xmlSetCompressMode' file='tree'>
+ <function name='xmlSetCompressMode' file='tree' module='tree'>
<info>set the default compression mode used, ZLIB based Correct values: 0 (uncompressed) to 9 (max compression)</info>
<return type='void'/>
<arg name='mode' type='int' info='the compression ratio'/>
</function>
- <function name='xmlSetDocCompressMode' file='tree'>
+ <function name='xmlSetDocCompressMode' file='tree' module='tree'>
<info>set the compression ratio for a document, ZLIB based Correct values: 0 (uncompressed) to 9 (max compression)</info>
<return type='void'/>
<arg name='doc' type='xmlDocPtr' info='the document'/>
<arg name='mode' type='int' info='the compression ratio'/>
</function>
- <function name='xmlSetEntityReferenceFunc' file='parserInternals'>
+ <function name='xmlSetEntityReferenceFunc' file='parserInternals' module='parser'>
<cond>defined(LIBXML_LEGACY_ENABLED)</cond>
<info>Set the function to call call back when a xml reference has been made</info>
<return type='void'/>
<arg name='func' type='xmlEntityReferenceFunc' info='A valid function'/>
</function>
- <function name='xmlSetExternalEntityLoader' file='parser'>
+ <function name='xmlSetExternalEntityLoader' file='parser' module='xmlIO'>
<info>Changes the defaultexternal entity resolver function for the application</info>
<return type='void'/>
<arg name='f' type='xmlExternalEntityLoader' info='the new entity resolver function'/>
</function>
- <function name='xmlSetFeature' file='parser'>
+ <function name='xmlSetFeature' file='parser' module='legacy'>
<cond>defined(LIBXML_LEGACY_ENABLED)</cond>
<info>Change the current value of one feature of this parser instance</info>
<return type='int' info='-1 in case or error, 0 otherwise'/>
@@ -13016,25 +13064,25 @@ actually an xmlCharEncoding'/>
<arg name='name' type='const char *' info='the feature name'/>
<arg name='value' type='void *' info='pointer to the location of the new value'/>
</function>
- <function name='xmlSetGenericErrorFunc' file='xmlerror'>
+ <function name='xmlSetGenericErrorFunc' file='xmlerror' module='error'>
<info>Function to reset the handler and the error context for out of context error messages. This simply means that @handler will be called for subsequent error messages while not parsing nor validating. And @ctx will be passed as first argument to @handler One can simply force messages to be emitted to another FILE * than stderr by setting @ctx to this file handle and @handler to NULL. For multi-threaded applications, this must be set separately for each thread.</info>
<return type='void'/>
<arg name='ctx' type='void *' info='the new error handling context'/>
<arg name='handler' type='xmlGenericErrorFunc' info='the new handler function'/>
</function>
- <function name='xmlSetListDoc' file='tree'>
+ <function name='xmlSetListDoc' file='tree' module='tree'>
<info>update all nodes in the list to point to the right document</info>
<return type='void'/>
<arg name='list' type='xmlNodePtr' info='the first element'/>
<arg name='doc' type='xmlDocPtr' info='the document'/>
</function>
- <function name='xmlSetNs' file='tree'>
+ <function name='xmlSetNs' file='tree' module='tree'>
<info>Associate a namespace to a node, a posteriori.</info>
<return type='void'/>
<arg name='node' type='xmlNodePtr' info='a node in the document'/>
<arg name='ns' type='xmlNsPtr' info='a namespace pointer'/>
</function>
- <function name='xmlSetNsProp' file='tree'>
+ <function name='xmlSetNsProp' file='tree' module='tree'>
<cond>defined(LIBXML_TREE_ENABLED) || defined(LIBXML_XINCLUDE_ENABLED) || defined(LIBXML_SCHEMAS_ENABLED) || defined(LIBXML_HTML_ENABLED)</cond>
<info>Set (or reset) an attribute carried by a node. The ns structure must be in scope, this is not checked.</info>
<return type='xmlAttrPtr' info='the attribute pointer.'/>
@@ -13043,7 +13091,7 @@ actually an xmlCharEncoding'/>
<arg name='name' type='const xmlChar *' info='the attribute name'/>
<arg name='value' type='const xmlChar *' info='the attribute value'/>
</function>
- <function name='xmlSetProp' file='tree'>
+ <function name='xmlSetProp' file='tree' module='tree'>
<cond>defined(LIBXML_TREE_ENABLED) || defined(LIBXML_XINCLUDE_ENABLED) || defined(LIBXML_SCHEMAS_ENABLED) || defined(LIBXML_HTML_ENABLED)</cond>
<info>Set (or reset) an attribute carried by a node.</info>
<return type='xmlAttrPtr' info='the attribute pointer.'/>
@@ -13051,19 +13099,19 @@ actually an xmlCharEncoding'/>
<arg name='name' type='const xmlChar *' info='the attribute name'/>
<arg name='value' type='const xmlChar *' info='the attribute value'/>
</function>
- <function name='xmlSetStructuredErrorFunc' file='xmlerror'>
+ <function name='xmlSetStructuredErrorFunc' file='xmlerror' module='error'>
<info>Function to reset the handler and the error context for out of context structured error messages. This simply means that @handler will be called for subsequent error messages while not parsing nor validating. And @ctx will be passed as first argument to @handler For multi-threaded applications, this must be set separately for each thread.</info>
<return type='void'/>
<arg name='ctx' type='void *' info='the new error handling context'/>
<arg name='handler' type='xmlStructuredErrorFunc' info='the new handler function'/>
</function>
- <function name='xmlSetTreeDoc' file='tree'>
+ <function name='xmlSetTreeDoc' file='tree' module='tree'>
<info>update all nodes under the tree to point to the right document</info>
<return type='void'/>
<arg name='tree' type='xmlNodePtr' info='the top element'/>
<arg name='doc' type='xmlDocPtr' info='the document'/>
</function>
- <function name='xmlSetupParserForBuffer' file='parser'>
+ <function name='xmlSetupParserForBuffer' file='parser' module='parser'>
<cond>defined(LIBXML_SAX1_ENABLED)</cond>
<info>Setup the parser context to parse a new buffer; Clears any prior contents from the parser context. The buffer parameter must not be NULL, but the filename parameter can be</info>
<return type='void'/>
@@ -13071,7 +13119,7 @@ actually an xmlCharEncoding'/>
<arg name='buffer' type='const xmlChar *' info='a xmlChar * buffer'/>
<arg name='filename' type='const char *' info='a file name'/>
</function>
- <function name='xmlShell' file='debugXML'>
+ <function name='xmlShell' file='debugXML' module='debugXML'>
<cond>defined(LIBXML_DEBUG_ENABLED) &amp;&amp; defined(LIBXML_XPATH_ENABLED)</cond>
<info>Implements the XML shell This allow to load, validate, view, modify and save a document using a environment similar to a UNIX commandline.</info>
<return type='void'/>
@@ -13080,7 +13128,7 @@ actually an xmlCharEncoding'/>
<arg name='input' type='xmlShellReadlineFunc' info='the line reading function'/>
<arg name='output' type='FILE *' info='the output FILE*, defaults to stdout if NULL'/>
</function>
- <function name='xmlShellBase' file='debugXML'>
+ <function name='xmlShellBase' file='debugXML' module='debugXML'>
<cond>defined(LIBXML_DEBUG_ENABLED) &amp;&amp; defined(LIBXML_XPATH_ENABLED)</cond>
<info>Implements the XML shell function &quot;base&quot; dumps the current XML base of the node</info>
<return type='int' info='0'/>
@@ -13089,7 +13137,7 @@ actually an xmlCharEncoding'/>
<arg name='node' type='xmlNodePtr' info='a node'/>
<arg name='node2' type='xmlNodePtr' info='unused'/>
</function>
- <function name='xmlShellCat' file='debugXML'>
+ <function name='xmlShellCat' file='debugXML' module='debugXML'>
<cond>defined(LIBXML_DEBUG_ENABLED) &amp;&amp; defined(LIBXML_XPATH_ENABLED) &amp;&amp; defined(LIBXML_OUTPUT_ENABLED)</cond>
<info>Implements the XML shell function &quot;cat&quot; dumps the serialization node content (XML or HTML).</info>
<return type='int' info='0'/>
@@ -13098,7 +13146,7 @@ actually an xmlCharEncoding'/>
<arg name='node' type='xmlNodePtr' info='a node'/>
<arg name='node2' type='xmlNodePtr' info='unused'/>
</function>
- <functype name='xmlShellCmd' file='debugXML'>
+ <functype name='xmlShellCmd' file='debugXML' module='debugXML'>
<cond>defined(LIBXML_DEBUG_ENABLED) &amp;&amp; defined(LIBXML_XPATH_ENABLED)</cond>
<info>This is a generic signature for the XML shell functions.</info>
<return type='int' info='an int, negative returns indicating errors.'/>
@@ -13107,7 +13155,7 @@ actually an xmlCharEncoding'/>
<arg name='node' type='xmlNodePtr' info='a first node'/>
<arg name='node2' type='xmlNodePtr' info='a second node'/>
</functype>
- <function name='xmlShellDir' file='debugXML'>
+ <function name='xmlShellDir' file='debugXML' module='debugXML'>
<cond>defined(LIBXML_DEBUG_ENABLED) &amp;&amp; defined(LIBXML_XPATH_ENABLED)</cond>
<info>Implements the XML shell function &quot;dir&quot; dumps informations about the node (namespace, attributes, content).</info>
<return type='int' info='0'/>
@@ -13116,7 +13164,7 @@ actually an xmlCharEncoding'/>
<arg name='node' type='xmlNodePtr' info='a node'/>
<arg name='node2' type='xmlNodePtr' info='unused'/>
</function>
- <function name='xmlShellDu' file='debugXML'>
+ <function name='xmlShellDu' file='debugXML' module='debugXML'>
<cond>defined(LIBXML_DEBUG_ENABLED) &amp;&amp; defined(LIBXML_XPATH_ENABLED)</cond>
<info>Implements the XML shell function &quot;du&quot; show the structure of the subtree under node @tree If @tree is null, the command works on the current node.</info>
<return type='int' info='0 or -1 in case of error'/>
@@ -13125,7 +13173,7 @@ actually an xmlCharEncoding'/>
<arg name='tree' type='xmlNodePtr' info='a node defining a subtree'/>
<arg name='node2' type='xmlNodePtr' info='unused'/>
</function>
- <function name='xmlShellList' file='debugXML'>
+ <function name='xmlShellList' file='debugXML' module='debugXML'>
<cond>defined(LIBXML_DEBUG_ENABLED) &amp;&amp; defined(LIBXML_XPATH_ENABLED)</cond>
<info>Implements the XML shell function &quot;ls&quot; Does an Unix like listing of the given node (like a directory)</info>
<return type='int' info='0'/>
@@ -13134,7 +13182,7 @@ actually an xmlCharEncoding'/>
<arg name='node' type='xmlNodePtr' info='a node'/>
<arg name='node2' type='xmlNodePtr' info='unused'/>
</function>
- <function name='xmlShellLoad' file='debugXML'>
+ <function name='xmlShellLoad' file='debugXML' module='debugXML'>
<cond>defined(LIBXML_DEBUG_ENABLED) &amp;&amp; defined(LIBXML_XPATH_ENABLED)</cond>
<info>Implements the XML shell function &quot;load&quot; loads a new document specified by the filename</info>
<return type='int' info='0 or -1 if loading failed'/>
@@ -13143,26 +13191,26 @@ actually an xmlCharEncoding'/>
<arg name='node' type='xmlNodePtr' info='unused'/>
<arg name='node2' type='xmlNodePtr' info='unused'/>
</function>
- <function name='xmlShellPrintNode' file='debugXML'>
+ <function name='xmlShellPrintNode' file='debugXML' module='debugXML'>
<cond>defined(LIBXML_DEBUG_ENABLED) &amp;&amp; defined(LIBXML_XPATH_ENABLED) &amp;&amp; defined(LIBXML_OUTPUT_ENABLED)</cond>
<info>Print node to the output FILE</info>
<return type='void'/>
<arg name='node' type='xmlNodePtr' info='a non-null node to print to the output FILE'/>
</function>
- <function name='xmlShellPrintXPathError' file='debugXML'>
+ <function name='xmlShellPrintXPathError' file='debugXML' module='debugXML'>
<cond>defined(LIBXML_DEBUG_ENABLED) &amp;&amp; defined(LIBXML_XPATH_ENABLED)</cond>
<info>Print the xpath error to libxml default error channel</info>
<return type='void'/>
<arg name='errorType' type='int' info='valid xpath error id'/>
<arg name='arg' type='const char *' info='the argument that cause xpath to fail'/>
</function>
- <function name='xmlShellPrintXPathResult' file='debugXML'>
+ <function name='xmlShellPrintXPathResult' file='debugXML' module='debugXML'>
<cond>defined(LIBXML_DEBUG_ENABLED) &amp;&amp; defined(LIBXML_XPATH_ENABLED)</cond>
<info>Prints result to the output FILE</info>
<return type='void'/>
<arg name='list' type='xmlXPathObjectPtr' info='a valid result generated by an xpath evaluation'/>
</function>
- <function name='xmlShellPwd' file='debugXML'>
+ <function name='xmlShellPwd' file='debugXML' module='debugXML'>
<cond>defined(LIBXML_DEBUG_ENABLED) &amp;&amp; defined(LIBXML_XPATH_ENABLED)</cond>
<info>Implements the XML shell function &quot;pwd&quot; Show the full path from the root to the node, if needed building thumblers when similar elements exists at a given ancestor level. The output is compatible with XPath commands.</info>
<return type='int' info='0 or -1 in case of error'/>
@@ -13171,13 +13219,13 @@ actually an xmlCharEncoding'/>
<arg name='node' type='xmlNodePtr' info='a node'/>
<arg name='node2' type='xmlNodePtr' info='unused'/>
</function>
- <functype name='xmlShellReadlineFunc' file='debugXML'>
+ <functype name='xmlShellReadlineFunc' file='debugXML' module='debugXML'>
<cond>defined(LIBXML_DEBUG_ENABLED) &amp;&amp; defined(LIBXML_XPATH_ENABLED)</cond>
<info>This is a generic signature for the XML shell input function.</info>
<return type='char *' info='a string which will be freed by the Shell.'/>
<arg name='prompt' type='char *' info='a string prompt'/>
</functype>
- <function name='xmlShellSave' file='debugXML'>
+ <function name='xmlShellSave' file='debugXML' module='debugXML'>
<cond>defined(LIBXML_DEBUG_ENABLED) &amp;&amp; defined(LIBXML_XPATH_ENABLED) &amp;&amp; defined(LIBXML_OUTPUT_ENABLED)</cond>
<info>Implements the XML shell function &quot;save&quot; Write the current document to the filename, or it&apos;s original name</info>
<return type='int' info='0 or -1 in case of error'/>
@@ -13186,7 +13234,7 @@ actually an xmlCharEncoding'/>
<arg name='node' type='xmlNodePtr' info='unused'/>
<arg name='node2' type='xmlNodePtr' info='unused'/>
</function>
- <function name='xmlShellValidate' file='debugXML'>
+ <function name='xmlShellValidate' file='debugXML' module='debugXML'>
<cond>defined(LIBXML_DEBUG_ENABLED) &amp;&amp; defined(LIBXML_XPATH_ENABLED) &amp;&amp; defined(LIBXML_VALID_ENABLED)</cond>
<info>Implements the XML shell function &quot;validate&quot; Validate the document, if a DTD path is provided, then the validation is done against the given DTD.</info>
<return type='int' info='0 or -1 in case of error'/>
@@ -13195,7 +13243,7 @@ actually an xmlCharEncoding'/>
<arg name='node' type='xmlNodePtr' info='unused'/>
<arg name='node2' type='xmlNodePtr' info='unused'/>
</function>
- <function name='xmlShellWrite' file='debugXML'>
+ <function name='xmlShellWrite' file='debugXML' module='debugXML'>
<cond>defined(LIBXML_DEBUG_ENABLED) &amp;&amp; defined(LIBXML_XPATH_ENABLED) &amp;&amp; defined(LIBXML_OUTPUT_ENABLED)</cond>
<info>Implements the XML shell function &quot;write&quot; Write the current node to the filename, it saves the serialization of the subtree under the @node specified</info>
<return type='int' info='0 or -1 in case of error'/>
@@ -13204,12 +13252,12 @@ actually an xmlCharEncoding'/>
<arg name='node' type='xmlNodePtr' info='a node in the tree'/>
<arg name='node2' type='xmlNodePtr' info='unused'/>
</function>
- <function name='xmlSkipBlankChars' file='parserInternals'>
+ <function name='xmlSkipBlankChars' file='parserInternals' module='parser'>
<info>skip all blanks character found at that point in the input streams. It pops up finished entities in the process if allowable at that point.</info>
<return type='int' info='the number of space chars skipped'/>
<arg name='ctxt' type='xmlParserCtxtPtr' info='the XML parser context'/>
</function>
- <function name='xmlSnprintfElementContent' file='valid'>
+ <function name='xmlSnprintfElementContent' file='valid' module='valid'>
<info>This will dump the content of the element content definition Intended just for the debug routine</info>
<return type='void'/>
<arg name='buf' type='char *' info='an output buffer'/>
@@ -13217,26 +13265,26 @@ actually an xmlCharEncoding'/>
<arg name='content' type='xmlElementContentPtr' info='An element table'/>
<arg name='glob' type='int' info='1 if one must print the englobing parenthesis, 0 otherwise'/>
</function>
- <function name='xmlSplitQName' file='parserInternals'>
+ <function name='xmlSplitQName' file='parserInternals' module='parser'>
<info>parse an UTF8 encoded XML qualified name string [NS 5] QName ::= (Prefix &apos;:&apos;)? LocalPart [NS 6] Prefix ::= NCName [NS 7] LocalPart ::= NCName</info>
<return type='xmlChar *' info='the local part, and prefix is updated to get the Prefix if any.'/>
<arg name='ctxt' type='xmlParserCtxtPtr' info='an XML parser context'/>
<arg name='name' type='const xmlChar *' info='an XML parser context'/>
<arg name='prefix' type='xmlChar **' info='a xmlChar **'/>
</function>
- <function name='xmlSplitQName2' file='tree'>
+ <function name='xmlSplitQName2' file='tree' module='tree'>
<info>parse an XML qualified name string [NS 5] QName ::= (Prefix &apos;:&apos;)? LocalPart [NS 6] Prefix ::= NCName [NS 7] LocalPart ::= NCName</info>
<return type='xmlChar *' info='NULL if not a QName, otherwise the local part, and prefix is updated to get the Prefix if any.'/>
<arg name='name' type='const xmlChar *' info='the full QName'/>
<arg name='prefix' type='xmlChar **' info='a xmlChar **'/>
</function>
- <function name='xmlSplitQName3' file='tree'>
+ <function name='xmlSplitQName3' file='tree' module='tree'>
<info>parse an XML qualified name string,i</info>
<return type='const xmlChar *' info='NULL if it is not a Qualified Name, otherwise, update len with the lenght in byte of the prefix and return a pointer'/>
<arg name='name' type='const xmlChar *' info='the full QName'/>
<arg name='len' type='int *' info='an int *'/>
</function>
- <function name='xmlSprintfElementContent' file='valid'>
+ <function name='xmlSprintfElementContent' file='valid' module='valid'>
<cond>defined(LIBXML_OUTPUT_ENABLED)</cond>
<info>Deprecated, unsafe, use xmlSnprintfElementContent</info>
<return type='void'/>
@@ -13244,19 +13292,19 @@ actually an xmlCharEncoding'/>
<arg name='content' type='xmlElementContentPtr' info='An element table'/>
<arg name='glob' type='int' info='1 if one must print the englobing parenthesis, 0 otherwise'/>
</function>
- <function name='xmlStopParser' file='parser'>
+ <function name='xmlStopParser' file='parser' module='parser'>
<cond>defined(LIBXML_PUSH_ENABLED)</cond>
<info>Blocks further parser processing</info>
<return type='void'/>
<arg name='ctxt' type='xmlParserCtxtPtr' info='an XML parser context'/>
</function>
- <function name='xmlStrEqual' file='xmlstring'>
+ <function name='xmlStrEqual' file='xmlstring' module='xmlstring'>
<info>Check if both string are equal of have same content Should be a bit more readable and faster than xmlStrEqual()</info>
<return type='int' info='1 if they are equal, 0 if they are different'/>
<arg name='str1' type='const xmlChar *' info='the first xmlChar *'/>
<arg name='str2' type='const xmlChar *' info='the second xmlChar *'/>
</function>
- <function name='xmlStrPrintf' file='xmlstring'>
+ <function name='xmlStrPrintf' file='xmlstring' module='xmlstring'>
<info>Formats @msg and places result into @buf.</info>
<return type='int' info='the number of characters written to @buf or -1 if an error occurs.'/>
<arg name='buf' type='xmlChar *' info='the result buffer.'/>
@@ -13264,14 +13312,14 @@ actually an xmlCharEncoding'/>
<arg name='msg' type='const xmlChar *' info='the message with printf formatting.'/>
<arg name='...' type='...' info='extra parameters for the message.'/>
</function>
- <function name='xmlStrQEqual' file='xmlstring'>
+ <function name='xmlStrQEqual' file='xmlstring' module='xmlstring'>
<info>Check if a QName is Equal to a given string</info>
<return type='int' info='1 if they are equal, 0 if they are different'/>
<arg name='pref' type='const xmlChar *' info='the prefix of the QName'/>
<arg name='name' type='const xmlChar *' info='the localname of the QName'/>
<arg name='str' type='const xmlChar *' info='the second xmlChar *'/>
</function>
- <function name='xmlStrVPrintf' file='xmlstring'>
+ <function name='xmlStrVPrintf' file='xmlstring' module='xmlstring'>
<info>Formats @msg and places result into @buf.</info>
<return type='int' info='the number of characters written to @buf or -1 if an error occurs.'/>
<arg name='buf' type='xmlChar *' info='the result buffer.'/>
@@ -13279,53 +13327,53 @@ actually an xmlCharEncoding'/>
<arg name='msg' type='const xmlChar *' info='the message with printf formatting.'/>
<arg name='ap' type='va_list' info='extra parameters for the message.'/>
</function>
- <function name='xmlStrcasecmp' file='xmlstring'>
+ <function name='xmlStrcasecmp' file='xmlstring' module='xmlstring'>
<info>a strcasecmp for xmlChar&apos;s</info>
<return type='int' info='the integer result of the comparison'/>
<arg name='str1' type='const xmlChar *' info='the first xmlChar *'/>
<arg name='str2' type='const xmlChar *' info='the second xmlChar *'/>
</function>
- <function name='xmlStrcasestr' file='xmlstring'>
+ <function name='xmlStrcasestr' file='xmlstring' module='xmlstring'>
<info>a case-ignoring strstr for xmlChar&apos;s</info>
<return type='const xmlChar *' info='the xmlChar * for the first occurrence or NULL.'/>
<arg name='str' type='const xmlChar *' info='the xmlChar * array (haystack)'/>
<arg name='val' type='xmlChar *' info='the xmlChar to search (needle)'/>
</function>
- <function name='xmlStrcat' file='xmlstring'>
+ <function name='xmlStrcat' file='xmlstring' module='xmlstring'>
<info>a strcat for array of xmlChar&apos;s. Since they are supposed to be encoded in UTF-8 or an encoding with 8bit based chars, we assume a termination mark of &apos;0&apos;.</info>
<return type='xmlChar *' info='a new xmlChar * containing the concatenated string.'/>
<arg name='cur' type='xmlChar *' info='the original xmlChar * array'/>
<arg name='add' type='const xmlChar *' info='the xmlChar * array added'/>
</function>
- <function name='xmlStrchr' file='xmlstring'>
+ <function name='xmlStrchr' file='xmlstring' module='xmlstring'>
<info>a strchr for xmlChar&apos;s</info>
<return type='const xmlChar *' info='the xmlChar * for the first occurrence or NULL.'/>
<arg name='str' type='const xmlChar *' info='the xmlChar * array'/>
<arg name='val' type='xmlChar' info='the xmlChar to search'/>
</function>
- <function name='xmlStrcmp' file='xmlstring'>
+ <function name='xmlStrcmp' file='xmlstring' module='xmlstring'>
<info>a strcmp for xmlChar&apos;s</info>
<return type='int' info='the integer result of the comparison'/>
<arg name='str1' type='const xmlChar *' info='the first xmlChar *'/>
<arg name='str2' type='const xmlChar *' info='the second xmlChar *'/>
</function>
- <function name='xmlStrdup' file='xmlstring'>
+ <function name='xmlStrdup' file='xmlstring' module='xmlstring'>
<info>a strdup for array of xmlChar&apos;s. Since they are supposed to be encoded in UTF-8 or an encoding with 8bit based chars, we assume a termination mark of &apos;0&apos;.</info>
<return type='xmlChar *' info='a new xmlChar * or NULL'/>
<arg name='cur' type='const xmlChar *' info='the input xmlChar *'/>
</function>
- <functype name='xmlStrdupFunc' file='xmlmemory'>
+ <functype name='xmlStrdupFunc' file='xmlmemory' module='xmlmemory'>
<info>Signature for an strdup() implementation.</info>
<return type='char *' info='the copy of the string or NULL in case of error.'/>
<arg name='str' type='const char *' info='a zero terminated string'/>
</functype>
- <function name='xmlStreamPop' file='pattern'>
+ <function name='xmlStreamPop' file='pattern' module='pattern'>
<cond>defined(LIBXML_PATTERN_ENABLED)</cond>
<info>push one level from the stream.</info>
<return type='int' info='-1 in case of error, 0 otherwise.'/>
<arg name='stream' type='xmlStreamCtxtPtr' info='the stream context'/>
</function>
- <function name='xmlStreamPush' file='pattern'>
+ <function name='xmlStreamPush' file='pattern' module='pattern'>
<cond>defined(LIBXML_PATTERN_ENABLED)</cond>
<info>push new data onto the stream. NOTE: if the call xmlPatterncompile() indicated a dictionnary, then strings for name and ns will be expected to come from the dictionary. Both @name and @ns being NULL means the / i.e. the root of the document. This can also act as a reset.</info>
<return type='int' info='-1 in case of error, 1 if the current state in the stream is a match and 0 otherwise.'/>
@@ -13333,7 +13381,7 @@ actually an xmlCharEncoding'/>
<arg name='name' type='const xmlChar *' info='the current name'/>
<arg name='ns' type='const xmlChar *' info='the namespace name'/>
</function>
- <function name='xmlStreamPushAttr' file='pattern'>
+ <function name='xmlStreamPushAttr' file='pattern' module='pattern'>
<cond>defined(LIBXML_PATTERN_ENABLED)</cond>
<info>push new attribute data onto the stream. NOTE: if the call xmlPatterncompile() indicated a dictionnary, then strings for name and ns will be expected to come from the dictionary. Both @name and @ns being NULL means the / i.e. the root of the document. This can also act as a reset.</info>
<return type='int' info='-1 in case of error, 1 if the current state in the stream is a match and 0 otherwise.'/>
@@ -13341,14 +13389,14 @@ actually an xmlCharEncoding'/>
<arg name='name' type='const xmlChar *' info='the current name'/>
<arg name='ns' type='const xmlChar *' info='the namespace name'/>
</function>
- <function name='xmlStringCurrentChar' file='parserInternals'>
+ <function name='xmlStringCurrentChar' file='parserInternals' module='parserInternals'>
<info>The current char value, if using UTF-8 this may actually span multiple bytes in the input buffer.</info>
<return type='int' info='the current char value and its length'/>
<arg name='ctxt' type='xmlParserCtxtPtr' info='the XML parser context'/>
<arg name='cur' type='const xmlChar *' info='pointer to the beginning of the char'/>
<arg name='len' type='int *' info='pointer to the length of the char read'/>
</function>
- <function name='xmlStringDecodeEntities' file='parserInternals'>
+ <function name='xmlStringDecodeEntities' file='parserInternals' module='parser'>
<info>Takes a entity string content and process to do the adequate substitutions. [67] Reference ::= EntityRef | CharRef [69] PEReference ::= &apos;%&apos; Name &apos;;&apos;</info>
<return type='xmlChar *' info='A newly allocated string with the substitution done. The caller must deallocate it !'/>
<arg name='ctxt' type='xmlParserCtxtPtr' info='the parser context'/>
@@ -13358,13 +13406,13 @@ actually an xmlCharEncoding'/>
<arg name='end2' type='xmlChar' info='an end marker xmlChar, 0 if none'/>
<arg name='end3' type='xmlChar' info='an end marker xmlChar, 0 if none'/>
</function>
- <function name='xmlStringGetNodeList' file='tree'>
+ <function name='xmlStringGetNodeList' file='tree' module='tree'>
<info>Parse the value string and build the node list associated. Should produce a flat tree with only TEXTs and ENTITY_REFs.</info>
<return type='xmlNodePtr' info='a pointer to the first child'/>
<arg name='doc' type='xmlDocPtr' info='the document'/>
<arg name='value' type='const xmlChar *' info='the value of the attribute'/>
</function>
- <function name='xmlStringLenDecodeEntities' file='parserInternals'>
+ <function name='xmlStringLenDecodeEntities' file='parserInternals' module='parser'>
<info>Takes a entity string content and process to do the adequate substitutions. [67] Reference ::= EntityRef | CharRef [69] PEReference ::= &apos;%&apos; Name &apos;;&apos;</info>
<return type='xmlChar *' info='A newly allocated string with the substitution done. The caller must deallocate it !'/>
<arg name='ctxt' type='xmlParserCtxtPtr' info='the parser context'/>
@@ -13375,212 +13423,212 @@ actually an xmlCharEncoding'/>
<arg name='end2' type='xmlChar' info='an end marker xmlChar, 0 if none'/>
<arg name='end3' type='xmlChar' info='an end marker xmlChar, 0 if none'/>
</function>
- <function name='xmlStringLenGetNodeList' file='tree'>
+ <function name='xmlStringLenGetNodeList' file='tree' module='tree'>
<info>Parse the value string and build the node list associated. Should produce a flat tree with only TEXTs and ENTITY_REFs.</info>
<return type='xmlNodePtr' info='a pointer to the first child'/>
<arg name='doc' type='xmlDocPtr' info='the document'/>
<arg name='value' type='const xmlChar *' info='the value of the text'/>
<arg name='len' type='int' info='the length of the string value'/>
</function>
- <function name='xmlStrlen' file='xmlstring'>
+ <function name='xmlStrlen' file='xmlstring' module='xmlstring'>
<info>length of a xmlChar&apos;s string</info>
<return type='int' info='the number of xmlChar contained in the ARRAY.'/>
<arg name='str' type='const xmlChar *' info='the xmlChar * array'/>
</function>
- <function name='xmlStrncasecmp' file='xmlstring'>
+ <function name='xmlStrncasecmp' file='xmlstring' module='xmlstring'>
<info>a strncasecmp for xmlChar&apos;s</info>
<return type='int' info='the integer result of the comparison'/>
<arg name='str1' type='const xmlChar *' info='the first xmlChar *'/>
<arg name='str2' type='const xmlChar *' info='the second xmlChar *'/>
<arg name='len' type='int' info='the max comparison length'/>
</function>
- <function name='xmlStrncat' file='xmlstring'>
+ <function name='xmlStrncat' file='xmlstring' module='xmlstring'>
<info>a strncat for array of xmlChar&apos;s, it will extend @cur with the len first bytes of @add.</info>
<return type='xmlChar *' info='a new xmlChar *, the original @cur is reallocated if needed and should not be freed'/>
<arg name='cur' type='xmlChar *' info='the original xmlChar * array'/>
<arg name='add' type='const xmlChar *' info='the xmlChar * array added'/>
<arg name='len' type='int' info='the length of @add'/>
</function>
- <function name='xmlStrncatNew' file='xmlstring'>
+ <function name='xmlStrncatNew' file='xmlstring' module='xmlstring'>
<info>same as xmlStrncat, but creates a new string. The original two strings are not freed.</info>
<return type='xmlChar *' info='a new xmlChar * or NULL'/>
<arg name='str1' type='const xmlChar *' info='first xmlChar string'/>
<arg name='str2' type='const xmlChar *' info='second xmlChar string'/>
<arg name='len' type='int' info='the len of @str2'/>
</function>
- <function name='xmlStrncmp' file='xmlstring'>
+ <function name='xmlStrncmp' file='xmlstring' module='xmlstring'>
<info>a strncmp for xmlChar&apos;s</info>
<return type='int' info='the integer result of the comparison'/>
<arg name='str1' type='const xmlChar *' info='the first xmlChar *'/>
<arg name='str2' type='const xmlChar *' info='the second xmlChar *'/>
<arg name='len' type='int' info='the max comparison length'/>
</function>
- <function name='xmlStrndup' file='xmlstring'>
+ <function name='xmlStrndup' file='xmlstring' module='xmlstring'>
<info>a strndup for array of xmlChar&apos;s</info>
<return type='xmlChar *' info='a new xmlChar * or NULL'/>
<arg name='cur' type='const xmlChar *' info='the input xmlChar *'/>
<arg name='len' type='int' info='the len of @cur'/>
</function>
- <function name='xmlStrstr' file='xmlstring'>
+ <function name='xmlStrstr' file='xmlstring' module='xmlstring'>
<info>a strstr for xmlChar&apos;s</info>
<return type='const xmlChar *' info='the xmlChar * for the first occurrence or NULL.'/>
<arg name='str' type='const xmlChar *' info='the xmlChar * array (haystack)'/>
<arg name='val' type='const xmlChar *' info='the xmlChar to search (needle)'/>
</function>
- <function name='xmlStrsub' file='xmlstring'>
+ <function name='xmlStrsub' file='xmlstring' module='xmlstring'>
<info>Extract a substring of a given string</info>
<return type='xmlChar *' info='the xmlChar * for the first occurrence or NULL.'/>
<arg name='str' type='const xmlChar *' info='the xmlChar * array (haystack)'/>
<arg name='start' type='int' info='the index of the first char (zero based)'/>
<arg name='len' type='int' info='the length of the substring'/>
</function>
- <functype name='xmlStructuredErrorFunc' file='xmlerror'>
+ <functype name='xmlStructuredErrorFunc' file='xmlerror' module='xmlerror'>
<info>Signature of the function to use when there is an error and the module handles the new error reporting mechanism.</info>
<return type='void'/>
<arg name='userData' type='void *' info='user provided data for the error callback'/>
<arg name='error' type='xmlErrorPtr' info='the error being raised.'/>
</functype>
- <function name='xmlSubstituteEntitiesDefault' file='parser'>
+ <function name='xmlSubstituteEntitiesDefault' file='parser' module='parserInternals'>
<info>Set and return the previous value for default entity support. Initially the parser always keep entity references instead of substituting entity values in the output. This function has to be used to change the default parser behavior SAX::substituteEntities() has to be used for changing that on a file by file basis.</info>
<return type='int' info='the last value for 0 for no substitution, 1 for substitution.'/>
<arg name='val' type='int' info='int 0 or 1'/>
</function>
- <function name='xmlSwitchEncoding' file='parserInternals'>
+ <function name='xmlSwitchEncoding' file='parserInternals' module='parserInternals'>
<info>change the input functions when discovering the character encoding of a given entity.</info>
<return type='int' info='0 in case of success, -1 otherwise'/>
<arg name='ctxt' type='xmlParserCtxtPtr' info='the parser context'/>
<arg name='enc' type='xmlCharEncoding' info='the encoding value (number)'/>
</function>
- <function name='xmlSwitchInputEncoding' file='parserInternals'>
+ <function name='xmlSwitchInputEncoding' file='parserInternals' module='parserInternals'>
<info>change the input functions when discovering the character encoding of a given entity.</info>
<return type='int' info='0 in case of success, -1 otherwise'/>
<arg name='ctxt' type='xmlParserCtxtPtr' info='the parser context'/>
<arg name='input' type='xmlParserInputPtr' info='the input stream'/>
<arg name='handler' type='xmlCharEncodingHandlerPtr' info='the encoding handler'/>
</function>
- <function name='xmlSwitchToEncoding' file='parserInternals'>
+ <function name='xmlSwitchToEncoding' file='parserInternals' module='parserInternals'>
<info>change the input functions when discovering the character encoding of a given entity.</info>
<return type='int' info='0 in case of success, -1 otherwise'/>
<arg name='ctxt' type='xmlParserCtxtPtr' info='the parser context'/>
<arg name='handler' type='xmlCharEncodingHandlerPtr' info='the encoding handler'/>
</function>
- <function name='xmlTextConcat' file='tree'>
+ <function name='xmlTextConcat' file='tree' module='tree'>
<info>Concat the given string at the end of the existing node content</info>
<return type='int' info='-1 in case of error, 0 otherwise'/>
<arg name='node' type='xmlNodePtr' info='the node'/>
<arg name='content' type='const xmlChar *' info='the content'/>
<arg name='len' type='int' info='@content length'/>
</function>
- <function name='xmlTextMerge' file='tree'>
+ <function name='xmlTextMerge' file='tree' module='tree'>
<info>Merge two text nodes into one</info>
<return type='xmlNodePtr' info='the first text node augmented'/>
<arg name='first' type='xmlNodePtr' info='the first text node'/>
<arg name='second' type='xmlNodePtr' info='the second text node being merged'/>
</function>
- <function name='xmlTextReaderAttributeCount' file='xmlreader'>
+ <function name='xmlTextReaderAttributeCount' file='xmlreader' module='xmlreader'>
<cond>defined(LIBXML_READER_ENABLED)</cond>
<info>Provides the number of attributes of the current node</info>
<return type='int' info='0 i no attributes, -1 in case of error or the attribute count'/>
<arg name='reader' type='xmlTextReaderPtr' info='the xmlTextReaderPtr used'/>
</function>
- <function name='xmlTextReaderBaseUri' file='xmlreader'>
+ <function name='xmlTextReaderBaseUri' file='xmlreader' module='xmlreader'>
<cond>defined(LIBXML_READER_ENABLED)</cond>
<info>The base URI of the node.</info>
<return type='xmlChar *' info='the base URI or NULL if not available'/>
<arg name='reader' type='xmlTextReaderPtr' info='the xmlTextReaderPtr used'/>
</function>
- <function name='xmlTextReaderByteConsumed' file='xmlreader'>
+ <function name='xmlTextReaderByteConsumed' file='xmlreader' module='xmlreader'>
<cond>defined(LIBXML_READER_ENABLED)</cond>
<info>This function provides the current index of the parser used by the reader, relative to the start of the current entity. This function actually just wraps a call to xmlBytesConsumed() for the parser context associated with the reader. See xmlBytesConsumed() for more information.</info>
<return type='long' info='the index in bytes from the beginning of the entity or -1 in case the index could not be computed.'/>
<arg name='reader' type='xmlTextReaderPtr' info='an XML reader'/>
</function>
- <function name='xmlTextReaderClose' file='xmlreader'>
+ <function name='xmlTextReaderClose' file='xmlreader' module='xmlreader'>
<cond>defined(LIBXML_READER_ENABLED)</cond>
<info>This method releases any resources allocated by the current instance changes the state to Closed and close any underlying input.</info>
<return type='int' info='0 or -1 in case of error'/>
<arg name='reader' type='xmlTextReaderPtr' info='the xmlTextReaderPtr used'/>
</function>
- <function name='xmlTextReaderConstBaseUri' file='xmlreader'>
+ <function name='xmlTextReaderConstBaseUri' file='xmlreader' module='xmlreader'>
<cond>defined(LIBXML_READER_ENABLED)</cond>
<info>The base URI of the node.</info>
<return type='const xmlChar *' info='the base URI or NULL if not available, the string will be deallocated with the reader'/>
<arg name='reader' type='xmlTextReaderPtr' info='the xmlTextReaderPtr used'/>
</function>
- <function name='xmlTextReaderConstEncoding' file='xmlreader'>
+ <function name='xmlTextReaderConstEncoding' file='xmlreader' module='xmlreader'>
<cond>defined(LIBXML_READER_ENABLED)</cond>
<info>Determine the encoding of the document being read.</info>
<return type='const xmlChar *' info='a string containing the encoding of the document or NULL in case of error. The string is deallocated with the reader.'/>
<arg name='reader' type='xmlTextReaderPtr' info='the xmlTextReaderPtr used'/>
</function>
- <function name='xmlTextReaderConstLocalName' file='xmlreader'>
+ <function name='xmlTextReaderConstLocalName' file='xmlreader' module='xmlreader'>
<cond>defined(LIBXML_READER_ENABLED)</cond>
<info>The local name of the node.</info>
<return type='const xmlChar *' info='the local name or NULL if not available, the string will be deallocated with the reader.'/>
<arg name='reader' type='xmlTextReaderPtr' info='the xmlTextReaderPtr used'/>
</function>
- <function name='xmlTextReaderConstName' file='xmlreader'>
+ <function name='xmlTextReaderConstName' file='xmlreader' module='xmlreader'>
<cond>defined(LIBXML_READER_ENABLED)</cond>
<info>The qualified name of the node, equal to Prefix :LocalName.</info>
<return type='const xmlChar *' info='the local name or NULL if not available, the string is deallocated with the reader.'/>
<arg name='reader' type='xmlTextReaderPtr' info='the xmlTextReaderPtr used'/>
</function>
- <function name='xmlTextReaderConstNamespaceUri' file='xmlreader'>
+ <function name='xmlTextReaderConstNamespaceUri' file='xmlreader' module='xmlreader'>
<cond>defined(LIBXML_READER_ENABLED)</cond>
<info>The URI defining the namespace associated with the node.</info>
<return type='const xmlChar *' info='the namespace URI or NULL if not available, the string will be deallocated with the reader'/>
<arg name='reader' type='xmlTextReaderPtr' info='the xmlTextReaderPtr used'/>
</function>
- <function name='xmlTextReaderConstPrefix' file='xmlreader'>
+ <function name='xmlTextReaderConstPrefix' file='xmlreader' module='xmlreader'>
<cond>defined(LIBXML_READER_ENABLED)</cond>
<info>A shorthand reference to the namespace associated with the node.</info>
<return type='const xmlChar *' info='the prefix or NULL if not available, the string is deallocated with the reader.'/>
<arg name='reader' type='xmlTextReaderPtr' info='the xmlTextReaderPtr used'/>
</function>
- <function name='xmlTextReaderConstString' file='xmlreader'>
+ <function name='xmlTextReaderConstString' file='xmlreader' module='xmlreader'>
<cond>defined(LIBXML_READER_ENABLED)</cond>
<info>Get an interned string from the reader, allows for example to speedup string name comparisons</info>
<return type='const xmlChar *' info='an interned copy of the string or NULL in case of error. The string will be deallocated with the reader.'/>
<arg name='reader' type='xmlTextReaderPtr' info='the xmlTextReaderPtr used'/>
<arg name='str' type='const xmlChar *' info='the string to intern.'/>
</function>
- <function name='xmlTextReaderConstValue' file='xmlreader'>
+ <function name='xmlTextReaderConstValue' file='xmlreader' module='xmlreader'>
<cond>defined(LIBXML_READER_ENABLED)</cond>
<info>Provides the text value of the node if present</info>
<return type='const xmlChar *' info='the string or NULL if not available. The result will be deallocated on the next Read() operation.'/>
<arg name='reader' type='xmlTextReaderPtr' info='the xmlTextReaderPtr used'/>
</function>
- <function name='xmlTextReaderConstXmlLang' file='xmlreader'>
+ <function name='xmlTextReaderConstXmlLang' file='xmlreader' module='xmlreader'>
<cond>defined(LIBXML_READER_ENABLED)</cond>
<info>The xml:lang scope within which the node resides.</info>
<return type='const xmlChar *' info='the xml:lang value or NULL if none exists.'/>
<arg name='reader' type='xmlTextReaderPtr' info='the xmlTextReaderPtr used'/>
</function>
- <function name='xmlTextReaderConstXmlVersion' file='xmlreader'>
+ <function name='xmlTextReaderConstXmlVersion' file='xmlreader' module='xmlreader'>
<cond>defined(LIBXML_READER_ENABLED)</cond>
<info>Determine the XML version of the document being read.</info>
<return type='const xmlChar *' info='a string containing the XML version of the document or NULL in case of error. The string is deallocated with the reader.'/>
<arg name='reader' type='xmlTextReaderPtr' info='the xmlTextReaderPtr used'/>
</function>
- <function name='xmlTextReaderCurrentDoc' file='xmlreader'>
+ <function name='xmlTextReaderCurrentDoc' file='xmlreader' module='xmlreader'>
<cond>defined(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'>
+ <function name='xmlTextReaderCurrentNode' file='xmlreader' module='xmlreader'>
<cond>defined(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'>
+ <function name='xmlTextReaderDepth' file='xmlreader' module='xmlreader'>
<cond>defined(LIBXML_READER_ENABLED)</cond>
<info>The depth of the node in the tree.</info>
<return type='int' info='the depth or -1 in case of error'/>
<arg name='reader' type='xmlTextReaderPtr' info='the xmlTextReaderPtr used'/>
</function>
- <functype name='xmlTextReaderErrorFunc' file='xmlreader'>
+ <functype name='xmlTextReaderErrorFunc' file='xmlreader' module='xmlreader'>
<cond>defined(LIBXML_READER_ENABLED)</cond>
<info></info>
<return type='void'/>
@@ -13589,27 +13637,27 @@ actually an xmlCharEncoding'/>
<arg name='severity' type='xmlParserSeverities' info=''/>
<arg name='locator' type='xmlTextReaderLocatorPtr' info=''/>
</functype>
- <function name='xmlTextReaderExpand' file='xmlreader'>
+ <function name='xmlTextReaderExpand' file='xmlreader' module='xmlreader'>
<cond>defined(LIBXML_READER_ENABLED)</cond>
<info>Reads the contents of the current node and the full subtree. It then makes the subtree available until the next xmlTextReaderRead() call</info>
<return type='xmlNodePtr' info='a node pointer valid until the next xmlTextReaderRead() call or NULL in case of error.'/>
<arg name='reader' type='xmlTextReaderPtr' info='the xmlTextReaderPtr used'/>
</function>
- <function name='xmlTextReaderGetAttribute' file='xmlreader'>
+ <function name='xmlTextReaderGetAttribute' file='xmlreader' module='xmlreader'>
<cond>defined(LIBXML_READER_ENABLED)</cond>
<info>Provides the value of the attribute with the specified qualified name.</info>
<return type='xmlChar *' info='a string containing the value of the specified attribute, or NULL in case of error. The string must be deallocated by the caller.'/>
<arg name='reader' type='xmlTextReaderPtr' info='the xmlTextReaderPtr used'/>
<arg name='name' type='const xmlChar *' info='the qualified name of the attribute.'/>
</function>
- <function name='xmlTextReaderGetAttributeNo' file='xmlreader'>
+ <function name='xmlTextReaderGetAttributeNo' file='xmlreader' module='xmlreader'>
<cond>defined(LIBXML_READER_ENABLED)</cond>
<info>Provides the value of the attribute with the specified index relative to the containing element.</info>
<return type='xmlChar *' info='a string containing the value of the specified attribute, or NULL in case of error. The string must be deallocated by the caller.'/>
<arg name='reader' type='xmlTextReaderPtr' info='the xmlTextReaderPtr used'/>
<arg name='no' type='int' info='the zero-based index of the attribute relative to the containing element'/>
</function>
- <function name='xmlTextReaderGetAttributeNs' file='xmlreader'>
+ <function name='xmlTextReaderGetAttributeNs' file='xmlreader' module='xmlreader'>
<cond>defined(LIBXML_READER_ENABLED)</cond>
<info>Provides the value of the specified attribute</info>
<return type='xmlChar *' info='a string containing the value of the specified attribute, or NULL in case of error. The string must be deallocated by the caller.'/>
@@ -13617,7 +13665,7 @@ actually an xmlCharEncoding'/>
<arg name='localName' type='const xmlChar *' info='the local name of the attribute.'/>
<arg name='namespaceURI' type='const xmlChar *' info='the namespace URI of the attribute.'/>
</function>
- <function name='xmlTextReaderGetErrorHandler' file='xmlreader'>
+ <function name='xmlTextReaderGetErrorHandler' file='xmlreader' module='xmlreader'>
<cond>defined(LIBXML_READER_ENABLED)</cond>
<info>Retrieve the error callback function and user argument.</info>
<return type='void'/>
@@ -13625,107 +13673,107 @@ actually an xmlCharEncoding'/>
<arg name='f' type='xmlTextReaderErrorFunc *' info='the callback function or NULL is no callback has been registered'/>
<arg name='arg' type='void **' info='a user argument'/>
</function>
- <function name='xmlTextReaderGetParserColumnNumber' file='xmlreader'>
+ <function name='xmlTextReaderGetParserColumnNumber' file='xmlreader' module='xmlreader'>
<cond>defined(LIBXML_READER_ENABLED)</cond>
<info>Provide the column number of the current parsing point.</info>
<return type='int' info='an int or 0 if not available'/>
<arg name='reader' type='xmlTextReaderPtr' info='the user data (XML reader context)'/>
</function>
- <function name='xmlTextReaderGetParserLineNumber' file='xmlreader'>
+ <function name='xmlTextReaderGetParserLineNumber' file='xmlreader' module='xmlreader'>
<cond>defined(LIBXML_READER_ENABLED)</cond>
<info>Provide the line number of the current parsing point.</info>
<return type='int' info='an int or 0 if not available'/>
<arg name='reader' type='xmlTextReaderPtr' info='the user data (XML reader context)'/>
</function>
- <function name='xmlTextReaderGetParserProp' file='xmlreader'>
+ <function name='xmlTextReaderGetParserProp' file='xmlreader' module='xmlreader'>
<cond>defined(LIBXML_READER_ENABLED)</cond>
<info>Read the parser internal property.</info>
<return type='int' info='the value, usually 0 or 1, or -1 in case of error.'/>
<arg name='reader' type='xmlTextReaderPtr' info='the xmlTextReaderPtr used'/>
<arg name='prop' type='int' info='the xmlParserProperties to get'/>
</function>
- <function name='xmlTextReaderGetRemainder' file='xmlreader'>
+ <function name='xmlTextReaderGetRemainder' file='xmlreader' module='xmlreader'>
<cond>defined(LIBXML_READER_ENABLED)</cond>
<info>Method to get the remainder of the buffered XML. this method stops the parser, set its state to End Of File and return the input stream with what is left that the parser did not use. The implementation is not good, the parser certainly 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'>
+ <function name='xmlTextReaderHasAttributes' file='xmlreader' module='xmlreader'>
<cond>defined(LIBXML_READER_ENABLED)</cond>
<info>Whether the node has attributes.</info>
<return type='int' info='1 if true, 0 if false, and -1 in case or error'/>
<arg name='reader' type='xmlTextReaderPtr' info='the xmlTextReaderPtr used'/>
</function>
- <function name='xmlTextReaderHasValue' file='xmlreader'>
+ <function name='xmlTextReaderHasValue' file='xmlreader' module='xmlreader'>
<cond>defined(LIBXML_READER_ENABLED)</cond>
<info>Whether the node can have a text value.</info>
<return type='int' info='1 if true, 0 if false, and -1 in case or error'/>
<arg name='reader' type='xmlTextReaderPtr' info='the xmlTextReaderPtr used'/>
</function>
- <function name='xmlTextReaderIsDefault' file='xmlreader'>
+ <function name='xmlTextReaderIsDefault' file='xmlreader' module='xmlreader'>
<cond>defined(LIBXML_READER_ENABLED)</cond>
<info>Whether an Attribute node was generated from the default value defined in the DTD or schema.</info>
<return type='int' info='0 if not defaulted, 1 if defaulted, and -1 in case of error'/>
<arg name='reader' type='xmlTextReaderPtr' info='the xmlTextReaderPtr used'/>
</function>
- <function name='xmlTextReaderIsEmptyElement' file='xmlreader'>
+ <function name='xmlTextReaderIsEmptyElement' file='xmlreader' module='xmlreader'>
<cond>defined(LIBXML_READER_ENABLED)</cond>
<info>Check if the current node is empty</info>
<return type='int' info='1 if empty, 0 if not and -1 in case of error'/>
<arg name='reader' type='xmlTextReaderPtr' info='the xmlTextReaderPtr used'/>
</function>
- <function name='xmlTextReaderIsNamespaceDecl' file='xmlreader'>
+ <function name='xmlTextReaderIsNamespaceDecl' file='xmlreader' module='xmlreader'>
<cond>defined(LIBXML_READER_ENABLED)</cond>
<info>Determine whether the current node is a namespace declaration rather than a regular attribute.</info>
<return type='int' info='1 if the current node is a namespace declaration, 0 if it is a regular attribute or other type of node, or -1 in case of error.'/>
<arg name='reader' type='xmlTextReaderPtr' info='the xmlTextReaderPtr used'/>
</function>
- <function name='xmlTextReaderIsValid' file='xmlreader'>
+ <function name='xmlTextReaderIsValid' file='xmlreader' module='xmlreader'>
<cond>defined(LIBXML_READER_ENABLED)</cond>
<info>Retrieve the validity status from the parser context</info>
<return type='int' info='the flag value 1 if valid, 0 if no, and -1 in case of error'/>
<arg name='reader' type='xmlTextReaderPtr' info='the xmlTextReaderPtr used'/>
</function>
- <function name='xmlTextReaderLocalName' file='xmlreader'>
+ <function name='xmlTextReaderLocalName' file='xmlreader' module='xmlreader'>
<cond>defined(LIBXML_READER_ENABLED)</cond>
<info>The local name of the node.</info>
<return type='xmlChar *' info='the local name or NULL if not available'/>
<arg name='reader' type='xmlTextReaderPtr' info='the xmlTextReaderPtr used'/>
</function>
- <function name='xmlTextReaderLocatorBaseURI' file='xmlreader'>
+ <function name='xmlTextReaderLocatorBaseURI' file='xmlreader' module='xmlreader'>
<cond>defined(LIBXML_READER_ENABLED)</cond>
<info>Obtain the base URI for the given locator.</info>
<return type='xmlChar *' info='the base URI or NULL in case of error.'/>
<arg name='locator' type='xmlTextReaderLocatorPtr' info='the xmlTextReaderLocatorPtr used'/>
</function>
- <function name='xmlTextReaderLocatorLineNumber' file='xmlreader'>
+ <function name='xmlTextReaderLocatorLineNumber' file='xmlreader' module='xmlreader'>
<cond>defined(LIBXML_READER_ENABLED)</cond>
<info>Obtain the line number for the given locator.</info>
<return type='int' info='the line number or -1 in case of error.'/>
<arg name='locator' type='xmlTextReaderLocatorPtr' info='the xmlTextReaderLocatorPtr used'/>
</function>
- <function name='xmlTextReaderLookupNamespace' file='xmlreader'>
+ <function name='xmlTextReaderLookupNamespace' file='xmlreader' module='xmlreader'>
<cond>defined(LIBXML_READER_ENABLED)</cond>
<info>Resolves a namespace prefix in the scope of the current element.</info>
<return type='xmlChar *' info='a string containing the namespace URI to which the prefix maps or NULL in case of error. The string must be deallocated by the caller.'/>
<arg name='reader' type='xmlTextReaderPtr' info='the xmlTextReaderPtr used'/>
<arg name='prefix' type='const xmlChar *' info='the prefix whose namespace URI is to be resolved. To return the default namespace, specify NULL'/>
</function>
- <function name='xmlTextReaderMoveToAttribute' file='xmlreader'>
+ <function name='xmlTextReaderMoveToAttribute' file='xmlreader' module='xmlreader'>
<cond>defined(LIBXML_READER_ENABLED)</cond>
<info>Moves the position of the current instance to the attribute with the specified qualified name.</info>
<return type='int' info='1 in case of success, -1 in case of error, 0 if not found'/>
<arg name='reader' type='xmlTextReaderPtr' info='the xmlTextReaderPtr used'/>
<arg name='name' type='const xmlChar *' info='the qualified name of the attribute.'/>
</function>
- <function name='xmlTextReaderMoveToAttributeNo' file='xmlreader'>
+ <function name='xmlTextReaderMoveToAttributeNo' file='xmlreader' module='xmlreader'>
<cond>defined(LIBXML_READER_ENABLED)</cond>
<info>Moves the position of the current instance to the attribute with the specified index relative to the containing element.</info>
<return type='int' info='1 in case of success, -1 in case of error, 0 if not found'/>
<arg name='reader' type='xmlTextReaderPtr' info='the xmlTextReaderPtr used'/>
<arg name='no' type='int' info='the zero-based index of the attribute relative to the containing element.'/>
</function>
- <function name='xmlTextReaderMoveToAttributeNs' file='xmlreader'>
+ <function name='xmlTextReaderMoveToAttributeNs' file='xmlreader' module='xmlreader'>
<cond>defined(LIBXML_READER_ENABLED)</cond>
<info>Moves the position of the current instance to the attribute with the specified local name and namespace URI.</info>
<return type='int' info='1 in case of success, -1 in case of error, 0 if not found'/>
@@ -13733,73 +13781,73 @@ actually an xmlCharEncoding'/>
<arg name='localName' type='const xmlChar *' info='the local name of the attribute.'/>
<arg name='namespaceURI' type='const xmlChar *' info='the namespace URI of the attribute.'/>
</function>
- <function name='xmlTextReaderMoveToElement' file='xmlreader'>
+ <function name='xmlTextReaderMoveToElement' file='xmlreader' module='xmlreader'>
<cond>defined(LIBXML_READER_ENABLED)</cond>
<info>Moves the position of the current instance to the node that contains the current Attribute node.</info>
<return type='int' info='1 in case of success, -1 in case of error, 0 if not moved'/>
<arg name='reader' type='xmlTextReaderPtr' info='the xmlTextReaderPtr used'/>
</function>
- <function name='xmlTextReaderMoveToFirstAttribute' file='xmlreader'>
+ <function name='xmlTextReaderMoveToFirstAttribute' file='xmlreader' module='xmlreader'>
<cond>defined(LIBXML_READER_ENABLED)</cond>
<info>Moves the position of the current instance to the first attribute associated with the current node.</info>
<return type='int' info='1 in case of success, -1 in case of error, 0 if not found'/>
<arg name='reader' type='xmlTextReaderPtr' info='the xmlTextReaderPtr used'/>
</function>
- <function name='xmlTextReaderMoveToNextAttribute' file='xmlreader'>
+ <function name='xmlTextReaderMoveToNextAttribute' file='xmlreader' module='xmlreader'>
<cond>defined(LIBXML_READER_ENABLED)</cond>
<info>Moves the position of the current instance to the next attribute associated with the current node.</info>
<return type='int' info='1 in case of success, -1 in case of error, 0 if not found'/>
<arg name='reader' type='xmlTextReaderPtr' info='the xmlTextReaderPtr used'/>
</function>
- <function name='xmlTextReaderName' file='xmlreader'>
+ <function name='xmlTextReaderName' file='xmlreader' module='xmlreader'>
<cond>defined(LIBXML_READER_ENABLED)</cond>
<info>The qualified name of the node, equal to Prefix :LocalName.</info>
<return type='xmlChar *' info='the local name or NULL if not available'/>
<arg name='reader' type='xmlTextReaderPtr' info='the xmlTextReaderPtr used'/>
</function>
- <function name='xmlTextReaderNamespaceUri' file='xmlreader'>
+ <function name='xmlTextReaderNamespaceUri' file='xmlreader' module='xmlreader'>
<cond>defined(LIBXML_READER_ENABLED)</cond>
<info>The URI defining the namespace associated with the node.</info>
<return type='xmlChar *' info='the namespace URI or NULL if not available'/>
<arg name='reader' type='xmlTextReaderPtr' info='the xmlTextReaderPtr used'/>
</function>
- <function name='xmlTextReaderNext' file='xmlreader'>
+ <function name='xmlTextReaderNext' file='xmlreader' module='xmlreader'>
<cond>defined(LIBXML_READER_ENABLED)</cond>
<info>Skip to the node following the current one in document order while avoiding the subtree if any.</info>
<return type='int' info='1 if the node was read successfully, 0 if there is no more nodes to read, or -1 in case of error'/>
<arg name='reader' type='xmlTextReaderPtr' info='the xmlTextReaderPtr used'/>
</function>
- <function name='xmlTextReaderNextSibling' file='xmlreader'>
+ <function name='xmlTextReaderNextSibling' file='xmlreader' module='xmlreader'>
<cond>defined(LIBXML_READER_ENABLED)</cond>
<info>Skip to the node following the current one in document order while avoiding the subtree if any. Currently implemented only for Readers built on a document</info>
<return type='int' info='1 if the node was read successfully, 0 if there is no more nodes to read, or -1 in case of error'/>
<arg name='reader' type='xmlTextReaderPtr' info='the xmlTextReaderPtr used'/>
</function>
- <function name='xmlTextReaderNodeType' file='xmlreader'>
+ <function name='xmlTextReaderNodeType' file='xmlreader' module='xmlreader'>
<cond>defined(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'>
+ <function name='xmlTextReaderNormalization' file='xmlreader' module='xmlreader'>
<cond>defined(LIBXML_READER_ENABLED)</cond>
<info>The value indicating whether to normalize white space and attribute values. Since attribute value and end of line normalizations are a MUST in the XML specification only the value true is accepted. The broken bahaviour of accepting out of range character entities like &amp;#0; is of course not supported either.</info>
<return type='int' info='1 or -1 in case of error.'/>
<arg name='reader' type='xmlTextReaderPtr' info='the xmlTextReaderPtr used'/>
</function>
- <function name='xmlTextReaderPrefix' file='xmlreader'>
+ <function name='xmlTextReaderPrefix' file='xmlreader' module='xmlreader'>
<cond>defined(LIBXML_READER_ENABLED)</cond>
<info>A shorthand reference to the namespace associated with the node.</info>
<return type='xmlChar *' info='the prefix or NULL if not available'/>
<arg name='reader' type='xmlTextReaderPtr' info='the xmlTextReaderPtr used'/>
</function>
- <function name='xmlTextReaderPreserve' file='xmlreader'>
+ <function name='xmlTextReaderPreserve' file='xmlreader' module='xmlreader'>
<cond>defined(LIBXML_READER_ENABLED)</cond>
<info>This tells the XML Reader to preserve the current node. The caller must also use xmlTextReaderCurrentDoc() to keep an handle on the resulting document once parsing has finished</info>
<return type='xmlNodePtr' info='the xmlNodePtr or NULL in case of error.'/>
<arg name='reader' type='xmlTextReaderPtr' info='the xmlTextReaderPtr used'/>
</function>
- <function name='xmlTextReaderPreservePattern' file='xmlreader'>
+ <function name='xmlTextReaderPreservePattern' file='xmlreader' module='xmlreader'>
<cond>defined(LIBXML_READER_ENABLED) &amp;&amp; defined(LIBXML_PATTERN_ENABLED)</cond>
<info>This tells the XML Reader to preserve all nodes matched by the pattern. The caller must also use xmlTextReaderCurrentDoc() to keep an handle on the resulting document once parsing has finished</info>
<return type='int' info='a positive number in case of success and -1 in case of error'/>
@@ -13807,63 +13855,63 @@ actually an xmlCharEncoding'/>
<arg name='pattern' type='const xmlChar *' info='an XPath subset pattern'/>
<arg name='namespaces' type='const xmlChar **' info='the prefix definitions, array of [URI, prefix] or NULL'/>
</function>
- <function name='xmlTextReaderQuoteChar' file='xmlreader'>
+ <function name='xmlTextReaderQuoteChar' file='xmlreader' module='xmlreader'>
<cond>defined(LIBXML_READER_ENABLED)</cond>
<info>The quotation mark character used to enclose the value of an attribute.</info>
<return type='int' info='&quot; or &apos; and -1 in case of error'/>
<arg name='reader' type='xmlTextReaderPtr' info='the xmlTextReaderPtr used'/>
</function>
- <function name='xmlTextReaderRead' file='xmlreader'>
+ <function name='xmlTextReaderRead' file='xmlreader' module='xmlreader'>
<cond>defined(LIBXML_READER_ENABLED)</cond>
<info>Moves the position of the current instance to the next node in the stream, exposing its properties.</info>
<return type='int' info='1 if the node was read successfully, 0 if there is no more nodes to read, or -1 in case of error'/>
<arg name='reader' type='xmlTextReaderPtr' info='the xmlTextReaderPtr used'/>
</function>
- <function name='xmlTextReaderReadAttributeValue' file='xmlreader'>
+ <function name='xmlTextReaderReadAttributeValue' file='xmlreader' module='xmlreader'>
<cond>defined(LIBXML_READER_ENABLED)</cond>
<info>Parses an attribute value into one or more Text and EntityReference nodes.</info>
<return type='int' info='1 in case of success, 0 if the reader was not 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'>
+ <function name='xmlTextReaderReadInnerXml' file='xmlreader' module='xmlreader'>
<cond>defined(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'>
+ <function name='xmlTextReaderReadOuterXml' file='xmlreader' module='xmlreader'>
<cond>defined(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'>
+ <function name='xmlTextReaderReadState' file='xmlreader' module='xmlreader'>
<cond>defined(LIBXML_READER_ENABLED)</cond>
<info>Gets the read state of the reader.</info>
<return type='int' info='the state value, or -1 in case of error'/>
<arg name='reader' type='xmlTextReaderPtr' info='the xmlTextReaderPtr used'/>
</function>
- <function name='xmlTextReaderReadString' file='xmlreader'>
+ <function name='xmlTextReaderReadString' file='xmlreader' module='xmlreader'>
<cond>defined(LIBXML_READER_ENABLED)</cond>
<info>Reads the contents of an element or a text node as a string.</info>
<return type='xmlChar *' info='a string containing the contents of the Element or Text node, or NULL if the reader is positioned on any other type of node. The string must be deallocated by the caller.'/>
<arg name='reader' type='xmlTextReaderPtr' info='the xmlTextReaderPtr used'/>
</function>
- <function name='xmlTextReaderRelaxNGSetSchema' file='xmlreader'>
+ <function name='xmlTextReaderRelaxNGSetSchema' file='xmlreader' module='xmlreader'>
<cond>defined(LIBXML_READER_ENABLED) &amp;&amp; defined(LIBXML_SCHEMAS_ENABLED)</cond>
<info>Use RelaxNG to validate the document as it is processed. Activation is only possible before the first Read(). if @schema is NULL, then RelaxNG validation is 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'>
+ <function name='xmlTextReaderRelaxNGValidate' file='xmlreader' module='xmlreader'>
<cond>defined(LIBXML_READER_ENABLED) &amp;&amp; defined(LIBXML_SCHEMAS_ENABLED)</cond>
<info>Use RelaxNG to validate the document as it is processed. Activation is only possible before the first Read(). if @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'>
+ <function name='xmlTextReaderSetErrorHandler' file='xmlreader' module='xmlreader'>
<cond>defined(LIBXML_READER_ENABLED)</cond>
<info>Register a callback function that will be called on error and warnings. If @f is NULL, the default error and warning handlers are restored.</info>
<return type='void'/>
@@ -13871,7 +13919,7 @@ actually an xmlCharEncoding'/>
<arg name='f' type='xmlTextReaderErrorFunc' info='the callback function to call on error and warnings'/>
<arg name='arg' type='void *' info='a user argument to pass to the callback function'/>
</function>
- <function name='xmlTextReaderSetParserProp' file='xmlreader'>
+ <function name='xmlTextReaderSetParserProp' file='xmlreader' module='xmlreader'>
<cond>defined(LIBXML_READER_ENABLED)</cond>
<info>Change the parser processing behaviour by changing some of its internal properties. Note that some properties can only be changed before any read has been done.</info>
<return type='int' info='0 if the call was successful, or -1 in case of error'/>
@@ -13879,7 +13927,7 @@ actually an xmlCharEncoding'/>
<arg name='prop' type='int' info='the xmlParserProperties to set'/>
<arg name='value' type='int' info='usually 0 or 1 to (de)activate it'/>
</function>
- <function name='xmlTextReaderSetStructuredErrorHandler' file='xmlreader'>
+ <function name='xmlTextReaderSetStructuredErrorHandler' file='xmlreader' module='xmlreader'>
<cond>defined(LIBXML_READER_ENABLED)</cond>
<info>Register a callback function that will be called on error and warnings. If @f is NULL, the default error and warning handlers are restored.</info>
<return type='void'/>
@@ -13887,118 +13935,118 @@ actually an xmlCharEncoding'/>
<arg name='f' type='xmlStructuredErrorFunc' info='the callback function to call on error and warnings'/>
<arg name='arg' type='void *' info='a user argument to pass to the callback function'/>
</function>
- <function name='xmlTextReaderStandalone' file='xmlreader'>
+ <function name='xmlTextReaderStandalone' file='xmlreader' module='xmlreader'>
<cond>defined(LIBXML_READER_ENABLED)</cond>
<info>Determine the standalone status of the document being read.</info>
<return type='int' info='1 if the document was declared to be standalone, 0 if it was declared to be not standalone, or -1 if the document did not specify its standalone status or in case of error.'/>
<arg name='reader' type='xmlTextReaderPtr' info='the xmlTextReaderPtr used'/>
</function>
- <function name='xmlTextReaderValue' file='xmlreader'>
+ <function name='xmlTextReaderValue' file='xmlreader' module='xmlreader'>
<cond>defined(LIBXML_READER_ENABLED)</cond>
<info>Provides the text value of the node if present</info>
<return type='xmlChar *' info='the string or NULL if not available. The result must be deallocated with xmlFree()'/>
<arg name='reader' type='xmlTextReaderPtr' info='the xmlTextReaderPtr used'/>
</function>
- <function name='xmlTextReaderXmlLang' file='xmlreader'>
+ <function name='xmlTextReaderXmlLang' file='xmlreader' module='xmlreader'>
<cond>defined(LIBXML_READER_ENABLED)</cond>
<info>The xml:lang scope within which the node resides.</info>
<return type='xmlChar *' info='the xml:lang value or NULL if none exists.'/>
<arg name='reader' type='xmlTextReaderPtr' info='the xmlTextReaderPtr used'/>
</function>
- <function name='xmlTextWriterEndAttribute' file='xmlwriter'>
+ <function name='xmlTextWriterEndAttribute' file='xmlwriter' module='xmlwriter'>
<cond>defined(LIBXML_WRITER_ENABLED)</cond>
<info>End the current xml element.</info>
<return type='int' info='the bytes written (may be 0 because of buffering) or -1 in case of error'/>
<arg name='writer' type='xmlTextWriterPtr' info='the xmlTextWriterPtr'/>
</function>
- <function name='xmlTextWriterEndCDATA' file='xmlwriter'>
+ <function name='xmlTextWriterEndCDATA' file='xmlwriter' module='xmlwriter'>
<cond>defined(LIBXML_WRITER_ENABLED)</cond>
<info>End an xml CDATA section.</info>
<return type='int' info='the bytes written (may be 0 because of buffering) or -1 in case of error'/>
<arg name='writer' type='xmlTextWriterPtr' info='the xmlTextWriterPtr'/>
</function>
- <function name='xmlTextWriterEndComment' file='xmlwriter'>
+ <function name='xmlTextWriterEndComment' file='xmlwriter' module='xmlwriter'>
<cond>defined(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'>
+ <function name='xmlTextWriterEndDTD' file='xmlwriter' module='xmlwriter'>
<cond>defined(LIBXML_WRITER_ENABLED)</cond>
<info>End an xml DTD.</info>
<return type='int' info='the bytes written (may be 0 because of buffering) or -1 in case of error'/>
<arg name='writer' type='xmlTextWriterPtr' info='the xmlTextWriterPtr'/>
</function>
- <function name='xmlTextWriterEndDTDAttlist' file='xmlwriter'>
+ <function name='xmlTextWriterEndDTDAttlist' file='xmlwriter' module='xmlwriter'>
<cond>defined(LIBXML_WRITER_ENABLED)</cond>
<info>End an xml DTD attribute list.</info>
<return type='int' info='the bytes written (may be 0 because of buffering) or -1 in case of error'/>
<arg name='writer' type='xmlTextWriterPtr' info='the xmlTextWriterPtr'/>
</function>
- <function name='xmlTextWriterEndDTDElement' file='xmlwriter'>
+ <function name='xmlTextWriterEndDTDElement' file='xmlwriter' module='xmlwriter'>
<cond>defined(LIBXML_WRITER_ENABLED)</cond>
<info>End an xml DTD element.</info>
<return type='int' info='the bytes written (may be 0 because of buffering) or -1 in case of error'/>
<arg name='writer' type='xmlTextWriterPtr' info='the xmlTextWriterPtr'/>
</function>
- <function name='xmlTextWriterEndDTDEntity' file='xmlwriter'>
+ <function name='xmlTextWriterEndDTDEntity' file='xmlwriter' module='xmlwriter'>
<cond>defined(LIBXML_WRITER_ENABLED)</cond>
<info>End an xml DTD entity.</info>
<return type='int' info='the bytes written (may be 0 because of buffering) or -1 in case of error'/>
<arg name='writer' type='xmlTextWriterPtr' info='the xmlTextWriterPtr'/>
</function>
- <function name='xmlTextWriterEndDocument' file='xmlwriter'>
+ <function name='xmlTextWriterEndDocument' file='xmlwriter' module='xmlwriter'>
<cond>defined(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'>
+ <function name='xmlTextWriterEndElement' file='xmlwriter' module='xmlwriter'>
<cond>defined(LIBXML_WRITER_ENABLED)</cond>
<info>End the current xml element.</info>
<return type='int' info='the bytes written (may be 0 because of buffering) or -1 in case of error'/>
<arg name='writer' type='xmlTextWriterPtr' info='the xmlTextWriterPtr'/>
</function>
- <function name='xmlTextWriterEndPI' file='xmlwriter'>
+ <function name='xmlTextWriterEndPI' file='xmlwriter' module='xmlwriter'>
<cond>defined(LIBXML_WRITER_ENABLED)</cond>
<info>End the current xml PI.</info>
<return type='int' info='the bytes written (may be 0 because of buffering) or -1 in case of error'/>
<arg name='writer' type='xmlTextWriterPtr' info='the xmlTextWriterPtr'/>
</function>
- <function name='xmlTextWriterFlush' file='xmlwriter'>
+ <function name='xmlTextWriterFlush' file='xmlwriter' module='xmlwriter'>
<cond>defined(LIBXML_WRITER_ENABLED)</cond>
<info>Flush the output buffer.</info>
<return type='int' info='the bytes written (may be 0 because of buffering) or -1 in case of error'/>
<arg name='writer' type='xmlTextWriterPtr' info='the xmlTextWriterPtr'/>
</function>
- <function name='xmlTextWriterFullEndElement' file='xmlwriter'>
+ <function name='xmlTextWriterFullEndElement' file='xmlwriter' module='xmlwriter'>
<cond>defined(LIBXML_WRITER_ENABLED)</cond>
<info>End the current xml element. Writes an end tag even if the element is empty</info>
<return type='int' info='the bytes written (may be 0 because of buffering) or -1 in case of error'/>
<arg name='writer' type='xmlTextWriterPtr' info='the xmlTextWriterPtr'/>
</function>
- <function name='xmlTextWriterSetIndent' file='xmlwriter'>
+ <function name='xmlTextWriterSetIndent' file='xmlwriter' module='xmlwriter'>
<cond>defined(LIBXML_WRITER_ENABLED)</cond>
<info>Set indentation output. indent = 0 do not indentation. indent &gt; 0 do indentation.</info>
<return type='int' info='-1 on error or 0 otherwise.'/>
<arg name='writer' type='xmlTextWriterPtr' info='the xmlTextWriterPtr'/>
<arg name='indent' type='int' info='do indentation?'/>
</function>
- <function name='xmlTextWriterSetIndentString' file='xmlwriter'>
+ <function name='xmlTextWriterSetIndentString' file='xmlwriter' module='xmlwriter'>
<cond>defined(LIBXML_WRITER_ENABLED)</cond>
<info>Set string indentation.</info>
<return type='int' info='-1 on error or 0 otherwise.'/>
<arg name='writer' type='xmlTextWriterPtr' info='the xmlTextWriterPtr'/>
<arg name='str' type='const xmlChar *' info='the xmlChar string'/>
</function>
- <function name='xmlTextWriterStartAttribute' file='xmlwriter'>
+ <function name='xmlTextWriterStartAttribute' file='xmlwriter' module='xmlwriter'>
<cond>defined(LIBXML_WRITER_ENABLED)</cond>
<info>Start an xml attribute.</info>
<return type='int' info='the bytes written (may be 0 because of buffering) or -1 in case of error'/>
<arg name='writer' type='xmlTextWriterPtr' info='the xmlTextWriterPtr'/>
<arg name='name' type='const xmlChar *' info='element name'/>
</function>
- <function name='xmlTextWriterStartAttributeNS' file='xmlwriter'>
+ <function name='xmlTextWriterStartAttributeNS' file='xmlwriter' module='xmlwriter'>
<cond>defined(LIBXML_WRITER_ENABLED)</cond>
<info>Start an xml attribute with namespace support.</info>
<return type='int' info='the bytes written (may be 0 because of buffering) or -1 in case of error'/>
@@ -14007,19 +14055,19 @@ actually an xmlCharEncoding'/>
<arg name='name' type='const xmlChar *' info='element local name'/>
<arg name='namespaceURI' type='const xmlChar *' info='namespace URI or NULL'/>
</function>
- <function name='xmlTextWriterStartCDATA' file='xmlwriter'>
+ <function name='xmlTextWriterStartCDATA' file='xmlwriter' module='xmlwriter'>
<cond>defined(LIBXML_WRITER_ENABLED)</cond>
<info>Start an xml CDATA section.</info>
<return type='int' info='the bytes written (may be 0 because of buffering) or -1 in case of error'/>
<arg name='writer' type='xmlTextWriterPtr' info='the xmlTextWriterPtr'/>
</function>
- <function name='xmlTextWriterStartComment' file='xmlwriter'>
+ <function name='xmlTextWriterStartComment' file='xmlwriter' module='xmlwriter'>
<cond>defined(LIBXML_WRITER_ENABLED)</cond>
<info>Start an xml comment.</info>
<return type='int' info='the bytes written (may be 0 because of buffering) or -1 in case of error'/>
<arg name='writer' type='xmlTextWriterPtr' info='the xmlTextWriterPtr'/>
</function>
- <function name='xmlTextWriterStartDTD' file='xmlwriter'>
+ <function name='xmlTextWriterStartDTD' file='xmlwriter' module='xmlwriter'>
<cond>defined(LIBXML_WRITER_ENABLED)</cond>
<info>Start an xml DTD.</info>
<return type='int' info='the bytes written (may be 0 because of buffering) or -1 in case of error'/>
@@ -14028,21 +14076,21 @@ actually an xmlCharEncoding'/>
<arg name='pubid' type='const xmlChar *' info='the public identifier, which is an alternative to the system identifier'/>
<arg name='sysid' type='const xmlChar *' info='the system identifier, which is the URI of the DTD'/>
</function>
- <function name='xmlTextWriterStartDTDAttlist' file='xmlwriter'>
+ <function name='xmlTextWriterStartDTDAttlist' file='xmlwriter' module='xmlwriter'>
<cond>defined(LIBXML_WRITER_ENABLED)</cond>
<info>Start an xml DTD ATTLIST.</info>
<return type='int' info='the bytes written (may be 0 because of buffering) or -1 in case of error'/>
<arg name='writer' type='xmlTextWriterPtr' info='the xmlTextWriterPtr'/>
<arg name='name' type='const xmlChar *' info='the name of the DTD ATTLIST'/>
</function>
- <function name='xmlTextWriterStartDTDElement' file='xmlwriter'>
+ <function name='xmlTextWriterStartDTDElement' file='xmlwriter' module='xmlwriter'>
<cond>defined(LIBXML_WRITER_ENABLED)</cond>
<info>Start an xml DTD element.</info>
<return type='int' info='the bytes written (may be 0 because of buffering) or -1 in case of error'/>
<arg name='writer' type='xmlTextWriterPtr' info='the xmlTextWriterPtr'/>
<arg name='name' type='const xmlChar *' info='the name of the DTD element'/>
</function>
- <function name='xmlTextWriterStartDTDEntity' file='xmlwriter'>
+ <function name='xmlTextWriterStartDTDEntity' file='xmlwriter' module='xmlwriter'>
<cond>defined(LIBXML_WRITER_ENABLED)</cond>
<info>Start an xml DTD ATTLIST.</info>
<return type='int' info='the bytes written (may be 0 because of buffering) or -1 in case of error'/>
@@ -14050,7 +14098,7 @@ actually an xmlCharEncoding'/>
<arg name='pe' type='int' info='TRUE if this is a parameter entity, FALSE if not'/>
<arg name='name' type='const xmlChar *' info='the name of the DTD ATTLIST'/>
</function>
- <function name='xmlTextWriterStartDocument' file='xmlwriter'>
+ <function name='xmlTextWriterStartDocument' file='xmlwriter' module='xmlwriter'>
<cond>defined(LIBXML_WRITER_ENABLED)</cond>
<info>Start a new xml document</info>
<return type='int' info='the bytes written (may be 0 because of buffering) or -1 in case of error'/>
@@ -14059,14 +14107,14 @@ actually an xmlCharEncoding'/>
<arg name='encoding' type='const char *' info='the encoding or NULL for default'/>
<arg name='standalone' type='const char *' info='&quot;yes&quot; or &quot;no&quot; or NULL for default'/>
</function>
- <function name='xmlTextWriterStartElement' file='xmlwriter'>
+ <function name='xmlTextWriterStartElement' file='xmlwriter' module='xmlwriter'>
<cond>defined(LIBXML_WRITER_ENABLED)</cond>
<info>Start an xml element.</info>
<return type='int' info='the bytes written (may be 0 because of buffering) or -1 in case of error'/>
<arg name='writer' type='xmlTextWriterPtr' info='the xmlTextWriterPtr'/>
<arg name='name' type='const xmlChar *' info='element name'/>
</function>
- <function name='xmlTextWriterStartElementNS' file='xmlwriter'>
+ <function name='xmlTextWriterStartElementNS' file='xmlwriter' module='xmlwriter'>
<cond>defined(LIBXML_WRITER_ENABLED)</cond>
<info>Start an xml element with namespace support.</info>
<return type='int' info='the bytes written (may be 0 because of buffering) or -1 in case of error'/>
@@ -14075,14 +14123,14 @@ actually an xmlCharEncoding'/>
<arg name='name' type='const xmlChar *' info='element local name'/>
<arg name='namespaceURI' type='const xmlChar *' info='namespace URI or NULL'/>
</function>
- <function name='xmlTextWriterStartPI' file='xmlwriter'>
+ <function name='xmlTextWriterStartPI' file='xmlwriter' module='xmlwriter'>
<cond>defined(LIBXML_WRITER_ENABLED)</cond>
<info>Start an xml PI.</info>
<return type='int' info='the bytes written (may be 0 because of buffering) or -1 in case of error'/>
<arg name='writer' type='xmlTextWriterPtr' info='the xmlTextWriterPtr'/>
<arg name='target' type='const xmlChar *' info='PI target'/>
</function>
- <function name='xmlTextWriterWriteAttribute' file='xmlwriter'>
+ <function name='xmlTextWriterWriteAttribute' file='xmlwriter' module='xmlwriter'>
<cond>defined(LIBXML_WRITER_ENABLED)</cond>
<info>Write an xml attribute.</info>
<return type='int' info='the bytes written (may be 0 because of buffering) or -1 in case of error'/>
@@ -14090,7 +14138,7 @@ actually an xmlCharEncoding'/>
<arg name='name' type='const xmlChar *' info='attribute name'/>
<arg name='content' type='const xmlChar *' info='attribute content'/>
</function>
- <function name='xmlTextWriterWriteAttributeNS' file='xmlwriter'>
+ <function name='xmlTextWriterWriteAttributeNS' file='xmlwriter' module='xmlwriter'>
<cond>defined(LIBXML_WRITER_ENABLED)</cond>
<info>Write an xml attribute.</info>
<return type='int' info='the bytes written (may be 0 because of buffering) or -1 in case of error'/>
@@ -14100,7 +14148,7 @@ actually an xmlCharEncoding'/>
<arg name='namespaceURI' type='const xmlChar *' info='namespace URI'/>
<arg name='content' type='const xmlChar *' info='attribute content'/>
</function>
- <function name='xmlTextWriterWriteBase64' file='xmlwriter'>
+ <function name='xmlTextWriterWriteBase64' file='xmlwriter' module='xmlwriter'>
<cond>defined(LIBXML_WRITER_ENABLED)</cond>
<info>Write an base64 encoded xml text.</info>
<return type='int' info='the bytes written (may be 0 because of buffering) or -1 in case of error'/>
@@ -14109,7 +14157,7 @@ actually an xmlCharEncoding'/>
<arg name='start' type='int' info='the position within the data of the first byte to encode'/>
<arg name='len' type='int' info='the number of bytes to encode'/>
</function>
- <function name='xmlTextWriterWriteBinHex' file='xmlwriter'>
+ <function name='xmlTextWriterWriteBinHex' file='xmlwriter' module='xmlwriter'>
<cond>defined(LIBXML_WRITER_ENABLED)</cond>
<info>Write a BinHex encoded xml text.</info>
<return type='int' info='the bytes written (may be 0 because of buffering) or -1 in case of error'/>
@@ -14118,21 +14166,21 @@ actually an xmlCharEncoding'/>
<arg name='start' type='int' info='the position within the data of the first byte to encode'/>
<arg name='len' type='int' info='the number of bytes to encode'/>
</function>
- <function name='xmlTextWriterWriteCDATA' file='xmlwriter'>
+ <function name='xmlTextWriterWriteCDATA' file='xmlwriter' module='xmlwriter'>
<cond>defined(LIBXML_WRITER_ENABLED)</cond>
<info>Write an xml CDATA.</info>
<return type='int' info='the bytes written (may be 0 because of buffering) or -1 in case of error'/>
<arg name='writer' type='xmlTextWriterPtr' info='the xmlTextWriterPtr'/>
<arg name='content' type='const xmlChar *' info='CDATA content'/>
</function>
- <function name='xmlTextWriterWriteComment' file='xmlwriter'>
+ <function name='xmlTextWriterWriteComment' file='xmlwriter' module='xmlwriter'>
<cond>defined(LIBXML_WRITER_ENABLED)</cond>
<info>Write an xml comment.</info>
<return type='int' info='the bytes written (may be 0 because of buffering) or -1 in case of error'/>
<arg name='writer' type='xmlTextWriterPtr' info='the xmlTextWriterPtr'/>
<arg name='content' type='const xmlChar *' info='comment string'/>
</function>
- <function name='xmlTextWriterWriteDTD' file='xmlwriter'>
+ <function name='xmlTextWriterWriteDTD' file='xmlwriter' module='xmlwriter'>
<cond>defined(LIBXML_WRITER_ENABLED)</cond>
<info>Write a DTD.</info>
<return type='int' info='the bytes written (may be 0 because of buffering) or -1 in case of error'/>
@@ -14142,7 +14190,7 @@ actually an xmlCharEncoding'/>
<arg name='sysid' type='const xmlChar *' info='the system identifier, which is the URI of the DTD'/>
<arg name='subset' type='const xmlChar *' info='string content of the DTD'/>
</function>
- <function name='xmlTextWriterWriteDTDAttlist' file='xmlwriter'>
+ <function name='xmlTextWriterWriteDTDAttlist' file='xmlwriter' module='xmlwriter'>
<cond>defined(LIBXML_WRITER_ENABLED)</cond>
<info>Write a DTD ATTLIST.</info>
<return type='int' info='the bytes written (may be 0 because of buffering) or -1 in case of error'/>
@@ -14150,7 +14198,7 @@ actually an xmlCharEncoding'/>
<arg name='name' type='const xmlChar *' info='the name of the DTD ATTLIST'/>
<arg name='content' type='const xmlChar *' info='content of the ATTLIST'/>
</function>
- <function name='xmlTextWriterWriteDTDElement' file='xmlwriter'>
+ <function name='xmlTextWriterWriteDTDElement' file='xmlwriter' module='xmlwriter'>
<cond>defined(LIBXML_WRITER_ENABLED)</cond>
<info>Write a DTD element.</info>
<return type='int' info='the bytes written (may be 0 because of buffering) or -1 in case of error'/>
@@ -14158,7 +14206,7 @@ actually an xmlCharEncoding'/>
<arg name='name' type='const xmlChar *' info='the name of the DTD element'/>
<arg name='content' type='const xmlChar *' info='content of the element'/>
</function>
- <function name='xmlTextWriterWriteDTDEntity' file='xmlwriter'>
+ <function name='xmlTextWriterWriteDTDEntity' file='xmlwriter' module='xmlwriter'>
<cond>defined(LIBXML_WRITER_ENABLED)</cond>
<info>Write a DTD entity.</info>
<return type='int' info='the bytes written (may be 0 because of buffering) or -1 in case of error'/>
@@ -14170,7 +14218,7 @@ actually an xmlCharEncoding'/>
<arg name='ndataid' type='const xmlChar *' info='the xml notation name.'/>
<arg name='content' type='const xmlChar *' info='content of the entity'/>
</function>
- <function name='xmlTextWriterWriteDTDExternalEntity' file='xmlwriter'>
+ <function name='xmlTextWriterWriteDTDExternalEntity' file='xmlwriter' module='xmlwriter'>
<cond>defined(LIBXML_WRITER_ENABLED)</cond>
<info>Write a DTD external entity. The entity must have been started with xmlTextWriterStartDTDEntity</info>
<return type='int' info='the bytes written (may be 0 because of buffering) or -1 in case of error'/>
@@ -14181,7 +14229,7 @@ actually an xmlCharEncoding'/>
<arg name='sysid' type='const xmlChar *' info='the system identifier, which is the URI of the DTD'/>
<arg name='ndataid' type='const xmlChar *' info='the xml notation name.'/>
</function>
- <function name='xmlTextWriterWriteDTDExternalEntityContents' file='xmlwriter'>
+ <function name='xmlTextWriterWriteDTDExternalEntityContents' file='xmlwriter' module='xmlwriter'>
<cond>defined(LIBXML_WRITER_ENABLED)</cond>
<info>Write the contents of a DTD external entity.</info>
<return type='int' info='the bytes written (may be 0 because of buffering) or -1 in case of error'/>
@@ -14190,7 +14238,7 @@ actually an xmlCharEncoding'/>
<arg name='sysid' type='const xmlChar *' info='the system identifier, which is the URI of the DTD'/>
<arg name='ndataid' type='const xmlChar *' info='the xml notation name.'/>
</function>
- <function name='xmlTextWriterWriteDTDInternalEntity' file='xmlwriter'>
+ <function name='xmlTextWriterWriteDTDInternalEntity' file='xmlwriter' module='xmlwriter'>
<cond>defined(LIBXML_WRITER_ENABLED)</cond>
<info>Write a DTD internal entity.</info>
<return type='int' info='the bytes written (may be 0 because of buffering) or -1 in case of error'/>
@@ -14199,7 +14247,7 @@ actually an xmlCharEncoding'/>
<arg name='name' type='const xmlChar *' info='the name of the DTD entity'/>
<arg name='content' type='const xmlChar *' info='content of the entity'/>
</function>
- <function name='xmlTextWriterWriteDTDNotation' file='xmlwriter'>
+ <function name='xmlTextWriterWriteDTDNotation' file='xmlwriter' module='xmlwriter'>
<cond>defined(LIBXML_WRITER_ENABLED)</cond>
<info>Write a DTD entity.</info>
<return type='int' info='the bytes written (may be 0 because of buffering) or -1 in case of error'/>
@@ -14208,7 +14256,7 @@ actually an xmlCharEncoding'/>
<arg name='pubid' type='const xmlChar *' info='the public identifier, which is an alternative to the system identifier'/>
<arg name='sysid' type='const xmlChar *' info='the system identifier, which is the URI of the DTD'/>
</function>
- <function name='xmlTextWriterWriteElement' file='xmlwriter'>
+ <function name='xmlTextWriterWriteElement' file='xmlwriter' module='xmlwriter'>
<cond>defined(LIBXML_WRITER_ENABLED)</cond>
<info>Write an xml element.</info>
<return type='int' info='the bytes written (may be 0 because of buffering) or -1 in case of error'/>
@@ -14216,7 +14264,7 @@ actually an xmlCharEncoding'/>
<arg name='name' type='const xmlChar *' info='element name'/>
<arg name='content' type='const xmlChar *' info='element content'/>
</function>
- <function name='xmlTextWriterWriteElementNS' file='xmlwriter'>
+ <function name='xmlTextWriterWriteElementNS' file='xmlwriter' module='xmlwriter'>
<cond>defined(LIBXML_WRITER_ENABLED)</cond>
<info>Write an xml element with namespace support.</info>
<return type='int' info='the bytes written (may be 0 because of buffering) or -1 in case of error'/>
@@ -14226,7 +14274,7 @@ actually an xmlCharEncoding'/>
<arg name='namespaceURI' type='const xmlChar *' info='namespace URI'/>
<arg name='content' type='const xmlChar *' info='element content'/>
</function>
- <function name='xmlTextWriterWriteFormatAttribute' file='xmlwriter'>
+ <function name='xmlTextWriterWriteFormatAttribute' file='xmlwriter' module='xmlwriter'>
<cond>defined(LIBXML_WRITER_ENABLED)</cond>
<info>Write a formatted xml attribute.</info>
<return type='int' info='the bytes written (may be 0 because of buffering) or -1 in case of error'/>
@@ -14235,7 +14283,7 @@ actually an xmlCharEncoding'/>
<arg name='format' type='const char *' info='format string (see printf)'/>
<arg name='...' type='...' info='extra parameters for the format'/>
</function>
- <function name='xmlTextWriterWriteFormatAttributeNS' file='xmlwriter'>
+ <function name='xmlTextWriterWriteFormatAttributeNS' file='xmlwriter' module='xmlwriter'>
<cond>defined(LIBXML_WRITER_ENABLED)</cond>
<info>Write a formatted xml attribute.with namespace support</info>
<return type='int' info='the bytes written (may be 0 because of buffering) or -1 in case of error'/>
@@ -14246,7 +14294,7 @@ actually an xmlCharEncoding'/>
<arg name='format' type='const char *' info='format string (see printf)'/>
<arg name='...' type='...' info='extra parameters for the format'/>
</function>
- <function name='xmlTextWriterWriteFormatCDATA' file='xmlwriter'>
+ <function name='xmlTextWriterWriteFormatCDATA' file='xmlwriter' module='xmlwriter'>
<cond>defined(LIBXML_WRITER_ENABLED)</cond>
<info>Write a formatted xml CDATA.</info>
<return type='int' info='the bytes written (may be 0 because of buffering) or -1 in case of error'/>
@@ -14254,7 +14302,7 @@ actually an xmlCharEncoding'/>
<arg name='format' type='const char *' info='format string (see printf)'/>
<arg name='...' type='...' info='extra parameters for the format'/>
</function>
- <function name='xmlTextWriterWriteFormatComment' file='xmlwriter'>
+ <function name='xmlTextWriterWriteFormatComment' file='xmlwriter' module='xmlwriter'>
<cond>defined(LIBXML_WRITER_ENABLED)</cond>
<info>Write an xml comment.</info>
<return type='int' info='the bytes written (may be 0 because of buffering) or -1 in case of error'/>
@@ -14262,7 +14310,7 @@ actually an xmlCharEncoding'/>
<arg name='format' type='const char *' info='format string (see printf)'/>
<arg name='...' type='...' info='extra parameters for the format'/>
</function>
- <function name='xmlTextWriterWriteFormatDTD' file='xmlwriter'>
+ <function name='xmlTextWriterWriteFormatDTD' file='xmlwriter' module='xmlwriter'>
<cond>defined(LIBXML_WRITER_ENABLED)</cond>
<info>Write a DTD with a formatted markup declarations part.</info>
<return type='int' info='the bytes written (may be 0 because of buffering) or -1 in case of error'/>
@@ -14273,7 +14321,7 @@ actually an xmlCharEncoding'/>
<arg name='format' type='const char *' info='format string (see printf)'/>
<arg name='...' type='...' info='extra parameters for the format'/>
</function>
- <function name='xmlTextWriterWriteFormatDTDAttlist' file='xmlwriter'>
+ <function name='xmlTextWriterWriteFormatDTDAttlist' file='xmlwriter' module='xmlwriter'>
<cond>defined(LIBXML_WRITER_ENABLED)</cond>
<info>Write a formatted DTD ATTLIST.</info>
<return type='int' info='the bytes written (may be 0 because of buffering) or -1 in case of error'/>
@@ -14282,7 +14330,7 @@ actually an xmlCharEncoding'/>
<arg name='format' type='const char *' info='format string (see printf)'/>
<arg name='...' type='...' info='extra parameters for the format'/>
</function>
- <function name='xmlTextWriterWriteFormatDTDElement' file='xmlwriter'>
+ <function name='xmlTextWriterWriteFormatDTDElement' file='xmlwriter' module='xmlwriter'>
<cond>defined(LIBXML_WRITER_ENABLED)</cond>
<info>Write a formatted DTD element.</info>
<return type='int' info='the bytes written (may be 0 because of buffering) or -1 in case of error'/>
@@ -14291,7 +14339,7 @@ actually an xmlCharEncoding'/>
<arg name='format' type='const char *' info='format string (see printf)'/>
<arg name='...' type='...' info='extra parameters for the format'/>
</function>
- <function name='xmlTextWriterWriteFormatDTDInternalEntity' file='xmlwriter'>
+ <function name='xmlTextWriterWriteFormatDTDInternalEntity' file='xmlwriter' module='xmlwriter'>
<cond>defined(LIBXML_WRITER_ENABLED)</cond>
<info>Write a formatted DTD internal entity.</info>
<return type='int' info='the bytes written (may be 0 because of buffering) or -1 in case of error'/>
@@ -14301,7 +14349,7 @@ actually an xmlCharEncoding'/>
<arg name='format' type='const char *' info='format string (see printf)'/>
<arg name='...' type='...' info='extra parameters for the format'/>
</function>
- <function name='xmlTextWriterWriteFormatElement' file='xmlwriter'>
+ <function name='xmlTextWriterWriteFormatElement' file='xmlwriter' module='xmlwriter'>
<cond>defined(LIBXML_WRITER_ENABLED)</cond>
<info>Write a formatted xml element.</info>
<return type='int' info='the bytes written (may be 0 because of buffering) or -1 in case of error'/>
@@ -14310,7 +14358,7 @@ actually an xmlCharEncoding'/>
<arg name='format' type='const char *' info='format string (see printf)'/>
<arg name='...' type='...' info='extra parameters for the format'/>
</function>
- <function name='xmlTextWriterWriteFormatElementNS' file='xmlwriter'>
+ <function name='xmlTextWriterWriteFormatElementNS' file='xmlwriter' module='xmlwriter'>
<cond>defined(LIBXML_WRITER_ENABLED)</cond>
<info>Write a formatted xml element with namespace support.</info>
<return type='int' info='the bytes written (may be 0 because of buffering) or -1 in case of error'/>
@@ -14321,7 +14369,7 @@ actually an xmlCharEncoding'/>
<arg name='format' type='const char *' info='format string (see printf)'/>
<arg name='...' type='...' info='extra parameters for the format'/>
</function>
- <function name='xmlTextWriterWriteFormatPI' file='xmlwriter'>
+ <function name='xmlTextWriterWriteFormatPI' file='xmlwriter' module='xmlwriter'>
<cond>defined(LIBXML_WRITER_ENABLED)</cond>
<info>Write a formatted PI.</info>
<return type='int' info='the bytes written (may be 0 because of buffering) or -1 in case of error'/>
@@ -14330,7 +14378,7 @@ actually an xmlCharEncoding'/>
<arg name='format' type='const char *' info='format string (see printf)'/>
<arg name='...' type='...' info='extra parameters for the format'/>
</function>
- <function name='xmlTextWriterWriteFormatRaw' file='xmlwriter'>
+ <function name='xmlTextWriterWriteFormatRaw' file='xmlwriter' module='xmlwriter'>
<cond>defined(LIBXML_WRITER_ENABLED)</cond>
<info>Write a formatted raw xml text.</info>
<return type='int' info='the bytes written (may be 0 because of buffering) or -1 in case of error'/>
@@ -14338,7 +14386,7 @@ actually an xmlCharEncoding'/>
<arg name='format' type='const char *' info='format string (see printf)'/>
<arg name='...' type='...' info='extra parameters for the format'/>
</function>
- <function name='xmlTextWriterWriteFormatString' file='xmlwriter'>
+ <function name='xmlTextWriterWriteFormatString' file='xmlwriter' module='xmlwriter'>
<cond>defined(LIBXML_WRITER_ENABLED)</cond>
<info>Write a formatted xml text.</info>
<return type='int' info='the bytes written (may be 0 because of buffering) or -1 in case of error'/>
@@ -14346,7 +14394,7 @@ actually an xmlCharEncoding'/>
<arg name='format' type='const char *' info='format string (see printf)'/>
<arg name='...' type='...' info='extra parameters for the format'/>
</function>
- <function name='xmlTextWriterWritePI' file='xmlwriter'>
+ <function name='xmlTextWriterWritePI' file='xmlwriter' module='xmlwriter'>
<cond>defined(LIBXML_WRITER_ENABLED)</cond>
<info>Write an xml PI.</info>
<return type='int' info='the bytes written (may be 0 because of buffering) or -1 in case of error'/>
@@ -14354,14 +14402,14 @@ actually an xmlCharEncoding'/>
<arg name='target' type='const xmlChar *' info='PI target'/>
<arg name='content' type='const xmlChar *' info='PI content'/>
</function>
- <function name='xmlTextWriterWriteRaw' file='xmlwriter'>
+ <function name='xmlTextWriterWriteRaw' file='xmlwriter' module='xmlwriter'>
<cond>defined(LIBXML_WRITER_ENABLED)</cond>
<info>Write a raw xml text.</info>
<return type='int' info='the bytes written (may be 0 because of buffering) or -1 in case of error'/>
<arg name='writer' type='xmlTextWriterPtr' info='the xmlTextWriterPtr'/>
<arg name='content' type='const xmlChar *' info='text string'/>
</function>
- <function name='xmlTextWriterWriteRawLen' file='xmlwriter'>
+ <function name='xmlTextWriterWriteRawLen' file='xmlwriter' module='xmlwriter'>
<cond>defined(LIBXML_WRITER_ENABLED)</cond>
<info>Write an xml text. TODO: what about entities and special chars??</info>
<return type='int' info='the bytes written (may be 0 because of buffering) or -1 in case of error'/>
@@ -14369,14 +14417,14 @@ actually an xmlCharEncoding'/>
<arg name='content' type='const xmlChar *' info='text string'/>
<arg name='len' type='int' info='length of the text string'/>
</function>
- <function name='xmlTextWriterWriteString' file='xmlwriter'>
+ <function name='xmlTextWriterWriteString' file='xmlwriter' module='xmlwriter'>
<cond>defined(LIBXML_WRITER_ENABLED)</cond>
<info>Write an xml text.</info>
<return type='int' info='the bytes written (may be 0 because of buffering) or -1 in case of error'/>
<arg name='writer' type='xmlTextWriterPtr' info='the xmlTextWriterPtr'/>
<arg name='content' type='const xmlChar *' info='text string'/>
</function>
- <function name='xmlTextWriterWriteVFormatAttribute' file='xmlwriter'>
+ <function name='xmlTextWriterWriteVFormatAttribute' file='xmlwriter' module='xmlwriter'>
<cond>defined(LIBXML_WRITER_ENABLED)</cond>
<info>Write a formatted xml attribute.</info>
<return type='int' info='the bytes written (may be 0 because of buffering) or -1 in case of error'/>
@@ -14385,7 +14433,7 @@ actually an xmlCharEncoding'/>
<arg name='format' type='const char *' info='format string (see printf)'/>
<arg name='argptr' type='va_list' info='pointer to the first member of the variable argument list.'/>
</function>
- <function name='xmlTextWriterWriteVFormatAttributeNS' file='xmlwriter'>
+ <function name='xmlTextWriterWriteVFormatAttributeNS' file='xmlwriter' module='xmlwriter'>
<cond>defined(LIBXML_WRITER_ENABLED)</cond>
<info>Write a formatted xml attribute.with namespace support</info>
<return type='int' info='the bytes written (may be 0 because of buffering) or -1 in case of error'/>
@@ -14396,7 +14444,7 @@ actually an xmlCharEncoding'/>
<arg name='format' type='const char *' info='format string (see printf)'/>
<arg name='argptr' type='va_list' info='pointer to the first member of the variable argument list.'/>
</function>
- <function name='xmlTextWriterWriteVFormatCDATA' file='xmlwriter'>
+ <function name='xmlTextWriterWriteVFormatCDATA' file='xmlwriter' module='xmlwriter'>
<cond>defined(LIBXML_WRITER_ENABLED)</cond>
<info>Write a formatted xml CDATA.</info>
<return type='int' info='the bytes written (may be 0 because of buffering) or -1 in case of error'/>
@@ -14404,7 +14452,7 @@ actually an xmlCharEncoding'/>
<arg name='format' type='const char *' info='format string (see printf)'/>
<arg name='argptr' type='va_list' info='pointer to the first member of the variable argument list.'/>
</function>
- <function name='xmlTextWriterWriteVFormatComment' file='xmlwriter'>
+ <function name='xmlTextWriterWriteVFormatComment' file='xmlwriter' module='xmlwriter'>
<cond>defined(LIBXML_WRITER_ENABLED)</cond>
<info>Write an xml comment.</info>
<return type='int' info='the bytes written (may be 0 because of buffering) or -1 in case of error'/>
@@ -14412,7 +14460,7 @@ actually an xmlCharEncoding'/>
<arg name='format' type='const char *' info='format string (see printf)'/>
<arg name='argptr' type='va_list' info='pointer to the first member of the variable argument list.'/>
</function>
- <function name='xmlTextWriterWriteVFormatDTD' file='xmlwriter'>
+ <function name='xmlTextWriterWriteVFormatDTD' file='xmlwriter' module='xmlwriter'>
<cond>defined(LIBXML_WRITER_ENABLED)</cond>
<info>Write a DTD with a formatted markup declarations part.</info>
<return type='int' info='the bytes written (may be 0 because of buffering) or -1 in case of error'/>
@@ -14423,7 +14471,7 @@ actually an xmlCharEncoding'/>
<arg name='format' type='const char *' info='format string (see printf)'/>
<arg name='argptr' type='va_list' info='pointer to the first member of the variable argument list.'/>
</function>
- <function name='xmlTextWriterWriteVFormatDTDAttlist' file='xmlwriter'>
+ <function name='xmlTextWriterWriteVFormatDTDAttlist' file='xmlwriter' module='xmlwriter'>
<cond>defined(LIBXML_WRITER_ENABLED)</cond>
<info>Write a formatted DTD ATTLIST.</info>
<return type='int' info='the bytes written (may be 0 because of buffering) or -1 in case of error'/>
@@ -14432,7 +14480,7 @@ actually an xmlCharEncoding'/>
<arg name='format' type='const char *' info='format string (see printf)'/>
<arg name='argptr' type='va_list' info='pointer to the first member of the variable argument list.'/>
</function>
- <function name='xmlTextWriterWriteVFormatDTDElement' file='xmlwriter'>
+ <function name='xmlTextWriterWriteVFormatDTDElement' file='xmlwriter' module='xmlwriter'>
<cond>defined(LIBXML_WRITER_ENABLED)</cond>
<info>Write a formatted DTD element.</info>
<return type='int' info='the bytes written (may be 0 because of buffering) or -1 in case of error'/>
@@ -14441,7 +14489,7 @@ actually an xmlCharEncoding'/>
<arg name='format' type='const char *' info='format string (see printf)'/>
<arg name='argptr' type='va_list' info='pointer to the first member of the variable argument list.'/>
</function>
- <function name='xmlTextWriterWriteVFormatDTDInternalEntity' file='xmlwriter'>
+ <function name='xmlTextWriterWriteVFormatDTDInternalEntity' file='xmlwriter' module='xmlwriter'>
<cond>defined(LIBXML_WRITER_ENABLED)</cond>
<info>Write a formatted DTD internal entity.</info>
<return type='int' info='the bytes written (may be 0 because of buffering) or -1 in case of error'/>
@@ -14451,7 +14499,7 @@ actually an xmlCharEncoding'/>
<arg name='format' type='const char *' info='format string (see printf)'/>
<arg name='argptr' type='va_list' info='pointer to the first member of the variable argument list.'/>
</function>
- <function name='xmlTextWriterWriteVFormatElement' file='xmlwriter'>
+ <function name='xmlTextWriterWriteVFormatElement' file='xmlwriter' module='xmlwriter'>
<cond>defined(LIBXML_WRITER_ENABLED)</cond>
<info>Write a formatted xml element.</info>
<return type='int' info='the bytes written (may be 0 because of buffering) or -1 in case of error'/>
@@ -14460,7 +14508,7 @@ actually an xmlCharEncoding'/>
<arg name='format' type='const char *' info='format string (see printf)'/>
<arg name='argptr' type='va_list' info='pointer to the first member of the variable argument list.'/>
</function>
- <function name='xmlTextWriterWriteVFormatElementNS' file='xmlwriter'>
+ <function name='xmlTextWriterWriteVFormatElementNS' file='xmlwriter' module='xmlwriter'>
<cond>defined(LIBXML_WRITER_ENABLED)</cond>
<info>Write a formatted xml element with namespace support.</info>
<return type='int' info='the bytes written (may be 0 because of buffering) or -1 in case of error'/>
@@ -14471,7 +14519,7 @@ actually an xmlCharEncoding'/>
<arg name='format' type='const char *' info='format string (see printf)'/>
<arg name='argptr' type='va_list' info='pointer to the first member of the variable argument list.'/>
</function>
- <function name='xmlTextWriterWriteVFormatPI' file='xmlwriter'>
+ <function name='xmlTextWriterWriteVFormatPI' file='xmlwriter' module='xmlwriter'>
<cond>defined(LIBXML_WRITER_ENABLED)</cond>
<info>Write a formatted xml PI.</info>
<return type='int' info='the bytes written (may be 0 because of buffering) or -1 in case of error'/>
@@ -14480,7 +14528,7 @@ actually an xmlCharEncoding'/>
<arg name='format' type='const char *' info='format string (see printf)'/>
<arg name='argptr' type='va_list' info='pointer to the first member of the variable argument list.'/>
</function>
- <function name='xmlTextWriterWriteVFormatRaw' file='xmlwriter'>
+ <function name='xmlTextWriterWriteVFormatRaw' file='xmlwriter' module='xmlwriter'>
<cond>defined(LIBXML_WRITER_ENABLED)</cond>
<info>Write a formatted raw xml text.</info>
<return type='int' info='the bytes written (may be 0 because of buffering) or -1 in case of error'/>
@@ -14488,7 +14536,7 @@ actually an xmlCharEncoding'/>
<arg name='format' type='const char *' info='format string (see printf)'/>
<arg name='argptr' type='va_list' info='pointer to the first member of the variable argument list.'/>
</function>
- <function name='xmlTextWriterWriteVFormatString' file='xmlwriter'>
+ <function name='xmlTextWriterWriteVFormatString' file='xmlwriter' module='xmlwriter'>
<cond>defined(LIBXML_WRITER_ENABLED)</cond>
<info>Write a formatted xml text.</info>
<return type='int' info='the bytes written (may be 0 because of buffering) or -1 in case of error'/>
@@ -14496,1176 +14544,1176 @@ actually an xmlCharEncoding'/>
<arg name='format' type='const char *' info='format string (see printf)'/>
<arg name='argptr' type='va_list' info='pointer to the first member of the variable argument list.'/>
</function>
- <function name='xmlThrDefBufferAllocScheme' file='globals'>
+ <function name='xmlThrDefBufferAllocScheme' file='globals' module='globals'>
<info></info>
<return type='xmlBufferAllocationScheme' info=''/>
<arg name='v' type='xmlBufferAllocationScheme' info=''/>
</function>
- <function name='xmlThrDefDefaultBufferSize' file='globals'>
+ <function name='xmlThrDefDefaultBufferSize' file='globals' module='globals'>
<info></info>
<return type='int' info=''/>
<arg name='v' type='int' info=''/>
</function>
- <function name='xmlThrDefDeregisterNodeDefault' file='globals'>
+ <function name='xmlThrDefDeregisterNodeDefault' file='globals' module='globals'>
<info></info>
<return type='xmlDeregisterNodeFunc' info=''/>
<arg name='func' type='xmlDeregisterNodeFunc' info=''/>
</function>
- <function name='xmlThrDefDoValidityCheckingDefaultValue' file='globals'>
+ <function name='xmlThrDefDoValidityCheckingDefaultValue' file='globals' module='globals'>
<info></info>
<return type='int' info=''/>
<arg name='v' type='int' info=''/>
</function>
- <function name='xmlThrDefGetWarningsDefaultValue' file='globals'>
+ <function name='xmlThrDefGetWarningsDefaultValue' file='globals' module='globals'>
<info></info>
<return type='int' info=''/>
<arg name='v' type='int' info=''/>
</function>
- <function name='xmlThrDefIndentTreeOutput' file='globals'>
+ <function name='xmlThrDefIndentTreeOutput' file='globals' module='globals'>
<info></info>
<return type='int' info=''/>
<arg name='v' type='int' info=''/>
</function>
- <function name='xmlThrDefKeepBlanksDefaultValue' file='globals'>
+ <function name='xmlThrDefKeepBlanksDefaultValue' file='globals' module='globals'>
<info></info>
<return type='int' info=''/>
<arg name='v' type='int' info=''/>
</function>
- <function name='xmlThrDefLineNumbersDefaultValue' file='globals'>
+ <function name='xmlThrDefLineNumbersDefaultValue' file='globals' module='globals'>
<info></info>
<return type='int' info=''/>
<arg name='v' type='int' info=''/>
</function>
- <function name='xmlThrDefLoadExtDtdDefaultValue' file='globals'>
+ <function name='xmlThrDefLoadExtDtdDefaultValue' file='globals' module='globals'>
<info></info>
<return type='int' info=''/>
<arg name='v' type='int' info=''/>
</function>
- <function name='xmlThrDefOutputBufferCreateFilenameDefault' file='globals'>
+ <function name='xmlThrDefOutputBufferCreateFilenameDefault' file='globals' module='globals'>
<info></info>
<return type='xmlOutputBufferCreateFilenameFunc' info=''/>
<arg name='func' type='xmlOutputBufferCreateFilenameFunc' info=''/>
</function>
- <function name='xmlThrDefParserDebugEntities' file='globals'>
+ <function name='xmlThrDefParserDebugEntities' file='globals' module='globals'>
<info></info>
<return type='int' info=''/>
<arg name='v' type='int' info=''/>
</function>
- <function name='xmlThrDefParserInputBufferCreateFilenameDefault' file='globals'>
+ <function name='xmlThrDefParserInputBufferCreateFilenameDefault' file='globals' module='globals'>
<info></info>
<return type='xmlParserInputBufferCreateFilenameFunc' info=''/>
<arg name='func' type='xmlParserInputBufferCreateFilenameFunc' info=''/>
</function>
- <function name='xmlThrDefPedanticParserDefaultValue' file='globals'>
+ <function name='xmlThrDefPedanticParserDefaultValue' file='globals' module='globals'>
<info></info>
<return type='int' info=''/>
<arg name='v' type='int' info=''/>
</function>
- <function name='xmlThrDefRegisterNodeDefault' file='globals'>
+ <function name='xmlThrDefRegisterNodeDefault' file='globals' module='globals'>
<info></info>
<return type='xmlRegisterNodeFunc' info=''/>
<arg name='func' type='xmlRegisterNodeFunc' info=''/>
</function>
- <function name='xmlThrDefSaveNoEmptyTags' file='globals'>
+ <function name='xmlThrDefSaveNoEmptyTags' file='globals' module='globals'>
<info></info>
<return type='int' info=''/>
<arg name='v' type='int' info=''/>
</function>
- <function name='xmlThrDefSetGenericErrorFunc' file='globals'>
+ <function name='xmlThrDefSetGenericErrorFunc' file='globals' module='globals'>
<info></info>
<return type='void'/>
<arg name='ctx' type='void *' info=''/>
<arg name='handler' type='xmlGenericErrorFunc' info=''/>
</function>
- <function name='xmlThrDefSetStructuredErrorFunc' file='globals'>
+ <function name='xmlThrDefSetStructuredErrorFunc' file='globals' module='globals'>
<info></info>
<return type='void'/>
<arg name='ctx' type='void *' info=''/>
<arg name='handler' type='xmlStructuredErrorFunc' info=''/>
</function>
- <function name='xmlThrDefSubstituteEntitiesDefaultValue' file='globals'>
+ <function name='xmlThrDefSubstituteEntitiesDefaultValue' file='globals' module='globals'>
<info></info>
<return type='int' info=''/>
<arg name='v' type='int' info=''/>
</function>
- <function name='xmlThrDefTreeIndentString' file='globals'>
+ <function name='xmlThrDefTreeIndentString' file='globals' module='globals'>
<info></info>
<return type='const char *' info=''/>
<arg name='v' type='const char *' info=''/>
</function>
- <function name='xmlUCSIsAegeanNumbers' file='xmlunicode'>
+ <function name='xmlUCSIsAegeanNumbers' file='xmlunicode' module='xmlunicode'>
<cond>defined(LIBXML_UNICODE_ENABLED)</cond>
<info>Check whether the character is part of AegeanNumbers UCS Block</info>
<return type='int' info='1 if true 0 otherwise'/>
<arg name='code' type='int' info='UCS code point'/>
</function>
- <function name='xmlUCSIsAlphabeticPresentationForms' file='xmlunicode'>
+ <function name='xmlUCSIsAlphabeticPresentationForms' file='xmlunicode' module='xmlunicode'>
<cond>defined(LIBXML_UNICODE_ENABLED)</cond>
<info>Check whether the character is part of AlphabeticPresentationForms UCS Block</info>
<return type='int' info='1 if true 0 otherwise'/>
<arg name='code' type='int' info='UCS code point'/>
</function>
- <function name='xmlUCSIsArabic' file='xmlunicode'>
+ <function name='xmlUCSIsArabic' file='xmlunicode' module='xmlunicode'>
<cond>defined(LIBXML_UNICODE_ENABLED)</cond>
<info>Check whether the character is part of Arabic UCS Block</info>
<return type='int' info='1 if true 0 otherwise'/>
<arg name='code' type='int' info='UCS code point'/>
</function>
- <function name='xmlUCSIsArabicPresentationFormsA' file='xmlunicode'>
+ <function name='xmlUCSIsArabicPresentationFormsA' file='xmlunicode' module='xmlunicode'>
<cond>defined(LIBXML_UNICODE_ENABLED)</cond>
<info>Check whether the character is part of ArabicPresentationForms-A UCS Block</info>
<return type='int' info='1 if true 0 otherwise'/>
<arg name='code' type='int' info='UCS code point'/>
</function>
- <function name='xmlUCSIsArabicPresentationFormsB' file='xmlunicode'>
+ <function name='xmlUCSIsArabicPresentationFormsB' file='xmlunicode' module='xmlunicode'>
<cond>defined(LIBXML_UNICODE_ENABLED)</cond>
<info>Check whether the character is part of ArabicPresentationForms-B UCS Block</info>
<return type='int' info='1 if true 0 otherwise'/>
<arg name='code' type='int' info='UCS code point'/>
</function>
- <function name='xmlUCSIsArmenian' file='xmlunicode'>
+ <function name='xmlUCSIsArmenian' file='xmlunicode' module='xmlunicode'>
<cond>defined(LIBXML_UNICODE_ENABLED)</cond>
<info>Check whether the character is part of Armenian UCS Block</info>
<return type='int' info='1 if true 0 otherwise'/>
<arg name='code' type='int' info='UCS code point'/>
</function>
- <function name='xmlUCSIsArrows' file='xmlunicode'>
+ <function name='xmlUCSIsArrows' file='xmlunicode' module='xmlunicode'>
<cond>defined(LIBXML_UNICODE_ENABLED)</cond>
<info>Check whether the character is part of Arrows UCS Block</info>
<return type='int' info='1 if true 0 otherwise'/>
<arg name='code' type='int' info='UCS code point'/>
</function>
- <function name='xmlUCSIsBasicLatin' file='xmlunicode'>
+ <function name='xmlUCSIsBasicLatin' file='xmlunicode' module='xmlunicode'>
<cond>defined(LIBXML_UNICODE_ENABLED)</cond>
<info>Check whether the character is part of BasicLatin UCS Block</info>
<return type='int' info='1 if true 0 otherwise'/>
<arg name='code' type='int' info='UCS code point'/>
</function>
- <function name='xmlUCSIsBengali' file='xmlunicode'>
+ <function name='xmlUCSIsBengali' file='xmlunicode' module='xmlunicode'>
<cond>defined(LIBXML_UNICODE_ENABLED)</cond>
<info>Check whether the character is part of Bengali UCS Block</info>
<return type='int' info='1 if true 0 otherwise'/>
<arg name='code' type='int' info='UCS code point'/>
</function>
- <function name='xmlUCSIsBlock' file='xmlunicode'>
+ <function name='xmlUCSIsBlock' file='xmlunicode' module='xmlunicode'>
<cond>defined(LIBXML_UNICODE_ENABLED)</cond>
<info>Check whether the character is part of the UCS Block</info>
<return type='int' info='1 if true, 0 if false and -1 on unknown block'/>
<arg name='code' type='int' info='UCS code point'/>
<arg name='block' type='const char *' info='UCS block name'/>
</function>
- <function name='xmlUCSIsBlockElements' file='xmlunicode'>
+ <function name='xmlUCSIsBlockElements' file='xmlunicode' module='xmlunicode'>
<cond>defined(LIBXML_UNICODE_ENABLED)</cond>
<info>Check whether the character is part of BlockElements UCS Block</info>
<return type='int' info='1 if true 0 otherwise'/>
<arg name='code' type='int' info='UCS code point'/>
</function>
- <function name='xmlUCSIsBopomofo' file='xmlunicode'>
+ <function name='xmlUCSIsBopomofo' file='xmlunicode' module='xmlunicode'>
<cond>defined(LIBXML_UNICODE_ENABLED)</cond>
<info>Check whether the character is part of Bopomofo UCS Block</info>
<return type='int' info='1 if true 0 otherwise'/>
<arg name='code' type='int' info='UCS code point'/>
</function>
- <function name='xmlUCSIsBopomofoExtended' file='xmlunicode'>
+ <function name='xmlUCSIsBopomofoExtended' file='xmlunicode' module='xmlunicode'>
<cond>defined(LIBXML_UNICODE_ENABLED)</cond>
<info>Check whether the character is part of BopomofoExtended UCS Block</info>
<return type='int' info='1 if true 0 otherwise'/>
<arg name='code' type='int' info='UCS code point'/>
</function>
- <function name='xmlUCSIsBoxDrawing' file='xmlunicode'>
+ <function name='xmlUCSIsBoxDrawing' file='xmlunicode' module='xmlunicode'>
<cond>defined(LIBXML_UNICODE_ENABLED)</cond>
<info>Check whether the character is part of BoxDrawing UCS Block</info>
<return type='int' info='1 if true 0 otherwise'/>
<arg name='code' type='int' info='UCS code point'/>
</function>
- <function name='xmlUCSIsBraillePatterns' file='xmlunicode'>
+ <function name='xmlUCSIsBraillePatterns' file='xmlunicode' module='xmlunicode'>
<cond>defined(LIBXML_UNICODE_ENABLED)</cond>
<info>Check whether the character is part of BraillePatterns UCS Block</info>
<return type='int' info='1 if true 0 otherwise'/>
<arg name='code' type='int' info='UCS code point'/>
</function>
- <function name='xmlUCSIsBuhid' file='xmlunicode'>
+ <function name='xmlUCSIsBuhid' file='xmlunicode' module='xmlunicode'>
<cond>defined(LIBXML_UNICODE_ENABLED)</cond>
<info>Check whether the character is part of Buhid UCS Block</info>
<return type='int' info='1 if true 0 otherwise'/>
<arg name='code' type='int' info='UCS code point'/>
</function>
- <function name='xmlUCSIsByzantineMusicalSymbols' file='xmlunicode'>
+ <function name='xmlUCSIsByzantineMusicalSymbols' file='xmlunicode' module='xmlunicode'>
<cond>defined(LIBXML_UNICODE_ENABLED)</cond>
<info>Check whether the character is part of ByzantineMusicalSymbols UCS Block</info>
<return type='int' info='1 if true 0 otherwise'/>
<arg name='code' type='int' info='UCS code point'/>
</function>
- <function name='xmlUCSIsCJKCompatibility' file='xmlunicode'>
+ <function name='xmlUCSIsCJKCompatibility' file='xmlunicode' module='xmlunicode'>
<cond>defined(LIBXML_UNICODE_ENABLED)</cond>
<info>Check whether the character is part of CJKCompatibility UCS Block</info>
<return type='int' info='1 if true 0 otherwise'/>
<arg name='code' type='int' info='UCS code point'/>
</function>
- <function name='xmlUCSIsCJKCompatibilityForms' file='xmlunicode'>
+ <function name='xmlUCSIsCJKCompatibilityForms' file='xmlunicode' module='xmlunicode'>
<cond>defined(LIBXML_UNICODE_ENABLED)</cond>
<info>Check whether the character is part of CJKCompatibilityForms UCS Block</info>
<return type='int' info='1 if true 0 otherwise'/>
<arg name='code' type='int' info='UCS code point'/>
</function>
- <function name='xmlUCSIsCJKCompatibilityIdeographs' file='xmlunicode'>
+ <function name='xmlUCSIsCJKCompatibilityIdeographs' file='xmlunicode' module='xmlunicode'>
<cond>defined(LIBXML_UNICODE_ENABLED)</cond>
<info>Check whether the character is part of CJKCompatibilityIdeographs UCS Block</info>
<return type='int' info='1 if true 0 otherwise'/>
<arg name='code' type='int' info='UCS code point'/>
</function>
- <function name='xmlUCSIsCJKCompatibilityIdeographsSupplement' file='xmlunicode'>
+ <function name='xmlUCSIsCJKCompatibilityIdeographsSupplement' file='xmlunicode' module='xmlunicode'>
<cond>defined(LIBXML_UNICODE_ENABLED)</cond>
<info>Check whether the character is part of CJKCompatibilityIdeographsSupplement UCS Block</info>
<return type='int' info='1 if true 0 otherwise'/>
<arg name='code' type='int' info='UCS code point'/>
</function>
- <function name='xmlUCSIsCJKRadicalsSupplement' file='xmlunicode'>
+ <function name='xmlUCSIsCJKRadicalsSupplement' file='xmlunicode' module='xmlunicode'>
<cond>defined(LIBXML_UNICODE_ENABLED)</cond>
<info>Check whether the character is part of CJKRadicalsSupplement UCS Block</info>
<return type='int' info='1 if true 0 otherwise'/>
<arg name='code' type='int' info='UCS code point'/>
</function>
- <function name='xmlUCSIsCJKSymbolsandPunctuation' file='xmlunicode'>
+ <function name='xmlUCSIsCJKSymbolsandPunctuation' file='xmlunicode' module='xmlunicode'>
<cond>defined(LIBXML_UNICODE_ENABLED)</cond>
<info>Check whether the character is part of CJKSymbolsandPunctuation UCS Block</info>
<return type='int' info='1 if true 0 otherwise'/>
<arg name='code' type='int' info='UCS code point'/>
</function>
- <function name='xmlUCSIsCJKUnifiedIdeographs' file='xmlunicode'>
+ <function name='xmlUCSIsCJKUnifiedIdeographs' file='xmlunicode' module='xmlunicode'>
<cond>defined(LIBXML_UNICODE_ENABLED)</cond>
<info>Check whether the character is part of CJKUnifiedIdeographs UCS Block</info>
<return type='int' info='1 if true 0 otherwise'/>
<arg name='code' type='int' info='UCS code point'/>
</function>
- <function name='xmlUCSIsCJKUnifiedIdeographsExtensionA' file='xmlunicode'>
+ <function name='xmlUCSIsCJKUnifiedIdeographsExtensionA' file='xmlunicode' module='xmlunicode'>
<cond>defined(LIBXML_UNICODE_ENABLED)</cond>
<info>Check whether the character is part of CJKUnifiedIdeographsExtensionA UCS Block</info>
<return type='int' info='1 if true 0 otherwise'/>
<arg name='code' type='int' info='UCS code point'/>
</function>
- <function name='xmlUCSIsCJKUnifiedIdeographsExtensionB' file='xmlunicode'>
+ <function name='xmlUCSIsCJKUnifiedIdeographsExtensionB' file='xmlunicode' module='xmlunicode'>
<cond>defined(LIBXML_UNICODE_ENABLED)</cond>
<info>Check whether the character is part of CJKUnifiedIdeographsExtensionB UCS Block</info>
<return type='int' info='1 if true 0 otherwise'/>
<arg name='code' type='int' info='UCS code point'/>
</function>
- <function name='xmlUCSIsCat' file='xmlunicode'>
+ <function name='xmlUCSIsCat' file='xmlunicode' module='xmlunicode'>
<cond>defined(LIBXML_UNICODE_ENABLED)</cond>
<info>Check whether the character is part of the UCS Category</info>
<return type='int' info='1 if true, 0 if false and -1 on unknown category'/>
<arg name='code' type='int' info='UCS code point'/>
<arg name='cat' type='const char *' info='UCS Category name'/>
</function>
- <function name='xmlUCSIsCatC' file='xmlunicode'>
+ <function name='xmlUCSIsCatC' file='xmlunicode' module='xmlunicode'>
<cond>defined(LIBXML_UNICODE_ENABLED)</cond>
<info>Check whether the character is part of C UCS Category</info>
<return type='int' info='1 if true 0 otherwise'/>
<arg name='code' type='int' info='UCS code point'/>
</function>
- <function name='xmlUCSIsCatCc' file='xmlunicode'>
+ <function name='xmlUCSIsCatCc' file='xmlunicode' module='xmlunicode'>
<cond>defined(LIBXML_UNICODE_ENABLED)</cond>
<info>Check whether the character is part of Cc UCS Category</info>
<return type='int' info='1 if true 0 otherwise'/>
<arg name='code' type='int' info='UCS code point'/>
</function>
- <function name='xmlUCSIsCatCf' file='xmlunicode'>
+ <function name='xmlUCSIsCatCf' file='xmlunicode' module='xmlunicode'>
<cond>defined(LIBXML_UNICODE_ENABLED)</cond>
<info>Check whether the character is part of Cf UCS Category</info>
<return type='int' info='1 if true 0 otherwise'/>
<arg name='code' type='int' info='UCS code point'/>
</function>
- <function name='xmlUCSIsCatCo' file='xmlunicode'>
+ <function name='xmlUCSIsCatCo' file='xmlunicode' module='xmlunicode'>
<cond>defined(LIBXML_UNICODE_ENABLED)</cond>
<info>Check whether the character is part of Co UCS Category</info>
<return type='int' info='1 if true 0 otherwise'/>
<arg name='code' type='int' info='UCS code point'/>
</function>
- <function name='xmlUCSIsCatCs' file='xmlunicode'>
+ <function name='xmlUCSIsCatCs' file='xmlunicode' module='xmlunicode'>
<cond>defined(LIBXML_UNICODE_ENABLED)</cond>
<info>Check whether the character is part of Cs UCS Category</info>
<return type='int' info='1 if true 0 otherwise'/>
<arg name='code' type='int' info='UCS code point'/>
</function>
- <function name='xmlUCSIsCatL' file='xmlunicode'>
+ <function name='xmlUCSIsCatL' file='xmlunicode' module='xmlunicode'>
<cond>defined(LIBXML_UNICODE_ENABLED)</cond>
<info>Check whether the character is part of L UCS Category</info>
<return type='int' info='1 if true 0 otherwise'/>
<arg name='code' type='int' info='UCS code point'/>
</function>
- <function name='xmlUCSIsCatLl' file='xmlunicode'>
+ <function name='xmlUCSIsCatLl' file='xmlunicode' module='xmlunicode'>
<cond>defined(LIBXML_UNICODE_ENABLED)</cond>
<info>Check whether the character is part of Ll UCS Category</info>
<return type='int' info='1 if true 0 otherwise'/>
<arg name='code' type='int' info='UCS code point'/>
</function>
- <function name='xmlUCSIsCatLm' file='xmlunicode'>
+ <function name='xmlUCSIsCatLm' file='xmlunicode' module='xmlunicode'>
<cond>defined(LIBXML_UNICODE_ENABLED)</cond>
<info>Check whether the character is part of Lm UCS Category</info>
<return type='int' info='1 if true 0 otherwise'/>
<arg name='code' type='int' info='UCS code point'/>
</function>
- <function name='xmlUCSIsCatLo' file='xmlunicode'>
+ <function name='xmlUCSIsCatLo' file='xmlunicode' module='xmlunicode'>
<cond>defined(LIBXML_UNICODE_ENABLED)</cond>
<info>Check whether the character is part of Lo UCS Category</info>
<return type='int' info='1 if true 0 otherwise'/>
<arg name='code' type='int' info='UCS code point'/>
</function>
- <function name='xmlUCSIsCatLt' file='xmlunicode'>
+ <function name='xmlUCSIsCatLt' file='xmlunicode' module='xmlunicode'>
<cond>defined(LIBXML_UNICODE_ENABLED)</cond>
<info>Check whether the character is part of Lt UCS Category</info>
<return type='int' info='1 if true 0 otherwise'/>
<arg name='code' type='int' info='UCS code point'/>
</function>
- <function name='xmlUCSIsCatLu' file='xmlunicode'>
+ <function name='xmlUCSIsCatLu' file='xmlunicode' module='xmlunicode'>
<cond>defined(LIBXML_UNICODE_ENABLED)</cond>
<info>Check whether the character is part of Lu UCS Category</info>
<return type='int' info='1 if true 0 otherwise'/>
<arg name='code' type='int' info='UCS code point'/>
</function>
- <function name='xmlUCSIsCatM' file='xmlunicode'>
+ <function name='xmlUCSIsCatM' file='xmlunicode' module='xmlunicode'>
<cond>defined(LIBXML_UNICODE_ENABLED)</cond>
<info>Check whether the character is part of M UCS Category</info>
<return type='int' info='1 if true 0 otherwise'/>
<arg name='code' type='int' info='UCS code point'/>
</function>
- <function name='xmlUCSIsCatMc' file='xmlunicode'>
+ <function name='xmlUCSIsCatMc' file='xmlunicode' module='xmlunicode'>
<cond>defined(LIBXML_UNICODE_ENABLED)</cond>
<info>Check whether the character is part of Mc UCS Category</info>
<return type='int' info='1 if true 0 otherwise'/>
<arg name='code' type='int' info='UCS code point'/>
</function>
- <function name='xmlUCSIsCatMe' file='xmlunicode'>
+ <function name='xmlUCSIsCatMe' file='xmlunicode' module='xmlunicode'>
<cond>defined(LIBXML_UNICODE_ENABLED)</cond>
<info>Check whether the character is part of Me UCS Category</info>
<return type='int' info='1 if true 0 otherwise'/>
<arg name='code' type='int' info='UCS code point'/>
</function>
- <function name='xmlUCSIsCatMn' file='xmlunicode'>
+ <function name='xmlUCSIsCatMn' file='xmlunicode' module='xmlunicode'>
<cond>defined(LIBXML_UNICODE_ENABLED)</cond>
<info>Check whether the character is part of Mn UCS Category</info>
<return type='int' info='1 if true 0 otherwise'/>
<arg name='code' type='int' info='UCS code point'/>
</function>
- <function name='xmlUCSIsCatN' file='xmlunicode'>
+ <function name='xmlUCSIsCatN' file='xmlunicode' module='xmlunicode'>
<cond>defined(LIBXML_UNICODE_ENABLED)</cond>
<info>Check whether the character is part of N UCS Category</info>
<return type='int' info='1 if true 0 otherwise'/>
<arg name='code' type='int' info='UCS code point'/>
</function>
- <function name='xmlUCSIsCatNd' file='xmlunicode'>
+ <function name='xmlUCSIsCatNd' file='xmlunicode' module='xmlunicode'>
<cond>defined(LIBXML_UNICODE_ENABLED)</cond>
<info>Check whether the character is part of Nd UCS Category</info>
<return type='int' info='1 if true 0 otherwise'/>
<arg name='code' type='int' info='UCS code point'/>
</function>
- <function name='xmlUCSIsCatNl' file='xmlunicode'>
+ <function name='xmlUCSIsCatNl' file='xmlunicode' module='xmlunicode'>
<cond>defined(LIBXML_UNICODE_ENABLED)</cond>
<info>Check whether the character is part of Nl UCS Category</info>
<return type='int' info='1 if true 0 otherwise'/>
<arg name='code' type='int' info='UCS code point'/>
</function>
- <function name='xmlUCSIsCatNo' file='xmlunicode'>
+ <function name='xmlUCSIsCatNo' file='xmlunicode' module='xmlunicode'>
<cond>defined(LIBXML_UNICODE_ENABLED)</cond>
<info>Check whether the character is part of No UCS Category</info>
<return type='int' info='1 if true 0 otherwise'/>
<arg name='code' type='int' info='UCS code point'/>
</function>
- <function name='xmlUCSIsCatP' file='xmlunicode'>
+ <function name='xmlUCSIsCatP' file='xmlunicode' module='xmlunicode'>
<cond>defined(LIBXML_UNICODE_ENABLED)</cond>
<info>Check whether the character is part of P UCS Category</info>
<return type='int' info='1 if true 0 otherwise'/>
<arg name='code' type='int' info='UCS code point'/>
</function>
- <function name='xmlUCSIsCatPc' file='xmlunicode'>
+ <function name='xmlUCSIsCatPc' file='xmlunicode' module='xmlunicode'>
<cond>defined(LIBXML_UNICODE_ENABLED)</cond>
<info>Check whether the character is part of Pc UCS Category</info>
<return type='int' info='1 if true 0 otherwise'/>
<arg name='code' type='int' info='UCS code point'/>
</function>
- <function name='xmlUCSIsCatPd' file='xmlunicode'>
+ <function name='xmlUCSIsCatPd' file='xmlunicode' module='xmlunicode'>
<cond>defined(LIBXML_UNICODE_ENABLED)</cond>
<info>Check whether the character is part of Pd UCS Category</info>
<return type='int' info='1 if true 0 otherwise'/>
<arg name='code' type='int' info='UCS code point'/>
</function>
- <function name='xmlUCSIsCatPe' file='xmlunicode'>
+ <function name='xmlUCSIsCatPe' file='xmlunicode' module='xmlunicode'>
<cond>defined(LIBXML_UNICODE_ENABLED)</cond>
<info>Check whether the character is part of Pe UCS Category</info>
<return type='int' info='1 if true 0 otherwise'/>
<arg name='code' type='int' info='UCS code point'/>
</function>
- <function name='xmlUCSIsCatPf' file='xmlunicode'>
+ <function name='xmlUCSIsCatPf' file='xmlunicode' module='xmlunicode'>
<cond>defined(LIBXML_UNICODE_ENABLED)</cond>
<info>Check whether the character is part of Pf UCS Category</info>
<return type='int' info='1 if true 0 otherwise'/>
<arg name='code' type='int' info='UCS code point'/>
</function>
- <function name='xmlUCSIsCatPi' file='xmlunicode'>
+ <function name='xmlUCSIsCatPi' file='xmlunicode' module='xmlunicode'>
<cond>defined(LIBXML_UNICODE_ENABLED)</cond>
<info>Check whether the character is part of Pi UCS Category</info>
<return type='int' info='1 if true 0 otherwise'/>
<arg name='code' type='int' info='UCS code point'/>
</function>
- <function name='xmlUCSIsCatPo' file='xmlunicode'>
+ <function name='xmlUCSIsCatPo' file='xmlunicode' module='xmlunicode'>
<cond>defined(LIBXML_UNICODE_ENABLED)</cond>
<info>Check whether the character is part of Po UCS Category</info>
<return type='int' info='1 if true 0 otherwise'/>
<arg name='code' type='int' info='UCS code point'/>
</function>
- <function name='xmlUCSIsCatPs' file='xmlunicode'>
+ <function name='xmlUCSIsCatPs' file='xmlunicode' module='xmlunicode'>
<cond>defined(LIBXML_UNICODE_ENABLED)</cond>
<info>Check whether the character is part of Ps UCS Category</info>
<return type='int' info='1 if true 0 otherwise'/>
<arg name='code' type='int' info='UCS code point'/>
</function>
- <function name='xmlUCSIsCatS' file='xmlunicode'>
+ <function name='xmlUCSIsCatS' file='xmlunicode' module='xmlunicode'>
<cond>defined(LIBXML_UNICODE_ENABLED)</cond>
<info>Check whether the character is part of S UCS Category</info>
<return type='int' info='1 if true 0 otherwise'/>
<arg name='code' type='int' info='UCS code point'/>
</function>
- <function name='xmlUCSIsCatSc' file='xmlunicode'>
+ <function name='xmlUCSIsCatSc' file='xmlunicode' module='xmlunicode'>
<cond>defined(LIBXML_UNICODE_ENABLED)</cond>
<info>Check whether the character is part of Sc UCS Category</info>
<return type='int' info='1 if true 0 otherwise'/>
<arg name='code' type='int' info='UCS code point'/>
</function>
- <function name='xmlUCSIsCatSk' file='xmlunicode'>
+ <function name='xmlUCSIsCatSk' file='xmlunicode' module='xmlunicode'>
<cond>defined(LIBXML_UNICODE_ENABLED)</cond>
<info>Check whether the character is part of Sk UCS Category</info>
<return type='int' info='1 if true 0 otherwise'/>
<arg name='code' type='int' info='UCS code point'/>
</function>
- <function name='xmlUCSIsCatSm' file='xmlunicode'>
+ <function name='xmlUCSIsCatSm' file='xmlunicode' module='xmlunicode'>
<cond>defined(LIBXML_UNICODE_ENABLED)</cond>
<info>Check whether the character is part of Sm UCS Category</info>
<return type='int' info='1 if true 0 otherwise'/>
<arg name='code' type='int' info='UCS code point'/>
</function>
- <function name='xmlUCSIsCatSo' file='xmlunicode'>
+ <function name='xmlUCSIsCatSo' file='xmlunicode' module='xmlunicode'>
<cond>defined(LIBXML_UNICODE_ENABLED)</cond>
<info>Check whether the character is part of So UCS Category</info>
<return type='int' info='1 if true 0 otherwise'/>
<arg name='code' type='int' info='UCS code point'/>
</function>
- <function name='xmlUCSIsCatZ' file='xmlunicode'>
+ <function name='xmlUCSIsCatZ' file='xmlunicode' module='xmlunicode'>
<cond>defined(LIBXML_UNICODE_ENABLED)</cond>
<info>Check whether the character is part of Z UCS Category</info>
<return type='int' info='1 if true 0 otherwise'/>
<arg name='code' type='int' info='UCS code point'/>
</function>
- <function name='xmlUCSIsCatZl' file='xmlunicode'>
+ <function name='xmlUCSIsCatZl' file='xmlunicode' module='xmlunicode'>
<cond>defined(LIBXML_UNICODE_ENABLED)</cond>
<info>Check whether the character is part of Zl UCS Category</info>
<return type='int' info='1 if true 0 otherwise'/>
<arg name='code' type='int' info='UCS code point'/>
</function>
- <function name='xmlUCSIsCatZp' file='xmlunicode'>
+ <function name='xmlUCSIsCatZp' file='xmlunicode' module='xmlunicode'>
<cond>defined(LIBXML_UNICODE_ENABLED)</cond>
<info>Check whether the character is part of Zp UCS Category</info>
<return type='int' info='1 if true 0 otherwise'/>
<arg name='code' type='int' info='UCS code point'/>
</function>
- <function name='xmlUCSIsCatZs' file='xmlunicode'>
+ <function name='xmlUCSIsCatZs' file='xmlunicode' module='xmlunicode'>
<cond>defined(LIBXML_UNICODE_ENABLED)</cond>
<info>Check whether the character is part of Zs UCS Category</info>
<return type='int' info='1 if true 0 otherwise'/>
<arg name='code' type='int' info='UCS code point'/>
</function>
- <function name='xmlUCSIsCherokee' file='xmlunicode'>
+ <function name='xmlUCSIsCherokee' file='xmlunicode' module='xmlunicode'>
<cond>defined(LIBXML_UNICODE_ENABLED)</cond>
<info>Check whether the character is part of Cherokee UCS Block</info>
<return type='int' info='1 if true 0 otherwise'/>
<arg name='code' type='int' info='UCS code point'/>
</function>
- <function name='xmlUCSIsCombiningDiacriticalMarks' file='xmlunicode'>
+ <function name='xmlUCSIsCombiningDiacriticalMarks' file='xmlunicode' module='xmlunicode'>
<cond>defined(LIBXML_UNICODE_ENABLED)</cond>
<info>Check whether the character is part of CombiningDiacriticalMarks UCS Block</info>
<return type='int' info='1 if true 0 otherwise'/>
<arg name='code' type='int' info='UCS code point'/>
</function>
- <function name='xmlUCSIsCombiningDiacriticalMarksforSymbols' file='xmlunicode'>
+ <function name='xmlUCSIsCombiningDiacriticalMarksforSymbols' file='xmlunicode' module='xmlunicode'>
<cond>defined(LIBXML_UNICODE_ENABLED)</cond>
<info>Check whether the character is part of CombiningDiacriticalMarksforSymbols UCS Block</info>
<return type='int' info='1 if true 0 otherwise'/>
<arg name='code' type='int' info='UCS code point'/>
</function>
- <function name='xmlUCSIsCombiningHalfMarks' file='xmlunicode'>
+ <function name='xmlUCSIsCombiningHalfMarks' file='xmlunicode' module='xmlunicode'>
<cond>defined(LIBXML_UNICODE_ENABLED)</cond>
<info>Check whether the character is part of CombiningHalfMarks UCS Block</info>
<return type='int' info='1 if true 0 otherwise'/>
<arg name='code' type='int' info='UCS code point'/>
</function>
- <function name='xmlUCSIsCombiningMarksforSymbols' file='xmlunicode'>
+ <function name='xmlUCSIsCombiningMarksforSymbols' file='xmlunicode' module='xmlunicode'>
<cond>defined(LIBXML_UNICODE_ENABLED)</cond>
<info>Check whether the character is part of CombiningMarksforSymbols UCS Block</info>
<return type='int' info='1 if true 0 otherwise'/>
<arg name='code' type='int' info='UCS code point'/>
</function>
- <function name='xmlUCSIsControlPictures' file='xmlunicode'>
+ <function name='xmlUCSIsControlPictures' file='xmlunicode' module='xmlunicode'>
<cond>defined(LIBXML_UNICODE_ENABLED)</cond>
<info>Check whether the character is part of ControlPictures UCS Block</info>
<return type='int' info='1 if true 0 otherwise'/>
<arg name='code' type='int' info='UCS code point'/>
</function>
- <function name='xmlUCSIsCurrencySymbols' file='xmlunicode'>
+ <function name='xmlUCSIsCurrencySymbols' file='xmlunicode' module='xmlunicode'>
<cond>defined(LIBXML_UNICODE_ENABLED)</cond>
<info>Check whether the character is part of CurrencySymbols UCS Block</info>
<return type='int' info='1 if true 0 otherwise'/>
<arg name='code' type='int' info='UCS code point'/>
</function>
- <function name='xmlUCSIsCypriotSyllabary' file='xmlunicode'>
+ <function name='xmlUCSIsCypriotSyllabary' file='xmlunicode' module='xmlunicode'>
<cond>defined(LIBXML_UNICODE_ENABLED)</cond>
<info>Check whether the character is part of CypriotSyllabary UCS Block</info>
<return type='int' info='1 if true 0 otherwise'/>
<arg name='code' type='int' info='UCS code point'/>
</function>
- <function name='xmlUCSIsCyrillic' file='xmlunicode'>
+ <function name='xmlUCSIsCyrillic' file='xmlunicode' module='xmlunicode'>
<cond>defined(LIBXML_UNICODE_ENABLED)</cond>
<info>Check whether the character is part of Cyrillic UCS Block</info>
<return type='int' info='1 if true 0 otherwise'/>
<arg name='code' type='int' info='UCS code point'/>
</function>
- <function name='xmlUCSIsCyrillicSupplement' file='xmlunicode'>
+ <function name='xmlUCSIsCyrillicSupplement' file='xmlunicode' module='xmlunicode'>
<cond>defined(LIBXML_UNICODE_ENABLED)</cond>
<info>Check whether the character is part of CyrillicSupplement UCS Block</info>
<return type='int' info='1 if true 0 otherwise'/>
<arg name='code' type='int' info='UCS code point'/>
</function>
- <function name='xmlUCSIsDeseret' file='xmlunicode'>
+ <function name='xmlUCSIsDeseret' file='xmlunicode' module='xmlunicode'>
<cond>defined(LIBXML_UNICODE_ENABLED)</cond>
<info>Check whether the character is part of Deseret UCS Block</info>
<return type='int' info='1 if true 0 otherwise'/>
<arg name='code' type='int' info='UCS code point'/>
</function>
- <function name='xmlUCSIsDevanagari' file='xmlunicode'>
+ <function name='xmlUCSIsDevanagari' file='xmlunicode' module='xmlunicode'>
<cond>defined(LIBXML_UNICODE_ENABLED)</cond>
<info>Check whether the character is part of Devanagari UCS Block</info>
<return type='int' info='1 if true 0 otherwise'/>
<arg name='code' type='int' info='UCS code point'/>
</function>
- <function name='xmlUCSIsDingbats' file='xmlunicode'>
+ <function name='xmlUCSIsDingbats' file='xmlunicode' module='xmlunicode'>
<cond>defined(LIBXML_UNICODE_ENABLED)</cond>
<info>Check whether the character is part of Dingbats UCS Block</info>
<return type='int' info='1 if true 0 otherwise'/>
<arg name='code' type='int' info='UCS code point'/>
</function>
- <function name='xmlUCSIsEnclosedAlphanumerics' file='xmlunicode'>
+ <function name='xmlUCSIsEnclosedAlphanumerics' file='xmlunicode' module='xmlunicode'>
<cond>defined(LIBXML_UNICODE_ENABLED)</cond>
<info>Check whether the character is part of EnclosedAlphanumerics UCS Block</info>
<return type='int' info='1 if true 0 otherwise'/>
<arg name='code' type='int' info='UCS code point'/>
</function>
- <function name='xmlUCSIsEnclosedCJKLettersandMonths' file='xmlunicode'>
+ <function name='xmlUCSIsEnclosedCJKLettersandMonths' file='xmlunicode' module='xmlunicode'>
<cond>defined(LIBXML_UNICODE_ENABLED)</cond>
<info>Check whether the character is part of EnclosedCJKLettersandMonths UCS Block</info>
<return type='int' info='1 if true 0 otherwise'/>
<arg name='code' type='int' info='UCS code point'/>
</function>
- <function name='xmlUCSIsEthiopic' file='xmlunicode'>
+ <function name='xmlUCSIsEthiopic' file='xmlunicode' module='xmlunicode'>
<cond>defined(LIBXML_UNICODE_ENABLED)</cond>
<info>Check whether the character is part of Ethiopic UCS Block</info>
<return type='int' info='1 if true 0 otherwise'/>
<arg name='code' type='int' info='UCS code point'/>
</function>
- <function name='xmlUCSIsGeneralPunctuation' file='xmlunicode'>
+ <function name='xmlUCSIsGeneralPunctuation' file='xmlunicode' module='xmlunicode'>
<cond>defined(LIBXML_UNICODE_ENABLED)</cond>
<info>Check whether the character is part of GeneralPunctuation UCS Block</info>
<return type='int' info='1 if true 0 otherwise'/>
<arg name='code' type='int' info='UCS code point'/>
</function>
- <function name='xmlUCSIsGeometricShapes' file='xmlunicode'>
+ <function name='xmlUCSIsGeometricShapes' file='xmlunicode' module='xmlunicode'>
<cond>defined(LIBXML_UNICODE_ENABLED)</cond>
<info>Check whether the character is part of GeometricShapes UCS Block</info>
<return type='int' info='1 if true 0 otherwise'/>
<arg name='code' type='int' info='UCS code point'/>
</function>
- <function name='xmlUCSIsGeorgian' file='xmlunicode'>
+ <function name='xmlUCSIsGeorgian' file='xmlunicode' module='xmlunicode'>
<cond>defined(LIBXML_UNICODE_ENABLED)</cond>
<info>Check whether the character is part of Georgian UCS Block</info>
<return type='int' info='1 if true 0 otherwise'/>
<arg name='code' type='int' info='UCS code point'/>
</function>
- <function name='xmlUCSIsGothic' file='xmlunicode'>
+ <function name='xmlUCSIsGothic' file='xmlunicode' module='xmlunicode'>
<cond>defined(LIBXML_UNICODE_ENABLED)</cond>
<info>Check whether the character is part of Gothic UCS Block</info>
<return type='int' info='1 if true 0 otherwise'/>
<arg name='code' type='int' info='UCS code point'/>
</function>
- <function name='xmlUCSIsGreek' file='xmlunicode'>
+ <function name='xmlUCSIsGreek' file='xmlunicode' module='xmlunicode'>
<cond>defined(LIBXML_UNICODE_ENABLED)</cond>
<info>Check whether the character is part of Greek UCS Block</info>
<return type='int' info='1 if true 0 otherwise'/>
<arg name='code' type='int' info='UCS code point'/>
</function>
- <function name='xmlUCSIsGreekExtended' file='xmlunicode'>
+ <function name='xmlUCSIsGreekExtended' file='xmlunicode' module='xmlunicode'>
<cond>defined(LIBXML_UNICODE_ENABLED)</cond>
<info>Check whether the character is part of GreekExtended UCS Block</info>
<return type='int' info='1 if true 0 otherwise'/>
<arg name='code' type='int' info='UCS code point'/>
</function>
- <function name='xmlUCSIsGreekandCoptic' file='xmlunicode'>
+ <function name='xmlUCSIsGreekandCoptic' file='xmlunicode' module='xmlunicode'>
<cond>defined(LIBXML_UNICODE_ENABLED)</cond>
<info>Check whether the character is part of GreekandCoptic UCS Block</info>
<return type='int' info='1 if true 0 otherwise'/>
<arg name='code' type='int' info='UCS code point'/>
</function>
- <function name='xmlUCSIsGujarati' file='xmlunicode'>
+ <function name='xmlUCSIsGujarati' file='xmlunicode' module='xmlunicode'>
<cond>defined(LIBXML_UNICODE_ENABLED)</cond>
<info>Check whether the character is part of Gujarati UCS Block</info>
<return type='int' info='1 if true 0 otherwise'/>
<arg name='code' type='int' info='UCS code point'/>
</function>
- <function name='xmlUCSIsGurmukhi' file='xmlunicode'>
+ <function name='xmlUCSIsGurmukhi' file='xmlunicode' module='xmlunicode'>
<cond>defined(LIBXML_UNICODE_ENABLED)</cond>
<info>Check whether the character is part of Gurmukhi UCS Block</info>
<return type='int' info='1 if true 0 otherwise'/>
<arg name='code' type='int' info='UCS code point'/>
</function>
- <function name='xmlUCSIsHalfwidthandFullwidthForms' file='xmlunicode'>
+ <function name='xmlUCSIsHalfwidthandFullwidthForms' file='xmlunicode' module='xmlunicode'>
<cond>defined(LIBXML_UNICODE_ENABLED)</cond>
<info>Check whether the character is part of HalfwidthandFullwidthForms UCS Block</info>
<return type='int' info='1 if true 0 otherwise'/>
<arg name='code' type='int' info='UCS code point'/>
</function>
- <function name='xmlUCSIsHangulCompatibilityJamo' file='xmlunicode'>
+ <function name='xmlUCSIsHangulCompatibilityJamo' file='xmlunicode' module='xmlunicode'>
<cond>defined(LIBXML_UNICODE_ENABLED)</cond>
<info>Check whether the character is part of HangulCompatibilityJamo UCS Block</info>
<return type='int' info='1 if true 0 otherwise'/>
<arg name='code' type='int' info='UCS code point'/>
</function>
- <function name='xmlUCSIsHangulJamo' file='xmlunicode'>
+ <function name='xmlUCSIsHangulJamo' file='xmlunicode' module='xmlunicode'>
<cond>defined(LIBXML_UNICODE_ENABLED)</cond>
<info>Check whether the character is part of HangulJamo UCS Block</info>
<return type='int' info='1 if true 0 otherwise'/>
<arg name='code' type='int' info='UCS code point'/>
</function>
- <function name='xmlUCSIsHangulSyllables' file='xmlunicode'>
+ <function name='xmlUCSIsHangulSyllables' file='xmlunicode' module='xmlunicode'>
<cond>defined(LIBXML_UNICODE_ENABLED)</cond>
<info>Check whether the character is part of HangulSyllables UCS Block</info>
<return type='int' info='1 if true 0 otherwise'/>
<arg name='code' type='int' info='UCS code point'/>
</function>
- <function name='xmlUCSIsHanunoo' file='xmlunicode'>
+ <function name='xmlUCSIsHanunoo' file='xmlunicode' module='xmlunicode'>
<cond>defined(LIBXML_UNICODE_ENABLED)</cond>
<info>Check whether the character is part of Hanunoo UCS Block</info>
<return type='int' info='1 if true 0 otherwise'/>
<arg name='code' type='int' info='UCS code point'/>
</function>
- <function name='xmlUCSIsHebrew' file='xmlunicode'>
+ <function name='xmlUCSIsHebrew' file='xmlunicode' module='xmlunicode'>
<cond>defined(LIBXML_UNICODE_ENABLED)</cond>
<info>Check whether the character is part of Hebrew UCS Block</info>
<return type='int' info='1 if true 0 otherwise'/>
<arg name='code' type='int' info='UCS code point'/>
</function>
- <function name='xmlUCSIsHighPrivateUseSurrogates' file='xmlunicode'>
+ <function name='xmlUCSIsHighPrivateUseSurrogates' file='xmlunicode' module='xmlunicode'>
<cond>defined(LIBXML_UNICODE_ENABLED)</cond>
<info>Check whether the character is part of HighPrivateUseSurrogates UCS Block</info>
<return type='int' info='1 if true 0 otherwise'/>
<arg name='code' type='int' info='UCS code point'/>
</function>
- <function name='xmlUCSIsHighSurrogates' file='xmlunicode'>
+ <function name='xmlUCSIsHighSurrogates' file='xmlunicode' module='xmlunicode'>
<cond>defined(LIBXML_UNICODE_ENABLED)</cond>
<info>Check whether the character is part of HighSurrogates UCS Block</info>
<return type='int' info='1 if true 0 otherwise'/>
<arg name='code' type='int' info='UCS code point'/>
</function>
- <function name='xmlUCSIsHiragana' file='xmlunicode'>
+ <function name='xmlUCSIsHiragana' file='xmlunicode' module='xmlunicode'>
<cond>defined(LIBXML_UNICODE_ENABLED)</cond>
<info>Check whether the character is part of Hiragana UCS Block</info>
<return type='int' info='1 if true 0 otherwise'/>
<arg name='code' type='int' info='UCS code point'/>
</function>
- <function name='xmlUCSIsIPAExtensions' file='xmlunicode'>
+ <function name='xmlUCSIsIPAExtensions' file='xmlunicode' module='xmlunicode'>
<cond>defined(LIBXML_UNICODE_ENABLED)</cond>
<info>Check whether the character is part of IPAExtensions UCS Block</info>
<return type='int' info='1 if true 0 otherwise'/>
<arg name='code' type='int' info='UCS code point'/>
</function>
- <function name='xmlUCSIsIdeographicDescriptionCharacters' file='xmlunicode'>
+ <function name='xmlUCSIsIdeographicDescriptionCharacters' file='xmlunicode' module='xmlunicode'>
<cond>defined(LIBXML_UNICODE_ENABLED)</cond>
<info>Check whether the character is part of IdeographicDescriptionCharacters UCS Block</info>
<return type='int' info='1 if true 0 otherwise'/>
<arg name='code' type='int' info='UCS code point'/>
</function>
- <function name='xmlUCSIsKanbun' file='xmlunicode'>
+ <function name='xmlUCSIsKanbun' file='xmlunicode' module='xmlunicode'>
<cond>defined(LIBXML_UNICODE_ENABLED)</cond>
<info>Check whether the character is part of Kanbun UCS Block</info>
<return type='int' info='1 if true 0 otherwise'/>
<arg name='code' type='int' info='UCS code point'/>
</function>
- <function name='xmlUCSIsKangxiRadicals' file='xmlunicode'>
+ <function name='xmlUCSIsKangxiRadicals' file='xmlunicode' module='xmlunicode'>
<cond>defined(LIBXML_UNICODE_ENABLED)</cond>
<info>Check whether the character is part of KangxiRadicals UCS Block</info>
<return type='int' info='1 if true 0 otherwise'/>
<arg name='code' type='int' info='UCS code point'/>
</function>
- <function name='xmlUCSIsKannada' file='xmlunicode'>
+ <function name='xmlUCSIsKannada' file='xmlunicode' module='xmlunicode'>
<cond>defined(LIBXML_UNICODE_ENABLED)</cond>
<info>Check whether the character is part of Kannada UCS Block</info>
<return type='int' info='1 if true 0 otherwise'/>
<arg name='code' type='int' info='UCS code point'/>
</function>
- <function name='xmlUCSIsKatakana' file='xmlunicode'>
+ <function name='xmlUCSIsKatakana' file='xmlunicode' module='xmlunicode'>
<cond>defined(LIBXML_UNICODE_ENABLED)</cond>
<info>Check whether the character is part of Katakana UCS Block</info>
<return type='int' info='1 if true 0 otherwise'/>
<arg name='code' type='int' info='UCS code point'/>
</function>
- <function name='xmlUCSIsKatakanaPhoneticExtensions' file='xmlunicode'>
+ <function name='xmlUCSIsKatakanaPhoneticExtensions' file='xmlunicode' module='xmlunicode'>
<cond>defined(LIBXML_UNICODE_ENABLED)</cond>
<info>Check whether the character is part of KatakanaPhoneticExtensions UCS Block</info>
<return type='int' info='1 if true 0 otherwise'/>
<arg name='code' type='int' info='UCS code point'/>
</function>
- <function name='xmlUCSIsKhmer' file='xmlunicode'>
+ <function name='xmlUCSIsKhmer' file='xmlunicode' module='xmlunicode'>
<cond>defined(LIBXML_UNICODE_ENABLED)</cond>
<info>Check whether the character is part of Khmer UCS Block</info>
<return type='int' info='1 if true 0 otherwise'/>
<arg name='code' type='int' info='UCS code point'/>
</function>
- <function name='xmlUCSIsKhmerSymbols' file='xmlunicode'>
+ <function name='xmlUCSIsKhmerSymbols' file='xmlunicode' module='xmlunicode'>
<cond>defined(LIBXML_UNICODE_ENABLED)</cond>
<info>Check whether the character is part of KhmerSymbols UCS Block</info>
<return type='int' info='1 if true 0 otherwise'/>
<arg name='code' type='int' info='UCS code point'/>
</function>
- <function name='xmlUCSIsLao' file='xmlunicode'>
+ <function name='xmlUCSIsLao' file='xmlunicode' module='xmlunicode'>
<cond>defined(LIBXML_UNICODE_ENABLED)</cond>
<info>Check whether the character is part of Lao UCS Block</info>
<return type='int' info='1 if true 0 otherwise'/>
<arg name='code' type='int' info='UCS code point'/>
</function>
- <function name='xmlUCSIsLatin1Supplement' file='xmlunicode'>
+ <function name='xmlUCSIsLatin1Supplement' file='xmlunicode' module='xmlunicode'>
<cond>defined(LIBXML_UNICODE_ENABLED)</cond>
<info>Check whether the character is part of Latin-1Supplement UCS Block</info>
<return type='int' info='1 if true 0 otherwise'/>
<arg name='code' type='int' info='UCS code point'/>
</function>
- <function name='xmlUCSIsLatinExtendedA' file='xmlunicode'>
+ <function name='xmlUCSIsLatinExtendedA' file='xmlunicode' module='xmlunicode'>
<cond>defined(LIBXML_UNICODE_ENABLED)</cond>
<info>Check whether the character is part of LatinExtended-A UCS Block</info>
<return type='int' info='1 if true 0 otherwise'/>
<arg name='code' type='int' info='UCS code point'/>
</function>
- <function name='xmlUCSIsLatinExtendedAdditional' file='xmlunicode'>
+ <function name='xmlUCSIsLatinExtendedAdditional' file='xmlunicode' module='xmlunicode'>
<cond>defined(LIBXML_UNICODE_ENABLED)</cond>
<info>Check whether the character is part of LatinExtendedAdditional UCS Block</info>
<return type='int' info='1 if true 0 otherwise'/>
<arg name='code' type='int' info='UCS code point'/>
</function>
- <function name='xmlUCSIsLatinExtendedB' file='xmlunicode'>
+ <function name='xmlUCSIsLatinExtendedB' file='xmlunicode' module='xmlunicode'>
<cond>defined(LIBXML_UNICODE_ENABLED)</cond>
<info>Check whether the character is part of LatinExtended-B UCS Block</info>
<return type='int' info='1 if true 0 otherwise'/>
<arg name='code' type='int' info='UCS code point'/>
</function>
- <function name='xmlUCSIsLetterlikeSymbols' file='xmlunicode'>
+ <function name='xmlUCSIsLetterlikeSymbols' file='xmlunicode' module='xmlunicode'>
<cond>defined(LIBXML_UNICODE_ENABLED)</cond>
<info>Check whether the character is part of LetterlikeSymbols UCS Block</info>
<return type='int' info='1 if true 0 otherwise'/>
<arg name='code' type='int' info='UCS code point'/>
</function>
- <function name='xmlUCSIsLimbu' file='xmlunicode'>
+ <function name='xmlUCSIsLimbu' file='xmlunicode' module='xmlunicode'>
<cond>defined(LIBXML_UNICODE_ENABLED)</cond>
<info>Check whether the character is part of Limbu UCS Block</info>
<return type='int' info='1 if true 0 otherwise'/>
<arg name='code' type='int' info='UCS code point'/>
</function>
- <function name='xmlUCSIsLinearBIdeograms' file='xmlunicode'>
+ <function name='xmlUCSIsLinearBIdeograms' file='xmlunicode' module='xmlunicode'>
<cond>defined(LIBXML_UNICODE_ENABLED)</cond>
<info>Check whether the character is part of LinearBIdeograms UCS Block</info>
<return type='int' info='1 if true 0 otherwise'/>
<arg name='code' type='int' info='UCS code point'/>
</function>
- <function name='xmlUCSIsLinearBSyllabary' file='xmlunicode'>
+ <function name='xmlUCSIsLinearBSyllabary' file='xmlunicode' module='xmlunicode'>
<cond>defined(LIBXML_UNICODE_ENABLED)</cond>
<info>Check whether the character is part of LinearBSyllabary UCS Block</info>
<return type='int' info='1 if true 0 otherwise'/>
<arg name='code' type='int' info='UCS code point'/>
</function>
- <function name='xmlUCSIsLowSurrogates' file='xmlunicode'>
+ <function name='xmlUCSIsLowSurrogates' file='xmlunicode' module='xmlunicode'>
<cond>defined(LIBXML_UNICODE_ENABLED)</cond>
<info>Check whether the character is part of LowSurrogates UCS Block</info>
<return type='int' info='1 if true 0 otherwise'/>
<arg name='code' type='int' info='UCS code point'/>
</function>
- <function name='xmlUCSIsMalayalam' file='xmlunicode'>
+ <function name='xmlUCSIsMalayalam' file='xmlunicode' module='xmlunicode'>
<cond>defined(LIBXML_UNICODE_ENABLED)</cond>
<info>Check whether the character is part of Malayalam UCS Block</info>
<return type='int' info='1 if true 0 otherwise'/>
<arg name='code' type='int' info='UCS code point'/>
</function>
- <function name='xmlUCSIsMathematicalAlphanumericSymbols' file='xmlunicode'>
+ <function name='xmlUCSIsMathematicalAlphanumericSymbols' file='xmlunicode' module='xmlunicode'>
<cond>defined(LIBXML_UNICODE_ENABLED)</cond>
<info>Check whether the character is part of MathematicalAlphanumericSymbols UCS Block</info>
<return type='int' info='1 if true 0 otherwise'/>
<arg name='code' type='int' info='UCS code point'/>
</function>
- <function name='xmlUCSIsMathematicalOperators' file='xmlunicode'>
+ <function name='xmlUCSIsMathematicalOperators' file='xmlunicode' module='xmlunicode'>
<cond>defined(LIBXML_UNICODE_ENABLED)</cond>
<info>Check whether the character is part of MathematicalOperators UCS Block</info>
<return type='int' info='1 if true 0 otherwise'/>
<arg name='code' type='int' info='UCS code point'/>
</function>
- <function name='xmlUCSIsMiscellaneousMathematicalSymbolsA' file='xmlunicode'>
+ <function name='xmlUCSIsMiscellaneousMathematicalSymbolsA' file='xmlunicode' module='xmlunicode'>
<cond>defined(LIBXML_UNICODE_ENABLED)</cond>
<info>Check whether the character is part of MiscellaneousMathematicalSymbols-A UCS Block</info>
<return type='int' info='1 if true 0 otherwise'/>
<arg name='code' type='int' info='UCS code point'/>
</function>
- <function name='xmlUCSIsMiscellaneousMathematicalSymbolsB' file='xmlunicode'>
+ <function name='xmlUCSIsMiscellaneousMathematicalSymbolsB' file='xmlunicode' module='xmlunicode'>
<cond>defined(LIBXML_UNICODE_ENABLED)</cond>
<info>Check whether the character is part of MiscellaneousMathematicalSymbols-B UCS Block</info>
<return type='int' info='1 if true 0 otherwise'/>
<arg name='code' type='int' info='UCS code point'/>
</function>
- <function name='xmlUCSIsMiscellaneousSymbols' file='xmlunicode'>
+ <function name='xmlUCSIsMiscellaneousSymbols' file='xmlunicode' module='xmlunicode'>
<cond>defined(LIBXML_UNICODE_ENABLED)</cond>
<info>Check whether the character is part of MiscellaneousSymbols UCS Block</info>
<return type='int' info='1 if true 0 otherwise'/>
<arg name='code' type='int' info='UCS code point'/>
</function>
- <function name='xmlUCSIsMiscellaneousSymbolsandArrows' file='xmlunicode'>
+ <function name='xmlUCSIsMiscellaneousSymbolsandArrows' file='xmlunicode' module='xmlunicode'>
<cond>defined(LIBXML_UNICODE_ENABLED)</cond>
<info>Check whether the character is part of MiscellaneousSymbolsandArrows UCS Block</info>
<return type='int' info='1 if true 0 otherwise'/>
<arg name='code' type='int' info='UCS code point'/>
</function>
- <function name='xmlUCSIsMiscellaneousTechnical' file='xmlunicode'>
+ <function name='xmlUCSIsMiscellaneousTechnical' file='xmlunicode' module='xmlunicode'>
<cond>defined(LIBXML_UNICODE_ENABLED)</cond>
<info>Check whether the character is part of MiscellaneousTechnical UCS Block</info>
<return type='int' info='1 if true 0 otherwise'/>
<arg name='code' type='int' info='UCS code point'/>
</function>
- <function name='xmlUCSIsMongolian' file='xmlunicode'>
+ <function name='xmlUCSIsMongolian' file='xmlunicode' module='xmlunicode'>
<cond>defined(LIBXML_UNICODE_ENABLED)</cond>
<info>Check whether the character is part of Mongolian UCS Block</info>
<return type='int' info='1 if true 0 otherwise'/>
<arg name='code' type='int' info='UCS code point'/>
</function>
- <function name='xmlUCSIsMusicalSymbols' file='xmlunicode'>
+ <function name='xmlUCSIsMusicalSymbols' file='xmlunicode' module='xmlunicode'>
<cond>defined(LIBXML_UNICODE_ENABLED)</cond>
<info>Check whether the character is part of MusicalSymbols UCS Block</info>
<return type='int' info='1 if true 0 otherwise'/>
<arg name='code' type='int' info='UCS code point'/>
</function>
- <function name='xmlUCSIsMyanmar' file='xmlunicode'>
+ <function name='xmlUCSIsMyanmar' file='xmlunicode' module='xmlunicode'>
<cond>defined(LIBXML_UNICODE_ENABLED)</cond>
<info>Check whether the character is part of Myanmar UCS Block</info>
<return type='int' info='1 if true 0 otherwise'/>
<arg name='code' type='int' info='UCS code point'/>
</function>
- <function name='xmlUCSIsNumberForms' file='xmlunicode'>
+ <function name='xmlUCSIsNumberForms' file='xmlunicode' module='xmlunicode'>
<cond>defined(LIBXML_UNICODE_ENABLED)</cond>
<info>Check whether the character is part of NumberForms UCS Block</info>
<return type='int' info='1 if true 0 otherwise'/>
<arg name='code' type='int' info='UCS code point'/>
</function>
- <function name='xmlUCSIsOgham' file='xmlunicode'>
+ <function name='xmlUCSIsOgham' file='xmlunicode' module='xmlunicode'>
<cond>defined(LIBXML_UNICODE_ENABLED)</cond>
<info>Check whether the character is part of Ogham UCS Block</info>
<return type='int' info='1 if true 0 otherwise'/>
<arg name='code' type='int' info='UCS code point'/>
</function>
- <function name='xmlUCSIsOldItalic' file='xmlunicode'>
+ <function name='xmlUCSIsOldItalic' file='xmlunicode' module='xmlunicode'>
<cond>defined(LIBXML_UNICODE_ENABLED)</cond>
<info>Check whether the character is part of OldItalic UCS Block</info>
<return type='int' info='1 if true 0 otherwise'/>
<arg name='code' type='int' info='UCS code point'/>
</function>
- <function name='xmlUCSIsOpticalCharacterRecognition' file='xmlunicode'>
+ <function name='xmlUCSIsOpticalCharacterRecognition' file='xmlunicode' module='xmlunicode'>
<cond>defined(LIBXML_UNICODE_ENABLED)</cond>
<info>Check whether the character is part of OpticalCharacterRecognition UCS Block</info>
<return type='int' info='1 if true 0 otherwise'/>
<arg name='code' type='int' info='UCS code point'/>
</function>
- <function name='xmlUCSIsOriya' file='xmlunicode'>
+ <function name='xmlUCSIsOriya' file='xmlunicode' module='xmlunicode'>
<cond>defined(LIBXML_UNICODE_ENABLED)</cond>
<info>Check whether the character is part of Oriya UCS Block</info>
<return type='int' info='1 if true 0 otherwise'/>
<arg name='code' type='int' info='UCS code point'/>
</function>
- <function name='xmlUCSIsOsmanya' file='xmlunicode'>
+ <function name='xmlUCSIsOsmanya' file='xmlunicode' module='xmlunicode'>
<cond>defined(LIBXML_UNICODE_ENABLED)</cond>
<info>Check whether the character is part of Osmanya UCS Block</info>
<return type='int' info='1 if true 0 otherwise'/>
<arg name='code' type='int' info='UCS code point'/>
</function>
- <function name='xmlUCSIsPhoneticExtensions' file='xmlunicode'>
+ <function name='xmlUCSIsPhoneticExtensions' file='xmlunicode' module='xmlunicode'>
<cond>defined(LIBXML_UNICODE_ENABLED)</cond>
<info>Check whether the character is part of PhoneticExtensions UCS Block</info>
<return type='int' info='1 if true 0 otherwise'/>
<arg name='code' type='int' info='UCS code point'/>
</function>
- <function name='xmlUCSIsPrivateUse' file='xmlunicode'>
+ <function name='xmlUCSIsPrivateUse' file='xmlunicode' module='xmlunicode'>
<cond>defined(LIBXML_UNICODE_ENABLED)</cond>
<info>Check whether the character is part of PrivateUse UCS Block</info>
<return type='int' info='1 if true 0 otherwise'/>
<arg name='code' type='int' info='UCS code point'/>
</function>
- <function name='xmlUCSIsPrivateUseArea' file='xmlunicode'>
+ <function name='xmlUCSIsPrivateUseArea' file='xmlunicode' module='xmlunicode'>
<cond>defined(LIBXML_UNICODE_ENABLED)</cond>
<info>Check whether the character is part of PrivateUseArea UCS Block</info>
<return type='int' info='1 if true 0 otherwise'/>
<arg name='code' type='int' info='UCS code point'/>
</function>
- <function name='xmlUCSIsRunic' file='xmlunicode'>
+ <function name='xmlUCSIsRunic' file='xmlunicode' module='xmlunicode'>
<cond>defined(LIBXML_UNICODE_ENABLED)</cond>
<info>Check whether the character is part of Runic UCS Block</info>
<return type='int' info='1 if true 0 otherwise'/>
<arg name='code' type='int' info='UCS code point'/>
</function>
- <function name='xmlUCSIsShavian' file='xmlunicode'>
+ <function name='xmlUCSIsShavian' file='xmlunicode' module='xmlunicode'>
<cond>defined(LIBXML_UNICODE_ENABLED)</cond>
<info>Check whether the character is part of Shavian UCS Block</info>
<return type='int' info='1 if true 0 otherwise'/>
<arg name='code' type='int' info='UCS code point'/>
</function>
- <function name='xmlUCSIsSinhala' file='xmlunicode'>
+ <function name='xmlUCSIsSinhala' file='xmlunicode' module='xmlunicode'>
<cond>defined(LIBXML_UNICODE_ENABLED)</cond>
<info>Check whether the character is part of Sinhala UCS Block</info>
<return type='int' info='1 if true 0 otherwise'/>
<arg name='code' type='int' info='UCS code point'/>
</function>
- <function name='xmlUCSIsSmallFormVariants' file='xmlunicode'>
+ <function name='xmlUCSIsSmallFormVariants' file='xmlunicode' module='xmlunicode'>
<cond>defined(LIBXML_UNICODE_ENABLED)</cond>
<info>Check whether the character is part of SmallFormVariants UCS Block</info>
<return type='int' info='1 if true 0 otherwise'/>
<arg name='code' type='int' info='UCS code point'/>
</function>
- <function name='xmlUCSIsSpacingModifierLetters' file='xmlunicode'>
+ <function name='xmlUCSIsSpacingModifierLetters' file='xmlunicode' module='xmlunicode'>
<cond>defined(LIBXML_UNICODE_ENABLED)</cond>
<info>Check whether the character is part of SpacingModifierLetters UCS Block</info>
<return type='int' info='1 if true 0 otherwise'/>
<arg name='code' type='int' info='UCS code point'/>
</function>
- <function name='xmlUCSIsSpecials' file='xmlunicode'>
+ <function name='xmlUCSIsSpecials' file='xmlunicode' module='xmlunicode'>
<cond>defined(LIBXML_UNICODE_ENABLED)</cond>
<info>Check whether the character is part of Specials UCS Block</info>
<return type='int' info='1 if true 0 otherwise'/>
<arg name='code' type='int' info='UCS code point'/>
</function>
- <function name='xmlUCSIsSuperscriptsandSubscripts' file='xmlunicode'>
+ <function name='xmlUCSIsSuperscriptsandSubscripts' file='xmlunicode' module='xmlunicode'>
<cond>defined(LIBXML_UNICODE_ENABLED)</cond>
<info>Check whether the character is part of SuperscriptsandSubscripts UCS Block</info>
<return type='int' info='1 if true 0 otherwise'/>
<arg name='code' type='int' info='UCS code point'/>
</function>
- <function name='xmlUCSIsSupplementalArrowsA' file='xmlunicode'>
+ <function name='xmlUCSIsSupplementalArrowsA' file='xmlunicode' module='xmlunicode'>
<cond>defined(LIBXML_UNICODE_ENABLED)</cond>
<info>Check whether the character is part of SupplementalArrows-A UCS Block</info>
<return type='int' info='1 if true 0 otherwise'/>
<arg name='code' type='int' info='UCS code point'/>
</function>
- <function name='xmlUCSIsSupplementalArrowsB' file='xmlunicode'>
+ <function name='xmlUCSIsSupplementalArrowsB' file='xmlunicode' module='xmlunicode'>
<cond>defined(LIBXML_UNICODE_ENABLED)</cond>
<info>Check whether the character is part of SupplementalArrows-B UCS Block</info>
<return type='int' info='1 if true 0 otherwise'/>
<arg name='code' type='int' info='UCS code point'/>
</function>
- <function name='xmlUCSIsSupplementalMathematicalOperators' file='xmlunicode'>
+ <function name='xmlUCSIsSupplementalMathematicalOperators' file='xmlunicode' module='xmlunicode'>
<cond>defined(LIBXML_UNICODE_ENABLED)</cond>
<info>Check whether the character is part of SupplementalMathematicalOperators UCS Block</info>
<return type='int' info='1 if true 0 otherwise'/>
<arg name='code' type='int' info='UCS code point'/>
</function>
- <function name='xmlUCSIsSupplementaryPrivateUseAreaA' file='xmlunicode'>
+ <function name='xmlUCSIsSupplementaryPrivateUseAreaA' file='xmlunicode' module='xmlunicode'>
<cond>defined(LIBXML_UNICODE_ENABLED)</cond>
<info>Check whether the character is part of SupplementaryPrivateUseArea-A UCS Block</info>
<return type='int' info='1 if true 0 otherwise'/>
<arg name='code' type='int' info='UCS code point'/>
</function>
- <function name='xmlUCSIsSupplementaryPrivateUseAreaB' file='xmlunicode'>
+ <function name='xmlUCSIsSupplementaryPrivateUseAreaB' file='xmlunicode' module='xmlunicode'>
<cond>defined(LIBXML_UNICODE_ENABLED)</cond>
<info>Check whether the character is part of SupplementaryPrivateUseArea-B UCS Block</info>
<return type='int' info='1 if true 0 otherwise'/>
<arg name='code' type='int' info='UCS code point'/>
</function>
- <function name='xmlUCSIsSyriac' file='xmlunicode'>
+ <function name='xmlUCSIsSyriac' file='xmlunicode' module='xmlunicode'>
<cond>defined(LIBXML_UNICODE_ENABLED)</cond>
<info>Check whether the character is part of Syriac UCS Block</info>
<return type='int' info='1 if true 0 otherwise'/>
<arg name='code' type='int' info='UCS code point'/>
</function>
- <function name='xmlUCSIsTagalog' file='xmlunicode'>
+ <function name='xmlUCSIsTagalog' file='xmlunicode' module='xmlunicode'>
<cond>defined(LIBXML_UNICODE_ENABLED)</cond>
<info>Check whether the character is part of Tagalog UCS Block</info>
<return type='int' info='1 if true 0 otherwise'/>
<arg name='code' type='int' info='UCS code point'/>
</function>
- <function name='xmlUCSIsTagbanwa' file='xmlunicode'>
+ <function name='xmlUCSIsTagbanwa' file='xmlunicode' module='xmlunicode'>
<cond>defined(LIBXML_UNICODE_ENABLED)</cond>
<info>Check whether the character is part of Tagbanwa UCS Block</info>
<return type='int' info='1 if true 0 otherwise'/>
<arg name='code' type='int' info='UCS code point'/>
</function>
- <function name='xmlUCSIsTags' file='xmlunicode'>
+ <function name='xmlUCSIsTags' file='xmlunicode' module='xmlunicode'>
<cond>defined(LIBXML_UNICODE_ENABLED)</cond>
<info>Check whether the character is part of Tags UCS Block</info>
<return type='int' info='1 if true 0 otherwise'/>
<arg name='code' type='int' info='UCS code point'/>
</function>
- <function name='xmlUCSIsTaiLe' file='xmlunicode'>
+ <function name='xmlUCSIsTaiLe' file='xmlunicode' module='xmlunicode'>
<cond>defined(LIBXML_UNICODE_ENABLED)</cond>
<info>Check whether the character is part of TaiLe UCS Block</info>
<return type='int' info='1 if true 0 otherwise'/>
<arg name='code' type='int' info='UCS code point'/>
</function>
- <function name='xmlUCSIsTaiXuanJingSymbols' file='xmlunicode'>
+ <function name='xmlUCSIsTaiXuanJingSymbols' file='xmlunicode' module='xmlunicode'>
<cond>defined(LIBXML_UNICODE_ENABLED)</cond>
<info>Check whether the character is part of TaiXuanJingSymbols UCS Block</info>
<return type='int' info='1 if true 0 otherwise'/>
<arg name='code' type='int' info='UCS code point'/>
</function>
- <function name='xmlUCSIsTamil' file='xmlunicode'>
+ <function name='xmlUCSIsTamil' file='xmlunicode' module='xmlunicode'>
<cond>defined(LIBXML_UNICODE_ENABLED)</cond>
<info>Check whether the character is part of Tamil UCS Block</info>
<return type='int' info='1 if true 0 otherwise'/>
<arg name='code' type='int' info='UCS code point'/>
</function>
- <function name='xmlUCSIsTelugu' file='xmlunicode'>
+ <function name='xmlUCSIsTelugu' file='xmlunicode' module='xmlunicode'>
<cond>defined(LIBXML_UNICODE_ENABLED)</cond>
<info>Check whether the character is part of Telugu UCS Block</info>
<return type='int' info='1 if true 0 otherwise'/>
<arg name='code' type='int' info='UCS code point'/>
</function>
- <function name='xmlUCSIsThaana' file='xmlunicode'>
+ <function name='xmlUCSIsThaana' file='xmlunicode' module='xmlunicode'>
<cond>defined(LIBXML_UNICODE_ENABLED)</cond>
<info>Check whether the character is part of Thaana UCS Block</info>
<return type='int' info='1 if true 0 otherwise'/>
<arg name='code' type='int' info='UCS code point'/>
</function>
- <function name='xmlUCSIsThai' file='xmlunicode'>
+ <function name='xmlUCSIsThai' file='xmlunicode' module='xmlunicode'>
<cond>defined(LIBXML_UNICODE_ENABLED)</cond>
<info>Check whether the character is part of Thai UCS Block</info>
<return type='int' info='1 if true 0 otherwise'/>
<arg name='code' type='int' info='UCS code point'/>
</function>
- <function name='xmlUCSIsTibetan' file='xmlunicode'>
+ <function name='xmlUCSIsTibetan' file='xmlunicode' module='xmlunicode'>
<cond>defined(LIBXML_UNICODE_ENABLED)</cond>
<info>Check whether the character is part of Tibetan UCS Block</info>
<return type='int' info='1 if true 0 otherwise'/>
<arg name='code' type='int' info='UCS code point'/>
</function>
- <function name='xmlUCSIsUgaritic' file='xmlunicode'>
+ <function name='xmlUCSIsUgaritic' file='xmlunicode' module='xmlunicode'>
<cond>defined(LIBXML_UNICODE_ENABLED)</cond>
<info>Check whether the character is part of Ugaritic UCS Block</info>
<return type='int' info='1 if true 0 otherwise'/>
<arg name='code' type='int' info='UCS code point'/>
</function>
- <function name='xmlUCSIsUnifiedCanadianAboriginalSyllabics' file='xmlunicode'>
+ <function name='xmlUCSIsUnifiedCanadianAboriginalSyllabics' file='xmlunicode' module='xmlunicode'>
<cond>defined(LIBXML_UNICODE_ENABLED)</cond>
<info>Check whether the character is part of UnifiedCanadianAboriginalSyllabics UCS Block</info>
<return type='int' info='1 if true 0 otherwise'/>
<arg name='code' type='int' info='UCS code point'/>
</function>
- <function name='xmlUCSIsVariationSelectors' file='xmlunicode'>
+ <function name='xmlUCSIsVariationSelectors' file='xmlunicode' module='xmlunicode'>
<cond>defined(LIBXML_UNICODE_ENABLED)</cond>
<info>Check whether the character is part of VariationSelectors UCS Block</info>
<return type='int' info='1 if true 0 otherwise'/>
<arg name='code' type='int' info='UCS code point'/>
</function>
- <function name='xmlUCSIsVariationSelectorsSupplement' file='xmlunicode'>
+ <function name='xmlUCSIsVariationSelectorsSupplement' file='xmlunicode' module='xmlunicode'>
<cond>defined(LIBXML_UNICODE_ENABLED)</cond>
<info>Check whether the character is part of VariationSelectorsSupplement UCS Block</info>
<return type='int' info='1 if true 0 otherwise'/>
<arg name='code' type='int' info='UCS code point'/>
</function>
- <function name='xmlUCSIsYiRadicals' file='xmlunicode'>
+ <function name='xmlUCSIsYiRadicals' file='xmlunicode' module='xmlunicode'>
<cond>defined(LIBXML_UNICODE_ENABLED)</cond>
<info>Check whether the character is part of YiRadicals UCS Block</info>
<return type='int' info='1 if true 0 otherwise'/>
<arg name='code' type='int' info='UCS code point'/>
</function>
- <function name='xmlUCSIsYiSyllables' file='xmlunicode'>
+ <function name='xmlUCSIsYiSyllables' file='xmlunicode' module='xmlunicode'>
<cond>defined(LIBXML_UNICODE_ENABLED)</cond>
<info>Check whether the character is part of YiSyllables UCS Block</info>
<return type='int' info='1 if true 0 otherwise'/>
<arg name='code' type='int' info='UCS code point'/>
</function>
- <function name='xmlUCSIsYijingHexagramSymbols' file='xmlunicode'>
+ <function name='xmlUCSIsYijingHexagramSymbols' file='xmlunicode' module='xmlunicode'>
<cond>defined(LIBXML_UNICODE_ENABLED)</cond>
<info>Check whether the character is part of YijingHexagramSymbols UCS Block</info>
<return type='int' info='1 if true 0 otherwise'/>
<arg name='code' type='int' info='UCS code point'/>
</function>
- <function name='xmlURIEscape' file='uri'>
+ <function name='xmlURIEscape' file='uri' module='uri'>
<info>Escaping routine, does not do validity checks ! It will try to escape the chars needing this, but this is heuristic based it&apos;s impossible to be sure.</info>
<return type='xmlChar *' info='an copy of the string, but escaped 25 May 2001 Uses xmlParseURI and xmlURIEscapeStr to try to escape correctly according to RFC2396. - Carl Douglas'/>
<arg name='str' type='const xmlChar *' info='the string of the URI to escape'/>
</function>
- <function name='xmlURIEscapeStr' file='uri'>
+ <function name='xmlURIEscapeStr' file='uri' module='uri'>
<info>This routine escapes a string to hex, ignoring reserved characters (a-z) and the characters in the exception list.</info>
<return type='xmlChar *' info='a new escaped string or NULL in case of error.'/>
<arg name='str' type='const xmlChar *' info='string to escape'/>
<arg name='list' type='const xmlChar *' info='exception list string of chars not to escape'/>
</function>
- <function name='xmlURIUnescapeString' file='uri'>
+ <function name='xmlURIUnescapeString' file='uri' module='uri'>
<info>Unescaping routine, does not do validity checks ! Output is direct unsigned char translation of %XX values (no encoding)</info>
<return type='char *' info='an copy of the string, but unescaped'/>
<arg name='str' type='const char *' info='the string to unescape'/>
<arg name='len' type='int' info='the length in bytes to unescape (or &lt;= 0 to indicate full string)'/>
<arg name='target' type='char *' info='optional destination buffer'/>
</function>
- <function name='xmlUTF8Charcmp' file='xmlstring'>
+ <function name='xmlUTF8Charcmp' file='xmlstring' module='xmlstring'>
<info>compares the two UCS4 values</info>
<return type='int' info='result of the compare as with xmlStrncmp'/>
<arg name='utf1' type='const xmlChar *' info='pointer to first UTF8 char'/>
<arg name='utf2' type='const xmlChar *' info='pointer to second UTF8 char'/>
</function>
- <function name='xmlUTF8Size' file='xmlstring'>
+ <function name='xmlUTF8Size' file='xmlstring' module='xmlstring'>
<info>calculates the internal size of a UTF8 character</info>
<return type='int' info='the numbers of bytes in the character, -1 on format error'/>
<arg name='utf' type='const xmlChar *' info='pointer to the UTF8 character'/>
</function>
- <function name='xmlUTF8Strlen' file='xmlstring'>
+ <function name='xmlUTF8Strlen' file='xmlstring' module='xmlstring'>
<info>compute the length of an UTF8 string, it doesn&apos;t do a full UTF8 checking of the content of the string.</info>
<return type='int' info='the number of characters in the string or -1 in case of error'/>
<arg name='utf' type='const xmlChar *' info='a sequence of UTF-8 encoded bytes'/>
</function>
- <function name='xmlUTF8Strloc' file='xmlstring'>
+ <function name='xmlUTF8Strloc' file='xmlstring' module='xmlstring'>
<info>a function to provide the relative location of a UTF8 char</info>
<return type='int' info='the relative character position of the desired char or -1 if not found'/>
<arg name='utf' type='const xmlChar *' info='the input UTF8 *'/>
<arg name='utfchar' type='const xmlChar *' info='the UTF8 character to be found'/>
</function>
- <function name='xmlUTF8Strndup' file='xmlstring'>
+ <function name='xmlUTF8Strndup' file='xmlstring' module='xmlstring'>
<info>a strndup for array of UTF8&apos;s</info>
<return type='xmlChar *' info='a new UTF8 * or NULL'/>
<arg name='utf' type='const xmlChar *' info='the input UTF8 *'/>
<arg name='len' type='int' info='the len of @utf (in chars)'/>
</function>
- <function name='xmlUTF8Strpos' file='xmlstring'>
+ <function name='xmlUTF8Strpos' file='xmlstring' module='xmlstring'>
<info>a function to provide the equivalent of fetching a character from a string array</info>
<return type='const xmlChar *' info='a pointer to the UTF8 character or NULL'/>
<arg name='utf' type='const xmlChar *' info='the input UTF8 *'/>
<arg name='pos' type='int' info='the position of the desired UTF8 char (in chars)'/>
</function>
- <function name='xmlUTF8Strsize' file='xmlstring'>
+ <function name='xmlUTF8Strsize' file='xmlstring' module='xmlstring'>
<info>storage size of an UTF8 string the behaviour is not garanteed if the input string is not UTF-8</info>
<return type='int' info='the storage size of the first &apos;len&apos; characters of ARRAY'/>
<arg name='utf' type='const xmlChar *' info='a sequence of UTF-8 encoded bytes'/>
<arg name='len' type='int' info='the number of characters in the array'/>
</function>
- <function name='xmlUTF8Strsub' file='xmlstring'>
+ <function name='xmlUTF8Strsub' file='xmlstring' module='xmlstring'>
<info>Create a substring from a given UTF-8 string Note: positions are given in units of UTF-8 chars</info>
<return type='xmlChar *' info='a pointer to a newly created string or NULL if any problem'/>
<arg name='utf' type='const xmlChar *' info='a sequence of UTF-8 encoded bytes'/>
<arg name='start' type='int' info='relative pos of first char'/>
<arg name='len' type='int' info='total number to copy'/>
</function>
- <function name='xmlUnlinkNode' file='tree'>
+ <function name='xmlUnlinkNode' file='tree' module='tree'>
<info>Unlink a node from it&apos;s current context, the node is not freed</info>
<return type='void'/>
<arg name='cur' type='xmlNodePtr' info='the node'/>
</function>
- <function name='xmlUnlockLibrary' file='threads'>
+ <function name='xmlUnlockLibrary' file='threads' module='threads'>
<info>xmlUnlockLibrary() is used to release a re-entrant lock on the libxml2 library.</info>
<return type='void'/>
</function>
- <function name='xmlUnsetNsProp' file='tree'>
+ <function name='xmlUnsetNsProp' file='tree' module='tree'>
<cond>defined(LIBXML_TREE_ENABLED) || defined(LIBXML_SCHEMAS_ENABLED)</cond>
<info>Remove an attribute carried by a node.</info>
<return type='int' info='0 if successful, -1 if not found'/>
@@ -15673,21 +15721,21 @@ actually an xmlCharEncoding'/>
<arg name='ns' type='xmlNsPtr' info='the namespace definition'/>
<arg name='name' type='const xmlChar *' info='the attribute name'/>
</function>
- <function name='xmlUnsetProp' file='tree'>
+ <function name='xmlUnsetProp' file='tree' module='tree'>
<cond>defined(LIBXML_TREE_ENABLED) || defined(LIBXML_SCHEMAS_ENABLED)</cond>
<info>Remove an attribute carried by a node.</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'>
+ <function name='xmlValidBuildContentModel' file='valid' module='valid'>
<cond>defined(LIBXML_VALID_ENABLED) &amp;&amp; defined(LIBXML_REGEXP_ENABLED)</cond>
<info>(Re)Build the automata associated to the content model of this element</info>
<return type='int' info='1 in case of success, 0 in case of error'/>
<arg name='ctxt' type='xmlValidCtxtPtr' info='a validation context'/>
<arg name='elem' type='xmlElementPtr' info='an element declaration node'/>
</function>
- <function name='xmlValidCtxtNormalizeAttributeValue' file='valid'>
+ <function name='xmlValidCtxtNormalizeAttributeValue' file='valid' module='valid'>
<cond>defined(LIBXML_VALID_ENABLED)</cond>
<info>Does the validation related extra step of the normalization of attribute values: If the declared value is not CDATA, then the XML processor must further process the normalized attribute value by discarding any leading and trailing space (#x20) characters, and by replacing sequences of space (#x20) characters by single space (#x20) character. Also check VC: Standalone Document Declaration in P32, and update ctxt-&gt;valid accordingly</info>
<return type='xmlChar *' info='a new normalized string if normalization is needed, NULL otherwise the caller must free the returned value.'/>
@@ -15697,7 +15745,7 @@ actually an xmlCharEncoding'/>
<arg name='name' type='const xmlChar *' info='the attribute name'/>
<arg name='value' type='const xmlChar *' info='the attribute value'/>
</function>
- <function name='xmlValidGetPotentialChildren' file='valid'>
+ <function name='xmlValidGetPotentialChildren' file='valid' module='valid'>
<cond>defined(LIBXML_VALID_ENABLED)</cond>
<info>Build/extend a list of potential children allowed by the content tree</info>
<return type='int' info='the number of element in the list, or -1 in case of error.'/>
@@ -15706,7 +15754,7 @@ actually an xmlCharEncoding'/>
<arg name='len' type='int *' info='a pointer to the number of element in the list'/>
<arg name='max' type='int' info='the size of the array'/>
</function>
- <function name='xmlValidGetValidElements' file='valid'>
+ <function name='xmlValidGetValidElements' file='valid' module='valid'>
<cond>defined(LIBXML_VALID_ENABLED)</cond>
<info>This function returns the list of authorized children to insert within an existing tree while respecting the validity constraints forced by the Dtd. The insertion point is defined using @prev and @next in the following ways: to insert before &apos;node&apos;: xmlValidGetValidElements(node-&gt;prev, node, ... to insert next &apos;node&apos;: xmlValidGetValidElements(node, node-&gt;next, ... to replace &apos;node&apos;: xmlValidGetValidElements(node-&gt;prev, node-&gt;next, ... to prepend a child to &apos;node&apos;: xmlValidGetValidElements(NULL, node-&gt;childs, to append a child to &apos;node&apos;: xmlValidGetValidElements(node-&gt;last, NULL, ... pointers to the element names are inserted at the beginning of the array and do not need to be freed.</info>
<return type='int' info='the number of element in the list, or -1 in case of error. If the function returns the value @max the caller is invited to grow the receiving array and retry.'/>
@@ -15715,7 +15763,7 @@ actually an xmlCharEncoding'/>
<arg name='names' type='const xmlChar **' info='an array to store the list of child names'/>
<arg name='max' type='int' info='the size of the array'/>
</function>
- <function name='xmlValidNormalizeAttributeValue' file='valid'>
+ <function name='xmlValidNormalizeAttributeValue' file='valid' module='valid'>
<cond>defined(LIBXML_VALID_ENABLED)</cond>
<info>Does the validation related extra step of the normalization of attribute values: If the declared value is not CDATA, then the XML processor must further process the normalized attribute value by discarding any leading and trailing space (#x20) characters, and by replacing sequences of space (#x20) characters by single space (#x20) character.</info>
<return type='xmlChar *' info='a new normalized string if normalization is needed, NULL otherwise the caller must free the returned value.'/>
@@ -15724,7 +15772,7 @@ actually an xmlCharEncoding'/>
<arg name='name' type='const xmlChar *' info='the attribute name'/>
<arg name='value' type='const xmlChar *' info='the attribute value'/>
</function>
- <function name='xmlValidateAttributeDecl' file='valid'>
+ <function name='xmlValidateAttributeDecl' file='valid' module='valid'>
<cond>defined(LIBXML_VALID_ENABLED)</cond>
<info>Try to validate a single attribute definition basically it does the following checks as described by the XML-1.0 recommendation: - [ VC: Attribute Default Legal ] - [ VC: Enumeration ] - [ VC: ID Attribute Default ] The ID/IDREF uniqueness and matching are done separately</info>
<return type='int' info='1 if valid or 0 otherwise'/>
@@ -15732,28 +15780,28 @@ actually an xmlCharEncoding'/>
<arg name='doc' type='xmlDocPtr' info='a document instance'/>
<arg name='attr' type='xmlAttributePtr' info='an attribute definition'/>
</function>
- <function name='xmlValidateAttributeValue' file='valid'>
+ <function name='xmlValidateAttributeValue' file='valid' module='valid'>
<cond>defined(LIBXML_VALID_ENABLED)</cond>
<info>Validate that the given attribute value match the proper production [ VC: ID ] Values of type ID must match the Name production.... [ VC: IDREF ] Values of type IDREF must match the Name production, and values of type IDREFS must match Names ... [ VC: Entity Name ] Values of type ENTITY must match the Name production, values of type ENTITIES must match Names ... [ VC: Name Token ] Values of type NMTOKEN must match the Nmtoken production; values of type NMTOKENS must match Nmtokens.</info>
<return type='int' info='1 if valid or 0 otherwise'/>
<arg name='type' type='xmlAttributeType' info='an attribute type'/>
<arg name='value' type='const xmlChar *' info='an attribute value'/>
</function>
- <function name='xmlValidateDocument' file='valid'>
+ <function name='xmlValidateDocument' file='valid' module='valid'>
<cond>defined(LIBXML_VALID_ENABLED)</cond>
<info>Try to validate the document instance basically it does the all the checks described by the XML Rec i.e. validates the internal and external subset (if present) and validate the document tree.</info>
<return type='int' info='1 if valid or 0 otherwise'/>
<arg name='ctxt' type='xmlValidCtxtPtr' info='the validation context'/>
<arg name='doc' type='xmlDocPtr' info='a document instance'/>
</function>
- <function name='xmlValidateDocumentFinal' file='valid'>
+ <function name='xmlValidateDocumentFinal' file='valid' module='valid'>
<cond>defined(LIBXML_VALID_ENABLED)</cond>
<info>Does the final step for the document validation once all the incremental validation steps have been completed basically it does the following checks described by the XML Rec Check all the IDREF/IDREFS attributes definition for validity</info>
<return type='int' info='1 if valid or 0 otherwise'/>
<arg name='ctxt' type='xmlValidCtxtPtr' info='the validation context'/>
<arg name='doc' type='xmlDocPtr' info='a document instance'/>
</function>
- <function name='xmlValidateDtd' file='valid'>
+ <function name='xmlValidateDtd' file='valid' module='valid'>
<cond>defined(LIBXML_VALID_ENABLED)</cond>
<info>Try to validate the document against the dtd instance Basically it does check all the definitions in the DtD. Note the the internal subset (if present) is de-coupled (i.e. not used), which could give problems if ID or IDREF is present.</info>
<return type='int' info='1 if valid or 0 otherwise'/>
@@ -15761,14 +15809,14 @@ actually an xmlCharEncoding'/>
<arg name='doc' type='xmlDocPtr' info='a document instance'/>
<arg name='dtd' type='xmlDtdPtr' info='a dtd instance'/>
</function>
- <function name='xmlValidateDtdFinal' file='valid'>
+ <function name='xmlValidateDtdFinal' file='valid' module='valid'>
<cond>defined(LIBXML_VALID_ENABLED)</cond>
<info>Does the final step for the dtds validation once all the subsets have been parsed basically it does the following checks described by the XML Rec - check that ENTITY and ENTITIES type attributes default or possible values matches one of the defined entities. - check that NOTATION type attributes default or possible values matches one of the defined notations.</info>
<return type='int' info='1 if valid or 0 if invalid and -1 if not well-formed'/>
<arg name='ctxt' type='xmlValidCtxtPtr' info='the validation context'/>
<arg name='doc' type='xmlDocPtr' info='a document instance'/>
</function>
- <function name='xmlValidateElement' file='valid'>
+ <function name='xmlValidateElement' file='valid' module='valid'>
<cond>defined(LIBXML_VALID_ENABLED)</cond>
<info>Try to validate the subtree under an element</info>
<return type='int' info='1 if valid or 0 otherwise'/>
@@ -15776,7 +15824,7 @@ actually an xmlCharEncoding'/>
<arg name='doc' type='xmlDocPtr' info='a document instance'/>
<arg name='elem' type='xmlNodePtr' info='an element instance'/>
</function>
- <function name='xmlValidateElementDecl' file='valid'>
+ <function name='xmlValidateElementDecl' file='valid' module='valid'>
<cond>defined(LIBXML_VALID_ENABLED)</cond>
<info>Try to validate a single element definition basically it does the following checks as described by the XML-1.0 recommendation: - [ VC: One ID per Element Type ] - [ VC: No Duplicate Types ] - [ VC: Unique Element Type Declaration ]</info>
<return type='int' info='1 if valid or 0 otherwise'/>
@@ -15784,52 +15832,52 @@ actually an xmlCharEncoding'/>
<arg name='doc' type='xmlDocPtr' info='a document instance'/>
<arg name='elem' type='xmlElementPtr' info='an element definition'/>
</function>
- <function name='xmlValidateNCName' file='tree'>
+ <function name='xmlValidateNCName' file='tree' module='tree'>
<cond>defined(LIBXML_TREE_ENABLED) || defined(LIBXML_XPATH_ENABLED) || defined(LIBXML_SCHEMAS_ENABLED) || defined(LIBXML_DEBUG_ENABLED)</cond>
<info>Check that a value conforms to the lexical space of NCName</info>
<return type='int' info='0 if this validates, a positive error code number otherwise and -1 in case of internal or API error.'/>
<arg name='value' type='const xmlChar *' info='the value to check'/>
<arg name='space' type='int' info='allow spaces in front and end of the string'/>
</function>
- <function name='xmlValidateNMToken' file='tree'>
+ <function name='xmlValidateNMToken' file='tree' module='tree'>
<cond>defined(LIBXML_TREE_ENABLED) || defined(LIBXML_SCHEMAS_ENABLED)</cond>
<info>Check that a value conforms to the lexical space of NMToken</info>
<return type='int' info='0 if this validates, a positive error code number otherwise and -1 in case of internal or API error.'/>
<arg name='value' type='const xmlChar *' info='the value to check'/>
<arg name='space' type='int' info='allow spaces in front and end of the string'/>
</function>
- <function name='xmlValidateName' file='tree'>
+ <function name='xmlValidateName' file='tree' module='tree'>
<cond>defined(LIBXML_TREE_ENABLED) || defined(LIBXML_SCHEMAS_ENABLED)</cond>
<info>Check that a value conforms to the lexical space of Name</info>
<return type='int' info='0 if this validates, a positive error code number otherwise and -1 in case of internal or API error.'/>
<arg name='value' type='const xmlChar *' info='the value to check'/>
<arg name='space' type='int' info='allow spaces in front and end of the string'/>
</function>
- <function name='xmlValidateNameValue' file='valid'>
+ <function name='xmlValidateNameValue' file='valid' module='valid'>
<cond>defined(LIBXML_VALID_ENABLED)</cond>
<info>Validate that the given value match Name production</info>
<return type='int' info='1 if valid or 0 otherwise'/>
<arg name='value' type='const xmlChar *' info='an Name value'/>
</function>
- <function name='xmlValidateNamesValue' file='valid'>
+ <function name='xmlValidateNamesValue' file='valid' module='valid'>
<cond>defined(LIBXML_VALID_ENABLED)</cond>
<info>Validate that the given value match Names production</info>
<return type='int' info='1 if valid or 0 otherwise'/>
<arg name='value' type='const xmlChar *' info='an Names value'/>
</function>
- <function name='xmlValidateNmtokenValue' file='valid'>
+ <function name='xmlValidateNmtokenValue' file='valid' module='valid'>
<cond>defined(LIBXML_VALID_ENABLED)</cond>
<info>Validate that the given value match Nmtoken production [ VC: Name Token ]</info>
<return type='int' info='1 if valid or 0 otherwise'/>
<arg name='value' type='const xmlChar *' info='an Nmtoken value'/>
</function>
- <function name='xmlValidateNmtokensValue' file='valid'>
+ <function name='xmlValidateNmtokensValue' file='valid' module='valid'>
<cond>defined(LIBXML_VALID_ENABLED)</cond>
<info>Validate that the given value match Nmtokens production [ VC: Name Token ]</info>
<return type='int' info='1 if valid or 0 otherwise'/>
<arg name='value' type='const xmlChar *' info='an Nmtokens value'/>
</function>
- <function name='xmlValidateNotationDecl' file='valid'>
+ <function name='xmlValidateNotationDecl' file='valid' module='valid'>
<cond>defined(LIBXML_VALID_ENABLED)</cond>
<info>Try to validate a single notation definition basically it does the following checks as described by the XML-1.0 recommendation: - it seems that no validity constraint exists on notation declarations But this function get called anyway ...</info>
<return type='int' info='1 if valid or 0 otherwise'/>
@@ -15837,7 +15885,7 @@ actually an xmlCharEncoding'/>
<arg name='doc' type='xmlDocPtr' info='a document instance'/>
<arg name='nota' type='xmlNotationPtr' info='a notation definition'/>
</function>
- <function name='xmlValidateNotationUse' file='valid'>
+ <function name='xmlValidateNotationUse' file='valid' module='valid'>
<cond>defined(LIBXML_VALID_ENABLED) || defined(LIBXML_SCHEMAS_ENABLED)</cond>
<info>Validate that the given name match a notation declaration. - [ VC: Notation Declared ]</info>
<return type='int' info='1 if valid or 0 otherwise'/>
@@ -15845,7 +15893,7 @@ actually an xmlCharEncoding'/>
<arg name='doc' type='xmlDocPtr' info='the document'/>
<arg name='notationName' type='const xmlChar *' info='the notation name to check'/>
</function>
- <function name='xmlValidateOneAttribute' file='valid'>
+ <function name='xmlValidateOneAttribute' file='valid' module='valid'>
<cond>defined(LIBXML_VALID_ENABLED)</cond>
<info>Try to validate a single attribute for an element basically it does the following checks as described by the XML-1.0 recommendation: - [ VC: Attribute Value Type ] - [ VC: Fixed Attribute Default ] - [ VC: Entity Name ] - [ VC: Name Token ] - [ VC: ID ] - [ VC: IDREF ] - [ VC: Entity Name ] - [ VC: Notation Attributes ] The ID/IDREF uniqueness and matching are done separately</info>
<return type='int' info='1 if valid or 0 otherwise'/>
@@ -15855,7 +15903,7 @@ actually an xmlCharEncoding'/>
<arg name='attr' type='xmlAttrPtr' info='an attribute instance'/>
<arg name='value' type='const xmlChar *' info='the attribute value (without entities processing)'/>
</function>
- <function name='xmlValidateOneElement' file='valid'>
+ <function name='xmlValidateOneElement' file='valid' module='valid'>
<cond>defined(LIBXML_VALID_ENABLED)</cond>
<info>Try to validate a single element and it&apos;s attributes, basically it does the following checks as described by the XML-1.0 recommendation: - [ VC: Element Valid ] - [ VC: Required Attribute ] Then call xmlValidateOneAttribute() for each attribute present. The ID/IDREF checkings are done separately</info>
<return type='int' info='1 if valid or 0 otherwise'/>
@@ -15863,7 +15911,7 @@ actually an xmlCharEncoding'/>
<arg name='doc' type='xmlDocPtr' info='a document instance'/>
<arg name='elem' type='xmlNodePtr' info='an element instance'/>
</function>
- <function name='xmlValidateOneNamespace' file='valid'>
+ <function name='xmlValidateOneNamespace' file='valid' module='valid'>
<cond>defined(LIBXML_VALID_ENABLED)</cond>
<info>Try to validate a single namespace declaration for an element basically it does the following checks as described by the XML-1.0 recommendation: - [ VC: Attribute Value Type ] - [ VC: Fixed Attribute Default ] - [ VC: Entity Name ] - [ VC: Name Token ] - [ VC: ID ] - [ VC: IDREF ] - [ VC: Entity Name ] - [ VC: Notation Attributes ] The ID/IDREF uniqueness and matching are done separately</info>
<return type='int' info='1 if valid or 0 otherwise'/>
@@ -15874,7 +15922,7 @@ actually an xmlCharEncoding'/>
<arg name='ns' type='xmlNsPtr' info='an namespace declaration instance'/>
<arg name='value' type='const xmlChar *' info='the attribute value (without entities processing)'/>
</function>
- <function name='xmlValidatePopElement' file='valid'>
+ <function name='xmlValidatePopElement' file='valid' module='valid'>
<cond>defined(LIBXML_VALID_ENABLED) &amp;&amp; defined(LIBXML_REGEXP_ENABLED)</cond>
<info>Pop the element end from the validation stack.</info>
<return type='int' info='1 if no validation problem was found or 0 otherwise'/>
@@ -15883,7 +15931,7 @@ actually an xmlCharEncoding'/>
<arg name='elem' type='xmlNodePtr' info='an element instance'/>
<arg name='qname' type='const xmlChar *' info='the qualified name as appearing in the serialization'/>
</function>
- <function name='xmlValidatePushCData' file='valid'>
+ <function name='xmlValidatePushCData' file='valid' module='valid'>
<cond>defined(LIBXML_VALID_ENABLED) &amp;&amp; defined(LIBXML_REGEXP_ENABLED)</cond>
<info>check the CData parsed for validation in the current stack</info>
<return type='int' info='1 if no validation problem was found or 0 otherwise'/>
@@ -15891,7 +15939,7 @@ actually an xmlCharEncoding'/>
<arg name='data' type='const xmlChar *' info='some character data read'/>
<arg name='len' type='int' info='the lenght of the data'/>
</function>
- <function name='xmlValidatePushElement' file='valid'>
+ <function name='xmlValidatePushElement' file='valid' module='valid'>
<cond>defined(LIBXML_VALID_ENABLED) &amp;&amp; defined(LIBXML_REGEXP_ENABLED)</cond>
<info>Push a new element start on the validation stack.</info>
<return type='int' info='1 if no validation problem was found or 0 otherwise'/>
@@ -15900,205 +15948,205 @@ actually an xmlCharEncoding'/>
<arg name='elem' type='xmlNodePtr' info='an element instance'/>
<arg name='qname' type='const xmlChar *' info='the qualified name as appearing in the serialization'/>
</function>
- <function name='xmlValidateQName' file='tree'>
+ <function name='xmlValidateQName' file='tree' module='tree'>
<cond>defined(LIBXML_TREE_ENABLED) || defined(LIBXML_SCHEMAS_ENABLED)</cond>
<info>Check that a value conforms to the lexical space of QName</info>
<return type='int' info='0 if this validates, a positive error code number otherwise and -1 in case of internal or API error.'/>
<arg name='value' type='const xmlChar *' info='the value to check'/>
<arg name='space' type='int' info='allow spaces in front and end of the string'/>
</function>
- <function name='xmlValidateRoot' file='valid'>
+ <function name='xmlValidateRoot' file='valid' module='valid'>
<cond>defined(LIBXML_VALID_ENABLED)</cond>
<info>Try to validate a the root element basically it does the following check as described by the XML-1.0 recommendation: - [ VC: Root Element Type ] it doesn&apos;t try to recurse or apply other check to the element</info>
<return type='int' info='1 if valid or 0 otherwise'/>
<arg name='ctxt' type='xmlValidCtxtPtr' info='the validation context'/>
<arg name='doc' type='xmlDocPtr' info='a document instance'/>
</function>
- <functype name='xmlValidityErrorFunc' file='valid'>
+ <functype name='xmlValidityErrorFunc' file='valid' module='valid'>
<info>Callback called when a validity error is found. This is a message oriented function similar to an *printf function.</info>
<return type='void'/>
<arg name='ctx' type='void *' info='usually an xmlValidCtxtPtr to a validity error context, but comes from ctxt-&gt;userData (which normally contains such a pointer); ctxt-&gt;userData can be changed by the user.'/>
<arg name='msg' type='const char *' info='the string to format *printf like vararg'/>
<arg name='...' type='...' info='remaining arguments to the format'/>
</functype>
- <functype name='xmlValidityWarningFunc' file='valid'>
+ <functype name='xmlValidityWarningFunc' file='valid' module='valid'>
<info>Callback called when a validity warning is found. This is a message oriented function similar to an *printf function.</info>
<return type='void'/>
<arg name='ctx' type='void *' info='usually an xmlValidCtxtPtr to a validity error context, but comes from ctxt-&gt;userData (which normally contains such a pointer); ctxt-&gt;userData can be changed by the user.'/>
<arg name='msg' type='const char *' info='the string to format *printf like vararg'/>
<arg name='...' type='...' info='remaining arguments to the format'/>
</functype>
- <function name='xmlXIncludeFreeContext' file='xinclude'>
+ <function name='xmlXIncludeFreeContext' file='xinclude' module='xinclude'>
<cond>defined(LIBXML_XINCLUDE_ENABLED)</cond>
<info>Free an XInclude context</info>
<return type='void'/>
<arg name='ctxt' type='xmlXIncludeCtxtPtr' info='the XInclude context'/>
</function>
- <function name='xmlXIncludeNewContext' file='xinclude'>
+ <function name='xmlXIncludeNewContext' file='xinclude' module='xinclude'>
<cond>defined(LIBXML_XINCLUDE_ENABLED)</cond>
<info>Creates a new XInclude context</info>
<return type='xmlXIncludeCtxtPtr' info='the new set'/>
<arg name='doc' type='xmlDocPtr' info='an XML Document'/>
</function>
- <function name='xmlXIncludeProcess' file='xinclude'>
+ <function name='xmlXIncludeProcess' file='xinclude' module='xinclude'>
<cond>defined(LIBXML_XINCLUDE_ENABLED)</cond>
<info>Implement the XInclude substitution on the XML document @doc</info>
<return type='int' info='0 if no substitution were done, -1 if some processing failed or the number of substitutions done.'/>
<arg name='doc' type='xmlDocPtr' info='an XML document'/>
</function>
- <function name='xmlXIncludeProcessFlags' file='xinclude'>
+ <function name='xmlXIncludeProcessFlags' file='xinclude' module='xinclude'>
<cond>defined(LIBXML_XINCLUDE_ENABLED)</cond>
<info>Implement the XInclude substitution on the XML document @doc</info>
<return type='int' info='0 if no substitution were done, -1 if some processing failed or the number of substitutions done.'/>
<arg name='doc' type='xmlDocPtr' info='an XML document'/>
<arg name='flags' type='int' info='a set of xmlParserOption used for parsing XML includes'/>
</function>
- <function name='xmlXIncludeProcessNode' file='xinclude'>
+ <function name='xmlXIncludeProcessNode' file='xinclude' module='xinclude'>
<cond>defined(LIBXML_XINCLUDE_ENABLED)</cond>
<info>Implement the XInclude substitution for the given subtree reusing the informations and data coming from the given context.</info>
<return type='int' info='0 if no substitution were done, -1 if some processing failed or the number of substitutions done.'/>
<arg name='ctxt' type='xmlXIncludeCtxtPtr' info='an existing XInclude context'/>
<arg name='node' type='xmlNodePtr' info='a node in an XML document'/>
</function>
- <function name='xmlXIncludeProcessTree' file='xinclude'>
+ <function name='xmlXIncludeProcessTree' file='xinclude' module='xinclude'>
<cond>defined(LIBXML_XINCLUDE_ENABLED)</cond>
<info>Implement the XInclude substitution for the given subtree</info>
<return type='int' info='0 if no substitution were done, -1 if some processing failed or the number of substitutions done.'/>
<arg name='tree' type='xmlNodePtr' info='a node in an XML document'/>
</function>
- <function name='xmlXIncludeProcessTreeFlags' file='xinclude'>
+ <function name='xmlXIncludeProcessTreeFlags' file='xinclude' module='xinclude'>
<cond>defined(LIBXML_XINCLUDE_ENABLED)</cond>
<info>Implement the XInclude substitution for the given subtree</info>
<return type='int' info='0 if no substitution were done, -1 if some processing failed or the number of substitutions done.'/>
<arg name='tree' type='xmlNodePtr' info='a node in an XML document'/>
<arg name='flags' type='int' info='a set of xmlParserOption used for parsing XML includes'/>
</function>
- <function name='xmlXIncludeSetFlags' file='xinclude'>
+ <function name='xmlXIncludeSetFlags' file='xinclude' module='xinclude'>
<cond>defined(LIBXML_XINCLUDE_ENABLED)</cond>
<info>Set the flags used for further processing of XML resources.</info>
<return type='int' info='0 in case of success and -1 in case of error.'/>
<arg name='ctxt' type='xmlXIncludeCtxtPtr' info='an XInclude processing context'/>
<arg name='flags' type='int' info='a set of xmlParserOption used for parsing XML includes'/>
</function>
- <function name='xmlXPathAddValues' file='xpathInternals'>
+ <function name='xmlXPathAddValues' file='xpathInternals' module='xpath'>
<cond>defined(LIBXML_XPATH_ENABLED)</cond>
<info>Implement the add operation on XPath objects: The numeric operators convert their operands to numbers as if by calling the number function.</info>
<return type='void'/>
<arg name='ctxt' type='xmlXPathParserContextPtr' info='the XPath Parser context'/>
</function>
- <functype name='xmlXPathAxisFunc' file='xpath'>
+ <functype name='xmlXPathAxisFunc' file='xpath' module='xpath'>
<cond>defined(LIBXML_XPATH_ENABLED)</cond>
<info>An axis traversal function. To traverse an axis, the engine calls the first time with cur == NULL and repeat until the function returns NULL indicating the end of the axis traversal.</info>
<return type='xmlXPathObjectPtr' info='the next node in that axis or NULL if at the end of the axis.'/>
<arg name='ctxt' type='xmlXPathParserContextPtr' info='the XPath interpreter context'/>
<arg name='cur' type='xmlXPathObjectPtr' info='the previous node being explored on that axis'/>
</functype>
- <function name='xmlXPathBooleanFunction' file='xpathInternals'>
+ <function name='xmlXPathBooleanFunction' file='xpathInternals' module='xpath'>
<cond>defined(LIBXML_XPATH_ENABLED)</cond>
<info>Implement the boolean() XPath function boolean boolean(object) The boolean function converts its argument to a boolean as follows: - a number is true if and only if it is neither positive or negative zero nor NaN - a node-set is true if and only if it is non-empty - a string is true if and only if its length is non-zero</info>
<return type='void'/>
<arg name='ctxt' type='xmlXPathParserContextPtr' info='the XPath Parser context'/>
<arg name='nargs' type='int' info='the number of arguments'/>
</function>
- <function name='xmlXPathCastBooleanToNumber' file='xpath'>
+ <function name='xmlXPathCastBooleanToNumber' file='xpath' module='xpath'>
<cond>defined(LIBXML_XPATH_ENABLED)</cond>
<info>Converts a boolean to its number value</info>
<return type='double' info='the number value'/>
<arg name='val' type='int' info='a boolean'/>
</function>
- <function name='xmlXPathCastBooleanToString' file='xpath'>
+ <function name='xmlXPathCastBooleanToString' file='xpath' module='xpath'>
<cond>defined(LIBXML_XPATH_ENABLED)</cond>
<info>Converts a boolean to its string value.</info>
<return type='xmlChar *' info='a newly allocated string.'/>
<arg name='val' type='int' info='a boolean'/>
</function>
- <function name='xmlXPathCastNodeSetToBoolean' file='xpath'>
+ <function name='xmlXPathCastNodeSetToBoolean' file='xpath' module='xpath'>
<cond>defined(LIBXML_XPATH_ENABLED)</cond>
<info>Converts a node-set to its boolean value</info>
<return type='int' info='the boolean value'/>
<arg name='ns' type='xmlNodeSetPtr' info='a node-set'/>
</function>
- <function name='xmlXPathCastNodeSetToNumber' file='xpath'>
+ <function name='xmlXPathCastNodeSetToNumber' file='xpath' module='xpath'>
<cond>defined(LIBXML_XPATH_ENABLED)</cond>
<info>Converts a node-set to its number value</info>
<return type='double' info='the number value'/>
<arg name='ns' type='xmlNodeSetPtr' info='a node-set'/>
</function>
- <function name='xmlXPathCastNodeSetToString' file='xpath'>
+ <function name='xmlXPathCastNodeSetToString' file='xpath' module='xpath'>
<cond>defined(LIBXML_XPATH_ENABLED)</cond>
<info>Converts a node-set to its string value.</info>
<return type='xmlChar *' info='a newly allocated string.'/>
<arg name='ns' type='xmlNodeSetPtr' info='a node-set'/>
</function>
- <function name='xmlXPathCastNodeToNumber' file='xpath'>
+ <function name='xmlXPathCastNodeToNumber' file='xpath' module='xpath'>
<cond>defined(LIBXML_XPATH_ENABLED)</cond>
<info>Converts a node to its number value</info>
<return type='double' info='the number value'/>
<arg name='node' type='xmlNodePtr' info='a node'/>
</function>
- <function name='xmlXPathCastNodeToString' file='xpath'>
+ <function name='xmlXPathCastNodeToString' file='xpath' module='xpath'>
<cond>defined(LIBXML_XPATH_ENABLED)</cond>
<info>Converts a node to its string value.</info>
<return type='xmlChar *' info='a newly allocated string.'/>
<arg name='node' type='xmlNodePtr' info='a node'/>
</function>
- <function name='xmlXPathCastNumberToBoolean' file='xpath'>
+ <function name='xmlXPathCastNumberToBoolean' file='xpath' module='xpath'>
<cond>defined(LIBXML_XPATH_ENABLED)</cond>
<info>Converts a number to its boolean value</info>
<return type='int' info='the boolean value'/>
<arg name='val' type='double' info='a number'/>
</function>
- <function name='xmlXPathCastNumberToString' file='xpath'>
+ <function name='xmlXPathCastNumberToString' file='xpath' module='xpath'>
<cond>defined(LIBXML_XPATH_ENABLED)</cond>
<info>Converts a number to its string value.</info>
<return type='xmlChar *' info='a newly allocated string.'/>
<arg name='val' type='double' info='a number'/>
</function>
- <function name='xmlXPathCastStringToBoolean' file='xpath'>
+ <function name='xmlXPathCastStringToBoolean' file='xpath' module='xpath'>
<cond>defined(LIBXML_XPATH_ENABLED)</cond>
<info>Converts a string to its boolean value</info>
<return type='int' info='the boolean value'/>
<arg name='val' type='const xmlChar *' info='a string'/>
</function>
- <function name='xmlXPathCastStringToNumber' file='xpath'>
+ <function name='xmlXPathCastStringToNumber' file='xpath' module='xpath'>
<cond>defined(LIBXML_XPATH_ENABLED)</cond>
<info>Converts a string to its number value</info>
<return type='double' info='the number value'/>
<arg name='val' type='const xmlChar *' info='a string'/>
</function>
- <function name='xmlXPathCastToBoolean' file='xpath'>
+ <function name='xmlXPathCastToBoolean' file='xpath' module='xpath'>
<cond>defined(LIBXML_XPATH_ENABLED)</cond>
<info>Converts an XPath object to its boolean value</info>
<return type='int' info='the boolean value'/>
<arg name='val' type='xmlXPathObjectPtr' info='an XPath object'/>
</function>
- <function name='xmlXPathCastToNumber' file='xpath'>
+ <function name='xmlXPathCastToNumber' file='xpath' module='xpath'>
<cond>defined(LIBXML_XPATH_ENABLED)</cond>
<info>Converts an XPath object to its number value</info>
<return type='double' info='the number value'/>
<arg name='val' type='xmlXPathObjectPtr' info='an XPath object'/>
</function>
- <function name='xmlXPathCastToString' file='xpath'>
+ <function name='xmlXPathCastToString' file='xpath' module='xpath'>
<cond>defined(LIBXML_XPATH_ENABLED)</cond>
<info>Converts an existing object to its string() equivalent</info>
<return type='xmlChar *' info='the 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'>
+ <function name='xmlXPathCeilingFunction' file='xpathInternals' module='xpath'>
<cond>defined(LIBXML_XPATH_ENABLED)</cond>
<info>Implement the ceiling() XPath function number ceiling(number) The ceiling function returns the smallest (closest to negative infinity) number that is not less than the argument and that is an integer.</info>
<return type='void'/>
<arg name='ctxt' type='xmlXPathParserContextPtr' info='the XPath Parser context'/>
<arg name='nargs' type='int' info='the number of arguments'/>
</function>
- <function name='xmlXPathCmpNodes' file='xpath'>
+ <function name='xmlXPathCmpNodes' file='xpath' module='xpath'>
<cond>defined(LIBXML_XPATH_ENABLED)</cond>
<info>Compare two nodes w.r.t document order</info>
<return type='int' info='-2 in case of error 1 if first point &lt; second point, 0 if it&apos;s the same node, -1 otherwise'/>
<arg name='node1' type='xmlNodePtr' info='the first node'/>
<arg name='node2' type='xmlNodePtr' info='the second node'/>
</function>
- <function name='xmlXPathCompareValues' file='xpathInternals'>
+ <function name='xmlXPathCompareValues' file='xpathInternals' module='xpath'>
<cond>defined(LIBXML_XPATH_ENABLED)</cond>
<info>Implement the compare operation on XPath objects: @arg1 &lt; @arg2 (1, 1, ... @arg1 &lt;= @arg2 (1, 0, ... @arg1 &gt; @arg2 (0, 1, ... @arg1 &gt;= @arg2 (0, 0, ... When neither object to be compared is a node-set and the operator is &lt;=, &lt;, &gt;=, &gt;, then the objects are compared by converted both objects to numbers and comparing the numbers according to IEEE 754. The &lt; comparison will be true if and only if the first number is less than the second number. The &lt;= comparison will be true if and only if the first number is less than or equal to the second number. The &gt; comparison will be true if and only if the first number is greater than the second number. The &gt;= comparison will be true if and only if the first number is greater than or equal to the second number.</info>
<return type='int' info='1 if the comparison succeeded, 0 if it failed'/>
@@ -16106,73 +16154,73 @@ actually an xmlCharEncoding'/>
<arg name='inf' type='int' info='less than (1) or greater than (0)'/>
<arg name='strict' type='int' info='is the comparison strict'/>
</function>
- <function name='xmlXPathCompile' file='xpath'>
+ <function name='xmlXPathCompile' file='xpath' module='xpath'>
<cond>defined(LIBXML_XPATH_ENABLED)</cond>
<info>Compile an XPath expression</info>
<return type='xmlXPathCompExprPtr' info='the xmlXPathCompExprPtr resulting from the compilation or NULL. the caller has to free the object.'/>
<arg name='str' type='const xmlChar *' info='the XPath expression'/>
</function>
- <function name='xmlXPathCompiledEval' file='xpath'>
+ <function name='xmlXPathCompiledEval' file='xpath' module='xpath'>
<cond>defined(LIBXML_XPATH_ENABLED)</cond>
<info>Evaluate the Precompiled XPath expression in the given context.</info>
<return type='xmlXPathObjectPtr' info='the xmlXPathObjectPtr resulting from the evaluation or NULL. the caller has to free the object.'/>
<arg name='comp' type='xmlXPathCompExprPtr' info='the compiled XPath expression'/>
<arg name='ctx' type='xmlXPathContextPtr' info='the XPath context'/>
</function>
- <function name='xmlXPathConcatFunction' file='xpathInternals'>
+ <function name='xmlXPathConcatFunction' file='xpathInternals' module='xpath'>
<cond>defined(LIBXML_XPATH_ENABLED)</cond>
<info>Implement the concat() XPath function string concat(string, string, string*) The concat function returns the concatenation of its arguments.</info>
<return type='void'/>
<arg name='ctxt' type='xmlXPathParserContextPtr' info='the XPath Parser context'/>
<arg name='nargs' type='int' info='the number of arguments'/>
</function>
- <function name='xmlXPathContainsFunction' file='xpathInternals'>
+ <function name='xmlXPathContainsFunction' file='xpathInternals' module='xpath'>
<cond>defined(LIBXML_XPATH_ENABLED)</cond>
<info>Implement the contains() XPath function boolean contains(string, string) The contains function returns true if the first argument string contains the second argument string, and otherwise returns false.</info>
<return type='void'/>
<arg name='ctxt' type='xmlXPathParserContextPtr' info='the XPath Parser context'/>
<arg name='nargs' type='int' info='the number of arguments'/>
</function>
- <function name='xmlXPathConvertBoolean' file='xpath'>
+ <function name='xmlXPathConvertBoolean' file='xpath' module='xpath'>
<cond>defined(LIBXML_XPATH_ENABLED)</cond>
<info>Converts an existing object to its boolean() equivalent</info>
<return type='xmlXPathObjectPtr' info='the new object, the old one is freed (or the operation is done directly on @val)'/>
<arg name='val' type='xmlXPathObjectPtr' info='an XPath object'/>
</function>
- <functype name='xmlXPathConvertFunc' file='xpath'>
+ <functype name='xmlXPathConvertFunc' file='xpath' module='xpath'>
<cond>defined(LIBXML_XPATH_ENABLED)</cond>
<info>A conversion function is associated to a type and used to cast the new type to primitive values.</info>
<return type='int' info='-1 in case of error, 0 otherwise'/>
<arg name='obj' type='xmlXPathObjectPtr' info='an XPath object'/>
<arg name='type' type='int' info='the number of the target type'/>
</functype>
- <function name='xmlXPathConvertNumber' file='xpath'>
+ <function name='xmlXPathConvertNumber' file='xpath' module='xpath'>
<cond>defined(LIBXML_XPATH_ENABLED)</cond>
<info>Converts an existing object to its number() equivalent</info>
<return type='xmlXPathObjectPtr' info='the new object, the old one is freed (or the operation is done directly on @val)'/>
<arg name='val' type='xmlXPathObjectPtr' info='an XPath object'/>
</function>
- <function name='xmlXPathConvertString' file='xpath'>
+ <function name='xmlXPathConvertString' file='xpath' module='xpath'>
<cond>defined(LIBXML_XPATH_ENABLED)</cond>
<info>Converts an existing object to its string() equivalent</info>
<return type='xmlXPathObjectPtr' info='the new object, the old one is freed (or the operation is done directly on @val)'/>
<arg name='val' type='xmlXPathObjectPtr' info='an XPath object'/>
</function>
- <function name='xmlXPathCountFunction' file='xpathInternals'>
+ <function name='xmlXPathCountFunction' file='xpathInternals' module='xpath'>
<cond>defined(LIBXML_XPATH_ENABLED)</cond>
<info>Implement the count() XPath function number count(node-set)</info>
<return type='void'/>
<arg name='ctxt' type='xmlXPathParserContextPtr' info='the XPath Parser context'/>
<arg name='nargs' type='int' info='the number of arguments'/>
</function>
- <function name='xmlXPathCtxtCompile' file='xpath'>
+ <function name='xmlXPathCtxtCompile' file='xpath' module='xpath'>
<cond>defined(LIBXML_XPATH_ENABLED)</cond>
<info>Compile an XPath expression</info>
<return type='xmlXPathCompExprPtr' info='the xmlXPathCompExprPtr resulting from the compilation or NULL. the caller has to free the object.'/>
<arg name='ctxt' type='xmlXPathContextPtr' info='an XPath context'/>
<arg name='str' type='const xmlChar *' info='the XPath expression'/>
</function>
- <function name='xmlXPathDebugDumpCompExpr' file='xpathInternals'>
+ <function name='xmlXPathDebugDumpCompExpr' file='xpathInternals' module='xpath'>
<cond>defined(LIBXML_XPATH_ENABLED) &amp;&amp; defined(LIBXML_DEBUG_ENABLED)</cond>
<info>Dumps the tree of the compiled XPath expression.</info>
<return type='void'/>
@@ -16180,7 +16228,7 @@ actually an xmlCharEncoding'/>
<arg name='comp' type='xmlXPathCompExprPtr' info='the precompiled XPath expression'/>
<arg name='depth' type='int' info='the indentation level.'/>
</function>
- <function name='xmlXPathDebugDumpObject' file='xpathInternals'>
+ <function name='xmlXPathDebugDumpObject' file='xpathInternals' module='xpath'>
<cond>defined(LIBXML_XPATH_ENABLED) &amp;&amp; defined(LIBXML_DEBUG_ENABLED)</cond>
<info>Dump the content of the object for debugging purposes</info>
<return type='void'/>
@@ -16188,136 +16236,136 @@ actually an xmlCharEncoding'/>
<arg name='cur' type='xmlXPathObjectPtr' info='the object to inspect'/>
<arg name='depth' type='int' info='indentation level'/>
</function>
- <function name='xmlXPathDifference' file='xpathInternals'>
+ <function name='xmlXPathDifference' file='xpathInternals' module='xpath'>
<cond>defined(LIBXML_XPATH_ENABLED)</cond>
<info>Implements the EXSLT - Sets difference() function: node-set set:difference (node-set, node-set)</info>
<return type='xmlNodeSetPtr' info='the difference between the two node sets, or nodes1 if nodes2 is empty'/>
<arg name='nodes1' type='xmlNodeSetPtr' info='a node-set'/>
<arg name='nodes2' type='xmlNodeSetPtr' info='a node-set'/>
</function>
- <function name='xmlXPathDistinct' file='xpathInternals'>
+ <function name='xmlXPathDistinct' file='xpathInternals' module='xpath'>
<cond>defined(LIBXML_XPATH_ENABLED)</cond>
<info>Implements the EXSLT - Sets distinct() function: node-set set:distinct (node-set) @nodes is sorted by document order, then #exslSetsDistinctSorted is called with the sorted node-set</info>
<return type='xmlNodeSetPtr' info='a subset of the nodes contained in @nodes, or @nodes if it is empty'/>
<arg name='nodes' type='xmlNodeSetPtr' info='a node-set'/>
</function>
- <function name='xmlXPathDistinctSorted' file='xpathInternals'>
+ <function name='xmlXPathDistinctSorted' file='xpathInternals' module='xpath'>
<cond>defined(LIBXML_XPATH_ENABLED)</cond>
<info>Implements the EXSLT - Sets distinct() function: node-set set:distinct (node-set)</info>
<return type='xmlNodeSetPtr' info='a subset of the nodes contained in @nodes, or @nodes if it is empty'/>
<arg name='nodes' type='xmlNodeSetPtr' info='a node-set, sorted by document order'/>
</function>
- <function name='xmlXPathDivValues' file='xpathInternals'>
+ <function name='xmlXPathDivValues' file='xpathInternals' module='xpath'>
<cond>defined(LIBXML_XPATH_ENABLED)</cond>
<info>Implement the div operation on XPath objects @arg1 / @arg2: The numeric operators convert their operands to numbers as if by calling the number function.</info>
<return type='void'/>
<arg name='ctxt' type='xmlXPathParserContextPtr' info='the XPath Parser context'/>
</function>
- <function name='xmlXPathEqualValues' file='xpathInternals'>
+ <function name='xmlXPathEqualValues' file='xpathInternals' module='xpath'>
<cond>defined(LIBXML_XPATH_ENABLED)</cond>
<info>Implement the equal operation on XPath objects content: @arg1 == @arg2</info>
<return type='int' info='0 or 1 depending on the results of the test.'/>
<arg name='ctxt' type='xmlXPathParserContextPtr' info='the XPath Parser context'/>
</function>
- <function name='xmlXPathErr' file='xpathInternals'>
+ <function name='xmlXPathErr' file='xpathInternals' module='xpath'>
<cond>defined(LIBXML_XPATH_ENABLED)</cond>
<info>Handle an XPath error</info>
<return type='void'/>
<arg name='ctxt' type='xmlXPathParserContextPtr' info='a XPath parser context'/>
<arg name='error' type='int' info='the error code'/>
</function>
- <function name='xmlXPathEval' file='xpath'>
+ <function name='xmlXPathEval' file='xpath' module='xpath'>
<cond>defined(LIBXML_XPATH_ENABLED)</cond>
<info>Evaluate the XPath Location Path in the given context.</info>
<return type='xmlXPathObjectPtr' info='the xmlXPathObjectPtr resulting from the evaluation or NULL. the caller has to free the object.'/>
<arg name='str' type='const xmlChar *' info='the XPath expression'/>
<arg name='ctx' type='xmlXPathContextPtr' info='the XPath context'/>
</function>
- <function name='xmlXPathEvalExpr' file='xpathInternals'>
+ <function name='xmlXPathEvalExpr' file='xpathInternals' module='xpath'>
<cond>defined(LIBXML_XPATH_ENABLED)</cond>
<info>Parse and evaluate an XPath expression in the given context, then push the result on the context stack</info>
<return type='void'/>
<arg name='ctxt' type='xmlXPathParserContextPtr' info='the XPath Parser context'/>
</function>
- <function name='xmlXPathEvalExpression' file='xpath'>
+ <function name='xmlXPathEvalExpression' file='xpath' module='xpath'>
<cond>defined(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'>
+ <functype name='xmlXPathEvalFunc' file='xpath' module='xpath'>
<cond>defined(LIBXML_XPATH_ENABLED)</cond>
<info>An XPath evaluation function, the parameters are on the XPath context stack.</info>
<return type='void'/>
<arg name='ctxt' type='xmlXPathParserContextPtr' info='an XPath parser context'/>
<arg name='nargs' type='int' info='the number of arguments passed to the function'/>
</functype>
- <function name='xmlXPathEvalPredicate' file='xpath'>
+ <function name='xmlXPathEvalPredicate' file='xpath' module='xpath'>
<cond>defined(LIBXML_XPATH_ENABLED)</cond>
<info>Evaluate a predicate result for the current node. A PredicateExpr is evaluated by evaluating the Expr and converting the result to a boolean. If the result is a number, the result will be converted to true if the number is equal to the position of the context node in the context node list (as returned by the position function) and will be converted to false otherwise; if the result is not a number, then the result will be converted as if by a call to the boolean function.</info>
<return type='int' info='1 if predicate is true, 0 otherwise'/>
<arg name='ctxt' type='xmlXPathContextPtr' info='the XPath context'/>
<arg name='res' type='xmlXPathObjectPtr' info='the Predicate Expression evaluation result'/>
</function>
- <function name='xmlXPathEvaluatePredicateResult' file='xpathInternals'>
+ <function name='xmlXPathEvaluatePredicateResult' file='xpathInternals' module='xpath'>
<cond>defined(LIBXML_XPATH_ENABLED)</cond>
<info>Evaluate a predicate result for the current node. A PredicateExpr is evaluated by evaluating the Expr and converting the result to a boolean. If the result is a number, the result will be converted to true if the number is equal to the position of the context node in the context node list (as returned by the position function) and will be converted to false otherwise; if the result is not a number, then the result will be converted as if by a call to the boolean function.</info>
<return type='int' info='1 if predicate is true, 0 otherwise'/>
<arg name='ctxt' type='xmlXPathParserContextPtr' info='the XPath Parser context'/>
<arg name='res' type='xmlXPathObjectPtr' info='the Predicate Expression evaluation result'/>
</function>
- <function name='xmlXPathFalseFunction' file='xpathInternals'>
+ <function name='xmlXPathFalseFunction' file='xpathInternals' module='xpath'>
<cond>defined(LIBXML_XPATH_ENABLED)</cond>
<info>Implement the false() XPath function boolean false()</info>
<return type='void'/>
<arg name='ctxt' type='xmlXPathParserContextPtr' info='the XPath Parser context'/>
<arg name='nargs' type='int' info='the number of arguments'/>
</function>
- <function name='xmlXPathFloorFunction' file='xpathInternals'>
+ <function name='xmlXPathFloorFunction' file='xpathInternals' module='xpath'>
<cond>defined(LIBXML_XPATH_ENABLED)</cond>
<info>Implement the floor() XPath function number floor(number) The floor function returns the largest (closest to positive infinity) number that is not greater than the argument and that is an integer.</info>
<return type='void'/>
<arg name='ctxt' type='xmlXPathParserContextPtr' info='the XPath Parser context'/>
<arg name='nargs' type='int' info='the number of arguments'/>
</function>
- <function name='xmlXPathFreeCompExpr' file='xpath'>
+ <function name='xmlXPathFreeCompExpr' file='xpath' module='xpath'>
<cond>defined(LIBXML_XPATH_ENABLED)</cond>
<info>Free up the memory allocated by @comp</info>
<return type='void'/>
<arg name='comp' type='xmlXPathCompExprPtr' info='an XPATH comp'/>
</function>
- <function name='xmlXPathFreeContext' file='xpath'>
+ <function name='xmlXPathFreeContext' file='xpath' module='xpath'>
<cond>defined(LIBXML_XPATH_ENABLED)</cond>
<info>Free up an xmlXPathContext</info>
<return type='void'/>
<arg name='ctxt' type='xmlXPathContextPtr' info='the context to free'/>
</function>
- <function name='xmlXPathFreeNodeSet' file='xpath'>
+ <function name='xmlXPathFreeNodeSet' file='xpath' module='xpath'>
<cond>defined(LIBXML_XPATH_ENABLED)</cond>
<info>Free the NodeSet compound (not the actual nodes !).</info>
<return type='void'/>
<arg name='obj' type='xmlNodeSetPtr' info='the xmlNodeSetPtr to free'/>
</function>
- <function name='xmlXPathFreeNodeSetList' file='xpath'>
+ <function name='xmlXPathFreeNodeSetList' file='xpath' module='xpath'>
<cond>defined(LIBXML_XPATH_ENABLED)</cond>
<info>Free up the xmlXPathObjectPtr @obj but don&apos;t deallocate the objects in the list contrary to xmlXPathFreeObject().</info>
<return type='void'/>
<arg name='obj' type='xmlXPathObjectPtr' info='an existing NodeSetList object'/>
</function>
- <function name='xmlXPathFreeObject' file='xpath'>
+ <function name='xmlXPathFreeObject' file='xpath' module='xpath'>
<cond>defined(LIBXML_XPATH_ENABLED)</cond>
<info>Free up an xmlXPathObjectPtr object.</info>
<return type='void'/>
<arg name='obj' type='xmlXPathObjectPtr' info='the object to free'/>
</function>
- <function name='xmlXPathFreeParserContext' file='xpathInternals'>
+ <function name='xmlXPathFreeParserContext' file='xpathInternals' module='xpath'>
<cond>defined(LIBXML_XPATH_ENABLED)</cond>
<info>Free up an xmlXPathParserContext</info>
<return type='void'/>
<arg name='ctxt' type='xmlXPathParserContextPtr' info='the context to free'/>
</function>
- <functype name='xmlXPathFuncLookupFunc' file='xpath'>
+ <functype name='xmlXPathFuncLookupFunc' file='xpath' module='xpath'>
<cond>defined(LIBXML_XPATH_ENABLED)</cond>
<info>Prototype for callbacks used to plug function lookup in the XPath engine.</info>
<return type='xmlXPathFunction' info='the XPath function or NULL if not found.'/>
@@ -16325,21 +16373,21 @@ actually an xmlCharEncoding'/>
<arg name='name' type='const xmlChar *' info='name of the function'/>
<arg name='ns_uri' type='const xmlChar *' info='the namespace name hosting this function'/>
</functype>
- <functype name='xmlXPathFunction' file='xpath'>
+ <functype name='xmlXPathFunction' file='xpath' module='xpath'>
<cond>defined(LIBXML_XPATH_ENABLED)</cond>
<info>An XPath function. The arguments (if any) are popped out from the context stack and the result is pushed on the stack.</info>
<return type='void'/>
<arg name='ctxt' type='xmlXPathParserContextPtr' info='the XPath interprestation context'/>
<arg name='nargs' type='int' info='the number of arguments'/>
</functype>
- <function name='xmlXPathFunctionLookup' file='xpathInternals'>
+ <function name='xmlXPathFunctionLookup' file='xpathInternals' module='xpath'>
<cond>defined(LIBXML_XPATH_ENABLED)</cond>
<info>Search in the Function array of the context for the given function.</info>
<return type='xmlXPathFunction' info='the xmlXPathFunction or NULL if not found'/>
<arg name='ctxt' type='xmlXPathContextPtr' info='the XPath context'/>
<arg name='name' type='const xmlChar *' info='the function name'/>
</function>
- <function name='xmlXPathFunctionLookupNS' file='xpathInternals'>
+ <function name='xmlXPathFunctionLookupNS' file='xpathInternals' module='xpath'>
<cond>defined(LIBXML_XPATH_ENABLED)</cond>
<info>Search in the Function array of the context for the given function.</info>
<return type='xmlXPathFunction' info='the xmlXPathFunction or NULL if not found'/>
@@ -16347,272 +16395,272 @@ actually an xmlCharEncoding'/>
<arg name='name' type='const xmlChar *' info='the function name'/>
<arg name='ns_uri' type='const xmlChar *' info='the function namespace URI'/>
</function>
- <function name='xmlXPathHasSameNodes' file='xpathInternals'>
+ <function name='xmlXPathHasSameNodes' file='xpathInternals' module='xpath'>
<cond>defined(LIBXML_XPATH_ENABLED)</cond>
<info>Implements the EXSLT - Sets has-same-nodes function: boolean set:has-same-node(node-set, node-set)</info>
<return type='int' info='true (1) if @nodes1 shares any node with @nodes2, false (0) otherwise'/>
<arg name='nodes1' type='xmlNodeSetPtr' info='a node-set'/>
<arg name='nodes2' type='xmlNodeSetPtr' info='a node-set'/>
</function>
- <function name='xmlXPathIdFunction' file='xpathInternals'>
+ <function name='xmlXPathIdFunction' file='xpathInternals' module='xpath'>
<cond>defined(LIBXML_XPATH_ENABLED)</cond>
<info>Implement the id() XPath function node-set id(object) The id function selects elements by their unique ID (see [5.2.1 Unique IDs]). When the argument to id is of type node-set, then the result is the union of the result of applying id to the string value of each of the nodes in the argument node-set. When the argument to id is of any other type, the argument is converted to a string as if by a call to the string function; the string is split into a whitespace-separated list of tokens (whitespace is any sequence of characters matching the production S); the result is a node-set containing the elements in the same document as the context node that have a unique ID equal to any of the tokens in the list.</info>
<return type='void'/>
<arg name='ctxt' type='xmlXPathParserContextPtr' info='the XPath Parser context'/>
<arg name='nargs' type='int' info='the number of arguments'/>
</function>
- <function name='xmlXPathInit' file='xpath'>
+ <function name='xmlXPathInit' file='xpath' module='xpath'>
<cond>defined(LIBXML_XPATH_ENABLED) || defined(LIBXML_SCHEMAS_ENABLED)</cond>
<info>Initialize the XPath environment</info>
<return type='void'/>
</function>
- <function name='xmlXPathIntersection' file='xpathInternals'>
+ <function name='xmlXPathIntersection' file='xpathInternals' module='xpath'>
<cond>defined(LIBXML_XPATH_ENABLED)</cond>
<info>Implements the EXSLT - Sets intersection() function: node-set set:intersection (node-set, node-set)</info>
<return type='xmlNodeSetPtr' info='a node set comprising the nodes that are within both the node sets passed as arguments'/>
<arg name='nodes1' type='xmlNodeSetPtr' info='a node-set'/>
<arg name='nodes2' type='xmlNodeSetPtr' info='a node-set'/>
</function>
- <function name='xmlXPathIsInf' file='xpath'>
+ <function name='xmlXPathIsInf' file='xpath' module='xpath'>
<cond>defined(LIBXML_XPATH_ENABLED) || defined(LIBXML_SCHEMAS_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'>
+ <function name='xmlXPathIsNaN' file='xpath' module='xpath'>
<cond>defined(LIBXML_XPATH_ENABLED) || defined(LIBXML_SCHEMAS_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'>
+ <function name='xmlXPathIsNodeType' file='xpathInternals' module='xpath'>
<cond>defined(LIBXML_XPATH_ENABLED)</cond>
<info>Is the name given a NodeType one. [38] NodeType ::= &apos;comment&apos; | &apos;text&apos; | &apos;processing-instruction&apos; | &apos;node&apos;</info>
<return type='int' info='1 if true 0 otherwise'/>
<arg name='name' type='const xmlChar *' info='a name string'/>
</function>
- <function name='xmlXPathLangFunction' file='xpathInternals'>
+ <function name='xmlXPathLangFunction' file='xpathInternals' module='xpath'>
<cond>defined(LIBXML_XPATH_ENABLED)</cond>
<info>Implement the lang() XPath function boolean lang(string) The lang function returns true or false depending on whether the language of the context node as specified by xml:lang attributes is the same as or is a sublanguage of the language specified by the argument string. The language of the context node is determined by the value of the xml:lang attribute on the context node, or, if the context node has no xml:lang attribute, by the value of the xml:lang attribute on the nearest ancestor of the context node that has an xml:lang attribute. If there is no such attribute, then lang</info>
<return type='void'/>
<arg name='ctxt' type='xmlXPathParserContextPtr' info='the XPath Parser context'/>
<arg name='nargs' type='int' info='the number of arguments'/>
</function>
- <function name='xmlXPathLastFunction' file='xpathInternals'>
+ <function name='xmlXPathLastFunction' file='xpathInternals' module='xpath'>
<cond>defined(LIBXML_XPATH_ENABLED)</cond>
<info>Implement the last() XPath function number last() The last function returns the number of nodes in the context node list.</info>
<return type='void'/>
<arg name='ctxt' type='xmlXPathParserContextPtr' info='the XPath Parser context'/>
<arg name='nargs' type='int' info='the number of arguments'/>
</function>
- <function name='xmlXPathLeading' file='xpathInternals'>
+ <function name='xmlXPathLeading' file='xpathInternals' module='xpath'>
<cond>defined(LIBXML_XPATH_ENABLED)</cond>
<info>Implements the EXSLT - Sets leading() function: node-set set:leading (node-set, node-set) @nodes1 and @nodes2 are sorted by document order, then #exslSetsLeadingSorted is called.</info>
<return type='xmlNodeSetPtr' info='the nodes in @nodes1 that precede the first node in @nodes2 in document order, @nodes1 if @nodes2 is NULL or empty or an empty node-set if @nodes1 doesn&apos;t contain @nodes2'/>
<arg name='nodes1' type='xmlNodeSetPtr' info='a node-set'/>
<arg name='nodes2' type='xmlNodeSetPtr' info='a node-set'/>
</function>
- <function name='xmlXPathLeadingSorted' file='xpathInternals'>
+ <function name='xmlXPathLeadingSorted' file='xpathInternals' module='xpath'>
<cond>defined(LIBXML_XPATH_ENABLED)</cond>
<info>Implements the EXSLT - Sets leading() function: node-set set:leading (node-set, node-set)</info>
<return type='xmlNodeSetPtr' info='the nodes in @nodes1 that precede the first node in @nodes2 in document order, @nodes1 if @nodes2 is NULL or empty or an empty node-set if @nodes1 doesn&apos;t contain @nodes2'/>
<arg name='nodes1' type='xmlNodeSetPtr' info='a node-set, sorted by document order'/>
<arg name='nodes2' type='xmlNodeSetPtr' info='a node-set, sorted by document order'/>
</function>
- <function name='xmlXPathLocalNameFunction' file='xpathInternals'>
+ <function name='xmlXPathLocalNameFunction' file='xpathInternals' module='xpath'>
<cond>defined(LIBXML_XPATH_ENABLED)</cond>
<info>Implement the local-name() XPath function string local-name(node-set?) The local-name function returns a string containing the local part of the name of the node in the argument node-set that is first in document order. If the node-set is empty or the first node has no name, an empty string is returned. If the argument is omitted it defaults to the context node.</info>
<return type='void'/>
<arg name='ctxt' type='xmlXPathParserContextPtr' info='the XPath Parser context'/>
<arg name='nargs' type='int' info='the number of arguments'/>
</function>
- <function name='xmlXPathModValues' file='xpathInternals'>
+ <function name='xmlXPathModValues' file='xpathInternals' module='xpath'>
<cond>defined(LIBXML_XPATH_ENABLED)</cond>
<info>Implement the mod operation on XPath objects: @arg1 / @arg2 The numeric operators convert their operands to numbers as if by calling the number function.</info>
<return type='void'/>
<arg name='ctxt' type='xmlXPathParserContextPtr' info='the XPath Parser context'/>
</function>
- <function name='xmlXPathMultValues' file='xpathInternals'>
+ <function name='xmlXPathMultValues' file='xpathInternals' module='xpath'>
<cond>defined(LIBXML_XPATH_ENABLED)</cond>
<info>Implement the multiply operation on XPath objects: The numeric operators convert their operands to numbers as if by calling the number function.</info>
<return type='void'/>
<arg name='ctxt' type='xmlXPathParserContextPtr' info='the XPath Parser context'/>
</function>
- <function name='xmlXPathNamespaceURIFunction' file='xpathInternals'>
+ <function name='xmlXPathNamespaceURIFunction' file='xpathInternals' module='xpath'>
<cond>defined(LIBXML_XPATH_ENABLED)</cond>
<info>Implement the namespace-uri() XPath function string namespace-uri(node-set?) The namespace-uri function returns a string containing the namespace URI of the expanded name of the node in the argument node-set that is first in document order. If the node-set is empty, the first node has no name, or the expanded name has no namespace URI, an empty string is returned. If the argument is omitted it defaults to the context node.</info>
<return type='void'/>
<arg name='ctxt' type='xmlXPathParserContextPtr' info='the XPath Parser context'/>
<arg name='nargs' type='int' info='the number of arguments'/>
</function>
- <function name='xmlXPathNewBoolean' file='xpathInternals'>
+ <function name='xmlXPathNewBoolean' file='xpathInternals' module='xpath'>
<cond>defined(LIBXML_XPATH_ENABLED)</cond>
<info>Create a new xmlXPathObjectPtr of type boolean and of value @val</info>
<return type='xmlXPathObjectPtr' info='the newly created object.'/>
<arg name='val' type='int' info='the boolean value'/>
</function>
- <function name='xmlXPathNewCString' file='xpathInternals'>
+ <function name='xmlXPathNewCString' file='xpathInternals' module='xpath'>
<cond>defined(LIBXML_XPATH_ENABLED)</cond>
<info>Create a new xmlXPathObjectPtr of type string and of value @val</info>
<return type='xmlXPathObjectPtr' info='the newly created object.'/>
<arg name='val' type='const char *' info='the char * value'/>
</function>
- <function name='xmlXPathNewContext' file='xpath'>
+ <function name='xmlXPathNewContext' file='xpath' module='xpath'>
<cond>defined(LIBXML_XPATH_ENABLED)</cond>
<info>Create a new xmlXPathContext</info>
<return type='xmlXPathContextPtr' info='the xmlXPathContext just allocated. The caller will need to free it.'/>
<arg name='doc' type='xmlDocPtr' info='the XML document'/>
</function>
- <function name='xmlXPathNewFloat' file='xpathInternals'>
+ <function name='xmlXPathNewFloat' file='xpathInternals' module='xpath'>
<cond>defined(LIBXML_XPATH_ENABLED)</cond>
<info>Create a new xmlXPathObjectPtr of type double and of value @val</info>
<return type='xmlXPathObjectPtr' info='the newly created object.'/>
<arg name='val' type='double' info='the double value'/>
</function>
- <function name='xmlXPathNewNodeSet' file='xpathInternals'>
+ <function name='xmlXPathNewNodeSet' file='xpathInternals' module='xpath'>
<cond>defined(LIBXML_XPATH_ENABLED)</cond>
<info>Create a new xmlXPathObjectPtr of type NodeSet and initialize it with the single Node @val</info>
<return type='xmlXPathObjectPtr' info='the newly created object.'/>
<arg name='val' type='xmlNodePtr' info='the NodePtr value'/>
</function>
- <function name='xmlXPathNewNodeSetList' file='xpathInternals'>
+ <function name='xmlXPathNewNodeSetList' file='xpathInternals' module='xpath'>
<cond>defined(LIBXML_XPATH_ENABLED)</cond>
<info>Create a new xmlXPathObjectPtr of type NodeSet and initialize it with the Nodeset @val</info>
<return type='xmlXPathObjectPtr' info='the newly created object.'/>
<arg name='val' type='xmlNodeSetPtr' info='an existing NodeSet'/>
</function>
- <function name='xmlXPathNewParserContext' file='xpathInternals'>
+ <function name='xmlXPathNewParserContext' file='xpathInternals' module='xpath'>
<cond>defined(LIBXML_XPATH_ENABLED)</cond>
<info>Create a new xmlXPathParserContext</info>
<return type='xmlXPathParserContextPtr' info='the xmlXPathParserContext just allocated.'/>
<arg name='str' type='const xmlChar *' info='the XPath expression'/>
<arg name='ctxt' type='xmlXPathContextPtr' info='the XPath context'/>
</function>
- <function name='xmlXPathNewString' file='xpathInternals'>
+ <function name='xmlXPathNewString' file='xpathInternals' module='xpath'>
<cond>defined(LIBXML_XPATH_ENABLED)</cond>
<info>Create a new xmlXPathObjectPtr of type string and of value @val</info>
<return type='xmlXPathObjectPtr' info='the newly created object.'/>
<arg name='val' type='const xmlChar *' info='the xmlChar * value'/>
</function>
- <function name='xmlXPathNewValueTree' file='xpathInternals'>
+ <function name='xmlXPathNewValueTree' file='xpathInternals' module='xpath'>
<cond>defined(LIBXML_XPATH_ENABLED)</cond>
<info>Create a new xmlXPathObjectPtr of type Value Tree (XSLT) and initialize it with the tree root @val</info>
<return type='xmlXPathObjectPtr' info='the newly created object.'/>
<arg name='val' type='xmlNodePtr' info='the NodePtr value'/>
</function>
- <function name='xmlXPathNextAncestor' file='xpathInternals'>
+ <function name='xmlXPathNextAncestor' file='xpathInternals' module='xpath'>
<cond>defined(LIBXML_XPATH_ENABLED)</cond>
<info>Traversal function for the &quot;ancestor&quot; direction the ancestor axis contains the ancestors of the context node; the ancestors of the context node consist of the parent of context node and the parent&apos;s parent and so on; the nodes are ordered in reverse document order; thus the parent is the first node on the axis, and the parent&apos;s parent is the second node on the axis</info>
<return type='xmlNodePtr' info='the next element following that axis'/>
<arg name='ctxt' type='xmlXPathParserContextPtr' info='the XPath Parser context'/>
<arg name='cur' type='xmlNodePtr' info='the current node in the traversal'/>
</function>
- <function name='xmlXPathNextAncestorOrSelf' file='xpathInternals'>
+ <function name='xmlXPathNextAncestorOrSelf' file='xpathInternals' module='xpath'>
<cond>defined(LIBXML_XPATH_ENABLED)</cond>
<info>Traversal function for the &quot;ancestor-or-self&quot; direction he ancestor-or-self axis contains the context node and ancestors of the context node in reverse document order; thus the context node is the first node on the axis, and the context node&apos;s parent the second; parent here is defined the same as with the parent axis.</info>
<return type='xmlNodePtr' info='the next element following that axis'/>
<arg name='ctxt' type='xmlXPathParserContextPtr' info='the XPath Parser context'/>
<arg name='cur' type='xmlNodePtr' info='the current node in the traversal'/>
</function>
- <function name='xmlXPathNextAttribute' file='xpathInternals'>
+ <function name='xmlXPathNextAttribute' file='xpathInternals' module='xpath'>
<cond>defined(LIBXML_XPATH_ENABLED)</cond>
<info>Traversal function for the &quot;attribute&quot; direction TODO: support DTD inherited default attributes</info>
<return type='xmlNodePtr' info='the next element following that axis'/>
<arg name='ctxt' type='xmlXPathParserContextPtr' info='the XPath Parser context'/>
<arg name='cur' type='xmlNodePtr' info='the current attribute in the traversal'/>
</function>
- <function name='xmlXPathNextChild' file='xpathInternals'>
+ <function name='xmlXPathNextChild' file='xpathInternals' module='xpath'>
<cond>defined(LIBXML_XPATH_ENABLED)</cond>
<info>Traversal function for the &quot;child&quot; direction The child axis contains the children of the context node in document order.</info>
<return type='xmlNodePtr' info='the next element following that axis'/>
<arg name='ctxt' type='xmlXPathParserContextPtr' info='the XPath Parser context'/>
<arg name='cur' type='xmlNodePtr' info='the current node in the traversal'/>
</function>
- <function name='xmlXPathNextDescendant' file='xpathInternals'>
+ <function name='xmlXPathNextDescendant' file='xpathInternals' module='xpath'>
<cond>defined(LIBXML_XPATH_ENABLED)</cond>
<info>Traversal function for the &quot;descendant&quot; direction the descendant axis contains the descendants of the context node in document order; a descendant is a child or a child of a child and so on.</info>
<return type='xmlNodePtr' info='the next element following that axis'/>
<arg name='ctxt' type='xmlXPathParserContextPtr' info='the XPath Parser context'/>
<arg name='cur' type='xmlNodePtr' info='the current node in the traversal'/>
</function>
- <function name='xmlXPathNextDescendantOrSelf' file='xpathInternals'>
+ <function name='xmlXPathNextDescendantOrSelf' file='xpathInternals' module='xpath'>
<cond>defined(LIBXML_XPATH_ENABLED)</cond>
<info>Traversal function for the &quot;descendant-or-self&quot; direction the descendant-or-self axis contains the context node and the descendants of the context node in document order; thus the context node is the first node on the axis, and the first child of the context node is the second node on the axis</info>
<return type='xmlNodePtr' info='the next element following that axis'/>
<arg name='ctxt' type='xmlXPathParserContextPtr' info='the XPath Parser context'/>
<arg name='cur' type='xmlNodePtr' info='the current node in the traversal'/>
</function>
- <function name='xmlXPathNextFollowing' file='xpathInternals'>
+ <function name='xmlXPathNextFollowing' file='xpathInternals' module='xpath'>
<cond>defined(LIBXML_XPATH_ENABLED)</cond>
<info>Traversal function for the &quot;following&quot; direction The following axis contains all nodes in the same document as the context node that are after the context node in document order, excluding any descendants and excluding attribute nodes and namespace nodes; the nodes are ordered in document order</info>
<return type='xmlNodePtr' info='the next element following that axis'/>
<arg name='ctxt' type='xmlXPathParserContextPtr' info='the XPath Parser context'/>
<arg name='cur' type='xmlNodePtr' info='the current node in the traversal'/>
</function>
- <function name='xmlXPathNextFollowingSibling' file='xpathInternals'>
+ <function name='xmlXPathNextFollowingSibling' file='xpathInternals' module='xpath'>
<cond>defined(LIBXML_XPATH_ENABLED)</cond>
<info>Traversal function for the &quot;following-sibling&quot; direction The following-sibling axis contains the following siblings of the context node in document order.</info>
<return type='xmlNodePtr' info='the next element following that axis'/>
<arg name='ctxt' type='xmlXPathParserContextPtr' info='the XPath Parser context'/>
<arg name='cur' type='xmlNodePtr' info='the current node in the traversal'/>
</function>
- <function name='xmlXPathNextNamespace' file='xpathInternals'>
+ <function name='xmlXPathNextNamespace' file='xpathInternals' module='xpath'>
<cond>defined(LIBXML_XPATH_ENABLED)</cond>
<info>Traversal function for the &quot;namespace&quot; direction the namespace axis contains the namespace nodes of the context node; the order of nodes on this axis is implementation-defined; the axis will be empty unless the context node is an element We keep the XML namespace node at the end of the list.</info>
<return type='xmlNodePtr' info='the next element following that axis'/>
<arg name='ctxt' type='xmlXPathParserContextPtr' info='the XPath Parser context'/>
<arg name='cur' type='xmlNodePtr' info='the current attribute in the traversal'/>
</function>
- <function name='xmlXPathNextParent' file='xpathInternals'>
+ <function name='xmlXPathNextParent' file='xpathInternals' module='xpath'>
<cond>defined(LIBXML_XPATH_ENABLED)</cond>
<info>Traversal function for the &quot;parent&quot; direction The parent axis contains the parent of the context node, if there is one.</info>
<return type='xmlNodePtr' info='the next element following that axis'/>
<arg name='ctxt' type='xmlXPathParserContextPtr' info='the XPath Parser context'/>
<arg name='cur' type='xmlNodePtr' info='the current node in the traversal'/>
</function>
- <function name='xmlXPathNextPreceding' file='xpathInternals'>
+ <function name='xmlXPathNextPreceding' file='xpathInternals' module='xpath'>
<cond>defined(LIBXML_XPATH_ENABLED)</cond>
<info>Traversal function for the &quot;preceding&quot; direction the preceding axis contains all nodes in the same document as the context node that are before the context node in document order, excluding any ancestors and excluding attribute nodes and namespace nodes; the nodes are ordered in reverse document order</info>
<return type='xmlNodePtr' info='the next element following that axis'/>
<arg name='ctxt' type='xmlXPathParserContextPtr' info='the XPath Parser context'/>
<arg name='cur' type='xmlNodePtr' info='the current node in the traversal'/>
</function>
- <function name='xmlXPathNextPrecedingSibling' file='xpathInternals'>
+ <function name='xmlXPathNextPrecedingSibling' file='xpathInternals' module='xpath'>
<cond>defined(LIBXML_XPATH_ENABLED)</cond>
<info>Traversal function for the &quot;preceding-sibling&quot; direction The preceding-sibling axis contains the preceding siblings of the context node in reverse document order; the first preceding sibling is first on the axis; the sibling preceding that node is the second on the axis and so on.</info>
<return type='xmlNodePtr' info='the next element following that axis'/>
<arg name='ctxt' type='xmlXPathParserContextPtr' info='the XPath Parser context'/>
<arg name='cur' type='xmlNodePtr' info='the current node in the traversal'/>
</function>
- <function name='xmlXPathNextSelf' file='xpathInternals'>
+ <function name='xmlXPathNextSelf' file='xpathInternals' module='xpath'>
<cond>defined(LIBXML_XPATH_ENABLED)</cond>
<info>Traversal function for the &quot;self&quot; direction The self axis contains just the context node itself</info>
<return type='xmlNodePtr' info='the next element following that axis'/>
<arg name='ctxt' type='xmlXPathParserContextPtr' info='the XPath Parser context'/>
<arg name='cur' type='xmlNodePtr' info='the current node in the traversal'/>
</function>
- <function name='xmlXPathNodeLeading' file='xpathInternals'>
+ <function name='xmlXPathNodeLeading' file='xpathInternals' module='xpath'>
<cond>defined(LIBXML_XPATH_ENABLED)</cond>
<info>Implements the EXSLT - Sets leading() function: node-set set:leading (node-set, node-set) @nodes is sorted by document order, then #exslSetsNodeLeadingSorted is called.</info>
<return type='xmlNodeSetPtr' info='the nodes in @nodes that precede @node in document order, @nodes if @node is NULL or an empty node-set if @nodes doesn&apos;t contain @node'/>
<arg name='nodes' type='xmlNodeSetPtr' info='a node-set'/>
<arg name='node' type='xmlNodePtr' info='a node'/>
</function>
- <function name='xmlXPathNodeLeadingSorted' file='xpathInternals'>
+ <function name='xmlXPathNodeLeadingSorted' file='xpathInternals' module='xpath'>
<cond>defined(LIBXML_XPATH_ENABLED)</cond>
<info>Implements the EXSLT - Sets leading() function: node-set set:leading (node-set, node-set)</info>
<return type='xmlNodeSetPtr' info='the nodes in @nodes that precede @node in document order, @nodes if @node is NULL or an empty node-set if @nodes doesn&apos;t contain @node'/>
<arg name='nodes' type='xmlNodeSetPtr' info='a node-set, sorted by document order'/>
<arg name='node' type='xmlNodePtr' info='a node'/>
</function>
- <function name='xmlXPathNodeSetAdd' file='xpathInternals'>
+ <function name='xmlXPathNodeSetAdd' file='xpathInternals' module='xpath'>
<cond>defined(LIBXML_XPATH_ENABLED)</cond>
<info>add a new xmlNodePtr to an existing NodeSet</info>
<return type='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'>
+ <function name='xmlXPathNodeSetAddNs' file='xpathInternals' module='xpath'>
<cond>defined(LIBXML_XPATH_ENABLED)</cond>
<info>add a new namespace node to an existing NodeSet</info>
<return type='void'/>
@@ -16620,175 +16668,175 @@ actually an xmlCharEncoding'/>
<arg name='node' type='xmlNodePtr' info='the hosting node'/>
<arg name='ns' type='xmlNsPtr' info='a the namespace node'/>
</function>
- <function name='xmlXPathNodeSetAddUnique' file='xpathInternals'>
+ <function name='xmlXPathNodeSetAddUnique' file='xpathInternals' module='xpath'>
<cond>defined(LIBXML_XPATH_ENABLED)</cond>
<info>add a new xmlNodePtr to an existing NodeSet, optimized version when we are sure the node is not already in the set.</info>
<return type='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'>
+ <function name='xmlXPathNodeSetContains' file='xpathInternals' module='xpath'>
<cond>defined(LIBXML_XPATH_ENABLED)</cond>
<info>checks whether @cur contains @val</info>
<return type='int' info='true (1) if @cur contains @val, false (0) otherwise'/>
<arg name='cur' type='xmlNodeSetPtr' info='the node-set'/>
<arg name='val' type='xmlNodePtr' info='the node'/>
</function>
- <function name='xmlXPathNodeSetCreate' file='xpath'>
+ <function name='xmlXPathNodeSetCreate' file='xpath' module='xpath'>
<cond>defined(LIBXML_XPATH_ENABLED)</cond>
<info>Create a new xmlNodeSetPtr of type double and of value @val</info>
<return type='xmlNodeSetPtr' info='the newly created object.'/>
<arg name='val' type='xmlNodePtr' info='an initial xmlNodePtr, or NULL'/>
</function>
- <function name='xmlXPathNodeSetDel' file='xpathInternals'>
+ <function name='xmlXPathNodeSetDel' file='xpathInternals' module='xpath'>
<cond>defined(LIBXML_XPATH_ENABLED)</cond>
<info>Removes an xmlNodePtr from an existing NodeSet</info>
<return type='void'/>
<arg name='cur' type='xmlNodeSetPtr' info='the initial node set'/>
<arg name='val' type='xmlNodePtr' info='an xmlNodePtr'/>
</function>
- <function name='xmlXPathNodeSetFreeNs' file='xpathInternals'>
+ <function name='xmlXPathNodeSetFreeNs' file='xpathInternals' module='xpath'>
<cond>defined(LIBXML_XPATH_ENABLED)</cond>
<info>Namespace nodes in libxml don&apos;t match the XPath semantic. In a node set the namespace nodes are duplicated and the next pointer is set to the parent node in the XPath semantic. Check if such a node needs to be freed</info>
<return type='void'/>
<arg name='ns' type='xmlNsPtr' info='the XPath namespace node found in a nodeset.'/>
</function>
- <function name='xmlXPathNodeSetMerge' file='xpathInternals'>
+ <function name='xmlXPathNodeSetMerge' file='xpathInternals' module='xpath'>
<cond>defined(LIBXML_XPATH_ENABLED)</cond>
<info>Merges two nodesets, all nodes from @val2 are added to @val1 if @val1 is NULL, a new set is created and copied from @val2</info>
<return type='xmlNodeSetPtr' info='@val1 once extended or NULL in case of error.'/>
<arg name='val1' type='xmlNodeSetPtr' info='the first NodeSet or NULL'/>
<arg name='val2' type='xmlNodeSetPtr' info='the second NodeSet'/>
</function>
- <function name='xmlXPathNodeSetRemove' file='xpathInternals'>
+ <function name='xmlXPathNodeSetRemove' file='xpathInternals' module='xpath'>
<cond>defined(LIBXML_XPATH_ENABLED)</cond>
<info>Removes an entry from an existing NodeSet list.</info>
<return type='void'/>
<arg name='cur' type='xmlNodeSetPtr' info='the initial node set'/>
<arg name='val' type='int' info='the index to remove'/>
</function>
- <function name='xmlXPathNodeSetSort' file='xpathInternals'>
+ <function name='xmlXPathNodeSetSort' file='xpathInternals' module='xpath'>
<cond>defined(LIBXML_XPATH_ENABLED)</cond>
<info>Sort the node set in document order</info>
<return type='void'/>
<arg name='set' type='xmlNodeSetPtr' info='the node set'/>
</function>
- <function name='xmlXPathNodeTrailing' file='xpathInternals'>
+ <function name='xmlXPathNodeTrailing' file='xpathInternals' module='xpath'>
<cond>defined(LIBXML_XPATH_ENABLED)</cond>
<info>Implements the EXSLT - Sets trailing() function: node-set set:trailing (node-set, node-set) @nodes is sorted by document order, then #xmlXPathNodeTrailingSorted is called.</info>
<return type='xmlNodeSetPtr' info='the nodes in @nodes that follow @node in document order, @nodes if @node is NULL or an empty node-set if @nodes doesn&apos;t contain @node'/>
<arg name='nodes' type='xmlNodeSetPtr' info='a node-set'/>
<arg name='node' type='xmlNodePtr' info='a node'/>
</function>
- <function name='xmlXPathNodeTrailingSorted' file='xpathInternals'>
+ <function name='xmlXPathNodeTrailingSorted' file='xpathInternals' module='xpath'>
<cond>defined(LIBXML_XPATH_ENABLED)</cond>
<info>Implements the EXSLT - Sets trailing() function: node-set set:trailing (node-set, node-set)</info>
<return type='xmlNodeSetPtr' info='the nodes in @nodes that follow @node in document order, @nodes if @node is NULL or an empty node-set if @nodes doesn&apos;t contain @node'/>
<arg name='nodes' type='xmlNodeSetPtr' info='a node-set, sorted by document order'/>
<arg name='node' type='xmlNodePtr' info='a node'/>
</function>
- <function name='xmlXPathNormalizeFunction' file='xpathInternals'>
+ <function name='xmlXPathNormalizeFunction' file='xpathInternals' module='xpath'>
<cond>defined(LIBXML_XPATH_ENABLED)</cond>
<info>Implement the normalize-space() XPath function string normalize-space(string?) The normalize-space function returns the argument string with white space normalized by stripping leading and trailing whitespace and replacing sequences of whitespace characters by a single space. Whitespace characters are the same allowed by the S production in XML. If the argument is omitted, it defaults to the context node converted to a string, in other words the value of the context node.</info>
<return type='void'/>
<arg name='ctxt' type='xmlXPathParserContextPtr' info='the XPath Parser context'/>
<arg name='nargs' type='int' info='the number of arguments'/>
</function>
- <function name='xmlXPathNotEqualValues' file='xpathInternals'>
+ <function name='xmlXPathNotEqualValues' file='xpathInternals' module='xpath'>
<cond>defined(LIBXML_XPATH_ENABLED)</cond>
<info>Implement the equal operation on XPath objects content: @arg1 == @arg2</info>
<return type='int' info='0 or 1 depending on the results of the test.'/>
<arg name='ctxt' type='xmlXPathParserContextPtr' info='the XPath Parser context'/>
</function>
- <function name='xmlXPathNotFunction' file='xpathInternals'>
+ <function name='xmlXPathNotFunction' file='xpathInternals' module='xpath'>
<cond>defined(LIBXML_XPATH_ENABLED)</cond>
<info>Implement the not() XPath function boolean not(boolean) The not function returns true if its argument is false, and false otherwise.</info>
<return type='void'/>
<arg name='ctxt' type='xmlXPathParserContextPtr' info='the XPath Parser context'/>
<arg name='nargs' type='int' info='the number of arguments'/>
</function>
- <function name='xmlXPathNsLookup' file='xpathInternals'>
+ <function name='xmlXPathNsLookup' file='xpathInternals' module='xpath'>
<cond>defined(LIBXML_XPATH_ENABLED)</cond>
<info>Search in the namespace declaration array of the context for the given namespace name associated to the given prefix</info>
<return type='const xmlChar *' info='the value or NULL if not found'/>
<arg name='ctxt' type='xmlXPathContextPtr' info='the XPath context'/>
<arg name='prefix' type='const xmlChar *' info='the namespace prefix value'/>
</function>
- <function name='xmlXPathNumberFunction' file='xpathInternals'>
+ <function name='xmlXPathNumberFunction' file='xpathInternals' module='xpath'>
<cond>defined(LIBXML_XPATH_ENABLED)</cond>
<info>Implement the number() XPath function number number(object?)</info>
<return type='void'/>
<arg name='ctxt' type='xmlXPathParserContextPtr' info='the XPath Parser context'/>
<arg name='nargs' type='int' info='the number of arguments'/>
</function>
- <function name='xmlXPathObjectCopy' file='xpath'>
+ <function name='xmlXPathObjectCopy' file='xpath' module='xpath'>
<cond>defined(LIBXML_XPATH_ENABLED)</cond>
<info>allocate a new copy of a given object</info>
<return type='xmlXPathObjectPtr' info='the newly created object.'/>
<arg name='val' type='xmlXPathObjectPtr' info='the original object'/>
</function>
- <function name='xmlXPathOrderDocElems' file='xpath'>
+ <function name='xmlXPathOrderDocElems' file='xpath' module='xpath'>
<cond>defined(LIBXML_XPATH_ENABLED)</cond>
<info>Call this routine to speed up XPath computation on static documents. This stamps all the element nodes with the document order Like for line information, the order is kept in the element-&gt;content field, the value stored is actually - the node number (starting at -1) to be able to differentiate from line numbers.</info>
<return type='long' info='the number of elements found in the document or -1 in case of error.'/>
<arg name='doc' type='xmlDocPtr' info='an input document'/>
</function>
- <function name='xmlXPathParseNCName' file='xpathInternals'>
+ <function name='xmlXPathParseNCName' file='xpathInternals' module='xpath'>
<cond>defined(LIBXML_XPATH_ENABLED)</cond>
<info>parse an XML namespace non qualified name. [NS 3] NCName ::= (Letter | &apos;_&apos;) (NCNameChar)* [NS 4] NCNameChar ::= Letter | Digit | &apos;.&apos; | &apos;-&apos; | &apos;_&apos; | CombiningChar | Extender</info>
<return type='xmlChar *' info='the namespace name or NULL'/>
<arg name='ctxt' type='xmlXPathParserContextPtr' info='the XPath Parser context'/>
</function>
- <function name='xmlXPathParseName' file='xpathInternals'>
+ <function name='xmlXPathParseName' file='xpathInternals' module='xpath'>
<cond>defined(LIBXML_XPATH_ENABLED)</cond>
<info>parse an XML name [4] NameChar ::= Letter | Digit | &apos;.&apos; | &apos;-&apos; | &apos;_&apos; | &apos;:&apos; | CombiningChar | Extender [5] Name ::= (Letter | &apos;_&apos; | &apos;:&apos;) (NameChar)*</info>
<return type='xmlChar *' info='the namespace name or NULL'/>
<arg name='ctxt' type='xmlXPathParserContextPtr' info='the XPath Parser context'/>
</function>
- <function name='xmlXPathPopBoolean' file='xpathInternals'>
+ <function name='xmlXPathPopBoolean' file='xpathInternals' module='xpath'>
<cond>defined(LIBXML_XPATH_ENABLED)</cond>
<info>Pops a boolean from the stack, handling conversion if needed. Check error with #xmlXPathCheckError.</info>
<return type='int' info='the boolean'/>
<arg name='ctxt' type='xmlXPathParserContextPtr' info='an XPath parser context'/>
</function>
- <function name='xmlXPathPopExternal' file='xpathInternals'>
+ <function name='xmlXPathPopExternal' file='xpathInternals' module='xpath'>
<cond>defined(LIBXML_XPATH_ENABLED)</cond>
<info>Pops an external object from the stack, handling conversion if needed. Check error with #xmlXPathCheckError.</info>
<return type='void *' info='the object'/>
<arg name='ctxt' type='xmlXPathParserContextPtr' info='an XPath parser context'/>
</function>
- <function name='xmlXPathPopNodeSet' file='xpathInternals'>
+ <function name='xmlXPathPopNodeSet' file='xpathInternals' module='xpath'>
<cond>defined(LIBXML_XPATH_ENABLED)</cond>
<info>Pops a node-set from the stack, handling conversion if needed. Check error with #xmlXPathCheckError.</info>
<return type='xmlNodeSetPtr' info='the node-set'/>
<arg name='ctxt' type='xmlXPathParserContextPtr' info='an XPath parser context'/>
</function>
- <function name='xmlXPathPopNumber' file='xpathInternals'>
+ <function name='xmlXPathPopNumber' file='xpathInternals' module='xpath'>
<cond>defined(LIBXML_XPATH_ENABLED)</cond>
<info>Pops a number from the stack, handling conversion if needed. Check error with #xmlXPathCheckError.</info>
<return type='double' info='the number'/>
<arg name='ctxt' type='xmlXPathParserContextPtr' info='an XPath parser context'/>
</function>
- <function name='xmlXPathPopString' file='xpathInternals'>
+ <function name='xmlXPathPopString' file='xpathInternals' module='xpath'>
<cond>defined(LIBXML_XPATH_ENABLED)</cond>
<info>Pops a string from the stack, handling conversion if needed. Check error with #xmlXPathCheckError.</info>
<return type='xmlChar *' info='the string'/>
<arg name='ctxt' type='xmlXPathParserContextPtr' info='an XPath parser context'/>
</function>
- <function name='xmlXPathPositionFunction' file='xpathInternals'>
+ <function name='xmlXPathPositionFunction' file='xpathInternals' module='xpath'>
<cond>defined(LIBXML_XPATH_ENABLED)</cond>
<info>Implement the position() XPath function number position() The position function returns the position of the context node in the context node list. The first position is 1, and so the last position will be equal to last().</info>
<return type='void'/>
<arg name='ctxt' type='xmlXPathParserContextPtr' info='the XPath Parser context'/>
<arg name='nargs' type='int' info='the number of arguments'/>
</function>
- <function name='xmlXPathRegisterAllFunctions' file='xpathInternals'>
+ <function name='xmlXPathRegisterAllFunctions' file='xpathInternals' module='xpath'>
<cond>defined(LIBXML_XPATH_ENABLED)</cond>
<info>Registers all default XPath functions in this context</info>
<return type='void'/>
<arg name='ctxt' type='xmlXPathContextPtr' info='the XPath context'/>
</function>
- <function name='xmlXPathRegisterFunc' file='xpathInternals'>
+ <function name='xmlXPathRegisterFunc' file='xpathInternals' module='xpath'>
<cond>defined(LIBXML_XPATH_ENABLED)</cond>
<info>Register a new function. If @f is NULL it unregisters the function</info>
<return type='int' info='0 in case of success, -1 in case of error'/>
@@ -16796,7 +16844,7 @@ actually an xmlCharEncoding'/>
<arg name='name' type='const xmlChar *' info='the function name'/>
<arg name='f' type='xmlXPathFunction' info='the function implementation or NULL'/>
</function>
- <function name='xmlXPathRegisterFuncLookup' file='xpathInternals'>
+ <function name='xmlXPathRegisterFuncLookup' file='xpathInternals' module='xpath'>
<cond>defined(LIBXML_XPATH_ENABLED)</cond>
<info>Registers an external mechanism to do function lookup.</info>
<return type='void'/>
@@ -16804,7 +16852,7 @@ actually an xmlCharEncoding'/>
<arg name='f' type='xmlXPathFuncLookupFunc' info='the lookup function'/>
<arg name='funcCtxt' type='void *' info='the lookup data'/>
</function>
- <function name='xmlXPathRegisterFuncNS' file='xpathInternals'>
+ <function name='xmlXPathRegisterFuncNS' file='xpathInternals' module='xpath'>
<cond>defined(LIBXML_XPATH_ENABLED)</cond>
<info>Register a new function. If @f is NULL it unregisters the function</info>
<return type='int' info='0 in case of success, -1 in case of error'/>
@@ -16813,7 +16861,7 @@ actually an xmlCharEncoding'/>
<arg name='ns_uri' type='const xmlChar *' info='the function namespace URI'/>
<arg name='f' type='xmlXPathFunction' info='the function implementation or NULL'/>
</function>
- <function name='xmlXPathRegisterNs' file='xpathInternals'>
+ <function name='xmlXPathRegisterNs' file='xpathInternals' module='xpath'>
<cond>defined(LIBXML_XPATH_ENABLED)</cond>
<info>Register a new namespace. If @ns_uri is NULL it unregisters the namespace</info>
<return type='int' info='0 in case of success, -1 in case of error'/>
@@ -16821,7 +16869,7 @@ actually an xmlCharEncoding'/>
<arg name='prefix' type='const xmlChar *' info='the namespace prefix'/>
<arg name='ns_uri' type='const xmlChar *' info='the namespace name'/>
</function>
- <function name='xmlXPathRegisterVariable' file='xpathInternals'>
+ <function name='xmlXPathRegisterVariable' file='xpathInternals' module='xpath'>
<cond>defined(LIBXML_XPATH_ENABLED)</cond>
<info>Register a new variable value. If @value is NULL it unregisters the variable</info>
<return type='int' info='0 in case of success, -1 in case of error'/>
@@ -16829,7 +16877,7 @@ actually an xmlCharEncoding'/>
<arg name='name' type='const xmlChar *' info='the variable name'/>
<arg name='value' type='xmlXPathObjectPtr' info='the variable value or NULL'/>
</function>
- <function name='xmlXPathRegisterVariableLookup' file='xpathInternals'>
+ <function name='xmlXPathRegisterVariableLookup' file='xpathInternals' module='xpath'>
<cond>defined(LIBXML_XPATH_ENABLED)</cond>
<info>register an external mechanism to do variable lookup</info>
<return type='void'/>
@@ -16837,7 +16885,7 @@ actually an xmlCharEncoding'/>
<arg name='f' type='xmlXPathVariableLookupFunc' info='the lookup function'/>
<arg name='data' type='void *' info='the lookup data'/>
</function>
- <function name='xmlXPathRegisterVariableNS' file='xpathInternals'>
+ <function name='xmlXPathRegisterVariableNS' file='xpathInternals' module='xpath'>
<cond>defined(LIBXML_XPATH_ENABLED)</cond>
<info>Register a new variable value. If @value is NULL it unregisters the variable</info>
<return type='int' info='0 in case of success, -1 in case of error'/>
@@ -16846,140 +16894,140 @@ actually an xmlCharEncoding'/>
<arg name='ns_uri' type='const xmlChar *' info='the variable namespace URI'/>
<arg name='value' type='xmlXPathObjectPtr' info='the variable value or NULL'/>
</function>
- <function name='xmlXPathRegisteredFuncsCleanup' file='xpathInternals'>
+ <function name='xmlXPathRegisteredFuncsCleanup' file='xpathInternals' module='xpath'>
<cond>defined(LIBXML_XPATH_ENABLED)</cond>
<info>Cleanup the XPath context data associated to registered functions</info>
<return type='void'/>
<arg name='ctxt' type='xmlXPathContextPtr' info='the XPath context'/>
</function>
- <function name='xmlXPathRegisteredNsCleanup' file='xpathInternals'>
+ <function name='xmlXPathRegisteredNsCleanup' file='xpathInternals' module='xpath'>
<cond>defined(LIBXML_XPATH_ENABLED)</cond>
<info>Cleanup the XPath context data associated to registered variables</info>
<return type='void'/>
<arg name='ctxt' type='xmlXPathContextPtr' info='the XPath context'/>
</function>
- <function name='xmlXPathRegisteredVariablesCleanup' file='xpathInternals'>
+ <function name='xmlXPathRegisteredVariablesCleanup' file='xpathInternals' module='xpath'>
<cond>defined(LIBXML_XPATH_ENABLED)</cond>
<info>Cleanup the XPath context data associated to registered variables</info>
<return type='void'/>
<arg name='ctxt' type='xmlXPathContextPtr' info='the XPath context'/>
</function>
- <function name='xmlXPathRoot' file='xpathInternals'>
+ <function name='xmlXPathRoot' file='xpathInternals' module='xpath'>
<cond>defined(LIBXML_XPATH_ENABLED)</cond>
<info>Initialize the context to the root of the document</info>
<return type='void'/>
<arg name='ctxt' type='xmlXPathParserContextPtr' info='the XPath Parser context'/>
</function>
- <function name='xmlXPathRoundFunction' file='xpathInternals'>
+ <function name='xmlXPathRoundFunction' file='xpathInternals' module='xpath'>
<cond>defined(LIBXML_XPATH_ENABLED)</cond>
<info>Implement the round() XPath function number round(number) The round function returns the number that is closest to the argument and that is an integer. If there are two such numbers, then the one that is 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'>
+ <function name='xmlXPathStartsWithFunction' file='xpathInternals' module='xpath'>
<cond>defined(LIBXML_XPATH_ENABLED)</cond>
<info>Implement the starts-with() XPath function boolean starts-with(string, string) The starts-with function returns true if the first argument string starts with the second argument string, and otherwise returns false.</info>
<return type='void'/>
<arg name='ctxt' type='xmlXPathParserContextPtr' info='the XPath Parser context'/>
<arg name='nargs' type='int' info='the number of arguments'/>
</function>
- <function name='xmlXPathStringEvalNumber' file='xpathInternals'>
+ <function name='xmlXPathStringEvalNumber' file='xpathInternals' module='xpath'>
<cond>defined(LIBXML_XPATH_ENABLED)</cond>
<info>[30a] Float ::= Number (&apos;e&apos; Digits?)? [30] Number ::= Digits (&apos;.&apos; Digits?)? | &apos;.&apos; Digits [31] Digits ::= [0-9]+ Compile a Number in the string In complement of the Number expression, this function also handles negative values : &apos;-&apos; Number.</info>
<return type='double' info='the double value.'/>
<arg name='str' type='const xmlChar *' info='A string to scan'/>
</function>
- <function name='xmlXPathStringFunction' file='xpathInternals'>
+ <function name='xmlXPathStringFunction' file='xpathInternals' module='xpath'>
<cond>defined(LIBXML_XPATH_ENABLED)</cond>
<info>Implement the string() XPath function string string(object?) The string function converts an object to a string as follows: - A node-set is converted to a string by returning the value of the node in the node-set that is first in document order. If the node-set is empty, an empty string is returned. - A number is converted to a string as follows + NaN is converted to the string NaN + positive zero is converted to the string 0 + negative zero is converted to the string 0 + positive infinity is converted to the string Infinity + negative infinity is converted to the string -Infinity + if the number is an integer, the number is represented in decimal form as a Number with no decimal point and no leading zeros, preceded by a minus sign (-) if the number is negative + otherwise, the number is represented in decimal form as a Number including a decimal point with at least one digit before the decimal point and at least one digit after the decimal point, preceded by a minus sign (-) if the number is negative; there must be no leading zeros before the decimal point apart possibly from the one required digit immediately before the decimal point; beyond the one required digit after the decimal point there must be as many, but only as many, more digits as are needed to uniquely distinguish the number from all other IEEE 754 numeric values. - The boolean false value is converted to the string false. The boolean true value is converted to the string true. If the argument is omitted, it defaults to a node-set with the context node as its only member.</info>
<return type='void'/>
<arg name='ctxt' type='xmlXPathParserContextPtr' info='the XPath Parser context'/>
<arg name='nargs' type='int' info='the number of arguments'/>
</function>
- <function name='xmlXPathStringLengthFunction' file='xpathInternals'>
+ <function name='xmlXPathStringLengthFunction' file='xpathInternals' module='xpath'>
<cond>defined(LIBXML_XPATH_ENABLED)</cond>
<info>Implement the string-length() XPath function number string-length(string?) The string-length returns the number of characters in the string (see [3.6 Strings]). If the argument is omitted, it defaults to the context node converted to a string, in other words the value of the context node.</info>
<return type='void'/>
<arg name='ctxt' type='xmlXPathParserContextPtr' info='the XPath Parser context'/>
<arg name='nargs' type='int' info='the number of arguments'/>
</function>
- <function name='xmlXPathSubValues' file='xpathInternals'>
+ <function name='xmlXPathSubValues' file='xpathInternals' module='xpath'>
<cond>defined(LIBXML_XPATH_ENABLED)</cond>
<info>Implement the subtraction operation on XPath objects: The numeric operators convert their operands to numbers as if by calling the number function.</info>
<return type='void'/>
<arg name='ctxt' type='xmlXPathParserContextPtr' info='the XPath Parser context'/>
</function>
- <function name='xmlXPathSubstringAfterFunction' file='xpathInternals'>
+ <function name='xmlXPathSubstringAfterFunction' file='xpathInternals' module='xpath'>
<cond>defined(LIBXML_XPATH_ENABLED)</cond>
<info>Implement the substring-after() XPath function string substring-after(string, string) The substring-after function returns the substring of the first argument string that follows the first occurrence of the second argument string in the first argument string, or the empty stringi if the first argument string does not contain the second argument string. For example, substring-after(&quot;1999/04/01&quot;,&quot;/&quot;) returns 04/01, and substring-after(&quot;1999/04/01&quot;,&quot;19&quot;) returns 99/04/01.</info>
<return type='void'/>
<arg name='ctxt' type='xmlXPathParserContextPtr' info='the XPath Parser context'/>
<arg name='nargs' type='int' info='the number of arguments'/>
</function>
- <function name='xmlXPathSubstringBeforeFunction' file='xpathInternals'>
+ <function name='xmlXPathSubstringBeforeFunction' file='xpathInternals' module='xpath'>
<cond>defined(LIBXML_XPATH_ENABLED)</cond>
<info>Implement the substring-before() XPath function string substring-before(string, string) The substring-before function returns the substring of the first argument string that precedes the first occurrence of the second argument string in the first argument string, or the empty string if the first argument string does not contain the second argument string. For example, substring-before(&quot;1999/04/01&quot;,&quot;/&quot;) returns 1999.</info>
<return type='void'/>
<arg name='ctxt' type='xmlXPathParserContextPtr' info='the XPath Parser context'/>
<arg name='nargs' type='int' info='the number of arguments'/>
</function>
- <function name='xmlXPathSubstringFunction' file='xpathInternals'>
+ <function name='xmlXPathSubstringFunction' file='xpathInternals' module='xpath'>
<cond>defined(LIBXML_XPATH_ENABLED)</cond>
<info>Implement the substring() XPath function string substring(string, number, number?) The substring function returns the substring of the first argument starting at the position specified in the second argument with length specified in the third argument. For example, substring(&quot;12345&quot;,2,3) returns &quot;234&quot;. If the third argument is not specified, it returns the substring starting at the position specified in the second argument and continuing to the end of the string. For example, substring(&quot;12345&quot;,2) returns &quot;2345&quot;. More precisely, each character in the string (see [3.6 Strings]) is considered to have a numeric position: the position of the first character is 1, the position of the second character is 2 and so on. The returned substring contains those characters for which the position of the character is greater than or equal to the second argument and, if the third argument is specified, less than the sum of the second and third arguments; the comparisons and addition used for the above follow the standard IEEE 754 rules. Thus: - substring(&quot;12345&quot;, 1.5, 2.6) returns &quot;234&quot; - substring(&quot;12345&quot;, 0, 3) returns &quot;12&quot; - substring(&quot;12345&quot;, 0 div 0, 3) returns &quot;&quot; - substring(&quot;12345&quot;, 1, 0 div 0) returns &quot;&quot; - substring(&quot;12345&quot;, -42, 1 div 0) returns &quot;12345&quot; - substring(&quot;12345&quot;, -1 div 0, 1 div 0) returns &quot;&quot;</info>
<return type='void'/>
<arg name='ctxt' type='xmlXPathParserContextPtr' info='the XPath Parser context'/>
<arg name='nargs' type='int' info='the number of arguments'/>
</function>
- <function name='xmlXPathSumFunction' file='xpathInternals'>
+ <function name='xmlXPathSumFunction' file='xpathInternals' module='xpath'>
<cond>defined(LIBXML_XPATH_ENABLED)</cond>
<info>Implement the sum() XPath function number sum(node-set) The sum function returns the sum of the values of the nodes in the argument node-set.</info>
<return type='void'/>
<arg name='ctxt' type='xmlXPathParserContextPtr' info='the XPath Parser context'/>
<arg name='nargs' type='int' info='the number of arguments'/>
</function>
- <function name='xmlXPathTrailing' file='xpathInternals'>
+ <function name='xmlXPathTrailing' file='xpathInternals' module='xpath'>
<cond>defined(LIBXML_XPATH_ENABLED)</cond>
<info>Implements the EXSLT - Sets trailing() function: node-set set:trailing (node-set, node-set) @nodes1 and @nodes2 are sorted by document order, then #xmlXPathTrailingSorted is called.</info>
<return type='xmlNodeSetPtr' info='the nodes in @nodes1 that follow the first node in @nodes2 in document order, @nodes1 if @nodes2 is NULL or empty or an empty node-set if @nodes1 doesn&apos;t contain @nodes2'/>
<arg name='nodes1' type='xmlNodeSetPtr' info='a node-set'/>
<arg name='nodes2' type='xmlNodeSetPtr' info='a node-set'/>
</function>
- <function name='xmlXPathTrailingSorted' file='xpathInternals'>
+ <function name='xmlXPathTrailingSorted' file='xpathInternals' module='xpath'>
<cond>defined(LIBXML_XPATH_ENABLED)</cond>
<info>Implements the EXSLT - Sets trailing() function: node-set set:trailing (node-set, node-set)</info>
<return type='xmlNodeSetPtr' info='the nodes in @nodes1 that follow the first node in @nodes2 in document order, @nodes1 if @nodes2 is NULL or empty or an empty node-set if @nodes1 doesn&apos;t contain @nodes2'/>
<arg name='nodes1' type='xmlNodeSetPtr' info='a node-set, sorted by document order'/>
<arg name='nodes2' type='xmlNodeSetPtr' info='a node-set, sorted by document order'/>
</function>
- <function name='xmlXPathTranslateFunction' file='xpathInternals'>
+ <function name='xmlXPathTranslateFunction' file='xpathInternals' module='xpath'>
<cond>defined(LIBXML_XPATH_ENABLED)</cond>
<info>Implement the translate() XPath function string translate(string, string, string) The translate function returns the first argument string with occurrences of characters in the second argument string replaced by the character at the corresponding position in the third argument string. For example, translate(&quot;bar&quot;,&quot;abc&quot;,&quot;ABC&quot;) returns the string BAr. If there is a character in the second argument string with no character at a corresponding position in the third argument string (because the second argument string is longer than the third argument string), then occurrences of that character in the first argument string are removed. For example, translate(&quot;--aaa--&quot;,&quot;abc-&quot;,&quot;ABC&quot;)</info>
<return type='void'/>
<arg name='ctxt' type='xmlXPathParserContextPtr' info='the XPath Parser context'/>
<arg name='nargs' type='int' info='the number of arguments'/>
</function>
- <function name='xmlXPathTrueFunction' file='xpathInternals'>
+ <function name='xmlXPathTrueFunction' file='xpathInternals' module='xpath'>
<cond>defined(LIBXML_XPATH_ENABLED)</cond>
<info>Implement the true() XPath function boolean true()</info>
<return type='void'/>
<arg name='ctxt' type='xmlXPathParserContextPtr' info='the XPath Parser context'/>
<arg name='nargs' type='int' info='the number of arguments'/>
</function>
- <function name='xmlXPathValueFlipSign' file='xpathInternals'>
+ <function name='xmlXPathValueFlipSign' file='xpathInternals' module='xpath'>
<cond>defined(LIBXML_XPATH_ENABLED)</cond>
<info>Implement the unary - operation on an XPath object The numeric operators convert their operands to numbers as if by calling the number function.</info>
<return type='void'/>
<arg name='ctxt' type='xmlXPathParserContextPtr' info='the XPath Parser context'/>
</function>
- <function name='xmlXPathVariableLookup' file='xpathInternals'>
+ <function name='xmlXPathVariableLookup' file='xpathInternals' module='xpath'>
<cond>defined(LIBXML_XPATH_ENABLED)</cond>
<info>Search in the Variable array of the context for the given variable value.</info>
<return type='xmlXPathObjectPtr' info='a copy of the value or NULL if not found'/>
<arg name='ctxt' type='xmlXPathContextPtr' info='the XPath context'/>
<arg name='name' type='const xmlChar *' info='the variable name'/>
</function>
- <functype name='xmlXPathVariableLookupFunc' file='xpath'>
+ <functype name='xmlXPathVariableLookupFunc' file='xpath' module='xpath'>
<cond>defined(LIBXML_XPATH_ENABLED)</cond>
<info>Prototype for callbacks used to plug variable lookup in the XPath engine.</info>
<return type='xmlXPathObjectPtr' info='the XPath object value or NULL if not found.'/>
@@ -16987,7 +17035,7 @@ actually an xmlCharEncoding'/>
<arg name='name' type='const xmlChar *' info='name of the variable'/>
<arg name='ns_uri' type='const xmlChar *' info='the namespace name hosting this variable'/>
</functype>
- <function name='xmlXPathVariableLookupNS' file='xpathInternals'>
+ <function name='xmlXPathVariableLookupNS' file='xpathInternals' module='xpath'>
<cond>defined(LIBXML_XPATH_ENABLED)</cond>
<info>Search in the Variable array of the context for the given variable value.</info>
<return type='xmlXPathObjectPtr' info='the a copy of the value or NULL if not found'/>
@@ -16995,31 +17043,31 @@ actually an xmlCharEncoding'/>
<arg name='name' type='const xmlChar *' info='the variable name'/>
<arg name='ns_uri' type='const xmlChar *' info='the variable namespace URI'/>
</function>
- <function name='xmlXPathWrapCString' file='xpathInternals'>
+ <function name='xmlXPathWrapCString' file='xpathInternals' module='xpath'>
<cond>defined(LIBXML_XPATH_ENABLED)</cond>
<info>Wraps a string into an XPath object.</info>
<return type='xmlXPathObjectPtr' info='the newly created object.'/>
<arg name='val' type='char *' info='the char * value'/>
</function>
- <function name='xmlXPathWrapExternal' file='xpathInternals'>
+ <function name='xmlXPathWrapExternal' file='xpathInternals' module='xpath'>
<cond>defined(LIBXML_XPATH_ENABLED)</cond>
<info>Wraps the @val data into an XPath object.</info>
<return type='xmlXPathObjectPtr' info='the newly created object.'/>
<arg name='val' type='void *' info='the user data'/>
</function>
- <function name='xmlXPathWrapNodeSet' file='xpathInternals'>
+ <function name='xmlXPathWrapNodeSet' file='xpathInternals' module='xpath'>
<cond>defined(LIBXML_XPATH_ENABLED)</cond>
<info>Wrap the Nodeset @val in a new xmlXPathObjectPtr</info>
<return type='xmlXPathObjectPtr' info='the newly created object.'/>
<arg name='val' type='xmlNodeSetPtr' info='the NodePtr value'/>
</function>
- <function name='xmlXPathWrapString' file='xpathInternals'>
+ <function name='xmlXPathWrapString' file='xpathInternals' module='xpath'>
<cond>defined(LIBXML_XPATH_ENABLED)</cond>
<info>Wraps the @val string into an XPath object.</info>
<return type='xmlXPathObjectPtr' info='the newly created object.'/>
<arg name='val' type='xmlChar *' info='the xmlChar * value'/>
</function>
- <function name='xmlXPatherror' file='xpathInternals'>
+ <function name='xmlXPatherror' file='xpathInternals' module='xpath'>
<cond>defined(LIBXML_XPATH_ENABLED)</cond>
<info>Formats an error message.</info>
<return type='void'/>
@@ -17028,72 +17076,72 @@ actually an xmlCharEncoding'/>
<arg name='line' type='int' info='the line number'/>
<arg name='no' type='int' info='the error number'/>
</function>
- <function name='xmlXPtrBuildNodeList' file='xpointer'>
+ <function name='xmlXPtrBuildNodeList' file='xpointer' module='xpointer'>
<cond>defined(LIBXML_XPTR_ENABLED)</cond>
<info>Build a node list tree copy of the XPointer result. This will drop Attributes and Namespace declarations.</info>
<return type='xmlNodePtr' info='an xmlNodePtr list or NULL. the caller has to free the node tree.'/>
<arg name='obj' type='xmlXPathObjectPtr' info='the XPointer result from the evaluation.'/>
</function>
- <function name='xmlXPtrEval' file='xpointer'>
+ <function name='xmlXPtrEval' file='xpointer' module='xpointer'>
<cond>defined(LIBXML_XPTR_ENABLED)</cond>
<info>Evaluate the XPath Location Path in the given context.</info>
<return type='xmlXPathObjectPtr' info='the xmlXPathObjectPtr resulting from the evaluation or NULL. the caller has to free the object.'/>
<arg name='str' type='const xmlChar *' info='the XPointer expression'/>
<arg name='ctx' type='xmlXPathContextPtr' info='the XPointer context'/>
</function>
- <function name='xmlXPtrEvalRangePredicate' file='xpointer'>
+ <function name='xmlXPtrEvalRangePredicate' file='xpointer' module='xpointer'>
<cond>defined(LIBXML_XPTR_ENABLED)</cond>
<info>[8] Predicate ::= &apos;[&apos; PredicateExpr &apos;]&apos; [9] PredicateExpr ::= Expr Evaluate a predicate as in xmlXPathEvalPredicate() but for a Location Set instead of a node set</info>
<return type='void'/>
<arg name='ctxt' type='xmlXPathParserContextPtr' info='the XPointer Parser context'/>
</function>
- <function name='xmlXPtrFreeLocationSet' file='xpointer'>
+ <function name='xmlXPtrFreeLocationSet' file='xpointer' module='xpointer'>
<cond>defined(LIBXML_XPTR_ENABLED)</cond>
<info>Free the LocationSet compound (not the actual ranges !).</info>
<return type='void'/>
<arg name='obj' type='xmlLocationSetPtr' info='the xmlLocationSetPtr to free'/>
</function>
- <function name='xmlXPtrLocationSetAdd' file='xpointer'>
+ <function name='xmlXPtrLocationSetAdd' file='xpointer' module='xpointer'>
<cond>defined(LIBXML_XPTR_ENABLED)</cond>
<info>add a new xmlXPathObjectPtr to an existing LocationSet If the location already exist in the set @val is freed.</info>
<return type='void'/>
<arg name='cur' type='xmlLocationSetPtr' info='the initial range set'/>
<arg name='val' type='xmlXPathObjectPtr' info='a new xmlXPathObjectPtr'/>
</function>
- <function name='xmlXPtrLocationSetCreate' file='xpointer'>
+ <function name='xmlXPtrLocationSetCreate' file='xpointer' module='xpointer'>
<cond>defined(LIBXML_XPTR_ENABLED)</cond>
<info>Create a new xmlLocationSetPtr of type double and of value @val</info>
<return type='xmlLocationSetPtr' info='the newly created object.'/>
<arg name='val' type='xmlXPathObjectPtr' info='an initial xmlXPathObjectPtr, or NULL'/>
</function>
- <function name='xmlXPtrLocationSetDel' file='xpointer'>
+ <function name='xmlXPtrLocationSetDel' file='xpointer' module='xpointer'>
<cond>defined(LIBXML_XPTR_ENABLED)</cond>
<info>Removes an xmlXPathObjectPtr from an existing LocationSet</info>
<return type='void'/>
<arg name='cur' type='xmlLocationSetPtr' info='the initial range set'/>
<arg name='val' type='xmlXPathObjectPtr' info='an xmlXPathObjectPtr'/>
</function>
- <function name='xmlXPtrLocationSetMerge' file='xpointer'>
+ <function name='xmlXPtrLocationSetMerge' file='xpointer' module='xpointer'>
<cond>defined(LIBXML_XPTR_ENABLED)</cond>
<info>Merges two rangesets, all ranges from @val2 are added to @val1</info>
<return type='xmlLocationSetPtr' info='val1 once extended or NULL in case of error.'/>
<arg name='val1' type='xmlLocationSetPtr' info='the first LocationSet'/>
<arg name='val2' type='xmlLocationSetPtr' info='the second LocationSet'/>
</function>
- <function name='xmlXPtrLocationSetRemove' file='xpointer'>
+ <function name='xmlXPtrLocationSetRemove' file='xpointer' module='xpointer'>
<cond>defined(LIBXML_XPTR_ENABLED)</cond>
<info>Removes an entry from an existing LocationSet list.</info>
<return type='void'/>
<arg name='cur' type='xmlLocationSetPtr' info='the initial range set'/>
<arg name='val' type='int' info='the index to remove'/>
</function>
- <function name='xmlXPtrNewCollapsedRange' file='xpointer'>
+ <function name='xmlXPtrNewCollapsedRange' file='xpointer' module='xpointer'>
<cond>defined(LIBXML_XPTR_ENABLED)</cond>
<info>Create a new xmlXPathObjectPtr of type range using a single nodes</info>
<return type='xmlXPathObjectPtr' info='the newly created object.'/>
<arg name='start' type='xmlNodePtr' info='the starting and ending node'/>
</function>
- <function name='xmlXPtrNewContext' file='xpointer'>
+ <function name='xmlXPtrNewContext' file='xpointer' module='xpointer'>
<cond>defined(LIBXML_XPTR_ENABLED)</cond>
<info>Create a new XPointer context</info>
<return type='xmlXPathContextPtr' info='the xmlXPathContext just allocated.'/>
@@ -17101,20 +17149,20 @@ actually an xmlCharEncoding'/>
<arg name='here' type='xmlNodePtr' info='the node that directly contains the XPointer being evaluated or NULL'/>
<arg name='origin' type='xmlNodePtr' info='the element from which a user or program initiated traversal of the link, or NULL.'/>
</function>
- <function name='xmlXPtrNewLocationSetNodeSet' file='xpointer'>
+ <function name='xmlXPtrNewLocationSetNodeSet' file='xpointer' module='xpointer'>
<cond>defined(LIBXML_XPTR_ENABLED)</cond>
<info>Create a new xmlXPathObjectPtr of type LocationSet and initialize it with all the nodes from @set</info>
<return type='xmlXPathObjectPtr' info='the newly created object.'/>
<arg name='set' type='xmlNodeSetPtr' info='a node set'/>
</function>
- <function name='xmlXPtrNewLocationSetNodes' file='xpointer'>
+ <function name='xmlXPtrNewLocationSetNodes' file='xpointer' module='xpointer'>
<cond>defined(LIBXML_XPTR_ENABLED)</cond>
<info>Create a new xmlXPathObjectPtr of type LocationSet and initialize it with the single range made of the two nodes @start and @end</info>
<return type='xmlXPathObjectPtr' info='the newly created object.'/>
<arg name='start' type='xmlNodePtr' info='the start NodePtr value'/>
<arg name='end' type='xmlNodePtr' info='the end NodePtr value or NULL'/>
</function>
- <function name='xmlXPtrNewRange' file='xpointer'>
+ <function name='xmlXPtrNewRange' file='xpointer' module='xpointer'>
<cond>defined(LIBXML_XPTR_ENABLED)</cond>
<info>Create a new xmlXPathObjectPtr of type range</info>
<return type='xmlXPathObjectPtr' info='the newly created object.'/>
@@ -17123,49 +17171,49 @@ actually an xmlCharEncoding'/>
<arg name='end' type='xmlNodePtr' info='the ending point'/>
<arg name='endindex' type='int' info='the ending index'/>
</function>
- <function name='xmlXPtrNewRangeNodeObject' file='xpointer'>
+ <function name='xmlXPtrNewRangeNodeObject' file='xpointer' module='xpointer'>
<cond>defined(LIBXML_XPTR_ENABLED)</cond>
<info>Create a new xmlXPathObjectPtr of type range from a not to an object</info>
<return type='xmlXPathObjectPtr' info='the newly created object.'/>
<arg name='start' type='xmlNodePtr' info='the starting node'/>
<arg name='end' type='xmlXPathObjectPtr' info='the ending object'/>
</function>
- <function name='xmlXPtrNewRangeNodePoint' file='xpointer'>
+ <function name='xmlXPtrNewRangeNodePoint' file='xpointer' module='xpointer'>
<cond>defined(LIBXML_XPTR_ENABLED)</cond>
<info>Create a new xmlXPathObjectPtr of type range from a node to a point</info>
<return type='xmlXPathObjectPtr' info='the newly created object.'/>
<arg name='start' type='xmlNodePtr' info='the starting node'/>
<arg name='end' type='xmlXPathObjectPtr' info='the ending point'/>
</function>
- <function name='xmlXPtrNewRangeNodes' file='xpointer'>
+ <function name='xmlXPtrNewRangeNodes' file='xpointer' module='xpointer'>
<cond>defined(LIBXML_XPTR_ENABLED)</cond>
<info>Create a new xmlXPathObjectPtr of type range using 2 nodes</info>
<return type='xmlXPathObjectPtr' info='the newly created object.'/>
<arg name='start' type='xmlNodePtr' info='the starting node'/>
<arg name='end' type='xmlNodePtr' info='the ending node'/>
</function>
- <function name='xmlXPtrNewRangePointNode' file='xpointer'>
+ <function name='xmlXPtrNewRangePointNode' file='xpointer' module='xpointer'>
<cond>defined(LIBXML_XPTR_ENABLED)</cond>
<info>Create a new xmlXPathObjectPtr of type range from a point to a node</info>
<return type='xmlXPathObjectPtr' info='the newly created object.'/>
<arg name='start' type='xmlXPathObjectPtr' info='the starting point'/>
<arg name='end' type='xmlNodePtr' info='the ending node'/>
</function>
- <function name='xmlXPtrNewRangePoints' file='xpointer'>
+ <function name='xmlXPtrNewRangePoints' file='xpointer' module='xpointer'>
<cond>defined(LIBXML_XPTR_ENABLED)</cond>
<info>Create a new xmlXPathObjectPtr of type range using 2 Points</info>
<return type='xmlXPathObjectPtr' info='the newly created object.'/>
<arg name='start' type='xmlXPathObjectPtr' info='the starting point'/>
<arg name='end' type='xmlXPathObjectPtr' info='the ending point'/>
</function>
- <function name='xmlXPtrRangeToFunction' file='xpointer'>
+ <function name='xmlXPtrRangeToFunction' file='xpointer' module='xpointer'>
<cond>defined(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'>
+ <function name='xmlXPtrWrapLocationSet' file='xpointer' module='xpointer'>
<cond>defined(LIBXML_XPTR_ENABLED)</cond>
<info>Wrap the LocationSet @val in a new xmlXPathObjectPtr</info>
<return type='xmlXPathObjectPtr' info='the newly created object.'/>
diff --git a/doc/libxml2.xsa b/doc/libxml2.xsa
index aab08b1..475ec45 100644
--- a/doc/libxml2.xsa
+++ b/doc/libxml2.xsa
@@ -8,33 +8,33 @@
</vendor>
<product id="libxml2">
<name>libxml2</name>
- <version>2.6.17</version>
- <last-release> Jan 16 2005</last-release>
+ <version>2.6.18</version>
+ <last-release> Mar 13 2005</last-release>
<info-url>http://xmlsoft.org/</info-url>
- <changes> - build fixes: Windows, warnings removal (William Brack),
- maintainer-clean dependency(William), build in a different directory
- (William), fixing --with-minimum configure build (William), BeOS
- build (Marcin Konicki), Python-2.4 detection (William), compilation
- on AIX (Dan McNichol)
- - bug fixes: xmlTextReaderHasAttributes (Rob Richards), xmlCtxtReadFile()
- to use the catalog(s), loop on output (William Brack), XPath memory leak,
- ID deallocation problem (Steve Shepard), debugDumpNode crash (William),
- warning not using error callback (William), xmlStopParser bug (William),
- UTF-16 with BOM on DTDs (William), namespace bug on empty elements
- in push mode (Rob Richards), line and col computations fixups (Aleksey
- Sanin), xmlURIEscape fix (William), xmlXPathErr on bad range (William),
- patterns with too many steps, bug in RNG choice optimization, line
- number sometimes missing.
-
- - improvements: XSD Schemas (Kasimier Buchcik), python generator (William),
- xmlUTF8Strpos speedup (William), unicode Python strings (William),
- XSD error reports (Kasimier Buchcik), Python __str__ call serialize().
-
- - new APIs: added xmlDictExists(), GetLineNumber and GetColumnNumber
- for the xmlReader (Aleksey Sanin), Dynamic Shared Libraries APIs
- (mostly Joel Reed), error extraction API from regexps, new XMLSave
- option for format (Phil Shafer)
- - documentation: site improvement (John Fleck), FAQ entries (William).
+ <changes> - build fixes: warnings (Peter Breitenlohner), testapi.c generation,
+ Bakefile support (Francesco Montorsi), Windows compilation (Joel Reed),
+ some gcc4 fixes, HP-UX portability fixes (Rick Jones).
+ - bug fixes: xmlSchemaElementDump namespace (Kasimier Buchcik), push and
+ xmlreader stopping on non-fatal errors, thread support for dictionnaries
+ reference counting (Gary Coady), internal subset and push problem,
+ URL saved in xmlCopyDoc, various schemas bug fixes (Kasimier), Python
+ paths fixup (Stephane Bidoul), xmlGetNodePath and namespaces,
+ xmlSetNsProp fix (Mike Hommey), warning should not count as error
+ (William Brack), xmlCreatePushParser empty chunk, XInclude parser
+ flags (William), cleanup FTP and HTTP code to reuse the uri parsing
+ and IPv6 (William), xmlTextWriterStartAttributeNS fix (Rob Richards),
+ XMLLINT_INDENT being empty (William), xmlWriter bugs (Rob Richards),
+ multithreading on Windows (Rich Salz), xmlSearchNsByHref fix (Kasimier),
+ Python binding leak (Brent Hendricks), aliasing bug exposed by gcc4
+ on s390, xmlTextReaderNext bug (Rob Richards), Schemas decimal type
+ fixes (William Brack), xmlByteConsumed static buffer (Ben Maurer).
+ - improvement: speedup parsing comments and DTDs, dictionnary support for
+ hash tables, Schemas Identity constraints (Kasimier), streaming XPath
+ subset, xmlTextReaderReadString added (Bjorn Reese), Schemas canonical
+ values handling (Kasimier), add xmlTextReaderByteConsumed (Aron
+ Stansvik),
+ - Documentation: Wiki support (Joel Reed)
+
</changes>
</product>
diff --git a/doc/news.html b/doc/news.html
index a07144b..8dbca54 100644
--- a/doc/news.html
+++ b/doc/news.html
@@ -12,7 +12,25 @@ 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>The <a href="ChangeLog.html">change log</a> describes the recents commits
-to the <a href="http://cvs.gnome.org/viewcvs/libxml2/">CVS</a> code base.</p><p>There is the list of public releases:</p><h3>2.6.18: Mar 13 2005</h3><ul><li> build fixes: warnings (Peter Breitenlohner), testapi.c generation,
+to the <a href="http://cvs.gnome.org/viewcvs/libxml2/">CVS</a> code base.</p><p>There is the list of public releases:</p><h3>2.6.19: Apr 02 2005</h3><ul><li> build fixes: drop .la from RPMs, --with-minimum build fix (William
+ Brack), use XML_SOCKLEN_T instead of SOCKLEN_T because it breaks with
+ AIX 5.3 compiler, fixed elfgcchack.h generation and PLT reduction
+ code on Linux/ELF/gcc4</li>
+ <li> bug fixes: schemas type decimal fixups (William Brack), xmmlint return
+ code (Gerry Murphy), small schemas fixes (Matthew Burgess and
+ GUY Fabrice), workaround "DAV:" namespace brokeness in c14n (Aleksey
+ Sanin), segfault in Schemas (Kasimier Buchcik), Schemas attribute
+ validation (Kasimier), Prop related functions and xmlNewNodeEatName
+ (Rob Richards), HTML serialization of name attribute on a elements,
+ Python error handlers leaks and improvement (Brent Hendricks),
+ uninitialized variable in encoding code, Relax-NG validation bug,
+ potential crash if gnorableWhitespace is NULL, xmlSAXParseDoc and
+ xmlParseDoc signatures, switched back to assuming UTF-8 in case
+ no encoding is given at serialization time</li>
+ <li> improvements: lot of work on Schemas by Kasimier Buchcikii on facets
+ checking and also mixed handling.</li>
+ <li></li>
+</ul><h3>2.6.18: Mar 13 2005</h3><ul><li> build fixes: warnings (Peter Breitenlohner), testapi.c generation,
Bakefile support (Francesco Montorsi), Windows compilation (Joel Reed),
some gcc4 fixes, HP-UX portability fixes (Rick Jones).</li>
<li> bug fixes: xmlSchemaElementDump namespace (Kasimier Buchcik), push and
diff --git a/doc/xml.html b/doc/xml.html
index 3dc7fd9..97e7157 100644
--- a/doc/xml.html
+++ b/doc/xml.html
@@ -715,6 +715,27 @@ to the <a href="http://cvs.gnome.org/viewcvs/libxml2/">CVS</a> code base.</p>
<p>There is the list of public releases:</p>
+<h3>2.6.19: Apr 02 2005</h3>
+<ul>
+ <li> build fixes: drop .la from RPMs, --with-minimum build fix (William
+ Brack), use XML_SOCKLEN_T instead of SOCKLEN_T because it breaks with
+ AIX 5.3 compiler, fixed elfgcchack.h generation and PLT reduction
+ code on Linux/ELF/gcc4</li>
+ <li> bug fixes: schemas type decimal fixups (William Brack), xmmlint return
+ code (Gerry Murphy), small schemas fixes (Matthew Burgess and
+ GUY Fabrice), workaround "DAV:" namespace brokeness in c14n (Aleksey
+ Sanin), segfault in Schemas (Kasimier Buchcik), Schemas attribute
+ validation (Kasimier), Prop related functions and xmlNewNodeEatName
+ (Rob Richards), HTML serialization of name attribute on a elements,
+ Python error handlers leaks and improvement (Brent Hendricks),
+ uninitialized variable in encoding code, Relax-NG validation bug,
+ potential crash if gnorableWhitespace is NULL, xmlSAXParseDoc and
+ xmlParseDoc signatures, switched back to assuming UTF-8 in case
+ no encoding is given at serialization time</li>
+ <li> improvements: lot of work on Schemas by Kasimier Buchcikii on facets
+ checking and also mixed handling.</li>
+ <li></li>
+</ul>
<h3>2.6.18: Mar 13 2005</h3>
<ul>
<li> build fixes: warnings (Peter Breitenlohner), testapi.c generation,
diff --git a/elfgcchack.h b/elfgcchack.h
index 2807bef..5957988 100644
--- a/elfgcchack.h
+++ b/elfgcchack.h
@@ -8,6 +8,12 @@
* autogenerated with xsltproc doc/elfgcchack.xsl doc/libxml2-api.xml
*/
+#ifdef IN_LIBXML
+#ifdef __GNUC__
+#ifdef PIC
+#ifdef linux
+#if (__GNUC__ == 3 && __GNUC_MINOR__ >= 3) || (__GNUC__ > 3)
+
#include "libxml/c14n.h"
#include "libxml/catalog.h"
#include "libxml/chvalid.h"
@@ -57,7787 +63,16661 @@
/* special hot spot not exported ones */
-extern __typeof (__xmlGenericError) __xmlGenericError__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_globals
+#undef __xmlGenericError
extern __typeof (__xmlGenericError) __xmlGenericError __attribute((alias("__xmlGenericError__internal_alias")));
+#else
+#ifndef __xmlGenericError
+extern __typeof (__xmlGenericError) __xmlGenericError__internal_alias __attribute((visibility("hidden")));
#define __xmlGenericError __xmlGenericError__internal_alias
+#endif
+#endif
-extern __typeof (__xmlGenericErrorContext) __xmlGenericErrorContext__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_globals
+#undef __xmlGenericErrorContext
extern __typeof (__xmlGenericErrorContext) __xmlGenericErrorContext __attribute((alias("__xmlGenericErrorContext__internal_alias")));
+#else
+#ifndef __xmlGenericErrorContext
+extern __typeof (__xmlGenericErrorContext) __xmlGenericErrorContext__internal_alias __attribute((visibility("hidden")));
#define __xmlGenericErrorContext __xmlGenericErrorContext__internal_alias
+#endif
+#endif
/* list generated from libxml2-api.xml */
-
#if defined(LIBXML_DOCB_ENABLED)
-extern __typeof (docbCreatePushParserCtxt) docbCreatePushParserCtxt__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_DOCBparser
+#undef docbCreatePushParserCtxt
extern __typeof (docbCreatePushParserCtxt) docbCreatePushParserCtxt __attribute((alias("docbCreatePushParserCtxt__internal_alias")));
+#else
+#ifndef docbCreatePushParserCtxt
+extern __typeof (docbCreatePushParserCtxt) docbCreatePushParserCtxt__internal_alias __attribute((visibility("hidden")));
#define docbCreatePushParserCtxt docbCreatePushParserCtxt__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_HTML_ENABLED)
-extern __typeof (htmlAttrAllowed) htmlAttrAllowed__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_HTMLparser
+#undef htmlAttrAllowed
extern __typeof (htmlAttrAllowed) htmlAttrAllowed __attribute((alias("htmlAttrAllowed__internal_alias")));
+#else
+#ifndef htmlAttrAllowed
+extern __typeof (htmlAttrAllowed) htmlAttrAllowed__internal_alias __attribute((visibility("hidden")));
#define htmlAttrAllowed htmlAttrAllowed__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_HTML_ENABLED)
-extern __typeof (htmlAutoCloseTag) htmlAutoCloseTag__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_HTMLparser
+#undef htmlAutoCloseTag
extern __typeof (htmlAutoCloseTag) htmlAutoCloseTag __attribute((alias("htmlAutoCloseTag__internal_alias")));
+#else
+#ifndef htmlAutoCloseTag
+extern __typeof (htmlAutoCloseTag) htmlAutoCloseTag__internal_alias __attribute((visibility("hidden")));
#define htmlAutoCloseTag htmlAutoCloseTag__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_HTML_ENABLED)
-extern __typeof (htmlCreateFileParserCtxt) htmlCreateFileParserCtxt__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_HTMLparser
+#undef htmlCreateFileParserCtxt
extern __typeof (htmlCreateFileParserCtxt) htmlCreateFileParserCtxt __attribute((alias("htmlCreateFileParserCtxt__internal_alias")));
+#else
+#ifndef htmlCreateFileParserCtxt
+extern __typeof (htmlCreateFileParserCtxt) htmlCreateFileParserCtxt__internal_alias __attribute((visibility("hidden")));
#define htmlCreateFileParserCtxt htmlCreateFileParserCtxt__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_HTML_ENABLED)
-extern __typeof (htmlCreateMemoryParserCtxt) htmlCreateMemoryParserCtxt__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_HTMLparser
+#undef htmlCreateMemoryParserCtxt
extern __typeof (htmlCreateMemoryParserCtxt) htmlCreateMemoryParserCtxt __attribute((alias("htmlCreateMemoryParserCtxt__internal_alias")));
+#else
+#ifndef htmlCreateMemoryParserCtxt
+extern __typeof (htmlCreateMemoryParserCtxt) htmlCreateMemoryParserCtxt__internal_alias __attribute((visibility("hidden")));
#define htmlCreateMemoryParserCtxt htmlCreateMemoryParserCtxt__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_HTML_ENABLED) && defined(LIBXML_PUSH_ENABLED)
-extern __typeof (htmlCreatePushParserCtxt) htmlCreatePushParserCtxt__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_HTMLparser
+#undef htmlCreatePushParserCtxt
extern __typeof (htmlCreatePushParserCtxt) htmlCreatePushParserCtxt __attribute((alias("htmlCreatePushParserCtxt__internal_alias")));
+#else
+#ifndef htmlCreatePushParserCtxt
+extern __typeof (htmlCreatePushParserCtxt) htmlCreatePushParserCtxt__internal_alias __attribute((visibility("hidden")));
#define htmlCreatePushParserCtxt htmlCreatePushParserCtxt__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_HTML_ENABLED)
-extern __typeof (htmlCtxtReadDoc) htmlCtxtReadDoc__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_HTMLparser
+#undef htmlCtxtReadDoc
extern __typeof (htmlCtxtReadDoc) htmlCtxtReadDoc __attribute((alias("htmlCtxtReadDoc__internal_alias")));
+#else
+#ifndef htmlCtxtReadDoc
+extern __typeof (htmlCtxtReadDoc) htmlCtxtReadDoc__internal_alias __attribute((visibility("hidden")));
#define htmlCtxtReadDoc htmlCtxtReadDoc__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_HTML_ENABLED)
-extern __typeof (htmlCtxtReadFd) htmlCtxtReadFd__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_HTMLparser
+#undef htmlCtxtReadFd
extern __typeof (htmlCtxtReadFd) htmlCtxtReadFd __attribute((alias("htmlCtxtReadFd__internal_alias")));
+#else
+#ifndef htmlCtxtReadFd
+extern __typeof (htmlCtxtReadFd) htmlCtxtReadFd__internal_alias __attribute((visibility("hidden")));
#define htmlCtxtReadFd htmlCtxtReadFd__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_HTML_ENABLED)
-extern __typeof (htmlCtxtReadFile) htmlCtxtReadFile__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_HTMLparser
+#undef htmlCtxtReadFile
extern __typeof (htmlCtxtReadFile) htmlCtxtReadFile __attribute((alias("htmlCtxtReadFile__internal_alias")));
+#else
+#ifndef htmlCtxtReadFile
+extern __typeof (htmlCtxtReadFile) htmlCtxtReadFile__internal_alias __attribute((visibility("hidden")));
#define htmlCtxtReadFile htmlCtxtReadFile__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_HTML_ENABLED)
-extern __typeof (htmlCtxtReadIO) htmlCtxtReadIO__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_HTMLparser
+#undef htmlCtxtReadIO
extern __typeof (htmlCtxtReadIO) htmlCtxtReadIO __attribute((alias("htmlCtxtReadIO__internal_alias")));
+#else
+#ifndef htmlCtxtReadIO
+extern __typeof (htmlCtxtReadIO) htmlCtxtReadIO__internal_alias __attribute((visibility("hidden")));
#define htmlCtxtReadIO htmlCtxtReadIO__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_HTML_ENABLED)
-extern __typeof (htmlCtxtReadMemory) htmlCtxtReadMemory__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_HTMLparser
+#undef htmlCtxtReadMemory
extern __typeof (htmlCtxtReadMemory) htmlCtxtReadMemory __attribute((alias("htmlCtxtReadMemory__internal_alias")));
+#else
+#ifndef htmlCtxtReadMemory
+extern __typeof (htmlCtxtReadMemory) htmlCtxtReadMemory__internal_alias __attribute((visibility("hidden")));
#define htmlCtxtReadMemory htmlCtxtReadMemory__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_HTML_ENABLED)
-extern __typeof (htmlCtxtReset) htmlCtxtReset__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_HTMLparser
+#undef htmlCtxtReset
extern __typeof (htmlCtxtReset) htmlCtxtReset __attribute((alias("htmlCtxtReset__internal_alias")));
+#else
+#ifndef htmlCtxtReset
+extern __typeof (htmlCtxtReset) htmlCtxtReset__internal_alias __attribute((visibility("hidden")));
#define htmlCtxtReset htmlCtxtReset__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_HTML_ENABLED)
-extern __typeof (htmlCtxtUseOptions) htmlCtxtUseOptions__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_HTMLparser
+#undef htmlCtxtUseOptions
extern __typeof (htmlCtxtUseOptions) htmlCtxtUseOptions __attribute((alias("htmlCtxtUseOptions__internal_alias")));
+#else
+#ifndef htmlCtxtUseOptions
+extern __typeof (htmlCtxtUseOptions) htmlCtxtUseOptions__internal_alias __attribute((visibility("hidden")));
#define htmlCtxtUseOptions htmlCtxtUseOptions__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_HTML_ENABLED)
-extern __typeof (htmlDefaultSAXHandlerInit) htmlDefaultSAXHandlerInit__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_SAX2
+#undef htmlDefaultSAXHandlerInit
extern __typeof (htmlDefaultSAXHandlerInit) htmlDefaultSAXHandlerInit __attribute((alias("htmlDefaultSAXHandlerInit__internal_alias")));
+#else
+#ifndef htmlDefaultSAXHandlerInit
+extern __typeof (htmlDefaultSAXHandlerInit) htmlDefaultSAXHandlerInit__internal_alias __attribute((visibility("hidden")));
#define htmlDefaultSAXHandlerInit htmlDefaultSAXHandlerInit__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_HTML_ENABLED) && defined(LIBXML_OUTPUT_ENABLED)
-extern __typeof (htmlDocContentDumpFormatOutput) htmlDocContentDumpFormatOutput__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_HTMLtree
+#undef htmlDocContentDumpFormatOutput
extern __typeof (htmlDocContentDumpFormatOutput) htmlDocContentDumpFormatOutput __attribute((alias("htmlDocContentDumpFormatOutput__internal_alias")));
+#else
+#ifndef htmlDocContentDumpFormatOutput
+extern __typeof (htmlDocContentDumpFormatOutput) htmlDocContentDumpFormatOutput__internal_alias __attribute((visibility("hidden")));
#define htmlDocContentDumpFormatOutput htmlDocContentDumpFormatOutput__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_HTML_ENABLED) && defined(LIBXML_OUTPUT_ENABLED)
-extern __typeof (htmlDocContentDumpOutput) htmlDocContentDumpOutput__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_HTMLtree
+#undef htmlDocContentDumpOutput
extern __typeof (htmlDocContentDumpOutput) htmlDocContentDumpOutput __attribute((alias("htmlDocContentDumpOutput__internal_alias")));
+#else
+#ifndef htmlDocContentDumpOutput
+extern __typeof (htmlDocContentDumpOutput) htmlDocContentDumpOutput__internal_alias __attribute((visibility("hidden")));
#define htmlDocContentDumpOutput htmlDocContentDumpOutput__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_HTML_ENABLED) && defined(LIBXML_OUTPUT_ENABLED)
-extern __typeof (htmlDocDump) htmlDocDump__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_HTMLtree
+#undef htmlDocDump
extern __typeof (htmlDocDump) htmlDocDump __attribute((alias("htmlDocDump__internal_alias")));
+#else
+#ifndef htmlDocDump
+extern __typeof (htmlDocDump) htmlDocDump__internal_alias __attribute((visibility("hidden")));
#define htmlDocDump htmlDocDump__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_HTML_ENABLED) && defined(LIBXML_OUTPUT_ENABLED)
-extern __typeof (htmlDocDumpMemory) htmlDocDumpMemory__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_HTMLtree
+#undef htmlDocDumpMemory
extern __typeof (htmlDocDumpMemory) htmlDocDumpMemory __attribute((alias("htmlDocDumpMemory__internal_alias")));
+#else
+#ifndef htmlDocDumpMemory
+extern __typeof (htmlDocDumpMemory) htmlDocDumpMemory__internal_alias __attribute((visibility("hidden")));
#define htmlDocDumpMemory htmlDocDumpMemory__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_HTML_ENABLED)
-extern __typeof (htmlElementAllowedHere) htmlElementAllowedHere__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_HTMLparser
+#undef htmlElementAllowedHere
extern __typeof (htmlElementAllowedHere) htmlElementAllowedHere __attribute((alias("htmlElementAllowedHere__internal_alias")));
+#else
+#ifndef htmlElementAllowedHere
+extern __typeof (htmlElementAllowedHere) htmlElementAllowedHere__internal_alias __attribute((visibility("hidden")));
#define htmlElementAllowedHere htmlElementAllowedHere__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_HTML_ENABLED)
-extern __typeof (htmlElementStatusHere) htmlElementStatusHere__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_HTMLparser
+#undef htmlElementStatusHere
extern __typeof (htmlElementStatusHere) htmlElementStatusHere __attribute((alias("htmlElementStatusHere__internal_alias")));
+#else
+#ifndef htmlElementStatusHere
+extern __typeof (htmlElementStatusHere) htmlElementStatusHere__internal_alias __attribute((visibility("hidden")));
#define htmlElementStatusHere htmlElementStatusHere__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_HTML_ENABLED)
-extern __typeof (htmlEncodeEntities) htmlEncodeEntities__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_HTMLparser
+#undef htmlEncodeEntities
extern __typeof (htmlEncodeEntities) htmlEncodeEntities __attribute((alias("htmlEncodeEntities__internal_alias")));
+#else
+#ifndef htmlEncodeEntities
+extern __typeof (htmlEncodeEntities) htmlEncodeEntities__internal_alias __attribute((visibility("hidden")));
#define htmlEncodeEntities htmlEncodeEntities__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_HTML_ENABLED)
-extern __typeof (htmlEntityLookup) htmlEntityLookup__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_HTMLparser
+#undef htmlEntityLookup
extern __typeof (htmlEntityLookup) htmlEntityLookup __attribute((alias("htmlEntityLookup__internal_alias")));
+#else
+#ifndef htmlEntityLookup
+extern __typeof (htmlEntityLookup) htmlEntityLookup__internal_alias __attribute((visibility("hidden")));
#define htmlEntityLookup htmlEntityLookup__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_HTML_ENABLED)
-extern __typeof (htmlEntityValueLookup) htmlEntityValueLookup__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_HTMLparser
+#undef htmlEntityValueLookup
extern __typeof (htmlEntityValueLookup) htmlEntityValueLookup __attribute((alias("htmlEntityValueLookup__internal_alias")));
+#else
+#ifndef htmlEntityValueLookup
+extern __typeof (htmlEntityValueLookup) htmlEntityValueLookup__internal_alias __attribute((visibility("hidden")));
#define htmlEntityValueLookup htmlEntityValueLookup__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_HTML_ENABLED)
-extern __typeof (htmlFreeParserCtxt) htmlFreeParserCtxt__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_HTMLparser
+#undef htmlFreeParserCtxt
extern __typeof (htmlFreeParserCtxt) htmlFreeParserCtxt __attribute((alias("htmlFreeParserCtxt__internal_alias")));
+#else
+#ifndef htmlFreeParserCtxt
+extern __typeof (htmlFreeParserCtxt) htmlFreeParserCtxt__internal_alias __attribute((visibility("hidden")));
#define htmlFreeParserCtxt htmlFreeParserCtxt__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_HTML_ENABLED)
-extern __typeof (htmlGetMetaEncoding) htmlGetMetaEncoding__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_HTMLtree
+#undef htmlGetMetaEncoding
extern __typeof (htmlGetMetaEncoding) htmlGetMetaEncoding __attribute((alias("htmlGetMetaEncoding__internal_alias")));
+#else
+#ifndef htmlGetMetaEncoding
+extern __typeof (htmlGetMetaEncoding) htmlGetMetaEncoding__internal_alias __attribute((visibility("hidden")));
#define htmlGetMetaEncoding htmlGetMetaEncoding__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_HTML_ENABLED)
-extern __typeof (htmlHandleOmittedElem) htmlHandleOmittedElem__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_HTMLparser
+#undef htmlHandleOmittedElem
extern __typeof (htmlHandleOmittedElem) htmlHandleOmittedElem __attribute((alias("htmlHandleOmittedElem__internal_alias")));
+#else
+#ifndef htmlHandleOmittedElem
+extern __typeof (htmlHandleOmittedElem) htmlHandleOmittedElem__internal_alias __attribute((visibility("hidden")));
#define htmlHandleOmittedElem htmlHandleOmittedElem__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_HTML_ENABLED)
-extern __typeof (htmlInitAutoClose) htmlInitAutoClose__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_HTMLparser
+#undef htmlInitAutoClose
extern __typeof (htmlInitAutoClose) htmlInitAutoClose __attribute((alias("htmlInitAutoClose__internal_alias")));
+#else
+#ifndef htmlInitAutoClose
+extern __typeof (htmlInitAutoClose) htmlInitAutoClose__internal_alias __attribute((visibility("hidden")));
#define htmlInitAutoClose htmlInitAutoClose__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_HTML_ENABLED)
-extern __typeof (htmlIsAutoClosed) htmlIsAutoClosed__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_HTMLparser
+#undef htmlIsAutoClosed
extern __typeof (htmlIsAutoClosed) htmlIsAutoClosed __attribute((alias("htmlIsAutoClosed__internal_alias")));
+#else
+#ifndef htmlIsAutoClosed
+extern __typeof (htmlIsAutoClosed) htmlIsAutoClosed__internal_alias __attribute((visibility("hidden")));
#define htmlIsAutoClosed htmlIsAutoClosed__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_HTML_ENABLED)
-extern __typeof (htmlIsBooleanAttr) htmlIsBooleanAttr__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_HTMLtree
+#undef htmlIsBooleanAttr
extern __typeof (htmlIsBooleanAttr) htmlIsBooleanAttr __attribute((alias("htmlIsBooleanAttr__internal_alias")));
+#else
+#ifndef htmlIsBooleanAttr
+extern __typeof (htmlIsBooleanAttr) htmlIsBooleanAttr__internal_alias __attribute((visibility("hidden")));
#define htmlIsBooleanAttr htmlIsBooleanAttr__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_HTML_ENABLED)
-extern __typeof (htmlIsScriptAttribute) htmlIsScriptAttribute__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_HTMLparser
+#undef htmlIsScriptAttribute
extern __typeof (htmlIsScriptAttribute) htmlIsScriptAttribute __attribute((alias("htmlIsScriptAttribute__internal_alias")));
+#else
+#ifndef htmlIsScriptAttribute
+extern __typeof (htmlIsScriptAttribute) htmlIsScriptAttribute__internal_alias __attribute((visibility("hidden")));
#define htmlIsScriptAttribute htmlIsScriptAttribute__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_HTML_ENABLED)
-extern __typeof (htmlNewDoc) htmlNewDoc__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_HTMLparser
+#undef htmlNewDoc
extern __typeof (htmlNewDoc) htmlNewDoc __attribute((alias("htmlNewDoc__internal_alias")));
+#else
+#ifndef htmlNewDoc
+extern __typeof (htmlNewDoc) htmlNewDoc__internal_alias __attribute((visibility("hidden")));
#define htmlNewDoc htmlNewDoc__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_HTML_ENABLED)
-extern __typeof (htmlNewDocNoDtD) htmlNewDocNoDtD__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_HTMLparser
+#undef htmlNewDocNoDtD
extern __typeof (htmlNewDocNoDtD) htmlNewDocNoDtD __attribute((alias("htmlNewDocNoDtD__internal_alias")));
+#else
+#ifndef htmlNewDocNoDtD
+extern __typeof (htmlNewDocNoDtD) htmlNewDocNoDtD__internal_alias __attribute((visibility("hidden")));
#define htmlNewDocNoDtD htmlNewDocNoDtD__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_HTML_ENABLED) && defined(LIBXML_OUTPUT_ENABLED)
-extern __typeof (htmlNodeDump) htmlNodeDump__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_HTMLtree
+#undef htmlNodeDump
extern __typeof (htmlNodeDump) htmlNodeDump __attribute((alias("htmlNodeDump__internal_alias")));
+#else
+#ifndef htmlNodeDump
+extern __typeof (htmlNodeDump) htmlNodeDump__internal_alias __attribute((visibility("hidden")));
#define htmlNodeDump htmlNodeDump__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_HTML_ENABLED) && defined(LIBXML_OUTPUT_ENABLED)
-extern __typeof (htmlNodeDumpFile) htmlNodeDumpFile__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_HTMLtree
+#undef htmlNodeDumpFile
extern __typeof (htmlNodeDumpFile) htmlNodeDumpFile __attribute((alias("htmlNodeDumpFile__internal_alias")));
+#else
+#ifndef htmlNodeDumpFile
+extern __typeof (htmlNodeDumpFile) htmlNodeDumpFile__internal_alias __attribute((visibility("hidden")));
#define htmlNodeDumpFile htmlNodeDumpFile__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_HTML_ENABLED) && defined(LIBXML_OUTPUT_ENABLED)
-extern __typeof (htmlNodeDumpFileFormat) htmlNodeDumpFileFormat__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_HTMLtree
+#undef htmlNodeDumpFileFormat
extern __typeof (htmlNodeDumpFileFormat) htmlNodeDumpFileFormat __attribute((alias("htmlNodeDumpFileFormat__internal_alias")));
+#else
+#ifndef htmlNodeDumpFileFormat
+extern __typeof (htmlNodeDumpFileFormat) htmlNodeDumpFileFormat__internal_alias __attribute((visibility("hidden")));
#define htmlNodeDumpFileFormat htmlNodeDumpFileFormat__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_HTML_ENABLED) && defined(LIBXML_OUTPUT_ENABLED)
-extern __typeof (htmlNodeDumpFormatOutput) htmlNodeDumpFormatOutput__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_HTMLtree
+#undef htmlNodeDumpFormatOutput
extern __typeof (htmlNodeDumpFormatOutput) htmlNodeDumpFormatOutput __attribute((alias("htmlNodeDumpFormatOutput__internal_alias")));
+#else
+#ifndef htmlNodeDumpFormatOutput
+extern __typeof (htmlNodeDumpFormatOutput) htmlNodeDumpFormatOutput__internal_alias __attribute((visibility("hidden")));
#define htmlNodeDumpFormatOutput htmlNodeDumpFormatOutput__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_HTML_ENABLED) && defined(LIBXML_OUTPUT_ENABLED)
-extern __typeof (htmlNodeDumpOutput) htmlNodeDumpOutput__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_HTMLtree
+#undef htmlNodeDumpOutput
extern __typeof (htmlNodeDumpOutput) htmlNodeDumpOutput __attribute((alias("htmlNodeDumpOutput__internal_alias")));
+#else
+#ifndef htmlNodeDumpOutput
+extern __typeof (htmlNodeDumpOutput) htmlNodeDumpOutput__internal_alias __attribute((visibility("hidden")));
#define htmlNodeDumpOutput htmlNodeDumpOutput__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_HTML_ENABLED)
-extern __typeof (htmlNodeStatus) htmlNodeStatus__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_HTMLparser
+#undef htmlNodeStatus
extern __typeof (htmlNodeStatus) htmlNodeStatus __attribute((alias("htmlNodeStatus__internal_alias")));
+#else
+#ifndef htmlNodeStatus
+extern __typeof (htmlNodeStatus) htmlNodeStatus__internal_alias __attribute((visibility("hidden")));
#define htmlNodeStatus htmlNodeStatus__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_HTML_ENABLED)
-extern __typeof (htmlParseCharRef) htmlParseCharRef__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_HTMLparser
+#undef htmlParseCharRef
extern __typeof (htmlParseCharRef) htmlParseCharRef __attribute((alias("htmlParseCharRef__internal_alias")));
+#else
+#ifndef htmlParseCharRef
+extern __typeof (htmlParseCharRef) htmlParseCharRef__internal_alias __attribute((visibility("hidden")));
#define htmlParseCharRef htmlParseCharRef__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_HTML_ENABLED) && defined(LIBXML_PUSH_ENABLED)
-extern __typeof (htmlParseChunk) htmlParseChunk__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_HTMLparser
+#undef htmlParseChunk
extern __typeof (htmlParseChunk) htmlParseChunk __attribute((alias("htmlParseChunk__internal_alias")));
+#else
+#ifndef htmlParseChunk
+extern __typeof (htmlParseChunk) htmlParseChunk__internal_alias __attribute((visibility("hidden")));
#define htmlParseChunk htmlParseChunk__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_HTML_ENABLED)
-extern __typeof (htmlParseDoc) htmlParseDoc__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_HTMLparser
+#undef htmlParseDoc
extern __typeof (htmlParseDoc) htmlParseDoc __attribute((alias("htmlParseDoc__internal_alias")));
+#else
+#ifndef htmlParseDoc
+extern __typeof (htmlParseDoc) htmlParseDoc__internal_alias __attribute((visibility("hidden")));
#define htmlParseDoc htmlParseDoc__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_HTML_ENABLED)
-extern __typeof (htmlParseDocument) htmlParseDocument__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_HTMLparser
+#undef htmlParseDocument
extern __typeof (htmlParseDocument) htmlParseDocument __attribute((alias("htmlParseDocument__internal_alias")));
+#else
+#ifndef htmlParseDocument
+extern __typeof (htmlParseDocument) htmlParseDocument__internal_alias __attribute((visibility("hidden")));
#define htmlParseDocument htmlParseDocument__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_HTML_ENABLED)
-extern __typeof (htmlParseElement) htmlParseElement__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_HTMLparser
+#undef htmlParseElement
extern __typeof (htmlParseElement) htmlParseElement __attribute((alias("htmlParseElement__internal_alias")));
+#else
+#ifndef htmlParseElement
+extern __typeof (htmlParseElement) htmlParseElement__internal_alias __attribute((visibility("hidden")));
#define htmlParseElement htmlParseElement__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_HTML_ENABLED)
-extern __typeof (htmlParseEntityRef) htmlParseEntityRef__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_HTMLparser
+#undef htmlParseEntityRef
extern __typeof (htmlParseEntityRef) htmlParseEntityRef __attribute((alias("htmlParseEntityRef__internal_alias")));
+#else
+#ifndef htmlParseEntityRef
+extern __typeof (htmlParseEntityRef) htmlParseEntityRef__internal_alias __attribute((visibility("hidden")));
#define htmlParseEntityRef htmlParseEntityRef__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_HTML_ENABLED)
-extern __typeof (htmlParseFile) htmlParseFile__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_HTMLparser
+#undef htmlParseFile
extern __typeof (htmlParseFile) htmlParseFile __attribute((alias("htmlParseFile__internal_alias")));
+#else
+#ifndef htmlParseFile
+extern __typeof (htmlParseFile) htmlParseFile__internal_alias __attribute((visibility("hidden")));
#define htmlParseFile htmlParseFile__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_HTML_ENABLED)
-extern __typeof (htmlReadDoc) htmlReadDoc__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_HTMLparser
+#undef htmlReadDoc
extern __typeof (htmlReadDoc) htmlReadDoc __attribute((alias("htmlReadDoc__internal_alias")));
+#else
+#ifndef htmlReadDoc
+extern __typeof (htmlReadDoc) htmlReadDoc__internal_alias __attribute((visibility("hidden")));
#define htmlReadDoc htmlReadDoc__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_HTML_ENABLED)
-extern __typeof (htmlReadFd) htmlReadFd__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_HTMLparser
+#undef htmlReadFd
extern __typeof (htmlReadFd) htmlReadFd __attribute((alias("htmlReadFd__internal_alias")));
+#else
+#ifndef htmlReadFd
+extern __typeof (htmlReadFd) htmlReadFd__internal_alias __attribute((visibility("hidden")));
#define htmlReadFd htmlReadFd__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_HTML_ENABLED)
-extern __typeof (htmlReadFile) htmlReadFile__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_HTMLparser
+#undef htmlReadFile
extern __typeof (htmlReadFile) htmlReadFile __attribute((alias("htmlReadFile__internal_alias")));
+#else
+#ifndef htmlReadFile
+extern __typeof (htmlReadFile) htmlReadFile__internal_alias __attribute((visibility("hidden")));
#define htmlReadFile htmlReadFile__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_HTML_ENABLED)
-extern __typeof (htmlReadIO) htmlReadIO__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_HTMLparser
+#undef htmlReadIO
extern __typeof (htmlReadIO) htmlReadIO __attribute((alias("htmlReadIO__internal_alias")));
+#else
+#ifndef htmlReadIO
+extern __typeof (htmlReadIO) htmlReadIO__internal_alias __attribute((visibility("hidden")));
#define htmlReadIO htmlReadIO__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_HTML_ENABLED)
-extern __typeof (htmlReadMemory) htmlReadMemory__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_HTMLparser
+#undef htmlReadMemory
extern __typeof (htmlReadMemory) htmlReadMemory __attribute((alias("htmlReadMemory__internal_alias")));
+#else
+#ifndef htmlReadMemory
+extern __typeof (htmlReadMemory) htmlReadMemory__internal_alias __attribute((visibility("hidden")));
#define htmlReadMemory htmlReadMemory__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_HTML_ENABLED)
-extern __typeof (htmlSAXParseDoc) htmlSAXParseDoc__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_HTMLparser
+#undef htmlSAXParseDoc
extern __typeof (htmlSAXParseDoc) htmlSAXParseDoc __attribute((alias("htmlSAXParseDoc__internal_alias")));
+#else
+#ifndef htmlSAXParseDoc
+extern __typeof (htmlSAXParseDoc) htmlSAXParseDoc__internal_alias __attribute((visibility("hidden")));
#define htmlSAXParseDoc htmlSAXParseDoc__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_HTML_ENABLED)
-extern __typeof (htmlSAXParseFile) htmlSAXParseFile__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_HTMLparser
+#undef htmlSAXParseFile
extern __typeof (htmlSAXParseFile) htmlSAXParseFile __attribute((alias("htmlSAXParseFile__internal_alias")));
+#else
+#ifndef htmlSAXParseFile
+extern __typeof (htmlSAXParseFile) htmlSAXParseFile__internal_alias __attribute((visibility("hidden")));
#define htmlSAXParseFile htmlSAXParseFile__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_HTML_ENABLED) && defined(LIBXML_OUTPUT_ENABLED)
-extern __typeof (htmlSaveFile) htmlSaveFile__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_HTMLtree
+#undef htmlSaveFile
extern __typeof (htmlSaveFile) htmlSaveFile __attribute((alias("htmlSaveFile__internal_alias")));
+#else
+#ifndef htmlSaveFile
+extern __typeof (htmlSaveFile) htmlSaveFile__internal_alias __attribute((visibility("hidden")));
#define htmlSaveFile htmlSaveFile__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_HTML_ENABLED) && defined(LIBXML_OUTPUT_ENABLED)
-extern __typeof (htmlSaveFileEnc) htmlSaveFileEnc__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_HTMLtree
+#undef htmlSaveFileEnc
extern __typeof (htmlSaveFileEnc) htmlSaveFileEnc __attribute((alias("htmlSaveFileEnc__internal_alias")));
+#else
+#ifndef htmlSaveFileEnc
+extern __typeof (htmlSaveFileEnc) htmlSaveFileEnc__internal_alias __attribute((visibility("hidden")));
#define htmlSaveFileEnc htmlSaveFileEnc__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_HTML_ENABLED) && defined(LIBXML_OUTPUT_ENABLED)
-extern __typeof (htmlSaveFileFormat) htmlSaveFileFormat__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_HTMLtree
+#undef htmlSaveFileFormat
extern __typeof (htmlSaveFileFormat) htmlSaveFileFormat __attribute((alias("htmlSaveFileFormat__internal_alias")));
+#else
+#ifndef htmlSaveFileFormat
+extern __typeof (htmlSaveFileFormat) htmlSaveFileFormat__internal_alias __attribute((visibility("hidden")));
#define htmlSaveFileFormat htmlSaveFileFormat__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_HTML_ENABLED)
-extern __typeof (htmlSetMetaEncoding) htmlSetMetaEncoding__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_HTMLtree
+#undef htmlSetMetaEncoding
extern __typeof (htmlSetMetaEncoding) htmlSetMetaEncoding __attribute((alias("htmlSetMetaEncoding__internal_alias")));
+#else
+#ifndef htmlSetMetaEncoding
+extern __typeof (htmlSetMetaEncoding) htmlSetMetaEncoding__internal_alias __attribute((visibility("hidden")));
#define htmlSetMetaEncoding htmlSetMetaEncoding__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_HTML_ENABLED)
-extern __typeof (htmlTagLookup) htmlTagLookup__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_HTMLparser
+#undef htmlTagLookup
extern __typeof (htmlTagLookup) htmlTagLookup __attribute((alias("htmlTagLookup__internal_alias")));
+#else
+#ifndef htmlTagLookup
+extern __typeof (htmlTagLookup) htmlTagLookup__internal_alias __attribute((visibility("hidden")));
#define htmlTagLookup htmlTagLookup__internal_alias
#endif
+#endif
+#endif
-extern __typeof (inputPop) inputPop__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_parser
+#undef inputPop
extern __typeof (inputPop) inputPop __attribute((alias("inputPop__internal_alias")));
+#else
+#ifndef inputPop
+extern __typeof (inputPop) inputPop__internal_alias __attribute((visibility("hidden")));
#define inputPop inputPop__internal_alias
+#endif
+#endif
-extern __typeof (inputPush) inputPush__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_parser
+#undef inputPush
extern __typeof (inputPush) inputPush __attribute((alias("inputPush__internal_alias")));
+#else
+#ifndef inputPush
+extern __typeof (inputPush) inputPush__internal_alias __attribute((visibility("hidden")));
#define inputPush inputPush__internal_alias
+#endif
+#endif
-extern __typeof (namePop) namePop__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_parser
+#undef namePop
extern __typeof (namePop) namePop __attribute((alias("namePop__internal_alias")));
+#else
+#ifndef namePop
+extern __typeof (namePop) namePop__internal_alias __attribute((visibility("hidden")));
#define namePop namePop__internal_alias
+#endif
+#endif
-extern __typeof (namePush) namePush__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_parser
+#undef namePush
extern __typeof (namePush) namePush __attribute((alias("namePush__internal_alias")));
+#else
+#ifndef namePush
+extern __typeof (namePush) namePush__internal_alias __attribute((visibility("hidden")));
#define namePush namePush__internal_alias
+#endif
+#endif
-extern __typeof (nodePop) nodePop__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_parser
+#undef nodePop
extern __typeof (nodePop) nodePop __attribute((alias("nodePop__internal_alias")));
+#else
+#ifndef nodePop
+extern __typeof (nodePop) nodePop__internal_alias __attribute((visibility("hidden")));
#define nodePop nodePop__internal_alias
+#endif
+#endif
-extern __typeof (nodePush) nodePush__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_parser
+#undef nodePush
extern __typeof (nodePush) nodePush __attribute((alias("nodePush__internal_alias")));
+#else
+#ifndef nodePush
+extern __typeof (nodePush) nodePush__internal_alias __attribute((visibility("hidden")));
#define nodePush nodePush__internal_alias
+#endif
+#endif
#if defined(LIBXML_XPATH_ENABLED)
-extern __typeof (valuePop) valuePop__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xpath
+#undef valuePop
extern __typeof (valuePop) valuePop __attribute((alias("valuePop__internal_alias")));
+#else
+#ifndef valuePop
+extern __typeof (valuePop) valuePop__internal_alias __attribute((visibility("hidden")));
#define valuePop valuePop__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_XPATH_ENABLED)
-extern __typeof (valuePush) valuePush__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xpath
+#undef valuePush
extern __typeof (valuePush) valuePush __attribute((alias("valuePush__internal_alias")));
+#else
+#ifndef valuePush
+extern __typeof (valuePush) valuePush__internal_alias __attribute((visibility("hidden")));
#define valuePush valuePush__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_CATALOG_ENABLED)
-extern __typeof (xmlACatalogAdd) xmlACatalogAdd__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_catalog
+#undef xmlACatalogAdd
extern __typeof (xmlACatalogAdd) xmlACatalogAdd __attribute((alias("xmlACatalogAdd__internal_alias")));
+#else
+#ifndef xmlACatalogAdd
+extern __typeof (xmlACatalogAdd) xmlACatalogAdd__internal_alias __attribute((visibility("hidden")));
#define xmlACatalogAdd xmlACatalogAdd__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_CATALOG_ENABLED) && defined(LIBXML_OUTPUT_ENABLED)
-extern __typeof (xmlACatalogDump) xmlACatalogDump__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_catalog
+#undef xmlACatalogDump
extern __typeof (xmlACatalogDump) xmlACatalogDump __attribute((alias("xmlACatalogDump__internal_alias")));
+#else
+#ifndef xmlACatalogDump
+extern __typeof (xmlACatalogDump) xmlACatalogDump__internal_alias __attribute((visibility("hidden")));
#define xmlACatalogDump xmlACatalogDump__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_CATALOG_ENABLED)
-extern __typeof (xmlACatalogRemove) xmlACatalogRemove__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_catalog
+#undef xmlACatalogRemove
extern __typeof (xmlACatalogRemove) xmlACatalogRemove __attribute((alias("xmlACatalogRemove__internal_alias")));
+#else
+#ifndef xmlACatalogRemove
+extern __typeof (xmlACatalogRemove) xmlACatalogRemove__internal_alias __attribute((visibility("hidden")));
#define xmlACatalogRemove xmlACatalogRemove__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_CATALOG_ENABLED)
-extern __typeof (xmlACatalogResolve) xmlACatalogResolve__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_catalog
+#undef xmlACatalogResolve
extern __typeof (xmlACatalogResolve) xmlACatalogResolve __attribute((alias("xmlACatalogResolve__internal_alias")));
+#else
+#ifndef xmlACatalogResolve
+extern __typeof (xmlACatalogResolve) xmlACatalogResolve__internal_alias __attribute((visibility("hidden")));
#define xmlACatalogResolve xmlACatalogResolve__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_CATALOG_ENABLED)
-extern __typeof (xmlACatalogResolvePublic) xmlACatalogResolvePublic__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_catalog
+#undef xmlACatalogResolvePublic
extern __typeof (xmlACatalogResolvePublic) xmlACatalogResolvePublic __attribute((alias("xmlACatalogResolvePublic__internal_alias")));
+#else
+#ifndef xmlACatalogResolvePublic
+extern __typeof (xmlACatalogResolvePublic) xmlACatalogResolvePublic__internal_alias __attribute((visibility("hidden")));
#define xmlACatalogResolvePublic xmlACatalogResolvePublic__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_CATALOG_ENABLED)
-extern __typeof (xmlACatalogResolveSystem) xmlACatalogResolveSystem__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_catalog
+#undef xmlACatalogResolveSystem
extern __typeof (xmlACatalogResolveSystem) xmlACatalogResolveSystem __attribute((alias("xmlACatalogResolveSystem__internal_alias")));
+#else
+#ifndef xmlACatalogResolveSystem
+extern __typeof (xmlACatalogResolveSystem) xmlACatalogResolveSystem__internal_alias __attribute((visibility("hidden")));
#define xmlACatalogResolveSystem xmlACatalogResolveSystem__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_CATALOG_ENABLED)
-extern __typeof (xmlACatalogResolveURI) xmlACatalogResolveURI__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_catalog
+#undef xmlACatalogResolveURI
extern __typeof (xmlACatalogResolveURI) xmlACatalogResolveURI __attribute((alias("xmlACatalogResolveURI__internal_alias")));
+#else
+#ifndef xmlACatalogResolveURI
+extern __typeof (xmlACatalogResolveURI) xmlACatalogResolveURI__internal_alias __attribute((visibility("hidden")));
#define xmlACatalogResolveURI xmlACatalogResolveURI__internal_alias
#endif
+#endif
+#endif
-extern __typeof (xmlAddAttributeDecl) xmlAddAttributeDecl__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_valid
+#undef xmlAddAttributeDecl
extern __typeof (xmlAddAttributeDecl) xmlAddAttributeDecl __attribute((alias("xmlAddAttributeDecl__internal_alias")));
+#else
+#ifndef xmlAddAttributeDecl
+extern __typeof (xmlAddAttributeDecl) xmlAddAttributeDecl__internal_alias __attribute((visibility("hidden")));
#define xmlAddAttributeDecl xmlAddAttributeDecl__internal_alias
+#endif
+#endif
-extern __typeof (xmlAddChild) xmlAddChild__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_tree
+#undef xmlAddChild
extern __typeof (xmlAddChild) xmlAddChild __attribute((alias("xmlAddChild__internal_alias")));
+#else
+#ifndef xmlAddChild
+extern __typeof (xmlAddChild) xmlAddChild__internal_alias __attribute((visibility("hidden")));
#define xmlAddChild xmlAddChild__internal_alias
+#endif
+#endif
-extern __typeof (xmlAddChildList) xmlAddChildList__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_tree
+#undef xmlAddChildList
extern __typeof (xmlAddChildList) xmlAddChildList __attribute((alias("xmlAddChildList__internal_alias")));
+#else
+#ifndef xmlAddChildList
+extern __typeof (xmlAddChildList) xmlAddChildList__internal_alias __attribute((visibility("hidden")));
#define xmlAddChildList xmlAddChildList__internal_alias
+#endif
+#endif
-extern __typeof (xmlAddDocEntity) xmlAddDocEntity__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_entities
+#undef xmlAddDocEntity
extern __typeof (xmlAddDocEntity) xmlAddDocEntity __attribute((alias("xmlAddDocEntity__internal_alias")));
+#else
+#ifndef xmlAddDocEntity
+extern __typeof (xmlAddDocEntity) xmlAddDocEntity__internal_alias __attribute((visibility("hidden")));
#define xmlAddDocEntity xmlAddDocEntity__internal_alias
+#endif
+#endif
-extern __typeof (xmlAddDtdEntity) xmlAddDtdEntity__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_entities
+#undef xmlAddDtdEntity
extern __typeof (xmlAddDtdEntity) xmlAddDtdEntity __attribute((alias("xmlAddDtdEntity__internal_alias")));
+#else
+#ifndef xmlAddDtdEntity
+extern __typeof (xmlAddDtdEntity) xmlAddDtdEntity__internal_alias __attribute((visibility("hidden")));
#define xmlAddDtdEntity xmlAddDtdEntity__internal_alias
+#endif
+#endif
-extern __typeof (xmlAddElementDecl) xmlAddElementDecl__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_valid
+#undef xmlAddElementDecl
extern __typeof (xmlAddElementDecl) xmlAddElementDecl __attribute((alias("xmlAddElementDecl__internal_alias")));
+#else
+#ifndef xmlAddElementDecl
+extern __typeof (xmlAddElementDecl) xmlAddElementDecl__internal_alias __attribute((visibility("hidden")));
#define xmlAddElementDecl xmlAddElementDecl__internal_alias
+#endif
+#endif
-extern __typeof (xmlAddEncodingAlias) xmlAddEncodingAlias__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_encoding
+#undef xmlAddEncodingAlias
extern __typeof (xmlAddEncodingAlias) xmlAddEncodingAlias __attribute((alias("xmlAddEncodingAlias__internal_alias")));
+#else
+#ifndef xmlAddEncodingAlias
+extern __typeof (xmlAddEncodingAlias) xmlAddEncodingAlias__internal_alias __attribute((visibility("hidden")));
#define xmlAddEncodingAlias xmlAddEncodingAlias__internal_alias
+#endif
+#endif
-extern __typeof (xmlAddID) xmlAddID__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_valid
+#undef xmlAddID
extern __typeof (xmlAddID) xmlAddID __attribute((alias("xmlAddID__internal_alias")));
+#else
+#ifndef xmlAddID
+extern __typeof (xmlAddID) xmlAddID__internal_alias __attribute((visibility("hidden")));
#define xmlAddID xmlAddID__internal_alias
+#endif
+#endif
-extern __typeof (xmlAddNextSibling) xmlAddNextSibling__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_tree
+#undef xmlAddNextSibling
extern __typeof (xmlAddNextSibling) xmlAddNextSibling __attribute((alias("xmlAddNextSibling__internal_alias")));
+#else
+#ifndef xmlAddNextSibling
+extern __typeof (xmlAddNextSibling) xmlAddNextSibling__internal_alias __attribute((visibility("hidden")));
#define xmlAddNextSibling xmlAddNextSibling__internal_alias
+#endif
+#endif
-extern __typeof (xmlAddNotationDecl) xmlAddNotationDecl__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_valid
+#undef xmlAddNotationDecl
extern __typeof (xmlAddNotationDecl) xmlAddNotationDecl __attribute((alias("xmlAddNotationDecl__internal_alias")));
+#else
+#ifndef xmlAddNotationDecl
+extern __typeof (xmlAddNotationDecl) xmlAddNotationDecl__internal_alias __attribute((visibility("hidden")));
#define xmlAddNotationDecl xmlAddNotationDecl__internal_alias
+#endif
+#endif
#if defined(LIBXML_TREE_ENABLED) || defined(LIBXML_HTML_ENABLED) || defined(LIBXML_SCHEMAS_ENABLED)
-extern __typeof (xmlAddPrevSibling) xmlAddPrevSibling__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_tree
+#undef xmlAddPrevSibling
extern __typeof (xmlAddPrevSibling) xmlAddPrevSibling __attribute((alias("xmlAddPrevSibling__internal_alias")));
+#else
+#ifndef xmlAddPrevSibling
+extern __typeof (xmlAddPrevSibling) xmlAddPrevSibling__internal_alias __attribute((visibility("hidden")));
#define xmlAddPrevSibling xmlAddPrevSibling__internal_alias
#endif
+#endif
+#endif
-extern __typeof (xmlAddRef) xmlAddRef__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_valid
+#undef xmlAddRef
extern __typeof (xmlAddRef) xmlAddRef __attribute((alias("xmlAddRef__internal_alias")));
+#else
+#ifndef xmlAddRef
+extern __typeof (xmlAddRef) xmlAddRef__internal_alias __attribute((visibility("hidden")));
#define xmlAddRef xmlAddRef__internal_alias
+#endif
+#endif
-extern __typeof (xmlAddSibling) xmlAddSibling__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_tree
+#undef xmlAddSibling
extern __typeof (xmlAddSibling) xmlAddSibling __attribute((alias("xmlAddSibling__internal_alias")));
+#else
+#ifndef xmlAddSibling
+extern __typeof (xmlAddSibling) xmlAddSibling__internal_alias __attribute((visibility("hidden")));
#define xmlAddSibling xmlAddSibling__internal_alias
+#endif
+#endif
#if defined(LIBXML_OUTPUT_ENABLED)
-extern __typeof (xmlAllocOutputBuffer) xmlAllocOutputBuffer__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlIO
+#undef xmlAllocOutputBuffer
extern __typeof (xmlAllocOutputBuffer) xmlAllocOutputBuffer __attribute((alias("xmlAllocOutputBuffer__internal_alias")));
+#else
+#ifndef xmlAllocOutputBuffer
+extern __typeof (xmlAllocOutputBuffer) xmlAllocOutputBuffer__internal_alias __attribute((visibility("hidden")));
#define xmlAllocOutputBuffer xmlAllocOutputBuffer__internal_alias
#endif
+#endif
+#endif
-extern __typeof (xmlAllocParserInputBuffer) xmlAllocParserInputBuffer__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlIO
+#undef xmlAllocParserInputBuffer
extern __typeof (xmlAllocParserInputBuffer) xmlAllocParserInputBuffer __attribute((alias("xmlAllocParserInputBuffer__internal_alias")));
+#else
+#ifndef xmlAllocParserInputBuffer
+extern __typeof (xmlAllocParserInputBuffer) xmlAllocParserInputBuffer__internal_alias __attribute((visibility("hidden")));
#define xmlAllocParserInputBuffer xmlAllocParserInputBuffer__internal_alias
+#endif
+#endif
#if defined(LIBXML_OUTPUT_ENABLED)
-extern __typeof (xmlAttrSerializeTxtContent) xmlAttrSerializeTxtContent__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlsave
+#undef xmlAttrSerializeTxtContent
extern __typeof (xmlAttrSerializeTxtContent) xmlAttrSerializeTxtContent __attribute((alias("xmlAttrSerializeTxtContent__internal_alias")));
+#else
+#ifndef xmlAttrSerializeTxtContent
+extern __typeof (xmlAttrSerializeTxtContent) xmlAttrSerializeTxtContent__internal_alias __attribute((visibility("hidden")));
#define xmlAttrSerializeTxtContent xmlAttrSerializeTxtContent__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_REGEXP_ENABLED) && defined(LIBXML_AUTOMATA_ENABLED)
-extern __typeof (xmlAutomataCompile) xmlAutomataCompile__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlregexp
+#undef xmlAutomataCompile
extern __typeof (xmlAutomataCompile) xmlAutomataCompile __attribute((alias("xmlAutomataCompile__internal_alias")));
+#else
+#ifndef xmlAutomataCompile
+extern __typeof (xmlAutomataCompile) xmlAutomataCompile__internal_alias __attribute((visibility("hidden")));
#define xmlAutomataCompile xmlAutomataCompile__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_REGEXP_ENABLED) && defined(LIBXML_AUTOMATA_ENABLED)
-extern __typeof (xmlAutomataGetInitState) xmlAutomataGetInitState__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlregexp
+#undef xmlAutomataGetInitState
extern __typeof (xmlAutomataGetInitState) xmlAutomataGetInitState __attribute((alias("xmlAutomataGetInitState__internal_alias")));
+#else
+#ifndef xmlAutomataGetInitState
+extern __typeof (xmlAutomataGetInitState) xmlAutomataGetInitState__internal_alias __attribute((visibility("hidden")));
#define xmlAutomataGetInitState xmlAutomataGetInitState__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_REGEXP_ENABLED) && defined(LIBXML_AUTOMATA_ENABLED)
-extern __typeof (xmlAutomataIsDeterminist) xmlAutomataIsDeterminist__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlregexp
+#undef xmlAutomataIsDeterminist
extern __typeof (xmlAutomataIsDeterminist) xmlAutomataIsDeterminist __attribute((alias("xmlAutomataIsDeterminist__internal_alias")));
+#else
+#ifndef xmlAutomataIsDeterminist
+extern __typeof (xmlAutomataIsDeterminist) xmlAutomataIsDeterminist__internal_alias __attribute((visibility("hidden")));
#define xmlAutomataIsDeterminist xmlAutomataIsDeterminist__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_REGEXP_ENABLED) && defined(LIBXML_AUTOMATA_ENABLED)
-extern __typeof (xmlAutomataNewAllTrans) xmlAutomataNewAllTrans__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlregexp
+#undef xmlAutomataNewAllTrans
extern __typeof (xmlAutomataNewAllTrans) xmlAutomataNewAllTrans __attribute((alias("xmlAutomataNewAllTrans__internal_alias")));
+#else
+#ifndef xmlAutomataNewAllTrans
+extern __typeof (xmlAutomataNewAllTrans) xmlAutomataNewAllTrans__internal_alias __attribute((visibility("hidden")));
#define xmlAutomataNewAllTrans xmlAutomataNewAllTrans__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_REGEXP_ENABLED) && defined(LIBXML_AUTOMATA_ENABLED)
-extern __typeof (xmlAutomataNewCountTrans) xmlAutomataNewCountTrans__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlregexp
+#undef xmlAutomataNewCountTrans
extern __typeof (xmlAutomataNewCountTrans) xmlAutomataNewCountTrans __attribute((alias("xmlAutomataNewCountTrans__internal_alias")));
+#else
+#ifndef xmlAutomataNewCountTrans
+extern __typeof (xmlAutomataNewCountTrans) xmlAutomataNewCountTrans__internal_alias __attribute((visibility("hidden")));
#define xmlAutomataNewCountTrans xmlAutomataNewCountTrans__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_REGEXP_ENABLED) && defined(LIBXML_AUTOMATA_ENABLED)
-extern __typeof (xmlAutomataNewCountTrans2) xmlAutomataNewCountTrans2__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlregexp
+#undef xmlAutomataNewCountTrans2
extern __typeof (xmlAutomataNewCountTrans2) xmlAutomataNewCountTrans2 __attribute((alias("xmlAutomataNewCountTrans2__internal_alias")));
+#else
+#ifndef xmlAutomataNewCountTrans2
+extern __typeof (xmlAutomataNewCountTrans2) xmlAutomataNewCountTrans2__internal_alias __attribute((visibility("hidden")));
#define xmlAutomataNewCountTrans2 xmlAutomataNewCountTrans2__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_REGEXP_ENABLED) && defined(LIBXML_AUTOMATA_ENABLED)
-extern __typeof (xmlAutomataNewCountedTrans) xmlAutomataNewCountedTrans__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlregexp
+#undef xmlAutomataNewCountedTrans
extern __typeof (xmlAutomataNewCountedTrans) xmlAutomataNewCountedTrans __attribute((alias("xmlAutomataNewCountedTrans__internal_alias")));
+#else
+#ifndef xmlAutomataNewCountedTrans
+extern __typeof (xmlAutomataNewCountedTrans) xmlAutomataNewCountedTrans__internal_alias __attribute((visibility("hidden")));
#define xmlAutomataNewCountedTrans xmlAutomataNewCountedTrans__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_REGEXP_ENABLED) && defined(LIBXML_AUTOMATA_ENABLED)
-extern __typeof (xmlAutomataNewCounter) xmlAutomataNewCounter__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlregexp
+#undef xmlAutomataNewCounter
extern __typeof (xmlAutomataNewCounter) xmlAutomataNewCounter __attribute((alias("xmlAutomataNewCounter__internal_alias")));
+#else
+#ifndef xmlAutomataNewCounter
+extern __typeof (xmlAutomataNewCounter) xmlAutomataNewCounter__internal_alias __attribute((visibility("hidden")));
#define xmlAutomataNewCounter xmlAutomataNewCounter__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_REGEXP_ENABLED) && defined(LIBXML_AUTOMATA_ENABLED)
-extern __typeof (xmlAutomataNewCounterTrans) xmlAutomataNewCounterTrans__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlregexp
+#undef xmlAutomataNewCounterTrans
extern __typeof (xmlAutomataNewCounterTrans) xmlAutomataNewCounterTrans __attribute((alias("xmlAutomataNewCounterTrans__internal_alias")));
+#else
+#ifndef xmlAutomataNewCounterTrans
+extern __typeof (xmlAutomataNewCounterTrans) xmlAutomataNewCounterTrans__internal_alias __attribute((visibility("hidden")));
#define xmlAutomataNewCounterTrans xmlAutomataNewCounterTrans__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_REGEXP_ENABLED) && defined(LIBXML_AUTOMATA_ENABLED)
-extern __typeof (xmlAutomataNewEpsilon) xmlAutomataNewEpsilon__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlregexp
+#undef xmlAutomataNewEpsilon
extern __typeof (xmlAutomataNewEpsilon) xmlAutomataNewEpsilon __attribute((alias("xmlAutomataNewEpsilon__internal_alias")));
+#else
+#ifndef xmlAutomataNewEpsilon
+extern __typeof (xmlAutomataNewEpsilon) xmlAutomataNewEpsilon__internal_alias __attribute((visibility("hidden")));
#define xmlAutomataNewEpsilon xmlAutomataNewEpsilon__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_REGEXP_ENABLED) && defined(LIBXML_AUTOMATA_ENABLED)
-extern __typeof (xmlAutomataNewOnceTrans) xmlAutomataNewOnceTrans__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlregexp
+#undef xmlAutomataNewOnceTrans
extern __typeof (xmlAutomataNewOnceTrans) xmlAutomataNewOnceTrans __attribute((alias("xmlAutomataNewOnceTrans__internal_alias")));
+#else
+#ifndef xmlAutomataNewOnceTrans
+extern __typeof (xmlAutomataNewOnceTrans) xmlAutomataNewOnceTrans__internal_alias __attribute((visibility("hidden")));
#define xmlAutomataNewOnceTrans xmlAutomataNewOnceTrans__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_REGEXP_ENABLED) && defined(LIBXML_AUTOMATA_ENABLED)
-extern __typeof (xmlAutomataNewOnceTrans2) xmlAutomataNewOnceTrans2__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlregexp
+#undef xmlAutomataNewOnceTrans2
extern __typeof (xmlAutomataNewOnceTrans2) xmlAutomataNewOnceTrans2 __attribute((alias("xmlAutomataNewOnceTrans2__internal_alias")));
+#else
+#ifndef xmlAutomataNewOnceTrans2
+extern __typeof (xmlAutomataNewOnceTrans2) xmlAutomataNewOnceTrans2__internal_alias __attribute((visibility("hidden")));
#define xmlAutomataNewOnceTrans2 xmlAutomataNewOnceTrans2__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_REGEXP_ENABLED) && defined(LIBXML_AUTOMATA_ENABLED)
-extern __typeof (xmlAutomataNewState) xmlAutomataNewState__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlregexp
+#undef xmlAutomataNewState
extern __typeof (xmlAutomataNewState) xmlAutomataNewState __attribute((alias("xmlAutomataNewState__internal_alias")));
+#else
+#ifndef xmlAutomataNewState
+extern __typeof (xmlAutomataNewState) xmlAutomataNewState__internal_alias __attribute((visibility("hidden")));
#define xmlAutomataNewState xmlAutomataNewState__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_REGEXP_ENABLED) && defined(LIBXML_AUTOMATA_ENABLED)
-extern __typeof (xmlAutomataNewTransition) xmlAutomataNewTransition__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlregexp
+#undef xmlAutomataNewTransition
extern __typeof (xmlAutomataNewTransition) xmlAutomataNewTransition __attribute((alias("xmlAutomataNewTransition__internal_alias")));
+#else
+#ifndef xmlAutomataNewTransition
+extern __typeof (xmlAutomataNewTransition) xmlAutomataNewTransition__internal_alias __attribute((visibility("hidden")));
#define xmlAutomataNewTransition xmlAutomataNewTransition__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_REGEXP_ENABLED) && defined(LIBXML_AUTOMATA_ENABLED)
-extern __typeof (xmlAutomataNewTransition2) xmlAutomataNewTransition2__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlregexp
+#undef xmlAutomataNewTransition2
extern __typeof (xmlAutomataNewTransition2) xmlAutomataNewTransition2 __attribute((alias("xmlAutomataNewTransition2__internal_alias")));
+#else
+#ifndef xmlAutomataNewTransition2
+extern __typeof (xmlAutomataNewTransition2) xmlAutomataNewTransition2__internal_alias __attribute((visibility("hidden")));
#define xmlAutomataNewTransition2 xmlAutomataNewTransition2__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_REGEXP_ENABLED) && defined(LIBXML_AUTOMATA_ENABLED)
-extern __typeof (xmlAutomataSetFinalState) xmlAutomataSetFinalState__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlregexp
+#undef xmlAutomataSetFinalState
extern __typeof (xmlAutomataSetFinalState) xmlAutomataSetFinalState __attribute((alias("xmlAutomataSetFinalState__internal_alias")));
+#else
+#ifndef xmlAutomataSetFinalState
+extern __typeof (xmlAutomataSetFinalState) xmlAutomataSetFinalState__internal_alias __attribute((visibility("hidden")));
#define xmlAutomataSetFinalState xmlAutomataSetFinalState__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_DEBUG_ENABLED)
-extern __typeof (xmlBoolToText) xmlBoolToText__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_debugXML
+#undef xmlBoolToText
extern __typeof (xmlBoolToText) xmlBoolToText __attribute((alias("xmlBoolToText__internal_alias")));
+#else
+#ifndef xmlBoolToText
+extern __typeof (xmlBoolToText) xmlBoolToText__internal_alias __attribute((visibility("hidden")));
#define xmlBoolToText xmlBoolToText__internal_alias
#endif
+#endif
+#endif
-extern __typeof (xmlBufferAdd) xmlBufferAdd__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_tree
+#undef xmlBufferAdd
extern __typeof (xmlBufferAdd) xmlBufferAdd __attribute((alias("xmlBufferAdd__internal_alias")));
+#else
+#ifndef xmlBufferAdd
+extern __typeof (xmlBufferAdd) xmlBufferAdd__internal_alias __attribute((visibility("hidden")));
#define xmlBufferAdd xmlBufferAdd__internal_alias
+#endif
+#endif
-extern __typeof (xmlBufferAddHead) xmlBufferAddHead__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_tree
+#undef xmlBufferAddHead
extern __typeof (xmlBufferAddHead) xmlBufferAddHead __attribute((alias("xmlBufferAddHead__internal_alias")));
+#else
+#ifndef xmlBufferAddHead
+extern __typeof (xmlBufferAddHead) xmlBufferAddHead__internal_alias __attribute((visibility("hidden")));
#define xmlBufferAddHead xmlBufferAddHead__internal_alias
+#endif
+#endif
-extern __typeof (xmlBufferCCat) xmlBufferCCat__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_tree
+#undef xmlBufferCCat
extern __typeof (xmlBufferCCat) xmlBufferCCat __attribute((alias("xmlBufferCCat__internal_alias")));
+#else
+#ifndef xmlBufferCCat
+extern __typeof (xmlBufferCCat) xmlBufferCCat__internal_alias __attribute((visibility("hidden")));
#define xmlBufferCCat xmlBufferCCat__internal_alias
+#endif
+#endif
-extern __typeof (xmlBufferCat) xmlBufferCat__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_tree
+#undef xmlBufferCat
extern __typeof (xmlBufferCat) xmlBufferCat __attribute((alias("xmlBufferCat__internal_alias")));
+#else
+#ifndef xmlBufferCat
+extern __typeof (xmlBufferCat) xmlBufferCat__internal_alias __attribute((visibility("hidden")));
#define xmlBufferCat xmlBufferCat__internal_alias
+#endif
+#endif
-extern __typeof (xmlBufferContent) xmlBufferContent__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_tree
+#undef xmlBufferContent
extern __typeof (xmlBufferContent) xmlBufferContent __attribute((alias("xmlBufferContent__internal_alias")));
+#else
+#ifndef xmlBufferContent
+extern __typeof (xmlBufferContent) xmlBufferContent__internal_alias __attribute((visibility("hidden")));
#define xmlBufferContent xmlBufferContent__internal_alias
+#endif
+#endif
-extern __typeof (xmlBufferCreate) xmlBufferCreate__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_tree
+#undef xmlBufferCreate
extern __typeof (xmlBufferCreate) xmlBufferCreate __attribute((alias("xmlBufferCreate__internal_alias")));
+#else
+#ifndef xmlBufferCreate
+extern __typeof (xmlBufferCreate) xmlBufferCreate__internal_alias __attribute((visibility("hidden")));
#define xmlBufferCreate xmlBufferCreate__internal_alias
+#endif
+#endif
-extern __typeof (xmlBufferCreateSize) xmlBufferCreateSize__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_tree
+#undef xmlBufferCreateSize
extern __typeof (xmlBufferCreateSize) xmlBufferCreateSize __attribute((alias("xmlBufferCreateSize__internal_alias")));
+#else
+#ifndef xmlBufferCreateSize
+extern __typeof (xmlBufferCreateSize) xmlBufferCreateSize__internal_alias __attribute((visibility("hidden")));
#define xmlBufferCreateSize xmlBufferCreateSize__internal_alias
+#endif
+#endif
-extern __typeof (xmlBufferCreateStatic) xmlBufferCreateStatic__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_tree
+#undef xmlBufferCreateStatic
extern __typeof (xmlBufferCreateStatic) xmlBufferCreateStatic __attribute((alias("xmlBufferCreateStatic__internal_alias")));
+#else
+#ifndef xmlBufferCreateStatic
+extern __typeof (xmlBufferCreateStatic) xmlBufferCreateStatic__internal_alias __attribute((visibility("hidden")));
#define xmlBufferCreateStatic xmlBufferCreateStatic__internal_alias
+#endif
+#endif
-extern __typeof (xmlBufferDump) xmlBufferDump__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_tree
+#undef xmlBufferDump
extern __typeof (xmlBufferDump) xmlBufferDump __attribute((alias("xmlBufferDump__internal_alias")));
+#else
+#ifndef xmlBufferDump
+extern __typeof (xmlBufferDump) xmlBufferDump__internal_alias __attribute((visibility("hidden")));
#define xmlBufferDump xmlBufferDump__internal_alias
+#endif
+#endif
-extern __typeof (xmlBufferEmpty) xmlBufferEmpty__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_tree
+#undef xmlBufferEmpty
extern __typeof (xmlBufferEmpty) xmlBufferEmpty __attribute((alias("xmlBufferEmpty__internal_alias")));
+#else
+#ifndef xmlBufferEmpty
+extern __typeof (xmlBufferEmpty) xmlBufferEmpty__internal_alias __attribute((visibility("hidden")));
#define xmlBufferEmpty xmlBufferEmpty__internal_alias
+#endif
+#endif
-extern __typeof (xmlBufferFree) xmlBufferFree__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_tree
+#undef xmlBufferFree
extern __typeof (xmlBufferFree) xmlBufferFree __attribute((alias("xmlBufferFree__internal_alias")));
+#else
+#ifndef xmlBufferFree
+extern __typeof (xmlBufferFree) xmlBufferFree__internal_alias __attribute((visibility("hidden")));
#define xmlBufferFree xmlBufferFree__internal_alias
+#endif
+#endif
-extern __typeof (xmlBufferGrow) xmlBufferGrow__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_tree
+#undef xmlBufferGrow
extern __typeof (xmlBufferGrow) xmlBufferGrow __attribute((alias("xmlBufferGrow__internal_alias")));
+#else
+#ifndef xmlBufferGrow
+extern __typeof (xmlBufferGrow) xmlBufferGrow__internal_alias __attribute((visibility("hidden")));
#define xmlBufferGrow xmlBufferGrow__internal_alias
+#endif
+#endif
-extern __typeof (xmlBufferLength) xmlBufferLength__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_tree
+#undef xmlBufferLength
extern __typeof (xmlBufferLength) xmlBufferLength __attribute((alias("xmlBufferLength__internal_alias")));
+#else
+#ifndef xmlBufferLength
+extern __typeof (xmlBufferLength) xmlBufferLength__internal_alias __attribute((visibility("hidden")));
#define xmlBufferLength xmlBufferLength__internal_alias
+#endif
+#endif
-extern __typeof (xmlBufferResize) xmlBufferResize__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_tree
+#undef xmlBufferResize
extern __typeof (xmlBufferResize) xmlBufferResize __attribute((alias("xmlBufferResize__internal_alias")));
+#else
+#ifndef xmlBufferResize
+extern __typeof (xmlBufferResize) xmlBufferResize__internal_alias __attribute((visibility("hidden")));
#define xmlBufferResize xmlBufferResize__internal_alias
+#endif
+#endif
-extern __typeof (xmlBufferSetAllocationScheme) xmlBufferSetAllocationScheme__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_tree
+#undef xmlBufferSetAllocationScheme
extern __typeof (xmlBufferSetAllocationScheme) xmlBufferSetAllocationScheme __attribute((alias("xmlBufferSetAllocationScheme__internal_alias")));
+#else
+#ifndef xmlBufferSetAllocationScheme
+extern __typeof (xmlBufferSetAllocationScheme) xmlBufferSetAllocationScheme__internal_alias __attribute((visibility("hidden")));
#define xmlBufferSetAllocationScheme xmlBufferSetAllocationScheme__internal_alias
+#endif
+#endif
-extern __typeof (xmlBufferShrink) xmlBufferShrink__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_tree
+#undef xmlBufferShrink
extern __typeof (xmlBufferShrink) xmlBufferShrink __attribute((alias("xmlBufferShrink__internal_alias")));
+#else
+#ifndef xmlBufferShrink
+extern __typeof (xmlBufferShrink) xmlBufferShrink__internal_alias __attribute((visibility("hidden")));
#define xmlBufferShrink xmlBufferShrink__internal_alias
+#endif
+#endif
-extern __typeof (xmlBufferWriteCHAR) xmlBufferWriteCHAR__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_tree
+#undef xmlBufferWriteCHAR
extern __typeof (xmlBufferWriteCHAR) xmlBufferWriteCHAR __attribute((alias("xmlBufferWriteCHAR__internal_alias")));
+#else
+#ifndef xmlBufferWriteCHAR
+extern __typeof (xmlBufferWriteCHAR) xmlBufferWriteCHAR__internal_alias __attribute((visibility("hidden")));
#define xmlBufferWriteCHAR xmlBufferWriteCHAR__internal_alias
+#endif
+#endif
-extern __typeof (xmlBufferWriteChar) xmlBufferWriteChar__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_tree
+#undef xmlBufferWriteChar
extern __typeof (xmlBufferWriteChar) xmlBufferWriteChar __attribute((alias("xmlBufferWriteChar__internal_alias")));
+#else
+#ifndef xmlBufferWriteChar
+extern __typeof (xmlBufferWriteChar) xmlBufferWriteChar__internal_alias __attribute((visibility("hidden")));
#define xmlBufferWriteChar xmlBufferWriteChar__internal_alias
+#endif
+#endif
-extern __typeof (xmlBufferWriteQuotedString) xmlBufferWriteQuotedString__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_tree
+#undef xmlBufferWriteQuotedString
extern __typeof (xmlBufferWriteQuotedString) xmlBufferWriteQuotedString __attribute((alias("xmlBufferWriteQuotedString__internal_alias")));
+#else
+#ifndef xmlBufferWriteQuotedString
+extern __typeof (xmlBufferWriteQuotedString) xmlBufferWriteQuotedString__internal_alias __attribute((visibility("hidden")));
#define xmlBufferWriteQuotedString xmlBufferWriteQuotedString__internal_alias
+#endif
+#endif
-extern __typeof (xmlBuildQName) xmlBuildQName__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_tree
+#undef xmlBuildQName
extern __typeof (xmlBuildQName) xmlBuildQName __attribute((alias("xmlBuildQName__internal_alias")));
+#else
+#ifndef xmlBuildQName
+extern __typeof (xmlBuildQName) xmlBuildQName__internal_alias __attribute((visibility("hidden")));
#define xmlBuildQName xmlBuildQName__internal_alias
+#endif
+#endif
-extern __typeof (xmlBuildRelativeURI) xmlBuildRelativeURI__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_uri
+#undef xmlBuildRelativeURI
extern __typeof (xmlBuildRelativeURI) xmlBuildRelativeURI __attribute((alias("xmlBuildRelativeURI__internal_alias")));
+#else
+#ifndef xmlBuildRelativeURI
+extern __typeof (xmlBuildRelativeURI) xmlBuildRelativeURI__internal_alias __attribute((visibility("hidden")));
#define xmlBuildRelativeURI xmlBuildRelativeURI__internal_alias
+#endif
+#endif
-extern __typeof (xmlBuildURI) xmlBuildURI__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_uri
+#undef xmlBuildURI
extern __typeof (xmlBuildURI) xmlBuildURI __attribute((alias("xmlBuildURI__internal_alias")));
+#else
+#ifndef xmlBuildURI
+extern __typeof (xmlBuildURI) xmlBuildURI__internal_alias __attribute((visibility("hidden")));
#define xmlBuildURI xmlBuildURI__internal_alias
+#endif
+#endif
-extern __typeof (xmlByteConsumed) xmlByteConsumed__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_encoding
+#undef xmlByteConsumed
extern __typeof (xmlByteConsumed) xmlByteConsumed __attribute((alias("xmlByteConsumed__internal_alias")));
+#else
+#ifndef xmlByteConsumed
+extern __typeof (xmlByteConsumed) xmlByteConsumed__internal_alias __attribute((visibility("hidden")));
#define xmlByteConsumed xmlByteConsumed__internal_alias
+#endif
+#endif
#if defined(LIBXML_C14N_ENABLED) && defined(LIBXML_OUTPUT_ENABLED)
-extern __typeof (xmlC14NDocDumpMemory) xmlC14NDocDumpMemory__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_c14n
+#undef xmlC14NDocDumpMemory
extern __typeof (xmlC14NDocDumpMemory) xmlC14NDocDumpMemory __attribute((alias("xmlC14NDocDumpMemory__internal_alias")));
+#else
+#ifndef xmlC14NDocDumpMemory
+extern __typeof (xmlC14NDocDumpMemory) xmlC14NDocDumpMemory__internal_alias __attribute((visibility("hidden")));
#define xmlC14NDocDumpMemory xmlC14NDocDumpMemory__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_C14N_ENABLED) && defined(LIBXML_OUTPUT_ENABLED)
-extern __typeof (xmlC14NDocSave) xmlC14NDocSave__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_c14n
+#undef xmlC14NDocSave
extern __typeof (xmlC14NDocSave) xmlC14NDocSave __attribute((alias("xmlC14NDocSave__internal_alias")));
+#else
+#ifndef xmlC14NDocSave
+extern __typeof (xmlC14NDocSave) xmlC14NDocSave__internal_alias __attribute((visibility("hidden")));
#define xmlC14NDocSave xmlC14NDocSave__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_C14N_ENABLED) && defined(LIBXML_OUTPUT_ENABLED)
-extern __typeof (xmlC14NDocSaveTo) xmlC14NDocSaveTo__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_c14n
+#undef xmlC14NDocSaveTo
extern __typeof (xmlC14NDocSaveTo) xmlC14NDocSaveTo __attribute((alias("xmlC14NDocSaveTo__internal_alias")));
+#else
+#ifndef xmlC14NDocSaveTo
+extern __typeof (xmlC14NDocSaveTo) xmlC14NDocSaveTo__internal_alias __attribute((visibility("hidden")));
#define xmlC14NDocSaveTo xmlC14NDocSaveTo__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_C14N_ENABLED) && defined(LIBXML_OUTPUT_ENABLED)
-extern __typeof (xmlC14NExecute) xmlC14NExecute__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_c14n
+#undef xmlC14NExecute
extern __typeof (xmlC14NExecute) xmlC14NExecute __attribute((alias("xmlC14NExecute__internal_alias")));
+#else
+#ifndef xmlC14NExecute
+extern __typeof (xmlC14NExecute) xmlC14NExecute__internal_alias __attribute((visibility("hidden")));
#define xmlC14NExecute xmlC14NExecute__internal_alias
#endif
+#endif
+#endif
-extern __typeof (xmlCanonicPath) xmlCanonicPath__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_uri
+#undef xmlCanonicPath
extern __typeof (xmlCanonicPath) xmlCanonicPath __attribute((alias("xmlCanonicPath__internal_alias")));
+#else
+#ifndef xmlCanonicPath
+extern __typeof (xmlCanonicPath) xmlCanonicPath__internal_alias __attribute((visibility("hidden")));
#define xmlCanonicPath xmlCanonicPath__internal_alias
+#endif
+#endif
#if defined(LIBXML_CATALOG_ENABLED)
-extern __typeof (xmlCatalogAdd) xmlCatalogAdd__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_catalog
+#undef xmlCatalogAdd
extern __typeof (xmlCatalogAdd) xmlCatalogAdd __attribute((alias("xmlCatalogAdd__internal_alias")));
+#else
+#ifndef xmlCatalogAdd
+extern __typeof (xmlCatalogAdd) xmlCatalogAdd__internal_alias __attribute((visibility("hidden")));
#define xmlCatalogAdd xmlCatalogAdd__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_CATALOG_ENABLED)
-extern __typeof (xmlCatalogAddLocal) xmlCatalogAddLocal__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_catalog
+#undef xmlCatalogAddLocal
extern __typeof (xmlCatalogAddLocal) xmlCatalogAddLocal __attribute((alias("xmlCatalogAddLocal__internal_alias")));
+#else
+#ifndef xmlCatalogAddLocal
+extern __typeof (xmlCatalogAddLocal) xmlCatalogAddLocal__internal_alias __attribute((visibility("hidden")));
#define xmlCatalogAddLocal xmlCatalogAddLocal__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_CATALOG_ENABLED)
-extern __typeof (xmlCatalogCleanup) xmlCatalogCleanup__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_catalog
+#undef xmlCatalogCleanup
extern __typeof (xmlCatalogCleanup) xmlCatalogCleanup __attribute((alias("xmlCatalogCleanup__internal_alias")));
+#else
+#ifndef xmlCatalogCleanup
+extern __typeof (xmlCatalogCleanup) xmlCatalogCleanup__internal_alias __attribute((visibility("hidden")));
#define xmlCatalogCleanup xmlCatalogCleanup__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_CATALOG_ENABLED)
-extern __typeof (xmlCatalogConvert) xmlCatalogConvert__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_catalog
+#undef xmlCatalogConvert
extern __typeof (xmlCatalogConvert) xmlCatalogConvert __attribute((alias("xmlCatalogConvert__internal_alias")));
+#else
+#ifndef xmlCatalogConvert
+extern __typeof (xmlCatalogConvert) xmlCatalogConvert__internal_alias __attribute((visibility("hidden")));
#define xmlCatalogConvert xmlCatalogConvert__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_CATALOG_ENABLED) && defined(LIBXML_OUTPUT_ENABLED)
-extern __typeof (xmlCatalogDump) xmlCatalogDump__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_catalog
+#undef xmlCatalogDump
extern __typeof (xmlCatalogDump) xmlCatalogDump __attribute((alias("xmlCatalogDump__internal_alias")));
+#else
+#ifndef xmlCatalogDump
+extern __typeof (xmlCatalogDump) xmlCatalogDump__internal_alias __attribute((visibility("hidden")));
#define xmlCatalogDump xmlCatalogDump__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_CATALOG_ENABLED)
-extern __typeof (xmlCatalogFreeLocal) xmlCatalogFreeLocal__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_catalog
+#undef xmlCatalogFreeLocal
extern __typeof (xmlCatalogFreeLocal) xmlCatalogFreeLocal __attribute((alias("xmlCatalogFreeLocal__internal_alias")));
+#else
+#ifndef xmlCatalogFreeLocal
+extern __typeof (xmlCatalogFreeLocal) xmlCatalogFreeLocal__internal_alias __attribute((visibility("hidden")));
#define xmlCatalogFreeLocal xmlCatalogFreeLocal__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_CATALOG_ENABLED)
-extern __typeof (xmlCatalogGetDefaults) xmlCatalogGetDefaults__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_catalog
+#undef xmlCatalogGetDefaults
extern __typeof (xmlCatalogGetDefaults) xmlCatalogGetDefaults __attribute((alias("xmlCatalogGetDefaults__internal_alias")));
+#else
+#ifndef xmlCatalogGetDefaults
+extern __typeof (xmlCatalogGetDefaults) xmlCatalogGetDefaults__internal_alias __attribute((visibility("hidden")));
#define xmlCatalogGetDefaults xmlCatalogGetDefaults__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_CATALOG_ENABLED)
-extern __typeof (xmlCatalogGetPublic) xmlCatalogGetPublic__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_catalog
+#undef xmlCatalogGetPublic
extern __typeof (xmlCatalogGetPublic) xmlCatalogGetPublic __attribute((alias("xmlCatalogGetPublic__internal_alias")));
+#else
+#ifndef xmlCatalogGetPublic
+extern __typeof (xmlCatalogGetPublic) xmlCatalogGetPublic__internal_alias __attribute((visibility("hidden")));
#define xmlCatalogGetPublic xmlCatalogGetPublic__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_CATALOG_ENABLED)
-extern __typeof (xmlCatalogGetSystem) xmlCatalogGetSystem__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_catalog
+#undef xmlCatalogGetSystem
extern __typeof (xmlCatalogGetSystem) xmlCatalogGetSystem __attribute((alias("xmlCatalogGetSystem__internal_alias")));
+#else
+#ifndef xmlCatalogGetSystem
+extern __typeof (xmlCatalogGetSystem) xmlCatalogGetSystem__internal_alias __attribute((visibility("hidden")));
#define xmlCatalogGetSystem xmlCatalogGetSystem__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_CATALOG_ENABLED)
-extern __typeof (xmlCatalogIsEmpty) xmlCatalogIsEmpty__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_catalog
+#undef xmlCatalogIsEmpty
extern __typeof (xmlCatalogIsEmpty) xmlCatalogIsEmpty __attribute((alias("xmlCatalogIsEmpty__internal_alias")));
+#else
+#ifndef xmlCatalogIsEmpty
+extern __typeof (xmlCatalogIsEmpty) xmlCatalogIsEmpty__internal_alias __attribute((visibility("hidden")));
#define xmlCatalogIsEmpty xmlCatalogIsEmpty__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_CATALOG_ENABLED)
-extern __typeof (xmlCatalogLocalResolve) xmlCatalogLocalResolve__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_catalog
+#undef xmlCatalogLocalResolve
extern __typeof (xmlCatalogLocalResolve) xmlCatalogLocalResolve __attribute((alias("xmlCatalogLocalResolve__internal_alias")));
+#else
+#ifndef xmlCatalogLocalResolve
+extern __typeof (xmlCatalogLocalResolve) xmlCatalogLocalResolve__internal_alias __attribute((visibility("hidden")));
#define xmlCatalogLocalResolve xmlCatalogLocalResolve__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_CATALOG_ENABLED)
-extern __typeof (xmlCatalogLocalResolveURI) xmlCatalogLocalResolveURI__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_catalog
+#undef xmlCatalogLocalResolveURI
extern __typeof (xmlCatalogLocalResolveURI) xmlCatalogLocalResolveURI __attribute((alias("xmlCatalogLocalResolveURI__internal_alias")));
+#else
+#ifndef xmlCatalogLocalResolveURI
+extern __typeof (xmlCatalogLocalResolveURI) xmlCatalogLocalResolveURI__internal_alias __attribute((visibility("hidden")));
#define xmlCatalogLocalResolveURI xmlCatalogLocalResolveURI__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_CATALOG_ENABLED)
-extern __typeof (xmlCatalogRemove) xmlCatalogRemove__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_catalog
+#undef xmlCatalogRemove
extern __typeof (xmlCatalogRemove) xmlCatalogRemove __attribute((alias("xmlCatalogRemove__internal_alias")));
+#else
+#ifndef xmlCatalogRemove
+extern __typeof (xmlCatalogRemove) xmlCatalogRemove__internal_alias __attribute((visibility("hidden")));
#define xmlCatalogRemove xmlCatalogRemove__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_CATALOG_ENABLED)
-extern __typeof (xmlCatalogResolve) xmlCatalogResolve__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_catalog
+#undef xmlCatalogResolve
extern __typeof (xmlCatalogResolve) xmlCatalogResolve __attribute((alias("xmlCatalogResolve__internal_alias")));
+#else
+#ifndef xmlCatalogResolve
+extern __typeof (xmlCatalogResolve) xmlCatalogResolve__internal_alias __attribute((visibility("hidden")));
#define xmlCatalogResolve xmlCatalogResolve__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_CATALOG_ENABLED)
-extern __typeof (xmlCatalogResolvePublic) xmlCatalogResolvePublic__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_catalog
+#undef xmlCatalogResolvePublic
extern __typeof (xmlCatalogResolvePublic) xmlCatalogResolvePublic __attribute((alias("xmlCatalogResolvePublic__internal_alias")));
+#else
+#ifndef xmlCatalogResolvePublic
+extern __typeof (xmlCatalogResolvePublic) xmlCatalogResolvePublic__internal_alias __attribute((visibility("hidden")));
#define xmlCatalogResolvePublic xmlCatalogResolvePublic__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_CATALOG_ENABLED)
-extern __typeof (xmlCatalogResolveSystem) xmlCatalogResolveSystem__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_catalog
+#undef xmlCatalogResolveSystem
extern __typeof (xmlCatalogResolveSystem) xmlCatalogResolveSystem __attribute((alias("xmlCatalogResolveSystem__internal_alias")));
+#else
+#ifndef xmlCatalogResolveSystem
+extern __typeof (xmlCatalogResolveSystem) xmlCatalogResolveSystem__internal_alias __attribute((visibility("hidden")));
#define xmlCatalogResolveSystem xmlCatalogResolveSystem__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_CATALOG_ENABLED)
-extern __typeof (xmlCatalogResolveURI) xmlCatalogResolveURI__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_catalog
+#undef xmlCatalogResolveURI
extern __typeof (xmlCatalogResolveURI) xmlCatalogResolveURI __attribute((alias("xmlCatalogResolveURI__internal_alias")));
+#else
+#ifndef xmlCatalogResolveURI
+extern __typeof (xmlCatalogResolveURI) xmlCatalogResolveURI__internal_alias __attribute((visibility("hidden")));
#define xmlCatalogResolveURI xmlCatalogResolveURI__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_CATALOG_ENABLED)
-extern __typeof (xmlCatalogSetDebug) xmlCatalogSetDebug__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_catalog
+#undef xmlCatalogSetDebug
extern __typeof (xmlCatalogSetDebug) xmlCatalogSetDebug __attribute((alias("xmlCatalogSetDebug__internal_alias")));
+#else
+#ifndef xmlCatalogSetDebug
+extern __typeof (xmlCatalogSetDebug) xmlCatalogSetDebug__internal_alias __attribute((visibility("hidden")));
#define xmlCatalogSetDebug xmlCatalogSetDebug__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_CATALOG_ENABLED)
-extern __typeof (xmlCatalogSetDefaultPrefer) xmlCatalogSetDefaultPrefer__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_catalog
+#undef xmlCatalogSetDefaultPrefer
extern __typeof (xmlCatalogSetDefaultPrefer) xmlCatalogSetDefaultPrefer __attribute((alias("xmlCatalogSetDefaultPrefer__internal_alias")));
+#else
+#ifndef xmlCatalogSetDefaultPrefer
+extern __typeof (xmlCatalogSetDefaultPrefer) xmlCatalogSetDefaultPrefer__internal_alias __attribute((visibility("hidden")));
#define xmlCatalogSetDefaultPrefer xmlCatalogSetDefaultPrefer__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_CATALOG_ENABLED)
-extern __typeof (xmlCatalogSetDefaults) xmlCatalogSetDefaults__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_catalog
+#undef xmlCatalogSetDefaults
extern __typeof (xmlCatalogSetDefaults) xmlCatalogSetDefaults __attribute((alias("xmlCatalogSetDefaults__internal_alias")));
+#else
+#ifndef xmlCatalogSetDefaults
+extern __typeof (xmlCatalogSetDefaults) xmlCatalogSetDefaults__internal_alias __attribute((visibility("hidden")));
#define xmlCatalogSetDefaults xmlCatalogSetDefaults__internal_alias
#endif
+#endif
+#endif
-extern __typeof (xmlCharEncCloseFunc) xmlCharEncCloseFunc__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_encoding
+#undef xmlCharEncCloseFunc
extern __typeof (xmlCharEncCloseFunc) xmlCharEncCloseFunc __attribute((alias("xmlCharEncCloseFunc__internal_alias")));
+#else
+#ifndef xmlCharEncCloseFunc
+extern __typeof (xmlCharEncCloseFunc) xmlCharEncCloseFunc__internal_alias __attribute((visibility("hidden")));
#define xmlCharEncCloseFunc xmlCharEncCloseFunc__internal_alias
+#endif
+#endif
-extern __typeof (xmlCharEncFirstLine) xmlCharEncFirstLine__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_encoding
+#undef xmlCharEncFirstLine
extern __typeof (xmlCharEncFirstLine) xmlCharEncFirstLine __attribute((alias("xmlCharEncFirstLine__internal_alias")));
+#else
+#ifndef xmlCharEncFirstLine
+extern __typeof (xmlCharEncFirstLine) xmlCharEncFirstLine__internal_alias __attribute((visibility("hidden")));
#define xmlCharEncFirstLine xmlCharEncFirstLine__internal_alias
+#endif
+#endif
-extern __typeof (xmlCharEncInFunc) xmlCharEncInFunc__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_encoding
+#undef xmlCharEncInFunc
extern __typeof (xmlCharEncInFunc) xmlCharEncInFunc __attribute((alias("xmlCharEncInFunc__internal_alias")));
+#else
+#ifndef xmlCharEncInFunc
+extern __typeof (xmlCharEncInFunc) xmlCharEncInFunc__internal_alias __attribute((visibility("hidden")));
#define xmlCharEncInFunc xmlCharEncInFunc__internal_alias
+#endif
+#endif
-extern __typeof (xmlCharEncOutFunc) xmlCharEncOutFunc__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_encoding
+#undef xmlCharEncOutFunc
extern __typeof (xmlCharEncOutFunc) xmlCharEncOutFunc __attribute((alias("xmlCharEncOutFunc__internal_alias")));
+#else
+#ifndef xmlCharEncOutFunc
+extern __typeof (xmlCharEncOutFunc) xmlCharEncOutFunc__internal_alias __attribute((visibility("hidden")));
#define xmlCharEncOutFunc xmlCharEncOutFunc__internal_alias
+#endif
+#endif
-extern __typeof (xmlCharInRange) xmlCharInRange__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_chvalid
+#undef xmlCharInRange
extern __typeof (xmlCharInRange) xmlCharInRange __attribute((alias("xmlCharInRange__internal_alias")));
+#else
+#ifndef xmlCharInRange
+extern __typeof (xmlCharInRange) xmlCharInRange__internal_alias __attribute((visibility("hidden")));
#define xmlCharInRange xmlCharInRange__internal_alias
+#endif
+#endif
-extern __typeof (xmlCharStrdup) xmlCharStrdup__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlstring
+#undef xmlCharStrdup
extern __typeof (xmlCharStrdup) xmlCharStrdup __attribute((alias("xmlCharStrdup__internal_alias")));
+#else
+#ifndef xmlCharStrdup
+extern __typeof (xmlCharStrdup) xmlCharStrdup__internal_alias __attribute((visibility("hidden")));
#define xmlCharStrdup xmlCharStrdup__internal_alias
+#endif
+#endif
-extern __typeof (xmlCharStrndup) xmlCharStrndup__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlstring
+#undef xmlCharStrndup
extern __typeof (xmlCharStrndup) xmlCharStrndup __attribute((alias("xmlCharStrndup__internal_alias")));
+#else
+#ifndef xmlCharStrndup
+extern __typeof (xmlCharStrndup) xmlCharStrndup__internal_alias __attribute((visibility("hidden")));
#define xmlCharStrndup xmlCharStrndup__internal_alias
+#endif
+#endif
-extern __typeof (xmlCheckFilename) xmlCheckFilename__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlIO
+#undef xmlCheckFilename
extern __typeof (xmlCheckFilename) xmlCheckFilename __attribute((alias("xmlCheckFilename__internal_alias")));
+#else
+#ifndef xmlCheckFilename
+extern __typeof (xmlCheckFilename) xmlCheckFilename__internal_alias __attribute((visibility("hidden")));
#define xmlCheckFilename xmlCheckFilename__internal_alias
+#endif
+#endif
-extern __typeof (xmlCheckHTTPInput) xmlCheckHTTPInput__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlIO
+#undef xmlCheckHTTPInput
extern __typeof (xmlCheckHTTPInput) xmlCheckHTTPInput __attribute((alias("xmlCheckHTTPInput__internal_alias")));
+#else
+#ifndef xmlCheckHTTPInput
+extern __typeof (xmlCheckHTTPInput) xmlCheckHTTPInput__internal_alias __attribute((visibility("hidden")));
#define xmlCheckHTTPInput xmlCheckHTTPInput__internal_alias
+#endif
+#endif
-extern __typeof (xmlCheckLanguageID) xmlCheckLanguageID__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_parser
+#undef xmlCheckLanguageID
extern __typeof (xmlCheckLanguageID) xmlCheckLanguageID __attribute((alias("xmlCheckLanguageID__internal_alias")));
+#else
+#ifndef xmlCheckLanguageID
+extern __typeof (xmlCheckLanguageID) xmlCheckLanguageID__internal_alias __attribute((visibility("hidden")));
#define xmlCheckLanguageID xmlCheckLanguageID__internal_alias
+#endif
+#endif
-extern __typeof (xmlCheckUTF8) xmlCheckUTF8__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlstring
+#undef xmlCheckUTF8
extern __typeof (xmlCheckUTF8) xmlCheckUTF8 __attribute((alias("xmlCheckUTF8__internal_alias")));
+#else
+#ifndef xmlCheckUTF8
+extern __typeof (xmlCheckUTF8) xmlCheckUTF8__internal_alias __attribute((visibility("hidden")));
#define xmlCheckUTF8 xmlCheckUTF8__internal_alias
+#endif
+#endif
-extern __typeof (xmlCheckVersion) xmlCheckVersion__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_parserInternals
+#undef xmlCheckVersion
extern __typeof (xmlCheckVersion) xmlCheckVersion __attribute((alias("xmlCheckVersion__internal_alias")));
+#else
+#ifndef xmlCheckVersion
+extern __typeof (xmlCheckVersion) xmlCheckVersion__internal_alias __attribute((visibility("hidden")));
#define xmlCheckVersion xmlCheckVersion__internal_alias
+#endif
+#endif
-extern __typeof (xmlCleanupCharEncodingHandlers) xmlCleanupCharEncodingHandlers__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_encoding
+#undef xmlCleanupCharEncodingHandlers
extern __typeof (xmlCleanupCharEncodingHandlers) xmlCleanupCharEncodingHandlers __attribute((alias("xmlCleanupCharEncodingHandlers__internal_alias")));
+#else
+#ifndef xmlCleanupCharEncodingHandlers
+extern __typeof (xmlCleanupCharEncodingHandlers) xmlCleanupCharEncodingHandlers__internal_alias __attribute((visibility("hidden")));
#define xmlCleanupCharEncodingHandlers xmlCleanupCharEncodingHandlers__internal_alias
+#endif
+#endif
-extern __typeof (xmlCleanupEncodingAliases) xmlCleanupEncodingAliases__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_encoding
+#undef xmlCleanupEncodingAliases
extern __typeof (xmlCleanupEncodingAliases) xmlCleanupEncodingAliases __attribute((alias("xmlCleanupEncodingAliases__internal_alias")));
+#else
+#ifndef xmlCleanupEncodingAliases
+extern __typeof (xmlCleanupEncodingAliases) xmlCleanupEncodingAliases__internal_alias __attribute((visibility("hidden")));
#define xmlCleanupEncodingAliases xmlCleanupEncodingAliases__internal_alias
+#endif
+#endif
-extern __typeof (xmlCleanupGlobals) xmlCleanupGlobals__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_globals
+#undef xmlCleanupGlobals
extern __typeof (xmlCleanupGlobals) xmlCleanupGlobals __attribute((alias("xmlCleanupGlobals__internal_alias")));
+#else
+#ifndef xmlCleanupGlobals
+extern __typeof (xmlCleanupGlobals) xmlCleanupGlobals__internal_alias __attribute((visibility("hidden")));
#define xmlCleanupGlobals xmlCleanupGlobals__internal_alias
+#endif
+#endif
-extern __typeof (xmlCleanupInputCallbacks) xmlCleanupInputCallbacks__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlIO
+#undef xmlCleanupInputCallbacks
extern __typeof (xmlCleanupInputCallbacks) xmlCleanupInputCallbacks __attribute((alias("xmlCleanupInputCallbacks__internal_alias")));
+#else
+#ifndef xmlCleanupInputCallbacks
+extern __typeof (xmlCleanupInputCallbacks) xmlCleanupInputCallbacks__internal_alias __attribute((visibility("hidden")));
#define xmlCleanupInputCallbacks xmlCleanupInputCallbacks__internal_alias
+#endif
+#endif
-extern __typeof (xmlCleanupMemory) xmlCleanupMemory__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlmemory
+#undef xmlCleanupMemory
extern __typeof (xmlCleanupMemory) xmlCleanupMemory __attribute((alias("xmlCleanupMemory__internal_alias")));
+#else
+#ifndef xmlCleanupMemory
+extern __typeof (xmlCleanupMemory) xmlCleanupMemory__internal_alias __attribute((visibility("hidden")));
#define xmlCleanupMemory xmlCleanupMemory__internal_alias
+#endif
+#endif
#if defined(LIBXML_OUTPUT_ENABLED)
-extern __typeof (xmlCleanupOutputCallbacks) xmlCleanupOutputCallbacks__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlIO
+#undef xmlCleanupOutputCallbacks
extern __typeof (xmlCleanupOutputCallbacks) xmlCleanupOutputCallbacks __attribute((alias("xmlCleanupOutputCallbacks__internal_alias")));
+#else
+#ifndef xmlCleanupOutputCallbacks
+extern __typeof (xmlCleanupOutputCallbacks) xmlCleanupOutputCallbacks__internal_alias __attribute((visibility("hidden")));
#define xmlCleanupOutputCallbacks xmlCleanupOutputCallbacks__internal_alias
#endif
+#endif
+#endif
-extern __typeof (xmlCleanupParser) xmlCleanupParser__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_parser
+#undef xmlCleanupParser
extern __typeof (xmlCleanupParser) xmlCleanupParser __attribute((alias("xmlCleanupParser__internal_alias")));
+#else
+#ifndef xmlCleanupParser
+extern __typeof (xmlCleanupParser) xmlCleanupParser__internal_alias __attribute((visibility("hidden")));
#define xmlCleanupParser xmlCleanupParser__internal_alias
+#endif
+#endif
#if defined(LIBXML_LEGACY_ENABLED)
-extern __typeof (xmlCleanupPredefinedEntities) xmlCleanupPredefinedEntities__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_legacy
+#undef xmlCleanupPredefinedEntities
extern __typeof (xmlCleanupPredefinedEntities) xmlCleanupPredefinedEntities __attribute((alias("xmlCleanupPredefinedEntities__internal_alias")));
+#else
+#ifndef xmlCleanupPredefinedEntities
+extern __typeof (xmlCleanupPredefinedEntities) xmlCleanupPredefinedEntities__internal_alias __attribute((visibility("hidden")));
#define xmlCleanupPredefinedEntities xmlCleanupPredefinedEntities__internal_alias
#endif
+#endif
+#endif
-extern __typeof (xmlCleanupThreads) xmlCleanupThreads__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_threads
+#undef xmlCleanupThreads
extern __typeof (xmlCleanupThreads) xmlCleanupThreads __attribute((alias("xmlCleanupThreads__internal_alias")));
+#else
+#ifndef xmlCleanupThreads
+extern __typeof (xmlCleanupThreads) xmlCleanupThreads__internal_alias __attribute((visibility("hidden")));
#define xmlCleanupThreads xmlCleanupThreads__internal_alias
+#endif
+#endif
-extern __typeof (xmlClearNodeInfoSeq) xmlClearNodeInfoSeq__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_parserInternals
+#undef xmlClearNodeInfoSeq
extern __typeof (xmlClearNodeInfoSeq) xmlClearNodeInfoSeq __attribute((alias("xmlClearNodeInfoSeq__internal_alias")));
+#else
+#ifndef xmlClearNodeInfoSeq
+extern __typeof (xmlClearNodeInfoSeq) xmlClearNodeInfoSeq__internal_alias __attribute((visibility("hidden")));
#define xmlClearNodeInfoSeq xmlClearNodeInfoSeq__internal_alias
+#endif
+#endif
-extern __typeof (xmlClearParserCtxt) xmlClearParserCtxt__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_parserInternals
+#undef xmlClearParserCtxt
extern __typeof (xmlClearParserCtxt) xmlClearParserCtxt __attribute((alias("xmlClearParserCtxt__internal_alias")));
+#else
+#ifndef xmlClearParserCtxt
+extern __typeof (xmlClearParserCtxt) xmlClearParserCtxt__internal_alias __attribute((visibility("hidden")));
#define xmlClearParserCtxt xmlClearParserCtxt__internal_alias
+#endif
+#endif
#if defined(LIBXML_CATALOG_ENABLED)
-extern __typeof (xmlConvertSGMLCatalog) xmlConvertSGMLCatalog__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_catalog
+#undef xmlConvertSGMLCatalog
extern __typeof (xmlConvertSGMLCatalog) xmlConvertSGMLCatalog __attribute((alias("xmlConvertSGMLCatalog__internal_alias")));
+#else
+#ifndef xmlConvertSGMLCatalog
+extern __typeof (xmlConvertSGMLCatalog) xmlConvertSGMLCatalog__internal_alias __attribute((visibility("hidden")));
#define xmlConvertSGMLCatalog xmlConvertSGMLCatalog__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_TREE_ENABLED)
-extern __typeof (xmlCopyAttributeTable) xmlCopyAttributeTable__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_valid
+#undef xmlCopyAttributeTable
extern __typeof (xmlCopyAttributeTable) xmlCopyAttributeTable __attribute((alias("xmlCopyAttributeTable__internal_alias")));
+#else
+#ifndef xmlCopyAttributeTable
+extern __typeof (xmlCopyAttributeTable) xmlCopyAttributeTable__internal_alias __attribute((visibility("hidden")));
#define xmlCopyAttributeTable xmlCopyAttributeTable__internal_alias
#endif
+#endif
+#endif
-extern __typeof (xmlCopyChar) xmlCopyChar__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_parserInternals
+#undef xmlCopyChar
extern __typeof (xmlCopyChar) xmlCopyChar __attribute((alias("xmlCopyChar__internal_alias")));
+#else
+#ifndef xmlCopyChar
+extern __typeof (xmlCopyChar) xmlCopyChar__internal_alias __attribute((visibility("hidden")));
#define xmlCopyChar xmlCopyChar__internal_alias
+#endif
+#endif
-extern __typeof (xmlCopyCharMultiByte) xmlCopyCharMultiByte__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_parserInternals
+#undef xmlCopyCharMultiByte
extern __typeof (xmlCopyCharMultiByte) xmlCopyCharMultiByte __attribute((alias("xmlCopyCharMultiByte__internal_alias")));
+#else
+#ifndef xmlCopyCharMultiByte
+extern __typeof (xmlCopyCharMultiByte) xmlCopyCharMultiByte__internal_alias __attribute((visibility("hidden")));
#define xmlCopyCharMultiByte xmlCopyCharMultiByte__internal_alias
+#endif
+#endif
#if defined(LIBXML_TREE_ENABLED) || defined(LIBXML_SCHEMAS_ENABLED)
-extern __typeof (xmlCopyDoc) xmlCopyDoc__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_tree
+#undef xmlCopyDoc
extern __typeof (xmlCopyDoc) xmlCopyDoc __attribute((alias("xmlCopyDoc__internal_alias")));
+#else
+#ifndef xmlCopyDoc
+extern __typeof (xmlCopyDoc) xmlCopyDoc__internal_alias __attribute((visibility("hidden")));
#define xmlCopyDoc xmlCopyDoc__internal_alias
#endif
+#endif
+#endif
-extern __typeof (xmlCopyDocElementContent) xmlCopyDocElementContent__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_valid
+#undef xmlCopyDocElementContent
extern __typeof (xmlCopyDocElementContent) xmlCopyDocElementContent __attribute((alias("xmlCopyDocElementContent__internal_alias")));
+#else
+#ifndef xmlCopyDocElementContent
+extern __typeof (xmlCopyDocElementContent) xmlCopyDocElementContent__internal_alias __attribute((visibility("hidden")));
#define xmlCopyDocElementContent xmlCopyDocElementContent__internal_alias
+#endif
+#endif
#if defined(LIBXML_TREE_ENABLED)
-extern __typeof (xmlCopyDtd) xmlCopyDtd__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_tree
+#undef xmlCopyDtd
extern __typeof (xmlCopyDtd) xmlCopyDtd __attribute((alias("xmlCopyDtd__internal_alias")));
+#else
+#ifndef xmlCopyDtd
+extern __typeof (xmlCopyDtd) xmlCopyDtd__internal_alias __attribute((visibility("hidden")));
#define xmlCopyDtd xmlCopyDtd__internal_alias
#endif
+#endif
+#endif
-extern __typeof (xmlCopyElementContent) xmlCopyElementContent__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_valid
+#undef xmlCopyElementContent
extern __typeof (xmlCopyElementContent) xmlCopyElementContent __attribute((alias("xmlCopyElementContent__internal_alias")));
+#else
+#ifndef xmlCopyElementContent
+extern __typeof (xmlCopyElementContent) xmlCopyElementContent__internal_alias __attribute((visibility("hidden")));
#define xmlCopyElementContent xmlCopyElementContent__internal_alias
+#endif
+#endif
#if defined(LIBXML_TREE_ENABLED)
-extern __typeof (xmlCopyElementTable) xmlCopyElementTable__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_valid
+#undef xmlCopyElementTable
extern __typeof (xmlCopyElementTable) xmlCopyElementTable __attribute((alias("xmlCopyElementTable__internal_alias")));
+#else
+#ifndef xmlCopyElementTable
+extern __typeof (xmlCopyElementTable) xmlCopyElementTable__internal_alias __attribute((visibility("hidden")));
#define xmlCopyElementTable xmlCopyElementTable__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_TREE_ENABLED)
-extern __typeof (xmlCopyEntitiesTable) xmlCopyEntitiesTable__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_entities
+#undef xmlCopyEntitiesTable
extern __typeof (xmlCopyEntitiesTable) xmlCopyEntitiesTable __attribute((alias("xmlCopyEntitiesTable__internal_alias")));
+#else
+#ifndef xmlCopyEntitiesTable
+extern __typeof (xmlCopyEntitiesTable) xmlCopyEntitiesTable__internal_alias __attribute((visibility("hidden")));
#define xmlCopyEntitiesTable xmlCopyEntitiesTable__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_TREE_ENABLED)
-extern __typeof (xmlCopyEnumeration) xmlCopyEnumeration__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_valid
+#undef xmlCopyEnumeration
extern __typeof (xmlCopyEnumeration) xmlCopyEnumeration __attribute((alias("xmlCopyEnumeration__internal_alias")));
+#else
+#ifndef xmlCopyEnumeration
+extern __typeof (xmlCopyEnumeration) xmlCopyEnumeration__internal_alias __attribute((visibility("hidden")));
#define xmlCopyEnumeration xmlCopyEnumeration__internal_alias
#endif
+#endif
+#endif
-extern __typeof (xmlCopyError) xmlCopyError__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_error
+#undef xmlCopyError
extern __typeof (xmlCopyError) xmlCopyError __attribute((alias("xmlCopyError__internal_alias")));
+#else
+#ifndef xmlCopyError
+extern __typeof (xmlCopyError) xmlCopyError__internal_alias __attribute((visibility("hidden")));
#define xmlCopyError xmlCopyError__internal_alias
+#endif
+#endif
-extern __typeof (xmlCopyNamespace) xmlCopyNamespace__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_tree
+#undef xmlCopyNamespace
extern __typeof (xmlCopyNamespace) xmlCopyNamespace __attribute((alias("xmlCopyNamespace__internal_alias")));
+#else
+#ifndef xmlCopyNamespace
+extern __typeof (xmlCopyNamespace) xmlCopyNamespace__internal_alias __attribute((visibility("hidden")));
#define xmlCopyNamespace xmlCopyNamespace__internal_alias
+#endif
+#endif
-extern __typeof (xmlCopyNamespaceList) xmlCopyNamespaceList__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_tree
+#undef xmlCopyNamespaceList
extern __typeof (xmlCopyNamespaceList) xmlCopyNamespaceList __attribute((alias("xmlCopyNamespaceList__internal_alias")));
+#else
+#ifndef xmlCopyNamespaceList
+extern __typeof (xmlCopyNamespaceList) xmlCopyNamespaceList__internal_alias __attribute((visibility("hidden")));
#define xmlCopyNamespaceList xmlCopyNamespaceList__internal_alias
+#endif
+#endif
-extern __typeof (xmlCopyNode) xmlCopyNode__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_tree
+#undef xmlCopyNode
extern __typeof (xmlCopyNode) xmlCopyNode __attribute((alias("xmlCopyNode__internal_alias")));
+#else
+#ifndef xmlCopyNode
+extern __typeof (xmlCopyNode) xmlCopyNode__internal_alias __attribute((visibility("hidden")));
#define xmlCopyNode xmlCopyNode__internal_alias
+#endif
+#endif
-extern __typeof (xmlCopyNodeList) xmlCopyNodeList__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_tree
+#undef xmlCopyNodeList
extern __typeof (xmlCopyNodeList) xmlCopyNodeList __attribute((alias("xmlCopyNodeList__internal_alias")));
+#else
+#ifndef xmlCopyNodeList
+extern __typeof (xmlCopyNodeList) xmlCopyNodeList__internal_alias __attribute((visibility("hidden")));
#define xmlCopyNodeList xmlCopyNodeList__internal_alias
+#endif
+#endif
#if defined(LIBXML_TREE_ENABLED)
-extern __typeof (xmlCopyNotationTable) xmlCopyNotationTable__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_valid
+#undef xmlCopyNotationTable
extern __typeof (xmlCopyNotationTable) xmlCopyNotationTable __attribute((alias("xmlCopyNotationTable__internal_alias")));
+#else
+#ifndef xmlCopyNotationTable
+extern __typeof (xmlCopyNotationTable) xmlCopyNotationTable__internal_alias __attribute((visibility("hidden")));
#define xmlCopyNotationTable xmlCopyNotationTable__internal_alias
#endif
+#endif
+#endif
-extern __typeof (xmlCopyProp) xmlCopyProp__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_tree
+#undef xmlCopyProp
extern __typeof (xmlCopyProp) xmlCopyProp __attribute((alias("xmlCopyProp__internal_alias")));
+#else
+#ifndef xmlCopyProp
+extern __typeof (xmlCopyProp) xmlCopyProp__internal_alias __attribute((visibility("hidden")));
#define xmlCopyProp xmlCopyProp__internal_alias
+#endif
+#endif
-extern __typeof (xmlCopyPropList) xmlCopyPropList__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_tree
+#undef xmlCopyPropList
extern __typeof (xmlCopyPropList) xmlCopyPropList __attribute((alias("xmlCopyPropList__internal_alias")));
+#else
+#ifndef xmlCopyPropList
+extern __typeof (xmlCopyPropList) xmlCopyPropList__internal_alias __attribute((visibility("hidden")));
#define xmlCopyPropList xmlCopyPropList__internal_alias
+#endif
+#endif
-extern __typeof (xmlCreateDocParserCtxt) xmlCreateDocParserCtxt__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_parser
+#undef xmlCreateDocParserCtxt
extern __typeof (xmlCreateDocParserCtxt) xmlCreateDocParserCtxt __attribute((alias("xmlCreateDocParserCtxt__internal_alias")));
+#else
+#ifndef xmlCreateDocParserCtxt
+extern __typeof (xmlCreateDocParserCtxt) xmlCreateDocParserCtxt__internal_alias __attribute((visibility("hidden")));
#define xmlCreateDocParserCtxt xmlCreateDocParserCtxt__internal_alias
+#endif
+#endif
-extern __typeof (xmlCreateEntitiesTable) xmlCreateEntitiesTable__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_entities
+#undef xmlCreateEntitiesTable
extern __typeof (xmlCreateEntitiesTable) xmlCreateEntitiesTable __attribute((alias("xmlCreateEntitiesTable__internal_alias")));
+#else
+#ifndef xmlCreateEntitiesTable
+extern __typeof (xmlCreateEntitiesTable) xmlCreateEntitiesTable__internal_alias __attribute((visibility("hidden")));
#define xmlCreateEntitiesTable xmlCreateEntitiesTable__internal_alias
+#endif
+#endif
-extern __typeof (xmlCreateEntityParserCtxt) xmlCreateEntityParserCtxt__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_parser
+#undef xmlCreateEntityParserCtxt
extern __typeof (xmlCreateEntityParserCtxt) xmlCreateEntityParserCtxt __attribute((alias("xmlCreateEntityParserCtxt__internal_alias")));
+#else
+#ifndef xmlCreateEntityParserCtxt
+extern __typeof (xmlCreateEntityParserCtxt) xmlCreateEntityParserCtxt__internal_alias __attribute((visibility("hidden")));
#define xmlCreateEntityParserCtxt xmlCreateEntityParserCtxt__internal_alias
+#endif
+#endif
-extern __typeof (xmlCreateEnumeration) xmlCreateEnumeration__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_valid
+#undef xmlCreateEnumeration
extern __typeof (xmlCreateEnumeration) xmlCreateEnumeration __attribute((alias("xmlCreateEnumeration__internal_alias")));
+#else
+#ifndef xmlCreateEnumeration
+extern __typeof (xmlCreateEnumeration) xmlCreateEnumeration__internal_alias __attribute((visibility("hidden")));
#define xmlCreateEnumeration xmlCreateEnumeration__internal_alias
+#endif
+#endif
-extern __typeof (xmlCreateFileParserCtxt) xmlCreateFileParserCtxt__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_parser
+#undef xmlCreateFileParserCtxt
extern __typeof (xmlCreateFileParserCtxt) xmlCreateFileParserCtxt __attribute((alias("xmlCreateFileParserCtxt__internal_alias")));
+#else
+#ifndef xmlCreateFileParserCtxt
+extern __typeof (xmlCreateFileParserCtxt) xmlCreateFileParserCtxt__internal_alias __attribute((visibility("hidden")));
#define xmlCreateFileParserCtxt xmlCreateFileParserCtxt__internal_alias
+#endif
+#endif
-extern __typeof (xmlCreateIOParserCtxt) xmlCreateIOParserCtxt__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_parser
+#undef xmlCreateIOParserCtxt
extern __typeof (xmlCreateIOParserCtxt) xmlCreateIOParserCtxt __attribute((alias("xmlCreateIOParserCtxt__internal_alias")));
+#else
+#ifndef xmlCreateIOParserCtxt
+extern __typeof (xmlCreateIOParserCtxt) xmlCreateIOParserCtxt__internal_alias __attribute((visibility("hidden")));
#define xmlCreateIOParserCtxt xmlCreateIOParserCtxt__internal_alias
+#endif
+#endif
-extern __typeof (xmlCreateIntSubset) xmlCreateIntSubset__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_tree
+#undef xmlCreateIntSubset
extern __typeof (xmlCreateIntSubset) xmlCreateIntSubset __attribute((alias("xmlCreateIntSubset__internal_alias")));
+#else
+#ifndef xmlCreateIntSubset
+extern __typeof (xmlCreateIntSubset) xmlCreateIntSubset__internal_alias __attribute((visibility("hidden")));
#define xmlCreateIntSubset xmlCreateIntSubset__internal_alias
+#endif
+#endif
-extern __typeof (xmlCreateMemoryParserCtxt) xmlCreateMemoryParserCtxt__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_parser
+#undef xmlCreateMemoryParserCtxt
extern __typeof (xmlCreateMemoryParserCtxt) xmlCreateMemoryParserCtxt __attribute((alias("xmlCreateMemoryParserCtxt__internal_alias")));
+#else
+#ifndef xmlCreateMemoryParserCtxt
+extern __typeof (xmlCreateMemoryParserCtxt) xmlCreateMemoryParserCtxt__internal_alias __attribute((visibility("hidden")));
#define xmlCreateMemoryParserCtxt xmlCreateMemoryParserCtxt__internal_alias
+#endif
+#endif
#if defined(LIBXML_PUSH_ENABLED)
-extern __typeof (xmlCreatePushParserCtxt) xmlCreatePushParserCtxt__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_parser
+#undef xmlCreatePushParserCtxt
extern __typeof (xmlCreatePushParserCtxt) xmlCreatePushParserCtxt __attribute((alias("xmlCreatePushParserCtxt__internal_alias")));
+#else
+#ifndef xmlCreatePushParserCtxt
+extern __typeof (xmlCreatePushParserCtxt) xmlCreatePushParserCtxt__internal_alias __attribute((visibility("hidden")));
#define xmlCreatePushParserCtxt xmlCreatePushParserCtxt__internal_alias
#endif
+#endif
+#endif
-extern __typeof (xmlCreateURI) xmlCreateURI__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_uri
+#undef xmlCreateURI
extern __typeof (xmlCreateURI) xmlCreateURI __attribute((alias("xmlCreateURI__internal_alias")));
+#else
+#ifndef xmlCreateURI
+extern __typeof (xmlCreateURI) xmlCreateURI__internal_alias __attribute((visibility("hidden")));
#define xmlCreateURI xmlCreateURI__internal_alias
+#endif
+#endif
-extern __typeof (xmlCreateURLParserCtxt) xmlCreateURLParserCtxt__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_parser
+#undef xmlCreateURLParserCtxt
extern __typeof (xmlCreateURLParserCtxt) xmlCreateURLParserCtxt __attribute((alias("xmlCreateURLParserCtxt__internal_alias")));
+#else
+#ifndef xmlCreateURLParserCtxt
+extern __typeof (xmlCreateURLParserCtxt) xmlCreateURLParserCtxt__internal_alias __attribute((visibility("hidden")));
#define xmlCreateURLParserCtxt xmlCreateURLParserCtxt__internal_alias
+#endif
+#endif
-extern __typeof (xmlCtxtGetLastError) xmlCtxtGetLastError__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_error
+#undef xmlCtxtGetLastError
extern __typeof (xmlCtxtGetLastError) xmlCtxtGetLastError __attribute((alias("xmlCtxtGetLastError__internal_alias")));
+#else
+#ifndef xmlCtxtGetLastError
+extern __typeof (xmlCtxtGetLastError) xmlCtxtGetLastError__internal_alias __attribute((visibility("hidden")));
#define xmlCtxtGetLastError xmlCtxtGetLastError__internal_alias
+#endif
+#endif
-extern __typeof (xmlCtxtReadDoc) xmlCtxtReadDoc__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_parser
+#undef xmlCtxtReadDoc
extern __typeof (xmlCtxtReadDoc) xmlCtxtReadDoc __attribute((alias("xmlCtxtReadDoc__internal_alias")));
+#else
+#ifndef xmlCtxtReadDoc
+extern __typeof (xmlCtxtReadDoc) xmlCtxtReadDoc__internal_alias __attribute((visibility("hidden")));
#define xmlCtxtReadDoc xmlCtxtReadDoc__internal_alias
+#endif
+#endif
-extern __typeof (xmlCtxtReadFd) xmlCtxtReadFd__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_parser
+#undef xmlCtxtReadFd
extern __typeof (xmlCtxtReadFd) xmlCtxtReadFd __attribute((alias("xmlCtxtReadFd__internal_alias")));
+#else
+#ifndef xmlCtxtReadFd
+extern __typeof (xmlCtxtReadFd) xmlCtxtReadFd__internal_alias __attribute((visibility("hidden")));
#define xmlCtxtReadFd xmlCtxtReadFd__internal_alias
+#endif
+#endif
-extern __typeof (xmlCtxtReadFile) xmlCtxtReadFile__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_parser
+#undef xmlCtxtReadFile
extern __typeof (xmlCtxtReadFile) xmlCtxtReadFile __attribute((alias("xmlCtxtReadFile__internal_alias")));
+#else
+#ifndef xmlCtxtReadFile
+extern __typeof (xmlCtxtReadFile) xmlCtxtReadFile__internal_alias __attribute((visibility("hidden")));
#define xmlCtxtReadFile xmlCtxtReadFile__internal_alias
+#endif
+#endif
-extern __typeof (xmlCtxtReadIO) xmlCtxtReadIO__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_parser
+#undef xmlCtxtReadIO
extern __typeof (xmlCtxtReadIO) xmlCtxtReadIO __attribute((alias("xmlCtxtReadIO__internal_alias")));
+#else
+#ifndef xmlCtxtReadIO
+extern __typeof (xmlCtxtReadIO) xmlCtxtReadIO__internal_alias __attribute((visibility("hidden")));
#define xmlCtxtReadIO xmlCtxtReadIO__internal_alias
+#endif
+#endif
-extern __typeof (xmlCtxtReadMemory) xmlCtxtReadMemory__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_parser
+#undef xmlCtxtReadMemory
extern __typeof (xmlCtxtReadMemory) xmlCtxtReadMemory __attribute((alias("xmlCtxtReadMemory__internal_alias")));
+#else
+#ifndef xmlCtxtReadMemory
+extern __typeof (xmlCtxtReadMemory) xmlCtxtReadMemory__internal_alias __attribute((visibility("hidden")));
#define xmlCtxtReadMemory xmlCtxtReadMemory__internal_alias
+#endif
+#endif
-extern __typeof (xmlCtxtReset) xmlCtxtReset__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_parser
+#undef xmlCtxtReset
extern __typeof (xmlCtxtReset) xmlCtxtReset __attribute((alias("xmlCtxtReset__internal_alias")));
+#else
+#ifndef xmlCtxtReset
+extern __typeof (xmlCtxtReset) xmlCtxtReset__internal_alias __attribute((visibility("hidden")));
#define xmlCtxtReset xmlCtxtReset__internal_alias
+#endif
+#endif
-extern __typeof (xmlCtxtResetLastError) xmlCtxtResetLastError__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_error
+#undef xmlCtxtResetLastError
extern __typeof (xmlCtxtResetLastError) xmlCtxtResetLastError __attribute((alias("xmlCtxtResetLastError__internal_alias")));
+#else
+#ifndef xmlCtxtResetLastError
+extern __typeof (xmlCtxtResetLastError) xmlCtxtResetLastError__internal_alias __attribute((visibility("hidden")));
#define xmlCtxtResetLastError xmlCtxtResetLastError__internal_alias
+#endif
+#endif
-extern __typeof (xmlCtxtResetPush) xmlCtxtResetPush__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_parser
+#undef xmlCtxtResetPush
extern __typeof (xmlCtxtResetPush) xmlCtxtResetPush __attribute((alias("xmlCtxtResetPush__internal_alias")));
+#else
+#ifndef xmlCtxtResetPush
+extern __typeof (xmlCtxtResetPush) xmlCtxtResetPush__internal_alias __attribute((visibility("hidden")));
#define xmlCtxtResetPush xmlCtxtResetPush__internal_alias
+#endif
+#endif
-extern __typeof (xmlCtxtUseOptions) xmlCtxtUseOptions__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_parser
+#undef xmlCtxtUseOptions
extern __typeof (xmlCtxtUseOptions) xmlCtxtUseOptions __attribute((alias("xmlCtxtUseOptions__internal_alias")));
+#else
+#ifndef xmlCtxtUseOptions
+extern __typeof (xmlCtxtUseOptions) xmlCtxtUseOptions__internal_alias __attribute((visibility("hidden")));
#define xmlCtxtUseOptions xmlCtxtUseOptions__internal_alias
+#endif
+#endif
-extern __typeof (xmlCurrentChar) xmlCurrentChar__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_parserInternals
+#undef xmlCurrentChar
extern __typeof (xmlCurrentChar) xmlCurrentChar __attribute((alias("xmlCurrentChar__internal_alias")));
+#else
+#ifndef xmlCurrentChar
+extern __typeof (xmlCurrentChar) xmlCurrentChar__internal_alias __attribute((visibility("hidden")));
#define xmlCurrentChar xmlCurrentChar__internal_alias
+#endif
+#endif
#if defined(LIBXML_DEBUG_ENABLED)
-extern __typeof (xmlDebugCheckDocument) xmlDebugCheckDocument__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_debugXML
+#undef xmlDebugCheckDocument
extern __typeof (xmlDebugCheckDocument) xmlDebugCheckDocument __attribute((alias("xmlDebugCheckDocument__internal_alias")));
+#else
+#ifndef xmlDebugCheckDocument
+extern __typeof (xmlDebugCheckDocument) xmlDebugCheckDocument__internal_alias __attribute((visibility("hidden")));
#define xmlDebugCheckDocument xmlDebugCheckDocument__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_DEBUG_ENABLED)
-extern __typeof (xmlDebugDumpAttr) xmlDebugDumpAttr__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_debugXML
+#undef xmlDebugDumpAttr
extern __typeof (xmlDebugDumpAttr) xmlDebugDumpAttr __attribute((alias("xmlDebugDumpAttr__internal_alias")));
+#else
+#ifndef xmlDebugDumpAttr
+extern __typeof (xmlDebugDumpAttr) xmlDebugDumpAttr__internal_alias __attribute((visibility("hidden")));
#define xmlDebugDumpAttr xmlDebugDumpAttr__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_DEBUG_ENABLED)
-extern __typeof (xmlDebugDumpAttrList) xmlDebugDumpAttrList__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_debugXML
+#undef xmlDebugDumpAttrList
extern __typeof (xmlDebugDumpAttrList) xmlDebugDumpAttrList __attribute((alias("xmlDebugDumpAttrList__internal_alias")));
+#else
+#ifndef xmlDebugDumpAttrList
+extern __typeof (xmlDebugDumpAttrList) xmlDebugDumpAttrList__internal_alias __attribute((visibility("hidden")));
#define xmlDebugDumpAttrList xmlDebugDumpAttrList__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_DEBUG_ENABLED)
-extern __typeof (xmlDebugDumpDTD) xmlDebugDumpDTD__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_debugXML
+#undef xmlDebugDumpDTD
extern __typeof (xmlDebugDumpDTD) xmlDebugDumpDTD __attribute((alias("xmlDebugDumpDTD__internal_alias")));
+#else
+#ifndef xmlDebugDumpDTD
+extern __typeof (xmlDebugDumpDTD) xmlDebugDumpDTD__internal_alias __attribute((visibility("hidden")));
#define xmlDebugDumpDTD xmlDebugDumpDTD__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_DEBUG_ENABLED)
-extern __typeof (xmlDebugDumpDocument) xmlDebugDumpDocument__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_debugXML
+#undef xmlDebugDumpDocument
extern __typeof (xmlDebugDumpDocument) xmlDebugDumpDocument __attribute((alias("xmlDebugDumpDocument__internal_alias")));
+#else
+#ifndef xmlDebugDumpDocument
+extern __typeof (xmlDebugDumpDocument) xmlDebugDumpDocument__internal_alias __attribute((visibility("hidden")));
#define xmlDebugDumpDocument xmlDebugDumpDocument__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_DEBUG_ENABLED)
-extern __typeof (xmlDebugDumpDocumentHead) xmlDebugDumpDocumentHead__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_debugXML
+#undef xmlDebugDumpDocumentHead
extern __typeof (xmlDebugDumpDocumentHead) xmlDebugDumpDocumentHead __attribute((alias("xmlDebugDumpDocumentHead__internal_alias")));
+#else
+#ifndef xmlDebugDumpDocumentHead
+extern __typeof (xmlDebugDumpDocumentHead) xmlDebugDumpDocumentHead__internal_alias __attribute((visibility("hidden")));
#define xmlDebugDumpDocumentHead xmlDebugDumpDocumentHead__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_DEBUG_ENABLED)
-extern __typeof (xmlDebugDumpEntities) xmlDebugDumpEntities__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_debugXML
+#undef xmlDebugDumpEntities
extern __typeof (xmlDebugDumpEntities) xmlDebugDumpEntities __attribute((alias("xmlDebugDumpEntities__internal_alias")));
+#else
+#ifndef xmlDebugDumpEntities
+extern __typeof (xmlDebugDumpEntities) xmlDebugDumpEntities__internal_alias __attribute((visibility("hidden")));
#define xmlDebugDumpEntities xmlDebugDumpEntities__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_DEBUG_ENABLED)
-extern __typeof (xmlDebugDumpNode) xmlDebugDumpNode__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_debugXML
+#undef xmlDebugDumpNode
extern __typeof (xmlDebugDumpNode) xmlDebugDumpNode __attribute((alias("xmlDebugDumpNode__internal_alias")));
+#else
+#ifndef xmlDebugDumpNode
+extern __typeof (xmlDebugDumpNode) xmlDebugDumpNode__internal_alias __attribute((visibility("hidden")));
#define xmlDebugDumpNode xmlDebugDumpNode__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_DEBUG_ENABLED)
-extern __typeof (xmlDebugDumpNodeList) xmlDebugDumpNodeList__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_debugXML
+#undef xmlDebugDumpNodeList
extern __typeof (xmlDebugDumpNodeList) xmlDebugDumpNodeList __attribute((alias("xmlDebugDumpNodeList__internal_alias")));
+#else
+#ifndef xmlDebugDumpNodeList
+extern __typeof (xmlDebugDumpNodeList) xmlDebugDumpNodeList__internal_alias __attribute((visibility("hidden")));
#define xmlDebugDumpNodeList xmlDebugDumpNodeList__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_DEBUG_ENABLED)
-extern __typeof (xmlDebugDumpOneNode) xmlDebugDumpOneNode__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_debugXML
+#undef xmlDebugDumpOneNode
extern __typeof (xmlDebugDumpOneNode) xmlDebugDumpOneNode __attribute((alias("xmlDebugDumpOneNode__internal_alias")));
+#else
+#ifndef xmlDebugDumpOneNode
+extern __typeof (xmlDebugDumpOneNode) xmlDebugDumpOneNode__internal_alias __attribute((visibility("hidden")));
#define xmlDebugDumpOneNode xmlDebugDumpOneNode__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_DEBUG_ENABLED)
-extern __typeof (xmlDebugDumpString) xmlDebugDumpString__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_debugXML
+#undef xmlDebugDumpString
extern __typeof (xmlDebugDumpString) xmlDebugDumpString __attribute((alias("xmlDebugDumpString__internal_alias")));
+#else
+#ifndef xmlDebugDumpString
+extern __typeof (xmlDebugDumpString) xmlDebugDumpString__internal_alias __attribute((visibility("hidden")));
#define xmlDebugDumpString xmlDebugDumpString__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_LEGACY_ENABLED)
-extern __typeof (xmlDecodeEntities) xmlDecodeEntities__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_legacy
+#undef xmlDecodeEntities
extern __typeof (xmlDecodeEntities) xmlDecodeEntities __attribute((alias("xmlDecodeEntities__internal_alias")));
+#else
+#ifndef xmlDecodeEntities
+extern __typeof (xmlDecodeEntities) xmlDecodeEntities__internal_alias __attribute((visibility("hidden")));
#define xmlDecodeEntities xmlDecodeEntities__internal_alias
#endif
+#endif
+#endif
-extern __typeof (xmlDefaultSAXHandlerInit) xmlDefaultSAXHandlerInit__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_SAX2
+#undef xmlDefaultSAXHandlerInit
extern __typeof (xmlDefaultSAXHandlerInit) xmlDefaultSAXHandlerInit __attribute((alias("xmlDefaultSAXHandlerInit__internal_alias")));
+#else
+#ifndef xmlDefaultSAXHandlerInit
+extern __typeof (xmlDefaultSAXHandlerInit) xmlDefaultSAXHandlerInit__internal_alias __attribute((visibility("hidden")));
#define xmlDefaultSAXHandlerInit xmlDefaultSAXHandlerInit__internal_alias
+#endif
+#endif
-extern __typeof (xmlDelEncodingAlias) xmlDelEncodingAlias__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_encoding
+#undef xmlDelEncodingAlias
extern __typeof (xmlDelEncodingAlias) xmlDelEncodingAlias __attribute((alias("xmlDelEncodingAlias__internal_alias")));
+#else
+#ifndef xmlDelEncodingAlias
+extern __typeof (xmlDelEncodingAlias) xmlDelEncodingAlias__internal_alias __attribute((visibility("hidden")));
#define xmlDelEncodingAlias xmlDelEncodingAlias__internal_alias
+#endif
+#endif
-extern __typeof (xmlDeregisterNodeDefault) xmlDeregisterNodeDefault__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_globals
+#undef xmlDeregisterNodeDefault
extern __typeof (xmlDeregisterNodeDefault) xmlDeregisterNodeDefault __attribute((alias("xmlDeregisterNodeDefault__internal_alias")));
+#else
+#ifndef xmlDeregisterNodeDefault
+extern __typeof (xmlDeregisterNodeDefault) xmlDeregisterNodeDefault__internal_alias __attribute((visibility("hidden")));
#define xmlDeregisterNodeDefault xmlDeregisterNodeDefault__internal_alias
+#endif
+#endif
-extern __typeof (xmlDetectCharEncoding) xmlDetectCharEncoding__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_encoding
+#undef xmlDetectCharEncoding
extern __typeof (xmlDetectCharEncoding) xmlDetectCharEncoding __attribute((alias("xmlDetectCharEncoding__internal_alias")));
+#else
+#ifndef xmlDetectCharEncoding
+extern __typeof (xmlDetectCharEncoding) xmlDetectCharEncoding__internal_alias __attribute((visibility("hidden")));
#define xmlDetectCharEncoding xmlDetectCharEncoding__internal_alias
+#endif
+#endif
-extern __typeof (xmlDictCleanup) xmlDictCleanup__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_dict
+#undef xmlDictCleanup
extern __typeof (xmlDictCleanup) xmlDictCleanup __attribute((alias("xmlDictCleanup__internal_alias")));
+#else
+#ifndef xmlDictCleanup
+extern __typeof (xmlDictCleanup) xmlDictCleanup__internal_alias __attribute((visibility("hidden")));
#define xmlDictCleanup xmlDictCleanup__internal_alias
+#endif
+#endif
-extern __typeof (xmlDictCreate) xmlDictCreate__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_dict
+#undef xmlDictCreate
extern __typeof (xmlDictCreate) xmlDictCreate __attribute((alias("xmlDictCreate__internal_alias")));
+#else
+#ifndef xmlDictCreate
+extern __typeof (xmlDictCreate) xmlDictCreate__internal_alias __attribute((visibility("hidden")));
#define xmlDictCreate xmlDictCreate__internal_alias
+#endif
+#endif
-extern __typeof (xmlDictCreateSub) xmlDictCreateSub__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_dict
+#undef xmlDictCreateSub
extern __typeof (xmlDictCreateSub) xmlDictCreateSub __attribute((alias("xmlDictCreateSub__internal_alias")));
+#else
+#ifndef xmlDictCreateSub
+extern __typeof (xmlDictCreateSub) xmlDictCreateSub__internal_alias __attribute((visibility("hidden")));
#define xmlDictCreateSub xmlDictCreateSub__internal_alias
+#endif
+#endif
-extern __typeof (xmlDictExists) xmlDictExists__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_dict
+#undef xmlDictExists
extern __typeof (xmlDictExists) xmlDictExists __attribute((alias("xmlDictExists__internal_alias")));
+#else
+#ifndef xmlDictExists
+extern __typeof (xmlDictExists) xmlDictExists__internal_alias __attribute((visibility("hidden")));
#define xmlDictExists xmlDictExists__internal_alias
+#endif
+#endif
-extern __typeof (xmlDictFree) xmlDictFree__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_dict
+#undef xmlDictFree
extern __typeof (xmlDictFree) xmlDictFree __attribute((alias("xmlDictFree__internal_alias")));
+#else
+#ifndef xmlDictFree
+extern __typeof (xmlDictFree) xmlDictFree__internal_alias __attribute((visibility("hidden")));
#define xmlDictFree xmlDictFree__internal_alias
+#endif
+#endif
-extern __typeof (xmlDictLookup) xmlDictLookup__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_dict
+#undef xmlDictLookup
extern __typeof (xmlDictLookup) xmlDictLookup __attribute((alias("xmlDictLookup__internal_alias")));
+#else
+#ifndef xmlDictLookup
+extern __typeof (xmlDictLookup) xmlDictLookup__internal_alias __attribute((visibility("hidden")));
#define xmlDictLookup xmlDictLookup__internal_alias
+#endif
+#endif
-extern __typeof (xmlDictOwns) xmlDictOwns__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_dict
+#undef xmlDictOwns
extern __typeof (xmlDictOwns) xmlDictOwns __attribute((alias("xmlDictOwns__internal_alias")));
+#else
+#ifndef xmlDictOwns
+extern __typeof (xmlDictOwns) xmlDictOwns__internal_alias __attribute((visibility("hidden")));
#define xmlDictOwns xmlDictOwns__internal_alias
+#endif
+#endif
-extern __typeof (xmlDictQLookup) xmlDictQLookup__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_dict
+#undef xmlDictQLookup
extern __typeof (xmlDictQLookup) xmlDictQLookup __attribute((alias("xmlDictQLookup__internal_alias")));
+#else
+#ifndef xmlDictQLookup
+extern __typeof (xmlDictQLookup) xmlDictQLookup__internal_alias __attribute((visibility("hidden")));
#define xmlDictQLookup xmlDictQLookup__internal_alias
+#endif
+#endif
-extern __typeof (xmlDictReference) xmlDictReference__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_dict
+#undef xmlDictReference
extern __typeof (xmlDictReference) xmlDictReference __attribute((alias("xmlDictReference__internal_alias")));
+#else
+#ifndef xmlDictReference
+extern __typeof (xmlDictReference) xmlDictReference__internal_alias __attribute((visibility("hidden")));
#define xmlDictReference xmlDictReference__internal_alias
+#endif
+#endif
-extern __typeof (xmlDictSize) xmlDictSize__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_dict
+#undef xmlDictSize
extern __typeof (xmlDictSize) xmlDictSize __attribute((alias("xmlDictSize__internal_alias")));
+#else
+#ifndef xmlDictSize
+extern __typeof (xmlDictSize) xmlDictSize__internal_alias __attribute((visibility("hidden")));
#define xmlDictSize xmlDictSize__internal_alias
+#endif
+#endif
-extern __typeof (xmlDocCopyNode) xmlDocCopyNode__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_tree
+#undef xmlDocCopyNode
extern __typeof (xmlDocCopyNode) xmlDocCopyNode __attribute((alias("xmlDocCopyNode__internal_alias")));
+#else
+#ifndef xmlDocCopyNode
+extern __typeof (xmlDocCopyNode) xmlDocCopyNode__internal_alias __attribute((visibility("hidden")));
#define xmlDocCopyNode xmlDocCopyNode__internal_alias
+#endif
+#endif
-extern __typeof (xmlDocCopyNodeList) xmlDocCopyNodeList__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_tree
+#undef xmlDocCopyNodeList
extern __typeof (xmlDocCopyNodeList) xmlDocCopyNodeList __attribute((alias("xmlDocCopyNodeList__internal_alias")));
+#else
+#ifndef xmlDocCopyNodeList
+extern __typeof (xmlDocCopyNodeList) xmlDocCopyNodeList__internal_alias __attribute((visibility("hidden")));
#define xmlDocCopyNodeList xmlDocCopyNodeList__internal_alias
+#endif
+#endif
#if defined(LIBXML_OUTPUT_ENABLED)
-extern __typeof (xmlDocDump) xmlDocDump__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlsave
+#undef xmlDocDump
extern __typeof (xmlDocDump) xmlDocDump __attribute((alias("xmlDocDump__internal_alias")));
+#else
+#ifndef xmlDocDump
+extern __typeof (xmlDocDump) xmlDocDump__internal_alias __attribute((visibility("hidden")));
#define xmlDocDump xmlDocDump__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_OUTPUT_ENABLED)
-extern __typeof (xmlDocDumpFormatMemory) xmlDocDumpFormatMemory__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlsave
+#undef xmlDocDumpFormatMemory
extern __typeof (xmlDocDumpFormatMemory) xmlDocDumpFormatMemory __attribute((alias("xmlDocDumpFormatMemory__internal_alias")));
+#else
+#ifndef xmlDocDumpFormatMemory
+extern __typeof (xmlDocDumpFormatMemory) xmlDocDumpFormatMemory__internal_alias __attribute((visibility("hidden")));
#define xmlDocDumpFormatMemory xmlDocDumpFormatMemory__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_OUTPUT_ENABLED)
-extern __typeof (xmlDocDumpFormatMemoryEnc) xmlDocDumpFormatMemoryEnc__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlsave
+#undef xmlDocDumpFormatMemoryEnc
extern __typeof (xmlDocDumpFormatMemoryEnc) xmlDocDumpFormatMemoryEnc __attribute((alias("xmlDocDumpFormatMemoryEnc__internal_alias")));
+#else
+#ifndef xmlDocDumpFormatMemoryEnc
+extern __typeof (xmlDocDumpFormatMemoryEnc) xmlDocDumpFormatMemoryEnc__internal_alias __attribute((visibility("hidden")));
#define xmlDocDumpFormatMemoryEnc xmlDocDumpFormatMemoryEnc__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_OUTPUT_ENABLED)
-extern __typeof (xmlDocDumpMemory) xmlDocDumpMemory__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlsave
+#undef xmlDocDumpMemory
extern __typeof (xmlDocDumpMemory) xmlDocDumpMemory __attribute((alias("xmlDocDumpMemory__internal_alias")));
+#else
+#ifndef xmlDocDumpMemory
+extern __typeof (xmlDocDumpMemory) xmlDocDumpMemory__internal_alias __attribute((visibility("hidden")));
#define xmlDocDumpMemory xmlDocDumpMemory__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_OUTPUT_ENABLED)
-extern __typeof (xmlDocDumpMemoryEnc) xmlDocDumpMemoryEnc__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlsave
+#undef xmlDocDumpMemoryEnc
extern __typeof (xmlDocDumpMemoryEnc) xmlDocDumpMemoryEnc __attribute((alias("xmlDocDumpMemoryEnc__internal_alias")));
+#else
+#ifndef xmlDocDumpMemoryEnc
+extern __typeof (xmlDocDumpMemoryEnc) xmlDocDumpMemoryEnc__internal_alias __attribute((visibility("hidden")));
#define xmlDocDumpMemoryEnc xmlDocDumpMemoryEnc__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_OUTPUT_ENABLED)
-extern __typeof (xmlDocFormatDump) xmlDocFormatDump__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlsave
+#undef xmlDocFormatDump
extern __typeof (xmlDocFormatDump) xmlDocFormatDump __attribute((alias("xmlDocFormatDump__internal_alias")));
+#else
+#ifndef xmlDocFormatDump
+extern __typeof (xmlDocFormatDump) xmlDocFormatDump__internal_alias __attribute((visibility("hidden")));
#define xmlDocFormatDump xmlDocFormatDump__internal_alias
#endif
+#endif
+#endif
-extern __typeof (xmlDocGetRootElement) xmlDocGetRootElement__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_tree
+#undef xmlDocGetRootElement
extern __typeof (xmlDocGetRootElement) xmlDocGetRootElement __attribute((alias("xmlDocGetRootElement__internal_alias")));
+#else
+#ifndef xmlDocGetRootElement
+extern __typeof (xmlDocGetRootElement) xmlDocGetRootElement__internal_alias __attribute((visibility("hidden")));
#define xmlDocGetRootElement xmlDocGetRootElement__internal_alias
+#endif
+#endif
#if defined(LIBXML_TREE_ENABLED) || defined(LIBXML_WRITER_ENABLED)
-extern __typeof (xmlDocSetRootElement) xmlDocSetRootElement__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_tree
+#undef xmlDocSetRootElement
extern __typeof (xmlDocSetRootElement) xmlDocSetRootElement __attribute((alias("xmlDocSetRootElement__internal_alias")));
+#else
+#ifndef xmlDocSetRootElement
+extern __typeof (xmlDocSetRootElement) xmlDocSetRootElement__internal_alias __attribute((visibility("hidden")));
#define xmlDocSetRootElement xmlDocSetRootElement__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_OUTPUT_ENABLED)
-extern __typeof (xmlDumpAttributeDecl) xmlDumpAttributeDecl__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_valid
+#undef xmlDumpAttributeDecl
extern __typeof (xmlDumpAttributeDecl) xmlDumpAttributeDecl __attribute((alias("xmlDumpAttributeDecl__internal_alias")));
+#else
+#ifndef xmlDumpAttributeDecl
+extern __typeof (xmlDumpAttributeDecl) xmlDumpAttributeDecl__internal_alias __attribute((visibility("hidden")));
#define xmlDumpAttributeDecl xmlDumpAttributeDecl__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_OUTPUT_ENABLED)
-extern __typeof (xmlDumpAttributeTable) xmlDumpAttributeTable__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_valid
+#undef xmlDumpAttributeTable
extern __typeof (xmlDumpAttributeTable) xmlDumpAttributeTable __attribute((alias("xmlDumpAttributeTable__internal_alias")));
+#else
+#ifndef xmlDumpAttributeTable
+extern __typeof (xmlDumpAttributeTable) xmlDumpAttributeTable__internal_alias __attribute((visibility("hidden")));
#define xmlDumpAttributeTable xmlDumpAttributeTable__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_OUTPUT_ENABLED)
-extern __typeof (xmlDumpElementDecl) xmlDumpElementDecl__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_valid
+#undef xmlDumpElementDecl
extern __typeof (xmlDumpElementDecl) xmlDumpElementDecl __attribute((alias("xmlDumpElementDecl__internal_alias")));
+#else
+#ifndef xmlDumpElementDecl
+extern __typeof (xmlDumpElementDecl) xmlDumpElementDecl__internal_alias __attribute((visibility("hidden")));
#define xmlDumpElementDecl xmlDumpElementDecl__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_OUTPUT_ENABLED)
-extern __typeof (xmlDumpElementTable) xmlDumpElementTable__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_valid
+#undef xmlDumpElementTable
extern __typeof (xmlDumpElementTable) xmlDumpElementTable __attribute((alias("xmlDumpElementTable__internal_alias")));
+#else
+#ifndef xmlDumpElementTable
+extern __typeof (xmlDumpElementTable) xmlDumpElementTable__internal_alias __attribute((visibility("hidden")));
#define xmlDumpElementTable xmlDumpElementTable__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_OUTPUT_ENABLED)
-extern __typeof (xmlDumpEntitiesTable) xmlDumpEntitiesTable__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_entities
+#undef xmlDumpEntitiesTable
extern __typeof (xmlDumpEntitiesTable) xmlDumpEntitiesTable __attribute((alias("xmlDumpEntitiesTable__internal_alias")));
+#else
+#ifndef xmlDumpEntitiesTable
+extern __typeof (xmlDumpEntitiesTable) xmlDumpEntitiesTable__internal_alias __attribute((visibility("hidden")));
#define xmlDumpEntitiesTable xmlDumpEntitiesTable__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_OUTPUT_ENABLED)
-extern __typeof (xmlDumpEntityDecl) xmlDumpEntityDecl__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_entities
+#undef xmlDumpEntityDecl
extern __typeof (xmlDumpEntityDecl) xmlDumpEntityDecl __attribute((alias("xmlDumpEntityDecl__internal_alias")));
+#else
+#ifndef xmlDumpEntityDecl
+extern __typeof (xmlDumpEntityDecl) xmlDumpEntityDecl__internal_alias __attribute((visibility("hidden")));
#define xmlDumpEntityDecl xmlDumpEntityDecl__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_OUTPUT_ENABLED)
-extern __typeof (xmlDumpNotationDecl) xmlDumpNotationDecl__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_valid
+#undef xmlDumpNotationDecl
extern __typeof (xmlDumpNotationDecl) xmlDumpNotationDecl __attribute((alias("xmlDumpNotationDecl__internal_alias")));
+#else
+#ifndef xmlDumpNotationDecl
+extern __typeof (xmlDumpNotationDecl) xmlDumpNotationDecl__internal_alias __attribute((visibility("hidden")));
#define xmlDumpNotationDecl xmlDumpNotationDecl__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_OUTPUT_ENABLED)
-extern __typeof (xmlDumpNotationTable) xmlDumpNotationTable__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_valid
+#undef xmlDumpNotationTable
extern __typeof (xmlDumpNotationTable) xmlDumpNotationTable __attribute((alias("xmlDumpNotationTable__internal_alias")));
+#else
+#ifndef xmlDumpNotationTable
+extern __typeof (xmlDumpNotationTable) xmlDumpNotationTable__internal_alias __attribute((visibility("hidden")));
#define xmlDumpNotationTable xmlDumpNotationTable__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_OUTPUT_ENABLED)
-extern __typeof (xmlElemDump) xmlElemDump__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlsave
+#undef xmlElemDump
extern __typeof (xmlElemDump) xmlElemDump __attribute((alias("xmlElemDump__internal_alias")));
+#else
+#ifndef xmlElemDump
+extern __typeof (xmlElemDump) xmlElemDump__internal_alias __attribute((visibility("hidden")));
#define xmlElemDump xmlElemDump__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_LEGACY_ENABLED)
-extern __typeof (xmlEncodeEntities) xmlEncodeEntities__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_legacy
+#undef xmlEncodeEntities
extern __typeof (xmlEncodeEntities) xmlEncodeEntities __attribute((alias("xmlEncodeEntities__internal_alias")));
+#else
+#ifndef xmlEncodeEntities
+extern __typeof (xmlEncodeEntities) xmlEncodeEntities__internal_alias __attribute((visibility("hidden")));
#define xmlEncodeEntities xmlEncodeEntities__internal_alias
#endif
+#endif
+#endif
-extern __typeof (xmlEncodeEntitiesReentrant) xmlEncodeEntitiesReentrant__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_entities
+#undef xmlEncodeEntitiesReentrant
extern __typeof (xmlEncodeEntitiesReentrant) xmlEncodeEntitiesReentrant __attribute((alias("xmlEncodeEntitiesReentrant__internal_alias")));
+#else
+#ifndef xmlEncodeEntitiesReentrant
+extern __typeof (xmlEncodeEntitiesReentrant) xmlEncodeEntitiesReentrant__internal_alias __attribute((visibility("hidden")));
#define xmlEncodeEntitiesReentrant xmlEncodeEntitiesReentrant__internal_alias
+#endif
+#endif
-extern __typeof (xmlEncodeSpecialChars) xmlEncodeSpecialChars__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_entities
+#undef xmlEncodeSpecialChars
extern __typeof (xmlEncodeSpecialChars) xmlEncodeSpecialChars __attribute((alias("xmlEncodeSpecialChars__internal_alias")));
+#else
+#ifndef xmlEncodeSpecialChars
+extern __typeof (xmlEncodeSpecialChars) xmlEncodeSpecialChars__internal_alias __attribute((visibility("hidden")));
#define xmlEncodeSpecialChars xmlEncodeSpecialChars__internal_alias
+#endif
+#endif
-extern __typeof (xmlErrMemory) xmlErrMemory__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_parserInternals
+#undef xmlErrMemory
extern __typeof (xmlErrMemory) xmlErrMemory __attribute((alias("xmlErrMemory__internal_alias")));
+#else
+#ifndef xmlErrMemory
+extern __typeof (xmlErrMemory) xmlErrMemory__internal_alias __attribute((visibility("hidden")));
#define xmlErrMemory xmlErrMemory__internal_alias
+#endif
+#endif
-extern __typeof (xmlFileClose) xmlFileClose__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlIO
+#undef xmlFileClose
extern __typeof (xmlFileClose) xmlFileClose __attribute((alias("xmlFileClose__internal_alias")));
+#else
+#ifndef xmlFileClose
+extern __typeof (xmlFileClose) xmlFileClose__internal_alias __attribute((visibility("hidden")));
#define xmlFileClose xmlFileClose__internal_alias
+#endif
+#endif
-extern __typeof (xmlFileMatch) xmlFileMatch__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlIO
+#undef xmlFileMatch
extern __typeof (xmlFileMatch) xmlFileMatch __attribute((alias("xmlFileMatch__internal_alias")));
+#else
+#ifndef xmlFileMatch
+extern __typeof (xmlFileMatch) xmlFileMatch__internal_alias __attribute((visibility("hidden")));
#define xmlFileMatch xmlFileMatch__internal_alias
+#endif
+#endif
-extern __typeof (xmlFileOpen) xmlFileOpen__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlIO
+#undef xmlFileOpen
extern __typeof (xmlFileOpen) xmlFileOpen __attribute((alias("xmlFileOpen__internal_alias")));
+#else
+#ifndef xmlFileOpen
+extern __typeof (xmlFileOpen) xmlFileOpen__internal_alias __attribute((visibility("hidden")));
#define xmlFileOpen xmlFileOpen__internal_alias
+#endif
+#endif
-extern __typeof (xmlFileRead) xmlFileRead__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlIO
+#undef xmlFileRead
extern __typeof (xmlFileRead) xmlFileRead __attribute((alias("xmlFileRead__internal_alias")));
+#else
+#ifndef xmlFileRead
+extern __typeof (xmlFileRead) xmlFileRead__internal_alias __attribute((visibility("hidden")));
#define xmlFileRead xmlFileRead__internal_alias
+#endif
+#endif
-extern __typeof (xmlFindCharEncodingHandler) xmlFindCharEncodingHandler__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_encoding
+#undef xmlFindCharEncodingHandler
extern __typeof (xmlFindCharEncodingHandler) xmlFindCharEncodingHandler __attribute((alias("xmlFindCharEncodingHandler__internal_alias")));
+#else
+#ifndef xmlFindCharEncodingHandler
+extern __typeof (xmlFindCharEncodingHandler) xmlFindCharEncodingHandler__internal_alias __attribute((visibility("hidden")));
#define xmlFindCharEncodingHandler xmlFindCharEncodingHandler__internal_alias
+#endif
+#endif
-extern __typeof (xmlFreeAttributeTable) xmlFreeAttributeTable__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_valid
+#undef xmlFreeAttributeTable
extern __typeof (xmlFreeAttributeTable) xmlFreeAttributeTable __attribute((alias("xmlFreeAttributeTable__internal_alias")));
+#else
+#ifndef xmlFreeAttributeTable
+extern __typeof (xmlFreeAttributeTable) xmlFreeAttributeTable__internal_alias __attribute((visibility("hidden")));
#define xmlFreeAttributeTable xmlFreeAttributeTable__internal_alias
+#endif
+#endif
#if defined(LIBXML_REGEXP_ENABLED) && defined(LIBXML_AUTOMATA_ENABLED)
-extern __typeof (xmlFreeAutomata) xmlFreeAutomata__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlregexp
+#undef xmlFreeAutomata
extern __typeof (xmlFreeAutomata) xmlFreeAutomata __attribute((alias("xmlFreeAutomata__internal_alias")));
+#else
+#ifndef xmlFreeAutomata
+extern __typeof (xmlFreeAutomata) xmlFreeAutomata__internal_alias __attribute((visibility("hidden")));
#define xmlFreeAutomata xmlFreeAutomata__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_CATALOG_ENABLED)
-extern __typeof (xmlFreeCatalog) xmlFreeCatalog__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_catalog
+#undef xmlFreeCatalog
extern __typeof (xmlFreeCatalog) xmlFreeCatalog __attribute((alias("xmlFreeCatalog__internal_alias")));
+#else
+#ifndef xmlFreeCatalog
+extern __typeof (xmlFreeCatalog) xmlFreeCatalog__internal_alias __attribute((visibility("hidden")));
#define xmlFreeCatalog xmlFreeCatalog__internal_alias
#endif
+#endif
+#endif
-extern __typeof (xmlFreeDoc) xmlFreeDoc__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_tree
+#undef xmlFreeDoc
extern __typeof (xmlFreeDoc) xmlFreeDoc __attribute((alias("xmlFreeDoc__internal_alias")));
+#else
+#ifndef xmlFreeDoc
+extern __typeof (xmlFreeDoc) xmlFreeDoc__internal_alias __attribute((visibility("hidden")));
#define xmlFreeDoc xmlFreeDoc__internal_alias
+#endif
+#endif
-extern __typeof (xmlFreeDocElementContent) xmlFreeDocElementContent__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_valid
+#undef xmlFreeDocElementContent
extern __typeof (xmlFreeDocElementContent) xmlFreeDocElementContent __attribute((alias("xmlFreeDocElementContent__internal_alias")));
+#else
+#ifndef xmlFreeDocElementContent
+extern __typeof (xmlFreeDocElementContent) xmlFreeDocElementContent__internal_alias __attribute((visibility("hidden")));
#define xmlFreeDocElementContent xmlFreeDocElementContent__internal_alias
+#endif
+#endif
-extern __typeof (xmlFreeDtd) xmlFreeDtd__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_tree
+#undef xmlFreeDtd
extern __typeof (xmlFreeDtd) xmlFreeDtd __attribute((alias("xmlFreeDtd__internal_alias")));
+#else
+#ifndef xmlFreeDtd
+extern __typeof (xmlFreeDtd) xmlFreeDtd__internal_alias __attribute((visibility("hidden")));
#define xmlFreeDtd xmlFreeDtd__internal_alias
+#endif
+#endif
-extern __typeof (xmlFreeElementContent) xmlFreeElementContent__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_valid
+#undef xmlFreeElementContent
extern __typeof (xmlFreeElementContent) xmlFreeElementContent __attribute((alias("xmlFreeElementContent__internal_alias")));
+#else
+#ifndef xmlFreeElementContent
+extern __typeof (xmlFreeElementContent) xmlFreeElementContent__internal_alias __attribute((visibility("hidden")));
#define xmlFreeElementContent xmlFreeElementContent__internal_alias
+#endif
+#endif
-extern __typeof (xmlFreeElementTable) xmlFreeElementTable__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_valid
+#undef xmlFreeElementTable
extern __typeof (xmlFreeElementTable) xmlFreeElementTable __attribute((alias("xmlFreeElementTable__internal_alias")));
+#else
+#ifndef xmlFreeElementTable
+extern __typeof (xmlFreeElementTable) xmlFreeElementTable__internal_alias __attribute((visibility("hidden")));
#define xmlFreeElementTable xmlFreeElementTable__internal_alias
+#endif
+#endif
-extern __typeof (xmlFreeEntitiesTable) xmlFreeEntitiesTable__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_entities
+#undef xmlFreeEntitiesTable
extern __typeof (xmlFreeEntitiesTable) xmlFreeEntitiesTable __attribute((alias("xmlFreeEntitiesTable__internal_alias")));
+#else
+#ifndef xmlFreeEntitiesTable
+extern __typeof (xmlFreeEntitiesTable) xmlFreeEntitiesTable__internal_alias __attribute((visibility("hidden")));
#define xmlFreeEntitiesTable xmlFreeEntitiesTable__internal_alias
+#endif
+#endif
-extern __typeof (xmlFreeEnumeration) xmlFreeEnumeration__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_valid
+#undef xmlFreeEnumeration
extern __typeof (xmlFreeEnumeration) xmlFreeEnumeration __attribute((alias("xmlFreeEnumeration__internal_alias")));
+#else
+#ifndef xmlFreeEnumeration
+extern __typeof (xmlFreeEnumeration) xmlFreeEnumeration__internal_alias __attribute((visibility("hidden")));
#define xmlFreeEnumeration xmlFreeEnumeration__internal_alias
+#endif
+#endif
-extern __typeof (xmlFreeIDTable) xmlFreeIDTable__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_valid
+#undef xmlFreeIDTable
extern __typeof (xmlFreeIDTable) xmlFreeIDTable __attribute((alias("xmlFreeIDTable__internal_alias")));
+#else
+#ifndef xmlFreeIDTable
+extern __typeof (xmlFreeIDTable) xmlFreeIDTable__internal_alias __attribute((visibility("hidden")));
#define xmlFreeIDTable xmlFreeIDTable__internal_alias
+#endif
+#endif
-extern __typeof (xmlFreeInputStream) xmlFreeInputStream__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_parserInternals
+#undef xmlFreeInputStream
extern __typeof (xmlFreeInputStream) xmlFreeInputStream __attribute((alias("xmlFreeInputStream__internal_alias")));
+#else
+#ifndef xmlFreeInputStream
+extern __typeof (xmlFreeInputStream) xmlFreeInputStream__internal_alias __attribute((visibility("hidden")));
#define xmlFreeInputStream xmlFreeInputStream__internal_alias
+#endif
+#endif
-extern __typeof (xmlFreeMutex) xmlFreeMutex__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_threads
+#undef xmlFreeMutex
extern __typeof (xmlFreeMutex) xmlFreeMutex __attribute((alias("xmlFreeMutex__internal_alias")));
+#else
+#ifndef xmlFreeMutex
+extern __typeof (xmlFreeMutex) xmlFreeMutex__internal_alias __attribute((visibility("hidden")));
#define xmlFreeMutex xmlFreeMutex__internal_alias
+#endif
+#endif
-extern __typeof (xmlFreeNode) xmlFreeNode__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_tree
+#undef xmlFreeNode
extern __typeof (xmlFreeNode) xmlFreeNode __attribute((alias("xmlFreeNode__internal_alias")));
+#else
+#ifndef xmlFreeNode
+extern __typeof (xmlFreeNode) xmlFreeNode__internal_alias __attribute((visibility("hidden")));
#define xmlFreeNode xmlFreeNode__internal_alias
+#endif
+#endif
-extern __typeof (xmlFreeNodeList) xmlFreeNodeList__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_tree
+#undef xmlFreeNodeList
extern __typeof (xmlFreeNodeList) xmlFreeNodeList __attribute((alias("xmlFreeNodeList__internal_alias")));
+#else
+#ifndef xmlFreeNodeList
+extern __typeof (xmlFreeNodeList) xmlFreeNodeList__internal_alias __attribute((visibility("hidden")));
#define xmlFreeNodeList xmlFreeNodeList__internal_alias
+#endif
+#endif
-extern __typeof (xmlFreeNotationTable) xmlFreeNotationTable__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_valid
+#undef xmlFreeNotationTable
extern __typeof (xmlFreeNotationTable) xmlFreeNotationTable __attribute((alias("xmlFreeNotationTable__internal_alias")));
+#else
+#ifndef xmlFreeNotationTable
+extern __typeof (xmlFreeNotationTable) xmlFreeNotationTable__internal_alias __attribute((visibility("hidden")));
#define xmlFreeNotationTable xmlFreeNotationTable__internal_alias
+#endif
+#endif
-extern __typeof (xmlFreeNs) xmlFreeNs__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_tree
+#undef xmlFreeNs
extern __typeof (xmlFreeNs) xmlFreeNs __attribute((alias("xmlFreeNs__internal_alias")));
+#else
+#ifndef xmlFreeNs
+extern __typeof (xmlFreeNs) xmlFreeNs__internal_alias __attribute((visibility("hidden")));
#define xmlFreeNs xmlFreeNs__internal_alias
+#endif
+#endif
-extern __typeof (xmlFreeNsList) xmlFreeNsList__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_tree
+#undef xmlFreeNsList
extern __typeof (xmlFreeNsList) xmlFreeNsList __attribute((alias("xmlFreeNsList__internal_alias")));
+#else
+#ifndef xmlFreeNsList
+extern __typeof (xmlFreeNsList) xmlFreeNsList__internal_alias __attribute((visibility("hidden")));
#define xmlFreeNsList xmlFreeNsList__internal_alias
+#endif
+#endif
-extern __typeof (xmlFreeParserCtxt) xmlFreeParserCtxt__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_parserInternals
+#undef xmlFreeParserCtxt
extern __typeof (xmlFreeParserCtxt) xmlFreeParserCtxt __attribute((alias("xmlFreeParserCtxt__internal_alias")));
+#else
+#ifndef xmlFreeParserCtxt
+extern __typeof (xmlFreeParserCtxt) xmlFreeParserCtxt__internal_alias __attribute((visibility("hidden")));
#define xmlFreeParserCtxt xmlFreeParserCtxt__internal_alias
+#endif
+#endif
-extern __typeof (xmlFreeParserInputBuffer) xmlFreeParserInputBuffer__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlIO
+#undef xmlFreeParserInputBuffer
extern __typeof (xmlFreeParserInputBuffer) xmlFreeParserInputBuffer __attribute((alias("xmlFreeParserInputBuffer__internal_alias")));
+#else
+#ifndef xmlFreeParserInputBuffer
+extern __typeof (xmlFreeParserInputBuffer) xmlFreeParserInputBuffer__internal_alias __attribute((visibility("hidden")));
#define xmlFreeParserInputBuffer xmlFreeParserInputBuffer__internal_alias
+#endif
+#endif
#if defined(LIBXML_PATTERN_ENABLED)
-extern __typeof (xmlFreePattern) xmlFreePattern__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_pattern
+#undef xmlFreePattern
extern __typeof (xmlFreePattern) xmlFreePattern __attribute((alias("xmlFreePattern__internal_alias")));
+#else
+#ifndef xmlFreePattern
+extern __typeof (xmlFreePattern) xmlFreePattern__internal_alias __attribute((visibility("hidden")));
#define xmlFreePattern xmlFreePattern__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_PATTERN_ENABLED)
-extern __typeof (xmlFreePatternList) xmlFreePatternList__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_pattern
+#undef xmlFreePatternList
extern __typeof (xmlFreePatternList) xmlFreePatternList __attribute((alias("xmlFreePatternList__internal_alias")));
+#else
+#ifndef xmlFreePatternList
+extern __typeof (xmlFreePatternList) xmlFreePatternList__internal_alias __attribute((visibility("hidden")));
#define xmlFreePatternList xmlFreePatternList__internal_alias
#endif
+#endif
+#endif
-extern __typeof (xmlFreeProp) xmlFreeProp__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_tree
+#undef xmlFreeProp
extern __typeof (xmlFreeProp) xmlFreeProp __attribute((alias("xmlFreeProp__internal_alias")));
+#else
+#ifndef xmlFreeProp
+extern __typeof (xmlFreeProp) xmlFreeProp__internal_alias __attribute((visibility("hidden")));
#define xmlFreeProp xmlFreeProp__internal_alias
+#endif
+#endif
-extern __typeof (xmlFreePropList) xmlFreePropList__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_tree
+#undef xmlFreePropList
extern __typeof (xmlFreePropList) xmlFreePropList __attribute((alias("xmlFreePropList__internal_alias")));
+#else
+#ifndef xmlFreePropList
+extern __typeof (xmlFreePropList) xmlFreePropList__internal_alias __attribute((visibility("hidden")));
#define xmlFreePropList xmlFreePropList__internal_alias
+#endif
+#endif
-extern __typeof (xmlFreeRMutex) xmlFreeRMutex__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_threads
+#undef xmlFreeRMutex
extern __typeof (xmlFreeRMutex) xmlFreeRMutex __attribute((alias("xmlFreeRMutex__internal_alias")));
+#else
+#ifndef xmlFreeRMutex
+extern __typeof (xmlFreeRMutex) xmlFreeRMutex__internal_alias __attribute((visibility("hidden")));
#define xmlFreeRMutex xmlFreeRMutex__internal_alias
+#endif
+#endif
-extern __typeof (xmlFreeRefTable) xmlFreeRefTable__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_valid
+#undef xmlFreeRefTable
extern __typeof (xmlFreeRefTable) xmlFreeRefTable __attribute((alias("xmlFreeRefTable__internal_alias")));
+#else
+#ifndef xmlFreeRefTable
+extern __typeof (xmlFreeRefTable) xmlFreeRefTable__internal_alias __attribute((visibility("hidden")));
#define xmlFreeRefTable xmlFreeRefTable__internal_alias
+#endif
+#endif
#if defined(LIBXML_PATTERN_ENABLED)
-extern __typeof (xmlFreeStreamCtxt) xmlFreeStreamCtxt__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_pattern
+#undef xmlFreeStreamCtxt
extern __typeof (xmlFreeStreamCtxt) xmlFreeStreamCtxt __attribute((alias("xmlFreeStreamCtxt__internal_alias")));
+#else
+#ifndef xmlFreeStreamCtxt
+extern __typeof (xmlFreeStreamCtxt) xmlFreeStreamCtxt__internal_alias __attribute((visibility("hidden")));
#define xmlFreeStreamCtxt xmlFreeStreamCtxt__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_READER_ENABLED)
-extern __typeof (xmlFreeTextReader) xmlFreeTextReader__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlreader
+#undef xmlFreeTextReader
extern __typeof (xmlFreeTextReader) xmlFreeTextReader __attribute((alias("xmlFreeTextReader__internal_alias")));
+#else
+#ifndef xmlFreeTextReader
+extern __typeof (xmlFreeTextReader) xmlFreeTextReader__internal_alias __attribute((visibility("hidden")));
#define xmlFreeTextReader xmlFreeTextReader__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_WRITER_ENABLED)
-extern __typeof (xmlFreeTextWriter) xmlFreeTextWriter__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlwriter
+#undef xmlFreeTextWriter
extern __typeof (xmlFreeTextWriter) xmlFreeTextWriter __attribute((alias("xmlFreeTextWriter__internal_alias")));
+#else
+#ifndef xmlFreeTextWriter
+extern __typeof (xmlFreeTextWriter) xmlFreeTextWriter__internal_alias __attribute((visibility("hidden")));
#define xmlFreeTextWriter xmlFreeTextWriter__internal_alias
#endif
+#endif
+#endif
-extern __typeof (xmlFreeURI) xmlFreeURI__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_uri
+#undef xmlFreeURI
extern __typeof (xmlFreeURI) xmlFreeURI __attribute((alias("xmlFreeURI__internal_alias")));
+#else
+#ifndef xmlFreeURI
+extern __typeof (xmlFreeURI) xmlFreeURI__internal_alias __attribute((visibility("hidden")));
#define xmlFreeURI xmlFreeURI__internal_alias
+#endif
+#endif
#if defined(LIBXML_VALID_ENABLED)
-extern __typeof (xmlFreeValidCtxt) xmlFreeValidCtxt__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_valid
+#undef xmlFreeValidCtxt
extern __typeof (xmlFreeValidCtxt) xmlFreeValidCtxt __attribute((alias("xmlFreeValidCtxt__internal_alias")));
+#else
+#ifndef xmlFreeValidCtxt
+extern __typeof (xmlFreeValidCtxt) xmlFreeValidCtxt__internal_alias __attribute((visibility("hidden")));
#define xmlFreeValidCtxt xmlFreeValidCtxt__internal_alias
#endif
+#endif
+#endif
-extern __typeof (xmlGcMemGet) xmlGcMemGet__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlmemory
+#undef xmlGcMemGet
extern __typeof (xmlGcMemGet) xmlGcMemGet __attribute((alias("xmlGcMemGet__internal_alias")));
+#else
+#ifndef xmlGcMemGet
+extern __typeof (xmlGcMemGet) xmlGcMemGet__internal_alias __attribute((visibility("hidden")));
#define xmlGcMemGet xmlGcMemGet__internal_alias
+#endif
+#endif
-extern __typeof (xmlGcMemSetup) xmlGcMemSetup__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlmemory
+#undef xmlGcMemSetup
extern __typeof (xmlGcMemSetup) xmlGcMemSetup __attribute((alias("xmlGcMemSetup__internal_alias")));
+#else
+#ifndef xmlGcMemSetup
+extern __typeof (xmlGcMemSetup) xmlGcMemSetup__internal_alias __attribute((visibility("hidden")));
#define xmlGcMemSetup xmlGcMemSetup__internal_alias
+#endif
+#endif
-extern __typeof (xmlGetBufferAllocationScheme) xmlGetBufferAllocationScheme__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_tree
+#undef xmlGetBufferAllocationScheme
extern __typeof (xmlGetBufferAllocationScheme) xmlGetBufferAllocationScheme __attribute((alias("xmlGetBufferAllocationScheme__internal_alias")));
+#else
+#ifndef xmlGetBufferAllocationScheme
+extern __typeof (xmlGetBufferAllocationScheme) xmlGetBufferAllocationScheme__internal_alias __attribute((visibility("hidden")));
#define xmlGetBufferAllocationScheme xmlGetBufferAllocationScheme__internal_alias
+#endif
+#endif
-extern __typeof (xmlGetCharEncodingHandler) xmlGetCharEncodingHandler__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_encoding
+#undef xmlGetCharEncodingHandler
extern __typeof (xmlGetCharEncodingHandler) xmlGetCharEncodingHandler __attribute((alias("xmlGetCharEncodingHandler__internal_alias")));
+#else
+#ifndef xmlGetCharEncodingHandler
+extern __typeof (xmlGetCharEncodingHandler) xmlGetCharEncodingHandler__internal_alias __attribute((visibility("hidden")));
#define xmlGetCharEncodingHandler xmlGetCharEncodingHandler__internal_alias
+#endif
+#endif
-extern __typeof (xmlGetCharEncodingName) xmlGetCharEncodingName__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_encoding
+#undef xmlGetCharEncodingName
extern __typeof (xmlGetCharEncodingName) xmlGetCharEncodingName __attribute((alias("xmlGetCharEncodingName__internal_alias")));
+#else
+#ifndef xmlGetCharEncodingName
+extern __typeof (xmlGetCharEncodingName) xmlGetCharEncodingName__internal_alias __attribute((visibility("hidden")));
#define xmlGetCharEncodingName xmlGetCharEncodingName__internal_alias
+#endif
+#endif
-extern __typeof (xmlGetCompressMode) xmlGetCompressMode__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_tree
+#undef xmlGetCompressMode
extern __typeof (xmlGetCompressMode) xmlGetCompressMode __attribute((alias("xmlGetCompressMode__internal_alias")));
+#else
+#ifndef xmlGetCompressMode
+extern __typeof (xmlGetCompressMode) xmlGetCompressMode__internal_alias __attribute((visibility("hidden")));
#define xmlGetCompressMode xmlGetCompressMode__internal_alias
+#endif
+#endif
-extern __typeof (xmlGetDocCompressMode) xmlGetDocCompressMode__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_tree
+#undef xmlGetDocCompressMode
extern __typeof (xmlGetDocCompressMode) xmlGetDocCompressMode __attribute((alias("xmlGetDocCompressMode__internal_alias")));
+#else
+#ifndef xmlGetDocCompressMode
+extern __typeof (xmlGetDocCompressMode) xmlGetDocCompressMode__internal_alias __attribute((visibility("hidden")));
#define xmlGetDocCompressMode xmlGetDocCompressMode__internal_alias
+#endif
+#endif
-extern __typeof (xmlGetDocEntity) xmlGetDocEntity__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_entities
+#undef xmlGetDocEntity
extern __typeof (xmlGetDocEntity) xmlGetDocEntity __attribute((alias("xmlGetDocEntity__internal_alias")));
+#else
+#ifndef xmlGetDocEntity
+extern __typeof (xmlGetDocEntity) xmlGetDocEntity__internal_alias __attribute((visibility("hidden")));
#define xmlGetDocEntity xmlGetDocEntity__internal_alias
+#endif
+#endif
-extern __typeof (xmlGetDtdAttrDesc) xmlGetDtdAttrDesc__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_valid
+#undef xmlGetDtdAttrDesc
extern __typeof (xmlGetDtdAttrDesc) xmlGetDtdAttrDesc __attribute((alias("xmlGetDtdAttrDesc__internal_alias")));
+#else
+#ifndef xmlGetDtdAttrDesc
+extern __typeof (xmlGetDtdAttrDesc) xmlGetDtdAttrDesc__internal_alias __attribute((visibility("hidden")));
#define xmlGetDtdAttrDesc xmlGetDtdAttrDesc__internal_alias
+#endif
+#endif
-extern __typeof (xmlGetDtdElementDesc) xmlGetDtdElementDesc__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_valid
+#undef xmlGetDtdElementDesc
extern __typeof (xmlGetDtdElementDesc) xmlGetDtdElementDesc __attribute((alias("xmlGetDtdElementDesc__internal_alias")));
+#else
+#ifndef xmlGetDtdElementDesc
+extern __typeof (xmlGetDtdElementDesc) xmlGetDtdElementDesc__internal_alias __attribute((visibility("hidden")));
#define xmlGetDtdElementDesc xmlGetDtdElementDesc__internal_alias
+#endif
+#endif
-extern __typeof (xmlGetDtdEntity) xmlGetDtdEntity__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_entities
+#undef xmlGetDtdEntity
extern __typeof (xmlGetDtdEntity) xmlGetDtdEntity __attribute((alias("xmlGetDtdEntity__internal_alias")));
+#else
+#ifndef xmlGetDtdEntity
+extern __typeof (xmlGetDtdEntity) xmlGetDtdEntity__internal_alias __attribute((visibility("hidden")));
#define xmlGetDtdEntity xmlGetDtdEntity__internal_alias
+#endif
+#endif
-extern __typeof (xmlGetDtdNotationDesc) xmlGetDtdNotationDesc__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_valid
+#undef xmlGetDtdNotationDesc
extern __typeof (xmlGetDtdNotationDesc) xmlGetDtdNotationDesc __attribute((alias("xmlGetDtdNotationDesc__internal_alias")));
+#else
+#ifndef xmlGetDtdNotationDesc
+extern __typeof (xmlGetDtdNotationDesc) xmlGetDtdNotationDesc__internal_alias __attribute((visibility("hidden")));
#define xmlGetDtdNotationDesc xmlGetDtdNotationDesc__internal_alias
+#endif
+#endif
-extern __typeof (xmlGetDtdQAttrDesc) xmlGetDtdQAttrDesc__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_valid
+#undef xmlGetDtdQAttrDesc
extern __typeof (xmlGetDtdQAttrDesc) xmlGetDtdQAttrDesc __attribute((alias("xmlGetDtdQAttrDesc__internal_alias")));
+#else
+#ifndef xmlGetDtdQAttrDesc
+extern __typeof (xmlGetDtdQAttrDesc) xmlGetDtdQAttrDesc__internal_alias __attribute((visibility("hidden")));
#define xmlGetDtdQAttrDesc xmlGetDtdQAttrDesc__internal_alias
+#endif
+#endif
-extern __typeof (xmlGetDtdQElementDesc) xmlGetDtdQElementDesc__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_valid
+#undef xmlGetDtdQElementDesc
extern __typeof (xmlGetDtdQElementDesc) xmlGetDtdQElementDesc __attribute((alias("xmlGetDtdQElementDesc__internal_alias")));
+#else
+#ifndef xmlGetDtdQElementDesc
+extern __typeof (xmlGetDtdQElementDesc) xmlGetDtdQElementDesc__internal_alias __attribute((visibility("hidden")));
#define xmlGetDtdQElementDesc xmlGetDtdQElementDesc__internal_alias
+#endif
+#endif
-extern __typeof (xmlGetEncodingAlias) xmlGetEncodingAlias__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_encoding
+#undef xmlGetEncodingAlias
extern __typeof (xmlGetEncodingAlias) xmlGetEncodingAlias __attribute((alias("xmlGetEncodingAlias__internal_alias")));
+#else
+#ifndef xmlGetEncodingAlias
+extern __typeof (xmlGetEncodingAlias) xmlGetEncodingAlias__internal_alias __attribute((visibility("hidden")));
#define xmlGetEncodingAlias xmlGetEncodingAlias__internal_alias
+#endif
+#endif
-extern __typeof (xmlGetExternalEntityLoader) xmlGetExternalEntityLoader__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlIO
+#undef xmlGetExternalEntityLoader
extern __typeof (xmlGetExternalEntityLoader) xmlGetExternalEntityLoader __attribute((alias("xmlGetExternalEntityLoader__internal_alias")));
+#else
+#ifndef xmlGetExternalEntityLoader
+extern __typeof (xmlGetExternalEntityLoader) xmlGetExternalEntityLoader__internal_alias __attribute((visibility("hidden")));
#define xmlGetExternalEntityLoader xmlGetExternalEntityLoader__internal_alias
+#endif
+#endif
#if defined(LIBXML_LEGACY_ENABLED)
-extern __typeof (xmlGetFeature) xmlGetFeature__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_legacy
+#undef xmlGetFeature
extern __typeof (xmlGetFeature) xmlGetFeature __attribute((alias("xmlGetFeature__internal_alias")));
+#else
+#ifndef xmlGetFeature
+extern __typeof (xmlGetFeature) xmlGetFeature__internal_alias __attribute((visibility("hidden")));
#define xmlGetFeature xmlGetFeature__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_LEGACY_ENABLED)
-extern __typeof (xmlGetFeaturesList) xmlGetFeaturesList__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_legacy
+#undef xmlGetFeaturesList
extern __typeof (xmlGetFeaturesList) xmlGetFeaturesList __attribute((alias("xmlGetFeaturesList__internal_alias")));
+#else
+#ifndef xmlGetFeaturesList
+extern __typeof (xmlGetFeaturesList) xmlGetFeaturesList__internal_alias __attribute((visibility("hidden")));
#define xmlGetFeaturesList xmlGetFeaturesList__internal_alias
#endif
+#endif
+#endif
-extern __typeof (xmlGetGlobalState) xmlGetGlobalState__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_threads
+#undef xmlGetGlobalState
extern __typeof (xmlGetGlobalState) xmlGetGlobalState __attribute((alias("xmlGetGlobalState__internal_alias")));
+#else
+#ifndef xmlGetGlobalState
+extern __typeof (xmlGetGlobalState) xmlGetGlobalState__internal_alias __attribute((visibility("hidden")));
#define xmlGetGlobalState xmlGetGlobalState__internal_alias
+#endif
+#endif
-extern __typeof (xmlGetID) xmlGetID__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_valid
+#undef xmlGetID
extern __typeof (xmlGetID) xmlGetID __attribute((alias("xmlGetID__internal_alias")));
+#else
+#ifndef xmlGetID
+extern __typeof (xmlGetID) xmlGetID__internal_alias __attribute((visibility("hidden")));
#define xmlGetID xmlGetID__internal_alias
+#endif
+#endif
-extern __typeof (xmlGetIntSubset) xmlGetIntSubset__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_tree
+#undef xmlGetIntSubset
extern __typeof (xmlGetIntSubset) xmlGetIntSubset __attribute((alias("xmlGetIntSubset__internal_alias")));
+#else
+#ifndef xmlGetIntSubset
+extern __typeof (xmlGetIntSubset) xmlGetIntSubset__internal_alias __attribute((visibility("hidden")));
#define xmlGetIntSubset xmlGetIntSubset__internal_alias
+#endif
+#endif
-extern __typeof (xmlGetLastChild) xmlGetLastChild__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_tree
+#undef xmlGetLastChild
extern __typeof (xmlGetLastChild) xmlGetLastChild __attribute((alias("xmlGetLastChild__internal_alias")));
+#else
+#ifndef xmlGetLastChild
+extern __typeof (xmlGetLastChild) xmlGetLastChild__internal_alias __attribute((visibility("hidden")));
#define xmlGetLastChild xmlGetLastChild__internal_alias
+#endif
+#endif
-extern __typeof (xmlGetLastError) xmlGetLastError__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_error
+#undef xmlGetLastError
extern __typeof (xmlGetLastError) xmlGetLastError __attribute((alias("xmlGetLastError__internal_alias")));
+#else
+#ifndef xmlGetLastError
+extern __typeof (xmlGetLastError) xmlGetLastError__internal_alias __attribute((visibility("hidden")));
#define xmlGetLastError xmlGetLastError__internal_alias
+#endif
+#endif
-extern __typeof (xmlGetLineNo) xmlGetLineNo__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_tree
+#undef xmlGetLineNo
extern __typeof (xmlGetLineNo) xmlGetLineNo __attribute((alias("xmlGetLineNo__internal_alias")));
+#else
+#ifndef xmlGetLineNo
+extern __typeof (xmlGetLineNo) xmlGetLineNo__internal_alias __attribute((visibility("hidden")));
#define xmlGetLineNo xmlGetLineNo__internal_alias
+#endif
+#endif
-extern __typeof (xmlGetNoNsProp) xmlGetNoNsProp__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_tree
+#undef xmlGetNoNsProp
extern __typeof (xmlGetNoNsProp) xmlGetNoNsProp __attribute((alias("xmlGetNoNsProp__internal_alias")));
+#else
+#ifndef xmlGetNoNsProp
+extern __typeof (xmlGetNoNsProp) xmlGetNoNsProp__internal_alias __attribute((visibility("hidden")));
#define xmlGetNoNsProp xmlGetNoNsProp__internal_alias
+#endif
+#endif
#if defined(LIBXML_TREE_ENABLED) || defined(LIBXML_DEBUG_ENABLED)
-extern __typeof (xmlGetNodePath) xmlGetNodePath__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_tree
+#undef xmlGetNodePath
extern __typeof (xmlGetNodePath) xmlGetNodePath __attribute((alias("xmlGetNodePath__internal_alias")));
+#else
+#ifndef xmlGetNodePath
+extern __typeof (xmlGetNodePath) xmlGetNodePath__internal_alias __attribute((visibility("hidden")));
#define xmlGetNodePath xmlGetNodePath__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_TREE_ENABLED) || defined(LIBXML_XPATH_ENABLED)
-extern __typeof (xmlGetNsList) xmlGetNsList__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_tree
+#undef xmlGetNsList
extern __typeof (xmlGetNsList) xmlGetNsList __attribute((alias("xmlGetNsList__internal_alias")));
+#else
+#ifndef xmlGetNsList
+extern __typeof (xmlGetNsList) xmlGetNsList__internal_alias __attribute((visibility("hidden")));
#define xmlGetNsList xmlGetNsList__internal_alias
#endif
+#endif
+#endif
-extern __typeof (xmlGetNsProp) xmlGetNsProp__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_tree
+#undef xmlGetNsProp
extern __typeof (xmlGetNsProp) xmlGetNsProp __attribute((alias("xmlGetNsProp__internal_alias")));
+#else
+#ifndef xmlGetNsProp
+extern __typeof (xmlGetNsProp) xmlGetNsProp__internal_alias __attribute((visibility("hidden")));
#define xmlGetNsProp xmlGetNsProp__internal_alias
+#endif
+#endif
-extern __typeof (xmlGetParameterEntity) xmlGetParameterEntity__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_entities
+#undef xmlGetParameterEntity
extern __typeof (xmlGetParameterEntity) xmlGetParameterEntity __attribute((alias("xmlGetParameterEntity__internal_alias")));
+#else
+#ifndef xmlGetParameterEntity
+extern __typeof (xmlGetParameterEntity) xmlGetParameterEntity__internal_alias __attribute((visibility("hidden")));
#define xmlGetParameterEntity xmlGetParameterEntity__internal_alias
+#endif
+#endif
-extern __typeof (xmlGetPredefinedEntity) xmlGetPredefinedEntity__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_entities
+#undef xmlGetPredefinedEntity
extern __typeof (xmlGetPredefinedEntity) xmlGetPredefinedEntity __attribute((alias("xmlGetPredefinedEntity__internal_alias")));
+#else
+#ifndef xmlGetPredefinedEntity
+extern __typeof (xmlGetPredefinedEntity) xmlGetPredefinedEntity__internal_alias __attribute((visibility("hidden")));
#define xmlGetPredefinedEntity xmlGetPredefinedEntity__internal_alias
+#endif
+#endif
-extern __typeof (xmlGetProp) xmlGetProp__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_tree
+#undef xmlGetProp
extern __typeof (xmlGetProp) xmlGetProp __attribute((alias("xmlGetProp__internal_alias")));
+#else
+#ifndef xmlGetProp
+extern __typeof (xmlGetProp) xmlGetProp__internal_alias __attribute((visibility("hidden")));
#define xmlGetProp xmlGetProp__internal_alias
+#endif
+#endif
-extern __typeof (xmlGetRefs) xmlGetRefs__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_valid
+#undef xmlGetRefs
extern __typeof (xmlGetRefs) xmlGetRefs __attribute((alias("xmlGetRefs__internal_alias")));
+#else
+#ifndef xmlGetRefs
+extern __typeof (xmlGetRefs) xmlGetRefs__internal_alias __attribute((visibility("hidden")));
#define xmlGetRefs xmlGetRefs__internal_alias
+#endif
+#endif
-extern __typeof (xmlGetThreadId) xmlGetThreadId__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_threads
+#undef xmlGetThreadId
extern __typeof (xmlGetThreadId) xmlGetThreadId __attribute((alias("xmlGetThreadId__internal_alias")));
+#else
+#ifndef xmlGetThreadId
+extern __typeof (xmlGetThreadId) xmlGetThreadId__internal_alias __attribute((visibility("hidden")));
#define xmlGetThreadId xmlGetThreadId__internal_alias
+#endif
+#endif
-extern __typeof (xmlGetUTF8Char) xmlGetUTF8Char__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlstring
+#undef xmlGetUTF8Char
extern __typeof (xmlGetUTF8Char) xmlGetUTF8Char __attribute((alias("xmlGetUTF8Char__internal_alias")));
+#else
+#ifndef xmlGetUTF8Char
+extern __typeof (xmlGetUTF8Char) xmlGetUTF8Char__internal_alias __attribute((visibility("hidden")));
#define xmlGetUTF8Char xmlGetUTF8Char__internal_alias
+#endif
+#endif
#if defined(LIBXML_LEGACY_ENABLED)
-extern __typeof (xmlHandleEntity) xmlHandleEntity__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_legacy
+#undef xmlHandleEntity
extern __typeof (xmlHandleEntity) xmlHandleEntity __attribute((alias("xmlHandleEntity__internal_alias")));
+#else
+#ifndef xmlHandleEntity
+extern __typeof (xmlHandleEntity) xmlHandleEntity__internal_alias __attribute((visibility("hidden")));
#define xmlHandleEntity xmlHandleEntity__internal_alias
#endif
+#endif
+#endif
-extern __typeof (xmlHasNsProp) xmlHasNsProp__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_tree
+#undef xmlHasNsProp
extern __typeof (xmlHasNsProp) xmlHasNsProp __attribute((alias("xmlHasNsProp__internal_alias")));
+#else
+#ifndef xmlHasNsProp
+extern __typeof (xmlHasNsProp) xmlHasNsProp__internal_alias __attribute((visibility("hidden")));
#define xmlHasNsProp xmlHasNsProp__internal_alias
+#endif
+#endif
-extern __typeof (xmlHasProp) xmlHasProp__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_tree
+#undef xmlHasProp
extern __typeof (xmlHasProp) xmlHasProp __attribute((alias("xmlHasProp__internal_alias")));
+#else
+#ifndef xmlHasProp
+extern __typeof (xmlHasProp) xmlHasProp__internal_alias __attribute((visibility("hidden")));
#define xmlHasProp xmlHasProp__internal_alias
+#endif
+#endif
-extern __typeof (xmlHashAddEntry) xmlHashAddEntry__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_hash
+#undef xmlHashAddEntry
extern __typeof (xmlHashAddEntry) xmlHashAddEntry __attribute((alias("xmlHashAddEntry__internal_alias")));
+#else
+#ifndef xmlHashAddEntry
+extern __typeof (xmlHashAddEntry) xmlHashAddEntry__internal_alias __attribute((visibility("hidden")));
#define xmlHashAddEntry xmlHashAddEntry__internal_alias
+#endif
+#endif
-extern __typeof (xmlHashAddEntry2) xmlHashAddEntry2__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_hash
+#undef xmlHashAddEntry2
extern __typeof (xmlHashAddEntry2) xmlHashAddEntry2 __attribute((alias("xmlHashAddEntry2__internal_alias")));
+#else
+#ifndef xmlHashAddEntry2
+extern __typeof (xmlHashAddEntry2) xmlHashAddEntry2__internal_alias __attribute((visibility("hidden")));
#define xmlHashAddEntry2 xmlHashAddEntry2__internal_alias
+#endif
+#endif
-extern __typeof (xmlHashAddEntry3) xmlHashAddEntry3__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_hash
+#undef xmlHashAddEntry3
extern __typeof (xmlHashAddEntry3) xmlHashAddEntry3 __attribute((alias("xmlHashAddEntry3__internal_alias")));
+#else
+#ifndef xmlHashAddEntry3
+extern __typeof (xmlHashAddEntry3) xmlHashAddEntry3__internal_alias __attribute((visibility("hidden")));
#define xmlHashAddEntry3 xmlHashAddEntry3__internal_alias
+#endif
+#endif
-extern __typeof (xmlHashCopy) xmlHashCopy__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_hash
+#undef xmlHashCopy
extern __typeof (xmlHashCopy) xmlHashCopy __attribute((alias("xmlHashCopy__internal_alias")));
+#else
+#ifndef xmlHashCopy
+extern __typeof (xmlHashCopy) xmlHashCopy__internal_alias __attribute((visibility("hidden")));
#define xmlHashCopy xmlHashCopy__internal_alias
+#endif
+#endif
-extern __typeof (xmlHashCreate) xmlHashCreate__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_hash
+#undef xmlHashCreate
extern __typeof (xmlHashCreate) xmlHashCreate __attribute((alias("xmlHashCreate__internal_alias")));
+#else
+#ifndef xmlHashCreate
+extern __typeof (xmlHashCreate) xmlHashCreate__internal_alias __attribute((visibility("hidden")));
#define xmlHashCreate xmlHashCreate__internal_alias
+#endif
+#endif
-extern __typeof (xmlHashCreateDict) xmlHashCreateDict__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_hash
+#undef xmlHashCreateDict
extern __typeof (xmlHashCreateDict) xmlHashCreateDict __attribute((alias("xmlHashCreateDict__internal_alias")));
+#else
+#ifndef xmlHashCreateDict
+extern __typeof (xmlHashCreateDict) xmlHashCreateDict__internal_alias __attribute((visibility("hidden")));
#define xmlHashCreateDict xmlHashCreateDict__internal_alias
+#endif
+#endif
-extern __typeof (xmlHashFree) xmlHashFree__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_hash
+#undef xmlHashFree
extern __typeof (xmlHashFree) xmlHashFree __attribute((alias("xmlHashFree__internal_alias")));
+#else
+#ifndef xmlHashFree
+extern __typeof (xmlHashFree) xmlHashFree__internal_alias __attribute((visibility("hidden")));
#define xmlHashFree xmlHashFree__internal_alias
+#endif
+#endif
-extern __typeof (xmlHashLookup) xmlHashLookup__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_hash
+#undef xmlHashLookup
extern __typeof (xmlHashLookup) xmlHashLookup __attribute((alias("xmlHashLookup__internal_alias")));
+#else
+#ifndef xmlHashLookup
+extern __typeof (xmlHashLookup) xmlHashLookup__internal_alias __attribute((visibility("hidden")));
#define xmlHashLookup xmlHashLookup__internal_alias
+#endif
+#endif
-extern __typeof (xmlHashLookup2) xmlHashLookup2__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_hash
+#undef xmlHashLookup2
extern __typeof (xmlHashLookup2) xmlHashLookup2 __attribute((alias("xmlHashLookup2__internal_alias")));
+#else
+#ifndef xmlHashLookup2
+extern __typeof (xmlHashLookup2) xmlHashLookup2__internal_alias __attribute((visibility("hidden")));
#define xmlHashLookup2 xmlHashLookup2__internal_alias
+#endif
+#endif
-extern __typeof (xmlHashLookup3) xmlHashLookup3__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_hash
+#undef xmlHashLookup3
extern __typeof (xmlHashLookup3) xmlHashLookup3 __attribute((alias("xmlHashLookup3__internal_alias")));
+#else
+#ifndef xmlHashLookup3
+extern __typeof (xmlHashLookup3) xmlHashLookup3__internal_alias __attribute((visibility("hidden")));
#define xmlHashLookup3 xmlHashLookup3__internal_alias
+#endif
+#endif
-extern __typeof (xmlHashQLookup) xmlHashQLookup__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_hash
+#undef xmlHashQLookup
extern __typeof (xmlHashQLookup) xmlHashQLookup __attribute((alias("xmlHashQLookup__internal_alias")));
+#else
+#ifndef xmlHashQLookup
+extern __typeof (xmlHashQLookup) xmlHashQLookup__internal_alias __attribute((visibility("hidden")));
#define xmlHashQLookup xmlHashQLookup__internal_alias
+#endif
+#endif
-extern __typeof (xmlHashQLookup2) xmlHashQLookup2__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_hash
+#undef xmlHashQLookup2
extern __typeof (xmlHashQLookup2) xmlHashQLookup2 __attribute((alias("xmlHashQLookup2__internal_alias")));
+#else
+#ifndef xmlHashQLookup2
+extern __typeof (xmlHashQLookup2) xmlHashQLookup2__internal_alias __attribute((visibility("hidden")));
#define xmlHashQLookup2 xmlHashQLookup2__internal_alias
+#endif
+#endif
-extern __typeof (xmlHashQLookup3) xmlHashQLookup3__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_hash
+#undef xmlHashQLookup3
extern __typeof (xmlHashQLookup3) xmlHashQLookup3 __attribute((alias("xmlHashQLookup3__internal_alias")));
+#else
+#ifndef xmlHashQLookup3
+extern __typeof (xmlHashQLookup3) xmlHashQLookup3__internal_alias __attribute((visibility("hidden")));
#define xmlHashQLookup3 xmlHashQLookup3__internal_alias
+#endif
+#endif
-extern __typeof (xmlHashRemoveEntry) xmlHashRemoveEntry__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_hash
+#undef xmlHashRemoveEntry
extern __typeof (xmlHashRemoveEntry) xmlHashRemoveEntry __attribute((alias("xmlHashRemoveEntry__internal_alias")));
+#else
+#ifndef xmlHashRemoveEntry
+extern __typeof (xmlHashRemoveEntry) xmlHashRemoveEntry__internal_alias __attribute((visibility("hidden")));
#define xmlHashRemoveEntry xmlHashRemoveEntry__internal_alias
+#endif
+#endif
-extern __typeof (xmlHashRemoveEntry2) xmlHashRemoveEntry2__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_hash
+#undef xmlHashRemoveEntry2
extern __typeof (xmlHashRemoveEntry2) xmlHashRemoveEntry2 __attribute((alias("xmlHashRemoveEntry2__internal_alias")));
+#else
+#ifndef xmlHashRemoveEntry2
+extern __typeof (xmlHashRemoveEntry2) xmlHashRemoveEntry2__internal_alias __attribute((visibility("hidden")));
#define xmlHashRemoveEntry2 xmlHashRemoveEntry2__internal_alias
+#endif
+#endif
-extern __typeof (xmlHashRemoveEntry3) xmlHashRemoveEntry3__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_hash
+#undef xmlHashRemoveEntry3
extern __typeof (xmlHashRemoveEntry3) xmlHashRemoveEntry3 __attribute((alias("xmlHashRemoveEntry3__internal_alias")));
+#else
+#ifndef xmlHashRemoveEntry3
+extern __typeof (xmlHashRemoveEntry3) xmlHashRemoveEntry3__internal_alias __attribute((visibility("hidden")));
#define xmlHashRemoveEntry3 xmlHashRemoveEntry3__internal_alias
+#endif
+#endif
-extern __typeof (xmlHashScan) xmlHashScan__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_hash
+#undef xmlHashScan
extern __typeof (xmlHashScan) xmlHashScan __attribute((alias("xmlHashScan__internal_alias")));
+#else
+#ifndef xmlHashScan
+extern __typeof (xmlHashScan) xmlHashScan__internal_alias __attribute((visibility("hidden")));
#define xmlHashScan xmlHashScan__internal_alias
+#endif
+#endif
-extern __typeof (xmlHashScan3) xmlHashScan3__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_hash
+#undef xmlHashScan3
extern __typeof (xmlHashScan3) xmlHashScan3 __attribute((alias("xmlHashScan3__internal_alias")));
+#else
+#ifndef xmlHashScan3
+extern __typeof (xmlHashScan3) xmlHashScan3__internal_alias __attribute((visibility("hidden")));
#define xmlHashScan3 xmlHashScan3__internal_alias
+#endif
+#endif
-extern __typeof (xmlHashScanFull) xmlHashScanFull__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_hash
+#undef xmlHashScanFull
extern __typeof (xmlHashScanFull) xmlHashScanFull __attribute((alias("xmlHashScanFull__internal_alias")));
+#else
+#ifndef xmlHashScanFull
+extern __typeof (xmlHashScanFull) xmlHashScanFull__internal_alias __attribute((visibility("hidden")));
#define xmlHashScanFull xmlHashScanFull__internal_alias
+#endif
+#endif
-extern __typeof (xmlHashScanFull3) xmlHashScanFull3__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_hash
+#undef xmlHashScanFull3
extern __typeof (xmlHashScanFull3) xmlHashScanFull3 __attribute((alias("xmlHashScanFull3__internal_alias")));
+#else
+#ifndef xmlHashScanFull3
+extern __typeof (xmlHashScanFull3) xmlHashScanFull3__internal_alias __attribute((visibility("hidden")));
#define xmlHashScanFull3 xmlHashScanFull3__internal_alias
+#endif
+#endif
-extern __typeof (xmlHashSize) xmlHashSize__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_hash
+#undef xmlHashSize
extern __typeof (xmlHashSize) xmlHashSize __attribute((alias("xmlHashSize__internal_alias")));
+#else
+#ifndef xmlHashSize
+extern __typeof (xmlHashSize) xmlHashSize__internal_alias __attribute((visibility("hidden")));
#define xmlHashSize xmlHashSize__internal_alias
+#endif
+#endif
-extern __typeof (xmlHashUpdateEntry) xmlHashUpdateEntry__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_hash
+#undef xmlHashUpdateEntry
extern __typeof (xmlHashUpdateEntry) xmlHashUpdateEntry __attribute((alias("xmlHashUpdateEntry__internal_alias")));
+#else
+#ifndef xmlHashUpdateEntry
+extern __typeof (xmlHashUpdateEntry) xmlHashUpdateEntry__internal_alias __attribute((visibility("hidden")));
#define xmlHashUpdateEntry xmlHashUpdateEntry__internal_alias
+#endif
+#endif
-extern __typeof (xmlHashUpdateEntry2) xmlHashUpdateEntry2__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_hash
+#undef xmlHashUpdateEntry2
extern __typeof (xmlHashUpdateEntry2) xmlHashUpdateEntry2 __attribute((alias("xmlHashUpdateEntry2__internal_alias")));
+#else
+#ifndef xmlHashUpdateEntry2
+extern __typeof (xmlHashUpdateEntry2) xmlHashUpdateEntry2__internal_alias __attribute((visibility("hidden")));
#define xmlHashUpdateEntry2 xmlHashUpdateEntry2__internal_alias
+#endif
+#endif
-extern __typeof (xmlHashUpdateEntry3) xmlHashUpdateEntry3__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_hash
+#undef xmlHashUpdateEntry3
extern __typeof (xmlHashUpdateEntry3) xmlHashUpdateEntry3 __attribute((alias("xmlHashUpdateEntry3__internal_alias")));
+#else
+#ifndef xmlHashUpdateEntry3
+extern __typeof (xmlHashUpdateEntry3) xmlHashUpdateEntry3__internal_alias __attribute((visibility("hidden")));
#define xmlHashUpdateEntry3 xmlHashUpdateEntry3__internal_alias
+#endif
+#endif
#if defined(LIBXML_FTP_ENABLED)
-extern __typeof (xmlIOFTPClose) xmlIOFTPClose__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlIO
+#undef xmlIOFTPClose
extern __typeof (xmlIOFTPClose) xmlIOFTPClose __attribute((alias("xmlIOFTPClose__internal_alias")));
+#else
+#ifndef xmlIOFTPClose
+extern __typeof (xmlIOFTPClose) xmlIOFTPClose__internal_alias __attribute((visibility("hidden")));
#define xmlIOFTPClose xmlIOFTPClose__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_FTP_ENABLED)
-extern __typeof (xmlIOFTPMatch) xmlIOFTPMatch__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlIO
+#undef xmlIOFTPMatch
extern __typeof (xmlIOFTPMatch) xmlIOFTPMatch __attribute((alias("xmlIOFTPMatch__internal_alias")));
+#else
+#ifndef xmlIOFTPMatch
+extern __typeof (xmlIOFTPMatch) xmlIOFTPMatch__internal_alias __attribute((visibility("hidden")));
#define xmlIOFTPMatch xmlIOFTPMatch__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_FTP_ENABLED)
-extern __typeof (xmlIOFTPOpen) xmlIOFTPOpen__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlIO
+#undef xmlIOFTPOpen
extern __typeof (xmlIOFTPOpen) xmlIOFTPOpen __attribute((alias("xmlIOFTPOpen__internal_alias")));
+#else
+#ifndef xmlIOFTPOpen
+extern __typeof (xmlIOFTPOpen) xmlIOFTPOpen__internal_alias __attribute((visibility("hidden")));
#define xmlIOFTPOpen xmlIOFTPOpen__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_FTP_ENABLED)
-extern __typeof (xmlIOFTPRead) xmlIOFTPRead__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlIO
+#undef xmlIOFTPRead
extern __typeof (xmlIOFTPRead) xmlIOFTPRead __attribute((alias("xmlIOFTPRead__internal_alias")));
+#else
+#ifndef xmlIOFTPRead
+extern __typeof (xmlIOFTPRead) xmlIOFTPRead__internal_alias __attribute((visibility("hidden")));
#define xmlIOFTPRead xmlIOFTPRead__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_HTTP_ENABLED)
-extern __typeof (xmlIOHTTPClose) xmlIOHTTPClose__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlIO
+#undef xmlIOHTTPClose
extern __typeof (xmlIOHTTPClose) xmlIOHTTPClose __attribute((alias("xmlIOHTTPClose__internal_alias")));
+#else
+#ifndef xmlIOHTTPClose
+extern __typeof (xmlIOHTTPClose) xmlIOHTTPClose__internal_alias __attribute((visibility("hidden")));
#define xmlIOHTTPClose xmlIOHTTPClose__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_HTTP_ENABLED)
-extern __typeof (xmlIOHTTPMatch) xmlIOHTTPMatch__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlIO
+#undef xmlIOHTTPMatch
extern __typeof (xmlIOHTTPMatch) xmlIOHTTPMatch __attribute((alias("xmlIOHTTPMatch__internal_alias")));
+#else
+#ifndef xmlIOHTTPMatch
+extern __typeof (xmlIOHTTPMatch) xmlIOHTTPMatch__internal_alias __attribute((visibility("hidden")));
#define xmlIOHTTPMatch xmlIOHTTPMatch__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_HTTP_ENABLED)
-extern __typeof (xmlIOHTTPOpen) xmlIOHTTPOpen__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlIO
+#undef xmlIOHTTPOpen
extern __typeof (xmlIOHTTPOpen) xmlIOHTTPOpen __attribute((alias("xmlIOHTTPOpen__internal_alias")));
+#else
+#ifndef xmlIOHTTPOpen
+extern __typeof (xmlIOHTTPOpen) xmlIOHTTPOpen__internal_alias __attribute((visibility("hidden")));
#define xmlIOHTTPOpen xmlIOHTTPOpen__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_HTTP_ENABLED) && defined(LIBXML_OUTPUT_ENABLED)
-extern __typeof (xmlIOHTTPOpenW) xmlIOHTTPOpenW__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlIO
+#undef xmlIOHTTPOpenW
extern __typeof (xmlIOHTTPOpenW) xmlIOHTTPOpenW __attribute((alias("xmlIOHTTPOpenW__internal_alias")));
+#else
+#ifndef xmlIOHTTPOpenW
+extern __typeof (xmlIOHTTPOpenW) xmlIOHTTPOpenW__internal_alias __attribute((visibility("hidden")));
#define xmlIOHTTPOpenW xmlIOHTTPOpenW__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_HTTP_ENABLED)
-extern __typeof (xmlIOHTTPRead) xmlIOHTTPRead__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlIO
+#undef xmlIOHTTPRead
extern __typeof (xmlIOHTTPRead) xmlIOHTTPRead __attribute((alias("xmlIOHTTPRead__internal_alias")));
+#else
+#ifndef xmlIOHTTPRead
+extern __typeof (xmlIOHTTPRead) xmlIOHTTPRead__internal_alias __attribute((visibility("hidden")));
#define xmlIOHTTPRead xmlIOHTTPRead__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_VALID_ENABLED)
-extern __typeof (xmlIOParseDTD) xmlIOParseDTD__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_parser
+#undef xmlIOParseDTD
extern __typeof (xmlIOParseDTD) xmlIOParseDTD __attribute((alias("xmlIOParseDTD__internal_alias")));
+#else
+#ifndef xmlIOParseDTD
+extern __typeof (xmlIOParseDTD) xmlIOParseDTD__internal_alias __attribute((visibility("hidden")));
#define xmlIOParseDTD xmlIOParseDTD__internal_alias
#endif
+#endif
+#endif
-extern __typeof (xmlInitCharEncodingHandlers) xmlInitCharEncodingHandlers__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_encoding
+#undef xmlInitCharEncodingHandlers
extern __typeof (xmlInitCharEncodingHandlers) xmlInitCharEncodingHandlers __attribute((alias("xmlInitCharEncodingHandlers__internal_alias")));
+#else
+#ifndef xmlInitCharEncodingHandlers
+extern __typeof (xmlInitCharEncodingHandlers) xmlInitCharEncodingHandlers__internal_alias __attribute((visibility("hidden")));
#define xmlInitCharEncodingHandlers xmlInitCharEncodingHandlers__internal_alias
+#endif
+#endif
-extern __typeof (xmlInitGlobals) xmlInitGlobals__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_globals
+#undef xmlInitGlobals
extern __typeof (xmlInitGlobals) xmlInitGlobals __attribute((alias("xmlInitGlobals__internal_alias")));
+#else
+#ifndef xmlInitGlobals
+extern __typeof (xmlInitGlobals) xmlInitGlobals__internal_alias __attribute((visibility("hidden")));
#define xmlInitGlobals xmlInitGlobals__internal_alias
+#endif
+#endif
-extern __typeof (xmlInitMemory) xmlInitMemory__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlmemory
+#undef xmlInitMemory
extern __typeof (xmlInitMemory) xmlInitMemory __attribute((alias("xmlInitMemory__internal_alias")));
+#else
+#ifndef xmlInitMemory
+extern __typeof (xmlInitMemory) xmlInitMemory__internal_alias __attribute((visibility("hidden")));
#define xmlInitMemory xmlInitMemory__internal_alias
+#endif
+#endif
-extern __typeof (xmlInitNodeInfoSeq) xmlInitNodeInfoSeq__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_parserInternals
+#undef xmlInitNodeInfoSeq
extern __typeof (xmlInitNodeInfoSeq) xmlInitNodeInfoSeq __attribute((alias("xmlInitNodeInfoSeq__internal_alias")));
+#else
+#ifndef xmlInitNodeInfoSeq
+extern __typeof (xmlInitNodeInfoSeq) xmlInitNodeInfoSeq__internal_alias __attribute((visibility("hidden")));
#define xmlInitNodeInfoSeq xmlInitNodeInfoSeq__internal_alias
+#endif
+#endif
-extern __typeof (xmlInitParser) xmlInitParser__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_parser
+#undef xmlInitParser
extern __typeof (xmlInitParser) xmlInitParser __attribute((alias("xmlInitParser__internal_alias")));
+#else
+#ifndef xmlInitParser
+extern __typeof (xmlInitParser) xmlInitParser__internal_alias __attribute((visibility("hidden")));
#define xmlInitParser xmlInitParser__internal_alias
+#endif
+#endif
-extern __typeof (xmlInitParserCtxt) xmlInitParserCtxt__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_parserInternals
+#undef xmlInitParserCtxt
extern __typeof (xmlInitParserCtxt) xmlInitParserCtxt __attribute((alias("xmlInitParserCtxt__internal_alias")));
+#else
+#ifndef xmlInitParserCtxt
+extern __typeof (xmlInitParserCtxt) xmlInitParserCtxt__internal_alias __attribute((visibility("hidden")));
#define xmlInitParserCtxt xmlInitParserCtxt__internal_alias
+#endif
+#endif
-extern __typeof (xmlInitThreads) xmlInitThreads__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_threads
+#undef xmlInitThreads
extern __typeof (xmlInitThreads) xmlInitThreads __attribute((alias("xmlInitThreads__internal_alias")));
+#else
+#ifndef xmlInitThreads
+extern __typeof (xmlInitThreads) xmlInitThreads__internal_alias __attribute((visibility("hidden")));
#define xmlInitThreads xmlInitThreads__internal_alias
+#endif
+#endif
#if defined(LIBXML_CATALOG_ENABLED)
-extern __typeof (xmlInitializeCatalog) xmlInitializeCatalog__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_catalog
+#undef xmlInitializeCatalog
extern __typeof (xmlInitializeCatalog) xmlInitializeCatalog __attribute((alias("xmlInitializeCatalog__internal_alias")));
+#else
+#ifndef xmlInitializeCatalog
+extern __typeof (xmlInitializeCatalog) xmlInitializeCatalog__internal_alias __attribute((visibility("hidden")));
#define xmlInitializeCatalog xmlInitializeCatalog__internal_alias
#endif
+#endif
+#endif
-extern __typeof (xmlInitializeGlobalState) xmlInitializeGlobalState__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_globals
+#undef xmlInitializeGlobalState
extern __typeof (xmlInitializeGlobalState) xmlInitializeGlobalState __attribute((alias("xmlInitializeGlobalState__internal_alias")));
+#else
+#ifndef xmlInitializeGlobalState
+extern __typeof (xmlInitializeGlobalState) xmlInitializeGlobalState__internal_alias __attribute((visibility("hidden")));
#define xmlInitializeGlobalState xmlInitializeGlobalState__internal_alias
+#endif
+#endif
#if defined(LIBXML_LEGACY_ENABLED)
-extern __typeof (xmlInitializePredefinedEntities) xmlInitializePredefinedEntities__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_legacy
+#undef xmlInitializePredefinedEntities
extern __typeof (xmlInitializePredefinedEntities) xmlInitializePredefinedEntities __attribute((alias("xmlInitializePredefinedEntities__internal_alias")));
+#else
+#ifndef xmlInitializePredefinedEntities
+extern __typeof (xmlInitializePredefinedEntities) xmlInitializePredefinedEntities__internal_alias __attribute((visibility("hidden")));
#define xmlInitializePredefinedEntities xmlInitializePredefinedEntities__internal_alias
#endif
+#endif
+#endif
-extern __typeof (xmlIsBaseChar) xmlIsBaseChar__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_chvalid
+#undef xmlIsBaseChar
extern __typeof (xmlIsBaseChar) xmlIsBaseChar __attribute((alias("xmlIsBaseChar__internal_alias")));
+#else
+#ifndef xmlIsBaseChar
+extern __typeof (xmlIsBaseChar) xmlIsBaseChar__internal_alias __attribute((visibility("hidden")));
#define xmlIsBaseChar xmlIsBaseChar__internal_alias
+#endif
+#endif
-extern __typeof (xmlIsBlank) xmlIsBlank__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_chvalid
+#undef xmlIsBlank
extern __typeof (xmlIsBlank) xmlIsBlank __attribute((alias("xmlIsBlank__internal_alias")));
+#else
+#ifndef xmlIsBlank
+extern __typeof (xmlIsBlank) xmlIsBlank__internal_alias __attribute((visibility("hidden")));
#define xmlIsBlank xmlIsBlank__internal_alias
+#endif
+#endif
-extern __typeof (xmlIsBlankNode) xmlIsBlankNode__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_tree
+#undef xmlIsBlankNode
extern __typeof (xmlIsBlankNode) xmlIsBlankNode __attribute((alias("xmlIsBlankNode__internal_alias")));
+#else
+#ifndef xmlIsBlankNode
+extern __typeof (xmlIsBlankNode) xmlIsBlankNode__internal_alias __attribute((visibility("hidden")));
#define xmlIsBlankNode xmlIsBlankNode__internal_alias
+#endif
+#endif
-extern __typeof (xmlIsChar) xmlIsChar__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_chvalid
+#undef xmlIsChar
extern __typeof (xmlIsChar) xmlIsChar __attribute((alias("xmlIsChar__internal_alias")));
+#else
+#ifndef xmlIsChar
+extern __typeof (xmlIsChar) xmlIsChar__internal_alias __attribute((visibility("hidden")));
#define xmlIsChar xmlIsChar__internal_alias
+#endif
+#endif
-extern __typeof (xmlIsCombining) xmlIsCombining__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_chvalid
+#undef xmlIsCombining
extern __typeof (xmlIsCombining) xmlIsCombining __attribute((alias("xmlIsCombining__internal_alias")));
+#else
+#ifndef xmlIsCombining
+extern __typeof (xmlIsCombining) xmlIsCombining__internal_alias __attribute((visibility("hidden")));
#define xmlIsCombining xmlIsCombining__internal_alias
+#endif
+#endif
-extern __typeof (xmlIsDigit) xmlIsDigit__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_chvalid
+#undef xmlIsDigit
extern __typeof (xmlIsDigit) xmlIsDigit __attribute((alias("xmlIsDigit__internal_alias")));
+#else
+#ifndef xmlIsDigit
+extern __typeof (xmlIsDigit) xmlIsDigit__internal_alias __attribute((visibility("hidden")));
#define xmlIsDigit xmlIsDigit__internal_alias
+#endif
+#endif
-extern __typeof (xmlIsExtender) xmlIsExtender__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_chvalid
+#undef xmlIsExtender
extern __typeof (xmlIsExtender) xmlIsExtender __attribute((alias("xmlIsExtender__internal_alias")));
+#else
+#ifndef xmlIsExtender
+extern __typeof (xmlIsExtender) xmlIsExtender__internal_alias __attribute((visibility("hidden")));
#define xmlIsExtender xmlIsExtender__internal_alias
+#endif
+#endif
-extern __typeof (xmlIsID) xmlIsID__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_valid
+#undef xmlIsID
extern __typeof (xmlIsID) xmlIsID __attribute((alias("xmlIsID__internal_alias")));
+#else
+#ifndef xmlIsID
+extern __typeof (xmlIsID) xmlIsID__internal_alias __attribute((visibility("hidden")));
#define xmlIsID xmlIsID__internal_alias
+#endif
+#endif
-extern __typeof (xmlIsIdeographic) xmlIsIdeographic__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_chvalid
+#undef xmlIsIdeographic
extern __typeof (xmlIsIdeographic) xmlIsIdeographic __attribute((alias("xmlIsIdeographic__internal_alias")));
+#else
+#ifndef xmlIsIdeographic
+extern __typeof (xmlIsIdeographic) xmlIsIdeographic__internal_alias __attribute((visibility("hidden")));
#define xmlIsIdeographic xmlIsIdeographic__internal_alias
+#endif
+#endif
-extern __typeof (xmlIsLetter) xmlIsLetter__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_parserInternals
+#undef xmlIsLetter
extern __typeof (xmlIsLetter) xmlIsLetter __attribute((alias("xmlIsLetter__internal_alias")));
+#else
+#ifndef xmlIsLetter
+extern __typeof (xmlIsLetter) xmlIsLetter__internal_alias __attribute((visibility("hidden")));
#define xmlIsLetter xmlIsLetter__internal_alias
+#endif
+#endif
-extern __typeof (xmlIsMainThread) xmlIsMainThread__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_threads
+#undef xmlIsMainThread
extern __typeof (xmlIsMainThread) xmlIsMainThread __attribute((alias("xmlIsMainThread__internal_alias")));
+#else
+#ifndef xmlIsMainThread
+extern __typeof (xmlIsMainThread) xmlIsMainThread__internal_alias __attribute((visibility("hidden")));
#define xmlIsMainThread xmlIsMainThread__internal_alias
+#endif
+#endif
-extern __typeof (xmlIsMixedElement) xmlIsMixedElement__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_valid
+#undef xmlIsMixedElement
extern __typeof (xmlIsMixedElement) xmlIsMixedElement __attribute((alias("xmlIsMixedElement__internal_alias")));
+#else
+#ifndef xmlIsMixedElement
+extern __typeof (xmlIsMixedElement) xmlIsMixedElement__internal_alias __attribute((visibility("hidden")));
#define xmlIsMixedElement xmlIsMixedElement__internal_alias
+#endif
+#endif
-extern __typeof (xmlIsPubidChar) xmlIsPubidChar__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_chvalid
+#undef xmlIsPubidChar
extern __typeof (xmlIsPubidChar) xmlIsPubidChar __attribute((alias("xmlIsPubidChar__internal_alias")));
+#else
+#ifndef xmlIsPubidChar
+extern __typeof (xmlIsPubidChar) xmlIsPubidChar__internal_alias __attribute((visibility("hidden")));
#define xmlIsPubidChar xmlIsPubidChar__internal_alias
+#endif
+#endif
-extern __typeof (xmlIsRef) xmlIsRef__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_valid
+#undef xmlIsRef
extern __typeof (xmlIsRef) xmlIsRef __attribute((alias("xmlIsRef__internal_alias")));
+#else
+#ifndef xmlIsRef
+extern __typeof (xmlIsRef) xmlIsRef__internal_alias __attribute((visibility("hidden")));
#define xmlIsRef xmlIsRef__internal_alias
+#endif
+#endif
-extern __typeof (xmlIsXHTML) xmlIsXHTML__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlsave
+#undef xmlIsXHTML
extern __typeof (xmlIsXHTML) xmlIsXHTML __attribute((alias("xmlIsXHTML__internal_alias")));
+#else
+#ifndef xmlIsXHTML
+extern __typeof (xmlIsXHTML) xmlIsXHTML__internal_alias __attribute((visibility("hidden")));
#define xmlIsXHTML xmlIsXHTML__internal_alias
+#endif
+#endif
-extern __typeof (xmlKeepBlanksDefault) xmlKeepBlanksDefault__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_parserInternals
+#undef xmlKeepBlanksDefault
extern __typeof (xmlKeepBlanksDefault) xmlKeepBlanksDefault __attribute((alias("xmlKeepBlanksDefault__internal_alias")));
+#else
+#ifndef xmlKeepBlanksDefault
+extern __typeof (xmlKeepBlanksDefault) xmlKeepBlanksDefault__internal_alias __attribute((visibility("hidden")));
#define xmlKeepBlanksDefault xmlKeepBlanksDefault__internal_alias
+#endif
+#endif
-extern __typeof (xmlLineNumbersDefault) xmlLineNumbersDefault__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_parserInternals
+#undef xmlLineNumbersDefault
extern __typeof (xmlLineNumbersDefault) xmlLineNumbersDefault __attribute((alias("xmlLineNumbersDefault__internal_alias")));
+#else
+#ifndef xmlLineNumbersDefault
+extern __typeof (xmlLineNumbersDefault) xmlLineNumbersDefault__internal_alias __attribute((visibility("hidden")));
#define xmlLineNumbersDefault xmlLineNumbersDefault__internal_alias
+#endif
+#endif
-extern __typeof (xmlLinkGetData) xmlLinkGetData__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_list
+#undef xmlLinkGetData
extern __typeof (xmlLinkGetData) xmlLinkGetData __attribute((alias("xmlLinkGetData__internal_alias")));
+#else
+#ifndef xmlLinkGetData
+extern __typeof (xmlLinkGetData) xmlLinkGetData__internal_alias __attribute((visibility("hidden")));
#define xmlLinkGetData xmlLinkGetData__internal_alias
+#endif
+#endif
-extern __typeof (xmlListAppend) xmlListAppend__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_list
+#undef xmlListAppend
extern __typeof (xmlListAppend) xmlListAppend __attribute((alias("xmlListAppend__internal_alias")));
+#else
+#ifndef xmlListAppend
+extern __typeof (xmlListAppend) xmlListAppend__internal_alias __attribute((visibility("hidden")));
#define xmlListAppend xmlListAppend__internal_alias
+#endif
+#endif
-extern __typeof (xmlListClear) xmlListClear__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_list
+#undef xmlListClear
extern __typeof (xmlListClear) xmlListClear __attribute((alias("xmlListClear__internal_alias")));
+#else
+#ifndef xmlListClear
+extern __typeof (xmlListClear) xmlListClear__internal_alias __attribute((visibility("hidden")));
#define xmlListClear xmlListClear__internal_alias
+#endif
+#endif
-extern __typeof (xmlListCopy) xmlListCopy__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_list
+#undef xmlListCopy
extern __typeof (xmlListCopy) xmlListCopy __attribute((alias("xmlListCopy__internal_alias")));
+#else
+#ifndef xmlListCopy
+extern __typeof (xmlListCopy) xmlListCopy__internal_alias __attribute((visibility("hidden")));
#define xmlListCopy xmlListCopy__internal_alias
+#endif
+#endif
-extern __typeof (xmlListCreate) xmlListCreate__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_list
+#undef xmlListCreate
extern __typeof (xmlListCreate) xmlListCreate __attribute((alias("xmlListCreate__internal_alias")));
+#else
+#ifndef xmlListCreate
+extern __typeof (xmlListCreate) xmlListCreate__internal_alias __attribute((visibility("hidden")));
#define xmlListCreate xmlListCreate__internal_alias
+#endif
+#endif
-extern __typeof (xmlListDelete) xmlListDelete__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_list
+#undef xmlListDelete
extern __typeof (xmlListDelete) xmlListDelete __attribute((alias("xmlListDelete__internal_alias")));
+#else
+#ifndef xmlListDelete
+extern __typeof (xmlListDelete) xmlListDelete__internal_alias __attribute((visibility("hidden")));
#define xmlListDelete xmlListDelete__internal_alias
+#endif
+#endif
-extern __typeof (xmlListDup) xmlListDup__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_list
+#undef xmlListDup
extern __typeof (xmlListDup) xmlListDup __attribute((alias("xmlListDup__internal_alias")));
+#else
+#ifndef xmlListDup
+extern __typeof (xmlListDup) xmlListDup__internal_alias __attribute((visibility("hidden")));
#define xmlListDup xmlListDup__internal_alias
+#endif
+#endif
-extern __typeof (xmlListEmpty) xmlListEmpty__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_list
+#undef xmlListEmpty
extern __typeof (xmlListEmpty) xmlListEmpty __attribute((alias("xmlListEmpty__internal_alias")));
+#else
+#ifndef xmlListEmpty
+extern __typeof (xmlListEmpty) xmlListEmpty__internal_alias __attribute((visibility("hidden")));
#define xmlListEmpty xmlListEmpty__internal_alias
+#endif
+#endif
-extern __typeof (xmlListEnd) xmlListEnd__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_list
+#undef xmlListEnd
extern __typeof (xmlListEnd) xmlListEnd __attribute((alias("xmlListEnd__internal_alias")));
+#else
+#ifndef xmlListEnd
+extern __typeof (xmlListEnd) xmlListEnd__internal_alias __attribute((visibility("hidden")));
#define xmlListEnd xmlListEnd__internal_alias
+#endif
+#endif
-extern __typeof (xmlListFront) xmlListFront__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_list
+#undef xmlListFront
extern __typeof (xmlListFront) xmlListFront __attribute((alias("xmlListFront__internal_alias")));
+#else
+#ifndef xmlListFront
+extern __typeof (xmlListFront) xmlListFront__internal_alias __attribute((visibility("hidden")));
#define xmlListFront xmlListFront__internal_alias
+#endif
+#endif
-extern __typeof (xmlListInsert) xmlListInsert__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_list
+#undef xmlListInsert
extern __typeof (xmlListInsert) xmlListInsert __attribute((alias("xmlListInsert__internal_alias")));
+#else
+#ifndef xmlListInsert
+extern __typeof (xmlListInsert) xmlListInsert__internal_alias __attribute((visibility("hidden")));
#define xmlListInsert xmlListInsert__internal_alias
+#endif
+#endif
-extern __typeof (xmlListMerge) xmlListMerge__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_list
+#undef xmlListMerge
extern __typeof (xmlListMerge) xmlListMerge __attribute((alias("xmlListMerge__internal_alias")));
+#else
+#ifndef xmlListMerge
+extern __typeof (xmlListMerge) xmlListMerge__internal_alias __attribute((visibility("hidden")));
#define xmlListMerge xmlListMerge__internal_alias
+#endif
+#endif
-extern __typeof (xmlListPopBack) xmlListPopBack__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_list
+#undef xmlListPopBack
extern __typeof (xmlListPopBack) xmlListPopBack __attribute((alias("xmlListPopBack__internal_alias")));
+#else
+#ifndef xmlListPopBack
+extern __typeof (xmlListPopBack) xmlListPopBack__internal_alias __attribute((visibility("hidden")));
#define xmlListPopBack xmlListPopBack__internal_alias
+#endif
+#endif
-extern __typeof (xmlListPopFront) xmlListPopFront__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_list
+#undef xmlListPopFront
extern __typeof (xmlListPopFront) xmlListPopFront __attribute((alias("xmlListPopFront__internal_alias")));
+#else
+#ifndef xmlListPopFront
+extern __typeof (xmlListPopFront) xmlListPopFront__internal_alias __attribute((visibility("hidden")));
#define xmlListPopFront xmlListPopFront__internal_alias
+#endif
+#endif
-extern __typeof (xmlListPushBack) xmlListPushBack__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_list
+#undef xmlListPushBack
extern __typeof (xmlListPushBack) xmlListPushBack __attribute((alias("xmlListPushBack__internal_alias")));
+#else
+#ifndef xmlListPushBack
+extern __typeof (xmlListPushBack) xmlListPushBack__internal_alias __attribute((visibility("hidden")));
#define xmlListPushBack xmlListPushBack__internal_alias
+#endif
+#endif
-extern __typeof (xmlListPushFront) xmlListPushFront__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_list
+#undef xmlListPushFront
extern __typeof (xmlListPushFront) xmlListPushFront __attribute((alias("xmlListPushFront__internal_alias")));
+#else
+#ifndef xmlListPushFront
+extern __typeof (xmlListPushFront) xmlListPushFront__internal_alias __attribute((visibility("hidden")));
#define xmlListPushFront xmlListPushFront__internal_alias
+#endif
+#endif
-extern __typeof (xmlListRemoveAll) xmlListRemoveAll__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_list
+#undef xmlListRemoveAll
extern __typeof (xmlListRemoveAll) xmlListRemoveAll __attribute((alias("xmlListRemoveAll__internal_alias")));
+#else
+#ifndef xmlListRemoveAll
+extern __typeof (xmlListRemoveAll) xmlListRemoveAll__internal_alias __attribute((visibility("hidden")));
#define xmlListRemoveAll xmlListRemoveAll__internal_alias
+#endif
+#endif
-extern __typeof (xmlListRemoveFirst) xmlListRemoveFirst__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_list
+#undef xmlListRemoveFirst
extern __typeof (xmlListRemoveFirst) xmlListRemoveFirst __attribute((alias("xmlListRemoveFirst__internal_alias")));
+#else
+#ifndef xmlListRemoveFirst
+extern __typeof (xmlListRemoveFirst) xmlListRemoveFirst__internal_alias __attribute((visibility("hidden")));
#define xmlListRemoveFirst xmlListRemoveFirst__internal_alias
+#endif
+#endif
-extern __typeof (xmlListRemoveLast) xmlListRemoveLast__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_list
+#undef xmlListRemoveLast
extern __typeof (xmlListRemoveLast) xmlListRemoveLast __attribute((alias("xmlListRemoveLast__internal_alias")));
+#else
+#ifndef xmlListRemoveLast
+extern __typeof (xmlListRemoveLast) xmlListRemoveLast__internal_alias __attribute((visibility("hidden")));
#define xmlListRemoveLast xmlListRemoveLast__internal_alias
+#endif
+#endif
-extern __typeof (xmlListReverse) xmlListReverse__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_list
+#undef xmlListReverse
extern __typeof (xmlListReverse) xmlListReverse __attribute((alias("xmlListReverse__internal_alias")));
+#else
+#ifndef xmlListReverse
+extern __typeof (xmlListReverse) xmlListReverse__internal_alias __attribute((visibility("hidden")));
#define xmlListReverse xmlListReverse__internal_alias
+#endif
+#endif
-extern __typeof (xmlListReverseSearch) xmlListReverseSearch__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_list
+#undef xmlListReverseSearch
extern __typeof (xmlListReverseSearch) xmlListReverseSearch __attribute((alias("xmlListReverseSearch__internal_alias")));
+#else
+#ifndef xmlListReverseSearch
+extern __typeof (xmlListReverseSearch) xmlListReverseSearch__internal_alias __attribute((visibility("hidden")));
#define xmlListReverseSearch xmlListReverseSearch__internal_alias
+#endif
+#endif
-extern __typeof (xmlListReverseWalk) xmlListReverseWalk__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_list
+#undef xmlListReverseWalk
extern __typeof (xmlListReverseWalk) xmlListReverseWalk __attribute((alias("xmlListReverseWalk__internal_alias")));
+#else
+#ifndef xmlListReverseWalk
+extern __typeof (xmlListReverseWalk) xmlListReverseWalk__internal_alias __attribute((visibility("hidden")));
#define xmlListReverseWalk xmlListReverseWalk__internal_alias
+#endif
+#endif
-extern __typeof (xmlListSearch) xmlListSearch__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_list
+#undef xmlListSearch
extern __typeof (xmlListSearch) xmlListSearch __attribute((alias("xmlListSearch__internal_alias")));
+#else
+#ifndef xmlListSearch
+extern __typeof (xmlListSearch) xmlListSearch__internal_alias __attribute((visibility("hidden")));
#define xmlListSearch xmlListSearch__internal_alias
+#endif
+#endif
-extern __typeof (xmlListSize) xmlListSize__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_list
+#undef xmlListSize
extern __typeof (xmlListSize) xmlListSize __attribute((alias("xmlListSize__internal_alias")));
+#else
+#ifndef xmlListSize
+extern __typeof (xmlListSize) xmlListSize__internal_alias __attribute((visibility("hidden")));
#define xmlListSize xmlListSize__internal_alias
+#endif
+#endif
-extern __typeof (xmlListSort) xmlListSort__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_list
+#undef xmlListSort
extern __typeof (xmlListSort) xmlListSort __attribute((alias("xmlListSort__internal_alias")));
+#else
+#ifndef xmlListSort
+extern __typeof (xmlListSort) xmlListSort__internal_alias __attribute((visibility("hidden")));
#define xmlListSort xmlListSort__internal_alias
+#endif
+#endif
-extern __typeof (xmlListWalk) xmlListWalk__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_list
+#undef xmlListWalk
extern __typeof (xmlListWalk) xmlListWalk __attribute((alias("xmlListWalk__internal_alias")));
+#else
+#ifndef xmlListWalk
+extern __typeof (xmlListWalk) xmlListWalk__internal_alias __attribute((visibility("hidden")));
#define xmlListWalk xmlListWalk__internal_alias
+#endif
+#endif
#if defined(LIBXML_CATALOG_ENABLED)
-extern __typeof (xmlLoadACatalog) xmlLoadACatalog__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_catalog
+#undef xmlLoadACatalog
extern __typeof (xmlLoadACatalog) xmlLoadACatalog __attribute((alias("xmlLoadACatalog__internal_alias")));
+#else
+#ifndef xmlLoadACatalog
+extern __typeof (xmlLoadACatalog) xmlLoadACatalog__internal_alias __attribute((visibility("hidden")));
#define xmlLoadACatalog xmlLoadACatalog__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_CATALOG_ENABLED)
-extern __typeof (xmlLoadCatalog) xmlLoadCatalog__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_catalog
+#undef xmlLoadCatalog
extern __typeof (xmlLoadCatalog) xmlLoadCatalog __attribute((alias("xmlLoadCatalog__internal_alias")));
+#else
+#ifndef xmlLoadCatalog
+extern __typeof (xmlLoadCatalog) xmlLoadCatalog__internal_alias __attribute((visibility("hidden")));
#define xmlLoadCatalog xmlLoadCatalog__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_CATALOG_ENABLED)
-extern __typeof (xmlLoadCatalogs) xmlLoadCatalogs__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_catalog
+#undef xmlLoadCatalogs
extern __typeof (xmlLoadCatalogs) xmlLoadCatalogs __attribute((alias("xmlLoadCatalogs__internal_alias")));
+#else
+#ifndef xmlLoadCatalogs
+extern __typeof (xmlLoadCatalogs) xmlLoadCatalogs__internal_alias __attribute((visibility("hidden")));
#define xmlLoadCatalogs xmlLoadCatalogs__internal_alias
#endif
+#endif
+#endif
-extern __typeof (xmlLoadExternalEntity) xmlLoadExternalEntity__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlIO
+#undef xmlLoadExternalEntity
extern __typeof (xmlLoadExternalEntity) xmlLoadExternalEntity __attribute((alias("xmlLoadExternalEntity__internal_alias")));
+#else
+#ifndef xmlLoadExternalEntity
+extern __typeof (xmlLoadExternalEntity) xmlLoadExternalEntity__internal_alias __attribute((visibility("hidden")));
#define xmlLoadExternalEntity xmlLoadExternalEntity__internal_alias
+#endif
+#endif
#if defined(LIBXML_CATALOG_ENABLED)
-extern __typeof (xmlLoadSGMLSuperCatalog) xmlLoadSGMLSuperCatalog__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_catalog
+#undef xmlLoadSGMLSuperCatalog
extern __typeof (xmlLoadSGMLSuperCatalog) xmlLoadSGMLSuperCatalog __attribute((alias("xmlLoadSGMLSuperCatalog__internal_alias")));
+#else
+#ifndef xmlLoadSGMLSuperCatalog
+extern __typeof (xmlLoadSGMLSuperCatalog) xmlLoadSGMLSuperCatalog__internal_alias __attribute((visibility("hidden")));
#define xmlLoadSGMLSuperCatalog xmlLoadSGMLSuperCatalog__internal_alias
#endif
+#endif
+#endif
-extern __typeof (xmlLockLibrary) xmlLockLibrary__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_threads
+#undef xmlLockLibrary
extern __typeof (xmlLockLibrary) xmlLockLibrary __attribute((alias("xmlLockLibrary__internal_alias")));
+#else
+#ifndef xmlLockLibrary
+extern __typeof (xmlLockLibrary) xmlLockLibrary__internal_alias __attribute((visibility("hidden")));
#define xmlLockLibrary xmlLockLibrary__internal_alias
+#endif
+#endif
#if defined(LIBXML_DEBUG_ENABLED)
-extern __typeof (xmlLsCountNode) xmlLsCountNode__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_debugXML
+#undef xmlLsCountNode
extern __typeof (xmlLsCountNode) xmlLsCountNode __attribute((alias("xmlLsCountNode__internal_alias")));
+#else
+#ifndef xmlLsCountNode
+extern __typeof (xmlLsCountNode) xmlLsCountNode__internal_alias __attribute((visibility("hidden")));
#define xmlLsCountNode xmlLsCountNode__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_DEBUG_ENABLED)
-extern __typeof (xmlLsOneNode) xmlLsOneNode__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_debugXML
+#undef xmlLsOneNode
extern __typeof (xmlLsOneNode) xmlLsOneNode __attribute((alias("xmlLsOneNode__internal_alias")));
+#else
+#ifndef xmlLsOneNode
+extern __typeof (xmlLsOneNode) xmlLsOneNode__internal_alias __attribute((visibility("hidden")));
#define xmlLsOneNode xmlLsOneNode__internal_alias
#endif
+#endif
+#endif
-extern __typeof (xmlMallocAtomicLoc) xmlMallocAtomicLoc__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlmemory
+#undef xmlMallocAtomicLoc
extern __typeof (xmlMallocAtomicLoc) xmlMallocAtomicLoc __attribute((alias("xmlMallocAtomicLoc__internal_alias")));
+#else
+#ifndef xmlMallocAtomicLoc
+extern __typeof (xmlMallocAtomicLoc) xmlMallocAtomicLoc__internal_alias __attribute((visibility("hidden")));
#define xmlMallocAtomicLoc xmlMallocAtomicLoc__internal_alias
+#endif
+#endif
-extern __typeof (xmlMallocLoc) xmlMallocLoc__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlmemory
+#undef xmlMallocLoc
extern __typeof (xmlMallocLoc) xmlMallocLoc __attribute((alias("xmlMallocLoc__internal_alias")));
+#else
+#ifndef xmlMallocLoc
+extern __typeof (xmlMallocLoc) xmlMallocLoc__internal_alias __attribute((visibility("hidden")));
#define xmlMallocLoc xmlMallocLoc__internal_alias
+#endif
+#endif
-extern __typeof (xmlMemBlocks) xmlMemBlocks__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlmemory
+#undef xmlMemBlocks
extern __typeof (xmlMemBlocks) xmlMemBlocks __attribute((alias("xmlMemBlocks__internal_alias")));
+#else
+#ifndef xmlMemBlocks
+extern __typeof (xmlMemBlocks) xmlMemBlocks__internal_alias __attribute((visibility("hidden")));
#define xmlMemBlocks xmlMemBlocks__internal_alias
+#endif
+#endif
-extern __typeof (xmlMemDisplay) xmlMemDisplay__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlmemory
+#undef xmlMemDisplay
extern __typeof (xmlMemDisplay) xmlMemDisplay __attribute((alias("xmlMemDisplay__internal_alias")));
+#else
+#ifndef xmlMemDisplay
+extern __typeof (xmlMemDisplay) xmlMemDisplay__internal_alias __attribute((visibility("hidden")));
#define xmlMemDisplay xmlMemDisplay__internal_alias
+#endif
+#endif
-extern __typeof (xmlMemFree) xmlMemFree__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlmemory
+#undef xmlMemFree
extern __typeof (xmlMemFree) xmlMemFree __attribute((alias("xmlMemFree__internal_alias")));
+#else
+#ifndef xmlMemFree
+extern __typeof (xmlMemFree) xmlMemFree__internal_alias __attribute((visibility("hidden")));
#define xmlMemFree xmlMemFree__internal_alias
+#endif
+#endif
-extern __typeof (xmlMemGet) xmlMemGet__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlmemory
+#undef xmlMemGet
extern __typeof (xmlMemGet) xmlMemGet __attribute((alias("xmlMemGet__internal_alias")));
+#else
+#ifndef xmlMemGet
+extern __typeof (xmlMemGet) xmlMemGet__internal_alias __attribute((visibility("hidden")));
#define xmlMemGet xmlMemGet__internal_alias
+#endif
+#endif
-extern __typeof (xmlMemMalloc) xmlMemMalloc__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlmemory
+#undef xmlMemMalloc
extern __typeof (xmlMemMalloc) xmlMemMalloc __attribute((alias("xmlMemMalloc__internal_alias")));
+#else
+#ifndef xmlMemMalloc
+extern __typeof (xmlMemMalloc) xmlMemMalloc__internal_alias __attribute((visibility("hidden")));
#define xmlMemMalloc xmlMemMalloc__internal_alias
+#endif
+#endif
-extern __typeof (xmlMemRealloc) xmlMemRealloc__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlmemory
+#undef xmlMemRealloc
extern __typeof (xmlMemRealloc) xmlMemRealloc __attribute((alias("xmlMemRealloc__internal_alias")));
+#else
+#ifndef xmlMemRealloc
+extern __typeof (xmlMemRealloc) xmlMemRealloc__internal_alias __attribute((visibility("hidden")));
#define xmlMemRealloc xmlMemRealloc__internal_alias
+#endif
+#endif
-extern __typeof (xmlMemSetup) xmlMemSetup__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlmemory
+#undef xmlMemSetup
extern __typeof (xmlMemSetup) xmlMemSetup __attribute((alias("xmlMemSetup__internal_alias")));
+#else
+#ifndef xmlMemSetup
+extern __typeof (xmlMemSetup) xmlMemSetup__internal_alias __attribute((visibility("hidden")));
#define xmlMemSetup xmlMemSetup__internal_alias
+#endif
+#endif
-extern __typeof (xmlMemShow) xmlMemShow__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlmemory
+#undef xmlMemShow
extern __typeof (xmlMemShow) xmlMemShow __attribute((alias("xmlMemShow__internal_alias")));
+#else
+#ifndef xmlMemShow
+extern __typeof (xmlMemShow) xmlMemShow__internal_alias __attribute((visibility("hidden")));
#define xmlMemShow xmlMemShow__internal_alias
+#endif
+#endif
-extern __typeof (xmlMemStrdupLoc) xmlMemStrdupLoc__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlmemory
+#undef xmlMemStrdupLoc
extern __typeof (xmlMemStrdupLoc) xmlMemStrdupLoc __attribute((alias("xmlMemStrdupLoc__internal_alias")));
+#else
+#ifndef xmlMemStrdupLoc
+extern __typeof (xmlMemStrdupLoc) xmlMemStrdupLoc__internal_alias __attribute((visibility("hidden")));
#define xmlMemStrdupLoc xmlMemStrdupLoc__internal_alias
+#endif
+#endif
-extern __typeof (xmlMemUsed) xmlMemUsed__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlmemory
+#undef xmlMemUsed
extern __typeof (xmlMemUsed) xmlMemUsed __attribute((alias("xmlMemUsed__internal_alias")));
+#else
+#ifndef xmlMemUsed
+extern __typeof (xmlMemUsed) xmlMemUsed__internal_alias __attribute((visibility("hidden")));
#define xmlMemUsed xmlMemUsed__internal_alias
+#endif
+#endif
-extern __typeof (xmlMemoryDump) xmlMemoryDump__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlmemory
+#undef xmlMemoryDump
extern __typeof (xmlMemoryDump) xmlMemoryDump __attribute((alias("xmlMemoryDump__internal_alias")));
+#else
+#ifndef xmlMemoryDump
+extern __typeof (xmlMemoryDump) xmlMemoryDump__internal_alias __attribute((visibility("hidden")));
#define xmlMemoryDump xmlMemoryDump__internal_alias
+#endif
+#endif
-extern __typeof (xmlMemoryStrdup) xmlMemoryStrdup__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlmemory
+#undef xmlMemoryStrdup
extern __typeof (xmlMemoryStrdup) xmlMemoryStrdup __attribute((alias("xmlMemoryStrdup__internal_alias")));
+#else
+#ifndef xmlMemoryStrdup
+extern __typeof (xmlMemoryStrdup) xmlMemoryStrdup__internal_alias __attribute((visibility("hidden")));
#define xmlMemoryStrdup xmlMemoryStrdup__internal_alias
+#endif
+#endif
#if defined(LIBXML_MODULES_ENABLED)
-extern __typeof (xmlModuleClose) xmlModuleClose__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlmodule
+#undef xmlModuleClose
extern __typeof (xmlModuleClose) xmlModuleClose __attribute((alias("xmlModuleClose__internal_alias")));
+#else
+#ifndef xmlModuleClose
+extern __typeof (xmlModuleClose) xmlModuleClose__internal_alias __attribute((visibility("hidden")));
#define xmlModuleClose xmlModuleClose__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_MODULES_ENABLED)
-extern __typeof (xmlModuleFree) xmlModuleFree__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlmodule
+#undef xmlModuleFree
extern __typeof (xmlModuleFree) xmlModuleFree __attribute((alias("xmlModuleFree__internal_alias")));
+#else
+#ifndef xmlModuleFree
+extern __typeof (xmlModuleFree) xmlModuleFree__internal_alias __attribute((visibility("hidden")));
#define xmlModuleFree xmlModuleFree__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_MODULES_ENABLED)
-extern __typeof (xmlModuleOpen) xmlModuleOpen__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlmodule
+#undef xmlModuleOpen
extern __typeof (xmlModuleOpen) xmlModuleOpen __attribute((alias("xmlModuleOpen__internal_alias")));
+#else
+#ifndef xmlModuleOpen
+extern __typeof (xmlModuleOpen) xmlModuleOpen__internal_alias __attribute((visibility("hidden")));
#define xmlModuleOpen xmlModuleOpen__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_MODULES_ENABLED)
-extern __typeof (xmlModuleSymbol) xmlModuleSymbol__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlmodule
+#undef xmlModuleSymbol
extern __typeof (xmlModuleSymbol) xmlModuleSymbol __attribute((alias("xmlModuleSymbol__internal_alias")));
+#else
+#ifndef xmlModuleSymbol
+extern __typeof (xmlModuleSymbol) xmlModuleSymbol__internal_alias __attribute((visibility("hidden")));
#define xmlModuleSymbol xmlModuleSymbol__internal_alias
#endif
+#endif
+#endif
-extern __typeof (xmlMutexLock) xmlMutexLock__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_threads
+#undef xmlMutexLock
extern __typeof (xmlMutexLock) xmlMutexLock __attribute((alias("xmlMutexLock__internal_alias")));
+#else
+#ifndef xmlMutexLock
+extern __typeof (xmlMutexLock) xmlMutexLock__internal_alias __attribute((visibility("hidden")));
#define xmlMutexLock xmlMutexLock__internal_alias
+#endif
+#endif
-extern __typeof (xmlMutexUnlock) xmlMutexUnlock__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_threads
+#undef xmlMutexUnlock
extern __typeof (xmlMutexUnlock) xmlMutexUnlock __attribute((alias("xmlMutexUnlock__internal_alias")));
+#else
+#ifndef xmlMutexUnlock
+extern __typeof (xmlMutexUnlock) xmlMutexUnlock__internal_alias __attribute((visibility("hidden")));
#define xmlMutexUnlock xmlMutexUnlock__internal_alias
+#endif
+#endif
#if defined(LIBXML_LEGACY_ENABLED)
-extern __typeof (xmlNamespaceParseNCName) xmlNamespaceParseNCName__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_legacy
+#undef xmlNamespaceParseNCName
extern __typeof (xmlNamespaceParseNCName) xmlNamespaceParseNCName __attribute((alias("xmlNamespaceParseNCName__internal_alias")));
+#else
+#ifndef xmlNamespaceParseNCName
+extern __typeof (xmlNamespaceParseNCName) xmlNamespaceParseNCName__internal_alias __attribute((visibility("hidden")));
#define xmlNamespaceParseNCName xmlNamespaceParseNCName__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_LEGACY_ENABLED)
-extern __typeof (xmlNamespaceParseNSDef) xmlNamespaceParseNSDef__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_legacy
+#undef xmlNamespaceParseNSDef
extern __typeof (xmlNamespaceParseNSDef) xmlNamespaceParseNSDef __attribute((alias("xmlNamespaceParseNSDef__internal_alias")));
+#else
+#ifndef xmlNamespaceParseNSDef
+extern __typeof (xmlNamespaceParseNSDef) xmlNamespaceParseNSDef__internal_alias __attribute((visibility("hidden")));
#define xmlNamespaceParseNSDef xmlNamespaceParseNSDef__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_LEGACY_ENABLED)
-extern __typeof (xmlNamespaceParseQName) xmlNamespaceParseQName__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_legacy
+#undef xmlNamespaceParseQName
extern __typeof (xmlNamespaceParseQName) xmlNamespaceParseQName __attribute((alias("xmlNamespaceParseQName__internal_alias")));
+#else
+#ifndef xmlNamespaceParseQName
+extern __typeof (xmlNamespaceParseQName) xmlNamespaceParseQName__internal_alias __attribute((visibility("hidden")));
#define xmlNamespaceParseQName xmlNamespaceParseQName__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_FTP_ENABLED)
-extern __typeof (xmlNanoFTPCheckResponse) xmlNanoFTPCheckResponse__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_nanoftp
+#undef xmlNanoFTPCheckResponse
extern __typeof (xmlNanoFTPCheckResponse) xmlNanoFTPCheckResponse __attribute((alias("xmlNanoFTPCheckResponse__internal_alias")));
+#else
+#ifndef xmlNanoFTPCheckResponse
+extern __typeof (xmlNanoFTPCheckResponse) xmlNanoFTPCheckResponse__internal_alias __attribute((visibility("hidden")));
#define xmlNanoFTPCheckResponse xmlNanoFTPCheckResponse__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_FTP_ENABLED)
-extern __typeof (xmlNanoFTPCleanup) xmlNanoFTPCleanup__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_nanoftp
+#undef xmlNanoFTPCleanup
extern __typeof (xmlNanoFTPCleanup) xmlNanoFTPCleanup __attribute((alias("xmlNanoFTPCleanup__internal_alias")));
+#else
+#ifndef xmlNanoFTPCleanup
+extern __typeof (xmlNanoFTPCleanup) xmlNanoFTPCleanup__internal_alias __attribute((visibility("hidden")));
#define xmlNanoFTPCleanup xmlNanoFTPCleanup__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_FTP_ENABLED)
-extern __typeof (xmlNanoFTPClose) xmlNanoFTPClose__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_nanoftp
+#undef xmlNanoFTPClose
extern __typeof (xmlNanoFTPClose) xmlNanoFTPClose __attribute((alias("xmlNanoFTPClose__internal_alias")));
+#else
+#ifndef xmlNanoFTPClose
+extern __typeof (xmlNanoFTPClose) xmlNanoFTPClose__internal_alias __attribute((visibility("hidden")));
#define xmlNanoFTPClose xmlNanoFTPClose__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_FTP_ENABLED)
-extern __typeof (xmlNanoFTPCloseConnection) xmlNanoFTPCloseConnection__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_nanoftp
+#undef xmlNanoFTPCloseConnection
extern __typeof (xmlNanoFTPCloseConnection) xmlNanoFTPCloseConnection __attribute((alias("xmlNanoFTPCloseConnection__internal_alias")));
+#else
+#ifndef xmlNanoFTPCloseConnection
+extern __typeof (xmlNanoFTPCloseConnection) xmlNanoFTPCloseConnection__internal_alias __attribute((visibility("hidden")));
#define xmlNanoFTPCloseConnection xmlNanoFTPCloseConnection__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_FTP_ENABLED)
-extern __typeof (xmlNanoFTPConnect) xmlNanoFTPConnect__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_nanoftp
+#undef xmlNanoFTPConnect
extern __typeof (xmlNanoFTPConnect) xmlNanoFTPConnect __attribute((alias("xmlNanoFTPConnect__internal_alias")));
+#else
+#ifndef xmlNanoFTPConnect
+extern __typeof (xmlNanoFTPConnect) xmlNanoFTPConnect__internal_alias __attribute((visibility("hidden")));
#define xmlNanoFTPConnect xmlNanoFTPConnect__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_FTP_ENABLED)
-extern __typeof (xmlNanoFTPConnectTo) xmlNanoFTPConnectTo__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_nanoftp
+#undef xmlNanoFTPConnectTo
extern __typeof (xmlNanoFTPConnectTo) xmlNanoFTPConnectTo __attribute((alias("xmlNanoFTPConnectTo__internal_alias")));
+#else
+#ifndef xmlNanoFTPConnectTo
+extern __typeof (xmlNanoFTPConnectTo) xmlNanoFTPConnectTo__internal_alias __attribute((visibility("hidden")));
#define xmlNanoFTPConnectTo xmlNanoFTPConnectTo__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_FTP_ENABLED)
-extern __typeof (xmlNanoFTPCwd) xmlNanoFTPCwd__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_nanoftp
+#undef xmlNanoFTPCwd
extern __typeof (xmlNanoFTPCwd) xmlNanoFTPCwd __attribute((alias("xmlNanoFTPCwd__internal_alias")));
+#else
+#ifndef xmlNanoFTPCwd
+extern __typeof (xmlNanoFTPCwd) xmlNanoFTPCwd__internal_alias __attribute((visibility("hidden")));
#define xmlNanoFTPCwd xmlNanoFTPCwd__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_FTP_ENABLED)
-extern __typeof (xmlNanoFTPDele) xmlNanoFTPDele__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_nanoftp
+#undef xmlNanoFTPDele
extern __typeof (xmlNanoFTPDele) xmlNanoFTPDele __attribute((alias("xmlNanoFTPDele__internal_alias")));
+#else
+#ifndef xmlNanoFTPDele
+extern __typeof (xmlNanoFTPDele) xmlNanoFTPDele__internal_alias __attribute((visibility("hidden")));
#define xmlNanoFTPDele xmlNanoFTPDele__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_FTP_ENABLED)
-extern __typeof (xmlNanoFTPFreeCtxt) xmlNanoFTPFreeCtxt__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_nanoftp
+#undef xmlNanoFTPFreeCtxt
extern __typeof (xmlNanoFTPFreeCtxt) xmlNanoFTPFreeCtxt __attribute((alias("xmlNanoFTPFreeCtxt__internal_alias")));
+#else
+#ifndef xmlNanoFTPFreeCtxt
+extern __typeof (xmlNanoFTPFreeCtxt) xmlNanoFTPFreeCtxt__internal_alias __attribute((visibility("hidden")));
#define xmlNanoFTPFreeCtxt xmlNanoFTPFreeCtxt__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_FTP_ENABLED)
-extern __typeof (xmlNanoFTPGet) xmlNanoFTPGet__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_nanoftp
+#undef xmlNanoFTPGet
extern __typeof (xmlNanoFTPGet) xmlNanoFTPGet __attribute((alias("xmlNanoFTPGet__internal_alias")));
+#else
+#ifndef xmlNanoFTPGet
+extern __typeof (xmlNanoFTPGet) xmlNanoFTPGet__internal_alias __attribute((visibility("hidden")));
#define xmlNanoFTPGet xmlNanoFTPGet__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_FTP_ENABLED)
-extern __typeof (xmlNanoFTPGetConnection) xmlNanoFTPGetConnection__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_nanoftp
+#undef xmlNanoFTPGetConnection
extern __typeof (xmlNanoFTPGetConnection) xmlNanoFTPGetConnection __attribute((alias("xmlNanoFTPGetConnection__internal_alias")));
+#else
+#ifndef xmlNanoFTPGetConnection
+extern __typeof (xmlNanoFTPGetConnection) xmlNanoFTPGetConnection__internal_alias __attribute((visibility("hidden")));
#define xmlNanoFTPGetConnection xmlNanoFTPGetConnection__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_FTP_ENABLED)
-extern __typeof (xmlNanoFTPGetResponse) xmlNanoFTPGetResponse__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_nanoftp
+#undef xmlNanoFTPGetResponse
extern __typeof (xmlNanoFTPGetResponse) xmlNanoFTPGetResponse __attribute((alias("xmlNanoFTPGetResponse__internal_alias")));
+#else
+#ifndef xmlNanoFTPGetResponse
+extern __typeof (xmlNanoFTPGetResponse) xmlNanoFTPGetResponse__internal_alias __attribute((visibility("hidden")));
#define xmlNanoFTPGetResponse xmlNanoFTPGetResponse__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_FTP_ENABLED)
-extern __typeof (xmlNanoFTPGetSocket) xmlNanoFTPGetSocket__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_nanoftp
+#undef xmlNanoFTPGetSocket
extern __typeof (xmlNanoFTPGetSocket) xmlNanoFTPGetSocket __attribute((alias("xmlNanoFTPGetSocket__internal_alias")));
+#else
+#ifndef xmlNanoFTPGetSocket
+extern __typeof (xmlNanoFTPGetSocket) xmlNanoFTPGetSocket__internal_alias __attribute((visibility("hidden")));
#define xmlNanoFTPGetSocket xmlNanoFTPGetSocket__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_FTP_ENABLED)
-extern __typeof (xmlNanoFTPInit) xmlNanoFTPInit__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_nanoftp
+#undef xmlNanoFTPInit
extern __typeof (xmlNanoFTPInit) xmlNanoFTPInit __attribute((alias("xmlNanoFTPInit__internal_alias")));
+#else
+#ifndef xmlNanoFTPInit
+extern __typeof (xmlNanoFTPInit) xmlNanoFTPInit__internal_alias __attribute((visibility("hidden")));
#define xmlNanoFTPInit xmlNanoFTPInit__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_FTP_ENABLED)
-extern __typeof (xmlNanoFTPList) xmlNanoFTPList__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_nanoftp
+#undef xmlNanoFTPList
extern __typeof (xmlNanoFTPList) xmlNanoFTPList __attribute((alias("xmlNanoFTPList__internal_alias")));
+#else
+#ifndef xmlNanoFTPList
+extern __typeof (xmlNanoFTPList) xmlNanoFTPList__internal_alias __attribute((visibility("hidden")));
#define xmlNanoFTPList xmlNanoFTPList__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_FTP_ENABLED)
-extern __typeof (xmlNanoFTPNewCtxt) xmlNanoFTPNewCtxt__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_nanoftp
+#undef xmlNanoFTPNewCtxt
extern __typeof (xmlNanoFTPNewCtxt) xmlNanoFTPNewCtxt __attribute((alias("xmlNanoFTPNewCtxt__internal_alias")));
+#else
+#ifndef xmlNanoFTPNewCtxt
+extern __typeof (xmlNanoFTPNewCtxt) xmlNanoFTPNewCtxt__internal_alias __attribute((visibility("hidden")));
#define xmlNanoFTPNewCtxt xmlNanoFTPNewCtxt__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_FTP_ENABLED)
-extern __typeof (xmlNanoFTPOpen) xmlNanoFTPOpen__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_nanoftp
+#undef xmlNanoFTPOpen
extern __typeof (xmlNanoFTPOpen) xmlNanoFTPOpen __attribute((alias("xmlNanoFTPOpen__internal_alias")));
+#else
+#ifndef xmlNanoFTPOpen
+extern __typeof (xmlNanoFTPOpen) xmlNanoFTPOpen__internal_alias __attribute((visibility("hidden")));
#define xmlNanoFTPOpen xmlNanoFTPOpen__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_FTP_ENABLED)
-extern __typeof (xmlNanoFTPProxy) xmlNanoFTPProxy__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_nanoftp
+#undef xmlNanoFTPProxy
extern __typeof (xmlNanoFTPProxy) xmlNanoFTPProxy __attribute((alias("xmlNanoFTPProxy__internal_alias")));
+#else
+#ifndef xmlNanoFTPProxy
+extern __typeof (xmlNanoFTPProxy) xmlNanoFTPProxy__internal_alias __attribute((visibility("hidden")));
#define xmlNanoFTPProxy xmlNanoFTPProxy__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_FTP_ENABLED)
-extern __typeof (xmlNanoFTPQuit) xmlNanoFTPQuit__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_nanoftp
+#undef xmlNanoFTPQuit
extern __typeof (xmlNanoFTPQuit) xmlNanoFTPQuit __attribute((alias("xmlNanoFTPQuit__internal_alias")));
+#else
+#ifndef xmlNanoFTPQuit
+extern __typeof (xmlNanoFTPQuit) xmlNanoFTPQuit__internal_alias __attribute((visibility("hidden")));
#define xmlNanoFTPQuit xmlNanoFTPQuit__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_FTP_ENABLED)
-extern __typeof (xmlNanoFTPRead) xmlNanoFTPRead__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_nanoftp
+#undef xmlNanoFTPRead
extern __typeof (xmlNanoFTPRead) xmlNanoFTPRead __attribute((alias("xmlNanoFTPRead__internal_alias")));
+#else
+#ifndef xmlNanoFTPRead
+extern __typeof (xmlNanoFTPRead) xmlNanoFTPRead__internal_alias __attribute((visibility("hidden")));
#define xmlNanoFTPRead xmlNanoFTPRead__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_FTP_ENABLED)
-extern __typeof (xmlNanoFTPScanProxy) xmlNanoFTPScanProxy__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_nanoftp
+#undef xmlNanoFTPScanProxy
extern __typeof (xmlNanoFTPScanProxy) xmlNanoFTPScanProxy __attribute((alias("xmlNanoFTPScanProxy__internal_alias")));
+#else
+#ifndef xmlNanoFTPScanProxy
+extern __typeof (xmlNanoFTPScanProxy) xmlNanoFTPScanProxy__internal_alias __attribute((visibility("hidden")));
#define xmlNanoFTPScanProxy xmlNanoFTPScanProxy__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_FTP_ENABLED)
-extern __typeof (xmlNanoFTPUpdateURL) xmlNanoFTPUpdateURL__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_nanoftp
+#undef xmlNanoFTPUpdateURL
extern __typeof (xmlNanoFTPUpdateURL) xmlNanoFTPUpdateURL __attribute((alias("xmlNanoFTPUpdateURL__internal_alias")));
+#else
+#ifndef xmlNanoFTPUpdateURL
+extern __typeof (xmlNanoFTPUpdateURL) xmlNanoFTPUpdateURL__internal_alias __attribute((visibility("hidden")));
#define xmlNanoFTPUpdateURL xmlNanoFTPUpdateURL__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_HTTP_ENABLED)
-extern __typeof (xmlNanoHTTPAuthHeader) xmlNanoHTTPAuthHeader__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_nanohttp
+#undef xmlNanoHTTPAuthHeader
extern __typeof (xmlNanoHTTPAuthHeader) xmlNanoHTTPAuthHeader __attribute((alias("xmlNanoHTTPAuthHeader__internal_alias")));
+#else
+#ifndef xmlNanoHTTPAuthHeader
+extern __typeof (xmlNanoHTTPAuthHeader) xmlNanoHTTPAuthHeader__internal_alias __attribute((visibility("hidden")));
#define xmlNanoHTTPAuthHeader xmlNanoHTTPAuthHeader__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_HTTP_ENABLED)
-extern __typeof (xmlNanoHTTPCleanup) xmlNanoHTTPCleanup__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_nanohttp
+#undef xmlNanoHTTPCleanup
extern __typeof (xmlNanoHTTPCleanup) xmlNanoHTTPCleanup __attribute((alias("xmlNanoHTTPCleanup__internal_alias")));
+#else
+#ifndef xmlNanoHTTPCleanup
+extern __typeof (xmlNanoHTTPCleanup) xmlNanoHTTPCleanup__internal_alias __attribute((visibility("hidden")));
#define xmlNanoHTTPCleanup xmlNanoHTTPCleanup__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_HTTP_ENABLED)
-extern __typeof (xmlNanoHTTPClose) xmlNanoHTTPClose__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_nanohttp
+#undef xmlNanoHTTPClose
extern __typeof (xmlNanoHTTPClose) xmlNanoHTTPClose __attribute((alias("xmlNanoHTTPClose__internal_alias")));
+#else
+#ifndef xmlNanoHTTPClose
+extern __typeof (xmlNanoHTTPClose) xmlNanoHTTPClose__internal_alias __attribute((visibility("hidden")));
#define xmlNanoHTTPClose xmlNanoHTTPClose__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_HTTP_ENABLED)
-extern __typeof (xmlNanoHTTPContentLength) xmlNanoHTTPContentLength__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_nanohttp
+#undef xmlNanoHTTPContentLength
extern __typeof (xmlNanoHTTPContentLength) xmlNanoHTTPContentLength __attribute((alias("xmlNanoHTTPContentLength__internal_alias")));
+#else
+#ifndef xmlNanoHTTPContentLength
+extern __typeof (xmlNanoHTTPContentLength) xmlNanoHTTPContentLength__internal_alias __attribute((visibility("hidden")));
#define xmlNanoHTTPContentLength xmlNanoHTTPContentLength__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_HTTP_ENABLED)
-extern __typeof (xmlNanoHTTPEncoding) xmlNanoHTTPEncoding__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_nanohttp
+#undef xmlNanoHTTPEncoding
extern __typeof (xmlNanoHTTPEncoding) xmlNanoHTTPEncoding __attribute((alias("xmlNanoHTTPEncoding__internal_alias")));
+#else
+#ifndef xmlNanoHTTPEncoding
+extern __typeof (xmlNanoHTTPEncoding) xmlNanoHTTPEncoding__internal_alias __attribute((visibility("hidden")));
#define xmlNanoHTTPEncoding xmlNanoHTTPEncoding__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_HTTP_ENABLED)
-extern __typeof (xmlNanoHTTPFetch) xmlNanoHTTPFetch__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_nanohttp
+#undef xmlNanoHTTPFetch
extern __typeof (xmlNanoHTTPFetch) xmlNanoHTTPFetch __attribute((alias("xmlNanoHTTPFetch__internal_alias")));
+#else
+#ifndef xmlNanoHTTPFetch
+extern __typeof (xmlNanoHTTPFetch) xmlNanoHTTPFetch__internal_alias __attribute((visibility("hidden")));
#define xmlNanoHTTPFetch xmlNanoHTTPFetch__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_HTTP_ENABLED)
-extern __typeof (xmlNanoHTTPInit) xmlNanoHTTPInit__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_nanohttp
+#undef xmlNanoHTTPInit
extern __typeof (xmlNanoHTTPInit) xmlNanoHTTPInit __attribute((alias("xmlNanoHTTPInit__internal_alias")));
+#else
+#ifndef xmlNanoHTTPInit
+extern __typeof (xmlNanoHTTPInit) xmlNanoHTTPInit__internal_alias __attribute((visibility("hidden")));
#define xmlNanoHTTPInit xmlNanoHTTPInit__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_HTTP_ENABLED)
-extern __typeof (xmlNanoHTTPMethod) xmlNanoHTTPMethod__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_nanohttp
+#undef xmlNanoHTTPMethod
extern __typeof (xmlNanoHTTPMethod) xmlNanoHTTPMethod __attribute((alias("xmlNanoHTTPMethod__internal_alias")));
+#else
+#ifndef xmlNanoHTTPMethod
+extern __typeof (xmlNanoHTTPMethod) xmlNanoHTTPMethod__internal_alias __attribute((visibility("hidden")));
#define xmlNanoHTTPMethod xmlNanoHTTPMethod__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_HTTP_ENABLED)
-extern __typeof (xmlNanoHTTPMethodRedir) xmlNanoHTTPMethodRedir__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_nanohttp
+#undef xmlNanoHTTPMethodRedir
extern __typeof (xmlNanoHTTPMethodRedir) xmlNanoHTTPMethodRedir __attribute((alias("xmlNanoHTTPMethodRedir__internal_alias")));
+#else
+#ifndef xmlNanoHTTPMethodRedir
+extern __typeof (xmlNanoHTTPMethodRedir) xmlNanoHTTPMethodRedir__internal_alias __attribute((visibility("hidden")));
#define xmlNanoHTTPMethodRedir xmlNanoHTTPMethodRedir__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_HTTP_ENABLED)
-extern __typeof (xmlNanoHTTPMimeType) xmlNanoHTTPMimeType__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_nanohttp
+#undef xmlNanoHTTPMimeType
extern __typeof (xmlNanoHTTPMimeType) xmlNanoHTTPMimeType __attribute((alias("xmlNanoHTTPMimeType__internal_alias")));
+#else
+#ifndef xmlNanoHTTPMimeType
+extern __typeof (xmlNanoHTTPMimeType) xmlNanoHTTPMimeType__internal_alias __attribute((visibility("hidden")));
#define xmlNanoHTTPMimeType xmlNanoHTTPMimeType__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_HTTP_ENABLED)
-extern __typeof (xmlNanoHTTPOpen) xmlNanoHTTPOpen__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_nanohttp
+#undef xmlNanoHTTPOpen
extern __typeof (xmlNanoHTTPOpen) xmlNanoHTTPOpen __attribute((alias("xmlNanoHTTPOpen__internal_alias")));
+#else
+#ifndef xmlNanoHTTPOpen
+extern __typeof (xmlNanoHTTPOpen) xmlNanoHTTPOpen__internal_alias __attribute((visibility("hidden")));
#define xmlNanoHTTPOpen xmlNanoHTTPOpen__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_HTTP_ENABLED)
-extern __typeof (xmlNanoHTTPOpenRedir) xmlNanoHTTPOpenRedir__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_nanohttp
+#undef xmlNanoHTTPOpenRedir
extern __typeof (xmlNanoHTTPOpenRedir) xmlNanoHTTPOpenRedir __attribute((alias("xmlNanoHTTPOpenRedir__internal_alias")));
+#else
+#ifndef xmlNanoHTTPOpenRedir
+extern __typeof (xmlNanoHTTPOpenRedir) xmlNanoHTTPOpenRedir__internal_alias __attribute((visibility("hidden")));
#define xmlNanoHTTPOpenRedir xmlNanoHTTPOpenRedir__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_HTTP_ENABLED)
-extern __typeof (xmlNanoHTTPRead) xmlNanoHTTPRead__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_nanohttp
+#undef xmlNanoHTTPRead
extern __typeof (xmlNanoHTTPRead) xmlNanoHTTPRead __attribute((alias("xmlNanoHTTPRead__internal_alias")));
+#else
+#ifndef xmlNanoHTTPRead
+extern __typeof (xmlNanoHTTPRead) xmlNanoHTTPRead__internal_alias __attribute((visibility("hidden")));
#define xmlNanoHTTPRead xmlNanoHTTPRead__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_HTTP_ENABLED)
-extern __typeof (xmlNanoHTTPRedir) xmlNanoHTTPRedir__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_nanohttp
+#undef xmlNanoHTTPRedir
extern __typeof (xmlNanoHTTPRedir) xmlNanoHTTPRedir __attribute((alias("xmlNanoHTTPRedir__internal_alias")));
+#else
+#ifndef xmlNanoHTTPRedir
+extern __typeof (xmlNanoHTTPRedir) xmlNanoHTTPRedir__internal_alias __attribute((visibility("hidden")));
#define xmlNanoHTTPRedir xmlNanoHTTPRedir__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_HTTP_ENABLED)
-extern __typeof (xmlNanoHTTPReturnCode) xmlNanoHTTPReturnCode__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_nanohttp
+#undef xmlNanoHTTPReturnCode
extern __typeof (xmlNanoHTTPReturnCode) xmlNanoHTTPReturnCode __attribute((alias("xmlNanoHTTPReturnCode__internal_alias")));
+#else
+#ifndef xmlNanoHTTPReturnCode
+extern __typeof (xmlNanoHTTPReturnCode) xmlNanoHTTPReturnCode__internal_alias __attribute((visibility("hidden")));
#define xmlNanoHTTPReturnCode xmlNanoHTTPReturnCode__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_HTTP_ENABLED) && defined(LIBXML_OUTPUT_ENABLED)
-extern __typeof (xmlNanoHTTPSave) xmlNanoHTTPSave__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_nanohttp
+#undef xmlNanoHTTPSave
extern __typeof (xmlNanoHTTPSave) xmlNanoHTTPSave __attribute((alias("xmlNanoHTTPSave__internal_alias")));
+#else
+#ifndef xmlNanoHTTPSave
+extern __typeof (xmlNanoHTTPSave) xmlNanoHTTPSave__internal_alias __attribute((visibility("hidden")));
#define xmlNanoHTTPSave xmlNanoHTTPSave__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_HTTP_ENABLED)
-extern __typeof (xmlNanoHTTPScanProxy) xmlNanoHTTPScanProxy__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_nanohttp
+#undef xmlNanoHTTPScanProxy
extern __typeof (xmlNanoHTTPScanProxy) xmlNanoHTTPScanProxy __attribute((alias("xmlNanoHTTPScanProxy__internal_alias")));
+#else
+#ifndef xmlNanoHTTPScanProxy
+extern __typeof (xmlNanoHTTPScanProxy) xmlNanoHTTPScanProxy__internal_alias __attribute((visibility("hidden")));
#define xmlNanoHTTPScanProxy xmlNanoHTTPScanProxy__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_REGEXP_ENABLED) && defined(LIBXML_AUTOMATA_ENABLED)
-extern __typeof (xmlNewAutomata) xmlNewAutomata__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlregexp
+#undef xmlNewAutomata
extern __typeof (xmlNewAutomata) xmlNewAutomata __attribute((alias("xmlNewAutomata__internal_alias")));
+#else
+#ifndef xmlNewAutomata
+extern __typeof (xmlNewAutomata) xmlNewAutomata__internal_alias __attribute((visibility("hidden")));
#define xmlNewAutomata xmlNewAutomata__internal_alias
#endif
+#endif
+#endif
-extern __typeof (xmlNewCDataBlock) xmlNewCDataBlock__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_tree
+#undef xmlNewCDataBlock
extern __typeof (xmlNewCDataBlock) xmlNewCDataBlock __attribute((alias("xmlNewCDataBlock__internal_alias")));
+#else
+#ifndef xmlNewCDataBlock
+extern __typeof (xmlNewCDataBlock) xmlNewCDataBlock__internal_alias __attribute((visibility("hidden")));
#define xmlNewCDataBlock xmlNewCDataBlock__internal_alias
+#endif
+#endif
#if defined(LIBXML_CATALOG_ENABLED)
-extern __typeof (xmlNewCatalog) xmlNewCatalog__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_catalog
+#undef xmlNewCatalog
extern __typeof (xmlNewCatalog) xmlNewCatalog __attribute((alias("xmlNewCatalog__internal_alias")));
+#else
+#ifndef xmlNewCatalog
+extern __typeof (xmlNewCatalog) xmlNewCatalog__internal_alias __attribute((visibility("hidden")));
#define xmlNewCatalog xmlNewCatalog__internal_alias
#endif
+#endif
+#endif
-extern __typeof (xmlNewCharEncodingHandler) xmlNewCharEncodingHandler__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_encoding
+#undef xmlNewCharEncodingHandler
extern __typeof (xmlNewCharEncodingHandler) xmlNewCharEncodingHandler __attribute((alias("xmlNewCharEncodingHandler__internal_alias")));
+#else
+#ifndef xmlNewCharEncodingHandler
+extern __typeof (xmlNewCharEncodingHandler) xmlNewCharEncodingHandler__internal_alias __attribute((visibility("hidden")));
#define xmlNewCharEncodingHandler xmlNewCharEncodingHandler__internal_alias
+#endif
+#endif
-extern __typeof (xmlNewCharRef) xmlNewCharRef__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_tree
+#undef xmlNewCharRef
extern __typeof (xmlNewCharRef) xmlNewCharRef __attribute((alias("xmlNewCharRef__internal_alias")));
+#else
+#ifndef xmlNewCharRef
+extern __typeof (xmlNewCharRef) xmlNewCharRef__internal_alias __attribute((visibility("hidden")));
#define xmlNewCharRef xmlNewCharRef__internal_alias
+#endif
+#endif
#if defined(LIBXML_TREE_ENABLED) || defined(LIBXML_SCHEMAS_ENABLED)
-extern __typeof (xmlNewChild) xmlNewChild__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_tree
+#undef xmlNewChild
extern __typeof (xmlNewChild) xmlNewChild __attribute((alias("xmlNewChild__internal_alias")));
+#else
+#ifndef xmlNewChild
+extern __typeof (xmlNewChild) xmlNewChild__internal_alias __attribute((visibility("hidden")));
#define xmlNewChild xmlNewChild__internal_alias
#endif
+#endif
+#endif
-extern __typeof (xmlNewComment) xmlNewComment__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_tree
+#undef xmlNewComment
extern __typeof (xmlNewComment) xmlNewComment __attribute((alias("xmlNewComment__internal_alias")));
+#else
+#ifndef xmlNewComment
+extern __typeof (xmlNewComment) xmlNewComment__internal_alias __attribute((visibility("hidden")));
#define xmlNewComment xmlNewComment__internal_alias
+#endif
+#endif
-extern __typeof (xmlNewDoc) xmlNewDoc__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_tree
+#undef xmlNewDoc
extern __typeof (xmlNewDoc) xmlNewDoc __attribute((alias("xmlNewDoc__internal_alias")));
+#else
+#ifndef xmlNewDoc
+extern __typeof (xmlNewDoc) xmlNewDoc__internal_alias __attribute((visibility("hidden")));
#define xmlNewDoc xmlNewDoc__internal_alias
+#endif
+#endif
-extern __typeof (xmlNewDocComment) xmlNewDocComment__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_tree
+#undef xmlNewDocComment
extern __typeof (xmlNewDocComment) xmlNewDocComment __attribute((alias("xmlNewDocComment__internal_alias")));
+#else
+#ifndef xmlNewDocComment
+extern __typeof (xmlNewDocComment) xmlNewDocComment__internal_alias __attribute((visibility("hidden")));
#define xmlNewDocComment xmlNewDocComment__internal_alias
+#endif
+#endif
-extern __typeof (xmlNewDocElementContent) xmlNewDocElementContent__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_valid
+#undef xmlNewDocElementContent
extern __typeof (xmlNewDocElementContent) xmlNewDocElementContent __attribute((alias("xmlNewDocElementContent__internal_alias")));
+#else
+#ifndef xmlNewDocElementContent
+extern __typeof (xmlNewDocElementContent) xmlNewDocElementContent__internal_alias __attribute((visibility("hidden")));
#define xmlNewDocElementContent xmlNewDocElementContent__internal_alias
+#endif
+#endif
#if defined(LIBXML_TREE_ENABLED)
-extern __typeof (xmlNewDocFragment) xmlNewDocFragment__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_tree
+#undef xmlNewDocFragment
extern __typeof (xmlNewDocFragment) xmlNewDocFragment __attribute((alias("xmlNewDocFragment__internal_alias")));
+#else
+#ifndef xmlNewDocFragment
+extern __typeof (xmlNewDocFragment) xmlNewDocFragment__internal_alias __attribute((visibility("hidden")));
#define xmlNewDocFragment xmlNewDocFragment__internal_alias
#endif
+#endif
+#endif
-extern __typeof (xmlNewDocNode) xmlNewDocNode__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_tree
+#undef xmlNewDocNode
extern __typeof (xmlNewDocNode) xmlNewDocNode __attribute((alias("xmlNewDocNode__internal_alias")));
+#else
+#ifndef xmlNewDocNode
+extern __typeof (xmlNewDocNode) xmlNewDocNode__internal_alias __attribute((visibility("hidden")));
#define xmlNewDocNode xmlNewDocNode__internal_alias
+#endif
+#endif
-extern __typeof (xmlNewDocNodeEatName) xmlNewDocNodeEatName__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_tree
+#undef xmlNewDocNodeEatName
extern __typeof (xmlNewDocNodeEatName) xmlNewDocNodeEatName __attribute((alias("xmlNewDocNodeEatName__internal_alias")));
+#else
+#ifndef xmlNewDocNodeEatName
+extern __typeof (xmlNewDocNodeEatName) xmlNewDocNodeEatName__internal_alias __attribute((visibility("hidden")));
#define xmlNewDocNodeEatName xmlNewDocNodeEatName__internal_alias
+#endif
+#endif
-extern __typeof (xmlNewDocPI) xmlNewDocPI__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_tree
+#undef xmlNewDocPI
extern __typeof (xmlNewDocPI) xmlNewDocPI __attribute((alias("xmlNewDocPI__internal_alias")));
+#else
+#ifndef xmlNewDocPI
+extern __typeof (xmlNewDocPI) xmlNewDocPI__internal_alias __attribute((visibility("hidden")));
#define xmlNewDocPI xmlNewDocPI__internal_alias
+#endif
+#endif
-extern __typeof (xmlNewDocProp) xmlNewDocProp__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_tree
+#undef xmlNewDocProp
extern __typeof (xmlNewDocProp) xmlNewDocProp __attribute((alias("xmlNewDocProp__internal_alias")));
+#else
+#ifndef xmlNewDocProp
+extern __typeof (xmlNewDocProp) xmlNewDocProp__internal_alias __attribute((visibility("hidden")));
#define xmlNewDocProp xmlNewDocProp__internal_alias
+#endif
+#endif
#if defined(LIBXML_TREE_ENABLED)
-extern __typeof (xmlNewDocRawNode) xmlNewDocRawNode__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_tree
+#undef xmlNewDocRawNode
extern __typeof (xmlNewDocRawNode) xmlNewDocRawNode __attribute((alias("xmlNewDocRawNode__internal_alias")));
+#else
+#ifndef xmlNewDocRawNode
+extern __typeof (xmlNewDocRawNode) xmlNewDocRawNode__internal_alias __attribute((visibility("hidden")));
#define xmlNewDocRawNode xmlNewDocRawNode__internal_alias
#endif
+#endif
+#endif
-extern __typeof (xmlNewDocText) xmlNewDocText__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_tree
+#undef xmlNewDocText
extern __typeof (xmlNewDocText) xmlNewDocText __attribute((alias("xmlNewDocText__internal_alias")));
+#else
+#ifndef xmlNewDocText
+extern __typeof (xmlNewDocText) xmlNewDocText__internal_alias __attribute((visibility("hidden")));
#define xmlNewDocText xmlNewDocText__internal_alias
+#endif
+#endif
-extern __typeof (xmlNewDocTextLen) xmlNewDocTextLen__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_tree
+#undef xmlNewDocTextLen
extern __typeof (xmlNewDocTextLen) xmlNewDocTextLen __attribute((alias("xmlNewDocTextLen__internal_alias")));
+#else
+#ifndef xmlNewDocTextLen
+extern __typeof (xmlNewDocTextLen) xmlNewDocTextLen__internal_alias __attribute((visibility("hidden")));
#define xmlNewDocTextLen xmlNewDocTextLen__internal_alias
+#endif
+#endif
-extern __typeof (xmlNewDtd) xmlNewDtd__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_tree
+#undef xmlNewDtd
extern __typeof (xmlNewDtd) xmlNewDtd __attribute((alias("xmlNewDtd__internal_alias")));
+#else
+#ifndef xmlNewDtd
+extern __typeof (xmlNewDtd) xmlNewDtd__internal_alias __attribute((visibility("hidden")));
#define xmlNewDtd xmlNewDtd__internal_alias
+#endif
+#endif
-extern __typeof (xmlNewElementContent) xmlNewElementContent__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_valid
+#undef xmlNewElementContent
extern __typeof (xmlNewElementContent) xmlNewElementContent __attribute((alias("xmlNewElementContent__internal_alias")));
+#else
+#ifndef xmlNewElementContent
+extern __typeof (xmlNewElementContent) xmlNewElementContent__internal_alias __attribute((visibility("hidden")));
#define xmlNewElementContent xmlNewElementContent__internal_alias
+#endif
+#endif
-extern __typeof (xmlNewEntityInputStream) xmlNewEntityInputStream__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_parserInternals
+#undef xmlNewEntityInputStream
extern __typeof (xmlNewEntityInputStream) xmlNewEntityInputStream __attribute((alias("xmlNewEntityInputStream__internal_alias")));
+#else
+#ifndef xmlNewEntityInputStream
+extern __typeof (xmlNewEntityInputStream) xmlNewEntityInputStream__internal_alias __attribute((visibility("hidden")));
#define xmlNewEntityInputStream xmlNewEntityInputStream__internal_alias
+#endif
+#endif
#if defined(LIBXML_LEGACY_ENABLED)
-extern __typeof (xmlNewGlobalNs) xmlNewGlobalNs__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_legacy
+#undef xmlNewGlobalNs
extern __typeof (xmlNewGlobalNs) xmlNewGlobalNs __attribute((alias("xmlNewGlobalNs__internal_alias")));
+#else
+#ifndef xmlNewGlobalNs
+extern __typeof (xmlNewGlobalNs) xmlNewGlobalNs__internal_alias __attribute((visibility("hidden")));
#define xmlNewGlobalNs xmlNewGlobalNs__internal_alias
#endif
+#endif
+#endif
-extern __typeof (xmlNewIOInputStream) xmlNewIOInputStream__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_parserInternals
+#undef xmlNewIOInputStream
extern __typeof (xmlNewIOInputStream) xmlNewIOInputStream __attribute((alias("xmlNewIOInputStream__internal_alias")));
+#else
+#ifndef xmlNewIOInputStream
+extern __typeof (xmlNewIOInputStream) xmlNewIOInputStream__internal_alias __attribute((visibility("hidden")));
#define xmlNewIOInputStream xmlNewIOInputStream__internal_alias
+#endif
+#endif
-extern __typeof (xmlNewInputFromFile) xmlNewInputFromFile__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_parserInternals
+#undef xmlNewInputFromFile
extern __typeof (xmlNewInputFromFile) xmlNewInputFromFile __attribute((alias("xmlNewInputFromFile__internal_alias")));
+#else
+#ifndef xmlNewInputFromFile
+extern __typeof (xmlNewInputFromFile) xmlNewInputFromFile__internal_alias __attribute((visibility("hidden")));
#define xmlNewInputFromFile xmlNewInputFromFile__internal_alias
+#endif
+#endif
-extern __typeof (xmlNewInputStream) xmlNewInputStream__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_parserInternals
+#undef xmlNewInputStream
extern __typeof (xmlNewInputStream) xmlNewInputStream __attribute((alias("xmlNewInputStream__internal_alias")));
+#else
+#ifndef xmlNewInputStream
+extern __typeof (xmlNewInputStream) xmlNewInputStream__internal_alias __attribute((visibility("hidden")));
#define xmlNewInputStream xmlNewInputStream__internal_alias
+#endif
+#endif
-extern __typeof (xmlNewMutex) xmlNewMutex__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_threads
+#undef xmlNewMutex
extern __typeof (xmlNewMutex) xmlNewMutex __attribute((alias("xmlNewMutex__internal_alias")));
+#else
+#ifndef xmlNewMutex
+extern __typeof (xmlNewMutex) xmlNewMutex__internal_alias __attribute((visibility("hidden")));
#define xmlNewMutex xmlNewMutex__internal_alias
+#endif
+#endif
-extern __typeof (xmlNewNode) xmlNewNode__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_tree
+#undef xmlNewNode
extern __typeof (xmlNewNode) xmlNewNode __attribute((alias("xmlNewNode__internal_alias")));
+#else
+#ifndef xmlNewNode
+extern __typeof (xmlNewNode) xmlNewNode__internal_alias __attribute((visibility("hidden")));
#define xmlNewNode xmlNewNode__internal_alias
+#endif
+#endif
-extern __typeof (xmlNewNodeEatName) xmlNewNodeEatName__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_tree
+#undef xmlNewNodeEatName
extern __typeof (xmlNewNodeEatName) xmlNewNodeEatName __attribute((alias("xmlNewNodeEatName__internal_alias")));
+#else
+#ifndef xmlNewNodeEatName
+extern __typeof (xmlNewNodeEatName) xmlNewNodeEatName__internal_alias __attribute((visibility("hidden")));
#define xmlNewNodeEatName xmlNewNodeEatName__internal_alias
+#endif
+#endif
-extern __typeof (xmlNewNs) xmlNewNs__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_tree
+#undef xmlNewNs
extern __typeof (xmlNewNs) xmlNewNs __attribute((alias("xmlNewNs__internal_alias")));
+#else
+#ifndef xmlNewNs
+extern __typeof (xmlNewNs) xmlNewNs__internal_alias __attribute((visibility("hidden")));
#define xmlNewNs xmlNewNs__internal_alias
+#endif
+#endif
-extern __typeof (xmlNewNsProp) xmlNewNsProp__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_tree
+#undef xmlNewNsProp
extern __typeof (xmlNewNsProp) xmlNewNsProp __attribute((alias("xmlNewNsProp__internal_alias")));
+#else
+#ifndef xmlNewNsProp
+extern __typeof (xmlNewNsProp) xmlNewNsProp__internal_alias __attribute((visibility("hidden")));
#define xmlNewNsProp xmlNewNsProp__internal_alias
+#endif
+#endif
-extern __typeof (xmlNewNsPropEatName) xmlNewNsPropEatName__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_tree
+#undef xmlNewNsPropEatName
extern __typeof (xmlNewNsPropEatName) xmlNewNsPropEatName __attribute((alias("xmlNewNsPropEatName__internal_alias")));
+#else
+#ifndef xmlNewNsPropEatName
+extern __typeof (xmlNewNsPropEatName) xmlNewNsPropEatName__internal_alias __attribute((visibility("hidden")));
#define xmlNewNsPropEatName xmlNewNsPropEatName__internal_alias
+#endif
+#endif
-extern __typeof (xmlNewPI) xmlNewPI__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_tree
+#undef xmlNewPI
extern __typeof (xmlNewPI) xmlNewPI __attribute((alias("xmlNewPI__internal_alias")));
+#else
+#ifndef xmlNewPI
+extern __typeof (xmlNewPI) xmlNewPI__internal_alias __attribute((visibility("hidden")));
#define xmlNewPI xmlNewPI__internal_alias
+#endif
+#endif
-extern __typeof (xmlNewParserCtxt) xmlNewParserCtxt__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_parserInternals
+#undef xmlNewParserCtxt
extern __typeof (xmlNewParserCtxt) xmlNewParserCtxt __attribute((alias("xmlNewParserCtxt__internal_alias")));
+#else
+#ifndef xmlNewParserCtxt
+extern __typeof (xmlNewParserCtxt) xmlNewParserCtxt__internal_alias __attribute((visibility("hidden")));
#define xmlNewParserCtxt xmlNewParserCtxt__internal_alias
+#endif
+#endif
#if defined(LIBXML_TREE_ENABLED) || defined(LIBXML_HTML_ENABLED) || defined(LIBXML_SCHEMAS_ENABLED)
-extern __typeof (xmlNewProp) xmlNewProp__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_tree
+#undef xmlNewProp
extern __typeof (xmlNewProp) xmlNewProp __attribute((alias("xmlNewProp__internal_alias")));
+#else
+#ifndef xmlNewProp
+extern __typeof (xmlNewProp) xmlNewProp__internal_alias __attribute((visibility("hidden")));
#define xmlNewProp xmlNewProp__internal_alias
#endif
+#endif
+#endif
-extern __typeof (xmlNewRMutex) xmlNewRMutex__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_threads
+#undef xmlNewRMutex
extern __typeof (xmlNewRMutex) xmlNewRMutex __attribute((alias("xmlNewRMutex__internal_alias")));
+#else
+#ifndef xmlNewRMutex
+extern __typeof (xmlNewRMutex) xmlNewRMutex__internal_alias __attribute((visibility("hidden")));
#define xmlNewRMutex xmlNewRMutex__internal_alias
+#endif
+#endif
-extern __typeof (xmlNewReference) xmlNewReference__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_tree
+#undef xmlNewReference
extern __typeof (xmlNewReference) xmlNewReference __attribute((alias("xmlNewReference__internal_alias")));
+#else
+#ifndef xmlNewReference
+extern __typeof (xmlNewReference) xmlNewReference__internal_alias __attribute((visibility("hidden")));
#define xmlNewReference xmlNewReference__internal_alias
+#endif
+#endif
-extern __typeof (xmlNewStringInputStream) xmlNewStringInputStream__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_parserInternals
+#undef xmlNewStringInputStream
extern __typeof (xmlNewStringInputStream) xmlNewStringInputStream __attribute((alias("xmlNewStringInputStream__internal_alias")));
+#else
+#ifndef xmlNewStringInputStream
+extern __typeof (xmlNewStringInputStream) xmlNewStringInputStream__internal_alias __attribute((visibility("hidden")));
#define xmlNewStringInputStream xmlNewStringInputStream__internal_alias
+#endif
+#endif
-extern __typeof (xmlNewText) xmlNewText__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_tree
+#undef xmlNewText
extern __typeof (xmlNewText) xmlNewText __attribute((alias("xmlNewText__internal_alias")));
+#else
+#ifndef xmlNewText
+extern __typeof (xmlNewText) xmlNewText__internal_alias __attribute((visibility("hidden")));
#define xmlNewText xmlNewText__internal_alias
+#endif
+#endif
#if defined(LIBXML_TREE_ENABLED)
-extern __typeof (xmlNewTextChild) xmlNewTextChild__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_tree
+#undef xmlNewTextChild
extern __typeof (xmlNewTextChild) xmlNewTextChild __attribute((alias("xmlNewTextChild__internal_alias")));
+#else
+#ifndef xmlNewTextChild
+extern __typeof (xmlNewTextChild) xmlNewTextChild__internal_alias __attribute((visibility("hidden")));
#define xmlNewTextChild xmlNewTextChild__internal_alias
#endif
+#endif
+#endif
-extern __typeof (xmlNewTextLen) xmlNewTextLen__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_tree
+#undef xmlNewTextLen
extern __typeof (xmlNewTextLen) xmlNewTextLen __attribute((alias("xmlNewTextLen__internal_alias")));
+#else
+#ifndef xmlNewTextLen
+extern __typeof (xmlNewTextLen) xmlNewTextLen__internal_alias __attribute((visibility("hidden")));
#define xmlNewTextLen xmlNewTextLen__internal_alias
+#endif
+#endif
#if defined(LIBXML_READER_ENABLED)
-extern __typeof (xmlNewTextReader) xmlNewTextReader__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlreader
+#undef xmlNewTextReader
extern __typeof (xmlNewTextReader) xmlNewTextReader __attribute((alias("xmlNewTextReader__internal_alias")));
+#else
+#ifndef xmlNewTextReader
+extern __typeof (xmlNewTextReader) xmlNewTextReader__internal_alias __attribute((visibility("hidden")));
#define xmlNewTextReader xmlNewTextReader__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_READER_ENABLED)
-extern __typeof (xmlNewTextReaderFilename) xmlNewTextReaderFilename__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlreader
+#undef xmlNewTextReaderFilename
extern __typeof (xmlNewTextReaderFilename) xmlNewTextReaderFilename __attribute((alias("xmlNewTextReaderFilename__internal_alias")));
+#else
+#ifndef xmlNewTextReaderFilename
+extern __typeof (xmlNewTextReaderFilename) xmlNewTextReaderFilename__internal_alias __attribute((visibility("hidden")));
#define xmlNewTextReaderFilename xmlNewTextReaderFilename__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_WRITER_ENABLED)
-extern __typeof (xmlNewTextWriter) xmlNewTextWriter__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlwriter
+#undef xmlNewTextWriter
extern __typeof (xmlNewTextWriter) xmlNewTextWriter __attribute((alias("xmlNewTextWriter__internal_alias")));
+#else
+#ifndef xmlNewTextWriter
+extern __typeof (xmlNewTextWriter) xmlNewTextWriter__internal_alias __attribute((visibility("hidden")));
#define xmlNewTextWriter xmlNewTextWriter__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_WRITER_ENABLED)
-extern __typeof (xmlNewTextWriterDoc) xmlNewTextWriterDoc__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlwriter
+#undef xmlNewTextWriterDoc
extern __typeof (xmlNewTextWriterDoc) xmlNewTextWriterDoc __attribute((alias("xmlNewTextWriterDoc__internal_alias")));
+#else
+#ifndef xmlNewTextWriterDoc
+extern __typeof (xmlNewTextWriterDoc) xmlNewTextWriterDoc__internal_alias __attribute((visibility("hidden")));
#define xmlNewTextWriterDoc xmlNewTextWriterDoc__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_WRITER_ENABLED)
-extern __typeof (xmlNewTextWriterFilename) xmlNewTextWriterFilename__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlwriter
+#undef xmlNewTextWriterFilename
extern __typeof (xmlNewTextWriterFilename) xmlNewTextWriterFilename __attribute((alias("xmlNewTextWriterFilename__internal_alias")));
+#else
+#ifndef xmlNewTextWriterFilename
+extern __typeof (xmlNewTextWriterFilename) xmlNewTextWriterFilename__internal_alias __attribute((visibility("hidden")));
#define xmlNewTextWriterFilename xmlNewTextWriterFilename__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_WRITER_ENABLED)
-extern __typeof (xmlNewTextWriterMemory) xmlNewTextWriterMemory__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlwriter
+#undef xmlNewTextWriterMemory
extern __typeof (xmlNewTextWriterMemory) xmlNewTextWriterMemory __attribute((alias("xmlNewTextWriterMemory__internal_alias")));
+#else
+#ifndef xmlNewTextWriterMemory
+extern __typeof (xmlNewTextWriterMemory) xmlNewTextWriterMemory__internal_alias __attribute((visibility("hidden")));
#define xmlNewTextWriterMemory xmlNewTextWriterMemory__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_WRITER_ENABLED)
-extern __typeof (xmlNewTextWriterPushParser) xmlNewTextWriterPushParser__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlwriter
+#undef xmlNewTextWriterPushParser
extern __typeof (xmlNewTextWriterPushParser) xmlNewTextWriterPushParser __attribute((alias("xmlNewTextWriterPushParser__internal_alias")));
+#else
+#ifndef xmlNewTextWriterPushParser
+extern __typeof (xmlNewTextWriterPushParser) xmlNewTextWriterPushParser__internal_alias __attribute((visibility("hidden")));
#define xmlNewTextWriterPushParser xmlNewTextWriterPushParser__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_WRITER_ENABLED)
-extern __typeof (xmlNewTextWriterTree) xmlNewTextWriterTree__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlwriter
+#undef xmlNewTextWriterTree
extern __typeof (xmlNewTextWriterTree) xmlNewTextWriterTree __attribute((alias("xmlNewTextWriterTree__internal_alias")));
+#else
+#ifndef xmlNewTextWriterTree
+extern __typeof (xmlNewTextWriterTree) xmlNewTextWriterTree__internal_alias __attribute((visibility("hidden")));
#define xmlNewTextWriterTree xmlNewTextWriterTree__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_VALID_ENABLED)
-extern __typeof (xmlNewValidCtxt) xmlNewValidCtxt__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_valid
+#undef xmlNewValidCtxt
extern __typeof (xmlNewValidCtxt) xmlNewValidCtxt __attribute((alias("xmlNewValidCtxt__internal_alias")));
+#else
+#ifndef xmlNewValidCtxt
+extern __typeof (xmlNewValidCtxt) xmlNewValidCtxt__internal_alias __attribute((visibility("hidden")));
#define xmlNewValidCtxt xmlNewValidCtxt__internal_alias
#endif
+#endif
+#endif
-extern __typeof (xmlNextChar) xmlNextChar__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_parserInternals
+#undef xmlNextChar
extern __typeof (xmlNextChar) xmlNextChar __attribute((alias("xmlNextChar__internal_alias")));
+#else
+#ifndef xmlNextChar
+extern __typeof (xmlNextChar) xmlNextChar__internal_alias __attribute((visibility("hidden")));
#define xmlNextChar xmlNextChar__internal_alias
+#endif
+#endif
-extern __typeof (xmlNoNetExternalEntityLoader) xmlNoNetExternalEntityLoader__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlIO
+#undef xmlNoNetExternalEntityLoader
extern __typeof (xmlNoNetExternalEntityLoader) xmlNoNetExternalEntityLoader __attribute((alias("xmlNoNetExternalEntityLoader__internal_alias")));
+#else
+#ifndef xmlNoNetExternalEntityLoader
+extern __typeof (xmlNoNetExternalEntityLoader) xmlNoNetExternalEntityLoader__internal_alias __attribute((visibility("hidden")));
#define xmlNoNetExternalEntityLoader xmlNoNetExternalEntityLoader__internal_alias
+#endif
+#endif
-extern __typeof (xmlNodeAddContent) xmlNodeAddContent__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_tree
+#undef xmlNodeAddContent
extern __typeof (xmlNodeAddContent) xmlNodeAddContent __attribute((alias("xmlNodeAddContent__internal_alias")));
+#else
+#ifndef xmlNodeAddContent
+extern __typeof (xmlNodeAddContent) xmlNodeAddContent__internal_alias __attribute((visibility("hidden")));
#define xmlNodeAddContent xmlNodeAddContent__internal_alias
+#endif
+#endif
-extern __typeof (xmlNodeAddContentLen) xmlNodeAddContentLen__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_tree
+#undef xmlNodeAddContentLen
extern __typeof (xmlNodeAddContentLen) xmlNodeAddContentLen __attribute((alias("xmlNodeAddContentLen__internal_alias")));
+#else
+#ifndef xmlNodeAddContentLen
+extern __typeof (xmlNodeAddContentLen) xmlNodeAddContentLen__internal_alias __attribute((visibility("hidden")));
#define xmlNodeAddContentLen xmlNodeAddContentLen__internal_alias
+#endif
+#endif
-extern __typeof (xmlNodeBufGetContent) xmlNodeBufGetContent__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_tree
+#undef xmlNodeBufGetContent
extern __typeof (xmlNodeBufGetContent) xmlNodeBufGetContent __attribute((alias("xmlNodeBufGetContent__internal_alias")));
+#else
+#ifndef xmlNodeBufGetContent
+extern __typeof (xmlNodeBufGetContent) xmlNodeBufGetContent__internal_alias __attribute((visibility("hidden")));
#define xmlNodeBufGetContent xmlNodeBufGetContent__internal_alias
+#endif
+#endif
#if defined(LIBXML_OUTPUT_ENABLED)
-extern __typeof (xmlNodeDump) xmlNodeDump__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlsave
+#undef xmlNodeDump
extern __typeof (xmlNodeDump) xmlNodeDump __attribute((alias("xmlNodeDump__internal_alias")));
+#else
+#ifndef xmlNodeDump
+extern __typeof (xmlNodeDump) xmlNodeDump__internal_alias __attribute((visibility("hidden")));
#define xmlNodeDump xmlNodeDump__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_OUTPUT_ENABLED)
-extern __typeof (xmlNodeDumpOutput) xmlNodeDumpOutput__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlsave
+#undef xmlNodeDumpOutput
extern __typeof (xmlNodeDumpOutput) xmlNodeDumpOutput __attribute((alias("xmlNodeDumpOutput__internal_alias")));
+#else
+#ifndef xmlNodeDumpOutput
+extern __typeof (xmlNodeDumpOutput) xmlNodeDumpOutput__internal_alias __attribute((visibility("hidden")));
#define xmlNodeDumpOutput xmlNodeDumpOutput__internal_alias
#endif
+#endif
+#endif
-extern __typeof (xmlNodeGetBase) xmlNodeGetBase__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_tree
+#undef xmlNodeGetBase
extern __typeof (xmlNodeGetBase) xmlNodeGetBase __attribute((alias("xmlNodeGetBase__internal_alias")));
+#else
+#ifndef xmlNodeGetBase
+extern __typeof (xmlNodeGetBase) xmlNodeGetBase__internal_alias __attribute((visibility("hidden")));
#define xmlNodeGetBase xmlNodeGetBase__internal_alias
+#endif
+#endif
-extern __typeof (xmlNodeGetContent) xmlNodeGetContent__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_tree
+#undef xmlNodeGetContent
extern __typeof (xmlNodeGetContent) xmlNodeGetContent __attribute((alias("xmlNodeGetContent__internal_alias")));
+#else
+#ifndef xmlNodeGetContent
+extern __typeof (xmlNodeGetContent) xmlNodeGetContent__internal_alias __attribute((visibility("hidden")));
#define xmlNodeGetContent xmlNodeGetContent__internal_alias
+#endif
+#endif
-extern __typeof (xmlNodeGetLang) xmlNodeGetLang__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_tree
+#undef xmlNodeGetLang
extern __typeof (xmlNodeGetLang) xmlNodeGetLang __attribute((alias("xmlNodeGetLang__internal_alias")));
+#else
+#ifndef xmlNodeGetLang
+extern __typeof (xmlNodeGetLang) xmlNodeGetLang__internal_alias __attribute((visibility("hidden")));
#define xmlNodeGetLang xmlNodeGetLang__internal_alias
+#endif
+#endif
-extern __typeof (xmlNodeGetSpacePreserve) xmlNodeGetSpacePreserve__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_tree
+#undef xmlNodeGetSpacePreserve
extern __typeof (xmlNodeGetSpacePreserve) xmlNodeGetSpacePreserve __attribute((alias("xmlNodeGetSpacePreserve__internal_alias")));
+#else
+#ifndef xmlNodeGetSpacePreserve
+extern __typeof (xmlNodeGetSpacePreserve) xmlNodeGetSpacePreserve__internal_alias __attribute((visibility("hidden")));
#define xmlNodeGetSpacePreserve xmlNodeGetSpacePreserve__internal_alias
+#endif
+#endif
-extern __typeof (xmlNodeIsText) xmlNodeIsText__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_tree
+#undef xmlNodeIsText
extern __typeof (xmlNodeIsText) xmlNodeIsText __attribute((alias("xmlNodeIsText__internal_alias")));
+#else
+#ifndef xmlNodeIsText
+extern __typeof (xmlNodeIsText) xmlNodeIsText__internal_alias __attribute((visibility("hidden")));
#define xmlNodeIsText xmlNodeIsText__internal_alias
+#endif
+#endif
#if defined(LIBXML_TREE_ENABLED)
-extern __typeof (xmlNodeListGetRawString) xmlNodeListGetRawString__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_tree
+#undef xmlNodeListGetRawString
extern __typeof (xmlNodeListGetRawString) xmlNodeListGetRawString __attribute((alias("xmlNodeListGetRawString__internal_alias")));
+#else
+#ifndef xmlNodeListGetRawString
+extern __typeof (xmlNodeListGetRawString) xmlNodeListGetRawString__internal_alias __attribute((visibility("hidden")));
#define xmlNodeListGetRawString xmlNodeListGetRawString__internal_alias
#endif
+#endif
+#endif
-extern __typeof (xmlNodeListGetString) xmlNodeListGetString__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_tree
+#undef xmlNodeListGetString
extern __typeof (xmlNodeListGetString) xmlNodeListGetString __attribute((alias("xmlNodeListGetString__internal_alias")));
+#else
+#ifndef xmlNodeListGetString
+extern __typeof (xmlNodeListGetString) xmlNodeListGetString__internal_alias __attribute((visibility("hidden")));
#define xmlNodeListGetString xmlNodeListGetString__internal_alias
+#endif
+#endif
#if defined(LIBXML_TREE_ENABLED) || defined(LIBXML_XINCLUDE_ENABLED)
-extern __typeof (xmlNodeSetBase) xmlNodeSetBase__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_tree
+#undef xmlNodeSetBase
extern __typeof (xmlNodeSetBase) xmlNodeSetBase __attribute((alias("xmlNodeSetBase__internal_alias")));
+#else
+#ifndef xmlNodeSetBase
+extern __typeof (xmlNodeSetBase) xmlNodeSetBase__internal_alias __attribute((visibility("hidden")));
#define xmlNodeSetBase xmlNodeSetBase__internal_alias
#endif
+#endif
+#endif
-extern __typeof (xmlNodeSetContent) xmlNodeSetContent__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_tree
+#undef xmlNodeSetContent
extern __typeof (xmlNodeSetContent) xmlNodeSetContent __attribute((alias("xmlNodeSetContent__internal_alias")));
+#else
+#ifndef xmlNodeSetContent
+extern __typeof (xmlNodeSetContent) xmlNodeSetContent__internal_alias __attribute((visibility("hidden")));
#define xmlNodeSetContent xmlNodeSetContent__internal_alias
+#endif
+#endif
#if defined(LIBXML_TREE_ENABLED)
-extern __typeof (xmlNodeSetContentLen) xmlNodeSetContentLen__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_tree
+#undef xmlNodeSetContentLen
extern __typeof (xmlNodeSetContentLen) xmlNodeSetContentLen __attribute((alias("xmlNodeSetContentLen__internal_alias")));
+#else
+#ifndef xmlNodeSetContentLen
+extern __typeof (xmlNodeSetContentLen) xmlNodeSetContentLen__internal_alias __attribute((visibility("hidden")));
#define xmlNodeSetContentLen xmlNodeSetContentLen__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_TREE_ENABLED)
-extern __typeof (xmlNodeSetLang) xmlNodeSetLang__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_tree
+#undef xmlNodeSetLang
extern __typeof (xmlNodeSetLang) xmlNodeSetLang __attribute((alias("xmlNodeSetLang__internal_alias")));
+#else
+#ifndef xmlNodeSetLang
+extern __typeof (xmlNodeSetLang) xmlNodeSetLang__internal_alias __attribute((visibility("hidden")));
#define xmlNodeSetLang xmlNodeSetLang__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_TREE_ENABLED)
-extern __typeof (xmlNodeSetName) xmlNodeSetName__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_tree
+#undef xmlNodeSetName
extern __typeof (xmlNodeSetName) xmlNodeSetName __attribute((alias("xmlNodeSetName__internal_alias")));
+#else
+#ifndef xmlNodeSetName
+extern __typeof (xmlNodeSetName) xmlNodeSetName__internal_alias __attribute((visibility("hidden")));
#define xmlNodeSetName xmlNodeSetName__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_TREE_ENABLED)
-extern __typeof (xmlNodeSetSpacePreserve) xmlNodeSetSpacePreserve__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_tree
+#undef xmlNodeSetSpacePreserve
extern __typeof (xmlNodeSetSpacePreserve) xmlNodeSetSpacePreserve __attribute((alias("xmlNodeSetSpacePreserve__internal_alias")));
+#else
+#ifndef xmlNodeSetSpacePreserve
+extern __typeof (xmlNodeSetSpacePreserve) xmlNodeSetSpacePreserve__internal_alias __attribute((visibility("hidden")));
#define xmlNodeSetSpacePreserve xmlNodeSetSpacePreserve__internal_alias
#endif
+#endif
+#endif
-extern __typeof (xmlNormalizeURIPath) xmlNormalizeURIPath__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_uri
+#undef xmlNormalizeURIPath
extern __typeof (xmlNormalizeURIPath) xmlNormalizeURIPath __attribute((alias("xmlNormalizeURIPath__internal_alias")));
+#else
+#ifndef xmlNormalizeURIPath
+extern __typeof (xmlNormalizeURIPath) xmlNormalizeURIPath__internal_alias __attribute((visibility("hidden")));
#define xmlNormalizeURIPath xmlNormalizeURIPath__internal_alias
+#endif
+#endif
-extern __typeof (xmlNormalizeWindowsPath) xmlNormalizeWindowsPath__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlIO
+#undef xmlNormalizeWindowsPath
extern __typeof (xmlNormalizeWindowsPath) xmlNormalizeWindowsPath __attribute((alias("xmlNormalizeWindowsPath__internal_alias")));
+#else
+#ifndef xmlNormalizeWindowsPath
+extern __typeof (xmlNormalizeWindowsPath) xmlNormalizeWindowsPath__internal_alias __attribute((visibility("hidden")));
#define xmlNormalizeWindowsPath xmlNormalizeWindowsPath__internal_alias
+#endif
+#endif
#if defined(LIBXML_OUTPUT_ENABLED)
-extern __typeof (xmlOutputBufferClose) xmlOutputBufferClose__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlIO
+#undef xmlOutputBufferClose
extern __typeof (xmlOutputBufferClose) xmlOutputBufferClose __attribute((alias("xmlOutputBufferClose__internal_alias")));
+#else
+#ifndef xmlOutputBufferClose
+extern __typeof (xmlOutputBufferClose) xmlOutputBufferClose__internal_alias __attribute((visibility("hidden")));
#define xmlOutputBufferClose xmlOutputBufferClose__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_OUTPUT_ENABLED)
-extern __typeof (xmlOutputBufferCreateFd) xmlOutputBufferCreateFd__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlIO
+#undef xmlOutputBufferCreateFd
extern __typeof (xmlOutputBufferCreateFd) xmlOutputBufferCreateFd __attribute((alias("xmlOutputBufferCreateFd__internal_alias")));
+#else
+#ifndef xmlOutputBufferCreateFd
+extern __typeof (xmlOutputBufferCreateFd) xmlOutputBufferCreateFd__internal_alias __attribute((visibility("hidden")));
#define xmlOutputBufferCreateFd xmlOutputBufferCreateFd__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_OUTPUT_ENABLED)
-extern __typeof (xmlOutputBufferCreateFile) xmlOutputBufferCreateFile__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlIO
+#undef xmlOutputBufferCreateFile
extern __typeof (xmlOutputBufferCreateFile) xmlOutputBufferCreateFile __attribute((alias("xmlOutputBufferCreateFile__internal_alias")));
+#else
+#ifndef xmlOutputBufferCreateFile
+extern __typeof (xmlOutputBufferCreateFile) xmlOutputBufferCreateFile__internal_alias __attribute((visibility("hidden")));
#define xmlOutputBufferCreateFile xmlOutputBufferCreateFile__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_OUTPUT_ENABLED)
-extern __typeof (xmlOutputBufferCreateFilename) xmlOutputBufferCreateFilename__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlIO
+#undef xmlOutputBufferCreateFilename
extern __typeof (xmlOutputBufferCreateFilename) xmlOutputBufferCreateFilename __attribute((alias("xmlOutputBufferCreateFilename__internal_alias")));
+#else
+#ifndef xmlOutputBufferCreateFilename
+extern __typeof (xmlOutputBufferCreateFilename) xmlOutputBufferCreateFilename__internal_alias __attribute((visibility("hidden")));
#define xmlOutputBufferCreateFilename xmlOutputBufferCreateFilename__internal_alias
#endif
+#endif
+#endif
-extern __typeof (xmlOutputBufferCreateFilenameDefault) xmlOutputBufferCreateFilenameDefault__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlIO
+#undef xmlOutputBufferCreateFilenameDefault
extern __typeof (xmlOutputBufferCreateFilenameDefault) xmlOutputBufferCreateFilenameDefault __attribute((alias("xmlOutputBufferCreateFilenameDefault__internal_alias")));
+#else
+#ifndef xmlOutputBufferCreateFilenameDefault
+extern __typeof (xmlOutputBufferCreateFilenameDefault) xmlOutputBufferCreateFilenameDefault__internal_alias __attribute((visibility("hidden")));
#define xmlOutputBufferCreateFilenameDefault xmlOutputBufferCreateFilenameDefault__internal_alias
+#endif
+#endif
#if defined(LIBXML_OUTPUT_ENABLED)
-extern __typeof (xmlOutputBufferCreateIO) xmlOutputBufferCreateIO__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlIO
+#undef xmlOutputBufferCreateIO
extern __typeof (xmlOutputBufferCreateIO) xmlOutputBufferCreateIO __attribute((alias("xmlOutputBufferCreateIO__internal_alias")));
+#else
+#ifndef xmlOutputBufferCreateIO
+extern __typeof (xmlOutputBufferCreateIO) xmlOutputBufferCreateIO__internal_alias __attribute((visibility("hidden")));
#define xmlOutputBufferCreateIO xmlOutputBufferCreateIO__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_OUTPUT_ENABLED)
-extern __typeof (xmlOutputBufferFlush) xmlOutputBufferFlush__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlIO
+#undef xmlOutputBufferFlush
extern __typeof (xmlOutputBufferFlush) xmlOutputBufferFlush __attribute((alias("xmlOutputBufferFlush__internal_alias")));
+#else
+#ifndef xmlOutputBufferFlush
+extern __typeof (xmlOutputBufferFlush) xmlOutputBufferFlush__internal_alias __attribute((visibility("hidden")));
#define xmlOutputBufferFlush xmlOutputBufferFlush__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_OUTPUT_ENABLED)
-extern __typeof (xmlOutputBufferWrite) xmlOutputBufferWrite__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlIO
+#undef xmlOutputBufferWrite
extern __typeof (xmlOutputBufferWrite) xmlOutputBufferWrite __attribute((alias("xmlOutputBufferWrite__internal_alias")));
+#else
+#ifndef xmlOutputBufferWrite
+extern __typeof (xmlOutputBufferWrite) xmlOutputBufferWrite__internal_alias __attribute((visibility("hidden")));
#define xmlOutputBufferWrite xmlOutputBufferWrite__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_OUTPUT_ENABLED)
-extern __typeof (xmlOutputBufferWriteEscape) xmlOutputBufferWriteEscape__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlIO
+#undef xmlOutputBufferWriteEscape
extern __typeof (xmlOutputBufferWriteEscape) xmlOutputBufferWriteEscape __attribute((alias("xmlOutputBufferWriteEscape__internal_alias")));
+#else
+#ifndef xmlOutputBufferWriteEscape
+extern __typeof (xmlOutputBufferWriteEscape) xmlOutputBufferWriteEscape__internal_alias __attribute((visibility("hidden")));
#define xmlOutputBufferWriteEscape xmlOutputBufferWriteEscape__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_OUTPUT_ENABLED)
-extern __typeof (xmlOutputBufferWriteString) xmlOutputBufferWriteString__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlIO
+#undef xmlOutputBufferWriteString
extern __typeof (xmlOutputBufferWriteString) xmlOutputBufferWriteString __attribute((alias("xmlOutputBufferWriteString__internal_alias")));
+#else
+#ifndef xmlOutputBufferWriteString
+extern __typeof (xmlOutputBufferWriteString) xmlOutputBufferWriteString__internal_alias __attribute((visibility("hidden")));
#define xmlOutputBufferWriteString xmlOutputBufferWriteString__internal_alias
#endif
+#endif
+#endif
-extern __typeof (xmlParseAttValue) xmlParseAttValue__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_parser
+#undef xmlParseAttValue
extern __typeof (xmlParseAttValue) xmlParseAttValue __attribute((alias("xmlParseAttValue__internal_alias")));
+#else
+#ifndef xmlParseAttValue
+extern __typeof (xmlParseAttValue) xmlParseAttValue__internal_alias __attribute((visibility("hidden")));
#define xmlParseAttValue xmlParseAttValue__internal_alias
+#endif
+#endif
#if defined(LIBXML_SAX1_ENABLED)
-extern __typeof (xmlParseAttribute) xmlParseAttribute__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_parser
+#undef xmlParseAttribute
extern __typeof (xmlParseAttribute) xmlParseAttribute __attribute((alias("xmlParseAttribute__internal_alias")));
+#else
+#ifndef xmlParseAttribute
+extern __typeof (xmlParseAttribute) xmlParseAttribute__internal_alias __attribute((visibility("hidden")));
#define xmlParseAttribute xmlParseAttribute__internal_alias
#endif
+#endif
+#endif
-extern __typeof (xmlParseAttributeListDecl) xmlParseAttributeListDecl__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_parser
+#undef xmlParseAttributeListDecl
extern __typeof (xmlParseAttributeListDecl) xmlParseAttributeListDecl __attribute((alias("xmlParseAttributeListDecl__internal_alias")));
+#else
+#ifndef xmlParseAttributeListDecl
+extern __typeof (xmlParseAttributeListDecl) xmlParseAttributeListDecl__internal_alias __attribute((visibility("hidden")));
#define xmlParseAttributeListDecl xmlParseAttributeListDecl__internal_alias
+#endif
+#endif
-extern __typeof (xmlParseAttributeType) xmlParseAttributeType__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_parser
+#undef xmlParseAttributeType
extern __typeof (xmlParseAttributeType) xmlParseAttributeType __attribute((alias("xmlParseAttributeType__internal_alias")));
+#else
+#ifndef xmlParseAttributeType
+extern __typeof (xmlParseAttributeType) xmlParseAttributeType__internal_alias __attribute((visibility("hidden")));
#define xmlParseAttributeType xmlParseAttributeType__internal_alias
+#endif
+#endif
#if defined(LIBXML_SAX1_ENABLED)
-extern __typeof (xmlParseBalancedChunkMemory) xmlParseBalancedChunkMemory__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_parser
+#undef xmlParseBalancedChunkMemory
extern __typeof (xmlParseBalancedChunkMemory) xmlParseBalancedChunkMemory __attribute((alias("xmlParseBalancedChunkMemory__internal_alias")));
+#else
+#ifndef xmlParseBalancedChunkMemory
+extern __typeof (xmlParseBalancedChunkMemory) xmlParseBalancedChunkMemory__internal_alias __attribute((visibility("hidden")));
#define xmlParseBalancedChunkMemory xmlParseBalancedChunkMemory__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_SAX1_ENABLED)
-extern __typeof (xmlParseBalancedChunkMemoryRecover) xmlParseBalancedChunkMemoryRecover__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_parser
+#undef xmlParseBalancedChunkMemoryRecover
extern __typeof (xmlParseBalancedChunkMemoryRecover) xmlParseBalancedChunkMemoryRecover __attribute((alias("xmlParseBalancedChunkMemoryRecover__internal_alias")));
+#else
+#ifndef xmlParseBalancedChunkMemoryRecover
+extern __typeof (xmlParseBalancedChunkMemoryRecover) xmlParseBalancedChunkMemoryRecover__internal_alias __attribute((visibility("hidden")));
#define xmlParseBalancedChunkMemoryRecover xmlParseBalancedChunkMemoryRecover__internal_alias
#endif
+#endif
+#endif
-extern __typeof (xmlParseCDSect) xmlParseCDSect__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_parser
+#undef xmlParseCDSect
extern __typeof (xmlParseCDSect) xmlParseCDSect __attribute((alias("xmlParseCDSect__internal_alias")));
+#else
+#ifndef xmlParseCDSect
+extern __typeof (xmlParseCDSect) xmlParseCDSect__internal_alias __attribute((visibility("hidden")));
#define xmlParseCDSect xmlParseCDSect__internal_alias
+#endif
+#endif
#if defined(LIBXML_CATALOG_ENABLED)
-extern __typeof (xmlParseCatalogFile) xmlParseCatalogFile__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_catalog
+#undef xmlParseCatalogFile
extern __typeof (xmlParseCatalogFile) xmlParseCatalogFile __attribute((alias("xmlParseCatalogFile__internal_alias")));
+#else
+#ifndef xmlParseCatalogFile
+extern __typeof (xmlParseCatalogFile) xmlParseCatalogFile__internal_alias __attribute((visibility("hidden")));
#define xmlParseCatalogFile xmlParseCatalogFile__internal_alias
#endif
+#endif
+#endif
-extern __typeof (xmlParseCharData) xmlParseCharData__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_parser
+#undef xmlParseCharData
extern __typeof (xmlParseCharData) xmlParseCharData __attribute((alias("xmlParseCharData__internal_alias")));
+#else
+#ifndef xmlParseCharData
+extern __typeof (xmlParseCharData) xmlParseCharData__internal_alias __attribute((visibility("hidden")));
#define xmlParseCharData xmlParseCharData__internal_alias
+#endif
+#endif
-extern __typeof (xmlParseCharEncoding) xmlParseCharEncoding__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_encoding
+#undef xmlParseCharEncoding
extern __typeof (xmlParseCharEncoding) xmlParseCharEncoding __attribute((alias("xmlParseCharEncoding__internal_alias")));
+#else
+#ifndef xmlParseCharEncoding
+extern __typeof (xmlParseCharEncoding) xmlParseCharEncoding__internal_alias __attribute((visibility("hidden")));
#define xmlParseCharEncoding xmlParseCharEncoding__internal_alias
+#endif
+#endif
-extern __typeof (xmlParseCharRef) xmlParseCharRef__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_parser
+#undef xmlParseCharRef
extern __typeof (xmlParseCharRef) xmlParseCharRef __attribute((alias("xmlParseCharRef__internal_alias")));
+#else
+#ifndef xmlParseCharRef
+extern __typeof (xmlParseCharRef) xmlParseCharRef__internal_alias __attribute((visibility("hidden")));
#define xmlParseCharRef xmlParseCharRef__internal_alias
+#endif
+#endif
#if defined(LIBXML_PUSH_ENABLED)
-extern __typeof (xmlParseChunk) xmlParseChunk__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_parser
+#undef xmlParseChunk
extern __typeof (xmlParseChunk) xmlParseChunk __attribute((alias("xmlParseChunk__internal_alias")));
+#else
+#ifndef xmlParseChunk
+extern __typeof (xmlParseChunk) xmlParseChunk__internal_alias __attribute((visibility("hidden")));
#define xmlParseChunk xmlParseChunk__internal_alias
#endif
+#endif
+#endif
-extern __typeof (xmlParseComment) xmlParseComment__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_parser
+#undef xmlParseComment
extern __typeof (xmlParseComment) xmlParseComment __attribute((alias("xmlParseComment__internal_alias")));
+#else
+#ifndef xmlParseComment
+extern __typeof (xmlParseComment) xmlParseComment__internal_alias __attribute((visibility("hidden")));
#define xmlParseComment xmlParseComment__internal_alias
+#endif
+#endif
-extern __typeof (xmlParseContent) xmlParseContent__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_parser
+#undef xmlParseContent
extern __typeof (xmlParseContent) xmlParseContent __attribute((alias("xmlParseContent__internal_alias")));
+#else
+#ifndef xmlParseContent
+extern __typeof (xmlParseContent) xmlParseContent__internal_alias __attribute((visibility("hidden")));
#define xmlParseContent xmlParseContent__internal_alias
+#endif
+#endif
-extern __typeof (xmlParseCtxtExternalEntity) xmlParseCtxtExternalEntity__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_parser
+#undef xmlParseCtxtExternalEntity
extern __typeof (xmlParseCtxtExternalEntity) xmlParseCtxtExternalEntity __attribute((alias("xmlParseCtxtExternalEntity__internal_alias")));
+#else
+#ifndef xmlParseCtxtExternalEntity
+extern __typeof (xmlParseCtxtExternalEntity) xmlParseCtxtExternalEntity__internal_alias __attribute((visibility("hidden")));
#define xmlParseCtxtExternalEntity xmlParseCtxtExternalEntity__internal_alias
+#endif
+#endif
#if defined(LIBXML_VALID_ENABLED)
-extern __typeof (xmlParseDTD) xmlParseDTD__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_parser
+#undef xmlParseDTD
extern __typeof (xmlParseDTD) xmlParseDTD __attribute((alias("xmlParseDTD__internal_alias")));
+#else
+#ifndef xmlParseDTD
+extern __typeof (xmlParseDTD) xmlParseDTD__internal_alias __attribute((visibility("hidden")));
#define xmlParseDTD xmlParseDTD__internal_alias
#endif
+#endif
+#endif
-extern __typeof (xmlParseDefaultDecl) xmlParseDefaultDecl__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_parser
+#undef xmlParseDefaultDecl
extern __typeof (xmlParseDefaultDecl) xmlParseDefaultDecl __attribute((alias("xmlParseDefaultDecl__internal_alias")));
+#else
+#ifndef xmlParseDefaultDecl
+extern __typeof (xmlParseDefaultDecl) xmlParseDefaultDecl__internal_alias __attribute((visibility("hidden")));
#define xmlParseDefaultDecl xmlParseDefaultDecl__internal_alias
+#endif
+#endif
#if defined(LIBXML_SAX1_ENABLED)
-extern __typeof (xmlParseDoc) xmlParseDoc__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_parser
+#undef xmlParseDoc
extern __typeof (xmlParseDoc) xmlParseDoc __attribute((alias("xmlParseDoc__internal_alias")));
+#else
+#ifndef xmlParseDoc
+extern __typeof (xmlParseDoc) xmlParseDoc__internal_alias __attribute((visibility("hidden")));
#define xmlParseDoc xmlParseDoc__internal_alias
#endif
+#endif
+#endif
-extern __typeof (xmlParseDocTypeDecl) xmlParseDocTypeDecl__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_parser
+#undef xmlParseDocTypeDecl
extern __typeof (xmlParseDocTypeDecl) xmlParseDocTypeDecl __attribute((alias("xmlParseDocTypeDecl__internal_alias")));
+#else
+#ifndef xmlParseDocTypeDecl
+extern __typeof (xmlParseDocTypeDecl) xmlParseDocTypeDecl__internal_alias __attribute((visibility("hidden")));
#define xmlParseDocTypeDecl xmlParseDocTypeDecl__internal_alias
+#endif
+#endif
-extern __typeof (xmlParseDocument) xmlParseDocument__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_parser
+#undef xmlParseDocument
extern __typeof (xmlParseDocument) xmlParseDocument __attribute((alias("xmlParseDocument__internal_alias")));
+#else
+#ifndef xmlParseDocument
+extern __typeof (xmlParseDocument) xmlParseDocument__internal_alias __attribute((visibility("hidden")));
#define xmlParseDocument xmlParseDocument__internal_alias
+#endif
+#endif
-extern __typeof (xmlParseElement) xmlParseElement__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_parser
+#undef xmlParseElement
extern __typeof (xmlParseElement) xmlParseElement __attribute((alias("xmlParseElement__internal_alias")));
+#else
+#ifndef xmlParseElement
+extern __typeof (xmlParseElement) xmlParseElement__internal_alias __attribute((visibility("hidden")));
#define xmlParseElement xmlParseElement__internal_alias
+#endif
+#endif
-extern __typeof (xmlParseElementChildrenContentDecl) xmlParseElementChildrenContentDecl__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_parser
+#undef xmlParseElementChildrenContentDecl
extern __typeof (xmlParseElementChildrenContentDecl) xmlParseElementChildrenContentDecl __attribute((alias("xmlParseElementChildrenContentDecl__internal_alias")));
+#else
+#ifndef xmlParseElementChildrenContentDecl
+extern __typeof (xmlParseElementChildrenContentDecl) xmlParseElementChildrenContentDecl__internal_alias __attribute((visibility("hidden")));
#define xmlParseElementChildrenContentDecl xmlParseElementChildrenContentDecl__internal_alias
+#endif
+#endif
-extern __typeof (xmlParseElementContentDecl) xmlParseElementContentDecl__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_parser
+#undef xmlParseElementContentDecl
extern __typeof (xmlParseElementContentDecl) xmlParseElementContentDecl __attribute((alias("xmlParseElementContentDecl__internal_alias")));
+#else
+#ifndef xmlParseElementContentDecl
+extern __typeof (xmlParseElementContentDecl) xmlParseElementContentDecl__internal_alias __attribute((visibility("hidden")));
#define xmlParseElementContentDecl xmlParseElementContentDecl__internal_alias
+#endif
+#endif
-extern __typeof (xmlParseElementDecl) xmlParseElementDecl__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_parser
+#undef xmlParseElementDecl
extern __typeof (xmlParseElementDecl) xmlParseElementDecl __attribute((alias("xmlParseElementDecl__internal_alias")));
+#else
+#ifndef xmlParseElementDecl
+extern __typeof (xmlParseElementDecl) xmlParseElementDecl__internal_alias __attribute((visibility("hidden")));
#define xmlParseElementDecl xmlParseElementDecl__internal_alias
+#endif
+#endif
-extern __typeof (xmlParseElementMixedContentDecl) xmlParseElementMixedContentDecl__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_parser
+#undef xmlParseElementMixedContentDecl
extern __typeof (xmlParseElementMixedContentDecl) xmlParseElementMixedContentDecl __attribute((alias("xmlParseElementMixedContentDecl__internal_alias")));
+#else
+#ifndef xmlParseElementMixedContentDecl
+extern __typeof (xmlParseElementMixedContentDecl) xmlParseElementMixedContentDecl__internal_alias __attribute((visibility("hidden")));
#define xmlParseElementMixedContentDecl xmlParseElementMixedContentDecl__internal_alias
+#endif
+#endif
-extern __typeof (xmlParseEncName) xmlParseEncName__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_parser
+#undef xmlParseEncName
extern __typeof (xmlParseEncName) xmlParseEncName __attribute((alias("xmlParseEncName__internal_alias")));
+#else
+#ifndef xmlParseEncName
+extern __typeof (xmlParseEncName) xmlParseEncName__internal_alias __attribute((visibility("hidden")));
#define xmlParseEncName xmlParseEncName__internal_alias
+#endif
+#endif
-extern __typeof (xmlParseEncodingDecl) xmlParseEncodingDecl__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_parser
+#undef xmlParseEncodingDecl
extern __typeof (xmlParseEncodingDecl) xmlParseEncodingDecl __attribute((alias("xmlParseEncodingDecl__internal_alias")));
+#else
+#ifndef xmlParseEncodingDecl
+extern __typeof (xmlParseEncodingDecl) xmlParseEncodingDecl__internal_alias __attribute((visibility("hidden")));
#define xmlParseEncodingDecl xmlParseEncodingDecl__internal_alias
+#endif
+#endif
#if defined(LIBXML_SAX1_ENABLED)
-extern __typeof (xmlParseEndTag) xmlParseEndTag__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_parser
+#undef xmlParseEndTag
extern __typeof (xmlParseEndTag) xmlParseEndTag __attribute((alias("xmlParseEndTag__internal_alias")));
+#else
+#ifndef xmlParseEndTag
+extern __typeof (xmlParseEndTag) xmlParseEndTag__internal_alias __attribute((visibility("hidden")));
#define xmlParseEndTag xmlParseEndTag__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_SAX1_ENABLED)
-extern __typeof (xmlParseEntity) xmlParseEntity__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_parser
+#undef xmlParseEntity
extern __typeof (xmlParseEntity) xmlParseEntity __attribute((alias("xmlParseEntity__internal_alias")));
+#else
+#ifndef xmlParseEntity
+extern __typeof (xmlParseEntity) xmlParseEntity__internal_alias __attribute((visibility("hidden")));
#define xmlParseEntity xmlParseEntity__internal_alias
#endif
+#endif
+#endif
-extern __typeof (xmlParseEntityDecl) xmlParseEntityDecl__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_parser
+#undef xmlParseEntityDecl
extern __typeof (xmlParseEntityDecl) xmlParseEntityDecl __attribute((alias("xmlParseEntityDecl__internal_alias")));
+#else
+#ifndef xmlParseEntityDecl
+extern __typeof (xmlParseEntityDecl) xmlParseEntityDecl__internal_alias __attribute((visibility("hidden")));
#define xmlParseEntityDecl xmlParseEntityDecl__internal_alias
+#endif
+#endif
-extern __typeof (xmlParseEntityRef) xmlParseEntityRef__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_parser
+#undef xmlParseEntityRef
extern __typeof (xmlParseEntityRef) xmlParseEntityRef __attribute((alias("xmlParseEntityRef__internal_alias")));
+#else
+#ifndef xmlParseEntityRef
+extern __typeof (xmlParseEntityRef) xmlParseEntityRef__internal_alias __attribute((visibility("hidden")));
#define xmlParseEntityRef xmlParseEntityRef__internal_alias
+#endif
+#endif
-extern __typeof (xmlParseEntityValue) xmlParseEntityValue__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_parser
+#undef xmlParseEntityValue
extern __typeof (xmlParseEntityValue) xmlParseEntityValue __attribute((alias("xmlParseEntityValue__internal_alias")));
+#else
+#ifndef xmlParseEntityValue
+extern __typeof (xmlParseEntityValue) xmlParseEntityValue__internal_alias __attribute((visibility("hidden")));
#define xmlParseEntityValue xmlParseEntityValue__internal_alias
+#endif
+#endif
-extern __typeof (xmlParseEnumeratedType) xmlParseEnumeratedType__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_parser
+#undef xmlParseEnumeratedType
extern __typeof (xmlParseEnumeratedType) xmlParseEnumeratedType __attribute((alias("xmlParseEnumeratedType__internal_alias")));
+#else
+#ifndef xmlParseEnumeratedType
+extern __typeof (xmlParseEnumeratedType) xmlParseEnumeratedType__internal_alias __attribute((visibility("hidden")));
#define xmlParseEnumeratedType xmlParseEnumeratedType__internal_alias
+#endif
+#endif
-extern __typeof (xmlParseEnumerationType) xmlParseEnumerationType__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_parser
+#undef xmlParseEnumerationType
extern __typeof (xmlParseEnumerationType) xmlParseEnumerationType __attribute((alias("xmlParseEnumerationType__internal_alias")));
+#else
+#ifndef xmlParseEnumerationType
+extern __typeof (xmlParseEnumerationType) xmlParseEnumerationType__internal_alias __attribute((visibility("hidden")));
#define xmlParseEnumerationType xmlParseEnumerationType__internal_alias
+#endif
+#endif
-extern __typeof (xmlParseExtParsedEnt) xmlParseExtParsedEnt__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_parser
+#undef xmlParseExtParsedEnt
extern __typeof (xmlParseExtParsedEnt) xmlParseExtParsedEnt __attribute((alias("xmlParseExtParsedEnt__internal_alias")));
+#else
+#ifndef xmlParseExtParsedEnt
+extern __typeof (xmlParseExtParsedEnt) xmlParseExtParsedEnt__internal_alias __attribute((visibility("hidden")));
#define xmlParseExtParsedEnt xmlParseExtParsedEnt__internal_alias
+#endif
+#endif
#if defined(LIBXML_SAX1_ENABLED)
-extern __typeof (xmlParseExternalEntity) xmlParseExternalEntity__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_parser
+#undef xmlParseExternalEntity
extern __typeof (xmlParseExternalEntity) xmlParseExternalEntity __attribute((alias("xmlParseExternalEntity__internal_alias")));
+#else
+#ifndef xmlParseExternalEntity
+extern __typeof (xmlParseExternalEntity) xmlParseExternalEntity__internal_alias __attribute((visibility("hidden")));
#define xmlParseExternalEntity xmlParseExternalEntity__internal_alias
#endif
+#endif
+#endif
-extern __typeof (xmlParseExternalID) xmlParseExternalID__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_parser
+#undef xmlParseExternalID
extern __typeof (xmlParseExternalID) xmlParseExternalID __attribute((alias("xmlParseExternalID__internal_alias")));
+#else
+#ifndef xmlParseExternalID
+extern __typeof (xmlParseExternalID) xmlParseExternalID__internal_alias __attribute((visibility("hidden")));
#define xmlParseExternalID xmlParseExternalID__internal_alias
+#endif
+#endif
-extern __typeof (xmlParseExternalSubset) xmlParseExternalSubset__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_parser
+#undef xmlParseExternalSubset
extern __typeof (xmlParseExternalSubset) xmlParseExternalSubset __attribute((alias("xmlParseExternalSubset__internal_alias")));
+#else
+#ifndef xmlParseExternalSubset
+extern __typeof (xmlParseExternalSubset) xmlParseExternalSubset__internal_alias __attribute((visibility("hidden")));
#define xmlParseExternalSubset xmlParseExternalSubset__internal_alias
+#endif
+#endif
#if defined(LIBXML_SAX1_ENABLED)
-extern __typeof (xmlParseFile) xmlParseFile__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_parser
+#undef xmlParseFile
extern __typeof (xmlParseFile) xmlParseFile __attribute((alias("xmlParseFile__internal_alias")));
+#else
+#ifndef xmlParseFile
+extern __typeof (xmlParseFile) xmlParseFile__internal_alias __attribute((visibility("hidden")));
#define xmlParseFile xmlParseFile__internal_alias
#endif
+#endif
+#endif
-extern __typeof (xmlParseInNodeContext) xmlParseInNodeContext__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_parser
+#undef xmlParseInNodeContext
extern __typeof (xmlParseInNodeContext) xmlParseInNodeContext __attribute((alias("xmlParseInNodeContext__internal_alias")));
+#else
+#ifndef xmlParseInNodeContext
+extern __typeof (xmlParseInNodeContext) xmlParseInNodeContext__internal_alias __attribute((visibility("hidden")));
#define xmlParseInNodeContext xmlParseInNodeContext__internal_alias
+#endif
+#endif
-extern __typeof (xmlParseMarkupDecl) xmlParseMarkupDecl__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_parser
+#undef xmlParseMarkupDecl
extern __typeof (xmlParseMarkupDecl) xmlParseMarkupDecl __attribute((alias("xmlParseMarkupDecl__internal_alias")));
+#else
+#ifndef xmlParseMarkupDecl
+extern __typeof (xmlParseMarkupDecl) xmlParseMarkupDecl__internal_alias __attribute((visibility("hidden")));
#define xmlParseMarkupDecl xmlParseMarkupDecl__internal_alias
+#endif
+#endif
#if defined(LIBXML_SAX1_ENABLED)
-extern __typeof (xmlParseMemory) xmlParseMemory__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_parser
+#undef xmlParseMemory
extern __typeof (xmlParseMemory) xmlParseMemory __attribute((alias("xmlParseMemory__internal_alias")));
+#else
+#ifndef xmlParseMemory
+extern __typeof (xmlParseMemory) xmlParseMemory__internal_alias __attribute((visibility("hidden")));
#define xmlParseMemory xmlParseMemory__internal_alias
#endif
+#endif
+#endif
-extern __typeof (xmlParseMisc) xmlParseMisc__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_parser
+#undef xmlParseMisc
extern __typeof (xmlParseMisc) xmlParseMisc __attribute((alias("xmlParseMisc__internal_alias")));
+#else
+#ifndef xmlParseMisc
+extern __typeof (xmlParseMisc) xmlParseMisc__internal_alias __attribute((visibility("hidden")));
#define xmlParseMisc xmlParseMisc__internal_alias
+#endif
+#endif
-extern __typeof (xmlParseName) xmlParseName__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_parser
+#undef xmlParseName
extern __typeof (xmlParseName) xmlParseName __attribute((alias("xmlParseName__internal_alias")));
+#else
+#ifndef xmlParseName
+extern __typeof (xmlParseName) xmlParseName__internal_alias __attribute((visibility("hidden")));
#define xmlParseName xmlParseName__internal_alias
+#endif
+#endif
#if defined(LIBXML_LEGACY_ENABLED)
-extern __typeof (xmlParseNamespace) xmlParseNamespace__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_legacy
+#undef xmlParseNamespace
extern __typeof (xmlParseNamespace) xmlParseNamespace __attribute((alias("xmlParseNamespace__internal_alias")));
+#else
+#ifndef xmlParseNamespace
+extern __typeof (xmlParseNamespace) xmlParseNamespace__internal_alias __attribute((visibility("hidden")));
#define xmlParseNamespace xmlParseNamespace__internal_alias
#endif
+#endif
+#endif
-extern __typeof (xmlParseNmtoken) xmlParseNmtoken__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_parser
+#undef xmlParseNmtoken
extern __typeof (xmlParseNmtoken) xmlParseNmtoken __attribute((alias("xmlParseNmtoken__internal_alias")));
+#else
+#ifndef xmlParseNmtoken
+extern __typeof (xmlParseNmtoken) xmlParseNmtoken__internal_alias __attribute((visibility("hidden")));
#define xmlParseNmtoken xmlParseNmtoken__internal_alias
+#endif
+#endif
-extern __typeof (xmlParseNotationDecl) xmlParseNotationDecl__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_parser
+#undef xmlParseNotationDecl
extern __typeof (xmlParseNotationDecl) xmlParseNotationDecl __attribute((alias("xmlParseNotationDecl__internal_alias")));
+#else
+#ifndef xmlParseNotationDecl
+extern __typeof (xmlParseNotationDecl) xmlParseNotationDecl__internal_alias __attribute((visibility("hidden")));
#define xmlParseNotationDecl xmlParseNotationDecl__internal_alias
+#endif
+#endif
-extern __typeof (xmlParseNotationType) xmlParseNotationType__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_parser
+#undef xmlParseNotationType
extern __typeof (xmlParseNotationType) xmlParseNotationType __attribute((alias("xmlParseNotationType__internal_alias")));
+#else
+#ifndef xmlParseNotationType
+extern __typeof (xmlParseNotationType) xmlParseNotationType__internal_alias __attribute((visibility("hidden")));
#define xmlParseNotationType xmlParseNotationType__internal_alias
+#endif
+#endif
-extern __typeof (xmlParsePEReference) xmlParsePEReference__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_parser
+#undef xmlParsePEReference
extern __typeof (xmlParsePEReference) xmlParsePEReference __attribute((alias("xmlParsePEReference__internal_alias")));
+#else
+#ifndef xmlParsePEReference
+extern __typeof (xmlParsePEReference) xmlParsePEReference__internal_alias __attribute((visibility("hidden")));
#define xmlParsePEReference xmlParsePEReference__internal_alias
+#endif
+#endif
-extern __typeof (xmlParsePI) xmlParsePI__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_parser
+#undef xmlParsePI
extern __typeof (xmlParsePI) xmlParsePI __attribute((alias("xmlParsePI__internal_alias")));
+#else
+#ifndef xmlParsePI
+extern __typeof (xmlParsePI) xmlParsePI__internal_alias __attribute((visibility("hidden")));
#define xmlParsePI xmlParsePI__internal_alias
+#endif
+#endif
-extern __typeof (xmlParsePITarget) xmlParsePITarget__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_parser
+#undef xmlParsePITarget
extern __typeof (xmlParsePITarget) xmlParsePITarget __attribute((alias("xmlParsePITarget__internal_alias")));
+#else
+#ifndef xmlParsePITarget
+extern __typeof (xmlParsePITarget) xmlParsePITarget__internal_alias __attribute((visibility("hidden")));
#define xmlParsePITarget xmlParsePITarget__internal_alias
+#endif
+#endif
-extern __typeof (xmlParsePubidLiteral) xmlParsePubidLiteral__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_parser
+#undef xmlParsePubidLiteral
extern __typeof (xmlParsePubidLiteral) xmlParsePubidLiteral __attribute((alias("xmlParsePubidLiteral__internal_alias")));
+#else
+#ifndef xmlParsePubidLiteral
+extern __typeof (xmlParsePubidLiteral) xmlParsePubidLiteral__internal_alias __attribute((visibility("hidden")));
#define xmlParsePubidLiteral xmlParsePubidLiteral__internal_alias
+#endif
+#endif
#if defined(LIBXML_LEGACY_ENABLED)
-extern __typeof (xmlParseQuotedString) xmlParseQuotedString__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_legacy
+#undef xmlParseQuotedString
extern __typeof (xmlParseQuotedString) xmlParseQuotedString __attribute((alias("xmlParseQuotedString__internal_alias")));
+#else
+#ifndef xmlParseQuotedString
+extern __typeof (xmlParseQuotedString) xmlParseQuotedString__internal_alias __attribute((visibility("hidden")));
#define xmlParseQuotedString xmlParseQuotedString__internal_alias
#endif
+#endif
+#endif
-extern __typeof (xmlParseReference) xmlParseReference__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_parser
+#undef xmlParseReference
extern __typeof (xmlParseReference) xmlParseReference __attribute((alias("xmlParseReference__internal_alias")));
+#else
+#ifndef xmlParseReference
+extern __typeof (xmlParseReference) xmlParseReference__internal_alias __attribute((visibility("hidden")));
#define xmlParseReference xmlParseReference__internal_alias
+#endif
+#endif
-extern __typeof (xmlParseSDDecl) xmlParseSDDecl__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_parser
+#undef xmlParseSDDecl
extern __typeof (xmlParseSDDecl) xmlParseSDDecl __attribute((alias("xmlParseSDDecl__internal_alias")));
+#else
+#ifndef xmlParseSDDecl
+extern __typeof (xmlParseSDDecl) xmlParseSDDecl__internal_alias __attribute((visibility("hidden")));
#define xmlParseSDDecl xmlParseSDDecl__internal_alias
+#endif
+#endif
#if defined(LIBXML_SAX1_ENABLED)
-extern __typeof (xmlParseStartTag) xmlParseStartTag__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_parser
+#undef xmlParseStartTag
extern __typeof (xmlParseStartTag) xmlParseStartTag __attribute((alias("xmlParseStartTag__internal_alias")));
+#else
+#ifndef xmlParseStartTag
+extern __typeof (xmlParseStartTag) xmlParseStartTag__internal_alias __attribute((visibility("hidden")));
#define xmlParseStartTag xmlParseStartTag__internal_alias
#endif
+#endif
+#endif
-extern __typeof (xmlParseSystemLiteral) xmlParseSystemLiteral__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_parser
+#undef xmlParseSystemLiteral
extern __typeof (xmlParseSystemLiteral) xmlParseSystemLiteral __attribute((alias("xmlParseSystemLiteral__internal_alias")));
+#else
+#ifndef xmlParseSystemLiteral
+extern __typeof (xmlParseSystemLiteral) xmlParseSystemLiteral__internal_alias __attribute((visibility("hidden")));
#define xmlParseSystemLiteral xmlParseSystemLiteral__internal_alias
+#endif
+#endif
-extern __typeof (xmlParseTextDecl) xmlParseTextDecl__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_parser
+#undef xmlParseTextDecl
extern __typeof (xmlParseTextDecl) xmlParseTextDecl __attribute((alias("xmlParseTextDecl__internal_alias")));
+#else
+#ifndef xmlParseTextDecl
+extern __typeof (xmlParseTextDecl) xmlParseTextDecl__internal_alias __attribute((visibility("hidden")));
#define xmlParseTextDecl xmlParseTextDecl__internal_alias
+#endif
+#endif
-extern __typeof (xmlParseURI) xmlParseURI__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_uri
+#undef xmlParseURI
extern __typeof (xmlParseURI) xmlParseURI __attribute((alias("xmlParseURI__internal_alias")));
+#else
+#ifndef xmlParseURI
+extern __typeof (xmlParseURI) xmlParseURI__internal_alias __attribute((visibility("hidden")));
#define xmlParseURI xmlParseURI__internal_alias
+#endif
+#endif
-extern __typeof (xmlParseURIReference) xmlParseURIReference__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_uri
+#undef xmlParseURIReference
extern __typeof (xmlParseURIReference) xmlParseURIReference __attribute((alias("xmlParseURIReference__internal_alias")));
+#else
+#ifndef xmlParseURIReference
+extern __typeof (xmlParseURIReference) xmlParseURIReference__internal_alias __attribute((visibility("hidden")));
#define xmlParseURIReference xmlParseURIReference__internal_alias
+#endif
+#endif
-extern __typeof (xmlParseVersionInfo) xmlParseVersionInfo__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_parser
+#undef xmlParseVersionInfo
extern __typeof (xmlParseVersionInfo) xmlParseVersionInfo __attribute((alias("xmlParseVersionInfo__internal_alias")));
+#else
+#ifndef xmlParseVersionInfo
+extern __typeof (xmlParseVersionInfo) xmlParseVersionInfo__internal_alias __attribute((visibility("hidden")));
#define xmlParseVersionInfo xmlParseVersionInfo__internal_alias
+#endif
+#endif
-extern __typeof (xmlParseVersionNum) xmlParseVersionNum__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_parser
+#undef xmlParseVersionNum
extern __typeof (xmlParseVersionNum) xmlParseVersionNum __attribute((alias("xmlParseVersionNum__internal_alias")));
+#else
+#ifndef xmlParseVersionNum
+extern __typeof (xmlParseVersionNum) xmlParseVersionNum__internal_alias __attribute((visibility("hidden")));
#define xmlParseVersionNum xmlParseVersionNum__internal_alias
+#endif
+#endif
-extern __typeof (xmlParseXMLDecl) xmlParseXMLDecl__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_parser
+#undef xmlParseXMLDecl
extern __typeof (xmlParseXMLDecl) xmlParseXMLDecl __attribute((alias("xmlParseXMLDecl__internal_alias")));
+#else
+#ifndef xmlParseXMLDecl
+extern __typeof (xmlParseXMLDecl) xmlParseXMLDecl__internal_alias __attribute((visibility("hidden")));
#define xmlParseXMLDecl xmlParseXMLDecl__internal_alias
+#endif
+#endif
-extern __typeof (xmlParserAddNodeInfo) xmlParserAddNodeInfo__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_parserInternals
+#undef xmlParserAddNodeInfo
extern __typeof (xmlParserAddNodeInfo) xmlParserAddNodeInfo __attribute((alias("xmlParserAddNodeInfo__internal_alias")));
+#else
+#ifndef xmlParserAddNodeInfo
+extern __typeof (xmlParserAddNodeInfo) xmlParserAddNodeInfo__internal_alias __attribute((visibility("hidden")));
#define xmlParserAddNodeInfo xmlParserAddNodeInfo__internal_alias
+#endif
+#endif
-extern __typeof (xmlParserError) xmlParserError__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_error
+#undef xmlParserError
extern __typeof (xmlParserError) xmlParserError __attribute((alias("xmlParserError__internal_alias")));
+#else
+#ifndef xmlParserError
+extern __typeof (xmlParserError) xmlParserError__internal_alias __attribute((visibility("hidden")));
#define xmlParserError xmlParserError__internal_alias
+#endif
+#endif
-extern __typeof (xmlParserFindNodeInfo) xmlParserFindNodeInfo__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_parserInternals
+#undef xmlParserFindNodeInfo
extern __typeof (xmlParserFindNodeInfo) xmlParserFindNodeInfo __attribute((alias("xmlParserFindNodeInfo__internal_alias")));
+#else
+#ifndef xmlParserFindNodeInfo
+extern __typeof (xmlParserFindNodeInfo) xmlParserFindNodeInfo__internal_alias __attribute((visibility("hidden")));
#define xmlParserFindNodeInfo xmlParserFindNodeInfo__internal_alias
+#endif
+#endif
-extern __typeof (xmlParserFindNodeInfoIndex) xmlParserFindNodeInfoIndex__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_parserInternals
+#undef xmlParserFindNodeInfoIndex
extern __typeof (xmlParserFindNodeInfoIndex) xmlParserFindNodeInfoIndex __attribute((alias("xmlParserFindNodeInfoIndex__internal_alias")));
+#else
+#ifndef xmlParserFindNodeInfoIndex
+extern __typeof (xmlParserFindNodeInfoIndex) xmlParserFindNodeInfoIndex__internal_alias __attribute((visibility("hidden")));
#define xmlParserFindNodeInfoIndex xmlParserFindNodeInfoIndex__internal_alias
+#endif
+#endif
-extern __typeof (xmlParserGetDirectory) xmlParserGetDirectory__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlIO
+#undef xmlParserGetDirectory
extern __typeof (xmlParserGetDirectory) xmlParserGetDirectory __attribute((alias("xmlParserGetDirectory__internal_alias")));
+#else
+#ifndef xmlParserGetDirectory
+extern __typeof (xmlParserGetDirectory) xmlParserGetDirectory__internal_alias __attribute((visibility("hidden")));
#define xmlParserGetDirectory xmlParserGetDirectory__internal_alias
+#endif
+#endif
-extern __typeof (xmlParserHandlePEReference) xmlParserHandlePEReference__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_parser
+#undef xmlParserHandlePEReference
extern __typeof (xmlParserHandlePEReference) xmlParserHandlePEReference __attribute((alias("xmlParserHandlePEReference__internal_alias")));
+#else
+#ifndef xmlParserHandlePEReference
+extern __typeof (xmlParserHandlePEReference) xmlParserHandlePEReference__internal_alias __attribute((visibility("hidden")));
#define xmlParserHandlePEReference xmlParserHandlePEReference__internal_alias
+#endif
+#endif
#if defined(LIBXML_LEGACY_ENABLED)
-extern __typeof (xmlParserHandleReference) xmlParserHandleReference__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_legacy
+#undef xmlParserHandleReference
extern __typeof (xmlParserHandleReference) xmlParserHandleReference __attribute((alias("xmlParserHandleReference__internal_alias")));
+#else
+#ifndef xmlParserHandleReference
+extern __typeof (xmlParserHandleReference) xmlParserHandleReference__internal_alias __attribute((visibility("hidden")));
#define xmlParserHandleReference xmlParserHandleReference__internal_alias
#endif
+#endif
+#endif
-extern __typeof (xmlParserInputBufferCreateFd) xmlParserInputBufferCreateFd__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlIO
+#undef xmlParserInputBufferCreateFd
extern __typeof (xmlParserInputBufferCreateFd) xmlParserInputBufferCreateFd __attribute((alias("xmlParserInputBufferCreateFd__internal_alias")));
+#else
+#ifndef xmlParserInputBufferCreateFd
+extern __typeof (xmlParserInputBufferCreateFd) xmlParserInputBufferCreateFd__internal_alias __attribute((visibility("hidden")));
#define xmlParserInputBufferCreateFd xmlParserInputBufferCreateFd__internal_alias
+#endif
+#endif
-extern __typeof (xmlParserInputBufferCreateFile) xmlParserInputBufferCreateFile__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlIO
+#undef xmlParserInputBufferCreateFile
extern __typeof (xmlParserInputBufferCreateFile) xmlParserInputBufferCreateFile __attribute((alias("xmlParserInputBufferCreateFile__internal_alias")));
+#else
+#ifndef xmlParserInputBufferCreateFile
+extern __typeof (xmlParserInputBufferCreateFile) xmlParserInputBufferCreateFile__internal_alias __attribute((visibility("hidden")));
#define xmlParserInputBufferCreateFile xmlParserInputBufferCreateFile__internal_alias
+#endif
+#endif
-extern __typeof (xmlParserInputBufferCreateFilename) xmlParserInputBufferCreateFilename__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlIO
+#undef xmlParserInputBufferCreateFilename
extern __typeof (xmlParserInputBufferCreateFilename) xmlParserInputBufferCreateFilename __attribute((alias("xmlParserInputBufferCreateFilename__internal_alias")));
+#else
+#ifndef xmlParserInputBufferCreateFilename
+extern __typeof (xmlParserInputBufferCreateFilename) xmlParserInputBufferCreateFilename__internal_alias __attribute((visibility("hidden")));
#define xmlParserInputBufferCreateFilename xmlParserInputBufferCreateFilename__internal_alias
+#endif
+#endif
-extern __typeof (xmlParserInputBufferCreateFilenameDefault) xmlParserInputBufferCreateFilenameDefault__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlIO
+#undef xmlParserInputBufferCreateFilenameDefault
extern __typeof (xmlParserInputBufferCreateFilenameDefault) xmlParserInputBufferCreateFilenameDefault __attribute((alias("xmlParserInputBufferCreateFilenameDefault__internal_alias")));
+#else
+#ifndef xmlParserInputBufferCreateFilenameDefault
+extern __typeof (xmlParserInputBufferCreateFilenameDefault) xmlParserInputBufferCreateFilenameDefault__internal_alias __attribute((visibility("hidden")));
#define xmlParserInputBufferCreateFilenameDefault xmlParserInputBufferCreateFilenameDefault__internal_alias
+#endif
+#endif
-extern __typeof (xmlParserInputBufferCreateIO) xmlParserInputBufferCreateIO__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlIO
+#undef xmlParserInputBufferCreateIO
extern __typeof (xmlParserInputBufferCreateIO) xmlParserInputBufferCreateIO __attribute((alias("xmlParserInputBufferCreateIO__internal_alias")));
+#else
+#ifndef xmlParserInputBufferCreateIO
+extern __typeof (xmlParserInputBufferCreateIO) xmlParserInputBufferCreateIO__internal_alias __attribute((visibility("hidden")));
#define xmlParserInputBufferCreateIO xmlParserInputBufferCreateIO__internal_alias
+#endif
+#endif
-extern __typeof (xmlParserInputBufferCreateMem) xmlParserInputBufferCreateMem__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlIO
+#undef xmlParserInputBufferCreateMem
extern __typeof (xmlParserInputBufferCreateMem) xmlParserInputBufferCreateMem __attribute((alias("xmlParserInputBufferCreateMem__internal_alias")));
+#else
+#ifndef xmlParserInputBufferCreateMem
+extern __typeof (xmlParserInputBufferCreateMem) xmlParserInputBufferCreateMem__internal_alias __attribute((visibility("hidden")));
#define xmlParserInputBufferCreateMem xmlParserInputBufferCreateMem__internal_alias
+#endif
+#endif
-extern __typeof (xmlParserInputBufferCreateStatic) xmlParserInputBufferCreateStatic__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlIO
+#undef xmlParserInputBufferCreateStatic
extern __typeof (xmlParserInputBufferCreateStatic) xmlParserInputBufferCreateStatic __attribute((alias("xmlParserInputBufferCreateStatic__internal_alias")));
+#else
+#ifndef xmlParserInputBufferCreateStatic
+extern __typeof (xmlParserInputBufferCreateStatic) xmlParserInputBufferCreateStatic__internal_alias __attribute((visibility("hidden")));
#define xmlParserInputBufferCreateStatic xmlParserInputBufferCreateStatic__internal_alias
+#endif
+#endif
-extern __typeof (xmlParserInputBufferGrow) xmlParserInputBufferGrow__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlIO
+#undef xmlParserInputBufferGrow
extern __typeof (xmlParserInputBufferGrow) xmlParserInputBufferGrow __attribute((alias("xmlParserInputBufferGrow__internal_alias")));
+#else
+#ifndef xmlParserInputBufferGrow
+extern __typeof (xmlParserInputBufferGrow) xmlParserInputBufferGrow__internal_alias __attribute((visibility("hidden")));
#define xmlParserInputBufferGrow xmlParserInputBufferGrow__internal_alias
+#endif
+#endif
-extern __typeof (xmlParserInputBufferPush) xmlParserInputBufferPush__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlIO
+#undef xmlParserInputBufferPush
extern __typeof (xmlParserInputBufferPush) xmlParserInputBufferPush __attribute((alias("xmlParserInputBufferPush__internal_alias")));
+#else
+#ifndef xmlParserInputBufferPush
+extern __typeof (xmlParserInputBufferPush) xmlParserInputBufferPush__internal_alias __attribute((visibility("hidden")));
#define xmlParserInputBufferPush xmlParserInputBufferPush__internal_alias
+#endif
+#endif
-extern __typeof (xmlParserInputBufferRead) xmlParserInputBufferRead__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlIO
+#undef xmlParserInputBufferRead
extern __typeof (xmlParserInputBufferRead) xmlParserInputBufferRead __attribute((alias("xmlParserInputBufferRead__internal_alias")));
+#else
+#ifndef xmlParserInputBufferRead
+extern __typeof (xmlParserInputBufferRead) xmlParserInputBufferRead__internal_alias __attribute((visibility("hidden")));
#define xmlParserInputBufferRead xmlParserInputBufferRead__internal_alias
+#endif
+#endif
-extern __typeof (xmlParserInputGrow) xmlParserInputGrow__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_parserInternals
+#undef xmlParserInputGrow
extern __typeof (xmlParserInputGrow) xmlParserInputGrow __attribute((alias("xmlParserInputGrow__internal_alias")));
+#else
+#ifndef xmlParserInputGrow
+extern __typeof (xmlParserInputGrow) xmlParserInputGrow__internal_alias __attribute((visibility("hidden")));
#define xmlParserInputGrow xmlParserInputGrow__internal_alias
+#endif
+#endif
-extern __typeof (xmlParserInputRead) xmlParserInputRead__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_parserInternals
+#undef xmlParserInputRead
extern __typeof (xmlParserInputRead) xmlParserInputRead __attribute((alias("xmlParserInputRead__internal_alias")));
+#else
+#ifndef xmlParserInputRead
+extern __typeof (xmlParserInputRead) xmlParserInputRead__internal_alias __attribute((visibility("hidden")));
#define xmlParserInputRead xmlParserInputRead__internal_alias
+#endif
+#endif
-extern __typeof (xmlParserInputShrink) xmlParserInputShrink__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_parserInternals
+#undef xmlParserInputShrink
extern __typeof (xmlParserInputShrink) xmlParserInputShrink __attribute((alias("xmlParserInputShrink__internal_alias")));
+#else
+#ifndef xmlParserInputShrink
+extern __typeof (xmlParserInputShrink) xmlParserInputShrink__internal_alias __attribute((visibility("hidden")));
#define xmlParserInputShrink xmlParserInputShrink__internal_alias
+#endif
+#endif
-extern __typeof (xmlParserPrintFileContext) xmlParserPrintFileContext__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_error
+#undef xmlParserPrintFileContext
extern __typeof (xmlParserPrintFileContext) xmlParserPrintFileContext __attribute((alias("xmlParserPrintFileContext__internal_alias")));
+#else
+#ifndef xmlParserPrintFileContext
+extern __typeof (xmlParserPrintFileContext) xmlParserPrintFileContext__internal_alias __attribute((visibility("hidden")));
#define xmlParserPrintFileContext xmlParserPrintFileContext__internal_alias
+#endif
+#endif
-extern __typeof (xmlParserPrintFileInfo) xmlParserPrintFileInfo__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_error
+#undef xmlParserPrintFileInfo
extern __typeof (xmlParserPrintFileInfo) xmlParserPrintFileInfo __attribute((alias("xmlParserPrintFileInfo__internal_alias")));
+#else
+#ifndef xmlParserPrintFileInfo
+extern __typeof (xmlParserPrintFileInfo) xmlParserPrintFileInfo__internal_alias __attribute((visibility("hidden")));
#define xmlParserPrintFileInfo xmlParserPrintFileInfo__internal_alias
+#endif
+#endif
-extern __typeof (xmlParserValidityError) xmlParserValidityError__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_error
+#undef xmlParserValidityError
extern __typeof (xmlParserValidityError) xmlParserValidityError __attribute((alias("xmlParserValidityError__internal_alias")));
+#else
+#ifndef xmlParserValidityError
+extern __typeof (xmlParserValidityError) xmlParserValidityError__internal_alias __attribute((visibility("hidden")));
#define xmlParserValidityError xmlParserValidityError__internal_alias
+#endif
+#endif
-extern __typeof (xmlParserValidityWarning) xmlParserValidityWarning__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_error
+#undef xmlParserValidityWarning
extern __typeof (xmlParserValidityWarning) xmlParserValidityWarning __attribute((alias("xmlParserValidityWarning__internal_alias")));
+#else
+#ifndef xmlParserValidityWarning
+extern __typeof (xmlParserValidityWarning) xmlParserValidityWarning__internal_alias __attribute((visibility("hidden")));
#define xmlParserValidityWarning xmlParserValidityWarning__internal_alias
+#endif
+#endif
-extern __typeof (xmlParserWarning) xmlParserWarning__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_error
+#undef xmlParserWarning
extern __typeof (xmlParserWarning) xmlParserWarning __attribute((alias("xmlParserWarning__internal_alias")));
+#else
+#ifndef xmlParserWarning
+extern __typeof (xmlParserWarning) xmlParserWarning__internal_alias __attribute((visibility("hidden")));
#define xmlParserWarning xmlParserWarning__internal_alias
+#endif
+#endif
#if defined(LIBXML_PATTERN_ENABLED)
-extern __typeof (xmlPatternFromRoot) xmlPatternFromRoot__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_pattern
+#undef xmlPatternFromRoot
extern __typeof (xmlPatternFromRoot) xmlPatternFromRoot __attribute((alias("xmlPatternFromRoot__internal_alias")));
+#else
+#ifndef xmlPatternFromRoot
+extern __typeof (xmlPatternFromRoot) xmlPatternFromRoot__internal_alias __attribute((visibility("hidden")));
#define xmlPatternFromRoot xmlPatternFromRoot__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_PATTERN_ENABLED)
-extern __typeof (xmlPatternGetStreamCtxt) xmlPatternGetStreamCtxt__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_pattern
+#undef xmlPatternGetStreamCtxt
extern __typeof (xmlPatternGetStreamCtxt) xmlPatternGetStreamCtxt __attribute((alias("xmlPatternGetStreamCtxt__internal_alias")));
+#else
+#ifndef xmlPatternGetStreamCtxt
+extern __typeof (xmlPatternGetStreamCtxt) xmlPatternGetStreamCtxt__internal_alias __attribute((visibility("hidden")));
#define xmlPatternGetStreamCtxt xmlPatternGetStreamCtxt__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_PATTERN_ENABLED)
-extern __typeof (xmlPatternMatch) xmlPatternMatch__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_pattern
+#undef xmlPatternMatch
extern __typeof (xmlPatternMatch) xmlPatternMatch __attribute((alias("xmlPatternMatch__internal_alias")));
+#else
+#ifndef xmlPatternMatch
+extern __typeof (xmlPatternMatch) xmlPatternMatch__internal_alias __attribute((visibility("hidden")));
#define xmlPatternMatch xmlPatternMatch__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_PATTERN_ENABLED)
-extern __typeof (xmlPatternMaxDepth) xmlPatternMaxDepth__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_pattern
+#undef xmlPatternMaxDepth
extern __typeof (xmlPatternMaxDepth) xmlPatternMaxDepth __attribute((alias("xmlPatternMaxDepth__internal_alias")));
+#else
+#ifndef xmlPatternMaxDepth
+extern __typeof (xmlPatternMaxDepth) xmlPatternMaxDepth__internal_alias __attribute((visibility("hidden")));
#define xmlPatternMaxDepth xmlPatternMaxDepth__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_PATTERN_ENABLED)
-extern __typeof (xmlPatternStreamable) xmlPatternStreamable__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_pattern
+#undef xmlPatternStreamable
extern __typeof (xmlPatternStreamable) xmlPatternStreamable __attribute((alias("xmlPatternStreamable__internal_alias")));
+#else
+#ifndef xmlPatternStreamable
+extern __typeof (xmlPatternStreamable) xmlPatternStreamable__internal_alias __attribute((visibility("hidden")));
#define xmlPatternStreamable xmlPatternStreamable__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_PATTERN_ENABLED)
-extern __typeof (xmlPatterncompile) xmlPatterncompile__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_pattern
+#undef xmlPatterncompile
extern __typeof (xmlPatterncompile) xmlPatterncompile __attribute((alias("xmlPatterncompile__internal_alias")));
+#else
+#ifndef xmlPatterncompile
+extern __typeof (xmlPatterncompile) xmlPatterncompile__internal_alias __attribute((visibility("hidden")));
#define xmlPatterncompile xmlPatterncompile__internal_alias
#endif
+#endif
+#endif
-extern __typeof (xmlPedanticParserDefault) xmlPedanticParserDefault__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_parserInternals
+#undef xmlPedanticParserDefault
extern __typeof (xmlPedanticParserDefault) xmlPedanticParserDefault __attribute((alias("xmlPedanticParserDefault__internal_alias")));
+#else
+#ifndef xmlPedanticParserDefault
+extern __typeof (xmlPedanticParserDefault) xmlPedanticParserDefault__internal_alias __attribute((visibility("hidden")));
#define xmlPedanticParserDefault xmlPedanticParserDefault__internal_alias
+#endif
+#endif
-extern __typeof (xmlPopInput) xmlPopInput__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_parser
+#undef xmlPopInput
extern __typeof (xmlPopInput) xmlPopInput __attribute((alias("xmlPopInput__internal_alias")));
+#else
+#ifndef xmlPopInput
+extern __typeof (xmlPopInput) xmlPopInput__internal_alias __attribute((visibility("hidden")));
#define xmlPopInput xmlPopInput__internal_alias
+#endif
+#endif
-extern __typeof (xmlPopInputCallbacks) xmlPopInputCallbacks__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlIO
+#undef xmlPopInputCallbacks
extern __typeof (xmlPopInputCallbacks) xmlPopInputCallbacks __attribute((alias("xmlPopInputCallbacks__internal_alias")));
+#else
+#ifndef xmlPopInputCallbacks
+extern __typeof (xmlPopInputCallbacks) xmlPopInputCallbacks__internal_alias __attribute((visibility("hidden")));
#define xmlPopInputCallbacks xmlPopInputCallbacks__internal_alias
+#endif
+#endif
-extern __typeof (xmlPrintURI) xmlPrintURI__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_uri
+#undef xmlPrintURI
extern __typeof (xmlPrintURI) xmlPrintURI __attribute((alias("xmlPrintURI__internal_alias")));
+#else
+#ifndef xmlPrintURI
+extern __typeof (xmlPrintURI) xmlPrintURI__internal_alias __attribute((visibility("hidden")));
#define xmlPrintURI xmlPrintURI__internal_alias
+#endif
+#endif
-extern __typeof (xmlPushInput) xmlPushInput__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_parser
+#undef xmlPushInput
extern __typeof (xmlPushInput) xmlPushInput __attribute((alias("xmlPushInput__internal_alias")));
+#else
+#ifndef xmlPushInput
+extern __typeof (xmlPushInput) xmlPushInput__internal_alias __attribute((visibility("hidden")));
#define xmlPushInput xmlPushInput__internal_alias
+#endif
+#endif
-extern __typeof (xmlRMutexLock) xmlRMutexLock__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_threads
+#undef xmlRMutexLock
extern __typeof (xmlRMutexLock) xmlRMutexLock __attribute((alias("xmlRMutexLock__internal_alias")));
+#else
+#ifndef xmlRMutexLock
+extern __typeof (xmlRMutexLock) xmlRMutexLock__internal_alias __attribute((visibility("hidden")));
#define xmlRMutexLock xmlRMutexLock__internal_alias
+#endif
+#endif
-extern __typeof (xmlRMutexUnlock) xmlRMutexUnlock__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_threads
+#undef xmlRMutexUnlock
extern __typeof (xmlRMutexUnlock) xmlRMutexUnlock __attribute((alias("xmlRMutexUnlock__internal_alias")));
+#else
+#ifndef xmlRMutexUnlock
+extern __typeof (xmlRMutexUnlock) xmlRMutexUnlock__internal_alias __attribute((visibility("hidden")));
#define xmlRMutexUnlock xmlRMutexUnlock__internal_alias
+#endif
+#endif
-extern __typeof (xmlReadDoc) xmlReadDoc__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_parser
+#undef xmlReadDoc
extern __typeof (xmlReadDoc) xmlReadDoc __attribute((alias("xmlReadDoc__internal_alias")));
+#else
+#ifndef xmlReadDoc
+extern __typeof (xmlReadDoc) xmlReadDoc__internal_alias __attribute((visibility("hidden")));
#define xmlReadDoc xmlReadDoc__internal_alias
+#endif
+#endif
-extern __typeof (xmlReadFd) xmlReadFd__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_parser
+#undef xmlReadFd
extern __typeof (xmlReadFd) xmlReadFd __attribute((alias("xmlReadFd__internal_alias")));
+#else
+#ifndef xmlReadFd
+extern __typeof (xmlReadFd) xmlReadFd__internal_alias __attribute((visibility("hidden")));
#define xmlReadFd xmlReadFd__internal_alias
+#endif
+#endif
-extern __typeof (xmlReadFile) xmlReadFile__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_parser
+#undef xmlReadFile
extern __typeof (xmlReadFile) xmlReadFile __attribute((alias("xmlReadFile__internal_alias")));
+#else
+#ifndef xmlReadFile
+extern __typeof (xmlReadFile) xmlReadFile__internal_alias __attribute((visibility("hidden")));
#define xmlReadFile xmlReadFile__internal_alias
+#endif
+#endif
-extern __typeof (xmlReadIO) xmlReadIO__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_parser
+#undef xmlReadIO
extern __typeof (xmlReadIO) xmlReadIO __attribute((alias("xmlReadIO__internal_alias")));
+#else
+#ifndef xmlReadIO
+extern __typeof (xmlReadIO) xmlReadIO__internal_alias __attribute((visibility("hidden")));
#define xmlReadIO xmlReadIO__internal_alias
+#endif
+#endif
-extern __typeof (xmlReadMemory) xmlReadMemory__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_parser
+#undef xmlReadMemory
extern __typeof (xmlReadMemory) xmlReadMemory __attribute((alias("xmlReadMemory__internal_alias")));
+#else
+#ifndef xmlReadMemory
+extern __typeof (xmlReadMemory) xmlReadMemory__internal_alias __attribute((visibility("hidden")));
#define xmlReadMemory xmlReadMemory__internal_alias
+#endif
+#endif
#if defined(LIBXML_READER_ENABLED)
-extern __typeof (xmlReaderForDoc) xmlReaderForDoc__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlreader
+#undef xmlReaderForDoc
extern __typeof (xmlReaderForDoc) xmlReaderForDoc __attribute((alias("xmlReaderForDoc__internal_alias")));
+#else
+#ifndef xmlReaderForDoc
+extern __typeof (xmlReaderForDoc) xmlReaderForDoc__internal_alias __attribute((visibility("hidden")));
#define xmlReaderForDoc xmlReaderForDoc__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_READER_ENABLED)
-extern __typeof (xmlReaderForFd) xmlReaderForFd__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlreader
+#undef xmlReaderForFd
extern __typeof (xmlReaderForFd) xmlReaderForFd __attribute((alias("xmlReaderForFd__internal_alias")));
+#else
+#ifndef xmlReaderForFd
+extern __typeof (xmlReaderForFd) xmlReaderForFd__internal_alias __attribute((visibility("hidden")));
#define xmlReaderForFd xmlReaderForFd__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_READER_ENABLED)
-extern __typeof (xmlReaderForFile) xmlReaderForFile__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlreader
+#undef xmlReaderForFile
extern __typeof (xmlReaderForFile) xmlReaderForFile __attribute((alias("xmlReaderForFile__internal_alias")));
+#else
+#ifndef xmlReaderForFile
+extern __typeof (xmlReaderForFile) xmlReaderForFile__internal_alias __attribute((visibility("hidden")));
#define xmlReaderForFile xmlReaderForFile__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_READER_ENABLED)
-extern __typeof (xmlReaderForIO) xmlReaderForIO__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlreader
+#undef xmlReaderForIO
extern __typeof (xmlReaderForIO) xmlReaderForIO __attribute((alias("xmlReaderForIO__internal_alias")));
+#else
+#ifndef xmlReaderForIO
+extern __typeof (xmlReaderForIO) xmlReaderForIO__internal_alias __attribute((visibility("hidden")));
#define xmlReaderForIO xmlReaderForIO__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_READER_ENABLED)
-extern __typeof (xmlReaderForMemory) xmlReaderForMemory__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlreader
+#undef xmlReaderForMemory
extern __typeof (xmlReaderForMemory) xmlReaderForMemory __attribute((alias("xmlReaderForMemory__internal_alias")));
+#else
+#ifndef xmlReaderForMemory
+extern __typeof (xmlReaderForMemory) xmlReaderForMemory__internal_alias __attribute((visibility("hidden")));
#define xmlReaderForMemory xmlReaderForMemory__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_READER_ENABLED)
-extern __typeof (xmlReaderNewDoc) xmlReaderNewDoc__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlreader
+#undef xmlReaderNewDoc
extern __typeof (xmlReaderNewDoc) xmlReaderNewDoc __attribute((alias("xmlReaderNewDoc__internal_alias")));
+#else
+#ifndef xmlReaderNewDoc
+extern __typeof (xmlReaderNewDoc) xmlReaderNewDoc__internal_alias __attribute((visibility("hidden")));
#define xmlReaderNewDoc xmlReaderNewDoc__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_READER_ENABLED)
-extern __typeof (xmlReaderNewFd) xmlReaderNewFd__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlreader
+#undef xmlReaderNewFd
extern __typeof (xmlReaderNewFd) xmlReaderNewFd __attribute((alias("xmlReaderNewFd__internal_alias")));
+#else
+#ifndef xmlReaderNewFd
+extern __typeof (xmlReaderNewFd) xmlReaderNewFd__internal_alias __attribute((visibility("hidden")));
#define xmlReaderNewFd xmlReaderNewFd__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_READER_ENABLED)
-extern __typeof (xmlReaderNewFile) xmlReaderNewFile__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlreader
+#undef xmlReaderNewFile
extern __typeof (xmlReaderNewFile) xmlReaderNewFile __attribute((alias("xmlReaderNewFile__internal_alias")));
+#else
+#ifndef xmlReaderNewFile
+extern __typeof (xmlReaderNewFile) xmlReaderNewFile__internal_alias __attribute((visibility("hidden")));
#define xmlReaderNewFile xmlReaderNewFile__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_READER_ENABLED)
-extern __typeof (xmlReaderNewIO) xmlReaderNewIO__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlreader
+#undef xmlReaderNewIO
extern __typeof (xmlReaderNewIO) xmlReaderNewIO __attribute((alias("xmlReaderNewIO__internal_alias")));
+#else
+#ifndef xmlReaderNewIO
+extern __typeof (xmlReaderNewIO) xmlReaderNewIO__internal_alias __attribute((visibility("hidden")));
#define xmlReaderNewIO xmlReaderNewIO__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_READER_ENABLED)
-extern __typeof (xmlReaderNewMemory) xmlReaderNewMemory__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlreader
+#undef xmlReaderNewMemory
extern __typeof (xmlReaderNewMemory) xmlReaderNewMemory __attribute((alias("xmlReaderNewMemory__internal_alias")));
+#else
+#ifndef xmlReaderNewMemory
+extern __typeof (xmlReaderNewMemory) xmlReaderNewMemory__internal_alias __attribute((visibility("hidden")));
#define xmlReaderNewMemory xmlReaderNewMemory__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_READER_ENABLED)
-extern __typeof (xmlReaderNewWalker) xmlReaderNewWalker__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlreader
+#undef xmlReaderNewWalker
extern __typeof (xmlReaderNewWalker) xmlReaderNewWalker __attribute((alias("xmlReaderNewWalker__internal_alias")));
+#else
+#ifndef xmlReaderNewWalker
+extern __typeof (xmlReaderNewWalker) xmlReaderNewWalker__internal_alias __attribute((visibility("hidden")));
#define xmlReaderNewWalker xmlReaderNewWalker__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_READER_ENABLED)
-extern __typeof (xmlReaderWalker) xmlReaderWalker__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlreader
+#undef xmlReaderWalker
extern __typeof (xmlReaderWalker) xmlReaderWalker __attribute((alias("xmlReaderWalker__internal_alias")));
+#else
+#ifndef xmlReaderWalker
+extern __typeof (xmlReaderWalker) xmlReaderWalker__internal_alias __attribute((visibility("hidden")));
#define xmlReaderWalker xmlReaderWalker__internal_alias
#endif
+#endif
+#endif
-extern __typeof (xmlReallocLoc) xmlReallocLoc__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlmemory
+#undef xmlReallocLoc
extern __typeof (xmlReallocLoc) xmlReallocLoc __attribute((alias("xmlReallocLoc__internal_alias")));
+#else
+#ifndef xmlReallocLoc
+extern __typeof (xmlReallocLoc) xmlReallocLoc__internal_alias __attribute((visibility("hidden")));
#define xmlReallocLoc xmlReallocLoc__internal_alias
+#endif
+#endif
#if defined(LIBXML_TREE_ENABLED)
-extern __typeof (xmlReconciliateNs) xmlReconciliateNs__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_tree
+#undef xmlReconciliateNs
extern __typeof (xmlReconciliateNs) xmlReconciliateNs __attribute((alias("xmlReconciliateNs__internal_alias")));
+#else
+#ifndef xmlReconciliateNs
+extern __typeof (xmlReconciliateNs) xmlReconciliateNs__internal_alias __attribute((visibility("hidden")));
#define xmlReconciliateNs xmlReconciliateNs__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_SAX1_ENABLED)
-extern __typeof (xmlRecoverDoc) xmlRecoverDoc__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_parser
+#undef xmlRecoverDoc
extern __typeof (xmlRecoverDoc) xmlRecoverDoc __attribute((alias("xmlRecoverDoc__internal_alias")));
+#else
+#ifndef xmlRecoverDoc
+extern __typeof (xmlRecoverDoc) xmlRecoverDoc__internal_alias __attribute((visibility("hidden")));
#define xmlRecoverDoc xmlRecoverDoc__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_SAX1_ENABLED)
-extern __typeof (xmlRecoverFile) xmlRecoverFile__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_parser
+#undef xmlRecoverFile
extern __typeof (xmlRecoverFile) xmlRecoverFile __attribute((alias("xmlRecoverFile__internal_alias")));
+#else
+#ifndef xmlRecoverFile
+extern __typeof (xmlRecoverFile) xmlRecoverFile__internal_alias __attribute((visibility("hidden")));
#define xmlRecoverFile xmlRecoverFile__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_SAX1_ENABLED)
-extern __typeof (xmlRecoverMemory) xmlRecoverMemory__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_parser
+#undef xmlRecoverMemory
extern __typeof (xmlRecoverMemory) xmlRecoverMemory __attribute((alias("xmlRecoverMemory__internal_alias")));
+#else
+#ifndef xmlRecoverMemory
+extern __typeof (xmlRecoverMemory) xmlRecoverMemory__internal_alias __attribute((visibility("hidden")));
#define xmlRecoverMemory xmlRecoverMemory__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_REGEXP_ENABLED)
-extern __typeof (xmlRegExecErrInfo) xmlRegExecErrInfo__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlregexp
+#undef xmlRegExecErrInfo
extern __typeof (xmlRegExecErrInfo) xmlRegExecErrInfo __attribute((alias("xmlRegExecErrInfo__internal_alias")));
+#else
+#ifndef xmlRegExecErrInfo
+extern __typeof (xmlRegExecErrInfo) xmlRegExecErrInfo__internal_alias __attribute((visibility("hidden")));
#define xmlRegExecErrInfo xmlRegExecErrInfo__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_REGEXP_ENABLED)
-extern __typeof (xmlRegExecNextValues) xmlRegExecNextValues__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlregexp
+#undef xmlRegExecNextValues
extern __typeof (xmlRegExecNextValues) xmlRegExecNextValues __attribute((alias("xmlRegExecNextValues__internal_alias")));
+#else
+#ifndef xmlRegExecNextValues
+extern __typeof (xmlRegExecNextValues) xmlRegExecNextValues__internal_alias __attribute((visibility("hidden")));
#define xmlRegExecNextValues xmlRegExecNextValues__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_REGEXP_ENABLED)
-extern __typeof (xmlRegExecPushString) xmlRegExecPushString__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlregexp
+#undef xmlRegExecPushString
extern __typeof (xmlRegExecPushString) xmlRegExecPushString __attribute((alias("xmlRegExecPushString__internal_alias")));
+#else
+#ifndef xmlRegExecPushString
+extern __typeof (xmlRegExecPushString) xmlRegExecPushString__internal_alias __attribute((visibility("hidden")));
#define xmlRegExecPushString xmlRegExecPushString__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_REGEXP_ENABLED)
-extern __typeof (xmlRegExecPushString2) xmlRegExecPushString2__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlregexp
+#undef xmlRegExecPushString2
extern __typeof (xmlRegExecPushString2) xmlRegExecPushString2 __attribute((alias("xmlRegExecPushString2__internal_alias")));
+#else
+#ifndef xmlRegExecPushString2
+extern __typeof (xmlRegExecPushString2) xmlRegExecPushString2__internal_alias __attribute((visibility("hidden")));
#define xmlRegExecPushString2 xmlRegExecPushString2__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_REGEXP_ENABLED)
-extern __typeof (xmlRegFreeExecCtxt) xmlRegFreeExecCtxt__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlregexp
+#undef xmlRegFreeExecCtxt
extern __typeof (xmlRegFreeExecCtxt) xmlRegFreeExecCtxt __attribute((alias("xmlRegFreeExecCtxt__internal_alias")));
+#else
+#ifndef xmlRegFreeExecCtxt
+extern __typeof (xmlRegFreeExecCtxt) xmlRegFreeExecCtxt__internal_alias __attribute((visibility("hidden")));
#define xmlRegFreeExecCtxt xmlRegFreeExecCtxt__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_REGEXP_ENABLED)
-extern __typeof (xmlRegFreeRegexp) xmlRegFreeRegexp__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlregexp
+#undef xmlRegFreeRegexp
extern __typeof (xmlRegFreeRegexp) xmlRegFreeRegexp __attribute((alias("xmlRegFreeRegexp__internal_alias")));
+#else
+#ifndef xmlRegFreeRegexp
+extern __typeof (xmlRegFreeRegexp) xmlRegFreeRegexp__internal_alias __attribute((visibility("hidden")));
#define xmlRegFreeRegexp xmlRegFreeRegexp__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_REGEXP_ENABLED)
-extern __typeof (xmlRegNewExecCtxt) xmlRegNewExecCtxt__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlregexp
+#undef xmlRegNewExecCtxt
extern __typeof (xmlRegNewExecCtxt) xmlRegNewExecCtxt __attribute((alias("xmlRegNewExecCtxt__internal_alias")));
+#else
+#ifndef xmlRegNewExecCtxt
+extern __typeof (xmlRegNewExecCtxt) xmlRegNewExecCtxt__internal_alias __attribute((visibility("hidden")));
#define xmlRegNewExecCtxt xmlRegNewExecCtxt__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_REGEXP_ENABLED)
-extern __typeof (xmlRegexpCompile) xmlRegexpCompile__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlregexp
+#undef xmlRegexpCompile
extern __typeof (xmlRegexpCompile) xmlRegexpCompile __attribute((alias("xmlRegexpCompile__internal_alias")));
+#else
+#ifndef xmlRegexpCompile
+extern __typeof (xmlRegexpCompile) xmlRegexpCompile__internal_alias __attribute((visibility("hidden")));
#define xmlRegexpCompile xmlRegexpCompile__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_REGEXP_ENABLED)
-extern __typeof (xmlRegexpExec) xmlRegexpExec__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlregexp
+#undef xmlRegexpExec
extern __typeof (xmlRegexpExec) xmlRegexpExec __attribute((alias("xmlRegexpExec__internal_alias")));
+#else
+#ifndef xmlRegexpExec
+extern __typeof (xmlRegexpExec) xmlRegexpExec__internal_alias __attribute((visibility("hidden")));
#define xmlRegexpExec xmlRegexpExec__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_REGEXP_ENABLED)
-extern __typeof (xmlRegexpIsDeterminist) xmlRegexpIsDeterminist__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlregexp
+#undef xmlRegexpIsDeterminist
extern __typeof (xmlRegexpIsDeterminist) xmlRegexpIsDeterminist __attribute((alias("xmlRegexpIsDeterminist__internal_alias")));
+#else
+#ifndef xmlRegexpIsDeterminist
+extern __typeof (xmlRegexpIsDeterminist) xmlRegexpIsDeterminist__internal_alias __attribute((visibility("hidden")));
#define xmlRegexpIsDeterminist xmlRegexpIsDeterminist__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_REGEXP_ENABLED)
-extern __typeof (xmlRegexpPrint) xmlRegexpPrint__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlregexp
+#undef xmlRegexpPrint
extern __typeof (xmlRegexpPrint) xmlRegexpPrint __attribute((alias("xmlRegexpPrint__internal_alias")));
+#else
+#ifndef xmlRegexpPrint
+extern __typeof (xmlRegexpPrint) xmlRegexpPrint__internal_alias __attribute((visibility("hidden")));
#define xmlRegexpPrint xmlRegexpPrint__internal_alias
#endif
+#endif
+#endif
-extern __typeof (xmlRegisterCharEncodingHandler) xmlRegisterCharEncodingHandler__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_encoding
+#undef xmlRegisterCharEncodingHandler
extern __typeof (xmlRegisterCharEncodingHandler) xmlRegisterCharEncodingHandler __attribute((alias("xmlRegisterCharEncodingHandler__internal_alias")));
+#else
+#ifndef xmlRegisterCharEncodingHandler
+extern __typeof (xmlRegisterCharEncodingHandler) xmlRegisterCharEncodingHandler__internal_alias __attribute((visibility("hidden")));
#define xmlRegisterCharEncodingHandler xmlRegisterCharEncodingHandler__internal_alias
+#endif
+#endif
-extern __typeof (xmlRegisterDefaultInputCallbacks) xmlRegisterDefaultInputCallbacks__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlIO
+#undef xmlRegisterDefaultInputCallbacks
extern __typeof (xmlRegisterDefaultInputCallbacks) xmlRegisterDefaultInputCallbacks __attribute((alias("xmlRegisterDefaultInputCallbacks__internal_alias")));
+#else
+#ifndef xmlRegisterDefaultInputCallbacks
+extern __typeof (xmlRegisterDefaultInputCallbacks) xmlRegisterDefaultInputCallbacks__internal_alias __attribute((visibility("hidden")));
#define xmlRegisterDefaultInputCallbacks xmlRegisterDefaultInputCallbacks__internal_alias
+#endif
+#endif
#if defined(LIBXML_OUTPUT_ENABLED)
-extern __typeof (xmlRegisterDefaultOutputCallbacks) xmlRegisterDefaultOutputCallbacks__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlIO
+#undef xmlRegisterDefaultOutputCallbacks
extern __typeof (xmlRegisterDefaultOutputCallbacks) xmlRegisterDefaultOutputCallbacks __attribute((alias("xmlRegisterDefaultOutputCallbacks__internal_alias")));
+#else
+#ifndef xmlRegisterDefaultOutputCallbacks
+extern __typeof (xmlRegisterDefaultOutputCallbacks) xmlRegisterDefaultOutputCallbacks__internal_alias __attribute((visibility("hidden")));
#define xmlRegisterDefaultOutputCallbacks xmlRegisterDefaultOutputCallbacks__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_OUTPUT_ENABLED) && defined(LIBXML_HTTP_ENABLED)
-extern __typeof (xmlRegisterHTTPPostCallbacks) xmlRegisterHTTPPostCallbacks__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlIO
+#undef xmlRegisterHTTPPostCallbacks
extern __typeof (xmlRegisterHTTPPostCallbacks) xmlRegisterHTTPPostCallbacks __attribute((alias("xmlRegisterHTTPPostCallbacks__internal_alias")));
+#else
+#ifndef xmlRegisterHTTPPostCallbacks
+extern __typeof (xmlRegisterHTTPPostCallbacks) xmlRegisterHTTPPostCallbacks__internal_alias __attribute((visibility("hidden")));
#define xmlRegisterHTTPPostCallbacks xmlRegisterHTTPPostCallbacks__internal_alias
#endif
+#endif
+#endif
-extern __typeof (xmlRegisterInputCallbacks) xmlRegisterInputCallbacks__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlIO
+#undef xmlRegisterInputCallbacks
extern __typeof (xmlRegisterInputCallbacks) xmlRegisterInputCallbacks __attribute((alias("xmlRegisterInputCallbacks__internal_alias")));
+#else
+#ifndef xmlRegisterInputCallbacks
+extern __typeof (xmlRegisterInputCallbacks) xmlRegisterInputCallbacks__internal_alias __attribute((visibility("hidden")));
#define xmlRegisterInputCallbacks xmlRegisterInputCallbacks__internal_alias
+#endif
+#endif
-extern __typeof (xmlRegisterNodeDefault) xmlRegisterNodeDefault__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_globals
+#undef xmlRegisterNodeDefault
extern __typeof (xmlRegisterNodeDefault) xmlRegisterNodeDefault __attribute((alias("xmlRegisterNodeDefault__internal_alias")));
+#else
+#ifndef xmlRegisterNodeDefault
+extern __typeof (xmlRegisterNodeDefault) xmlRegisterNodeDefault__internal_alias __attribute((visibility("hidden")));
#define xmlRegisterNodeDefault xmlRegisterNodeDefault__internal_alias
+#endif
+#endif
#if defined(LIBXML_OUTPUT_ENABLED)
-extern __typeof (xmlRegisterOutputCallbacks) xmlRegisterOutputCallbacks__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlIO
+#undef xmlRegisterOutputCallbacks
extern __typeof (xmlRegisterOutputCallbacks) xmlRegisterOutputCallbacks __attribute((alias("xmlRegisterOutputCallbacks__internal_alias")));
+#else
+#ifndef xmlRegisterOutputCallbacks
+extern __typeof (xmlRegisterOutputCallbacks) xmlRegisterOutputCallbacks__internal_alias __attribute((visibility("hidden")));
#define xmlRegisterOutputCallbacks xmlRegisterOutputCallbacks__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_SCHEMAS_ENABLED)
-extern __typeof (xmlRelaxNGCleanupTypes) xmlRelaxNGCleanupTypes__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_relaxng
+#undef xmlRelaxNGCleanupTypes
extern __typeof (xmlRelaxNGCleanupTypes) xmlRelaxNGCleanupTypes __attribute((alias("xmlRelaxNGCleanupTypes__internal_alias")));
+#else
+#ifndef xmlRelaxNGCleanupTypes
+extern __typeof (xmlRelaxNGCleanupTypes) xmlRelaxNGCleanupTypes__internal_alias __attribute((visibility("hidden")));
#define xmlRelaxNGCleanupTypes xmlRelaxNGCleanupTypes__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_SCHEMAS_ENABLED) && defined(LIBXML_OUTPUT_ENABLED)
-extern __typeof (xmlRelaxNGDump) xmlRelaxNGDump__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_relaxng
+#undef xmlRelaxNGDump
extern __typeof (xmlRelaxNGDump) xmlRelaxNGDump __attribute((alias("xmlRelaxNGDump__internal_alias")));
+#else
+#ifndef xmlRelaxNGDump
+extern __typeof (xmlRelaxNGDump) xmlRelaxNGDump__internal_alias __attribute((visibility("hidden")));
#define xmlRelaxNGDump xmlRelaxNGDump__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_SCHEMAS_ENABLED) && defined(LIBXML_OUTPUT_ENABLED)
-extern __typeof (xmlRelaxNGDumpTree) xmlRelaxNGDumpTree__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_relaxng
+#undef xmlRelaxNGDumpTree
extern __typeof (xmlRelaxNGDumpTree) xmlRelaxNGDumpTree __attribute((alias("xmlRelaxNGDumpTree__internal_alias")));
+#else
+#ifndef xmlRelaxNGDumpTree
+extern __typeof (xmlRelaxNGDumpTree) xmlRelaxNGDumpTree__internal_alias __attribute((visibility("hidden")));
#define xmlRelaxNGDumpTree xmlRelaxNGDumpTree__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_SCHEMAS_ENABLED)
-extern __typeof (xmlRelaxNGFree) xmlRelaxNGFree__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_relaxng
+#undef xmlRelaxNGFree
extern __typeof (xmlRelaxNGFree) xmlRelaxNGFree __attribute((alias("xmlRelaxNGFree__internal_alias")));
+#else
+#ifndef xmlRelaxNGFree
+extern __typeof (xmlRelaxNGFree) xmlRelaxNGFree__internal_alias __attribute((visibility("hidden")));
#define xmlRelaxNGFree xmlRelaxNGFree__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_SCHEMAS_ENABLED)
-extern __typeof (xmlRelaxNGFreeParserCtxt) xmlRelaxNGFreeParserCtxt__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_relaxng
+#undef xmlRelaxNGFreeParserCtxt
extern __typeof (xmlRelaxNGFreeParserCtxt) xmlRelaxNGFreeParserCtxt __attribute((alias("xmlRelaxNGFreeParserCtxt__internal_alias")));
+#else
+#ifndef xmlRelaxNGFreeParserCtxt
+extern __typeof (xmlRelaxNGFreeParserCtxt) xmlRelaxNGFreeParserCtxt__internal_alias __attribute((visibility("hidden")));
#define xmlRelaxNGFreeParserCtxt xmlRelaxNGFreeParserCtxt__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_SCHEMAS_ENABLED)
-extern __typeof (xmlRelaxNGFreeValidCtxt) xmlRelaxNGFreeValidCtxt__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_relaxng
+#undef xmlRelaxNGFreeValidCtxt
extern __typeof (xmlRelaxNGFreeValidCtxt) xmlRelaxNGFreeValidCtxt __attribute((alias("xmlRelaxNGFreeValidCtxt__internal_alias")));
+#else
+#ifndef xmlRelaxNGFreeValidCtxt
+extern __typeof (xmlRelaxNGFreeValidCtxt) xmlRelaxNGFreeValidCtxt__internal_alias __attribute((visibility("hidden")));
#define xmlRelaxNGFreeValidCtxt xmlRelaxNGFreeValidCtxt__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_SCHEMAS_ENABLED)
-extern __typeof (xmlRelaxNGGetParserErrors) xmlRelaxNGGetParserErrors__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_relaxng
+#undef xmlRelaxNGGetParserErrors
extern __typeof (xmlRelaxNGGetParserErrors) xmlRelaxNGGetParserErrors __attribute((alias("xmlRelaxNGGetParserErrors__internal_alias")));
+#else
+#ifndef xmlRelaxNGGetParserErrors
+extern __typeof (xmlRelaxNGGetParserErrors) xmlRelaxNGGetParserErrors__internal_alias __attribute((visibility("hidden")));
#define xmlRelaxNGGetParserErrors xmlRelaxNGGetParserErrors__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_SCHEMAS_ENABLED)
-extern __typeof (xmlRelaxNGGetValidErrors) xmlRelaxNGGetValidErrors__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_relaxng
+#undef xmlRelaxNGGetValidErrors
extern __typeof (xmlRelaxNGGetValidErrors) xmlRelaxNGGetValidErrors __attribute((alias("xmlRelaxNGGetValidErrors__internal_alias")));
+#else
+#ifndef xmlRelaxNGGetValidErrors
+extern __typeof (xmlRelaxNGGetValidErrors) xmlRelaxNGGetValidErrors__internal_alias __attribute((visibility("hidden")));
#define xmlRelaxNGGetValidErrors xmlRelaxNGGetValidErrors__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_SCHEMAS_ENABLED)
-extern __typeof (xmlRelaxNGInitTypes) xmlRelaxNGInitTypes__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_relaxng
+#undef xmlRelaxNGInitTypes
extern __typeof (xmlRelaxNGInitTypes) xmlRelaxNGInitTypes __attribute((alias("xmlRelaxNGInitTypes__internal_alias")));
+#else
+#ifndef xmlRelaxNGInitTypes
+extern __typeof (xmlRelaxNGInitTypes) xmlRelaxNGInitTypes__internal_alias __attribute((visibility("hidden")));
#define xmlRelaxNGInitTypes xmlRelaxNGInitTypes__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_SCHEMAS_ENABLED)
-extern __typeof (xmlRelaxNGNewDocParserCtxt) xmlRelaxNGNewDocParserCtxt__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_relaxng
+#undef xmlRelaxNGNewDocParserCtxt
extern __typeof (xmlRelaxNGNewDocParserCtxt) xmlRelaxNGNewDocParserCtxt __attribute((alias("xmlRelaxNGNewDocParserCtxt__internal_alias")));
+#else
+#ifndef xmlRelaxNGNewDocParserCtxt
+extern __typeof (xmlRelaxNGNewDocParserCtxt) xmlRelaxNGNewDocParserCtxt__internal_alias __attribute((visibility("hidden")));
#define xmlRelaxNGNewDocParserCtxt xmlRelaxNGNewDocParserCtxt__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_SCHEMAS_ENABLED)
-extern __typeof (xmlRelaxNGNewMemParserCtxt) xmlRelaxNGNewMemParserCtxt__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_relaxng
+#undef xmlRelaxNGNewMemParserCtxt
extern __typeof (xmlRelaxNGNewMemParserCtxt) xmlRelaxNGNewMemParserCtxt __attribute((alias("xmlRelaxNGNewMemParserCtxt__internal_alias")));
+#else
+#ifndef xmlRelaxNGNewMemParserCtxt
+extern __typeof (xmlRelaxNGNewMemParserCtxt) xmlRelaxNGNewMemParserCtxt__internal_alias __attribute((visibility("hidden")));
#define xmlRelaxNGNewMemParserCtxt xmlRelaxNGNewMemParserCtxt__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_SCHEMAS_ENABLED)
-extern __typeof (xmlRelaxNGNewParserCtxt) xmlRelaxNGNewParserCtxt__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_relaxng
+#undef xmlRelaxNGNewParserCtxt
extern __typeof (xmlRelaxNGNewParserCtxt) xmlRelaxNGNewParserCtxt __attribute((alias("xmlRelaxNGNewParserCtxt__internal_alias")));
+#else
+#ifndef xmlRelaxNGNewParserCtxt
+extern __typeof (xmlRelaxNGNewParserCtxt) xmlRelaxNGNewParserCtxt__internal_alias __attribute((visibility("hidden")));
#define xmlRelaxNGNewParserCtxt xmlRelaxNGNewParserCtxt__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_SCHEMAS_ENABLED)
-extern __typeof (xmlRelaxNGNewValidCtxt) xmlRelaxNGNewValidCtxt__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_relaxng
+#undef xmlRelaxNGNewValidCtxt
extern __typeof (xmlRelaxNGNewValidCtxt) xmlRelaxNGNewValidCtxt __attribute((alias("xmlRelaxNGNewValidCtxt__internal_alias")));
+#else
+#ifndef xmlRelaxNGNewValidCtxt
+extern __typeof (xmlRelaxNGNewValidCtxt) xmlRelaxNGNewValidCtxt__internal_alias __attribute((visibility("hidden")));
#define xmlRelaxNGNewValidCtxt xmlRelaxNGNewValidCtxt__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_SCHEMAS_ENABLED)
-extern __typeof (xmlRelaxNGParse) xmlRelaxNGParse__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_relaxng
+#undef xmlRelaxNGParse
extern __typeof (xmlRelaxNGParse) xmlRelaxNGParse __attribute((alias("xmlRelaxNGParse__internal_alias")));
+#else
+#ifndef xmlRelaxNGParse
+extern __typeof (xmlRelaxNGParse) xmlRelaxNGParse__internal_alias __attribute((visibility("hidden")));
#define xmlRelaxNGParse xmlRelaxNGParse__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_SCHEMAS_ENABLED)
-extern __typeof (xmlRelaxNGSetParserErrors) xmlRelaxNGSetParserErrors__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_relaxng
+#undef xmlRelaxNGSetParserErrors
extern __typeof (xmlRelaxNGSetParserErrors) xmlRelaxNGSetParserErrors __attribute((alias("xmlRelaxNGSetParserErrors__internal_alias")));
+#else
+#ifndef xmlRelaxNGSetParserErrors
+extern __typeof (xmlRelaxNGSetParserErrors) xmlRelaxNGSetParserErrors__internal_alias __attribute((visibility("hidden")));
#define xmlRelaxNGSetParserErrors xmlRelaxNGSetParserErrors__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_SCHEMAS_ENABLED)
-extern __typeof (xmlRelaxNGSetValidErrors) xmlRelaxNGSetValidErrors__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_relaxng
+#undef xmlRelaxNGSetValidErrors
extern __typeof (xmlRelaxNGSetValidErrors) xmlRelaxNGSetValidErrors __attribute((alias("xmlRelaxNGSetValidErrors__internal_alias")));
+#else
+#ifndef xmlRelaxNGSetValidErrors
+extern __typeof (xmlRelaxNGSetValidErrors) xmlRelaxNGSetValidErrors__internal_alias __attribute((visibility("hidden")));
#define xmlRelaxNGSetValidErrors xmlRelaxNGSetValidErrors__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_SCHEMAS_ENABLED)
-extern __typeof (xmlRelaxNGValidateDoc) xmlRelaxNGValidateDoc__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_relaxng
+#undef xmlRelaxNGValidateDoc
extern __typeof (xmlRelaxNGValidateDoc) xmlRelaxNGValidateDoc __attribute((alias("xmlRelaxNGValidateDoc__internal_alias")));
+#else
+#ifndef xmlRelaxNGValidateDoc
+extern __typeof (xmlRelaxNGValidateDoc) xmlRelaxNGValidateDoc__internal_alias __attribute((visibility("hidden")));
#define xmlRelaxNGValidateDoc xmlRelaxNGValidateDoc__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_SCHEMAS_ENABLED)
-extern __typeof (xmlRelaxNGValidateFullElement) xmlRelaxNGValidateFullElement__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_relaxng
+#undef xmlRelaxNGValidateFullElement
extern __typeof (xmlRelaxNGValidateFullElement) xmlRelaxNGValidateFullElement __attribute((alias("xmlRelaxNGValidateFullElement__internal_alias")));
+#else
+#ifndef xmlRelaxNGValidateFullElement
+extern __typeof (xmlRelaxNGValidateFullElement) xmlRelaxNGValidateFullElement__internal_alias __attribute((visibility("hidden")));
#define xmlRelaxNGValidateFullElement xmlRelaxNGValidateFullElement__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_SCHEMAS_ENABLED)
-extern __typeof (xmlRelaxNGValidatePopElement) xmlRelaxNGValidatePopElement__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_relaxng
+#undef xmlRelaxNGValidatePopElement
extern __typeof (xmlRelaxNGValidatePopElement) xmlRelaxNGValidatePopElement __attribute((alias("xmlRelaxNGValidatePopElement__internal_alias")));
+#else
+#ifndef xmlRelaxNGValidatePopElement
+extern __typeof (xmlRelaxNGValidatePopElement) xmlRelaxNGValidatePopElement__internal_alias __attribute((visibility("hidden")));
#define xmlRelaxNGValidatePopElement xmlRelaxNGValidatePopElement__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_SCHEMAS_ENABLED)
-extern __typeof (xmlRelaxNGValidatePushCData) xmlRelaxNGValidatePushCData__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_relaxng
+#undef xmlRelaxNGValidatePushCData
extern __typeof (xmlRelaxNGValidatePushCData) xmlRelaxNGValidatePushCData __attribute((alias("xmlRelaxNGValidatePushCData__internal_alias")));
+#else
+#ifndef xmlRelaxNGValidatePushCData
+extern __typeof (xmlRelaxNGValidatePushCData) xmlRelaxNGValidatePushCData__internal_alias __attribute((visibility("hidden")));
#define xmlRelaxNGValidatePushCData xmlRelaxNGValidatePushCData__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_SCHEMAS_ENABLED)
-extern __typeof (xmlRelaxNGValidatePushElement) xmlRelaxNGValidatePushElement__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_relaxng
+#undef xmlRelaxNGValidatePushElement
extern __typeof (xmlRelaxNGValidatePushElement) xmlRelaxNGValidatePushElement __attribute((alias("xmlRelaxNGValidatePushElement__internal_alias")));
+#else
+#ifndef xmlRelaxNGValidatePushElement
+extern __typeof (xmlRelaxNGValidatePushElement) xmlRelaxNGValidatePushElement__internal_alias __attribute((visibility("hidden")));
#define xmlRelaxNGValidatePushElement xmlRelaxNGValidatePushElement__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_SCHEMAS_ENABLED)
-extern __typeof (xmlRelaxParserSetFlag) xmlRelaxParserSetFlag__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_relaxng
+#undef xmlRelaxParserSetFlag
extern __typeof (xmlRelaxParserSetFlag) xmlRelaxParserSetFlag __attribute((alias("xmlRelaxParserSetFlag__internal_alias")));
+#else
+#ifndef xmlRelaxParserSetFlag
+extern __typeof (xmlRelaxParserSetFlag) xmlRelaxParserSetFlag__internal_alias __attribute((visibility("hidden")));
#define xmlRelaxParserSetFlag xmlRelaxParserSetFlag__internal_alias
#endif
+#endif
+#endif
-extern __typeof (xmlRemoveID) xmlRemoveID__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_valid
+#undef xmlRemoveID
extern __typeof (xmlRemoveID) xmlRemoveID __attribute((alias("xmlRemoveID__internal_alias")));
+#else
+#ifndef xmlRemoveID
+extern __typeof (xmlRemoveID) xmlRemoveID__internal_alias __attribute((visibility("hidden")));
#define xmlRemoveID xmlRemoveID__internal_alias
+#endif
+#endif
#if defined(LIBXML_TREE_ENABLED)
-extern __typeof (xmlRemoveProp) xmlRemoveProp__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_tree
+#undef xmlRemoveProp
extern __typeof (xmlRemoveProp) xmlRemoveProp __attribute((alias("xmlRemoveProp__internal_alias")));
+#else
+#ifndef xmlRemoveProp
+extern __typeof (xmlRemoveProp) xmlRemoveProp__internal_alias __attribute((visibility("hidden")));
#define xmlRemoveProp xmlRemoveProp__internal_alias
#endif
+#endif
+#endif
-extern __typeof (xmlRemoveRef) xmlRemoveRef__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_valid
+#undef xmlRemoveRef
extern __typeof (xmlRemoveRef) xmlRemoveRef __attribute((alias("xmlRemoveRef__internal_alias")));
+#else
+#ifndef xmlRemoveRef
+extern __typeof (xmlRemoveRef) xmlRemoveRef__internal_alias __attribute((visibility("hidden")));
#define xmlRemoveRef xmlRemoveRef__internal_alias
+#endif
+#endif
#if defined(LIBXML_TREE_ENABLED) || defined(LIBXML_WRITER_ENABLED)
-extern __typeof (xmlReplaceNode) xmlReplaceNode__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_tree
+#undef xmlReplaceNode
extern __typeof (xmlReplaceNode) xmlReplaceNode __attribute((alias("xmlReplaceNode__internal_alias")));
+#else
+#ifndef xmlReplaceNode
+extern __typeof (xmlReplaceNode) xmlReplaceNode__internal_alias __attribute((visibility("hidden")));
#define xmlReplaceNode xmlReplaceNode__internal_alias
#endif
+#endif
+#endif
-extern __typeof (xmlResetError) xmlResetError__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_error
+#undef xmlResetError
extern __typeof (xmlResetError) xmlResetError __attribute((alias("xmlResetError__internal_alias")));
+#else
+#ifndef xmlResetError
+extern __typeof (xmlResetError) xmlResetError__internal_alias __attribute((visibility("hidden")));
#define xmlResetError xmlResetError__internal_alias
+#endif
+#endif
-extern __typeof (xmlResetLastError) xmlResetLastError__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_error
+#undef xmlResetLastError
extern __typeof (xmlResetLastError) xmlResetLastError __attribute((alias("xmlResetLastError__internal_alias")));
+#else
+#ifndef xmlResetLastError
+extern __typeof (xmlResetLastError) xmlResetLastError__internal_alias __attribute((visibility("hidden")));
#define xmlResetLastError xmlResetLastError__internal_alias
+#endif
+#endif
-extern __typeof (xmlSAX2AttributeDecl) xmlSAX2AttributeDecl__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_SAX2
+#undef xmlSAX2AttributeDecl
extern __typeof (xmlSAX2AttributeDecl) xmlSAX2AttributeDecl __attribute((alias("xmlSAX2AttributeDecl__internal_alias")));
+#else
+#ifndef xmlSAX2AttributeDecl
+extern __typeof (xmlSAX2AttributeDecl) xmlSAX2AttributeDecl__internal_alias __attribute((visibility("hidden")));
#define xmlSAX2AttributeDecl xmlSAX2AttributeDecl__internal_alias
+#endif
+#endif
-extern __typeof (xmlSAX2CDataBlock) xmlSAX2CDataBlock__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_SAX2
+#undef xmlSAX2CDataBlock
extern __typeof (xmlSAX2CDataBlock) xmlSAX2CDataBlock __attribute((alias("xmlSAX2CDataBlock__internal_alias")));
+#else
+#ifndef xmlSAX2CDataBlock
+extern __typeof (xmlSAX2CDataBlock) xmlSAX2CDataBlock__internal_alias __attribute((visibility("hidden")));
#define xmlSAX2CDataBlock xmlSAX2CDataBlock__internal_alias
+#endif
+#endif
-extern __typeof (xmlSAX2Characters) xmlSAX2Characters__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_SAX2
+#undef xmlSAX2Characters
extern __typeof (xmlSAX2Characters) xmlSAX2Characters __attribute((alias("xmlSAX2Characters__internal_alias")));
+#else
+#ifndef xmlSAX2Characters
+extern __typeof (xmlSAX2Characters) xmlSAX2Characters__internal_alias __attribute((visibility("hidden")));
#define xmlSAX2Characters xmlSAX2Characters__internal_alias
+#endif
+#endif
-extern __typeof (xmlSAX2Comment) xmlSAX2Comment__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_SAX2
+#undef xmlSAX2Comment
extern __typeof (xmlSAX2Comment) xmlSAX2Comment __attribute((alias("xmlSAX2Comment__internal_alias")));
+#else
+#ifndef xmlSAX2Comment
+extern __typeof (xmlSAX2Comment) xmlSAX2Comment__internal_alias __attribute((visibility("hidden")));
#define xmlSAX2Comment xmlSAX2Comment__internal_alias
+#endif
+#endif
-extern __typeof (xmlSAX2ElementDecl) xmlSAX2ElementDecl__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_SAX2
+#undef xmlSAX2ElementDecl
extern __typeof (xmlSAX2ElementDecl) xmlSAX2ElementDecl __attribute((alias("xmlSAX2ElementDecl__internal_alias")));
+#else
+#ifndef xmlSAX2ElementDecl
+extern __typeof (xmlSAX2ElementDecl) xmlSAX2ElementDecl__internal_alias __attribute((visibility("hidden")));
#define xmlSAX2ElementDecl xmlSAX2ElementDecl__internal_alias
+#endif
+#endif
-extern __typeof (xmlSAX2EndDocument) xmlSAX2EndDocument__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_SAX2
+#undef xmlSAX2EndDocument
extern __typeof (xmlSAX2EndDocument) xmlSAX2EndDocument __attribute((alias("xmlSAX2EndDocument__internal_alias")));
+#else
+#ifndef xmlSAX2EndDocument
+extern __typeof (xmlSAX2EndDocument) xmlSAX2EndDocument__internal_alias __attribute((visibility("hidden")));
#define xmlSAX2EndDocument xmlSAX2EndDocument__internal_alias
+#endif
+#endif
#if defined(LIBXML_SAX1_ENABLED) || defined(LIBXML_HTML_ENABLED)
-extern __typeof (xmlSAX2EndElement) xmlSAX2EndElement__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_SAX2
+#undef xmlSAX2EndElement
extern __typeof (xmlSAX2EndElement) xmlSAX2EndElement __attribute((alias("xmlSAX2EndElement__internal_alias")));
+#else
+#ifndef xmlSAX2EndElement
+extern __typeof (xmlSAX2EndElement) xmlSAX2EndElement__internal_alias __attribute((visibility("hidden")));
#define xmlSAX2EndElement xmlSAX2EndElement__internal_alias
#endif
+#endif
+#endif
-extern __typeof (xmlSAX2EndElementNs) xmlSAX2EndElementNs__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_SAX2
+#undef xmlSAX2EndElementNs
extern __typeof (xmlSAX2EndElementNs) xmlSAX2EndElementNs __attribute((alias("xmlSAX2EndElementNs__internal_alias")));
+#else
+#ifndef xmlSAX2EndElementNs
+extern __typeof (xmlSAX2EndElementNs) xmlSAX2EndElementNs__internal_alias __attribute((visibility("hidden")));
#define xmlSAX2EndElementNs xmlSAX2EndElementNs__internal_alias
+#endif
+#endif
-extern __typeof (xmlSAX2EntityDecl) xmlSAX2EntityDecl__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_SAX2
+#undef xmlSAX2EntityDecl
extern __typeof (xmlSAX2EntityDecl) xmlSAX2EntityDecl __attribute((alias("xmlSAX2EntityDecl__internal_alias")));
+#else
+#ifndef xmlSAX2EntityDecl
+extern __typeof (xmlSAX2EntityDecl) xmlSAX2EntityDecl__internal_alias __attribute((visibility("hidden")));
#define xmlSAX2EntityDecl xmlSAX2EntityDecl__internal_alias
+#endif
+#endif
-extern __typeof (xmlSAX2ExternalSubset) xmlSAX2ExternalSubset__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_SAX2
+#undef xmlSAX2ExternalSubset
extern __typeof (xmlSAX2ExternalSubset) xmlSAX2ExternalSubset __attribute((alias("xmlSAX2ExternalSubset__internal_alias")));
+#else
+#ifndef xmlSAX2ExternalSubset
+extern __typeof (xmlSAX2ExternalSubset) xmlSAX2ExternalSubset__internal_alias __attribute((visibility("hidden")));
#define xmlSAX2ExternalSubset xmlSAX2ExternalSubset__internal_alias
+#endif
+#endif
-extern __typeof (xmlSAX2GetColumnNumber) xmlSAX2GetColumnNumber__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_SAX2
+#undef xmlSAX2GetColumnNumber
extern __typeof (xmlSAX2GetColumnNumber) xmlSAX2GetColumnNumber __attribute((alias("xmlSAX2GetColumnNumber__internal_alias")));
+#else
+#ifndef xmlSAX2GetColumnNumber
+extern __typeof (xmlSAX2GetColumnNumber) xmlSAX2GetColumnNumber__internal_alias __attribute((visibility("hidden")));
#define xmlSAX2GetColumnNumber xmlSAX2GetColumnNumber__internal_alias
+#endif
+#endif
-extern __typeof (xmlSAX2GetEntity) xmlSAX2GetEntity__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_SAX2
+#undef xmlSAX2GetEntity
extern __typeof (xmlSAX2GetEntity) xmlSAX2GetEntity __attribute((alias("xmlSAX2GetEntity__internal_alias")));
+#else
+#ifndef xmlSAX2GetEntity
+extern __typeof (xmlSAX2GetEntity) xmlSAX2GetEntity__internal_alias __attribute((visibility("hidden")));
#define xmlSAX2GetEntity xmlSAX2GetEntity__internal_alias
+#endif
+#endif
-extern __typeof (xmlSAX2GetLineNumber) xmlSAX2GetLineNumber__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_SAX2
+#undef xmlSAX2GetLineNumber
extern __typeof (xmlSAX2GetLineNumber) xmlSAX2GetLineNumber __attribute((alias("xmlSAX2GetLineNumber__internal_alias")));
+#else
+#ifndef xmlSAX2GetLineNumber
+extern __typeof (xmlSAX2GetLineNumber) xmlSAX2GetLineNumber__internal_alias __attribute((visibility("hidden")));
#define xmlSAX2GetLineNumber xmlSAX2GetLineNumber__internal_alias
+#endif
+#endif
-extern __typeof (xmlSAX2GetParameterEntity) xmlSAX2GetParameterEntity__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_SAX2
+#undef xmlSAX2GetParameterEntity
extern __typeof (xmlSAX2GetParameterEntity) xmlSAX2GetParameterEntity __attribute((alias("xmlSAX2GetParameterEntity__internal_alias")));
+#else
+#ifndef xmlSAX2GetParameterEntity
+extern __typeof (xmlSAX2GetParameterEntity) xmlSAX2GetParameterEntity__internal_alias __attribute((visibility("hidden")));
#define xmlSAX2GetParameterEntity xmlSAX2GetParameterEntity__internal_alias
+#endif
+#endif
-extern __typeof (xmlSAX2GetPublicId) xmlSAX2GetPublicId__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_SAX2
+#undef xmlSAX2GetPublicId
extern __typeof (xmlSAX2GetPublicId) xmlSAX2GetPublicId __attribute((alias("xmlSAX2GetPublicId__internal_alias")));
+#else
+#ifndef xmlSAX2GetPublicId
+extern __typeof (xmlSAX2GetPublicId) xmlSAX2GetPublicId__internal_alias __attribute((visibility("hidden")));
#define xmlSAX2GetPublicId xmlSAX2GetPublicId__internal_alias
+#endif
+#endif
-extern __typeof (xmlSAX2GetSystemId) xmlSAX2GetSystemId__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_SAX2
+#undef xmlSAX2GetSystemId
extern __typeof (xmlSAX2GetSystemId) xmlSAX2GetSystemId __attribute((alias("xmlSAX2GetSystemId__internal_alias")));
+#else
+#ifndef xmlSAX2GetSystemId
+extern __typeof (xmlSAX2GetSystemId) xmlSAX2GetSystemId__internal_alias __attribute((visibility("hidden")));
#define xmlSAX2GetSystemId xmlSAX2GetSystemId__internal_alias
+#endif
+#endif
-extern __typeof (xmlSAX2HasExternalSubset) xmlSAX2HasExternalSubset__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_SAX2
+#undef xmlSAX2HasExternalSubset
extern __typeof (xmlSAX2HasExternalSubset) xmlSAX2HasExternalSubset __attribute((alias("xmlSAX2HasExternalSubset__internal_alias")));
+#else
+#ifndef xmlSAX2HasExternalSubset
+extern __typeof (xmlSAX2HasExternalSubset) xmlSAX2HasExternalSubset__internal_alias __attribute((visibility("hidden")));
#define xmlSAX2HasExternalSubset xmlSAX2HasExternalSubset__internal_alias
+#endif
+#endif
-extern __typeof (xmlSAX2HasInternalSubset) xmlSAX2HasInternalSubset__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_SAX2
+#undef xmlSAX2HasInternalSubset
extern __typeof (xmlSAX2HasInternalSubset) xmlSAX2HasInternalSubset __attribute((alias("xmlSAX2HasInternalSubset__internal_alias")));
+#else
+#ifndef xmlSAX2HasInternalSubset
+extern __typeof (xmlSAX2HasInternalSubset) xmlSAX2HasInternalSubset__internal_alias __attribute((visibility("hidden")));
#define xmlSAX2HasInternalSubset xmlSAX2HasInternalSubset__internal_alias
+#endif
+#endif
-extern __typeof (xmlSAX2IgnorableWhitespace) xmlSAX2IgnorableWhitespace__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_SAX2
+#undef xmlSAX2IgnorableWhitespace
extern __typeof (xmlSAX2IgnorableWhitespace) xmlSAX2IgnorableWhitespace __attribute((alias("xmlSAX2IgnorableWhitespace__internal_alias")));
+#else
+#ifndef xmlSAX2IgnorableWhitespace
+extern __typeof (xmlSAX2IgnorableWhitespace) xmlSAX2IgnorableWhitespace__internal_alias __attribute((visibility("hidden")));
#define xmlSAX2IgnorableWhitespace xmlSAX2IgnorableWhitespace__internal_alias
+#endif
+#endif
-extern __typeof (xmlSAX2InitDefaultSAXHandler) xmlSAX2InitDefaultSAXHandler__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_SAX2
+#undef xmlSAX2InitDefaultSAXHandler
extern __typeof (xmlSAX2InitDefaultSAXHandler) xmlSAX2InitDefaultSAXHandler __attribute((alias("xmlSAX2InitDefaultSAXHandler__internal_alias")));
+#else
+#ifndef xmlSAX2InitDefaultSAXHandler
+extern __typeof (xmlSAX2InitDefaultSAXHandler) xmlSAX2InitDefaultSAXHandler__internal_alias __attribute((visibility("hidden")));
#define xmlSAX2InitDefaultSAXHandler xmlSAX2InitDefaultSAXHandler__internal_alias
+#endif
+#endif
#if defined(LIBXML_DOCB_ENABLED)
-extern __typeof (xmlSAX2InitDocbDefaultSAXHandler) xmlSAX2InitDocbDefaultSAXHandler__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_SAX2
+#undef xmlSAX2InitDocbDefaultSAXHandler
extern __typeof (xmlSAX2InitDocbDefaultSAXHandler) xmlSAX2InitDocbDefaultSAXHandler __attribute((alias("xmlSAX2InitDocbDefaultSAXHandler__internal_alias")));
+#else
+#ifndef xmlSAX2InitDocbDefaultSAXHandler
+extern __typeof (xmlSAX2InitDocbDefaultSAXHandler) xmlSAX2InitDocbDefaultSAXHandler__internal_alias __attribute((visibility("hidden")));
#define xmlSAX2InitDocbDefaultSAXHandler xmlSAX2InitDocbDefaultSAXHandler__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_HTML_ENABLED)
-extern __typeof (xmlSAX2InitHtmlDefaultSAXHandler) xmlSAX2InitHtmlDefaultSAXHandler__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_SAX2
+#undef xmlSAX2InitHtmlDefaultSAXHandler
extern __typeof (xmlSAX2InitHtmlDefaultSAXHandler) xmlSAX2InitHtmlDefaultSAXHandler __attribute((alias("xmlSAX2InitHtmlDefaultSAXHandler__internal_alias")));
+#else
+#ifndef xmlSAX2InitHtmlDefaultSAXHandler
+extern __typeof (xmlSAX2InitHtmlDefaultSAXHandler) xmlSAX2InitHtmlDefaultSAXHandler__internal_alias __attribute((visibility("hidden")));
#define xmlSAX2InitHtmlDefaultSAXHandler xmlSAX2InitHtmlDefaultSAXHandler__internal_alias
#endif
+#endif
+#endif
-extern __typeof (xmlSAX2InternalSubset) xmlSAX2InternalSubset__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_SAX2
+#undef xmlSAX2InternalSubset
extern __typeof (xmlSAX2InternalSubset) xmlSAX2InternalSubset __attribute((alias("xmlSAX2InternalSubset__internal_alias")));
+#else
+#ifndef xmlSAX2InternalSubset
+extern __typeof (xmlSAX2InternalSubset) xmlSAX2InternalSubset__internal_alias __attribute((visibility("hidden")));
#define xmlSAX2InternalSubset xmlSAX2InternalSubset__internal_alias
+#endif
+#endif
-extern __typeof (xmlSAX2IsStandalone) xmlSAX2IsStandalone__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_SAX2
+#undef xmlSAX2IsStandalone
extern __typeof (xmlSAX2IsStandalone) xmlSAX2IsStandalone __attribute((alias("xmlSAX2IsStandalone__internal_alias")));
+#else
+#ifndef xmlSAX2IsStandalone
+extern __typeof (xmlSAX2IsStandalone) xmlSAX2IsStandalone__internal_alias __attribute((visibility("hidden")));
#define xmlSAX2IsStandalone xmlSAX2IsStandalone__internal_alias
+#endif
+#endif
-extern __typeof (xmlSAX2NotationDecl) xmlSAX2NotationDecl__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_SAX2
+#undef xmlSAX2NotationDecl
extern __typeof (xmlSAX2NotationDecl) xmlSAX2NotationDecl __attribute((alias("xmlSAX2NotationDecl__internal_alias")));
+#else
+#ifndef xmlSAX2NotationDecl
+extern __typeof (xmlSAX2NotationDecl) xmlSAX2NotationDecl__internal_alias __attribute((visibility("hidden")));
#define xmlSAX2NotationDecl xmlSAX2NotationDecl__internal_alias
+#endif
+#endif
-extern __typeof (xmlSAX2ProcessingInstruction) xmlSAX2ProcessingInstruction__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_SAX2
+#undef xmlSAX2ProcessingInstruction
extern __typeof (xmlSAX2ProcessingInstruction) xmlSAX2ProcessingInstruction __attribute((alias("xmlSAX2ProcessingInstruction__internal_alias")));
+#else
+#ifndef xmlSAX2ProcessingInstruction
+extern __typeof (xmlSAX2ProcessingInstruction) xmlSAX2ProcessingInstruction__internal_alias __attribute((visibility("hidden")));
#define xmlSAX2ProcessingInstruction xmlSAX2ProcessingInstruction__internal_alias
+#endif
+#endif
-extern __typeof (xmlSAX2Reference) xmlSAX2Reference__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_SAX2
+#undef xmlSAX2Reference
extern __typeof (xmlSAX2Reference) xmlSAX2Reference __attribute((alias("xmlSAX2Reference__internal_alias")));
+#else
+#ifndef xmlSAX2Reference
+extern __typeof (xmlSAX2Reference) xmlSAX2Reference__internal_alias __attribute((visibility("hidden")));
#define xmlSAX2Reference xmlSAX2Reference__internal_alias
+#endif
+#endif
-extern __typeof (xmlSAX2ResolveEntity) xmlSAX2ResolveEntity__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_SAX2
+#undef xmlSAX2ResolveEntity
extern __typeof (xmlSAX2ResolveEntity) xmlSAX2ResolveEntity __attribute((alias("xmlSAX2ResolveEntity__internal_alias")));
+#else
+#ifndef xmlSAX2ResolveEntity
+extern __typeof (xmlSAX2ResolveEntity) xmlSAX2ResolveEntity__internal_alias __attribute((visibility("hidden")));
#define xmlSAX2ResolveEntity xmlSAX2ResolveEntity__internal_alias
+#endif
+#endif
-extern __typeof (xmlSAX2SetDocumentLocator) xmlSAX2SetDocumentLocator__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_SAX2
+#undef xmlSAX2SetDocumentLocator
extern __typeof (xmlSAX2SetDocumentLocator) xmlSAX2SetDocumentLocator __attribute((alias("xmlSAX2SetDocumentLocator__internal_alias")));
+#else
+#ifndef xmlSAX2SetDocumentLocator
+extern __typeof (xmlSAX2SetDocumentLocator) xmlSAX2SetDocumentLocator__internal_alias __attribute((visibility("hidden")));
#define xmlSAX2SetDocumentLocator xmlSAX2SetDocumentLocator__internal_alias
+#endif
+#endif
-extern __typeof (xmlSAX2StartDocument) xmlSAX2StartDocument__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_SAX2
+#undef xmlSAX2StartDocument
extern __typeof (xmlSAX2StartDocument) xmlSAX2StartDocument __attribute((alias("xmlSAX2StartDocument__internal_alias")));
+#else
+#ifndef xmlSAX2StartDocument
+extern __typeof (xmlSAX2StartDocument) xmlSAX2StartDocument__internal_alias __attribute((visibility("hidden")));
#define xmlSAX2StartDocument xmlSAX2StartDocument__internal_alias
+#endif
+#endif
#if defined(LIBXML_SAX1_ENABLED) || defined(LIBXML_HTML_ENABLED)
-extern __typeof (xmlSAX2StartElement) xmlSAX2StartElement__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_SAX2
+#undef xmlSAX2StartElement
extern __typeof (xmlSAX2StartElement) xmlSAX2StartElement __attribute((alias("xmlSAX2StartElement__internal_alias")));
+#else
+#ifndef xmlSAX2StartElement
+extern __typeof (xmlSAX2StartElement) xmlSAX2StartElement__internal_alias __attribute((visibility("hidden")));
#define xmlSAX2StartElement xmlSAX2StartElement__internal_alias
#endif
+#endif
+#endif
-extern __typeof (xmlSAX2StartElementNs) xmlSAX2StartElementNs__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_SAX2
+#undef xmlSAX2StartElementNs
extern __typeof (xmlSAX2StartElementNs) xmlSAX2StartElementNs __attribute((alias("xmlSAX2StartElementNs__internal_alias")));
+#else
+#ifndef xmlSAX2StartElementNs
+extern __typeof (xmlSAX2StartElementNs) xmlSAX2StartElementNs__internal_alias __attribute((visibility("hidden")));
#define xmlSAX2StartElementNs xmlSAX2StartElementNs__internal_alias
+#endif
+#endif
-extern __typeof (xmlSAX2UnparsedEntityDecl) xmlSAX2UnparsedEntityDecl__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_SAX2
+#undef xmlSAX2UnparsedEntityDecl
extern __typeof (xmlSAX2UnparsedEntityDecl) xmlSAX2UnparsedEntityDecl __attribute((alias("xmlSAX2UnparsedEntityDecl__internal_alias")));
+#else
+#ifndef xmlSAX2UnparsedEntityDecl
+extern __typeof (xmlSAX2UnparsedEntityDecl) xmlSAX2UnparsedEntityDecl__internal_alias __attribute((visibility("hidden")));
#define xmlSAX2UnparsedEntityDecl xmlSAX2UnparsedEntityDecl__internal_alias
+#endif
+#endif
#if defined(LIBXML_SAX1_ENABLED)
-extern __typeof (xmlSAXDefaultVersion) xmlSAXDefaultVersion__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_SAX2
+#undef xmlSAXDefaultVersion
extern __typeof (xmlSAXDefaultVersion) xmlSAXDefaultVersion __attribute((alias("xmlSAXDefaultVersion__internal_alias")));
+#else
+#ifndef xmlSAXDefaultVersion
+extern __typeof (xmlSAXDefaultVersion) xmlSAXDefaultVersion__internal_alias __attribute((visibility("hidden")));
#define xmlSAXDefaultVersion xmlSAXDefaultVersion__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_VALID_ENABLED)
-extern __typeof (xmlSAXParseDTD) xmlSAXParseDTD__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_parser
+#undef xmlSAXParseDTD
extern __typeof (xmlSAXParseDTD) xmlSAXParseDTD __attribute((alias("xmlSAXParseDTD__internal_alias")));
+#else
+#ifndef xmlSAXParseDTD
+extern __typeof (xmlSAXParseDTD) xmlSAXParseDTD__internal_alias __attribute((visibility("hidden")));
#define xmlSAXParseDTD xmlSAXParseDTD__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_SAX1_ENABLED)
-extern __typeof (xmlSAXParseDoc) xmlSAXParseDoc__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_parser
+#undef xmlSAXParseDoc
extern __typeof (xmlSAXParseDoc) xmlSAXParseDoc __attribute((alias("xmlSAXParseDoc__internal_alias")));
+#else
+#ifndef xmlSAXParseDoc
+extern __typeof (xmlSAXParseDoc) xmlSAXParseDoc__internal_alias __attribute((visibility("hidden")));
#define xmlSAXParseDoc xmlSAXParseDoc__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_SAX1_ENABLED)
-extern __typeof (xmlSAXParseEntity) xmlSAXParseEntity__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_parser
+#undef xmlSAXParseEntity
extern __typeof (xmlSAXParseEntity) xmlSAXParseEntity __attribute((alias("xmlSAXParseEntity__internal_alias")));
+#else
+#ifndef xmlSAXParseEntity
+extern __typeof (xmlSAXParseEntity) xmlSAXParseEntity__internal_alias __attribute((visibility("hidden")));
#define xmlSAXParseEntity xmlSAXParseEntity__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_SAX1_ENABLED)
-extern __typeof (xmlSAXParseFile) xmlSAXParseFile__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_parser
+#undef xmlSAXParseFile
extern __typeof (xmlSAXParseFile) xmlSAXParseFile __attribute((alias("xmlSAXParseFile__internal_alias")));
+#else
+#ifndef xmlSAXParseFile
+extern __typeof (xmlSAXParseFile) xmlSAXParseFile__internal_alias __attribute((visibility("hidden")));
#define xmlSAXParseFile xmlSAXParseFile__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_SAX1_ENABLED)
-extern __typeof (xmlSAXParseFileWithData) xmlSAXParseFileWithData__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_parser
+#undef xmlSAXParseFileWithData
extern __typeof (xmlSAXParseFileWithData) xmlSAXParseFileWithData __attribute((alias("xmlSAXParseFileWithData__internal_alias")));
+#else
+#ifndef xmlSAXParseFileWithData
+extern __typeof (xmlSAXParseFileWithData) xmlSAXParseFileWithData__internal_alias __attribute((visibility("hidden")));
#define xmlSAXParseFileWithData xmlSAXParseFileWithData__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_SAX1_ENABLED)
-extern __typeof (xmlSAXParseMemory) xmlSAXParseMemory__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_parser
+#undef xmlSAXParseMemory
extern __typeof (xmlSAXParseMemory) xmlSAXParseMemory __attribute((alias("xmlSAXParseMemory__internal_alias")));
+#else
+#ifndef xmlSAXParseMemory
+extern __typeof (xmlSAXParseMemory) xmlSAXParseMemory__internal_alias __attribute((visibility("hidden")));
#define xmlSAXParseMemory xmlSAXParseMemory__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_SAX1_ENABLED)
-extern __typeof (xmlSAXParseMemoryWithData) xmlSAXParseMemoryWithData__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_parser
+#undef xmlSAXParseMemoryWithData
extern __typeof (xmlSAXParseMemoryWithData) xmlSAXParseMemoryWithData __attribute((alias("xmlSAXParseMemoryWithData__internal_alias")));
+#else
+#ifndef xmlSAXParseMemoryWithData
+extern __typeof (xmlSAXParseMemoryWithData) xmlSAXParseMemoryWithData__internal_alias __attribute((visibility("hidden")));
#define xmlSAXParseMemoryWithData xmlSAXParseMemoryWithData__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_SAX1_ENABLED)
-extern __typeof (xmlSAXUserParseFile) xmlSAXUserParseFile__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_parser
+#undef xmlSAXUserParseFile
extern __typeof (xmlSAXUserParseFile) xmlSAXUserParseFile __attribute((alias("xmlSAXUserParseFile__internal_alias")));
+#else
+#ifndef xmlSAXUserParseFile
+extern __typeof (xmlSAXUserParseFile) xmlSAXUserParseFile__internal_alias __attribute((visibility("hidden")));
#define xmlSAXUserParseFile xmlSAXUserParseFile__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_SAX1_ENABLED)
-extern __typeof (xmlSAXUserParseMemory) xmlSAXUserParseMemory__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_parser
+#undef xmlSAXUserParseMemory
extern __typeof (xmlSAXUserParseMemory) xmlSAXUserParseMemory __attribute((alias("xmlSAXUserParseMemory__internal_alias")));
+#else
+#ifndef xmlSAXUserParseMemory
+extern __typeof (xmlSAXUserParseMemory) xmlSAXUserParseMemory__internal_alias __attribute((visibility("hidden")));
#define xmlSAXUserParseMemory xmlSAXUserParseMemory__internal_alias
#endif
+#endif
+#endif
-extern __typeof (xmlSAXVersion) xmlSAXVersion__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_SAX2
+#undef xmlSAXVersion
extern __typeof (xmlSAXVersion) xmlSAXVersion __attribute((alias("xmlSAXVersion__internal_alias")));
+#else
+#ifndef xmlSAXVersion
+extern __typeof (xmlSAXVersion) xmlSAXVersion__internal_alias __attribute((visibility("hidden")));
#define xmlSAXVersion xmlSAXVersion__internal_alias
+#endif
+#endif
#if defined(LIBXML_OUTPUT_ENABLED)
-extern __typeof (xmlSaveClose) xmlSaveClose__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlsave
+#undef xmlSaveClose
extern __typeof (xmlSaveClose) xmlSaveClose __attribute((alias("xmlSaveClose__internal_alias")));
+#else
+#ifndef xmlSaveClose
+extern __typeof (xmlSaveClose) xmlSaveClose__internal_alias __attribute((visibility("hidden")));
#define xmlSaveClose xmlSaveClose__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_OUTPUT_ENABLED)
-extern __typeof (xmlSaveDoc) xmlSaveDoc__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlsave
+#undef xmlSaveDoc
extern __typeof (xmlSaveDoc) xmlSaveDoc __attribute((alias("xmlSaveDoc__internal_alias")));
+#else
+#ifndef xmlSaveDoc
+extern __typeof (xmlSaveDoc) xmlSaveDoc__internal_alias __attribute((visibility("hidden")));
#define xmlSaveDoc xmlSaveDoc__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_OUTPUT_ENABLED)
-extern __typeof (xmlSaveFile) xmlSaveFile__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlsave
+#undef xmlSaveFile
extern __typeof (xmlSaveFile) xmlSaveFile __attribute((alias("xmlSaveFile__internal_alias")));
+#else
+#ifndef xmlSaveFile
+extern __typeof (xmlSaveFile) xmlSaveFile__internal_alias __attribute((visibility("hidden")));
#define xmlSaveFile xmlSaveFile__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_OUTPUT_ENABLED)
-extern __typeof (xmlSaveFileEnc) xmlSaveFileEnc__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlsave
+#undef xmlSaveFileEnc
extern __typeof (xmlSaveFileEnc) xmlSaveFileEnc __attribute((alias("xmlSaveFileEnc__internal_alias")));
+#else
+#ifndef xmlSaveFileEnc
+extern __typeof (xmlSaveFileEnc) xmlSaveFileEnc__internal_alias __attribute((visibility("hidden")));
#define xmlSaveFileEnc xmlSaveFileEnc__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_OUTPUT_ENABLED)
-extern __typeof (xmlSaveFileTo) xmlSaveFileTo__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlsave
+#undef xmlSaveFileTo
extern __typeof (xmlSaveFileTo) xmlSaveFileTo __attribute((alias("xmlSaveFileTo__internal_alias")));
+#else
+#ifndef xmlSaveFileTo
+extern __typeof (xmlSaveFileTo) xmlSaveFileTo__internal_alias __attribute((visibility("hidden")));
#define xmlSaveFileTo xmlSaveFileTo__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_OUTPUT_ENABLED)
-extern __typeof (xmlSaveFlush) xmlSaveFlush__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlsave
+#undef xmlSaveFlush
extern __typeof (xmlSaveFlush) xmlSaveFlush __attribute((alias("xmlSaveFlush__internal_alias")));
+#else
+#ifndef xmlSaveFlush
+extern __typeof (xmlSaveFlush) xmlSaveFlush__internal_alias __attribute((visibility("hidden")));
#define xmlSaveFlush xmlSaveFlush__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_OUTPUT_ENABLED)
-extern __typeof (xmlSaveFormatFile) xmlSaveFormatFile__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlsave
+#undef xmlSaveFormatFile
extern __typeof (xmlSaveFormatFile) xmlSaveFormatFile __attribute((alias("xmlSaveFormatFile__internal_alias")));
+#else
+#ifndef xmlSaveFormatFile
+extern __typeof (xmlSaveFormatFile) xmlSaveFormatFile__internal_alias __attribute((visibility("hidden")));
#define xmlSaveFormatFile xmlSaveFormatFile__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_OUTPUT_ENABLED)
-extern __typeof (xmlSaveFormatFileEnc) xmlSaveFormatFileEnc__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlsave
+#undef xmlSaveFormatFileEnc
extern __typeof (xmlSaveFormatFileEnc) xmlSaveFormatFileEnc __attribute((alias("xmlSaveFormatFileEnc__internal_alias")));
+#else
+#ifndef xmlSaveFormatFileEnc
+extern __typeof (xmlSaveFormatFileEnc) xmlSaveFormatFileEnc__internal_alias __attribute((visibility("hidden")));
#define xmlSaveFormatFileEnc xmlSaveFormatFileEnc__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_OUTPUT_ENABLED)
-extern __typeof (xmlSaveFormatFileTo) xmlSaveFormatFileTo__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlsave
+#undef xmlSaveFormatFileTo
extern __typeof (xmlSaveFormatFileTo) xmlSaveFormatFileTo __attribute((alias("xmlSaveFormatFileTo__internal_alias")));
+#else
+#ifndef xmlSaveFormatFileTo
+extern __typeof (xmlSaveFormatFileTo) xmlSaveFormatFileTo__internal_alias __attribute((visibility("hidden")));
#define xmlSaveFormatFileTo xmlSaveFormatFileTo__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_OUTPUT_ENABLED)
-extern __typeof (xmlSaveSetAttrEscape) xmlSaveSetAttrEscape__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlsave
+#undef xmlSaveSetAttrEscape
extern __typeof (xmlSaveSetAttrEscape) xmlSaveSetAttrEscape __attribute((alias("xmlSaveSetAttrEscape__internal_alias")));
+#else
+#ifndef xmlSaveSetAttrEscape
+extern __typeof (xmlSaveSetAttrEscape) xmlSaveSetAttrEscape__internal_alias __attribute((visibility("hidden")));
#define xmlSaveSetAttrEscape xmlSaveSetAttrEscape__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_OUTPUT_ENABLED)
-extern __typeof (xmlSaveSetEscape) xmlSaveSetEscape__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlsave
+#undef xmlSaveSetEscape
extern __typeof (xmlSaveSetEscape) xmlSaveSetEscape __attribute((alias("xmlSaveSetEscape__internal_alias")));
+#else
+#ifndef xmlSaveSetEscape
+extern __typeof (xmlSaveSetEscape) xmlSaveSetEscape__internal_alias __attribute((visibility("hidden")));
#define xmlSaveSetEscape xmlSaveSetEscape__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_OUTPUT_ENABLED)
-extern __typeof (xmlSaveToFd) xmlSaveToFd__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlsave
+#undef xmlSaveToFd
extern __typeof (xmlSaveToFd) xmlSaveToFd __attribute((alias("xmlSaveToFd__internal_alias")));
+#else
+#ifndef xmlSaveToFd
+extern __typeof (xmlSaveToFd) xmlSaveToFd__internal_alias __attribute((visibility("hidden")));
#define xmlSaveToFd xmlSaveToFd__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_OUTPUT_ENABLED)
-extern __typeof (xmlSaveToFilename) xmlSaveToFilename__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlsave
+#undef xmlSaveToFilename
extern __typeof (xmlSaveToFilename) xmlSaveToFilename __attribute((alias("xmlSaveToFilename__internal_alias")));
+#else
+#ifndef xmlSaveToFilename
+extern __typeof (xmlSaveToFilename) xmlSaveToFilename__internal_alias __attribute((visibility("hidden")));
#define xmlSaveToFilename xmlSaveToFilename__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_OUTPUT_ENABLED)
-extern __typeof (xmlSaveToIO) xmlSaveToIO__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlsave
+#undef xmlSaveToIO
extern __typeof (xmlSaveToIO) xmlSaveToIO __attribute((alias("xmlSaveToIO__internal_alias")));
+#else
+#ifndef xmlSaveToIO
+extern __typeof (xmlSaveToIO) xmlSaveToIO__internal_alias __attribute((visibility("hidden")));
#define xmlSaveToIO xmlSaveToIO__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_OUTPUT_ENABLED)
-extern __typeof (xmlSaveTree) xmlSaveTree__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlsave
+#undef xmlSaveTree
extern __typeof (xmlSaveTree) xmlSaveTree __attribute((alias("xmlSaveTree__internal_alias")));
+#else
+#ifndef xmlSaveTree
+extern __typeof (xmlSaveTree) xmlSaveTree__internal_alias __attribute((visibility("hidden")));
#define xmlSaveTree xmlSaveTree__internal_alias
#endif
+#endif
+#endif
-extern __typeof (xmlSaveUri) xmlSaveUri__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_uri
+#undef xmlSaveUri
extern __typeof (xmlSaveUri) xmlSaveUri __attribute((alias("xmlSaveUri__internal_alias")));
+#else
+#ifndef xmlSaveUri
+extern __typeof (xmlSaveUri) xmlSaveUri__internal_alias __attribute((visibility("hidden")));
#define xmlSaveUri xmlSaveUri__internal_alias
+#endif
+#endif
#if defined(LIBXML_LEGACY_ENABLED)
-extern __typeof (xmlScanName) xmlScanName__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_legacy
+#undef xmlScanName
extern __typeof (xmlScanName) xmlScanName __attribute((alias("xmlScanName__internal_alias")));
+#else
+#ifndef xmlScanName
+extern __typeof (xmlScanName) xmlScanName__internal_alias __attribute((visibility("hidden")));
#define xmlScanName xmlScanName__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_SCHEMAS_ENABLED)
-extern __typeof (xmlSchemaCheckFacet) xmlSchemaCheckFacet__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlschemas
+#undef xmlSchemaCheckFacet
extern __typeof (xmlSchemaCheckFacet) xmlSchemaCheckFacet __attribute((alias("xmlSchemaCheckFacet__internal_alias")));
+#else
+#ifndef xmlSchemaCheckFacet
+extern __typeof (xmlSchemaCheckFacet) xmlSchemaCheckFacet__internal_alias __attribute((visibility("hidden")));
#define xmlSchemaCheckFacet xmlSchemaCheckFacet__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_SCHEMAS_ENABLED)
-extern __typeof (xmlSchemaCleanupTypes) xmlSchemaCleanupTypes__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlschemastypes
+#undef xmlSchemaCleanupTypes
extern __typeof (xmlSchemaCleanupTypes) xmlSchemaCleanupTypes __attribute((alias("xmlSchemaCleanupTypes__internal_alias")));
+#else
+#ifndef xmlSchemaCleanupTypes
+extern __typeof (xmlSchemaCleanupTypes) xmlSchemaCleanupTypes__internal_alias __attribute((visibility("hidden")));
#define xmlSchemaCleanupTypes xmlSchemaCleanupTypes__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_SCHEMAS_ENABLED)
-extern __typeof (xmlSchemaCollapseString) xmlSchemaCollapseString__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlschemastypes
+#undef xmlSchemaCollapseString
extern __typeof (xmlSchemaCollapseString) xmlSchemaCollapseString __attribute((alias("xmlSchemaCollapseString__internal_alias")));
+#else
+#ifndef xmlSchemaCollapseString
+extern __typeof (xmlSchemaCollapseString) xmlSchemaCollapseString__internal_alias __attribute((visibility("hidden")));
#define xmlSchemaCollapseString xmlSchemaCollapseString__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_SCHEMAS_ENABLED)
-extern __typeof (xmlSchemaCompareValues) xmlSchemaCompareValues__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlschemastypes
+#undef xmlSchemaCompareValues
extern __typeof (xmlSchemaCompareValues) xmlSchemaCompareValues __attribute((alias("xmlSchemaCompareValues__internal_alias")));
+#else
+#ifndef xmlSchemaCompareValues
+extern __typeof (xmlSchemaCompareValues) xmlSchemaCompareValues__internal_alias __attribute((visibility("hidden")));
#define xmlSchemaCompareValues xmlSchemaCompareValues__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_SCHEMAS_ENABLED)
-extern __typeof (xmlSchemaCompareValuesWhtsp) xmlSchemaCompareValuesWhtsp__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlschemastypes
+#undef xmlSchemaCompareValuesWhtsp
extern __typeof (xmlSchemaCompareValuesWhtsp) xmlSchemaCompareValuesWhtsp __attribute((alias("xmlSchemaCompareValuesWhtsp__internal_alias")));
+#else
+#ifndef xmlSchemaCompareValuesWhtsp
+extern __typeof (xmlSchemaCompareValuesWhtsp) xmlSchemaCompareValuesWhtsp__internal_alias __attribute((visibility("hidden")));
#define xmlSchemaCompareValuesWhtsp xmlSchemaCompareValuesWhtsp__internal_alias
#endif
+#endif
+#endif
+
+#if defined(LIBXML_SCHEMAS_ENABLED)
+#ifdef bottom_xmlschemastypes
+#undef xmlSchemaCopyValue
+extern __typeof (xmlSchemaCopyValue) xmlSchemaCopyValue __attribute((alias("xmlSchemaCopyValue__internal_alias")));
+#else
+#ifndef xmlSchemaCopyValue
+extern __typeof (xmlSchemaCopyValue) xmlSchemaCopyValue__internal_alias __attribute((visibility("hidden")));
+#define xmlSchemaCopyValue xmlSchemaCopyValue__internal_alias
+#endif
+#endif
+#endif
#if defined(LIBXML_SCHEMAS_ENABLED) && defined(LIBXML_OUTPUT_ENABLED)
-extern __typeof (xmlSchemaDump) xmlSchemaDump__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlschemas
+#undef xmlSchemaDump
extern __typeof (xmlSchemaDump) xmlSchemaDump __attribute((alias("xmlSchemaDump__internal_alias")));
+#else
+#ifndef xmlSchemaDump
+extern __typeof (xmlSchemaDump) xmlSchemaDump__internal_alias __attribute((visibility("hidden")));
#define xmlSchemaDump xmlSchemaDump__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_SCHEMAS_ENABLED)
-extern __typeof (xmlSchemaFree) xmlSchemaFree__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlschemas
+#undef xmlSchemaFree
extern __typeof (xmlSchemaFree) xmlSchemaFree __attribute((alias("xmlSchemaFree__internal_alias")));
+#else
+#ifndef xmlSchemaFree
+extern __typeof (xmlSchemaFree) xmlSchemaFree__internal_alias __attribute((visibility("hidden")));
#define xmlSchemaFree xmlSchemaFree__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_SCHEMAS_ENABLED)
-extern __typeof (xmlSchemaFreeFacet) xmlSchemaFreeFacet__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlschemas
+#undef xmlSchemaFreeFacet
extern __typeof (xmlSchemaFreeFacet) xmlSchemaFreeFacet __attribute((alias("xmlSchemaFreeFacet__internal_alias")));
+#else
+#ifndef xmlSchemaFreeFacet
+extern __typeof (xmlSchemaFreeFacet) xmlSchemaFreeFacet__internal_alias __attribute((visibility("hidden")));
#define xmlSchemaFreeFacet xmlSchemaFreeFacet__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_SCHEMAS_ENABLED)
-extern __typeof (xmlSchemaFreeParserCtxt) xmlSchemaFreeParserCtxt__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlschemas
+#undef xmlSchemaFreeParserCtxt
extern __typeof (xmlSchemaFreeParserCtxt) xmlSchemaFreeParserCtxt __attribute((alias("xmlSchemaFreeParserCtxt__internal_alias")));
+#else
+#ifndef xmlSchemaFreeParserCtxt
+extern __typeof (xmlSchemaFreeParserCtxt) xmlSchemaFreeParserCtxt__internal_alias __attribute((visibility("hidden")));
#define xmlSchemaFreeParserCtxt xmlSchemaFreeParserCtxt__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_SCHEMAS_ENABLED)
-extern __typeof (xmlSchemaFreeType) xmlSchemaFreeType__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlschemas
+#undef xmlSchemaFreeType
extern __typeof (xmlSchemaFreeType) xmlSchemaFreeType __attribute((alias("xmlSchemaFreeType__internal_alias")));
+#else
+#ifndef xmlSchemaFreeType
+extern __typeof (xmlSchemaFreeType) xmlSchemaFreeType__internal_alias __attribute((visibility("hidden")));
#define xmlSchemaFreeType xmlSchemaFreeType__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_SCHEMAS_ENABLED)
-extern __typeof (xmlSchemaFreeValidCtxt) xmlSchemaFreeValidCtxt__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlschemas
+#undef xmlSchemaFreeValidCtxt
extern __typeof (xmlSchemaFreeValidCtxt) xmlSchemaFreeValidCtxt __attribute((alias("xmlSchemaFreeValidCtxt__internal_alias")));
+#else
+#ifndef xmlSchemaFreeValidCtxt
+extern __typeof (xmlSchemaFreeValidCtxt) xmlSchemaFreeValidCtxt__internal_alias __attribute((visibility("hidden")));
#define xmlSchemaFreeValidCtxt xmlSchemaFreeValidCtxt__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_SCHEMAS_ENABLED)
-extern __typeof (xmlSchemaFreeValue) xmlSchemaFreeValue__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlschemastypes
+#undef xmlSchemaFreeValue
extern __typeof (xmlSchemaFreeValue) xmlSchemaFreeValue __attribute((alias("xmlSchemaFreeValue__internal_alias")));
+#else
+#ifndef xmlSchemaFreeValue
+extern __typeof (xmlSchemaFreeValue) xmlSchemaFreeValue__internal_alias __attribute((visibility("hidden")));
#define xmlSchemaFreeValue xmlSchemaFreeValue__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_SCHEMAS_ENABLED)
-extern __typeof (xmlSchemaFreeWildcard) xmlSchemaFreeWildcard__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlschemas
+#undef xmlSchemaFreeWildcard
extern __typeof (xmlSchemaFreeWildcard) xmlSchemaFreeWildcard __attribute((alias("xmlSchemaFreeWildcard__internal_alias")));
+#else
+#ifndef xmlSchemaFreeWildcard
+extern __typeof (xmlSchemaFreeWildcard) xmlSchemaFreeWildcard__internal_alias __attribute((visibility("hidden")));
#define xmlSchemaFreeWildcard xmlSchemaFreeWildcard__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_SCHEMAS_ENABLED)
-extern __typeof (xmlSchemaGetBuiltInListSimpleTypeItemType) xmlSchemaGetBuiltInListSimpleTypeItemType__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlschemastypes
+#undef xmlSchemaGetBuiltInListSimpleTypeItemType
extern __typeof (xmlSchemaGetBuiltInListSimpleTypeItemType) xmlSchemaGetBuiltInListSimpleTypeItemType __attribute((alias("xmlSchemaGetBuiltInListSimpleTypeItemType__internal_alias")));
+#else
+#ifndef xmlSchemaGetBuiltInListSimpleTypeItemType
+extern __typeof (xmlSchemaGetBuiltInListSimpleTypeItemType) xmlSchemaGetBuiltInListSimpleTypeItemType__internal_alias __attribute((visibility("hidden")));
#define xmlSchemaGetBuiltInListSimpleTypeItemType xmlSchemaGetBuiltInListSimpleTypeItemType__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_SCHEMAS_ENABLED)
-extern __typeof (xmlSchemaGetBuiltInType) xmlSchemaGetBuiltInType__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlschemastypes
+#undef xmlSchemaGetBuiltInType
extern __typeof (xmlSchemaGetBuiltInType) xmlSchemaGetBuiltInType __attribute((alias("xmlSchemaGetBuiltInType__internal_alias")));
+#else
+#ifndef xmlSchemaGetBuiltInType
+extern __typeof (xmlSchemaGetBuiltInType) xmlSchemaGetBuiltInType__internal_alias __attribute((visibility("hidden")));
#define xmlSchemaGetBuiltInType xmlSchemaGetBuiltInType__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_SCHEMAS_ENABLED)
-extern __typeof (xmlSchemaGetCanonValue) xmlSchemaGetCanonValue__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlschemastypes
+#undef xmlSchemaGetCanonValue
extern __typeof (xmlSchemaGetCanonValue) xmlSchemaGetCanonValue __attribute((alias("xmlSchemaGetCanonValue__internal_alias")));
+#else
+#ifndef xmlSchemaGetCanonValue
+extern __typeof (xmlSchemaGetCanonValue) xmlSchemaGetCanonValue__internal_alias __attribute((visibility("hidden")));
#define xmlSchemaGetCanonValue xmlSchemaGetCanonValue__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_SCHEMAS_ENABLED)
-extern __typeof (xmlSchemaGetFacetValueAsULong) xmlSchemaGetFacetValueAsULong__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlschemastypes
+#undef xmlSchemaGetFacetValueAsULong
extern __typeof (xmlSchemaGetFacetValueAsULong) xmlSchemaGetFacetValueAsULong __attribute((alias("xmlSchemaGetFacetValueAsULong__internal_alias")));
+#else
+#ifndef xmlSchemaGetFacetValueAsULong
+extern __typeof (xmlSchemaGetFacetValueAsULong) xmlSchemaGetFacetValueAsULong__internal_alias __attribute((visibility("hidden")));
#define xmlSchemaGetFacetValueAsULong xmlSchemaGetFacetValueAsULong__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_SCHEMAS_ENABLED)
-extern __typeof (xmlSchemaGetParserErrors) xmlSchemaGetParserErrors__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlschemas
+#undef xmlSchemaGetParserErrors
extern __typeof (xmlSchemaGetParserErrors) xmlSchemaGetParserErrors __attribute((alias("xmlSchemaGetParserErrors__internal_alias")));
+#else
+#ifndef xmlSchemaGetParserErrors
+extern __typeof (xmlSchemaGetParserErrors) xmlSchemaGetParserErrors__internal_alias __attribute((visibility("hidden")));
#define xmlSchemaGetParserErrors xmlSchemaGetParserErrors__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_SCHEMAS_ENABLED)
-extern __typeof (xmlSchemaGetPredefinedType) xmlSchemaGetPredefinedType__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlschemastypes
+#undef xmlSchemaGetPredefinedType
extern __typeof (xmlSchemaGetPredefinedType) xmlSchemaGetPredefinedType __attribute((alias("xmlSchemaGetPredefinedType__internal_alias")));
+#else
+#ifndef xmlSchemaGetPredefinedType
+extern __typeof (xmlSchemaGetPredefinedType) xmlSchemaGetPredefinedType__internal_alias __attribute((visibility("hidden")));
#define xmlSchemaGetPredefinedType xmlSchemaGetPredefinedType__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_SCHEMAS_ENABLED)
-extern __typeof (xmlSchemaGetValidErrors) xmlSchemaGetValidErrors__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlschemastypes
+#undef xmlSchemaGetValType
+extern __typeof (xmlSchemaGetValType) xmlSchemaGetValType __attribute((alias("xmlSchemaGetValType__internal_alias")));
+#else
+#ifndef xmlSchemaGetValType
+extern __typeof (xmlSchemaGetValType) xmlSchemaGetValType__internal_alias __attribute((visibility("hidden")));
+#define xmlSchemaGetValType xmlSchemaGetValType__internal_alias
+#endif
+#endif
+#endif
+
+#if defined(LIBXML_SCHEMAS_ENABLED)
+#ifdef bottom_xmlschemas
+#undef xmlSchemaGetValidErrors
extern __typeof (xmlSchemaGetValidErrors) xmlSchemaGetValidErrors __attribute((alias("xmlSchemaGetValidErrors__internal_alias")));
+#else
+#ifndef xmlSchemaGetValidErrors
+extern __typeof (xmlSchemaGetValidErrors) xmlSchemaGetValidErrors__internal_alias __attribute((visibility("hidden")));
#define xmlSchemaGetValidErrors xmlSchemaGetValidErrors__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_SCHEMAS_ENABLED)
-extern __typeof (xmlSchemaInitTypes) xmlSchemaInitTypes__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlschemastypes
+#undef xmlSchemaInitTypes
extern __typeof (xmlSchemaInitTypes) xmlSchemaInitTypes __attribute((alias("xmlSchemaInitTypes__internal_alias")));
+#else
+#ifndef xmlSchemaInitTypes
+extern __typeof (xmlSchemaInitTypes) xmlSchemaInitTypes__internal_alias __attribute((visibility("hidden")));
#define xmlSchemaInitTypes xmlSchemaInitTypes__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_SCHEMAS_ENABLED)
-extern __typeof (xmlSchemaIsBuiltInTypeFacet) xmlSchemaIsBuiltInTypeFacet__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlschemastypes
+#undef xmlSchemaIsBuiltInTypeFacet
extern __typeof (xmlSchemaIsBuiltInTypeFacet) xmlSchemaIsBuiltInTypeFacet __attribute((alias("xmlSchemaIsBuiltInTypeFacet__internal_alias")));
+#else
+#ifndef xmlSchemaIsBuiltInTypeFacet
+extern __typeof (xmlSchemaIsBuiltInTypeFacet) xmlSchemaIsBuiltInTypeFacet__internal_alias __attribute((visibility("hidden")));
#define xmlSchemaIsBuiltInTypeFacet xmlSchemaIsBuiltInTypeFacet__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_SCHEMAS_ENABLED)
-extern __typeof (xmlSchemaNewDocParserCtxt) xmlSchemaNewDocParserCtxt__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlschemas
+#undef xmlSchemaNewDocParserCtxt
extern __typeof (xmlSchemaNewDocParserCtxt) xmlSchemaNewDocParserCtxt __attribute((alias("xmlSchemaNewDocParserCtxt__internal_alias")));
+#else
+#ifndef xmlSchemaNewDocParserCtxt
+extern __typeof (xmlSchemaNewDocParserCtxt) xmlSchemaNewDocParserCtxt__internal_alias __attribute((visibility("hidden")));
#define xmlSchemaNewDocParserCtxt xmlSchemaNewDocParserCtxt__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_SCHEMAS_ENABLED)
-extern __typeof (xmlSchemaNewFacet) xmlSchemaNewFacet__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlschemas
+#undef xmlSchemaNewFacet
extern __typeof (xmlSchemaNewFacet) xmlSchemaNewFacet __attribute((alias("xmlSchemaNewFacet__internal_alias")));
+#else
+#ifndef xmlSchemaNewFacet
+extern __typeof (xmlSchemaNewFacet) xmlSchemaNewFacet__internal_alias __attribute((visibility("hidden")));
#define xmlSchemaNewFacet xmlSchemaNewFacet__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_SCHEMAS_ENABLED)
-extern __typeof (xmlSchemaNewMemParserCtxt) xmlSchemaNewMemParserCtxt__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlschemas
+#undef xmlSchemaNewMemParserCtxt
extern __typeof (xmlSchemaNewMemParserCtxt) xmlSchemaNewMemParserCtxt __attribute((alias("xmlSchemaNewMemParserCtxt__internal_alias")));
+#else
+#ifndef xmlSchemaNewMemParserCtxt
+extern __typeof (xmlSchemaNewMemParserCtxt) xmlSchemaNewMemParserCtxt__internal_alias __attribute((visibility("hidden")));
#define xmlSchemaNewMemParserCtxt xmlSchemaNewMemParserCtxt__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_SCHEMAS_ENABLED)
-extern __typeof (xmlSchemaNewNOTATIONValue) xmlSchemaNewNOTATIONValue__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlschemastypes
+#undef xmlSchemaNewNOTATIONValue
extern __typeof (xmlSchemaNewNOTATIONValue) xmlSchemaNewNOTATIONValue __attribute((alias("xmlSchemaNewNOTATIONValue__internal_alias")));
+#else
+#ifndef xmlSchemaNewNOTATIONValue
+extern __typeof (xmlSchemaNewNOTATIONValue) xmlSchemaNewNOTATIONValue__internal_alias __attribute((visibility("hidden")));
#define xmlSchemaNewNOTATIONValue xmlSchemaNewNOTATIONValue__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_SCHEMAS_ENABLED)
-extern __typeof (xmlSchemaNewParserCtxt) xmlSchemaNewParserCtxt__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlschemas
+#undef xmlSchemaNewParserCtxt
extern __typeof (xmlSchemaNewParserCtxt) xmlSchemaNewParserCtxt __attribute((alias("xmlSchemaNewParserCtxt__internal_alias")));
+#else
+#ifndef xmlSchemaNewParserCtxt
+extern __typeof (xmlSchemaNewParserCtxt) xmlSchemaNewParserCtxt__internal_alias __attribute((visibility("hidden")));
#define xmlSchemaNewParserCtxt xmlSchemaNewParserCtxt__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_SCHEMAS_ENABLED)
-extern __typeof (xmlSchemaNewStringValue) xmlSchemaNewStringValue__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlschemastypes
+#undef xmlSchemaNewStringValue
extern __typeof (xmlSchemaNewStringValue) xmlSchemaNewStringValue __attribute((alias("xmlSchemaNewStringValue__internal_alias")));
+#else
+#ifndef xmlSchemaNewStringValue
+extern __typeof (xmlSchemaNewStringValue) xmlSchemaNewStringValue__internal_alias __attribute((visibility("hidden")));
#define xmlSchemaNewStringValue xmlSchemaNewStringValue__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_SCHEMAS_ENABLED)
-extern __typeof (xmlSchemaNewValidCtxt) xmlSchemaNewValidCtxt__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlschemas
+#undef xmlSchemaNewValidCtxt
extern __typeof (xmlSchemaNewValidCtxt) xmlSchemaNewValidCtxt __attribute((alias("xmlSchemaNewValidCtxt__internal_alias")));
+#else
+#ifndef xmlSchemaNewValidCtxt
+extern __typeof (xmlSchemaNewValidCtxt) xmlSchemaNewValidCtxt__internal_alias __attribute((visibility("hidden")));
#define xmlSchemaNewValidCtxt xmlSchemaNewValidCtxt__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_SCHEMAS_ENABLED)
-extern __typeof (xmlSchemaParse) xmlSchemaParse__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlschemas
+#undef xmlSchemaParse
extern __typeof (xmlSchemaParse) xmlSchemaParse __attribute((alias("xmlSchemaParse__internal_alias")));
+#else
+#ifndef xmlSchemaParse
+extern __typeof (xmlSchemaParse) xmlSchemaParse__internal_alias __attribute((visibility("hidden")));
#define xmlSchemaParse xmlSchemaParse__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_SCHEMAS_ENABLED)
-extern __typeof (xmlSchemaSetParserErrors) xmlSchemaSetParserErrors__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlschemas
+#undef xmlSchemaSetParserErrors
extern __typeof (xmlSchemaSetParserErrors) xmlSchemaSetParserErrors __attribute((alias("xmlSchemaSetParserErrors__internal_alias")));
+#else
+#ifndef xmlSchemaSetParserErrors
+extern __typeof (xmlSchemaSetParserErrors) xmlSchemaSetParserErrors__internal_alias __attribute((visibility("hidden")));
#define xmlSchemaSetParserErrors xmlSchemaSetParserErrors__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_SCHEMAS_ENABLED)
-extern __typeof (xmlSchemaSetValidErrors) xmlSchemaSetValidErrors__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlschemas
+#undef xmlSchemaSetValidErrors
extern __typeof (xmlSchemaSetValidErrors) xmlSchemaSetValidErrors __attribute((alias("xmlSchemaSetValidErrors__internal_alias")));
+#else
+#ifndef xmlSchemaSetValidErrors
+extern __typeof (xmlSchemaSetValidErrors) xmlSchemaSetValidErrors__internal_alias __attribute((visibility("hidden")));
#define xmlSchemaSetValidErrors xmlSchemaSetValidErrors__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_SCHEMAS_ENABLED)
-extern __typeof (xmlSchemaSetValidOptions) xmlSchemaSetValidOptions__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlschemas
+#undef xmlSchemaSetValidOptions
extern __typeof (xmlSchemaSetValidOptions) xmlSchemaSetValidOptions __attribute((alias("xmlSchemaSetValidOptions__internal_alias")));
+#else
+#ifndef xmlSchemaSetValidOptions
+extern __typeof (xmlSchemaSetValidOptions) xmlSchemaSetValidOptions__internal_alias __attribute((visibility("hidden")));
#define xmlSchemaSetValidOptions xmlSchemaSetValidOptions__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_SCHEMAS_ENABLED)
-extern __typeof (xmlSchemaValPredefTypeNode) xmlSchemaValPredefTypeNode__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlschemastypes
+#undef xmlSchemaValPredefTypeNode
extern __typeof (xmlSchemaValPredefTypeNode) xmlSchemaValPredefTypeNode __attribute((alias("xmlSchemaValPredefTypeNode__internal_alias")));
+#else
+#ifndef xmlSchemaValPredefTypeNode
+extern __typeof (xmlSchemaValPredefTypeNode) xmlSchemaValPredefTypeNode__internal_alias __attribute((visibility("hidden")));
#define xmlSchemaValPredefTypeNode xmlSchemaValPredefTypeNode__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_SCHEMAS_ENABLED)
-extern __typeof (xmlSchemaValPredefTypeNodeNoNorm) xmlSchemaValPredefTypeNodeNoNorm__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlschemastypes
+#undef xmlSchemaValPredefTypeNodeNoNorm
extern __typeof (xmlSchemaValPredefTypeNodeNoNorm) xmlSchemaValPredefTypeNodeNoNorm __attribute((alias("xmlSchemaValPredefTypeNodeNoNorm__internal_alias")));
+#else
+#ifndef xmlSchemaValPredefTypeNodeNoNorm
+extern __typeof (xmlSchemaValPredefTypeNodeNoNorm) xmlSchemaValPredefTypeNodeNoNorm__internal_alias __attribute((visibility("hidden")));
#define xmlSchemaValPredefTypeNodeNoNorm xmlSchemaValPredefTypeNodeNoNorm__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_SCHEMAS_ENABLED)
-extern __typeof (xmlSchemaValidCtxtGetOptions) xmlSchemaValidCtxtGetOptions__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlschemas
+#undef xmlSchemaValidCtxtGetOptions
extern __typeof (xmlSchemaValidCtxtGetOptions) xmlSchemaValidCtxtGetOptions __attribute((alias("xmlSchemaValidCtxtGetOptions__internal_alias")));
+#else
+#ifndef xmlSchemaValidCtxtGetOptions
+extern __typeof (xmlSchemaValidCtxtGetOptions) xmlSchemaValidCtxtGetOptions__internal_alias __attribute((visibility("hidden")));
#define xmlSchemaValidCtxtGetOptions xmlSchemaValidCtxtGetOptions__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_SCHEMAS_ENABLED)
-extern __typeof (xmlSchemaValidateDoc) xmlSchemaValidateDoc__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlschemas
+#undef xmlSchemaValidateDoc
extern __typeof (xmlSchemaValidateDoc) xmlSchemaValidateDoc __attribute((alias("xmlSchemaValidateDoc__internal_alias")));
+#else
+#ifndef xmlSchemaValidateDoc
+extern __typeof (xmlSchemaValidateDoc) xmlSchemaValidateDoc__internal_alias __attribute((visibility("hidden")));
#define xmlSchemaValidateDoc xmlSchemaValidateDoc__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_SCHEMAS_ENABLED)
-extern __typeof (xmlSchemaValidateFacet) xmlSchemaValidateFacet__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlschemastypes
+#undef xmlSchemaValidateFacet
extern __typeof (xmlSchemaValidateFacet) xmlSchemaValidateFacet __attribute((alias("xmlSchemaValidateFacet__internal_alias")));
+#else
+#ifndef xmlSchemaValidateFacet
+extern __typeof (xmlSchemaValidateFacet) xmlSchemaValidateFacet__internal_alias __attribute((visibility("hidden")));
#define xmlSchemaValidateFacet xmlSchemaValidateFacet__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_SCHEMAS_ENABLED)
-extern __typeof (xmlSchemaValidateLengthFacet) xmlSchemaValidateLengthFacet__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlschemastypes
+#undef xmlSchemaValidateFacetWhtsp
+extern __typeof (xmlSchemaValidateFacetWhtsp) xmlSchemaValidateFacetWhtsp __attribute((alias("xmlSchemaValidateFacetWhtsp__internal_alias")));
+#else
+#ifndef xmlSchemaValidateFacetWhtsp
+extern __typeof (xmlSchemaValidateFacetWhtsp) xmlSchemaValidateFacetWhtsp__internal_alias __attribute((visibility("hidden")));
+#define xmlSchemaValidateFacetWhtsp xmlSchemaValidateFacetWhtsp__internal_alias
+#endif
+#endif
+#endif
+
+#if defined(LIBXML_SCHEMAS_ENABLED)
+#ifdef bottom_xmlschemastypes
+#undef xmlSchemaValidateLengthFacet
extern __typeof (xmlSchemaValidateLengthFacet) xmlSchemaValidateLengthFacet __attribute((alias("xmlSchemaValidateLengthFacet__internal_alias")));
+#else
+#ifndef xmlSchemaValidateLengthFacet
+extern __typeof (xmlSchemaValidateLengthFacet) xmlSchemaValidateLengthFacet__internal_alias __attribute((visibility("hidden")));
#define xmlSchemaValidateLengthFacet xmlSchemaValidateLengthFacet__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_SCHEMAS_ENABLED)
-extern __typeof (xmlSchemaValidateListSimpleTypeFacet) xmlSchemaValidateListSimpleTypeFacet__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlschemastypes
+#undef xmlSchemaValidateLengthFacetWhtsp
+extern __typeof (xmlSchemaValidateLengthFacetWhtsp) xmlSchemaValidateLengthFacetWhtsp __attribute((alias("xmlSchemaValidateLengthFacetWhtsp__internal_alias")));
+#else
+#ifndef xmlSchemaValidateLengthFacetWhtsp
+extern __typeof (xmlSchemaValidateLengthFacetWhtsp) xmlSchemaValidateLengthFacetWhtsp__internal_alias __attribute((visibility("hidden")));
+#define xmlSchemaValidateLengthFacetWhtsp xmlSchemaValidateLengthFacetWhtsp__internal_alias
+#endif
+#endif
+#endif
+
+#if defined(LIBXML_SCHEMAS_ENABLED)
+#ifdef bottom_xmlschemastypes
+#undef xmlSchemaValidateListSimpleTypeFacet
extern __typeof (xmlSchemaValidateListSimpleTypeFacet) xmlSchemaValidateListSimpleTypeFacet __attribute((alias("xmlSchemaValidateListSimpleTypeFacet__internal_alias")));
+#else
+#ifndef xmlSchemaValidateListSimpleTypeFacet
+extern __typeof (xmlSchemaValidateListSimpleTypeFacet) xmlSchemaValidateListSimpleTypeFacet__internal_alias __attribute((visibility("hidden")));
#define xmlSchemaValidateListSimpleTypeFacet xmlSchemaValidateListSimpleTypeFacet__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_SCHEMAS_ENABLED)
-extern __typeof (xmlSchemaValidateOneElement) xmlSchemaValidateOneElement__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlschemas
+#undef xmlSchemaValidateOneElement
extern __typeof (xmlSchemaValidateOneElement) xmlSchemaValidateOneElement __attribute((alias("xmlSchemaValidateOneElement__internal_alias")));
+#else
+#ifndef xmlSchemaValidateOneElement
+extern __typeof (xmlSchemaValidateOneElement) xmlSchemaValidateOneElement__internal_alias __attribute((visibility("hidden")));
#define xmlSchemaValidateOneElement xmlSchemaValidateOneElement__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_SCHEMAS_ENABLED)
-extern __typeof (xmlSchemaValidatePredefinedType) xmlSchemaValidatePredefinedType__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlschemastypes
+#undef xmlSchemaValidatePredefinedType
extern __typeof (xmlSchemaValidatePredefinedType) xmlSchemaValidatePredefinedType __attribute((alias("xmlSchemaValidatePredefinedType__internal_alias")));
+#else
+#ifndef xmlSchemaValidatePredefinedType
+extern __typeof (xmlSchemaValidatePredefinedType) xmlSchemaValidatePredefinedType__internal_alias __attribute((visibility("hidden")));
#define xmlSchemaValidatePredefinedType xmlSchemaValidatePredefinedType__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_SCHEMAS_ENABLED)
-extern __typeof (xmlSchemaValidateStream) xmlSchemaValidateStream__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlschemas
+#undef xmlSchemaValidateStream
extern __typeof (xmlSchemaValidateStream) xmlSchemaValidateStream __attribute((alias("xmlSchemaValidateStream__internal_alias")));
+#else
+#ifndef xmlSchemaValidateStream
+extern __typeof (xmlSchemaValidateStream) xmlSchemaValidateStream__internal_alias __attribute((visibility("hidden")));
#define xmlSchemaValidateStream xmlSchemaValidateStream__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_SCHEMAS_ENABLED)
-extern __typeof (xmlSchemaWhiteSpaceReplace) xmlSchemaWhiteSpaceReplace__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlschemastypes
+#undef xmlSchemaWhiteSpaceReplace
extern __typeof (xmlSchemaWhiteSpaceReplace) xmlSchemaWhiteSpaceReplace __attribute((alias("xmlSchemaWhiteSpaceReplace__internal_alias")));
+#else
+#ifndef xmlSchemaWhiteSpaceReplace
+extern __typeof (xmlSchemaWhiteSpaceReplace) xmlSchemaWhiteSpaceReplace__internal_alias __attribute((visibility("hidden")));
#define xmlSchemaWhiteSpaceReplace xmlSchemaWhiteSpaceReplace__internal_alias
#endif
+#endif
+#endif
-extern __typeof (xmlSearchNs) xmlSearchNs__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_tree
+#undef xmlSearchNs
extern __typeof (xmlSearchNs) xmlSearchNs __attribute((alias("xmlSearchNs__internal_alias")));
+#else
+#ifndef xmlSearchNs
+extern __typeof (xmlSearchNs) xmlSearchNs__internal_alias __attribute((visibility("hidden")));
#define xmlSearchNs xmlSearchNs__internal_alias
+#endif
+#endif
-extern __typeof (xmlSearchNsByHref) xmlSearchNsByHref__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_tree
+#undef xmlSearchNsByHref
extern __typeof (xmlSearchNsByHref) xmlSearchNsByHref __attribute((alias("xmlSearchNsByHref__internal_alias")));
+#else
+#ifndef xmlSearchNsByHref
+extern __typeof (xmlSearchNsByHref) xmlSearchNsByHref__internal_alias __attribute((visibility("hidden")));
#define xmlSearchNsByHref xmlSearchNsByHref__internal_alias
+#endif
+#endif
-extern __typeof (xmlSetBufferAllocationScheme) xmlSetBufferAllocationScheme__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_tree
+#undef xmlSetBufferAllocationScheme
extern __typeof (xmlSetBufferAllocationScheme) xmlSetBufferAllocationScheme __attribute((alias("xmlSetBufferAllocationScheme__internal_alias")));
+#else
+#ifndef xmlSetBufferAllocationScheme
+extern __typeof (xmlSetBufferAllocationScheme) xmlSetBufferAllocationScheme__internal_alias __attribute((visibility("hidden")));
#define xmlSetBufferAllocationScheme xmlSetBufferAllocationScheme__internal_alias
+#endif
+#endif
-extern __typeof (xmlSetCompressMode) xmlSetCompressMode__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_tree
+#undef xmlSetCompressMode
extern __typeof (xmlSetCompressMode) xmlSetCompressMode __attribute((alias("xmlSetCompressMode__internal_alias")));
+#else
+#ifndef xmlSetCompressMode
+extern __typeof (xmlSetCompressMode) xmlSetCompressMode__internal_alias __attribute((visibility("hidden")));
#define xmlSetCompressMode xmlSetCompressMode__internal_alias
+#endif
+#endif
-extern __typeof (xmlSetDocCompressMode) xmlSetDocCompressMode__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_tree
+#undef xmlSetDocCompressMode
extern __typeof (xmlSetDocCompressMode) xmlSetDocCompressMode __attribute((alias("xmlSetDocCompressMode__internal_alias")));
+#else
+#ifndef xmlSetDocCompressMode
+extern __typeof (xmlSetDocCompressMode) xmlSetDocCompressMode__internal_alias __attribute((visibility("hidden")));
#define xmlSetDocCompressMode xmlSetDocCompressMode__internal_alias
+#endif
+#endif
#if defined(LIBXML_LEGACY_ENABLED)
-extern __typeof (xmlSetEntityReferenceFunc) xmlSetEntityReferenceFunc__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_parser
+#undef xmlSetEntityReferenceFunc
extern __typeof (xmlSetEntityReferenceFunc) xmlSetEntityReferenceFunc __attribute((alias("xmlSetEntityReferenceFunc__internal_alias")));
+#else
+#ifndef xmlSetEntityReferenceFunc
+extern __typeof (xmlSetEntityReferenceFunc) xmlSetEntityReferenceFunc__internal_alias __attribute((visibility("hidden")));
#define xmlSetEntityReferenceFunc xmlSetEntityReferenceFunc__internal_alias
#endif
+#endif
+#endif
-extern __typeof (xmlSetExternalEntityLoader) xmlSetExternalEntityLoader__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlIO
+#undef xmlSetExternalEntityLoader
extern __typeof (xmlSetExternalEntityLoader) xmlSetExternalEntityLoader __attribute((alias("xmlSetExternalEntityLoader__internal_alias")));
+#else
+#ifndef xmlSetExternalEntityLoader
+extern __typeof (xmlSetExternalEntityLoader) xmlSetExternalEntityLoader__internal_alias __attribute((visibility("hidden")));
#define xmlSetExternalEntityLoader xmlSetExternalEntityLoader__internal_alias
+#endif
+#endif
#if defined(LIBXML_LEGACY_ENABLED)
-extern __typeof (xmlSetFeature) xmlSetFeature__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_legacy
+#undef xmlSetFeature
extern __typeof (xmlSetFeature) xmlSetFeature __attribute((alias("xmlSetFeature__internal_alias")));
+#else
+#ifndef xmlSetFeature
+extern __typeof (xmlSetFeature) xmlSetFeature__internal_alias __attribute((visibility("hidden")));
#define xmlSetFeature xmlSetFeature__internal_alias
#endif
+#endif
+#endif
-extern __typeof (xmlSetGenericErrorFunc) xmlSetGenericErrorFunc__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_error
+#undef xmlSetGenericErrorFunc
extern __typeof (xmlSetGenericErrorFunc) xmlSetGenericErrorFunc __attribute((alias("xmlSetGenericErrorFunc__internal_alias")));
+#else
+#ifndef xmlSetGenericErrorFunc
+extern __typeof (xmlSetGenericErrorFunc) xmlSetGenericErrorFunc__internal_alias __attribute((visibility("hidden")));
#define xmlSetGenericErrorFunc xmlSetGenericErrorFunc__internal_alias
+#endif
+#endif
-extern __typeof (xmlSetListDoc) xmlSetListDoc__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_tree
+#undef xmlSetListDoc
extern __typeof (xmlSetListDoc) xmlSetListDoc __attribute((alias("xmlSetListDoc__internal_alias")));
+#else
+#ifndef xmlSetListDoc
+extern __typeof (xmlSetListDoc) xmlSetListDoc__internal_alias __attribute((visibility("hidden")));
#define xmlSetListDoc xmlSetListDoc__internal_alias
+#endif
+#endif
-extern __typeof (xmlSetNs) xmlSetNs__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_tree
+#undef xmlSetNs
extern __typeof (xmlSetNs) xmlSetNs __attribute((alias("xmlSetNs__internal_alias")));
+#else
+#ifndef xmlSetNs
+extern __typeof (xmlSetNs) xmlSetNs__internal_alias __attribute((visibility("hidden")));
#define xmlSetNs xmlSetNs__internal_alias
+#endif
+#endif
#if defined(LIBXML_TREE_ENABLED) || defined(LIBXML_XINCLUDE_ENABLED) || defined(LIBXML_SCHEMAS_ENABLED) || defined(LIBXML_HTML_ENABLED)
-extern __typeof (xmlSetNsProp) xmlSetNsProp__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_tree
+#undef xmlSetNsProp
extern __typeof (xmlSetNsProp) xmlSetNsProp __attribute((alias("xmlSetNsProp__internal_alias")));
+#else
+#ifndef xmlSetNsProp
+extern __typeof (xmlSetNsProp) xmlSetNsProp__internal_alias __attribute((visibility("hidden")));
#define xmlSetNsProp xmlSetNsProp__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_TREE_ENABLED) || defined(LIBXML_XINCLUDE_ENABLED) || defined(LIBXML_SCHEMAS_ENABLED) || defined(LIBXML_HTML_ENABLED)
-extern __typeof (xmlSetProp) xmlSetProp__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_tree
+#undef xmlSetProp
extern __typeof (xmlSetProp) xmlSetProp __attribute((alias("xmlSetProp__internal_alias")));
+#else
+#ifndef xmlSetProp
+extern __typeof (xmlSetProp) xmlSetProp__internal_alias __attribute((visibility("hidden")));
#define xmlSetProp xmlSetProp__internal_alias
#endif
+#endif
+#endif
-extern __typeof (xmlSetStructuredErrorFunc) xmlSetStructuredErrorFunc__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_error
+#undef xmlSetStructuredErrorFunc
extern __typeof (xmlSetStructuredErrorFunc) xmlSetStructuredErrorFunc __attribute((alias("xmlSetStructuredErrorFunc__internal_alias")));
+#else
+#ifndef xmlSetStructuredErrorFunc
+extern __typeof (xmlSetStructuredErrorFunc) xmlSetStructuredErrorFunc__internal_alias __attribute((visibility("hidden")));
#define xmlSetStructuredErrorFunc xmlSetStructuredErrorFunc__internal_alias
+#endif
+#endif
-extern __typeof (xmlSetTreeDoc) xmlSetTreeDoc__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_tree
+#undef xmlSetTreeDoc
extern __typeof (xmlSetTreeDoc) xmlSetTreeDoc __attribute((alias("xmlSetTreeDoc__internal_alias")));
+#else
+#ifndef xmlSetTreeDoc
+extern __typeof (xmlSetTreeDoc) xmlSetTreeDoc__internal_alias __attribute((visibility("hidden")));
#define xmlSetTreeDoc xmlSetTreeDoc__internal_alias
+#endif
+#endif
#if defined(LIBXML_SAX1_ENABLED)
-extern __typeof (xmlSetupParserForBuffer) xmlSetupParserForBuffer__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_parser
+#undef xmlSetupParserForBuffer
extern __typeof (xmlSetupParserForBuffer) xmlSetupParserForBuffer __attribute((alias("xmlSetupParserForBuffer__internal_alias")));
+#else
+#ifndef xmlSetupParserForBuffer
+extern __typeof (xmlSetupParserForBuffer) xmlSetupParserForBuffer__internal_alias __attribute((visibility("hidden")));
#define xmlSetupParserForBuffer xmlSetupParserForBuffer__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_DEBUG_ENABLED) && defined(LIBXML_XPATH_ENABLED)
-extern __typeof (xmlShell) xmlShell__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_debugXML
+#undef xmlShell
extern __typeof (xmlShell) xmlShell __attribute((alias("xmlShell__internal_alias")));
+#else
+#ifndef xmlShell
+extern __typeof (xmlShell) xmlShell__internal_alias __attribute((visibility("hidden")));
#define xmlShell xmlShell__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_DEBUG_ENABLED) && defined(LIBXML_XPATH_ENABLED)
-extern __typeof (xmlShellBase) xmlShellBase__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_debugXML
+#undef xmlShellBase
extern __typeof (xmlShellBase) xmlShellBase __attribute((alias("xmlShellBase__internal_alias")));
+#else
+#ifndef xmlShellBase
+extern __typeof (xmlShellBase) xmlShellBase__internal_alias __attribute((visibility("hidden")));
#define xmlShellBase xmlShellBase__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_DEBUG_ENABLED) && defined(LIBXML_XPATH_ENABLED) && defined(LIBXML_OUTPUT_ENABLED)
-extern __typeof (xmlShellCat) xmlShellCat__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_debugXML
+#undef xmlShellCat
extern __typeof (xmlShellCat) xmlShellCat __attribute((alias("xmlShellCat__internal_alias")));
+#else
+#ifndef xmlShellCat
+extern __typeof (xmlShellCat) xmlShellCat__internal_alias __attribute((visibility("hidden")));
#define xmlShellCat xmlShellCat__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_DEBUG_ENABLED) && defined(LIBXML_XPATH_ENABLED)
-extern __typeof (xmlShellDir) xmlShellDir__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_debugXML
+#undef xmlShellDir
extern __typeof (xmlShellDir) xmlShellDir __attribute((alias("xmlShellDir__internal_alias")));
+#else
+#ifndef xmlShellDir
+extern __typeof (xmlShellDir) xmlShellDir__internal_alias __attribute((visibility("hidden")));
#define xmlShellDir xmlShellDir__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_DEBUG_ENABLED) && defined(LIBXML_XPATH_ENABLED)
-extern __typeof (xmlShellDu) xmlShellDu__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_debugXML
+#undef xmlShellDu
extern __typeof (xmlShellDu) xmlShellDu __attribute((alias("xmlShellDu__internal_alias")));
+#else
+#ifndef xmlShellDu
+extern __typeof (xmlShellDu) xmlShellDu__internal_alias __attribute((visibility("hidden")));
#define xmlShellDu xmlShellDu__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_DEBUG_ENABLED) && defined(LIBXML_XPATH_ENABLED)
-extern __typeof (xmlShellList) xmlShellList__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_debugXML
+#undef xmlShellList
extern __typeof (xmlShellList) xmlShellList __attribute((alias("xmlShellList__internal_alias")));
+#else
+#ifndef xmlShellList
+extern __typeof (xmlShellList) xmlShellList__internal_alias __attribute((visibility("hidden")));
#define xmlShellList xmlShellList__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_DEBUG_ENABLED) && defined(LIBXML_XPATH_ENABLED)
-extern __typeof (xmlShellLoad) xmlShellLoad__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_debugXML
+#undef xmlShellLoad
extern __typeof (xmlShellLoad) xmlShellLoad __attribute((alias("xmlShellLoad__internal_alias")));
+#else
+#ifndef xmlShellLoad
+extern __typeof (xmlShellLoad) xmlShellLoad__internal_alias __attribute((visibility("hidden")));
#define xmlShellLoad xmlShellLoad__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_DEBUG_ENABLED) && defined(LIBXML_XPATH_ENABLED) && defined(LIBXML_OUTPUT_ENABLED)
-extern __typeof (xmlShellPrintNode) xmlShellPrintNode__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_debugXML
+#undef xmlShellPrintNode
extern __typeof (xmlShellPrintNode) xmlShellPrintNode __attribute((alias("xmlShellPrintNode__internal_alias")));
+#else
+#ifndef xmlShellPrintNode
+extern __typeof (xmlShellPrintNode) xmlShellPrintNode__internal_alias __attribute((visibility("hidden")));
#define xmlShellPrintNode xmlShellPrintNode__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_DEBUG_ENABLED) && defined(LIBXML_XPATH_ENABLED)
-extern __typeof (xmlShellPrintXPathError) xmlShellPrintXPathError__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_debugXML
+#undef xmlShellPrintXPathError
extern __typeof (xmlShellPrintXPathError) xmlShellPrintXPathError __attribute((alias("xmlShellPrintXPathError__internal_alias")));
+#else
+#ifndef xmlShellPrintXPathError
+extern __typeof (xmlShellPrintXPathError) xmlShellPrintXPathError__internal_alias __attribute((visibility("hidden")));
#define xmlShellPrintXPathError xmlShellPrintXPathError__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_DEBUG_ENABLED) && defined(LIBXML_XPATH_ENABLED)
-extern __typeof (xmlShellPrintXPathResult) xmlShellPrintXPathResult__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_debugXML
+#undef xmlShellPrintXPathResult
extern __typeof (xmlShellPrintXPathResult) xmlShellPrintXPathResult __attribute((alias("xmlShellPrintXPathResult__internal_alias")));
+#else
+#ifndef xmlShellPrintXPathResult
+extern __typeof (xmlShellPrintXPathResult) xmlShellPrintXPathResult__internal_alias __attribute((visibility("hidden")));
#define xmlShellPrintXPathResult xmlShellPrintXPathResult__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_DEBUG_ENABLED) && defined(LIBXML_XPATH_ENABLED)
-extern __typeof (xmlShellPwd) xmlShellPwd__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_debugXML
+#undef xmlShellPwd
extern __typeof (xmlShellPwd) xmlShellPwd __attribute((alias("xmlShellPwd__internal_alias")));
+#else
+#ifndef xmlShellPwd
+extern __typeof (xmlShellPwd) xmlShellPwd__internal_alias __attribute((visibility("hidden")));
#define xmlShellPwd xmlShellPwd__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_DEBUG_ENABLED) && defined(LIBXML_XPATH_ENABLED) && defined(LIBXML_OUTPUT_ENABLED)
-extern __typeof (xmlShellSave) xmlShellSave__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_debugXML
+#undef xmlShellSave
extern __typeof (xmlShellSave) xmlShellSave __attribute((alias("xmlShellSave__internal_alias")));
+#else
+#ifndef xmlShellSave
+extern __typeof (xmlShellSave) xmlShellSave__internal_alias __attribute((visibility("hidden")));
#define xmlShellSave xmlShellSave__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_DEBUG_ENABLED) && defined(LIBXML_XPATH_ENABLED) && defined(LIBXML_VALID_ENABLED)
-extern __typeof (xmlShellValidate) xmlShellValidate__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_debugXML
+#undef xmlShellValidate
extern __typeof (xmlShellValidate) xmlShellValidate __attribute((alias("xmlShellValidate__internal_alias")));
+#else
+#ifndef xmlShellValidate
+extern __typeof (xmlShellValidate) xmlShellValidate__internal_alias __attribute((visibility("hidden")));
#define xmlShellValidate xmlShellValidate__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_DEBUG_ENABLED) && defined(LIBXML_XPATH_ENABLED) && defined(LIBXML_OUTPUT_ENABLED)
-extern __typeof (xmlShellWrite) xmlShellWrite__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_debugXML
+#undef xmlShellWrite
extern __typeof (xmlShellWrite) xmlShellWrite __attribute((alias("xmlShellWrite__internal_alias")));
+#else
+#ifndef xmlShellWrite
+extern __typeof (xmlShellWrite) xmlShellWrite__internal_alias __attribute((visibility("hidden")));
#define xmlShellWrite xmlShellWrite__internal_alias
#endif
+#endif
+#endif
-extern __typeof (xmlSkipBlankChars) xmlSkipBlankChars__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_parser
+#undef xmlSkipBlankChars
extern __typeof (xmlSkipBlankChars) xmlSkipBlankChars __attribute((alias("xmlSkipBlankChars__internal_alias")));
+#else
+#ifndef xmlSkipBlankChars
+extern __typeof (xmlSkipBlankChars) xmlSkipBlankChars__internal_alias __attribute((visibility("hidden")));
#define xmlSkipBlankChars xmlSkipBlankChars__internal_alias
+#endif
+#endif
-extern __typeof (xmlSnprintfElementContent) xmlSnprintfElementContent__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_valid
+#undef xmlSnprintfElementContent
extern __typeof (xmlSnprintfElementContent) xmlSnprintfElementContent __attribute((alias("xmlSnprintfElementContent__internal_alias")));
+#else
+#ifndef xmlSnprintfElementContent
+extern __typeof (xmlSnprintfElementContent) xmlSnprintfElementContent__internal_alias __attribute((visibility("hidden")));
#define xmlSnprintfElementContent xmlSnprintfElementContent__internal_alias
+#endif
+#endif
-extern __typeof (xmlSplitQName) xmlSplitQName__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_parser
+#undef xmlSplitQName
extern __typeof (xmlSplitQName) xmlSplitQName __attribute((alias("xmlSplitQName__internal_alias")));
+#else
+#ifndef xmlSplitQName
+extern __typeof (xmlSplitQName) xmlSplitQName__internal_alias __attribute((visibility("hidden")));
#define xmlSplitQName xmlSplitQName__internal_alias
+#endif
+#endif
-extern __typeof (xmlSplitQName2) xmlSplitQName2__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_tree
+#undef xmlSplitQName2
extern __typeof (xmlSplitQName2) xmlSplitQName2 __attribute((alias("xmlSplitQName2__internal_alias")));
+#else
+#ifndef xmlSplitQName2
+extern __typeof (xmlSplitQName2) xmlSplitQName2__internal_alias __attribute((visibility("hidden")));
#define xmlSplitQName2 xmlSplitQName2__internal_alias
+#endif
+#endif
-extern __typeof (xmlSplitQName3) xmlSplitQName3__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_tree
+#undef xmlSplitQName3
extern __typeof (xmlSplitQName3) xmlSplitQName3 __attribute((alias("xmlSplitQName3__internal_alias")));
+#else
+#ifndef xmlSplitQName3
+extern __typeof (xmlSplitQName3) xmlSplitQName3__internal_alias __attribute((visibility("hidden")));
#define xmlSplitQName3 xmlSplitQName3__internal_alias
+#endif
+#endif
#if defined(LIBXML_OUTPUT_ENABLED)
-extern __typeof (xmlSprintfElementContent) xmlSprintfElementContent__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_valid
+#undef xmlSprintfElementContent
extern __typeof (xmlSprintfElementContent) xmlSprintfElementContent __attribute((alias("xmlSprintfElementContent__internal_alias")));
+#else
+#ifndef xmlSprintfElementContent
+extern __typeof (xmlSprintfElementContent) xmlSprintfElementContent__internal_alias __attribute((visibility("hidden")));
#define xmlSprintfElementContent xmlSprintfElementContent__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_PUSH_ENABLED)
-extern __typeof (xmlStopParser) xmlStopParser__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_parser
+#undef xmlStopParser
extern __typeof (xmlStopParser) xmlStopParser __attribute((alias("xmlStopParser__internal_alias")));
+#else
+#ifndef xmlStopParser
+extern __typeof (xmlStopParser) xmlStopParser__internal_alias __attribute((visibility("hidden")));
#define xmlStopParser xmlStopParser__internal_alias
#endif
+#endif
+#endif
-extern __typeof (xmlStrEqual) xmlStrEqual__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlstring
+#undef xmlStrEqual
extern __typeof (xmlStrEqual) xmlStrEqual __attribute((alias("xmlStrEqual__internal_alias")));
+#else
+#ifndef xmlStrEqual
+extern __typeof (xmlStrEqual) xmlStrEqual__internal_alias __attribute((visibility("hidden")));
#define xmlStrEqual xmlStrEqual__internal_alias
+#endif
+#endif
-extern __typeof (xmlStrPrintf) xmlStrPrintf__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlstring
+#undef xmlStrPrintf
extern __typeof (xmlStrPrintf) xmlStrPrintf __attribute((alias("xmlStrPrintf__internal_alias")));
+#else
+#ifndef xmlStrPrintf
+extern __typeof (xmlStrPrintf) xmlStrPrintf__internal_alias __attribute((visibility("hidden")));
#define xmlStrPrintf xmlStrPrintf__internal_alias
+#endif
+#endif
-extern __typeof (xmlStrQEqual) xmlStrQEqual__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlstring
+#undef xmlStrQEqual
extern __typeof (xmlStrQEqual) xmlStrQEqual __attribute((alias("xmlStrQEqual__internal_alias")));
+#else
+#ifndef xmlStrQEqual
+extern __typeof (xmlStrQEqual) xmlStrQEqual__internal_alias __attribute((visibility("hidden")));
#define xmlStrQEqual xmlStrQEqual__internal_alias
+#endif
+#endif
-extern __typeof (xmlStrVPrintf) xmlStrVPrintf__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlstring
+#undef xmlStrVPrintf
extern __typeof (xmlStrVPrintf) xmlStrVPrintf __attribute((alias("xmlStrVPrintf__internal_alias")));
+#else
+#ifndef xmlStrVPrintf
+extern __typeof (xmlStrVPrintf) xmlStrVPrintf__internal_alias __attribute((visibility("hidden")));
#define xmlStrVPrintf xmlStrVPrintf__internal_alias
+#endif
+#endif
-extern __typeof (xmlStrcasecmp) xmlStrcasecmp__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlstring
+#undef xmlStrcasecmp
extern __typeof (xmlStrcasecmp) xmlStrcasecmp __attribute((alias("xmlStrcasecmp__internal_alias")));
+#else
+#ifndef xmlStrcasecmp
+extern __typeof (xmlStrcasecmp) xmlStrcasecmp__internal_alias __attribute((visibility("hidden")));
#define xmlStrcasecmp xmlStrcasecmp__internal_alias
+#endif
+#endif
-extern __typeof (xmlStrcasestr) xmlStrcasestr__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlstring
+#undef xmlStrcasestr
extern __typeof (xmlStrcasestr) xmlStrcasestr __attribute((alias("xmlStrcasestr__internal_alias")));
+#else
+#ifndef xmlStrcasestr
+extern __typeof (xmlStrcasestr) xmlStrcasestr__internal_alias __attribute((visibility("hidden")));
#define xmlStrcasestr xmlStrcasestr__internal_alias
+#endif
+#endif
-extern __typeof (xmlStrcat) xmlStrcat__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlstring
+#undef xmlStrcat
extern __typeof (xmlStrcat) xmlStrcat __attribute((alias("xmlStrcat__internal_alias")));
+#else
+#ifndef xmlStrcat
+extern __typeof (xmlStrcat) xmlStrcat__internal_alias __attribute((visibility("hidden")));
#define xmlStrcat xmlStrcat__internal_alias
+#endif
+#endif
-extern __typeof (xmlStrchr) xmlStrchr__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlstring
+#undef xmlStrchr
extern __typeof (xmlStrchr) xmlStrchr __attribute((alias("xmlStrchr__internal_alias")));
+#else
+#ifndef xmlStrchr
+extern __typeof (xmlStrchr) xmlStrchr__internal_alias __attribute((visibility("hidden")));
#define xmlStrchr xmlStrchr__internal_alias
+#endif
+#endif
-extern __typeof (xmlStrcmp) xmlStrcmp__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlstring
+#undef xmlStrcmp
extern __typeof (xmlStrcmp) xmlStrcmp __attribute((alias("xmlStrcmp__internal_alias")));
+#else
+#ifndef xmlStrcmp
+extern __typeof (xmlStrcmp) xmlStrcmp__internal_alias __attribute((visibility("hidden")));
#define xmlStrcmp xmlStrcmp__internal_alias
+#endif
+#endif
-extern __typeof (xmlStrdup) xmlStrdup__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlstring
+#undef xmlStrdup
extern __typeof (xmlStrdup) xmlStrdup __attribute((alias("xmlStrdup__internal_alias")));
+#else
+#ifndef xmlStrdup
+extern __typeof (xmlStrdup) xmlStrdup__internal_alias __attribute((visibility("hidden")));
#define xmlStrdup xmlStrdup__internal_alias
+#endif
+#endif
#if defined(LIBXML_PATTERN_ENABLED)
-extern __typeof (xmlStreamPop) xmlStreamPop__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_pattern
+#undef xmlStreamPop
extern __typeof (xmlStreamPop) xmlStreamPop __attribute((alias("xmlStreamPop__internal_alias")));
+#else
+#ifndef xmlStreamPop
+extern __typeof (xmlStreamPop) xmlStreamPop__internal_alias __attribute((visibility("hidden")));
#define xmlStreamPop xmlStreamPop__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_PATTERN_ENABLED)
-extern __typeof (xmlStreamPush) xmlStreamPush__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_pattern
+#undef xmlStreamPush
extern __typeof (xmlStreamPush) xmlStreamPush __attribute((alias("xmlStreamPush__internal_alias")));
+#else
+#ifndef xmlStreamPush
+extern __typeof (xmlStreamPush) xmlStreamPush__internal_alias __attribute((visibility("hidden")));
#define xmlStreamPush xmlStreamPush__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_PATTERN_ENABLED)
-extern __typeof (xmlStreamPushAttr) xmlStreamPushAttr__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_pattern
+#undef xmlStreamPushAttr
extern __typeof (xmlStreamPushAttr) xmlStreamPushAttr __attribute((alias("xmlStreamPushAttr__internal_alias")));
+#else
+#ifndef xmlStreamPushAttr
+extern __typeof (xmlStreamPushAttr) xmlStreamPushAttr__internal_alias __attribute((visibility("hidden")));
#define xmlStreamPushAttr xmlStreamPushAttr__internal_alias
#endif
+#endif
+#endif
-extern __typeof (xmlStringCurrentChar) xmlStringCurrentChar__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_parserInternals
+#undef xmlStringCurrentChar
extern __typeof (xmlStringCurrentChar) xmlStringCurrentChar __attribute((alias("xmlStringCurrentChar__internal_alias")));
+#else
+#ifndef xmlStringCurrentChar
+extern __typeof (xmlStringCurrentChar) xmlStringCurrentChar__internal_alias __attribute((visibility("hidden")));
#define xmlStringCurrentChar xmlStringCurrentChar__internal_alias
+#endif
+#endif
-extern __typeof (xmlStringDecodeEntities) xmlStringDecodeEntities__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_parser
+#undef xmlStringDecodeEntities
extern __typeof (xmlStringDecodeEntities) xmlStringDecodeEntities __attribute((alias("xmlStringDecodeEntities__internal_alias")));
+#else
+#ifndef xmlStringDecodeEntities
+extern __typeof (xmlStringDecodeEntities) xmlStringDecodeEntities__internal_alias __attribute((visibility("hidden")));
#define xmlStringDecodeEntities xmlStringDecodeEntities__internal_alias
+#endif
+#endif
-extern __typeof (xmlStringGetNodeList) xmlStringGetNodeList__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_tree
+#undef xmlStringGetNodeList
extern __typeof (xmlStringGetNodeList) xmlStringGetNodeList __attribute((alias("xmlStringGetNodeList__internal_alias")));
+#else
+#ifndef xmlStringGetNodeList
+extern __typeof (xmlStringGetNodeList) xmlStringGetNodeList__internal_alias __attribute((visibility("hidden")));
#define xmlStringGetNodeList xmlStringGetNodeList__internal_alias
+#endif
+#endif
-extern __typeof (xmlStringLenDecodeEntities) xmlStringLenDecodeEntities__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_parser
+#undef xmlStringLenDecodeEntities
extern __typeof (xmlStringLenDecodeEntities) xmlStringLenDecodeEntities __attribute((alias("xmlStringLenDecodeEntities__internal_alias")));
+#else
+#ifndef xmlStringLenDecodeEntities
+extern __typeof (xmlStringLenDecodeEntities) xmlStringLenDecodeEntities__internal_alias __attribute((visibility("hidden")));
#define xmlStringLenDecodeEntities xmlStringLenDecodeEntities__internal_alias
+#endif
+#endif
-extern __typeof (xmlStringLenGetNodeList) xmlStringLenGetNodeList__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_tree
+#undef xmlStringLenGetNodeList
extern __typeof (xmlStringLenGetNodeList) xmlStringLenGetNodeList __attribute((alias("xmlStringLenGetNodeList__internal_alias")));
+#else
+#ifndef xmlStringLenGetNodeList
+extern __typeof (xmlStringLenGetNodeList) xmlStringLenGetNodeList__internal_alias __attribute((visibility("hidden")));
#define xmlStringLenGetNodeList xmlStringLenGetNodeList__internal_alias
+#endif
+#endif
-extern __typeof (xmlStrlen) xmlStrlen__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlstring
+#undef xmlStrlen
extern __typeof (xmlStrlen) xmlStrlen __attribute((alias("xmlStrlen__internal_alias")));
+#else
+#ifndef xmlStrlen
+extern __typeof (xmlStrlen) xmlStrlen__internal_alias __attribute((visibility("hidden")));
#define xmlStrlen xmlStrlen__internal_alias
+#endif
+#endif
-extern __typeof (xmlStrncasecmp) xmlStrncasecmp__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlstring
+#undef xmlStrncasecmp
extern __typeof (xmlStrncasecmp) xmlStrncasecmp __attribute((alias("xmlStrncasecmp__internal_alias")));
+#else
+#ifndef xmlStrncasecmp
+extern __typeof (xmlStrncasecmp) xmlStrncasecmp__internal_alias __attribute((visibility("hidden")));
#define xmlStrncasecmp xmlStrncasecmp__internal_alias
+#endif
+#endif
-extern __typeof (xmlStrncat) xmlStrncat__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlstring
+#undef xmlStrncat
extern __typeof (xmlStrncat) xmlStrncat __attribute((alias("xmlStrncat__internal_alias")));
+#else
+#ifndef xmlStrncat
+extern __typeof (xmlStrncat) xmlStrncat__internal_alias __attribute((visibility("hidden")));
#define xmlStrncat xmlStrncat__internal_alias
+#endif
+#endif
-extern __typeof (xmlStrncatNew) xmlStrncatNew__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlstring
+#undef xmlStrncatNew
extern __typeof (xmlStrncatNew) xmlStrncatNew __attribute((alias("xmlStrncatNew__internal_alias")));
+#else
+#ifndef xmlStrncatNew
+extern __typeof (xmlStrncatNew) xmlStrncatNew__internal_alias __attribute((visibility("hidden")));
#define xmlStrncatNew xmlStrncatNew__internal_alias
+#endif
+#endif
-extern __typeof (xmlStrncmp) xmlStrncmp__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlstring
+#undef xmlStrncmp
extern __typeof (xmlStrncmp) xmlStrncmp __attribute((alias("xmlStrncmp__internal_alias")));
+#else
+#ifndef xmlStrncmp
+extern __typeof (xmlStrncmp) xmlStrncmp__internal_alias __attribute((visibility("hidden")));
#define xmlStrncmp xmlStrncmp__internal_alias
+#endif
+#endif
-extern __typeof (xmlStrndup) xmlStrndup__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlstring
+#undef xmlStrndup
extern __typeof (xmlStrndup) xmlStrndup __attribute((alias("xmlStrndup__internal_alias")));
+#else
+#ifndef xmlStrndup
+extern __typeof (xmlStrndup) xmlStrndup__internal_alias __attribute((visibility("hidden")));
#define xmlStrndup xmlStrndup__internal_alias
+#endif
+#endif
-extern __typeof (xmlStrstr) xmlStrstr__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlstring
+#undef xmlStrstr
extern __typeof (xmlStrstr) xmlStrstr __attribute((alias("xmlStrstr__internal_alias")));
+#else
+#ifndef xmlStrstr
+extern __typeof (xmlStrstr) xmlStrstr__internal_alias __attribute((visibility("hidden")));
#define xmlStrstr xmlStrstr__internal_alias
+#endif
+#endif
-extern __typeof (xmlStrsub) xmlStrsub__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlstring
+#undef xmlStrsub
extern __typeof (xmlStrsub) xmlStrsub __attribute((alias("xmlStrsub__internal_alias")));
+#else
+#ifndef xmlStrsub
+extern __typeof (xmlStrsub) xmlStrsub__internal_alias __attribute((visibility("hidden")));
#define xmlStrsub xmlStrsub__internal_alias
+#endif
+#endif
-extern __typeof (xmlSubstituteEntitiesDefault) xmlSubstituteEntitiesDefault__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_parserInternals
+#undef xmlSubstituteEntitiesDefault
extern __typeof (xmlSubstituteEntitiesDefault) xmlSubstituteEntitiesDefault __attribute((alias("xmlSubstituteEntitiesDefault__internal_alias")));
+#else
+#ifndef xmlSubstituteEntitiesDefault
+extern __typeof (xmlSubstituteEntitiesDefault) xmlSubstituteEntitiesDefault__internal_alias __attribute((visibility("hidden")));
#define xmlSubstituteEntitiesDefault xmlSubstituteEntitiesDefault__internal_alias
+#endif
+#endif
-extern __typeof (xmlSwitchEncoding) xmlSwitchEncoding__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_parserInternals
+#undef xmlSwitchEncoding
extern __typeof (xmlSwitchEncoding) xmlSwitchEncoding __attribute((alias("xmlSwitchEncoding__internal_alias")));
+#else
+#ifndef xmlSwitchEncoding
+extern __typeof (xmlSwitchEncoding) xmlSwitchEncoding__internal_alias __attribute((visibility("hidden")));
#define xmlSwitchEncoding xmlSwitchEncoding__internal_alias
+#endif
+#endif
-extern __typeof (xmlSwitchInputEncoding) xmlSwitchInputEncoding__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_parserInternals
+#undef xmlSwitchInputEncoding
extern __typeof (xmlSwitchInputEncoding) xmlSwitchInputEncoding __attribute((alias("xmlSwitchInputEncoding__internal_alias")));
+#else
+#ifndef xmlSwitchInputEncoding
+extern __typeof (xmlSwitchInputEncoding) xmlSwitchInputEncoding__internal_alias __attribute((visibility("hidden")));
#define xmlSwitchInputEncoding xmlSwitchInputEncoding__internal_alias
+#endif
+#endif
-extern __typeof (xmlSwitchToEncoding) xmlSwitchToEncoding__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_parserInternals
+#undef xmlSwitchToEncoding
extern __typeof (xmlSwitchToEncoding) xmlSwitchToEncoding __attribute((alias("xmlSwitchToEncoding__internal_alias")));
+#else
+#ifndef xmlSwitchToEncoding
+extern __typeof (xmlSwitchToEncoding) xmlSwitchToEncoding__internal_alias __attribute((visibility("hidden")));
#define xmlSwitchToEncoding xmlSwitchToEncoding__internal_alias
+#endif
+#endif
-extern __typeof (xmlTextConcat) xmlTextConcat__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_tree
+#undef xmlTextConcat
extern __typeof (xmlTextConcat) xmlTextConcat __attribute((alias("xmlTextConcat__internal_alias")));
+#else
+#ifndef xmlTextConcat
+extern __typeof (xmlTextConcat) xmlTextConcat__internal_alias __attribute((visibility("hidden")));
#define xmlTextConcat xmlTextConcat__internal_alias
+#endif
+#endif
-extern __typeof (xmlTextMerge) xmlTextMerge__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_tree
+#undef xmlTextMerge
extern __typeof (xmlTextMerge) xmlTextMerge __attribute((alias("xmlTextMerge__internal_alias")));
+#else
+#ifndef xmlTextMerge
+extern __typeof (xmlTextMerge) xmlTextMerge__internal_alias __attribute((visibility("hidden")));
#define xmlTextMerge xmlTextMerge__internal_alias
+#endif
+#endif
#if defined(LIBXML_READER_ENABLED)
-extern __typeof (xmlTextReaderAttributeCount) xmlTextReaderAttributeCount__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlreader
+#undef xmlTextReaderAttributeCount
extern __typeof (xmlTextReaderAttributeCount) xmlTextReaderAttributeCount __attribute((alias("xmlTextReaderAttributeCount__internal_alias")));
+#else
+#ifndef xmlTextReaderAttributeCount
+extern __typeof (xmlTextReaderAttributeCount) xmlTextReaderAttributeCount__internal_alias __attribute((visibility("hidden")));
#define xmlTextReaderAttributeCount xmlTextReaderAttributeCount__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_READER_ENABLED)
-extern __typeof (xmlTextReaderBaseUri) xmlTextReaderBaseUri__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlreader
+#undef xmlTextReaderBaseUri
extern __typeof (xmlTextReaderBaseUri) xmlTextReaderBaseUri __attribute((alias("xmlTextReaderBaseUri__internal_alias")));
+#else
+#ifndef xmlTextReaderBaseUri
+extern __typeof (xmlTextReaderBaseUri) xmlTextReaderBaseUri__internal_alias __attribute((visibility("hidden")));
#define xmlTextReaderBaseUri xmlTextReaderBaseUri__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_READER_ENABLED)
-extern __typeof (xmlTextReaderByteConsumed) xmlTextReaderByteConsumed__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlreader
+#undef xmlTextReaderByteConsumed
extern __typeof (xmlTextReaderByteConsumed) xmlTextReaderByteConsumed __attribute((alias("xmlTextReaderByteConsumed__internal_alias")));
+#else
+#ifndef xmlTextReaderByteConsumed
+extern __typeof (xmlTextReaderByteConsumed) xmlTextReaderByteConsumed__internal_alias __attribute((visibility("hidden")));
#define xmlTextReaderByteConsumed xmlTextReaderByteConsumed__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_READER_ENABLED)
-extern __typeof (xmlTextReaderClose) xmlTextReaderClose__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlreader
+#undef xmlTextReaderClose
extern __typeof (xmlTextReaderClose) xmlTextReaderClose __attribute((alias("xmlTextReaderClose__internal_alias")));
+#else
+#ifndef xmlTextReaderClose
+extern __typeof (xmlTextReaderClose) xmlTextReaderClose__internal_alias __attribute((visibility("hidden")));
#define xmlTextReaderClose xmlTextReaderClose__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_READER_ENABLED)
-extern __typeof (xmlTextReaderConstBaseUri) xmlTextReaderConstBaseUri__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlreader
+#undef xmlTextReaderConstBaseUri
extern __typeof (xmlTextReaderConstBaseUri) xmlTextReaderConstBaseUri __attribute((alias("xmlTextReaderConstBaseUri__internal_alias")));
+#else
+#ifndef xmlTextReaderConstBaseUri
+extern __typeof (xmlTextReaderConstBaseUri) xmlTextReaderConstBaseUri__internal_alias __attribute((visibility("hidden")));
#define xmlTextReaderConstBaseUri xmlTextReaderConstBaseUri__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_READER_ENABLED)
-extern __typeof (xmlTextReaderConstEncoding) xmlTextReaderConstEncoding__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlreader
+#undef xmlTextReaderConstEncoding
extern __typeof (xmlTextReaderConstEncoding) xmlTextReaderConstEncoding __attribute((alias("xmlTextReaderConstEncoding__internal_alias")));
+#else
+#ifndef xmlTextReaderConstEncoding
+extern __typeof (xmlTextReaderConstEncoding) xmlTextReaderConstEncoding__internal_alias __attribute((visibility("hidden")));
#define xmlTextReaderConstEncoding xmlTextReaderConstEncoding__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_READER_ENABLED)
-extern __typeof (xmlTextReaderConstLocalName) xmlTextReaderConstLocalName__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlreader
+#undef xmlTextReaderConstLocalName
extern __typeof (xmlTextReaderConstLocalName) xmlTextReaderConstLocalName __attribute((alias("xmlTextReaderConstLocalName__internal_alias")));
+#else
+#ifndef xmlTextReaderConstLocalName
+extern __typeof (xmlTextReaderConstLocalName) xmlTextReaderConstLocalName__internal_alias __attribute((visibility("hidden")));
#define xmlTextReaderConstLocalName xmlTextReaderConstLocalName__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_READER_ENABLED)
-extern __typeof (xmlTextReaderConstName) xmlTextReaderConstName__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlreader
+#undef xmlTextReaderConstName
extern __typeof (xmlTextReaderConstName) xmlTextReaderConstName __attribute((alias("xmlTextReaderConstName__internal_alias")));
+#else
+#ifndef xmlTextReaderConstName
+extern __typeof (xmlTextReaderConstName) xmlTextReaderConstName__internal_alias __attribute((visibility("hidden")));
#define xmlTextReaderConstName xmlTextReaderConstName__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_READER_ENABLED)
-extern __typeof (xmlTextReaderConstNamespaceUri) xmlTextReaderConstNamespaceUri__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlreader
+#undef xmlTextReaderConstNamespaceUri
extern __typeof (xmlTextReaderConstNamespaceUri) xmlTextReaderConstNamespaceUri __attribute((alias("xmlTextReaderConstNamespaceUri__internal_alias")));
+#else
+#ifndef xmlTextReaderConstNamespaceUri
+extern __typeof (xmlTextReaderConstNamespaceUri) xmlTextReaderConstNamespaceUri__internal_alias __attribute((visibility("hidden")));
#define xmlTextReaderConstNamespaceUri xmlTextReaderConstNamespaceUri__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_READER_ENABLED)
-extern __typeof (xmlTextReaderConstPrefix) xmlTextReaderConstPrefix__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlreader
+#undef xmlTextReaderConstPrefix
extern __typeof (xmlTextReaderConstPrefix) xmlTextReaderConstPrefix __attribute((alias("xmlTextReaderConstPrefix__internal_alias")));
+#else
+#ifndef xmlTextReaderConstPrefix
+extern __typeof (xmlTextReaderConstPrefix) xmlTextReaderConstPrefix__internal_alias __attribute((visibility("hidden")));
#define xmlTextReaderConstPrefix xmlTextReaderConstPrefix__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_READER_ENABLED)
-extern __typeof (xmlTextReaderConstString) xmlTextReaderConstString__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlreader
+#undef xmlTextReaderConstString
extern __typeof (xmlTextReaderConstString) xmlTextReaderConstString __attribute((alias("xmlTextReaderConstString__internal_alias")));
+#else
+#ifndef xmlTextReaderConstString
+extern __typeof (xmlTextReaderConstString) xmlTextReaderConstString__internal_alias __attribute((visibility("hidden")));
#define xmlTextReaderConstString xmlTextReaderConstString__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_READER_ENABLED)
-extern __typeof (xmlTextReaderConstValue) xmlTextReaderConstValue__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlreader
+#undef xmlTextReaderConstValue
extern __typeof (xmlTextReaderConstValue) xmlTextReaderConstValue __attribute((alias("xmlTextReaderConstValue__internal_alias")));
+#else
+#ifndef xmlTextReaderConstValue
+extern __typeof (xmlTextReaderConstValue) xmlTextReaderConstValue__internal_alias __attribute((visibility("hidden")));
#define xmlTextReaderConstValue xmlTextReaderConstValue__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_READER_ENABLED)
-extern __typeof (xmlTextReaderConstXmlLang) xmlTextReaderConstXmlLang__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlreader
+#undef xmlTextReaderConstXmlLang
extern __typeof (xmlTextReaderConstXmlLang) xmlTextReaderConstXmlLang __attribute((alias("xmlTextReaderConstXmlLang__internal_alias")));
+#else
+#ifndef xmlTextReaderConstXmlLang
+extern __typeof (xmlTextReaderConstXmlLang) xmlTextReaderConstXmlLang__internal_alias __attribute((visibility("hidden")));
#define xmlTextReaderConstXmlLang xmlTextReaderConstXmlLang__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_READER_ENABLED)
-extern __typeof (xmlTextReaderConstXmlVersion) xmlTextReaderConstXmlVersion__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlreader
+#undef xmlTextReaderConstXmlVersion
extern __typeof (xmlTextReaderConstXmlVersion) xmlTextReaderConstXmlVersion __attribute((alias("xmlTextReaderConstXmlVersion__internal_alias")));
+#else
+#ifndef xmlTextReaderConstXmlVersion
+extern __typeof (xmlTextReaderConstXmlVersion) xmlTextReaderConstXmlVersion__internal_alias __attribute((visibility("hidden")));
#define xmlTextReaderConstXmlVersion xmlTextReaderConstXmlVersion__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_READER_ENABLED)
-extern __typeof (xmlTextReaderCurrentDoc) xmlTextReaderCurrentDoc__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlreader
+#undef xmlTextReaderCurrentDoc
extern __typeof (xmlTextReaderCurrentDoc) xmlTextReaderCurrentDoc __attribute((alias("xmlTextReaderCurrentDoc__internal_alias")));
+#else
+#ifndef xmlTextReaderCurrentDoc
+extern __typeof (xmlTextReaderCurrentDoc) xmlTextReaderCurrentDoc__internal_alias __attribute((visibility("hidden")));
#define xmlTextReaderCurrentDoc xmlTextReaderCurrentDoc__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_READER_ENABLED)
-extern __typeof (xmlTextReaderCurrentNode) xmlTextReaderCurrentNode__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlreader
+#undef xmlTextReaderCurrentNode
extern __typeof (xmlTextReaderCurrentNode) xmlTextReaderCurrentNode __attribute((alias("xmlTextReaderCurrentNode__internal_alias")));
+#else
+#ifndef xmlTextReaderCurrentNode
+extern __typeof (xmlTextReaderCurrentNode) xmlTextReaderCurrentNode__internal_alias __attribute((visibility("hidden")));
#define xmlTextReaderCurrentNode xmlTextReaderCurrentNode__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_READER_ENABLED)
-extern __typeof (xmlTextReaderDepth) xmlTextReaderDepth__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlreader
+#undef xmlTextReaderDepth
extern __typeof (xmlTextReaderDepth) xmlTextReaderDepth __attribute((alias("xmlTextReaderDepth__internal_alias")));
+#else
+#ifndef xmlTextReaderDepth
+extern __typeof (xmlTextReaderDepth) xmlTextReaderDepth__internal_alias __attribute((visibility("hidden")));
#define xmlTextReaderDepth xmlTextReaderDepth__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_READER_ENABLED)
-extern __typeof (xmlTextReaderExpand) xmlTextReaderExpand__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlreader
+#undef xmlTextReaderExpand
extern __typeof (xmlTextReaderExpand) xmlTextReaderExpand __attribute((alias("xmlTextReaderExpand__internal_alias")));
+#else
+#ifndef xmlTextReaderExpand
+extern __typeof (xmlTextReaderExpand) xmlTextReaderExpand__internal_alias __attribute((visibility("hidden")));
#define xmlTextReaderExpand xmlTextReaderExpand__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_READER_ENABLED)
-extern __typeof (xmlTextReaderGetAttribute) xmlTextReaderGetAttribute__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlreader
+#undef xmlTextReaderGetAttribute
extern __typeof (xmlTextReaderGetAttribute) xmlTextReaderGetAttribute __attribute((alias("xmlTextReaderGetAttribute__internal_alias")));
+#else
+#ifndef xmlTextReaderGetAttribute
+extern __typeof (xmlTextReaderGetAttribute) xmlTextReaderGetAttribute__internal_alias __attribute((visibility("hidden")));
#define xmlTextReaderGetAttribute xmlTextReaderGetAttribute__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_READER_ENABLED)
-extern __typeof (xmlTextReaderGetAttributeNo) xmlTextReaderGetAttributeNo__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlreader
+#undef xmlTextReaderGetAttributeNo
extern __typeof (xmlTextReaderGetAttributeNo) xmlTextReaderGetAttributeNo __attribute((alias("xmlTextReaderGetAttributeNo__internal_alias")));
+#else
+#ifndef xmlTextReaderGetAttributeNo
+extern __typeof (xmlTextReaderGetAttributeNo) xmlTextReaderGetAttributeNo__internal_alias __attribute((visibility("hidden")));
#define xmlTextReaderGetAttributeNo xmlTextReaderGetAttributeNo__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_READER_ENABLED)
-extern __typeof (xmlTextReaderGetAttributeNs) xmlTextReaderGetAttributeNs__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlreader
+#undef xmlTextReaderGetAttributeNs
extern __typeof (xmlTextReaderGetAttributeNs) xmlTextReaderGetAttributeNs __attribute((alias("xmlTextReaderGetAttributeNs__internal_alias")));
+#else
+#ifndef xmlTextReaderGetAttributeNs
+extern __typeof (xmlTextReaderGetAttributeNs) xmlTextReaderGetAttributeNs__internal_alias __attribute((visibility("hidden")));
#define xmlTextReaderGetAttributeNs xmlTextReaderGetAttributeNs__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_READER_ENABLED)
-extern __typeof (xmlTextReaderGetErrorHandler) xmlTextReaderGetErrorHandler__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlreader
+#undef xmlTextReaderGetErrorHandler
extern __typeof (xmlTextReaderGetErrorHandler) xmlTextReaderGetErrorHandler __attribute((alias("xmlTextReaderGetErrorHandler__internal_alias")));
+#else
+#ifndef xmlTextReaderGetErrorHandler
+extern __typeof (xmlTextReaderGetErrorHandler) xmlTextReaderGetErrorHandler__internal_alias __attribute((visibility("hidden")));
#define xmlTextReaderGetErrorHandler xmlTextReaderGetErrorHandler__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_READER_ENABLED)
-extern __typeof (xmlTextReaderGetParserColumnNumber) xmlTextReaderGetParserColumnNumber__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlreader
+#undef xmlTextReaderGetParserColumnNumber
extern __typeof (xmlTextReaderGetParserColumnNumber) xmlTextReaderGetParserColumnNumber __attribute((alias("xmlTextReaderGetParserColumnNumber__internal_alias")));
+#else
+#ifndef xmlTextReaderGetParserColumnNumber
+extern __typeof (xmlTextReaderGetParserColumnNumber) xmlTextReaderGetParserColumnNumber__internal_alias __attribute((visibility("hidden")));
#define xmlTextReaderGetParserColumnNumber xmlTextReaderGetParserColumnNumber__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_READER_ENABLED)
-extern __typeof (xmlTextReaderGetParserLineNumber) xmlTextReaderGetParserLineNumber__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlreader
+#undef xmlTextReaderGetParserLineNumber
extern __typeof (xmlTextReaderGetParserLineNumber) xmlTextReaderGetParserLineNumber __attribute((alias("xmlTextReaderGetParserLineNumber__internal_alias")));
+#else
+#ifndef xmlTextReaderGetParserLineNumber
+extern __typeof (xmlTextReaderGetParserLineNumber) xmlTextReaderGetParserLineNumber__internal_alias __attribute((visibility("hidden")));
#define xmlTextReaderGetParserLineNumber xmlTextReaderGetParserLineNumber__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_READER_ENABLED)
-extern __typeof (xmlTextReaderGetParserProp) xmlTextReaderGetParserProp__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlreader
+#undef xmlTextReaderGetParserProp
extern __typeof (xmlTextReaderGetParserProp) xmlTextReaderGetParserProp __attribute((alias("xmlTextReaderGetParserProp__internal_alias")));
+#else
+#ifndef xmlTextReaderGetParserProp
+extern __typeof (xmlTextReaderGetParserProp) xmlTextReaderGetParserProp__internal_alias __attribute((visibility("hidden")));
#define xmlTextReaderGetParserProp xmlTextReaderGetParserProp__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_READER_ENABLED)
-extern __typeof (xmlTextReaderGetRemainder) xmlTextReaderGetRemainder__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlreader
+#undef xmlTextReaderGetRemainder
extern __typeof (xmlTextReaderGetRemainder) xmlTextReaderGetRemainder __attribute((alias("xmlTextReaderGetRemainder__internal_alias")));
+#else
+#ifndef xmlTextReaderGetRemainder
+extern __typeof (xmlTextReaderGetRemainder) xmlTextReaderGetRemainder__internal_alias __attribute((visibility("hidden")));
#define xmlTextReaderGetRemainder xmlTextReaderGetRemainder__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_READER_ENABLED)
-extern __typeof (xmlTextReaderHasAttributes) xmlTextReaderHasAttributes__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlreader
+#undef xmlTextReaderHasAttributes
extern __typeof (xmlTextReaderHasAttributes) xmlTextReaderHasAttributes __attribute((alias("xmlTextReaderHasAttributes__internal_alias")));
+#else
+#ifndef xmlTextReaderHasAttributes
+extern __typeof (xmlTextReaderHasAttributes) xmlTextReaderHasAttributes__internal_alias __attribute((visibility("hidden")));
#define xmlTextReaderHasAttributes xmlTextReaderHasAttributes__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_READER_ENABLED)
-extern __typeof (xmlTextReaderHasValue) xmlTextReaderHasValue__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlreader
+#undef xmlTextReaderHasValue
extern __typeof (xmlTextReaderHasValue) xmlTextReaderHasValue __attribute((alias("xmlTextReaderHasValue__internal_alias")));
+#else
+#ifndef xmlTextReaderHasValue
+extern __typeof (xmlTextReaderHasValue) xmlTextReaderHasValue__internal_alias __attribute((visibility("hidden")));
#define xmlTextReaderHasValue xmlTextReaderHasValue__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_READER_ENABLED)
-extern __typeof (xmlTextReaderIsDefault) xmlTextReaderIsDefault__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlreader
+#undef xmlTextReaderIsDefault
extern __typeof (xmlTextReaderIsDefault) xmlTextReaderIsDefault __attribute((alias("xmlTextReaderIsDefault__internal_alias")));
+#else
+#ifndef xmlTextReaderIsDefault
+extern __typeof (xmlTextReaderIsDefault) xmlTextReaderIsDefault__internal_alias __attribute((visibility("hidden")));
#define xmlTextReaderIsDefault xmlTextReaderIsDefault__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_READER_ENABLED)
-extern __typeof (xmlTextReaderIsEmptyElement) xmlTextReaderIsEmptyElement__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlreader
+#undef xmlTextReaderIsEmptyElement
extern __typeof (xmlTextReaderIsEmptyElement) xmlTextReaderIsEmptyElement __attribute((alias("xmlTextReaderIsEmptyElement__internal_alias")));
+#else
+#ifndef xmlTextReaderIsEmptyElement
+extern __typeof (xmlTextReaderIsEmptyElement) xmlTextReaderIsEmptyElement__internal_alias __attribute((visibility("hidden")));
#define xmlTextReaderIsEmptyElement xmlTextReaderIsEmptyElement__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_READER_ENABLED)
-extern __typeof (xmlTextReaderIsNamespaceDecl) xmlTextReaderIsNamespaceDecl__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlreader
+#undef xmlTextReaderIsNamespaceDecl
extern __typeof (xmlTextReaderIsNamespaceDecl) xmlTextReaderIsNamespaceDecl __attribute((alias("xmlTextReaderIsNamespaceDecl__internal_alias")));
+#else
+#ifndef xmlTextReaderIsNamespaceDecl
+extern __typeof (xmlTextReaderIsNamespaceDecl) xmlTextReaderIsNamespaceDecl__internal_alias __attribute((visibility("hidden")));
#define xmlTextReaderIsNamespaceDecl xmlTextReaderIsNamespaceDecl__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_READER_ENABLED)
-extern __typeof (xmlTextReaderIsValid) xmlTextReaderIsValid__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlreader
+#undef xmlTextReaderIsValid
extern __typeof (xmlTextReaderIsValid) xmlTextReaderIsValid __attribute((alias("xmlTextReaderIsValid__internal_alias")));
+#else
+#ifndef xmlTextReaderIsValid
+extern __typeof (xmlTextReaderIsValid) xmlTextReaderIsValid__internal_alias __attribute((visibility("hidden")));
#define xmlTextReaderIsValid xmlTextReaderIsValid__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_READER_ENABLED)
-extern __typeof (xmlTextReaderLocalName) xmlTextReaderLocalName__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlreader
+#undef xmlTextReaderLocalName
extern __typeof (xmlTextReaderLocalName) xmlTextReaderLocalName __attribute((alias("xmlTextReaderLocalName__internal_alias")));
+#else
+#ifndef xmlTextReaderLocalName
+extern __typeof (xmlTextReaderLocalName) xmlTextReaderLocalName__internal_alias __attribute((visibility("hidden")));
#define xmlTextReaderLocalName xmlTextReaderLocalName__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_READER_ENABLED)
-extern __typeof (xmlTextReaderLocatorBaseURI) xmlTextReaderLocatorBaseURI__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlreader
+#undef xmlTextReaderLocatorBaseURI
extern __typeof (xmlTextReaderLocatorBaseURI) xmlTextReaderLocatorBaseURI __attribute((alias("xmlTextReaderLocatorBaseURI__internal_alias")));
+#else
+#ifndef xmlTextReaderLocatorBaseURI
+extern __typeof (xmlTextReaderLocatorBaseURI) xmlTextReaderLocatorBaseURI__internal_alias __attribute((visibility("hidden")));
#define xmlTextReaderLocatorBaseURI xmlTextReaderLocatorBaseURI__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_READER_ENABLED)
-extern __typeof (xmlTextReaderLocatorLineNumber) xmlTextReaderLocatorLineNumber__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlreader
+#undef xmlTextReaderLocatorLineNumber
extern __typeof (xmlTextReaderLocatorLineNumber) xmlTextReaderLocatorLineNumber __attribute((alias("xmlTextReaderLocatorLineNumber__internal_alias")));
+#else
+#ifndef xmlTextReaderLocatorLineNumber
+extern __typeof (xmlTextReaderLocatorLineNumber) xmlTextReaderLocatorLineNumber__internal_alias __attribute((visibility("hidden")));
#define xmlTextReaderLocatorLineNumber xmlTextReaderLocatorLineNumber__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_READER_ENABLED)
-extern __typeof (xmlTextReaderLookupNamespace) xmlTextReaderLookupNamespace__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlreader
+#undef xmlTextReaderLookupNamespace
extern __typeof (xmlTextReaderLookupNamespace) xmlTextReaderLookupNamespace __attribute((alias("xmlTextReaderLookupNamespace__internal_alias")));
+#else
+#ifndef xmlTextReaderLookupNamespace
+extern __typeof (xmlTextReaderLookupNamespace) xmlTextReaderLookupNamespace__internal_alias __attribute((visibility("hidden")));
#define xmlTextReaderLookupNamespace xmlTextReaderLookupNamespace__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_READER_ENABLED)
-extern __typeof (xmlTextReaderMoveToAttribute) xmlTextReaderMoveToAttribute__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlreader
+#undef xmlTextReaderMoveToAttribute
extern __typeof (xmlTextReaderMoveToAttribute) xmlTextReaderMoveToAttribute __attribute((alias("xmlTextReaderMoveToAttribute__internal_alias")));
+#else
+#ifndef xmlTextReaderMoveToAttribute
+extern __typeof (xmlTextReaderMoveToAttribute) xmlTextReaderMoveToAttribute__internal_alias __attribute((visibility("hidden")));
#define xmlTextReaderMoveToAttribute xmlTextReaderMoveToAttribute__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_READER_ENABLED)
-extern __typeof (xmlTextReaderMoveToAttributeNo) xmlTextReaderMoveToAttributeNo__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlreader
+#undef xmlTextReaderMoveToAttributeNo
extern __typeof (xmlTextReaderMoveToAttributeNo) xmlTextReaderMoveToAttributeNo __attribute((alias("xmlTextReaderMoveToAttributeNo__internal_alias")));
+#else
+#ifndef xmlTextReaderMoveToAttributeNo
+extern __typeof (xmlTextReaderMoveToAttributeNo) xmlTextReaderMoveToAttributeNo__internal_alias __attribute((visibility("hidden")));
#define xmlTextReaderMoveToAttributeNo xmlTextReaderMoveToAttributeNo__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_READER_ENABLED)
-extern __typeof (xmlTextReaderMoveToAttributeNs) xmlTextReaderMoveToAttributeNs__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlreader
+#undef xmlTextReaderMoveToAttributeNs
extern __typeof (xmlTextReaderMoveToAttributeNs) xmlTextReaderMoveToAttributeNs __attribute((alias("xmlTextReaderMoveToAttributeNs__internal_alias")));
+#else
+#ifndef xmlTextReaderMoveToAttributeNs
+extern __typeof (xmlTextReaderMoveToAttributeNs) xmlTextReaderMoveToAttributeNs__internal_alias __attribute((visibility("hidden")));
#define xmlTextReaderMoveToAttributeNs xmlTextReaderMoveToAttributeNs__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_READER_ENABLED)
-extern __typeof (xmlTextReaderMoveToElement) xmlTextReaderMoveToElement__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlreader
+#undef xmlTextReaderMoveToElement
extern __typeof (xmlTextReaderMoveToElement) xmlTextReaderMoveToElement __attribute((alias("xmlTextReaderMoveToElement__internal_alias")));
+#else
+#ifndef xmlTextReaderMoveToElement
+extern __typeof (xmlTextReaderMoveToElement) xmlTextReaderMoveToElement__internal_alias __attribute((visibility("hidden")));
#define xmlTextReaderMoveToElement xmlTextReaderMoveToElement__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_READER_ENABLED)
-extern __typeof (xmlTextReaderMoveToFirstAttribute) xmlTextReaderMoveToFirstAttribute__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlreader
+#undef xmlTextReaderMoveToFirstAttribute
extern __typeof (xmlTextReaderMoveToFirstAttribute) xmlTextReaderMoveToFirstAttribute __attribute((alias("xmlTextReaderMoveToFirstAttribute__internal_alias")));
+#else
+#ifndef xmlTextReaderMoveToFirstAttribute
+extern __typeof (xmlTextReaderMoveToFirstAttribute) xmlTextReaderMoveToFirstAttribute__internal_alias __attribute((visibility("hidden")));
#define xmlTextReaderMoveToFirstAttribute xmlTextReaderMoveToFirstAttribute__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_READER_ENABLED)
-extern __typeof (xmlTextReaderMoveToNextAttribute) xmlTextReaderMoveToNextAttribute__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlreader
+#undef xmlTextReaderMoveToNextAttribute
extern __typeof (xmlTextReaderMoveToNextAttribute) xmlTextReaderMoveToNextAttribute __attribute((alias("xmlTextReaderMoveToNextAttribute__internal_alias")));
+#else
+#ifndef xmlTextReaderMoveToNextAttribute
+extern __typeof (xmlTextReaderMoveToNextAttribute) xmlTextReaderMoveToNextAttribute__internal_alias __attribute((visibility("hidden")));
#define xmlTextReaderMoveToNextAttribute xmlTextReaderMoveToNextAttribute__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_READER_ENABLED)
-extern __typeof (xmlTextReaderName) xmlTextReaderName__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlreader
+#undef xmlTextReaderName
extern __typeof (xmlTextReaderName) xmlTextReaderName __attribute((alias("xmlTextReaderName__internal_alias")));
+#else
+#ifndef xmlTextReaderName
+extern __typeof (xmlTextReaderName) xmlTextReaderName__internal_alias __attribute((visibility("hidden")));
#define xmlTextReaderName xmlTextReaderName__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_READER_ENABLED)
-extern __typeof (xmlTextReaderNamespaceUri) xmlTextReaderNamespaceUri__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlreader
+#undef xmlTextReaderNamespaceUri
extern __typeof (xmlTextReaderNamespaceUri) xmlTextReaderNamespaceUri __attribute((alias("xmlTextReaderNamespaceUri__internal_alias")));
+#else
+#ifndef xmlTextReaderNamespaceUri
+extern __typeof (xmlTextReaderNamespaceUri) xmlTextReaderNamespaceUri__internal_alias __attribute((visibility("hidden")));
#define xmlTextReaderNamespaceUri xmlTextReaderNamespaceUri__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_READER_ENABLED)
-extern __typeof (xmlTextReaderNext) xmlTextReaderNext__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlreader
+#undef xmlTextReaderNext
extern __typeof (xmlTextReaderNext) xmlTextReaderNext __attribute((alias("xmlTextReaderNext__internal_alias")));
+#else
+#ifndef xmlTextReaderNext
+extern __typeof (xmlTextReaderNext) xmlTextReaderNext__internal_alias __attribute((visibility("hidden")));
#define xmlTextReaderNext xmlTextReaderNext__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_READER_ENABLED)
-extern __typeof (xmlTextReaderNextSibling) xmlTextReaderNextSibling__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlreader
+#undef xmlTextReaderNextSibling
extern __typeof (xmlTextReaderNextSibling) xmlTextReaderNextSibling __attribute((alias("xmlTextReaderNextSibling__internal_alias")));
+#else
+#ifndef xmlTextReaderNextSibling
+extern __typeof (xmlTextReaderNextSibling) xmlTextReaderNextSibling__internal_alias __attribute((visibility("hidden")));
#define xmlTextReaderNextSibling xmlTextReaderNextSibling__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_READER_ENABLED)
-extern __typeof (xmlTextReaderNodeType) xmlTextReaderNodeType__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlreader
+#undef xmlTextReaderNodeType
extern __typeof (xmlTextReaderNodeType) xmlTextReaderNodeType __attribute((alias("xmlTextReaderNodeType__internal_alias")));
+#else
+#ifndef xmlTextReaderNodeType
+extern __typeof (xmlTextReaderNodeType) xmlTextReaderNodeType__internal_alias __attribute((visibility("hidden")));
#define xmlTextReaderNodeType xmlTextReaderNodeType__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_READER_ENABLED)
-extern __typeof (xmlTextReaderNormalization) xmlTextReaderNormalization__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlreader
+#undef xmlTextReaderNormalization
extern __typeof (xmlTextReaderNormalization) xmlTextReaderNormalization __attribute((alias("xmlTextReaderNormalization__internal_alias")));
+#else
+#ifndef xmlTextReaderNormalization
+extern __typeof (xmlTextReaderNormalization) xmlTextReaderNormalization__internal_alias __attribute((visibility("hidden")));
#define xmlTextReaderNormalization xmlTextReaderNormalization__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_READER_ENABLED)
-extern __typeof (xmlTextReaderPrefix) xmlTextReaderPrefix__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlreader
+#undef xmlTextReaderPrefix
extern __typeof (xmlTextReaderPrefix) xmlTextReaderPrefix __attribute((alias("xmlTextReaderPrefix__internal_alias")));
+#else
+#ifndef xmlTextReaderPrefix
+extern __typeof (xmlTextReaderPrefix) xmlTextReaderPrefix__internal_alias __attribute((visibility("hidden")));
#define xmlTextReaderPrefix xmlTextReaderPrefix__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_READER_ENABLED)
-extern __typeof (xmlTextReaderPreserve) xmlTextReaderPreserve__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlreader
+#undef xmlTextReaderPreserve
extern __typeof (xmlTextReaderPreserve) xmlTextReaderPreserve __attribute((alias("xmlTextReaderPreserve__internal_alias")));
+#else
+#ifndef xmlTextReaderPreserve
+extern __typeof (xmlTextReaderPreserve) xmlTextReaderPreserve__internal_alias __attribute((visibility("hidden")));
#define xmlTextReaderPreserve xmlTextReaderPreserve__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_READER_ENABLED) && defined(LIBXML_PATTERN_ENABLED)
-extern __typeof (xmlTextReaderPreservePattern) xmlTextReaderPreservePattern__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlreader
+#undef xmlTextReaderPreservePattern
extern __typeof (xmlTextReaderPreservePattern) xmlTextReaderPreservePattern __attribute((alias("xmlTextReaderPreservePattern__internal_alias")));
+#else
+#ifndef xmlTextReaderPreservePattern
+extern __typeof (xmlTextReaderPreservePattern) xmlTextReaderPreservePattern__internal_alias __attribute((visibility("hidden")));
#define xmlTextReaderPreservePattern xmlTextReaderPreservePattern__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_READER_ENABLED)
-extern __typeof (xmlTextReaderQuoteChar) xmlTextReaderQuoteChar__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlreader
+#undef xmlTextReaderQuoteChar
extern __typeof (xmlTextReaderQuoteChar) xmlTextReaderQuoteChar __attribute((alias("xmlTextReaderQuoteChar__internal_alias")));
+#else
+#ifndef xmlTextReaderQuoteChar
+extern __typeof (xmlTextReaderQuoteChar) xmlTextReaderQuoteChar__internal_alias __attribute((visibility("hidden")));
#define xmlTextReaderQuoteChar xmlTextReaderQuoteChar__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_READER_ENABLED)
-extern __typeof (xmlTextReaderRead) xmlTextReaderRead__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlreader
+#undef xmlTextReaderRead
extern __typeof (xmlTextReaderRead) xmlTextReaderRead __attribute((alias("xmlTextReaderRead__internal_alias")));
+#else
+#ifndef xmlTextReaderRead
+extern __typeof (xmlTextReaderRead) xmlTextReaderRead__internal_alias __attribute((visibility("hidden")));
#define xmlTextReaderRead xmlTextReaderRead__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_READER_ENABLED)
-extern __typeof (xmlTextReaderReadAttributeValue) xmlTextReaderReadAttributeValue__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlreader
+#undef xmlTextReaderReadAttributeValue
extern __typeof (xmlTextReaderReadAttributeValue) xmlTextReaderReadAttributeValue __attribute((alias("xmlTextReaderReadAttributeValue__internal_alias")));
+#else
+#ifndef xmlTextReaderReadAttributeValue
+extern __typeof (xmlTextReaderReadAttributeValue) xmlTextReaderReadAttributeValue__internal_alias __attribute((visibility("hidden")));
#define xmlTextReaderReadAttributeValue xmlTextReaderReadAttributeValue__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_READER_ENABLED)
-extern __typeof (xmlTextReaderReadInnerXml) xmlTextReaderReadInnerXml__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlreader
+#undef xmlTextReaderReadInnerXml
extern __typeof (xmlTextReaderReadInnerXml) xmlTextReaderReadInnerXml __attribute((alias("xmlTextReaderReadInnerXml__internal_alias")));
+#else
+#ifndef xmlTextReaderReadInnerXml
+extern __typeof (xmlTextReaderReadInnerXml) xmlTextReaderReadInnerXml__internal_alias __attribute((visibility("hidden")));
#define xmlTextReaderReadInnerXml xmlTextReaderReadInnerXml__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_READER_ENABLED)
-extern __typeof (xmlTextReaderReadOuterXml) xmlTextReaderReadOuterXml__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlreader
+#undef xmlTextReaderReadOuterXml
extern __typeof (xmlTextReaderReadOuterXml) xmlTextReaderReadOuterXml __attribute((alias("xmlTextReaderReadOuterXml__internal_alias")));
+#else
+#ifndef xmlTextReaderReadOuterXml
+extern __typeof (xmlTextReaderReadOuterXml) xmlTextReaderReadOuterXml__internal_alias __attribute((visibility("hidden")));
#define xmlTextReaderReadOuterXml xmlTextReaderReadOuterXml__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_READER_ENABLED)
-extern __typeof (xmlTextReaderReadState) xmlTextReaderReadState__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlreader
+#undef xmlTextReaderReadState
extern __typeof (xmlTextReaderReadState) xmlTextReaderReadState __attribute((alias("xmlTextReaderReadState__internal_alias")));
+#else
+#ifndef xmlTextReaderReadState
+extern __typeof (xmlTextReaderReadState) xmlTextReaderReadState__internal_alias __attribute((visibility("hidden")));
#define xmlTextReaderReadState xmlTextReaderReadState__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_READER_ENABLED)
-extern __typeof (xmlTextReaderReadString) xmlTextReaderReadString__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlreader
+#undef xmlTextReaderReadString
extern __typeof (xmlTextReaderReadString) xmlTextReaderReadString __attribute((alias("xmlTextReaderReadString__internal_alias")));
+#else
+#ifndef xmlTextReaderReadString
+extern __typeof (xmlTextReaderReadString) xmlTextReaderReadString__internal_alias __attribute((visibility("hidden")));
#define xmlTextReaderReadString xmlTextReaderReadString__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_READER_ENABLED) && defined(LIBXML_SCHEMAS_ENABLED)
-extern __typeof (xmlTextReaderRelaxNGSetSchema) xmlTextReaderRelaxNGSetSchema__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlreader
+#undef xmlTextReaderRelaxNGSetSchema
extern __typeof (xmlTextReaderRelaxNGSetSchema) xmlTextReaderRelaxNGSetSchema __attribute((alias("xmlTextReaderRelaxNGSetSchema__internal_alias")));
+#else
+#ifndef xmlTextReaderRelaxNGSetSchema
+extern __typeof (xmlTextReaderRelaxNGSetSchema) xmlTextReaderRelaxNGSetSchema__internal_alias __attribute((visibility("hidden")));
#define xmlTextReaderRelaxNGSetSchema xmlTextReaderRelaxNGSetSchema__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_READER_ENABLED) && defined(LIBXML_SCHEMAS_ENABLED)
-extern __typeof (xmlTextReaderRelaxNGValidate) xmlTextReaderRelaxNGValidate__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlreader
+#undef xmlTextReaderRelaxNGValidate
extern __typeof (xmlTextReaderRelaxNGValidate) xmlTextReaderRelaxNGValidate __attribute((alias("xmlTextReaderRelaxNGValidate__internal_alias")));
+#else
+#ifndef xmlTextReaderRelaxNGValidate
+extern __typeof (xmlTextReaderRelaxNGValidate) xmlTextReaderRelaxNGValidate__internal_alias __attribute((visibility("hidden")));
#define xmlTextReaderRelaxNGValidate xmlTextReaderRelaxNGValidate__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_READER_ENABLED)
-extern __typeof (xmlTextReaderSetErrorHandler) xmlTextReaderSetErrorHandler__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlreader
+#undef xmlTextReaderSetErrorHandler
extern __typeof (xmlTextReaderSetErrorHandler) xmlTextReaderSetErrorHandler __attribute((alias("xmlTextReaderSetErrorHandler__internal_alias")));
+#else
+#ifndef xmlTextReaderSetErrorHandler
+extern __typeof (xmlTextReaderSetErrorHandler) xmlTextReaderSetErrorHandler__internal_alias __attribute((visibility("hidden")));
#define xmlTextReaderSetErrorHandler xmlTextReaderSetErrorHandler__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_READER_ENABLED)
-extern __typeof (xmlTextReaderSetParserProp) xmlTextReaderSetParserProp__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlreader
+#undef xmlTextReaderSetParserProp
extern __typeof (xmlTextReaderSetParserProp) xmlTextReaderSetParserProp __attribute((alias("xmlTextReaderSetParserProp__internal_alias")));
+#else
+#ifndef xmlTextReaderSetParserProp
+extern __typeof (xmlTextReaderSetParserProp) xmlTextReaderSetParserProp__internal_alias __attribute((visibility("hidden")));
#define xmlTextReaderSetParserProp xmlTextReaderSetParserProp__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_READER_ENABLED)
-extern __typeof (xmlTextReaderSetStructuredErrorHandler) xmlTextReaderSetStructuredErrorHandler__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlreader
+#undef xmlTextReaderSetStructuredErrorHandler
extern __typeof (xmlTextReaderSetStructuredErrorHandler) xmlTextReaderSetStructuredErrorHandler __attribute((alias("xmlTextReaderSetStructuredErrorHandler__internal_alias")));
+#else
+#ifndef xmlTextReaderSetStructuredErrorHandler
+extern __typeof (xmlTextReaderSetStructuredErrorHandler) xmlTextReaderSetStructuredErrorHandler__internal_alias __attribute((visibility("hidden")));
#define xmlTextReaderSetStructuredErrorHandler xmlTextReaderSetStructuredErrorHandler__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_READER_ENABLED)
-extern __typeof (xmlTextReaderStandalone) xmlTextReaderStandalone__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlreader
+#undef xmlTextReaderStandalone
extern __typeof (xmlTextReaderStandalone) xmlTextReaderStandalone __attribute((alias("xmlTextReaderStandalone__internal_alias")));
+#else
+#ifndef xmlTextReaderStandalone
+extern __typeof (xmlTextReaderStandalone) xmlTextReaderStandalone__internal_alias __attribute((visibility("hidden")));
#define xmlTextReaderStandalone xmlTextReaderStandalone__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_READER_ENABLED)
-extern __typeof (xmlTextReaderValue) xmlTextReaderValue__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlreader
+#undef xmlTextReaderValue
extern __typeof (xmlTextReaderValue) xmlTextReaderValue __attribute((alias("xmlTextReaderValue__internal_alias")));
+#else
+#ifndef xmlTextReaderValue
+extern __typeof (xmlTextReaderValue) xmlTextReaderValue__internal_alias __attribute((visibility("hidden")));
#define xmlTextReaderValue xmlTextReaderValue__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_READER_ENABLED)
-extern __typeof (xmlTextReaderXmlLang) xmlTextReaderXmlLang__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlreader
+#undef xmlTextReaderXmlLang
extern __typeof (xmlTextReaderXmlLang) xmlTextReaderXmlLang __attribute((alias("xmlTextReaderXmlLang__internal_alias")));
+#else
+#ifndef xmlTextReaderXmlLang
+extern __typeof (xmlTextReaderXmlLang) xmlTextReaderXmlLang__internal_alias __attribute((visibility("hidden")));
#define xmlTextReaderXmlLang xmlTextReaderXmlLang__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_WRITER_ENABLED)
-extern __typeof (xmlTextWriterEndAttribute) xmlTextWriterEndAttribute__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlwriter
+#undef xmlTextWriterEndAttribute
extern __typeof (xmlTextWriterEndAttribute) xmlTextWriterEndAttribute __attribute((alias("xmlTextWriterEndAttribute__internal_alias")));
+#else
+#ifndef xmlTextWriterEndAttribute
+extern __typeof (xmlTextWriterEndAttribute) xmlTextWriterEndAttribute__internal_alias __attribute((visibility("hidden")));
#define xmlTextWriterEndAttribute xmlTextWriterEndAttribute__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_WRITER_ENABLED)
-extern __typeof (xmlTextWriterEndCDATA) xmlTextWriterEndCDATA__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlwriter
+#undef xmlTextWriterEndCDATA
extern __typeof (xmlTextWriterEndCDATA) xmlTextWriterEndCDATA __attribute((alias("xmlTextWriterEndCDATA__internal_alias")));
+#else
+#ifndef xmlTextWriterEndCDATA
+extern __typeof (xmlTextWriterEndCDATA) xmlTextWriterEndCDATA__internal_alias __attribute((visibility("hidden")));
#define xmlTextWriterEndCDATA xmlTextWriterEndCDATA__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_WRITER_ENABLED)
-extern __typeof (xmlTextWriterEndComment) xmlTextWriterEndComment__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlwriter
+#undef xmlTextWriterEndComment
extern __typeof (xmlTextWriterEndComment) xmlTextWriterEndComment __attribute((alias("xmlTextWriterEndComment__internal_alias")));
+#else
+#ifndef xmlTextWriterEndComment
+extern __typeof (xmlTextWriterEndComment) xmlTextWriterEndComment__internal_alias __attribute((visibility("hidden")));
#define xmlTextWriterEndComment xmlTextWriterEndComment__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_WRITER_ENABLED)
-extern __typeof (xmlTextWriterEndDTD) xmlTextWriterEndDTD__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlwriter
+#undef xmlTextWriterEndDTD
extern __typeof (xmlTextWriterEndDTD) xmlTextWriterEndDTD __attribute((alias("xmlTextWriterEndDTD__internal_alias")));
+#else
+#ifndef xmlTextWriterEndDTD
+extern __typeof (xmlTextWriterEndDTD) xmlTextWriterEndDTD__internal_alias __attribute((visibility("hidden")));
#define xmlTextWriterEndDTD xmlTextWriterEndDTD__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_WRITER_ENABLED)
-extern __typeof (xmlTextWriterEndDTDAttlist) xmlTextWriterEndDTDAttlist__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlwriter
+#undef xmlTextWriterEndDTDAttlist
extern __typeof (xmlTextWriterEndDTDAttlist) xmlTextWriterEndDTDAttlist __attribute((alias("xmlTextWriterEndDTDAttlist__internal_alias")));
+#else
+#ifndef xmlTextWriterEndDTDAttlist
+extern __typeof (xmlTextWriterEndDTDAttlist) xmlTextWriterEndDTDAttlist__internal_alias __attribute((visibility("hidden")));
#define xmlTextWriterEndDTDAttlist xmlTextWriterEndDTDAttlist__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_WRITER_ENABLED)
-extern __typeof (xmlTextWriterEndDTDElement) xmlTextWriterEndDTDElement__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlwriter
+#undef xmlTextWriterEndDTDElement
extern __typeof (xmlTextWriterEndDTDElement) xmlTextWriterEndDTDElement __attribute((alias("xmlTextWriterEndDTDElement__internal_alias")));
+#else
+#ifndef xmlTextWriterEndDTDElement
+extern __typeof (xmlTextWriterEndDTDElement) xmlTextWriterEndDTDElement__internal_alias __attribute((visibility("hidden")));
#define xmlTextWriterEndDTDElement xmlTextWriterEndDTDElement__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_WRITER_ENABLED)
-extern __typeof (xmlTextWriterEndDTDEntity) xmlTextWriterEndDTDEntity__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlwriter
+#undef xmlTextWriterEndDTDEntity
extern __typeof (xmlTextWriterEndDTDEntity) xmlTextWriterEndDTDEntity __attribute((alias("xmlTextWriterEndDTDEntity__internal_alias")));
+#else
+#ifndef xmlTextWriterEndDTDEntity
+extern __typeof (xmlTextWriterEndDTDEntity) xmlTextWriterEndDTDEntity__internal_alias __attribute((visibility("hidden")));
#define xmlTextWriterEndDTDEntity xmlTextWriterEndDTDEntity__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_WRITER_ENABLED)
-extern __typeof (xmlTextWriterEndDocument) xmlTextWriterEndDocument__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlwriter
+#undef xmlTextWriterEndDocument
extern __typeof (xmlTextWriterEndDocument) xmlTextWriterEndDocument __attribute((alias("xmlTextWriterEndDocument__internal_alias")));
+#else
+#ifndef xmlTextWriterEndDocument
+extern __typeof (xmlTextWriterEndDocument) xmlTextWriterEndDocument__internal_alias __attribute((visibility("hidden")));
#define xmlTextWriterEndDocument xmlTextWriterEndDocument__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_WRITER_ENABLED)
-extern __typeof (xmlTextWriterEndElement) xmlTextWriterEndElement__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlwriter
+#undef xmlTextWriterEndElement
extern __typeof (xmlTextWriterEndElement) xmlTextWriterEndElement __attribute((alias("xmlTextWriterEndElement__internal_alias")));
+#else
+#ifndef xmlTextWriterEndElement
+extern __typeof (xmlTextWriterEndElement) xmlTextWriterEndElement__internal_alias __attribute((visibility("hidden")));
#define xmlTextWriterEndElement xmlTextWriterEndElement__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_WRITER_ENABLED)
-extern __typeof (xmlTextWriterEndPI) xmlTextWriterEndPI__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlwriter
+#undef xmlTextWriterEndPI
extern __typeof (xmlTextWriterEndPI) xmlTextWriterEndPI __attribute((alias("xmlTextWriterEndPI__internal_alias")));
+#else
+#ifndef xmlTextWriterEndPI
+extern __typeof (xmlTextWriterEndPI) xmlTextWriterEndPI__internal_alias __attribute((visibility("hidden")));
#define xmlTextWriterEndPI xmlTextWriterEndPI__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_WRITER_ENABLED)
-extern __typeof (xmlTextWriterFlush) xmlTextWriterFlush__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlwriter
+#undef xmlTextWriterFlush
extern __typeof (xmlTextWriterFlush) xmlTextWriterFlush __attribute((alias("xmlTextWriterFlush__internal_alias")));
+#else
+#ifndef xmlTextWriterFlush
+extern __typeof (xmlTextWriterFlush) xmlTextWriterFlush__internal_alias __attribute((visibility("hidden")));
#define xmlTextWriterFlush xmlTextWriterFlush__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_WRITER_ENABLED)
-extern __typeof (xmlTextWriterFullEndElement) xmlTextWriterFullEndElement__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlwriter
+#undef xmlTextWriterFullEndElement
extern __typeof (xmlTextWriterFullEndElement) xmlTextWriterFullEndElement __attribute((alias("xmlTextWriterFullEndElement__internal_alias")));
+#else
+#ifndef xmlTextWriterFullEndElement
+extern __typeof (xmlTextWriterFullEndElement) xmlTextWriterFullEndElement__internal_alias __attribute((visibility("hidden")));
#define xmlTextWriterFullEndElement xmlTextWriterFullEndElement__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_WRITER_ENABLED)
-extern __typeof (xmlTextWriterSetIndent) xmlTextWriterSetIndent__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlwriter
+#undef xmlTextWriterSetIndent
extern __typeof (xmlTextWriterSetIndent) xmlTextWriterSetIndent __attribute((alias("xmlTextWriterSetIndent__internal_alias")));
+#else
+#ifndef xmlTextWriterSetIndent
+extern __typeof (xmlTextWriterSetIndent) xmlTextWriterSetIndent__internal_alias __attribute((visibility("hidden")));
#define xmlTextWriterSetIndent xmlTextWriterSetIndent__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_WRITER_ENABLED)
-extern __typeof (xmlTextWriterSetIndentString) xmlTextWriterSetIndentString__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlwriter
+#undef xmlTextWriterSetIndentString
extern __typeof (xmlTextWriterSetIndentString) xmlTextWriterSetIndentString __attribute((alias("xmlTextWriterSetIndentString__internal_alias")));
+#else
+#ifndef xmlTextWriterSetIndentString
+extern __typeof (xmlTextWriterSetIndentString) xmlTextWriterSetIndentString__internal_alias __attribute((visibility("hidden")));
#define xmlTextWriterSetIndentString xmlTextWriterSetIndentString__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_WRITER_ENABLED)
-extern __typeof (xmlTextWriterStartAttribute) xmlTextWriterStartAttribute__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlwriter
+#undef xmlTextWriterStartAttribute
extern __typeof (xmlTextWriterStartAttribute) xmlTextWriterStartAttribute __attribute((alias("xmlTextWriterStartAttribute__internal_alias")));
+#else
+#ifndef xmlTextWriterStartAttribute
+extern __typeof (xmlTextWriterStartAttribute) xmlTextWriterStartAttribute__internal_alias __attribute((visibility("hidden")));
#define xmlTextWriterStartAttribute xmlTextWriterStartAttribute__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_WRITER_ENABLED)
-extern __typeof (xmlTextWriterStartAttributeNS) xmlTextWriterStartAttributeNS__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlwriter
+#undef xmlTextWriterStartAttributeNS
extern __typeof (xmlTextWriterStartAttributeNS) xmlTextWriterStartAttributeNS __attribute((alias("xmlTextWriterStartAttributeNS__internal_alias")));
+#else
+#ifndef xmlTextWriterStartAttributeNS
+extern __typeof (xmlTextWriterStartAttributeNS) xmlTextWriterStartAttributeNS__internal_alias __attribute((visibility("hidden")));
#define xmlTextWriterStartAttributeNS xmlTextWriterStartAttributeNS__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_WRITER_ENABLED)
-extern __typeof (xmlTextWriterStartCDATA) xmlTextWriterStartCDATA__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlwriter
+#undef xmlTextWriterStartCDATA
extern __typeof (xmlTextWriterStartCDATA) xmlTextWriterStartCDATA __attribute((alias("xmlTextWriterStartCDATA__internal_alias")));
+#else
+#ifndef xmlTextWriterStartCDATA
+extern __typeof (xmlTextWriterStartCDATA) xmlTextWriterStartCDATA__internal_alias __attribute((visibility("hidden")));
#define xmlTextWriterStartCDATA xmlTextWriterStartCDATA__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_WRITER_ENABLED)
-extern __typeof (xmlTextWriterStartComment) xmlTextWriterStartComment__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlwriter
+#undef xmlTextWriterStartComment
extern __typeof (xmlTextWriterStartComment) xmlTextWriterStartComment __attribute((alias("xmlTextWriterStartComment__internal_alias")));
+#else
+#ifndef xmlTextWriterStartComment
+extern __typeof (xmlTextWriterStartComment) xmlTextWriterStartComment__internal_alias __attribute((visibility("hidden")));
#define xmlTextWriterStartComment xmlTextWriterStartComment__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_WRITER_ENABLED)
-extern __typeof (xmlTextWriterStartDTD) xmlTextWriterStartDTD__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlwriter
+#undef xmlTextWriterStartDTD
extern __typeof (xmlTextWriterStartDTD) xmlTextWriterStartDTD __attribute((alias("xmlTextWriterStartDTD__internal_alias")));
+#else
+#ifndef xmlTextWriterStartDTD
+extern __typeof (xmlTextWriterStartDTD) xmlTextWriterStartDTD__internal_alias __attribute((visibility("hidden")));
#define xmlTextWriterStartDTD xmlTextWriterStartDTD__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_WRITER_ENABLED)
-extern __typeof (xmlTextWriterStartDTDAttlist) xmlTextWriterStartDTDAttlist__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlwriter
+#undef xmlTextWriterStartDTDAttlist
extern __typeof (xmlTextWriterStartDTDAttlist) xmlTextWriterStartDTDAttlist __attribute((alias("xmlTextWriterStartDTDAttlist__internal_alias")));
+#else
+#ifndef xmlTextWriterStartDTDAttlist
+extern __typeof (xmlTextWriterStartDTDAttlist) xmlTextWriterStartDTDAttlist__internal_alias __attribute((visibility("hidden")));
#define xmlTextWriterStartDTDAttlist xmlTextWriterStartDTDAttlist__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_WRITER_ENABLED)
-extern __typeof (xmlTextWriterStartDTDElement) xmlTextWriterStartDTDElement__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlwriter
+#undef xmlTextWriterStartDTDElement
extern __typeof (xmlTextWriterStartDTDElement) xmlTextWriterStartDTDElement __attribute((alias("xmlTextWriterStartDTDElement__internal_alias")));
+#else
+#ifndef xmlTextWriterStartDTDElement
+extern __typeof (xmlTextWriterStartDTDElement) xmlTextWriterStartDTDElement__internal_alias __attribute((visibility("hidden")));
#define xmlTextWriterStartDTDElement xmlTextWriterStartDTDElement__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_WRITER_ENABLED)
-extern __typeof (xmlTextWriterStartDTDEntity) xmlTextWriterStartDTDEntity__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlwriter
+#undef xmlTextWriterStartDTDEntity
extern __typeof (xmlTextWriterStartDTDEntity) xmlTextWriterStartDTDEntity __attribute((alias("xmlTextWriterStartDTDEntity__internal_alias")));
+#else
+#ifndef xmlTextWriterStartDTDEntity
+extern __typeof (xmlTextWriterStartDTDEntity) xmlTextWriterStartDTDEntity__internal_alias __attribute((visibility("hidden")));
#define xmlTextWriterStartDTDEntity xmlTextWriterStartDTDEntity__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_WRITER_ENABLED)
-extern __typeof (xmlTextWriterStartDocument) xmlTextWriterStartDocument__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlwriter
+#undef xmlTextWriterStartDocument
extern __typeof (xmlTextWriterStartDocument) xmlTextWriterStartDocument __attribute((alias("xmlTextWriterStartDocument__internal_alias")));
+#else
+#ifndef xmlTextWriterStartDocument
+extern __typeof (xmlTextWriterStartDocument) xmlTextWriterStartDocument__internal_alias __attribute((visibility("hidden")));
#define xmlTextWriterStartDocument xmlTextWriterStartDocument__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_WRITER_ENABLED)
-extern __typeof (xmlTextWriterStartElement) xmlTextWriterStartElement__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlwriter
+#undef xmlTextWriterStartElement
extern __typeof (xmlTextWriterStartElement) xmlTextWriterStartElement __attribute((alias("xmlTextWriterStartElement__internal_alias")));
+#else
+#ifndef xmlTextWriterStartElement
+extern __typeof (xmlTextWriterStartElement) xmlTextWriterStartElement__internal_alias __attribute((visibility("hidden")));
#define xmlTextWriterStartElement xmlTextWriterStartElement__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_WRITER_ENABLED)
-extern __typeof (xmlTextWriterStartElementNS) xmlTextWriterStartElementNS__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlwriter
+#undef xmlTextWriterStartElementNS
extern __typeof (xmlTextWriterStartElementNS) xmlTextWriterStartElementNS __attribute((alias("xmlTextWriterStartElementNS__internal_alias")));
+#else
+#ifndef xmlTextWriterStartElementNS
+extern __typeof (xmlTextWriterStartElementNS) xmlTextWriterStartElementNS__internal_alias __attribute((visibility("hidden")));
#define xmlTextWriterStartElementNS xmlTextWriterStartElementNS__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_WRITER_ENABLED)
-extern __typeof (xmlTextWriterStartPI) xmlTextWriterStartPI__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlwriter
+#undef xmlTextWriterStartPI
extern __typeof (xmlTextWriterStartPI) xmlTextWriterStartPI __attribute((alias("xmlTextWriterStartPI__internal_alias")));
+#else
+#ifndef xmlTextWriterStartPI
+extern __typeof (xmlTextWriterStartPI) xmlTextWriterStartPI__internal_alias __attribute((visibility("hidden")));
#define xmlTextWriterStartPI xmlTextWriterStartPI__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_WRITER_ENABLED)
-extern __typeof (xmlTextWriterWriteAttribute) xmlTextWriterWriteAttribute__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlwriter
+#undef xmlTextWriterWriteAttribute
extern __typeof (xmlTextWriterWriteAttribute) xmlTextWriterWriteAttribute __attribute((alias("xmlTextWriterWriteAttribute__internal_alias")));
+#else
+#ifndef xmlTextWriterWriteAttribute
+extern __typeof (xmlTextWriterWriteAttribute) xmlTextWriterWriteAttribute__internal_alias __attribute((visibility("hidden")));
#define xmlTextWriterWriteAttribute xmlTextWriterWriteAttribute__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_WRITER_ENABLED)
-extern __typeof (xmlTextWriterWriteAttributeNS) xmlTextWriterWriteAttributeNS__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlwriter
+#undef xmlTextWriterWriteAttributeNS
extern __typeof (xmlTextWriterWriteAttributeNS) xmlTextWriterWriteAttributeNS __attribute((alias("xmlTextWriterWriteAttributeNS__internal_alias")));
+#else
+#ifndef xmlTextWriterWriteAttributeNS
+extern __typeof (xmlTextWriterWriteAttributeNS) xmlTextWriterWriteAttributeNS__internal_alias __attribute((visibility("hidden")));
#define xmlTextWriterWriteAttributeNS xmlTextWriterWriteAttributeNS__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_WRITER_ENABLED)
-extern __typeof (xmlTextWriterWriteBase64) xmlTextWriterWriteBase64__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlwriter
+#undef xmlTextWriterWriteBase64
extern __typeof (xmlTextWriterWriteBase64) xmlTextWriterWriteBase64 __attribute((alias("xmlTextWriterWriteBase64__internal_alias")));
+#else
+#ifndef xmlTextWriterWriteBase64
+extern __typeof (xmlTextWriterWriteBase64) xmlTextWriterWriteBase64__internal_alias __attribute((visibility("hidden")));
#define xmlTextWriterWriteBase64 xmlTextWriterWriteBase64__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_WRITER_ENABLED)
-extern __typeof (xmlTextWriterWriteBinHex) xmlTextWriterWriteBinHex__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlwriter
+#undef xmlTextWriterWriteBinHex
extern __typeof (xmlTextWriterWriteBinHex) xmlTextWriterWriteBinHex __attribute((alias("xmlTextWriterWriteBinHex__internal_alias")));
+#else
+#ifndef xmlTextWriterWriteBinHex
+extern __typeof (xmlTextWriterWriteBinHex) xmlTextWriterWriteBinHex__internal_alias __attribute((visibility("hidden")));
#define xmlTextWriterWriteBinHex xmlTextWriterWriteBinHex__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_WRITER_ENABLED)
-extern __typeof (xmlTextWriterWriteCDATA) xmlTextWriterWriteCDATA__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlwriter
+#undef xmlTextWriterWriteCDATA
extern __typeof (xmlTextWriterWriteCDATA) xmlTextWriterWriteCDATA __attribute((alias("xmlTextWriterWriteCDATA__internal_alias")));
+#else
+#ifndef xmlTextWriterWriteCDATA
+extern __typeof (xmlTextWriterWriteCDATA) xmlTextWriterWriteCDATA__internal_alias __attribute((visibility("hidden")));
#define xmlTextWriterWriteCDATA xmlTextWriterWriteCDATA__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_WRITER_ENABLED)
-extern __typeof (xmlTextWriterWriteComment) xmlTextWriterWriteComment__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlwriter
+#undef xmlTextWriterWriteComment
extern __typeof (xmlTextWriterWriteComment) xmlTextWriterWriteComment __attribute((alias("xmlTextWriterWriteComment__internal_alias")));
+#else
+#ifndef xmlTextWriterWriteComment
+extern __typeof (xmlTextWriterWriteComment) xmlTextWriterWriteComment__internal_alias __attribute((visibility("hidden")));
#define xmlTextWriterWriteComment xmlTextWriterWriteComment__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_WRITER_ENABLED)
-extern __typeof (xmlTextWriterWriteDTD) xmlTextWriterWriteDTD__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlwriter
+#undef xmlTextWriterWriteDTD
extern __typeof (xmlTextWriterWriteDTD) xmlTextWriterWriteDTD __attribute((alias("xmlTextWriterWriteDTD__internal_alias")));
+#else
+#ifndef xmlTextWriterWriteDTD
+extern __typeof (xmlTextWriterWriteDTD) xmlTextWriterWriteDTD__internal_alias __attribute((visibility("hidden")));
#define xmlTextWriterWriteDTD xmlTextWriterWriteDTD__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_WRITER_ENABLED)
-extern __typeof (xmlTextWriterWriteDTDAttlist) xmlTextWriterWriteDTDAttlist__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlwriter
+#undef xmlTextWriterWriteDTDAttlist
extern __typeof (xmlTextWriterWriteDTDAttlist) xmlTextWriterWriteDTDAttlist __attribute((alias("xmlTextWriterWriteDTDAttlist__internal_alias")));
+#else
+#ifndef xmlTextWriterWriteDTDAttlist
+extern __typeof (xmlTextWriterWriteDTDAttlist) xmlTextWriterWriteDTDAttlist__internal_alias __attribute((visibility("hidden")));
#define xmlTextWriterWriteDTDAttlist xmlTextWriterWriteDTDAttlist__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_WRITER_ENABLED)
-extern __typeof (xmlTextWriterWriteDTDElement) xmlTextWriterWriteDTDElement__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlwriter
+#undef xmlTextWriterWriteDTDElement
extern __typeof (xmlTextWriterWriteDTDElement) xmlTextWriterWriteDTDElement __attribute((alias("xmlTextWriterWriteDTDElement__internal_alias")));
+#else
+#ifndef xmlTextWriterWriteDTDElement
+extern __typeof (xmlTextWriterWriteDTDElement) xmlTextWriterWriteDTDElement__internal_alias __attribute((visibility("hidden")));
#define xmlTextWriterWriteDTDElement xmlTextWriterWriteDTDElement__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_WRITER_ENABLED)
-extern __typeof (xmlTextWriterWriteDTDEntity) xmlTextWriterWriteDTDEntity__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlwriter
+#undef xmlTextWriterWriteDTDEntity
extern __typeof (xmlTextWriterWriteDTDEntity) xmlTextWriterWriteDTDEntity __attribute((alias("xmlTextWriterWriteDTDEntity__internal_alias")));
+#else
+#ifndef xmlTextWriterWriteDTDEntity
+extern __typeof (xmlTextWriterWriteDTDEntity) xmlTextWriterWriteDTDEntity__internal_alias __attribute((visibility("hidden")));
#define xmlTextWriterWriteDTDEntity xmlTextWriterWriteDTDEntity__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_WRITER_ENABLED)
-extern __typeof (xmlTextWriterWriteDTDExternalEntity) xmlTextWriterWriteDTDExternalEntity__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlwriter
+#undef xmlTextWriterWriteDTDExternalEntity
extern __typeof (xmlTextWriterWriteDTDExternalEntity) xmlTextWriterWriteDTDExternalEntity __attribute((alias("xmlTextWriterWriteDTDExternalEntity__internal_alias")));
+#else
+#ifndef xmlTextWriterWriteDTDExternalEntity
+extern __typeof (xmlTextWriterWriteDTDExternalEntity) xmlTextWriterWriteDTDExternalEntity__internal_alias __attribute((visibility("hidden")));
#define xmlTextWriterWriteDTDExternalEntity xmlTextWriterWriteDTDExternalEntity__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_WRITER_ENABLED)
-extern __typeof (xmlTextWriterWriteDTDExternalEntityContents) xmlTextWriterWriteDTDExternalEntityContents__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlwriter
+#undef xmlTextWriterWriteDTDExternalEntityContents
extern __typeof (xmlTextWriterWriteDTDExternalEntityContents) xmlTextWriterWriteDTDExternalEntityContents __attribute((alias("xmlTextWriterWriteDTDExternalEntityContents__internal_alias")));
+#else
+#ifndef xmlTextWriterWriteDTDExternalEntityContents
+extern __typeof (xmlTextWriterWriteDTDExternalEntityContents) xmlTextWriterWriteDTDExternalEntityContents__internal_alias __attribute((visibility("hidden")));
#define xmlTextWriterWriteDTDExternalEntityContents xmlTextWriterWriteDTDExternalEntityContents__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_WRITER_ENABLED)
-extern __typeof (xmlTextWriterWriteDTDInternalEntity) xmlTextWriterWriteDTDInternalEntity__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlwriter
+#undef xmlTextWriterWriteDTDInternalEntity
extern __typeof (xmlTextWriterWriteDTDInternalEntity) xmlTextWriterWriteDTDInternalEntity __attribute((alias("xmlTextWriterWriteDTDInternalEntity__internal_alias")));
+#else
+#ifndef xmlTextWriterWriteDTDInternalEntity
+extern __typeof (xmlTextWriterWriteDTDInternalEntity) xmlTextWriterWriteDTDInternalEntity__internal_alias __attribute((visibility("hidden")));
#define xmlTextWriterWriteDTDInternalEntity xmlTextWriterWriteDTDInternalEntity__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_WRITER_ENABLED)
-extern __typeof (xmlTextWriterWriteDTDNotation) xmlTextWriterWriteDTDNotation__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlwriter
+#undef xmlTextWriterWriteDTDNotation
extern __typeof (xmlTextWriterWriteDTDNotation) xmlTextWriterWriteDTDNotation __attribute((alias("xmlTextWriterWriteDTDNotation__internal_alias")));
+#else
+#ifndef xmlTextWriterWriteDTDNotation
+extern __typeof (xmlTextWriterWriteDTDNotation) xmlTextWriterWriteDTDNotation__internal_alias __attribute((visibility("hidden")));
#define xmlTextWriterWriteDTDNotation xmlTextWriterWriteDTDNotation__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_WRITER_ENABLED)
-extern __typeof (xmlTextWriterWriteElement) xmlTextWriterWriteElement__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlwriter
+#undef xmlTextWriterWriteElement
extern __typeof (xmlTextWriterWriteElement) xmlTextWriterWriteElement __attribute((alias("xmlTextWriterWriteElement__internal_alias")));
+#else
+#ifndef xmlTextWriterWriteElement
+extern __typeof (xmlTextWriterWriteElement) xmlTextWriterWriteElement__internal_alias __attribute((visibility("hidden")));
#define xmlTextWriterWriteElement xmlTextWriterWriteElement__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_WRITER_ENABLED)
-extern __typeof (xmlTextWriterWriteElementNS) xmlTextWriterWriteElementNS__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlwriter
+#undef xmlTextWriterWriteElementNS
extern __typeof (xmlTextWriterWriteElementNS) xmlTextWriterWriteElementNS __attribute((alias("xmlTextWriterWriteElementNS__internal_alias")));
+#else
+#ifndef xmlTextWriterWriteElementNS
+extern __typeof (xmlTextWriterWriteElementNS) xmlTextWriterWriteElementNS__internal_alias __attribute((visibility("hidden")));
#define xmlTextWriterWriteElementNS xmlTextWriterWriteElementNS__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_WRITER_ENABLED)
-extern __typeof (xmlTextWriterWriteFormatAttribute) xmlTextWriterWriteFormatAttribute__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlwriter
+#undef xmlTextWriterWriteFormatAttribute
extern __typeof (xmlTextWriterWriteFormatAttribute) xmlTextWriterWriteFormatAttribute __attribute((alias("xmlTextWriterWriteFormatAttribute__internal_alias")));
+#else
+#ifndef xmlTextWriterWriteFormatAttribute
+extern __typeof (xmlTextWriterWriteFormatAttribute) xmlTextWriterWriteFormatAttribute__internal_alias __attribute((visibility("hidden")));
#define xmlTextWriterWriteFormatAttribute xmlTextWriterWriteFormatAttribute__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_WRITER_ENABLED)
-extern __typeof (xmlTextWriterWriteFormatAttributeNS) xmlTextWriterWriteFormatAttributeNS__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlwriter
+#undef xmlTextWriterWriteFormatAttributeNS
extern __typeof (xmlTextWriterWriteFormatAttributeNS) xmlTextWriterWriteFormatAttributeNS __attribute((alias("xmlTextWriterWriteFormatAttributeNS__internal_alias")));
+#else
+#ifndef xmlTextWriterWriteFormatAttributeNS
+extern __typeof (xmlTextWriterWriteFormatAttributeNS) xmlTextWriterWriteFormatAttributeNS__internal_alias __attribute((visibility("hidden")));
#define xmlTextWriterWriteFormatAttributeNS xmlTextWriterWriteFormatAttributeNS__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_WRITER_ENABLED)
-extern __typeof (xmlTextWriterWriteFormatCDATA) xmlTextWriterWriteFormatCDATA__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlwriter
+#undef xmlTextWriterWriteFormatCDATA
extern __typeof (xmlTextWriterWriteFormatCDATA) xmlTextWriterWriteFormatCDATA __attribute((alias("xmlTextWriterWriteFormatCDATA__internal_alias")));
+#else
+#ifndef xmlTextWriterWriteFormatCDATA
+extern __typeof (xmlTextWriterWriteFormatCDATA) xmlTextWriterWriteFormatCDATA__internal_alias __attribute((visibility("hidden")));
#define xmlTextWriterWriteFormatCDATA xmlTextWriterWriteFormatCDATA__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_WRITER_ENABLED)
-extern __typeof (xmlTextWriterWriteFormatComment) xmlTextWriterWriteFormatComment__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlwriter
+#undef xmlTextWriterWriteFormatComment
extern __typeof (xmlTextWriterWriteFormatComment) xmlTextWriterWriteFormatComment __attribute((alias("xmlTextWriterWriteFormatComment__internal_alias")));
+#else
+#ifndef xmlTextWriterWriteFormatComment
+extern __typeof (xmlTextWriterWriteFormatComment) xmlTextWriterWriteFormatComment__internal_alias __attribute((visibility("hidden")));
#define xmlTextWriterWriteFormatComment xmlTextWriterWriteFormatComment__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_WRITER_ENABLED)
-extern __typeof (xmlTextWriterWriteFormatDTD) xmlTextWriterWriteFormatDTD__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlwriter
+#undef xmlTextWriterWriteFormatDTD
extern __typeof (xmlTextWriterWriteFormatDTD) xmlTextWriterWriteFormatDTD __attribute((alias("xmlTextWriterWriteFormatDTD__internal_alias")));
+#else
+#ifndef xmlTextWriterWriteFormatDTD
+extern __typeof (xmlTextWriterWriteFormatDTD) xmlTextWriterWriteFormatDTD__internal_alias __attribute((visibility("hidden")));
#define xmlTextWriterWriteFormatDTD xmlTextWriterWriteFormatDTD__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_WRITER_ENABLED)
-extern __typeof (xmlTextWriterWriteFormatDTDAttlist) xmlTextWriterWriteFormatDTDAttlist__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlwriter
+#undef xmlTextWriterWriteFormatDTDAttlist
extern __typeof (xmlTextWriterWriteFormatDTDAttlist) xmlTextWriterWriteFormatDTDAttlist __attribute((alias("xmlTextWriterWriteFormatDTDAttlist__internal_alias")));
+#else
+#ifndef xmlTextWriterWriteFormatDTDAttlist
+extern __typeof (xmlTextWriterWriteFormatDTDAttlist) xmlTextWriterWriteFormatDTDAttlist__internal_alias __attribute((visibility("hidden")));
#define xmlTextWriterWriteFormatDTDAttlist xmlTextWriterWriteFormatDTDAttlist__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_WRITER_ENABLED)
-extern __typeof (xmlTextWriterWriteFormatDTDElement) xmlTextWriterWriteFormatDTDElement__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlwriter
+#undef xmlTextWriterWriteFormatDTDElement
extern __typeof (xmlTextWriterWriteFormatDTDElement) xmlTextWriterWriteFormatDTDElement __attribute((alias("xmlTextWriterWriteFormatDTDElement__internal_alias")));
+#else
+#ifndef xmlTextWriterWriteFormatDTDElement
+extern __typeof (xmlTextWriterWriteFormatDTDElement) xmlTextWriterWriteFormatDTDElement__internal_alias __attribute((visibility("hidden")));
#define xmlTextWriterWriteFormatDTDElement xmlTextWriterWriteFormatDTDElement__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_WRITER_ENABLED)
-extern __typeof (xmlTextWriterWriteFormatDTDInternalEntity) xmlTextWriterWriteFormatDTDInternalEntity__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlwriter
+#undef xmlTextWriterWriteFormatDTDInternalEntity
extern __typeof (xmlTextWriterWriteFormatDTDInternalEntity) xmlTextWriterWriteFormatDTDInternalEntity __attribute((alias("xmlTextWriterWriteFormatDTDInternalEntity__internal_alias")));
+#else
+#ifndef xmlTextWriterWriteFormatDTDInternalEntity
+extern __typeof (xmlTextWriterWriteFormatDTDInternalEntity) xmlTextWriterWriteFormatDTDInternalEntity__internal_alias __attribute((visibility("hidden")));
#define xmlTextWriterWriteFormatDTDInternalEntity xmlTextWriterWriteFormatDTDInternalEntity__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_WRITER_ENABLED)
-extern __typeof (xmlTextWriterWriteFormatElement) xmlTextWriterWriteFormatElement__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlwriter
+#undef xmlTextWriterWriteFormatElement
extern __typeof (xmlTextWriterWriteFormatElement) xmlTextWriterWriteFormatElement __attribute((alias("xmlTextWriterWriteFormatElement__internal_alias")));
+#else
+#ifndef xmlTextWriterWriteFormatElement
+extern __typeof (xmlTextWriterWriteFormatElement) xmlTextWriterWriteFormatElement__internal_alias __attribute((visibility("hidden")));
#define xmlTextWriterWriteFormatElement xmlTextWriterWriteFormatElement__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_WRITER_ENABLED)
-extern __typeof (xmlTextWriterWriteFormatElementNS) xmlTextWriterWriteFormatElementNS__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlwriter
+#undef xmlTextWriterWriteFormatElementNS
extern __typeof (xmlTextWriterWriteFormatElementNS) xmlTextWriterWriteFormatElementNS __attribute((alias("xmlTextWriterWriteFormatElementNS__internal_alias")));
+#else
+#ifndef xmlTextWriterWriteFormatElementNS
+extern __typeof (xmlTextWriterWriteFormatElementNS) xmlTextWriterWriteFormatElementNS__internal_alias __attribute((visibility("hidden")));
#define xmlTextWriterWriteFormatElementNS xmlTextWriterWriteFormatElementNS__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_WRITER_ENABLED)
-extern __typeof (xmlTextWriterWriteFormatPI) xmlTextWriterWriteFormatPI__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlwriter
+#undef xmlTextWriterWriteFormatPI
extern __typeof (xmlTextWriterWriteFormatPI) xmlTextWriterWriteFormatPI __attribute((alias("xmlTextWriterWriteFormatPI__internal_alias")));
+#else
+#ifndef xmlTextWriterWriteFormatPI
+extern __typeof (xmlTextWriterWriteFormatPI) xmlTextWriterWriteFormatPI__internal_alias __attribute((visibility("hidden")));
#define xmlTextWriterWriteFormatPI xmlTextWriterWriteFormatPI__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_WRITER_ENABLED)
-extern __typeof (xmlTextWriterWriteFormatRaw) xmlTextWriterWriteFormatRaw__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlwriter
+#undef xmlTextWriterWriteFormatRaw
extern __typeof (xmlTextWriterWriteFormatRaw) xmlTextWriterWriteFormatRaw __attribute((alias("xmlTextWriterWriteFormatRaw__internal_alias")));
+#else
+#ifndef xmlTextWriterWriteFormatRaw
+extern __typeof (xmlTextWriterWriteFormatRaw) xmlTextWriterWriteFormatRaw__internal_alias __attribute((visibility("hidden")));
#define xmlTextWriterWriteFormatRaw xmlTextWriterWriteFormatRaw__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_WRITER_ENABLED)
-extern __typeof (xmlTextWriterWriteFormatString) xmlTextWriterWriteFormatString__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlwriter
+#undef xmlTextWriterWriteFormatString
extern __typeof (xmlTextWriterWriteFormatString) xmlTextWriterWriteFormatString __attribute((alias("xmlTextWriterWriteFormatString__internal_alias")));
+#else
+#ifndef xmlTextWriterWriteFormatString
+extern __typeof (xmlTextWriterWriteFormatString) xmlTextWriterWriteFormatString__internal_alias __attribute((visibility("hidden")));
#define xmlTextWriterWriteFormatString xmlTextWriterWriteFormatString__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_WRITER_ENABLED)
-extern __typeof (xmlTextWriterWritePI) xmlTextWriterWritePI__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlwriter
+#undef xmlTextWriterWritePI
extern __typeof (xmlTextWriterWritePI) xmlTextWriterWritePI __attribute((alias("xmlTextWriterWritePI__internal_alias")));
+#else
+#ifndef xmlTextWriterWritePI
+extern __typeof (xmlTextWriterWritePI) xmlTextWriterWritePI__internal_alias __attribute((visibility("hidden")));
#define xmlTextWriterWritePI xmlTextWriterWritePI__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_WRITER_ENABLED)
-extern __typeof (xmlTextWriterWriteRaw) xmlTextWriterWriteRaw__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlwriter
+#undef xmlTextWriterWriteRaw
extern __typeof (xmlTextWriterWriteRaw) xmlTextWriterWriteRaw __attribute((alias("xmlTextWriterWriteRaw__internal_alias")));
+#else
+#ifndef xmlTextWriterWriteRaw
+extern __typeof (xmlTextWriterWriteRaw) xmlTextWriterWriteRaw__internal_alias __attribute((visibility("hidden")));
#define xmlTextWriterWriteRaw xmlTextWriterWriteRaw__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_WRITER_ENABLED)
-extern __typeof (xmlTextWriterWriteRawLen) xmlTextWriterWriteRawLen__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlwriter
+#undef xmlTextWriterWriteRawLen
extern __typeof (xmlTextWriterWriteRawLen) xmlTextWriterWriteRawLen __attribute((alias("xmlTextWriterWriteRawLen__internal_alias")));
+#else
+#ifndef xmlTextWriterWriteRawLen
+extern __typeof (xmlTextWriterWriteRawLen) xmlTextWriterWriteRawLen__internal_alias __attribute((visibility("hidden")));
#define xmlTextWriterWriteRawLen xmlTextWriterWriteRawLen__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_WRITER_ENABLED)
-extern __typeof (xmlTextWriterWriteString) xmlTextWriterWriteString__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlwriter
+#undef xmlTextWriterWriteString
extern __typeof (xmlTextWriterWriteString) xmlTextWriterWriteString __attribute((alias("xmlTextWriterWriteString__internal_alias")));
+#else
+#ifndef xmlTextWriterWriteString
+extern __typeof (xmlTextWriterWriteString) xmlTextWriterWriteString__internal_alias __attribute((visibility("hidden")));
#define xmlTextWriterWriteString xmlTextWriterWriteString__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_WRITER_ENABLED)
-extern __typeof (xmlTextWriterWriteVFormatAttribute) xmlTextWriterWriteVFormatAttribute__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlwriter
+#undef xmlTextWriterWriteVFormatAttribute
extern __typeof (xmlTextWriterWriteVFormatAttribute) xmlTextWriterWriteVFormatAttribute __attribute((alias("xmlTextWriterWriteVFormatAttribute__internal_alias")));
+#else
+#ifndef xmlTextWriterWriteVFormatAttribute
+extern __typeof (xmlTextWriterWriteVFormatAttribute) xmlTextWriterWriteVFormatAttribute__internal_alias __attribute((visibility("hidden")));
#define xmlTextWriterWriteVFormatAttribute xmlTextWriterWriteVFormatAttribute__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_WRITER_ENABLED)
-extern __typeof (xmlTextWriterWriteVFormatAttributeNS) xmlTextWriterWriteVFormatAttributeNS__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlwriter
+#undef xmlTextWriterWriteVFormatAttributeNS
extern __typeof (xmlTextWriterWriteVFormatAttributeNS) xmlTextWriterWriteVFormatAttributeNS __attribute((alias("xmlTextWriterWriteVFormatAttributeNS__internal_alias")));
+#else
+#ifndef xmlTextWriterWriteVFormatAttributeNS
+extern __typeof (xmlTextWriterWriteVFormatAttributeNS) xmlTextWriterWriteVFormatAttributeNS__internal_alias __attribute((visibility("hidden")));
#define xmlTextWriterWriteVFormatAttributeNS xmlTextWriterWriteVFormatAttributeNS__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_WRITER_ENABLED)
-extern __typeof (xmlTextWriterWriteVFormatCDATA) xmlTextWriterWriteVFormatCDATA__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlwriter
+#undef xmlTextWriterWriteVFormatCDATA
extern __typeof (xmlTextWriterWriteVFormatCDATA) xmlTextWriterWriteVFormatCDATA __attribute((alias("xmlTextWriterWriteVFormatCDATA__internal_alias")));
+#else
+#ifndef xmlTextWriterWriteVFormatCDATA
+extern __typeof (xmlTextWriterWriteVFormatCDATA) xmlTextWriterWriteVFormatCDATA__internal_alias __attribute((visibility("hidden")));
#define xmlTextWriterWriteVFormatCDATA xmlTextWriterWriteVFormatCDATA__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_WRITER_ENABLED)
-extern __typeof (xmlTextWriterWriteVFormatComment) xmlTextWriterWriteVFormatComment__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlwriter
+#undef xmlTextWriterWriteVFormatComment
extern __typeof (xmlTextWriterWriteVFormatComment) xmlTextWriterWriteVFormatComment __attribute((alias("xmlTextWriterWriteVFormatComment__internal_alias")));
+#else
+#ifndef xmlTextWriterWriteVFormatComment
+extern __typeof (xmlTextWriterWriteVFormatComment) xmlTextWriterWriteVFormatComment__internal_alias __attribute((visibility("hidden")));
#define xmlTextWriterWriteVFormatComment xmlTextWriterWriteVFormatComment__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_WRITER_ENABLED)
-extern __typeof (xmlTextWriterWriteVFormatDTD) xmlTextWriterWriteVFormatDTD__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlwriter
+#undef xmlTextWriterWriteVFormatDTD
extern __typeof (xmlTextWriterWriteVFormatDTD) xmlTextWriterWriteVFormatDTD __attribute((alias("xmlTextWriterWriteVFormatDTD__internal_alias")));
+#else
+#ifndef xmlTextWriterWriteVFormatDTD
+extern __typeof (xmlTextWriterWriteVFormatDTD) xmlTextWriterWriteVFormatDTD__internal_alias __attribute((visibility("hidden")));
#define xmlTextWriterWriteVFormatDTD xmlTextWriterWriteVFormatDTD__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_WRITER_ENABLED)
-extern __typeof (xmlTextWriterWriteVFormatDTDAttlist) xmlTextWriterWriteVFormatDTDAttlist__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlwriter
+#undef xmlTextWriterWriteVFormatDTDAttlist
extern __typeof (xmlTextWriterWriteVFormatDTDAttlist) xmlTextWriterWriteVFormatDTDAttlist __attribute((alias("xmlTextWriterWriteVFormatDTDAttlist__internal_alias")));
+#else
+#ifndef xmlTextWriterWriteVFormatDTDAttlist
+extern __typeof (xmlTextWriterWriteVFormatDTDAttlist) xmlTextWriterWriteVFormatDTDAttlist__internal_alias __attribute((visibility("hidden")));
#define xmlTextWriterWriteVFormatDTDAttlist xmlTextWriterWriteVFormatDTDAttlist__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_WRITER_ENABLED)
-extern __typeof (xmlTextWriterWriteVFormatDTDElement) xmlTextWriterWriteVFormatDTDElement__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlwriter
+#undef xmlTextWriterWriteVFormatDTDElement
extern __typeof (xmlTextWriterWriteVFormatDTDElement) xmlTextWriterWriteVFormatDTDElement __attribute((alias("xmlTextWriterWriteVFormatDTDElement__internal_alias")));
+#else
+#ifndef xmlTextWriterWriteVFormatDTDElement
+extern __typeof (xmlTextWriterWriteVFormatDTDElement) xmlTextWriterWriteVFormatDTDElement__internal_alias __attribute((visibility("hidden")));
#define xmlTextWriterWriteVFormatDTDElement xmlTextWriterWriteVFormatDTDElement__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_WRITER_ENABLED)
-extern __typeof (xmlTextWriterWriteVFormatDTDInternalEntity) xmlTextWriterWriteVFormatDTDInternalEntity__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlwriter
+#undef xmlTextWriterWriteVFormatDTDInternalEntity
extern __typeof (xmlTextWriterWriteVFormatDTDInternalEntity) xmlTextWriterWriteVFormatDTDInternalEntity __attribute((alias("xmlTextWriterWriteVFormatDTDInternalEntity__internal_alias")));
+#else
+#ifndef xmlTextWriterWriteVFormatDTDInternalEntity
+extern __typeof (xmlTextWriterWriteVFormatDTDInternalEntity) xmlTextWriterWriteVFormatDTDInternalEntity__internal_alias __attribute((visibility("hidden")));
#define xmlTextWriterWriteVFormatDTDInternalEntity xmlTextWriterWriteVFormatDTDInternalEntity__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_WRITER_ENABLED)
-extern __typeof (xmlTextWriterWriteVFormatElement) xmlTextWriterWriteVFormatElement__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlwriter
+#undef xmlTextWriterWriteVFormatElement
extern __typeof (xmlTextWriterWriteVFormatElement) xmlTextWriterWriteVFormatElement __attribute((alias("xmlTextWriterWriteVFormatElement__internal_alias")));
+#else
+#ifndef xmlTextWriterWriteVFormatElement
+extern __typeof (xmlTextWriterWriteVFormatElement) xmlTextWriterWriteVFormatElement__internal_alias __attribute((visibility("hidden")));
#define xmlTextWriterWriteVFormatElement xmlTextWriterWriteVFormatElement__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_WRITER_ENABLED)
-extern __typeof (xmlTextWriterWriteVFormatElementNS) xmlTextWriterWriteVFormatElementNS__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlwriter
+#undef xmlTextWriterWriteVFormatElementNS
extern __typeof (xmlTextWriterWriteVFormatElementNS) xmlTextWriterWriteVFormatElementNS __attribute((alias("xmlTextWriterWriteVFormatElementNS__internal_alias")));
+#else
+#ifndef xmlTextWriterWriteVFormatElementNS
+extern __typeof (xmlTextWriterWriteVFormatElementNS) xmlTextWriterWriteVFormatElementNS__internal_alias __attribute((visibility("hidden")));
#define xmlTextWriterWriteVFormatElementNS xmlTextWriterWriteVFormatElementNS__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_WRITER_ENABLED)
-extern __typeof (xmlTextWriterWriteVFormatPI) xmlTextWriterWriteVFormatPI__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlwriter
+#undef xmlTextWriterWriteVFormatPI
extern __typeof (xmlTextWriterWriteVFormatPI) xmlTextWriterWriteVFormatPI __attribute((alias("xmlTextWriterWriteVFormatPI__internal_alias")));
+#else
+#ifndef xmlTextWriterWriteVFormatPI
+extern __typeof (xmlTextWriterWriteVFormatPI) xmlTextWriterWriteVFormatPI__internal_alias __attribute((visibility("hidden")));
#define xmlTextWriterWriteVFormatPI xmlTextWriterWriteVFormatPI__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_WRITER_ENABLED)
-extern __typeof (xmlTextWriterWriteVFormatRaw) xmlTextWriterWriteVFormatRaw__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlwriter
+#undef xmlTextWriterWriteVFormatRaw
extern __typeof (xmlTextWriterWriteVFormatRaw) xmlTextWriterWriteVFormatRaw __attribute((alias("xmlTextWriterWriteVFormatRaw__internal_alias")));
+#else
+#ifndef xmlTextWriterWriteVFormatRaw
+extern __typeof (xmlTextWriterWriteVFormatRaw) xmlTextWriterWriteVFormatRaw__internal_alias __attribute((visibility("hidden")));
#define xmlTextWriterWriteVFormatRaw xmlTextWriterWriteVFormatRaw__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_WRITER_ENABLED)
-extern __typeof (xmlTextWriterWriteVFormatString) xmlTextWriterWriteVFormatString__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlwriter
+#undef xmlTextWriterWriteVFormatString
extern __typeof (xmlTextWriterWriteVFormatString) xmlTextWriterWriteVFormatString __attribute((alias("xmlTextWriterWriteVFormatString__internal_alias")));
+#else
+#ifndef xmlTextWriterWriteVFormatString
+extern __typeof (xmlTextWriterWriteVFormatString) xmlTextWriterWriteVFormatString__internal_alias __attribute((visibility("hidden")));
#define xmlTextWriterWriteVFormatString xmlTextWriterWriteVFormatString__internal_alias
#endif
+#endif
+#endif
-extern __typeof (xmlThrDefBufferAllocScheme) xmlThrDefBufferAllocScheme__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_globals
+#undef xmlThrDefBufferAllocScheme
extern __typeof (xmlThrDefBufferAllocScheme) xmlThrDefBufferAllocScheme __attribute((alias("xmlThrDefBufferAllocScheme__internal_alias")));
+#else
+#ifndef xmlThrDefBufferAllocScheme
+extern __typeof (xmlThrDefBufferAllocScheme) xmlThrDefBufferAllocScheme__internal_alias __attribute((visibility("hidden")));
#define xmlThrDefBufferAllocScheme xmlThrDefBufferAllocScheme__internal_alias
+#endif
+#endif
-extern __typeof (xmlThrDefDefaultBufferSize) xmlThrDefDefaultBufferSize__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_globals
+#undef xmlThrDefDefaultBufferSize
extern __typeof (xmlThrDefDefaultBufferSize) xmlThrDefDefaultBufferSize __attribute((alias("xmlThrDefDefaultBufferSize__internal_alias")));
+#else
+#ifndef xmlThrDefDefaultBufferSize
+extern __typeof (xmlThrDefDefaultBufferSize) xmlThrDefDefaultBufferSize__internal_alias __attribute((visibility("hidden")));
#define xmlThrDefDefaultBufferSize xmlThrDefDefaultBufferSize__internal_alias
+#endif
+#endif
-extern __typeof (xmlThrDefDeregisterNodeDefault) xmlThrDefDeregisterNodeDefault__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_globals
+#undef xmlThrDefDeregisterNodeDefault
extern __typeof (xmlThrDefDeregisterNodeDefault) xmlThrDefDeregisterNodeDefault __attribute((alias("xmlThrDefDeregisterNodeDefault__internal_alias")));
+#else
+#ifndef xmlThrDefDeregisterNodeDefault
+extern __typeof (xmlThrDefDeregisterNodeDefault) xmlThrDefDeregisterNodeDefault__internal_alias __attribute((visibility("hidden")));
#define xmlThrDefDeregisterNodeDefault xmlThrDefDeregisterNodeDefault__internal_alias
+#endif
+#endif
-extern __typeof (xmlThrDefDoValidityCheckingDefaultValue) xmlThrDefDoValidityCheckingDefaultValue__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_globals
+#undef xmlThrDefDoValidityCheckingDefaultValue
extern __typeof (xmlThrDefDoValidityCheckingDefaultValue) xmlThrDefDoValidityCheckingDefaultValue __attribute((alias("xmlThrDefDoValidityCheckingDefaultValue__internal_alias")));
+#else
+#ifndef xmlThrDefDoValidityCheckingDefaultValue
+extern __typeof (xmlThrDefDoValidityCheckingDefaultValue) xmlThrDefDoValidityCheckingDefaultValue__internal_alias __attribute((visibility("hidden")));
#define xmlThrDefDoValidityCheckingDefaultValue xmlThrDefDoValidityCheckingDefaultValue__internal_alias
+#endif
+#endif
-extern __typeof (xmlThrDefGetWarningsDefaultValue) xmlThrDefGetWarningsDefaultValue__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_globals
+#undef xmlThrDefGetWarningsDefaultValue
extern __typeof (xmlThrDefGetWarningsDefaultValue) xmlThrDefGetWarningsDefaultValue __attribute((alias("xmlThrDefGetWarningsDefaultValue__internal_alias")));
+#else
+#ifndef xmlThrDefGetWarningsDefaultValue
+extern __typeof (xmlThrDefGetWarningsDefaultValue) xmlThrDefGetWarningsDefaultValue__internal_alias __attribute((visibility("hidden")));
#define xmlThrDefGetWarningsDefaultValue xmlThrDefGetWarningsDefaultValue__internal_alias
+#endif
+#endif
-extern __typeof (xmlThrDefIndentTreeOutput) xmlThrDefIndentTreeOutput__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_globals
+#undef xmlThrDefIndentTreeOutput
extern __typeof (xmlThrDefIndentTreeOutput) xmlThrDefIndentTreeOutput __attribute((alias("xmlThrDefIndentTreeOutput__internal_alias")));
+#else
+#ifndef xmlThrDefIndentTreeOutput
+extern __typeof (xmlThrDefIndentTreeOutput) xmlThrDefIndentTreeOutput__internal_alias __attribute((visibility("hidden")));
#define xmlThrDefIndentTreeOutput xmlThrDefIndentTreeOutput__internal_alias
+#endif
+#endif
-extern __typeof (xmlThrDefKeepBlanksDefaultValue) xmlThrDefKeepBlanksDefaultValue__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_globals
+#undef xmlThrDefKeepBlanksDefaultValue
extern __typeof (xmlThrDefKeepBlanksDefaultValue) xmlThrDefKeepBlanksDefaultValue __attribute((alias("xmlThrDefKeepBlanksDefaultValue__internal_alias")));
+#else
+#ifndef xmlThrDefKeepBlanksDefaultValue
+extern __typeof (xmlThrDefKeepBlanksDefaultValue) xmlThrDefKeepBlanksDefaultValue__internal_alias __attribute((visibility("hidden")));
#define xmlThrDefKeepBlanksDefaultValue xmlThrDefKeepBlanksDefaultValue__internal_alias
+#endif
+#endif
-extern __typeof (xmlThrDefLineNumbersDefaultValue) xmlThrDefLineNumbersDefaultValue__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_globals
+#undef xmlThrDefLineNumbersDefaultValue
extern __typeof (xmlThrDefLineNumbersDefaultValue) xmlThrDefLineNumbersDefaultValue __attribute((alias("xmlThrDefLineNumbersDefaultValue__internal_alias")));
+#else
+#ifndef xmlThrDefLineNumbersDefaultValue
+extern __typeof (xmlThrDefLineNumbersDefaultValue) xmlThrDefLineNumbersDefaultValue__internal_alias __attribute((visibility("hidden")));
#define xmlThrDefLineNumbersDefaultValue xmlThrDefLineNumbersDefaultValue__internal_alias
+#endif
+#endif
-extern __typeof (xmlThrDefLoadExtDtdDefaultValue) xmlThrDefLoadExtDtdDefaultValue__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_globals
+#undef xmlThrDefLoadExtDtdDefaultValue
extern __typeof (xmlThrDefLoadExtDtdDefaultValue) xmlThrDefLoadExtDtdDefaultValue __attribute((alias("xmlThrDefLoadExtDtdDefaultValue__internal_alias")));
+#else
+#ifndef xmlThrDefLoadExtDtdDefaultValue
+extern __typeof (xmlThrDefLoadExtDtdDefaultValue) xmlThrDefLoadExtDtdDefaultValue__internal_alias __attribute((visibility("hidden")));
#define xmlThrDefLoadExtDtdDefaultValue xmlThrDefLoadExtDtdDefaultValue__internal_alias
+#endif
+#endif
-extern __typeof (xmlThrDefOutputBufferCreateFilenameDefault) xmlThrDefOutputBufferCreateFilenameDefault__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_globals
+#undef xmlThrDefOutputBufferCreateFilenameDefault
extern __typeof (xmlThrDefOutputBufferCreateFilenameDefault) xmlThrDefOutputBufferCreateFilenameDefault __attribute((alias("xmlThrDefOutputBufferCreateFilenameDefault__internal_alias")));
+#else
+#ifndef xmlThrDefOutputBufferCreateFilenameDefault
+extern __typeof (xmlThrDefOutputBufferCreateFilenameDefault) xmlThrDefOutputBufferCreateFilenameDefault__internal_alias __attribute((visibility("hidden")));
#define xmlThrDefOutputBufferCreateFilenameDefault xmlThrDefOutputBufferCreateFilenameDefault__internal_alias
+#endif
+#endif
-extern __typeof (xmlThrDefParserDebugEntities) xmlThrDefParserDebugEntities__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_globals
+#undef xmlThrDefParserDebugEntities
extern __typeof (xmlThrDefParserDebugEntities) xmlThrDefParserDebugEntities __attribute((alias("xmlThrDefParserDebugEntities__internal_alias")));
+#else
+#ifndef xmlThrDefParserDebugEntities
+extern __typeof (xmlThrDefParserDebugEntities) xmlThrDefParserDebugEntities__internal_alias __attribute((visibility("hidden")));
#define xmlThrDefParserDebugEntities xmlThrDefParserDebugEntities__internal_alias
+#endif
+#endif
-extern __typeof (xmlThrDefParserInputBufferCreateFilenameDefault) xmlThrDefParserInputBufferCreateFilenameDefault__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_globals
+#undef xmlThrDefParserInputBufferCreateFilenameDefault
extern __typeof (xmlThrDefParserInputBufferCreateFilenameDefault) xmlThrDefParserInputBufferCreateFilenameDefault __attribute((alias("xmlThrDefParserInputBufferCreateFilenameDefault__internal_alias")));
+#else
+#ifndef xmlThrDefParserInputBufferCreateFilenameDefault
+extern __typeof (xmlThrDefParserInputBufferCreateFilenameDefault) xmlThrDefParserInputBufferCreateFilenameDefault__internal_alias __attribute((visibility("hidden")));
#define xmlThrDefParserInputBufferCreateFilenameDefault xmlThrDefParserInputBufferCreateFilenameDefault__internal_alias
+#endif
+#endif
-extern __typeof (xmlThrDefPedanticParserDefaultValue) xmlThrDefPedanticParserDefaultValue__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_globals
+#undef xmlThrDefPedanticParserDefaultValue
extern __typeof (xmlThrDefPedanticParserDefaultValue) xmlThrDefPedanticParserDefaultValue __attribute((alias("xmlThrDefPedanticParserDefaultValue__internal_alias")));
+#else
+#ifndef xmlThrDefPedanticParserDefaultValue
+extern __typeof (xmlThrDefPedanticParserDefaultValue) xmlThrDefPedanticParserDefaultValue__internal_alias __attribute((visibility("hidden")));
#define xmlThrDefPedanticParserDefaultValue xmlThrDefPedanticParserDefaultValue__internal_alias
+#endif
+#endif
-extern __typeof (xmlThrDefRegisterNodeDefault) xmlThrDefRegisterNodeDefault__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_globals
+#undef xmlThrDefRegisterNodeDefault
extern __typeof (xmlThrDefRegisterNodeDefault) xmlThrDefRegisterNodeDefault __attribute((alias("xmlThrDefRegisterNodeDefault__internal_alias")));
+#else
+#ifndef xmlThrDefRegisterNodeDefault
+extern __typeof (xmlThrDefRegisterNodeDefault) xmlThrDefRegisterNodeDefault__internal_alias __attribute((visibility("hidden")));
#define xmlThrDefRegisterNodeDefault xmlThrDefRegisterNodeDefault__internal_alias
+#endif
+#endif
-extern __typeof (xmlThrDefSaveNoEmptyTags) xmlThrDefSaveNoEmptyTags__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_globals
+#undef xmlThrDefSaveNoEmptyTags
extern __typeof (xmlThrDefSaveNoEmptyTags) xmlThrDefSaveNoEmptyTags __attribute((alias("xmlThrDefSaveNoEmptyTags__internal_alias")));
+#else
+#ifndef xmlThrDefSaveNoEmptyTags
+extern __typeof (xmlThrDefSaveNoEmptyTags) xmlThrDefSaveNoEmptyTags__internal_alias __attribute((visibility("hidden")));
#define xmlThrDefSaveNoEmptyTags xmlThrDefSaveNoEmptyTags__internal_alias
+#endif
+#endif
-extern __typeof (xmlThrDefSetGenericErrorFunc) xmlThrDefSetGenericErrorFunc__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_globals
+#undef xmlThrDefSetGenericErrorFunc
extern __typeof (xmlThrDefSetGenericErrorFunc) xmlThrDefSetGenericErrorFunc __attribute((alias("xmlThrDefSetGenericErrorFunc__internal_alias")));
+#else
+#ifndef xmlThrDefSetGenericErrorFunc
+extern __typeof (xmlThrDefSetGenericErrorFunc) xmlThrDefSetGenericErrorFunc__internal_alias __attribute((visibility("hidden")));
#define xmlThrDefSetGenericErrorFunc xmlThrDefSetGenericErrorFunc__internal_alias
+#endif
+#endif
-extern __typeof (xmlThrDefSetStructuredErrorFunc) xmlThrDefSetStructuredErrorFunc__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_globals
+#undef xmlThrDefSetStructuredErrorFunc
extern __typeof (xmlThrDefSetStructuredErrorFunc) xmlThrDefSetStructuredErrorFunc __attribute((alias("xmlThrDefSetStructuredErrorFunc__internal_alias")));
+#else
+#ifndef xmlThrDefSetStructuredErrorFunc
+extern __typeof (xmlThrDefSetStructuredErrorFunc) xmlThrDefSetStructuredErrorFunc__internal_alias __attribute((visibility("hidden")));
#define xmlThrDefSetStructuredErrorFunc xmlThrDefSetStructuredErrorFunc__internal_alias
+#endif
+#endif
-extern __typeof (xmlThrDefSubstituteEntitiesDefaultValue) xmlThrDefSubstituteEntitiesDefaultValue__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_globals
+#undef xmlThrDefSubstituteEntitiesDefaultValue
extern __typeof (xmlThrDefSubstituteEntitiesDefaultValue) xmlThrDefSubstituteEntitiesDefaultValue __attribute((alias("xmlThrDefSubstituteEntitiesDefaultValue__internal_alias")));
+#else
+#ifndef xmlThrDefSubstituteEntitiesDefaultValue
+extern __typeof (xmlThrDefSubstituteEntitiesDefaultValue) xmlThrDefSubstituteEntitiesDefaultValue__internal_alias __attribute((visibility("hidden")));
#define xmlThrDefSubstituteEntitiesDefaultValue xmlThrDefSubstituteEntitiesDefaultValue__internal_alias
+#endif
+#endif
-extern __typeof (xmlThrDefTreeIndentString) xmlThrDefTreeIndentString__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_globals
+#undef xmlThrDefTreeIndentString
extern __typeof (xmlThrDefTreeIndentString) xmlThrDefTreeIndentString __attribute((alias("xmlThrDefTreeIndentString__internal_alias")));
+#else
+#ifndef xmlThrDefTreeIndentString
+extern __typeof (xmlThrDefTreeIndentString) xmlThrDefTreeIndentString__internal_alias __attribute((visibility("hidden")));
#define xmlThrDefTreeIndentString xmlThrDefTreeIndentString__internal_alias
+#endif
+#endif
#if defined(LIBXML_UNICODE_ENABLED)
-extern __typeof (xmlUCSIsAegeanNumbers) xmlUCSIsAegeanNumbers__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlunicode
+#undef xmlUCSIsAegeanNumbers
extern __typeof (xmlUCSIsAegeanNumbers) xmlUCSIsAegeanNumbers __attribute((alias("xmlUCSIsAegeanNumbers__internal_alias")));
+#else
+#ifndef xmlUCSIsAegeanNumbers
+extern __typeof (xmlUCSIsAegeanNumbers) xmlUCSIsAegeanNumbers__internal_alias __attribute((visibility("hidden")));
#define xmlUCSIsAegeanNumbers xmlUCSIsAegeanNumbers__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_UNICODE_ENABLED)
-extern __typeof (xmlUCSIsAlphabeticPresentationForms) xmlUCSIsAlphabeticPresentationForms__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlunicode
+#undef xmlUCSIsAlphabeticPresentationForms
extern __typeof (xmlUCSIsAlphabeticPresentationForms) xmlUCSIsAlphabeticPresentationForms __attribute((alias("xmlUCSIsAlphabeticPresentationForms__internal_alias")));
+#else
+#ifndef xmlUCSIsAlphabeticPresentationForms
+extern __typeof (xmlUCSIsAlphabeticPresentationForms) xmlUCSIsAlphabeticPresentationForms__internal_alias __attribute((visibility("hidden")));
#define xmlUCSIsAlphabeticPresentationForms xmlUCSIsAlphabeticPresentationForms__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_UNICODE_ENABLED)
-extern __typeof (xmlUCSIsArabic) xmlUCSIsArabic__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlunicode
+#undef xmlUCSIsArabic
extern __typeof (xmlUCSIsArabic) xmlUCSIsArabic __attribute((alias("xmlUCSIsArabic__internal_alias")));
+#else
+#ifndef xmlUCSIsArabic
+extern __typeof (xmlUCSIsArabic) xmlUCSIsArabic__internal_alias __attribute((visibility("hidden")));
#define xmlUCSIsArabic xmlUCSIsArabic__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_UNICODE_ENABLED)
-extern __typeof (xmlUCSIsArabicPresentationFormsA) xmlUCSIsArabicPresentationFormsA__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlunicode
+#undef xmlUCSIsArabicPresentationFormsA
extern __typeof (xmlUCSIsArabicPresentationFormsA) xmlUCSIsArabicPresentationFormsA __attribute((alias("xmlUCSIsArabicPresentationFormsA__internal_alias")));
+#else
+#ifndef xmlUCSIsArabicPresentationFormsA
+extern __typeof (xmlUCSIsArabicPresentationFormsA) xmlUCSIsArabicPresentationFormsA__internal_alias __attribute((visibility("hidden")));
#define xmlUCSIsArabicPresentationFormsA xmlUCSIsArabicPresentationFormsA__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_UNICODE_ENABLED)
-extern __typeof (xmlUCSIsArabicPresentationFormsB) xmlUCSIsArabicPresentationFormsB__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlunicode
+#undef xmlUCSIsArabicPresentationFormsB
extern __typeof (xmlUCSIsArabicPresentationFormsB) xmlUCSIsArabicPresentationFormsB __attribute((alias("xmlUCSIsArabicPresentationFormsB__internal_alias")));
+#else
+#ifndef xmlUCSIsArabicPresentationFormsB
+extern __typeof (xmlUCSIsArabicPresentationFormsB) xmlUCSIsArabicPresentationFormsB__internal_alias __attribute((visibility("hidden")));
#define xmlUCSIsArabicPresentationFormsB xmlUCSIsArabicPresentationFormsB__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_UNICODE_ENABLED)
-extern __typeof (xmlUCSIsArmenian) xmlUCSIsArmenian__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlunicode
+#undef xmlUCSIsArmenian
extern __typeof (xmlUCSIsArmenian) xmlUCSIsArmenian __attribute((alias("xmlUCSIsArmenian__internal_alias")));
+#else
+#ifndef xmlUCSIsArmenian
+extern __typeof (xmlUCSIsArmenian) xmlUCSIsArmenian__internal_alias __attribute((visibility("hidden")));
#define xmlUCSIsArmenian xmlUCSIsArmenian__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_UNICODE_ENABLED)
-extern __typeof (xmlUCSIsArrows) xmlUCSIsArrows__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlunicode
+#undef xmlUCSIsArrows
extern __typeof (xmlUCSIsArrows) xmlUCSIsArrows __attribute((alias("xmlUCSIsArrows__internal_alias")));
+#else
+#ifndef xmlUCSIsArrows
+extern __typeof (xmlUCSIsArrows) xmlUCSIsArrows__internal_alias __attribute((visibility("hidden")));
#define xmlUCSIsArrows xmlUCSIsArrows__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_UNICODE_ENABLED)
-extern __typeof (xmlUCSIsBasicLatin) xmlUCSIsBasicLatin__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlunicode
+#undef xmlUCSIsBasicLatin
extern __typeof (xmlUCSIsBasicLatin) xmlUCSIsBasicLatin __attribute((alias("xmlUCSIsBasicLatin__internal_alias")));
+#else
+#ifndef xmlUCSIsBasicLatin
+extern __typeof (xmlUCSIsBasicLatin) xmlUCSIsBasicLatin__internal_alias __attribute((visibility("hidden")));
#define xmlUCSIsBasicLatin xmlUCSIsBasicLatin__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_UNICODE_ENABLED)
-extern __typeof (xmlUCSIsBengali) xmlUCSIsBengali__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlunicode
+#undef xmlUCSIsBengali
extern __typeof (xmlUCSIsBengali) xmlUCSIsBengali __attribute((alias("xmlUCSIsBengali__internal_alias")));
+#else
+#ifndef xmlUCSIsBengali
+extern __typeof (xmlUCSIsBengali) xmlUCSIsBengali__internal_alias __attribute((visibility("hidden")));
#define xmlUCSIsBengali xmlUCSIsBengali__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_UNICODE_ENABLED)
-extern __typeof (xmlUCSIsBlock) xmlUCSIsBlock__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlunicode
+#undef xmlUCSIsBlock
extern __typeof (xmlUCSIsBlock) xmlUCSIsBlock __attribute((alias("xmlUCSIsBlock__internal_alias")));
+#else
+#ifndef xmlUCSIsBlock
+extern __typeof (xmlUCSIsBlock) xmlUCSIsBlock__internal_alias __attribute((visibility("hidden")));
#define xmlUCSIsBlock xmlUCSIsBlock__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_UNICODE_ENABLED)
-extern __typeof (xmlUCSIsBlockElements) xmlUCSIsBlockElements__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlunicode
+#undef xmlUCSIsBlockElements
extern __typeof (xmlUCSIsBlockElements) xmlUCSIsBlockElements __attribute((alias("xmlUCSIsBlockElements__internal_alias")));
+#else
+#ifndef xmlUCSIsBlockElements
+extern __typeof (xmlUCSIsBlockElements) xmlUCSIsBlockElements__internal_alias __attribute((visibility("hidden")));
#define xmlUCSIsBlockElements xmlUCSIsBlockElements__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_UNICODE_ENABLED)
-extern __typeof (xmlUCSIsBopomofo) xmlUCSIsBopomofo__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlunicode
+#undef xmlUCSIsBopomofo
extern __typeof (xmlUCSIsBopomofo) xmlUCSIsBopomofo __attribute((alias("xmlUCSIsBopomofo__internal_alias")));
+#else
+#ifndef xmlUCSIsBopomofo
+extern __typeof (xmlUCSIsBopomofo) xmlUCSIsBopomofo__internal_alias __attribute((visibility("hidden")));
#define xmlUCSIsBopomofo xmlUCSIsBopomofo__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_UNICODE_ENABLED)
-extern __typeof (xmlUCSIsBopomofoExtended) xmlUCSIsBopomofoExtended__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlunicode
+#undef xmlUCSIsBopomofoExtended
extern __typeof (xmlUCSIsBopomofoExtended) xmlUCSIsBopomofoExtended __attribute((alias("xmlUCSIsBopomofoExtended__internal_alias")));
+#else
+#ifndef xmlUCSIsBopomofoExtended
+extern __typeof (xmlUCSIsBopomofoExtended) xmlUCSIsBopomofoExtended__internal_alias __attribute((visibility("hidden")));
#define xmlUCSIsBopomofoExtended xmlUCSIsBopomofoExtended__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_UNICODE_ENABLED)
-extern __typeof (xmlUCSIsBoxDrawing) xmlUCSIsBoxDrawing__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlunicode
+#undef xmlUCSIsBoxDrawing
extern __typeof (xmlUCSIsBoxDrawing) xmlUCSIsBoxDrawing __attribute((alias("xmlUCSIsBoxDrawing__internal_alias")));
+#else
+#ifndef xmlUCSIsBoxDrawing
+extern __typeof (xmlUCSIsBoxDrawing) xmlUCSIsBoxDrawing__internal_alias __attribute((visibility("hidden")));
#define xmlUCSIsBoxDrawing xmlUCSIsBoxDrawing__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_UNICODE_ENABLED)
-extern __typeof (xmlUCSIsBraillePatterns) xmlUCSIsBraillePatterns__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlunicode
+#undef xmlUCSIsBraillePatterns
extern __typeof (xmlUCSIsBraillePatterns) xmlUCSIsBraillePatterns __attribute((alias("xmlUCSIsBraillePatterns__internal_alias")));
+#else
+#ifndef xmlUCSIsBraillePatterns
+extern __typeof (xmlUCSIsBraillePatterns) xmlUCSIsBraillePatterns__internal_alias __attribute((visibility("hidden")));
#define xmlUCSIsBraillePatterns xmlUCSIsBraillePatterns__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_UNICODE_ENABLED)
-extern __typeof (xmlUCSIsBuhid) xmlUCSIsBuhid__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlunicode
+#undef xmlUCSIsBuhid
extern __typeof (xmlUCSIsBuhid) xmlUCSIsBuhid __attribute((alias("xmlUCSIsBuhid__internal_alias")));
+#else
+#ifndef xmlUCSIsBuhid
+extern __typeof (xmlUCSIsBuhid) xmlUCSIsBuhid__internal_alias __attribute((visibility("hidden")));
#define xmlUCSIsBuhid xmlUCSIsBuhid__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_UNICODE_ENABLED)
-extern __typeof (xmlUCSIsByzantineMusicalSymbols) xmlUCSIsByzantineMusicalSymbols__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlunicode
+#undef xmlUCSIsByzantineMusicalSymbols
extern __typeof (xmlUCSIsByzantineMusicalSymbols) xmlUCSIsByzantineMusicalSymbols __attribute((alias("xmlUCSIsByzantineMusicalSymbols__internal_alias")));
+#else
+#ifndef xmlUCSIsByzantineMusicalSymbols
+extern __typeof (xmlUCSIsByzantineMusicalSymbols) xmlUCSIsByzantineMusicalSymbols__internal_alias __attribute((visibility("hidden")));
#define xmlUCSIsByzantineMusicalSymbols xmlUCSIsByzantineMusicalSymbols__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_UNICODE_ENABLED)
-extern __typeof (xmlUCSIsCJKCompatibility) xmlUCSIsCJKCompatibility__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlunicode
+#undef xmlUCSIsCJKCompatibility
extern __typeof (xmlUCSIsCJKCompatibility) xmlUCSIsCJKCompatibility __attribute((alias("xmlUCSIsCJKCompatibility__internal_alias")));
+#else
+#ifndef xmlUCSIsCJKCompatibility
+extern __typeof (xmlUCSIsCJKCompatibility) xmlUCSIsCJKCompatibility__internal_alias __attribute((visibility("hidden")));
#define xmlUCSIsCJKCompatibility xmlUCSIsCJKCompatibility__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_UNICODE_ENABLED)
-extern __typeof (xmlUCSIsCJKCompatibilityForms) xmlUCSIsCJKCompatibilityForms__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlunicode
+#undef xmlUCSIsCJKCompatibilityForms
extern __typeof (xmlUCSIsCJKCompatibilityForms) xmlUCSIsCJKCompatibilityForms __attribute((alias("xmlUCSIsCJKCompatibilityForms__internal_alias")));
+#else
+#ifndef xmlUCSIsCJKCompatibilityForms
+extern __typeof (xmlUCSIsCJKCompatibilityForms) xmlUCSIsCJKCompatibilityForms__internal_alias __attribute((visibility("hidden")));
#define xmlUCSIsCJKCompatibilityForms xmlUCSIsCJKCompatibilityForms__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_UNICODE_ENABLED)
-extern __typeof (xmlUCSIsCJKCompatibilityIdeographs) xmlUCSIsCJKCompatibilityIdeographs__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlunicode
+#undef xmlUCSIsCJKCompatibilityIdeographs
extern __typeof (xmlUCSIsCJKCompatibilityIdeographs) xmlUCSIsCJKCompatibilityIdeographs __attribute((alias("xmlUCSIsCJKCompatibilityIdeographs__internal_alias")));
+#else
+#ifndef xmlUCSIsCJKCompatibilityIdeographs
+extern __typeof (xmlUCSIsCJKCompatibilityIdeographs) xmlUCSIsCJKCompatibilityIdeographs__internal_alias __attribute((visibility("hidden")));
#define xmlUCSIsCJKCompatibilityIdeographs xmlUCSIsCJKCompatibilityIdeographs__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_UNICODE_ENABLED)
-extern __typeof (xmlUCSIsCJKCompatibilityIdeographsSupplement) xmlUCSIsCJKCompatibilityIdeographsSupplement__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlunicode
+#undef xmlUCSIsCJKCompatibilityIdeographsSupplement
extern __typeof (xmlUCSIsCJKCompatibilityIdeographsSupplement) xmlUCSIsCJKCompatibilityIdeographsSupplement __attribute((alias("xmlUCSIsCJKCompatibilityIdeographsSupplement__internal_alias")));
+#else
+#ifndef xmlUCSIsCJKCompatibilityIdeographsSupplement
+extern __typeof (xmlUCSIsCJKCompatibilityIdeographsSupplement) xmlUCSIsCJKCompatibilityIdeographsSupplement__internal_alias __attribute((visibility("hidden")));
#define xmlUCSIsCJKCompatibilityIdeographsSupplement xmlUCSIsCJKCompatibilityIdeographsSupplement__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_UNICODE_ENABLED)
-extern __typeof (xmlUCSIsCJKRadicalsSupplement) xmlUCSIsCJKRadicalsSupplement__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlunicode
+#undef xmlUCSIsCJKRadicalsSupplement
extern __typeof (xmlUCSIsCJKRadicalsSupplement) xmlUCSIsCJKRadicalsSupplement __attribute((alias("xmlUCSIsCJKRadicalsSupplement__internal_alias")));
+#else
+#ifndef xmlUCSIsCJKRadicalsSupplement
+extern __typeof (xmlUCSIsCJKRadicalsSupplement) xmlUCSIsCJKRadicalsSupplement__internal_alias __attribute((visibility("hidden")));
#define xmlUCSIsCJKRadicalsSupplement xmlUCSIsCJKRadicalsSupplement__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_UNICODE_ENABLED)
-extern __typeof (xmlUCSIsCJKSymbolsandPunctuation) xmlUCSIsCJKSymbolsandPunctuation__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlunicode
+#undef xmlUCSIsCJKSymbolsandPunctuation
extern __typeof (xmlUCSIsCJKSymbolsandPunctuation) xmlUCSIsCJKSymbolsandPunctuation __attribute((alias("xmlUCSIsCJKSymbolsandPunctuation__internal_alias")));
+#else
+#ifndef xmlUCSIsCJKSymbolsandPunctuation
+extern __typeof (xmlUCSIsCJKSymbolsandPunctuation) xmlUCSIsCJKSymbolsandPunctuation__internal_alias __attribute((visibility("hidden")));
#define xmlUCSIsCJKSymbolsandPunctuation xmlUCSIsCJKSymbolsandPunctuation__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_UNICODE_ENABLED)
-extern __typeof (xmlUCSIsCJKUnifiedIdeographs) xmlUCSIsCJKUnifiedIdeographs__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlunicode
+#undef xmlUCSIsCJKUnifiedIdeographs
extern __typeof (xmlUCSIsCJKUnifiedIdeographs) xmlUCSIsCJKUnifiedIdeographs __attribute((alias("xmlUCSIsCJKUnifiedIdeographs__internal_alias")));
+#else
+#ifndef xmlUCSIsCJKUnifiedIdeographs
+extern __typeof (xmlUCSIsCJKUnifiedIdeographs) xmlUCSIsCJKUnifiedIdeographs__internal_alias __attribute((visibility("hidden")));
#define xmlUCSIsCJKUnifiedIdeographs xmlUCSIsCJKUnifiedIdeographs__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_UNICODE_ENABLED)
-extern __typeof (xmlUCSIsCJKUnifiedIdeographsExtensionA) xmlUCSIsCJKUnifiedIdeographsExtensionA__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlunicode
+#undef xmlUCSIsCJKUnifiedIdeographsExtensionA
extern __typeof (xmlUCSIsCJKUnifiedIdeographsExtensionA) xmlUCSIsCJKUnifiedIdeographsExtensionA __attribute((alias("xmlUCSIsCJKUnifiedIdeographsExtensionA__internal_alias")));
+#else
+#ifndef xmlUCSIsCJKUnifiedIdeographsExtensionA
+extern __typeof (xmlUCSIsCJKUnifiedIdeographsExtensionA) xmlUCSIsCJKUnifiedIdeographsExtensionA__internal_alias __attribute((visibility("hidden")));
#define xmlUCSIsCJKUnifiedIdeographsExtensionA xmlUCSIsCJKUnifiedIdeographsExtensionA__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_UNICODE_ENABLED)
-extern __typeof (xmlUCSIsCJKUnifiedIdeographsExtensionB) xmlUCSIsCJKUnifiedIdeographsExtensionB__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlunicode
+#undef xmlUCSIsCJKUnifiedIdeographsExtensionB
extern __typeof (xmlUCSIsCJKUnifiedIdeographsExtensionB) xmlUCSIsCJKUnifiedIdeographsExtensionB __attribute((alias("xmlUCSIsCJKUnifiedIdeographsExtensionB__internal_alias")));
+#else
+#ifndef xmlUCSIsCJKUnifiedIdeographsExtensionB
+extern __typeof (xmlUCSIsCJKUnifiedIdeographsExtensionB) xmlUCSIsCJKUnifiedIdeographsExtensionB__internal_alias __attribute((visibility("hidden")));
#define xmlUCSIsCJKUnifiedIdeographsExtensionB xmlUCSIsCJKUnifiedIdeographsExtensionB__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_UNICODE_ENABLED)
-extern __typeof (xmlUCSIsCat) xmlUCSIsCat__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlunicode
+#undef xmlUCSIsCat
extern __typeof (xmlUCSIsCat) xmlUCSIsCat __attribute((alias("xmlUCSIsCat__internal_alias")));
+#else
+#ifndef xmlUCSIsCat
+extern __typeof (xmlUCSIsCat) xmlUCSIsCat__internal_alias __attribute((visibility("hidden")));
#define xmlUCSIsCat xmlUCSIsCat__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_UNICODE_ENABLED)
-extern __typeof (xmlUCSIsCatC) xmlUCSIsCatC__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlunicode
+#undef xmlUCSIsCatC
extern __typeof (xmlUCSIsCatC) xmlUCSIsCatC __attribute((alias("xmlUCSIsCatC__internal_alias")));
+#else
+#ifndef xmlUCSIsCatC
+extern __typeof (xmlUCSIsCatC) xmlUCSIsCatC__internal_alias __attribute((visibility("hidden")));
#define xmlUCSIsCatC xmlUCSIsCatC__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_UNICODE_ENABLED)
-extern __typeof (xmlUCSIsCatCc) xmlUCSIsCatCc__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlunicode
+#undef xmlUCSIsCatCc
extern __typeof (xmlUCSIsCatCc) xmlUCSIsCatCc __attribute((alias("xmlUCSIsCatCc__internal_alias")));
+#else
+#ifndef xmlUCSIsCatCc
+extern __typeof (xmlUCSIsCatCc) xmlUCSIsCatCc__internal_alias __attribute((visibility("hidden")));
#define xmlUCSIsCatCc xmlUCSIsCatCc__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_UNICODE_ENABLED)
-extern __typeof (xmlUCSIsCatCf) xmlUCSIsCatCf__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlunicode
+#undef xmlUCSIsCatCf
extern __typeof (xmlUCSIsCatCf) xmlUCSIsCatCf __attribute((alias("xmlUCSIsCatCf__internal_alias")));
+#else
+#ifndef xmlUCSIsCatCf
+extern __typeof (xmlUCSIsCatCf) xmlUCSIsCatCf__internal_alias __attribute((visibility("hidden")));
#define xmlUCSIsCatCf xmlUCSIsCatCf__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_UNICODE_ENABLED)
-extern __typeof (xmlUCSIsCatCo) xmlUCSIsCatCo__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlunicode
+#undef xmlUCSIsCatCo
extern __typeof (xmlUCSIsCatCo) xmlUCSIsCatCo __attribute((alias("xmlUCSIsCatCo__internal_alias")));
+#else
+#ifndef xmlUCSIsCatCo
+extern __typeof (xmlUCSIsCatCo) xmlUCSIsCatCo__internal_alias __attribute((visibility("hidden")));
#define xmlUCSIsCatCo xmlUCSIsCatCo__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_UNICODE_ENABLED)
-extern __typeof (xmlUCSIsCatCs) xmlUCSIsCatCs__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlunicode
+#undef xmlUCSIsCatCs
extern __typeof (xmlUCSIsCatCs) xmlUCSIsCatCs __attribute((alias("xmlUCSIsCatCs__internal_alias")));
+#else
+#ifndef xmlUCSIsCatCs
+extern __typeof (xmlUCSIsCatCs) xmlUCSIsCatCs__internal_alias __attribute((visibility("hidden")));
#define xmlUCSIsCatCs xmlUCSIsCatCs__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_UNICODE_ENABLED)
-extern __typeof (xmlUCSIsCatL) xmlUCSIsCatL__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlunicode
+#undef xmlUCSIsCatL
extern __typeof (xmlUCSIsCatL) xmlUCSIsCatL __attribute((alias("xmlUCSIsCatL__internal_alias")));
+#else
+#ifndef xmlUCSIsCatL
+extern __typeof (xmlUCSIsCatL) xmlUCSIsCatL__internal_alias __attribute((visibility("hidden")));
#define xmlUCSIsCatL xmlUCSIsCatL__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_UNICODE_ENABLED)
-extern __typeof (xmlUCSIsCatLl) xmlUCSIsCatLl__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlunicode
+#undef xmlUCSIsCatLl
extern __typeof (xmlUCSIsCatLl) xmlUCSIsCatLl __attribute((alias("xmlUCSIsCatLl__internal_alias")));
+#else
+#ifndef xmlUCSIsCatLl
+extern __typeof (xmlUCSIsCatLl) xmlUCSIsCatLl__internal_alias __attribute((visibility("hidden")));
#define xmlUCSIsCatLl xmlUCSIsCatLl__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_UNICODE_ENABLED)
-extern __typeof (xmlUCSIsCatLm) xmlUCSIsCatLm__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlunicode
+#undef xmlUCSIsCatLm
extern __typeof (xmlUCSIsCatLm) xmlUCSIsCatLm __attribute((alias("xmlUCSIsCatLm__internal_alias")));
+#else
+#ifndef xmlUCSIsCatLm
+extern __typeof (xmlUCSIsCatLm) xmlUCSIsCatLm__internal_alias __attribute((visibility("hidden")));
#define xmlUCSIsCatLm xmlUCSIsCatLm__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_UNICODE_ENABLED)
-extern __typeof (xmlUCSIsCatLo) xmlUCSIsCatLo__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlunicode
+#undef xmlUCSIsCatLo
extern __typeof (xmlUCSIsCatLo) xmlUCSIsCatLo __attribute((alias("xmlUCSIsCatLo__internal_alias")));
+#else
+#ifndef xmlUCSIsCatLo
+extern __typeof (xmlUCSIsCatLo) xmlUCSIsCatLo__internal_alias __attribute((visibility("hidden")));
#define xmlUCSIsCatLo xmlUCSIsCatLo__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_UNICODE_ENABLED)
-extern __typeof (xmlUCSIsCatLt) xmlUCSIsCatLt__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlunicode
+#undef xmlUCSIsCatLt
extern __typeof (xmlUCSIsCatLt) xmlUCSIsCatLt __attribute((alias("xmlUCSIsCatLt__internal_alias")));
+#else
+#ifndef xmlUCSIsCatLt
+extern __typeof (xmlUCSIsCatLt) xmlUCSIsCatLt__internal_alias __attribute((visibility("hidden")));
#define xmlUCSIsCatLt xmlUCSIsCatLt__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_UNICODE_ENABLED)
-extern __typeof (xmlUCSIsCatLu) xmlUCSIsCatLu__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlunicode
+#undef xmlUCSIsCatLu
extern __typeof (xmlUCSIsCatLu) xmlUCSIsCatLu __attribute((alias("xmlUCSIsCatLu__internal_alias")));
+#else
+#ifndef xmlUCSIsCatLu
+extern __typeof (xmlUCSIsCatLu) xmlUCSIsCatLu__internal_alias __attribute((visibility("hidden")));
#define xmlUCSIsCatLu xmlUCSIsCatLu__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_UNICODE_ENABLED)
-extern __typeof (xmlUCSIsCatM) xmlUCSIsCatM__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlunicode
+#undef xmlUCSIsCatM
extern __typeof (xmlUCSIsCatM) xmlUCSIsCatM __attribute((alias("xmlUCSIsCatM__internal_alias")));
+#else
+#ifndef xmlUCSIsCatM
+extern __typeof (xmlUCSIsCatM) xmlUCSIsCatM__internal_alias __attribute((visibility("hidden")));
#define xmlUCSIsCatM xmlUCSIsCatM__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_UNICODE_ENABLED)
-extern __typeof (xmlUCSIsCatMc) xmlUCSIsCatMc__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlunicode
+#undef xmlUCSIsCatMc
extern __typeof (xmlUCSIsCatMc) xmlUCSIsCatMc __attribute((alias("xmlUCSIsCatMc__internal_alias")));
+#else
+#ifndef xmlUCSIsCatMc
+extern __typeof (xmlUCSIsCatMc) xmlUCSIsCatMc__internal_alias __attribute((visibility("hidden")));
#define xmlUCSIsCatMc xmlUCSIsCatMc__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_UNICODE_ENABLED)
-extern __typeof (xmlUCSIsCatMe) xmlUCSIsCatMe__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlunicode
+#undef xmlUCSIsCatMe
extern __typeof (xmlUCSIsCatMe) xmlUCSIsCatMe __attribute((alias("xmlUCSIsCatMe__internal_alias")));
+#else
+#ifndef xmlUCSIsCatMe
+extern __typeof (xmlUCSIsCatMe) xmlUCSIsCatMe__internal_alias __attribute((visibility("hidden")));
#define xmlUCSIsCatMe xmlUCSIsCatMe__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_UNICODE_ENABLED)
-extern __typeof (xmlUCSIsCatMn) xmlUCSIsCatMn__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlunicode
+#undef xmlUCSIsCatMn
extern __typeof (xmlUCSIsCatMn) xmlUCSIsCatMn __attribute((alias("xmlUCSIsCatMn__internal_alias")));
+#else
+#ifndef xmlUCSIsCatMn
+extern __typeof (xmlUCSIsCatMn) xmlUCSIsCatMn__internal_alias __attribute((visibility("hidden")));
#define xmlUCSIsCatMn xmlUCSIsCatMn__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_UNICODE_ENABLED)
-extern __typeof (xmlUCSIsCatN) xmlUCSIsCatN__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlunicode
+#undef xmlUCSIsCatN
extern __typeof (xmlUCSIsCatN) xmlUCSIsCatN __attribute((alias("xmlUCSIsCatN__internal_alias")));
+#else
+#ifndef xmlUCSIsCatN
+extern __typeof (xmlUCSIsCatN) xmlUCSIsCatN__internal_alias __attribute((visibility("hidden")));
#define xmlUCSIsCatN xmlUCSIsCatN__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_UNICODE_ENABLED)
-extern __typeof (xmlUCSIsCatNd) xmlUCSIsCatNd__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlunicode
+#undef xmlUCSIsCatNd
extern __typeof (xmlUCSIsCatNd) xmlUCSIsCatNd __attribute((alias("xmlUCSIsCatNd__internal_alias")));
+#else
+#ifndef xmlUCSIsCatNd
+extern __typeof (xmlUCSIsCatNd) xmlUCSIsCatNd__internal_alias __attribute((visibility("hidden")));
#define xmlUCSIsCatNd xmlUCSIsCatNd__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_UNICODE_ENABLED)
-extern __typeof (xmlUCSIsCatNl) xmlUCSIsCatNl__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlunicode
+#undef xmlUCSIsCatNl
extern __typeof (xmlUCSIsCatNl) xmlUCSIsCatNl __attribute((alias("xmlUCSIsCatNl__internal_alias")));
+#else
+#ifndef xmlUCSIsCatNl
+extern __typeof (xmlUCSIsCatNl) xmlUCSIsCatNl__internal_alias __attribute((visibility("hidden")));
#define xmlUCSIsCatNl xmlUCSIsCatNl__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_UNICODE_ENABLED)
-extern __typeof (xmlUCSIsCatNo) xmlUCSIsCatNo__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlunicode
+#undef xmlUCSIsCatNo
extern __typeof (xmlUCSIsCatNo) xmlUCSIsCatNo __attribute((alias("xmlUCSIsCatNo__internal_alias")));
+#else
+#ifndef xmlUCSIsCatNo
+extern __typeof (xmlUCSIsCatNo) xmlUCSIsCatNo__internal_alias __attribute((visibility("hidden")));
#define xmlUCSIsCatNo xmlUCSIsCatNo__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_UNICODE_ENABLED)
-extern __typeof (xmlUCSIsCatP) xmlUCSIsCatP__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlunicode
+#undef xmlUCSIsCatP
extern __typeof (xmlUCSIsCatP) xmlUCSIsCatP __attribute((alias("xmlUCSIsCatP__internal_alias")));
+#else
+#ifndef xmlUCSIsCatP
+extern __typeof (xmlUCSIsCatP) xmlUCSIsCatP__internal_alias __attribute((visibility("hidden")));
#define xmlUCSIsCatP xmlUCSIsCatP__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_UNICODE_ENABLED)
-extern __typeof (xmlUCSIsCatPc) xmlUCSIsCatPc__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlunicode
+#undef xmlUCSIsCatPc
extern __typeof (xmlUCSIsCatPc) xmlUCSIsCatPc __attribute((alias("xmlUCSIsCatPc__internal_alias")));
+#else
+#ifndef xmlUCSIsCatPc
+extern __typeof (xmlUCSIsCatPc) xmlUCSIsCatPc__internal_alias __attribute((visibility("hidden")));
#define xmlUCSIsCatPc xmlUCSIsCatPc__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_UNICODE_ENABLED)
-extern __typeof (xmlUCSIsCatPd) xmlUCSIsCatPd__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlunicode
+#undef xmlUCSIsCatPd
extern __typeof (xmlUCSIsCatPd) xmlUCSIsCatPd __attribute((alias("xmlUCSIsCatPd__internal_alias")));
+#else
+#ifndef xmlUCSIsCatPd
+extern __typeof (xmlUCSIsCatPd) xmlUCSIsCatPd__internal_alias __attribute((visibility("hidden")));
#define xmlUCSIsCatPd xmlUCSIsCatPd__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_UNICODE_ENABLED)
-extern __typeof (xmlUCSIsCatPe) xmlUCSIsCatPe__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlunicode
+#undef xmlUCSIsCatPe
extern __typeof (xmlUCSIsCatPe) xmlUCSIsCatPe __attribute((alias("xmlUCSIsCatPe__internal_alias")));
+#else
+#ifndef xmlUCSIsCatPe
+extern __typeof (xmlUCSIsCatPe) xmlUCSIsCatPe__internal_alias __attribute((visibility("hidden")));
#define xmlUCSIsCatPe xmlUCSIsCatPe__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_UNICODE_ENABLED)
-extern __typeof (xmlUCSIsCatPf) xmlUCSIsCatPf__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlunicode
+#undef xmlUCSIsCatPf
extern __typeof (xmlUCSIsCatPf) xmlUCSIsCatPf __attribute((alias("xmlUCSIsCatPf__internal_alias")));
+#else
+#ifndef xmlUCSIsCatPf
+extern __typeof (xmlUCSIsCatPf) xmlUCSIsCatPf__internal_alias __attribute((visibility("hidden")));
#define xmlUCSIsCatPf xmlUCSIsCatPf__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_UNICODE_ENABLED)
-extern __typeof (xmlUCSIsCatPi) xmlUCSIsCatPi__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlunicode
+#undef xmlUCSIsCatPi
extern __typeof (xmlUCSIsCatPi) xmlUCSIsCatPi __attribute((alias("xmlUCSIsCatPi__internal_alias")));
+#else
+#ifndef xmlUCSIsCatPi
+extern __typeof (xmlUCSIsCatPi) xmlUCSIsCatPi__internal_alias __attribute((visibility("hidden")));
#define xmlUCSIsCatPi xmlUCSIsCatPi__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_UNICODE_ENABLED)
-extern __typeof (xmlUCSIsCatPo) xmlUCSIsCatPo__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlunicode
+#undef xmlUCSIsCatPo
extern __typeof (xmlUCSIsCatPo) xmlUCSIsCatPo __attribute((alias("xmlUCSIsCatPo__internal_alias")));
+#else
+#ifndef xmlUCSIsCatPo
+extern __typeof (xmlUCSIsCatPo) xmlUCSIsCatPo__internal_alias __attribute((visibility("hidden")));
#define xmlUCSIsCatPo xmlUCSIsCatPo__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_UNICODE_ENABLED)
-extern __typeof (xmlUCSIsCatPs) xmlUCSIsCatPs__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlunicode
+#undef xmlUCSIsCatPs
extern __typeof (xmlUCSIsCatPs) xmlUCSIsCatPs __attribute((alias("xmlUCSIsCatPs__internal_alias")));
+#else
+#ifndef xmlUCSIsCatPs
+extern __typeof (xmlUCSIsCatPs) xmlUCSIsCatPs__internal_alias __attribute((visibility("hidden")));
#define xmlUCSIsCatPs xmlUCSIsCatPs__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_UNICODE_ENABLED)
-extern __typeof (xmlUCSIsCatS) xmlUCSIsCatS__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlunicode
+#undef xmlUCSIsCatS
extern __typeof (xmlUCSIsCatS) xmlUCSIsCatS __attribute((alias("xmlUCSIsCatS__internal_alias")));
+#else
+#ifndef xmlUCSIsCatS
+extern __typeof (xmlUCSIsCatS) xmlUCSIsCatS__internal_alias __attribute((visibility("hidden")));
#define xmlUCSIsCatS xmlUCSIsCatS__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_UNICODE_ENABLED)
-extern __typeof (xmlUCSIsCatSc) xmlUCSIsCatSc__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlunicode
+#undef xmlUCSIsCatSc
extern __typeof (xmlUCSIsCatSc) xmlUCSIsCatSc __attribute((alias("xmlUCSIsCatSc__internal_alias")));
+#else
+#ifndef xmlUCSIsCatSc
+extern __typeof (xmlUCSIsCatSc) xmlUCSIsCatSc__internal_alias __attribute((visibility("hidden")));
#define xmlUCSIsCatSc xmlUCSIsCatSc__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_UNICODE_ENABLED)
-extern __typeof (xmlUCSIsCatSk) xmlUCSIsCatSk__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlunicode
+#undef xmlUCSIsCatSk
extern __typeof (xmlUCSIsCatSk) xmlUCSIsCatSk __attribute((alias("xmlUCSIsCatSk__internal_alias")));
+#else
+#ifndef xmlUCSIsCatSk
+extern __typeof (xmlUCSIsCatSk) xmlUCSIsCatSk__internal_alias __attribute((visibility("hidden")));
#define xmlUCSIsCatSk xmlUCSIsCatSk__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_UNICODE_ENABLED)
-extern __typeof (xmlUCSIsCatSm) xmlUCSIsCatSm__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlunicode
+#undef xmlUCSIsCatSm
extern __typeof (xmlUCSIsCatSm) xmlUCSIsCatSm __attribute((alias("xmlUCSIsCatSm__internal_alias")));
+#else
+#ifndef xmlUCSIsCatSm
+extern __typeof (xmlUCSIsCatSm) xmlUCSIsCatSm__internal_alias __attribute((visibility("hidden")));
#define xmlUCSIsCatSm xmlUCSIsCatSm__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_UNICODE_ENABLED)
-extern __typeof (xmlUCSIsCatSo) xmlUCSIsCatSo__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlunicode
+#undef xmlUCSIsCatSo
extern __typeof (xmlUCSIsCatSo) xmlUCSIsCatSo __attribute((alias("xmlUCSIsCatSo__internal_alias")));
+#else
+#ifndef xmlUCSIsCatSo
+extern __typeof (xmlUCSIsCatSo) xmlUCSIsCatSo__internal_alias __attribute((visibility("hidden")));
#define xmlUCSIsCatSo xmlUCSIsCatSo__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_UNICODE_ENABLED)
-extern __typeof (xmlUCSIsCatZ) xmlUCSIsCatZ__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlunicode
+#undef xmlUCSIsCatZ
extern __typeof (xmlUCSIsCatZ) xmlUCSIsCatZ __attribute((alias("xmlUCSIsCatZ__internal_alias")));
+#else
+#ifndef xmlUCSIsCatZ
+extern __typeof (xmlUCSIsCatZ) xmlUCSIsCatZ__internal_alias __attribute((visibility("hidden")));
#define xmlUCSIsCatZ xmlUCSIsCatZ__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_UNICODE_ENABLED)
-extern __typeof (xmlUCSIsCatZl) xmlUCSIsCatZl__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlunicode
+#undef xmlUCSIsCatZl
extern __typeof (xmlUCSIsCatZl) xmlUCSIsCatZl __attribute((alias("xmlUCSIsCatZl__internal_alias")));
+#else
+#ifndef xmlUCSIsCatZl
+extern __typeof (xmlUCSIsCatZl) xmlUCSIsCatZl__internal_alias __attribute((visibility("hidden")));
#define xmlUCSIsCatZl xmlUCSIsCatZl__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_UNICODE_ENABLED)
-extern __typeof (xmlUCSIsCatZp) xmlUCSIsCatZp__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlunicode
+#undef xmlUCSIsCatZp
extern __typeof (xmlUCSIsCatZp) xmlUCSIsCatZp __attribute((alias("xmlUCSIsCatZp__internal_alias")));
+#else
+#ifndef xmlUCSIsCatZp
+extern __typeof (xmlUCSIsCatZp) xmlUCSIsCatZp__internal_alias __attribute((visibility("hidden")));
#define xmlUCSIsCatZp xmlUCSIsCatZp__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_UNICODE_ENABLED)
-extern __typeof (xmlUCSIsCatZs) xmlUCSIsCatZs__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlunicode
+#undef xmlUCSIsCatZs
extern __typeof (xmlUCSIsCatZs) xmlUCSIsCatZs __attribute((alias("xmlUCSIsCatZs__internal_alias")));
+#else
+#ifndef xmlUCSIsCatZs
+extern __typeof (xmlUCSIsCatZs) xmlUCSIsCatZs__internal_alias __attribute((visibility("hidden")));
#define xmlUCSIsCatZs xmlUCSIsCatZs__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_UNICODE_ENABLED)
-extern __typeof (xmlUCSIsCherokee) xmlUCSIsCherokee__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlunicode
+#undef xmlUCSIsCherokee
extern __typeof (xmlUCSIsCherokee) xmlUCSIsCherokee __attribute((alias("xmlUCSIsCherokee__internal_alias")));
+#else
+#ifndef xmlUCSIsCherokee
+extern __typeof (xmlUCSIsCherokee) xmlUCSIsCherokee__internal_alias __attribute((visibility("hidden")));
#define xmlUCSIsCherokee xmlUCSIsCherokee__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_UNICODE_ENABLED)
-extern __typeof (xmlUCSIsCombiningDiacriticalMarks) xmlUCSIsCombiningDiacriticalMarks__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlunicode
+#undef xmlUCSIsCombiningDiacriticalMarks
extern __typeof (xmlUCSIsCombiningDiacriticalMarks) xmlUCSIsCombiningDiacriticalMarks __attribute((alias("xmlUCSIsCombiningDiacriticalMarks__internal_alias")));
+#else
+#ifndef xmlUCSIsCombiningDiacriticalMarks
+extern __typeof (xmlUCSIsCombiningDiacriticalMarks) xmlUCSIsCombiningDiacriticalMarks__internal_alias __attribute((visibility("hidden")));
#define xmlUCSIsCombiningDiacriticalMarks xmlUCSIsCombiningDiacriticalMarks__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_UNICODE_ENABLED)
-extern __typeof (xmlUCSIsCombiningDiacriticalMarksforSymbols) xmlUCSIsCombiningDiacriticalMarksforSymbols__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlunicode
+#undef xmlUCSIsCombiningDiacriticalMarksforSymbols
extern __typeof (xmlUCSIsCombiningDiacriticalMarksforSymbols) xmlUCSIsCombiningDiacriticalMarksforSymbols __attribute((alias("xmlUCSIsCombiningDiacriticalMarksforSymbols__internal_alias")));
+#else
+#ifndef xmlUCSIsCombiningDiacriticalMarksforSymbols
+extern __typeof (xmlUCSIsCombiningDiacriticalMarksforSymbols) xmlUCSIsCombiningDiacriticalMarksforSymbols__internal_alias __attribute((visibility("hidden")));
#define xmlUCSIsCombiningDiacriticalMarksforSymbols xmlUCSIsCombiningDiacriticalMarksforSymbols__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_UNICODE_ENABLED)
-extern __typeof (xmlUCSIsCombiningHalfMarks) xmlUCSIsCombiningHalfMarks__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlunicode
+#undef xmlUCSIsCombiningHalfMarks
extern __typeof (xmlUCSIsCombiningHalfMarks) xmlUCSIsCombiningHalfMarks __attribute((alias("xmlUCSIsCombiningHalfMarks__internal_alias")));
+#else
+#ifndef xmlUCSIsCombiningHalfMarks
+extern __typeof (xmlUCSIsCombiningHalfMarks) xmlUCSIsCombiningHalfMarks__internal_alias __attribute((visibility("hidden")));
#define xmlUCSIsCombiningHalfMarks xmlUCSIsCombiningHalfMarks__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_UNICODE_ENABLED)
-extern __typeof (xmlUCSIsCombiningMarksforSymbols) xmlUCSIsCombiningMarksforSymbols__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlunicode
+#undef xmlUCSIsCombiningMarksforSymbols
extern __typeof (xmlUCSIsCombiningMarksforSymbols) xmlUCSIsCombiningMarksforSymbols __attribute((alias("xmlUCSIsCombiningMarksforSymbols__internal_alias")));
+#else
+#ifndef xmlUCSIsCombiningMarksforSymbols
+extern __typeof (xmlUCSIsCombiningMarksforSymbols) xmlUCSIsCombiningMarksforSymbols__internal_alias __attribute((visibility("hidden")));
#define xmlUCSIsCombiningMarksforSymbols xmlUCSIsCombiningMarksforSymbols__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_UNICODE_ENABLED)
-extern __typeof (xmlUCSIsControlPictures) xmlUCSIsControlPictures__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlunicode
+#undef xmlUCSIsControlPictures
extern __typeof (xmlUCSIsControlPictures) xmlUCSIsControlPictures __attribute((alias("xmlUCSIsControlPictures__internal_alias")));
+#else
+#ifndef xmlUCSIsControlPictures
+extern __typeof (xmlUCSIsControlPictures) xmlUCSIsControlPictures__internal_alias __attribute((visibility("hidden")));
#define xmlUCSIsControlPictures xmlUCSIsControlPictures__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_UNICODE_ENABLED)
-extern __typeof (xmlUCSIsCurrencySymbols) xmlUCSIsCurrencySymbols__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlunicode
+#undef xmlUCSIsCurrencySymbols
extern __typeof (xmlUCSIsCurrencySymbols) xmlUCSIsCurrencySymbols __attribute((alias("xmlUCSIsCurrencySymbols__internal_alias")));
+#else
+#ifndef xmlUCSIsCurrencySymbols
+extern __typeof (xmlUCSIsCurrencySymbols) xmlUCSIsCurrencySymbols__internal_alias __attribute((visibility("hidden")));
#define xmlUCSIsCurrencySymbols xmlUCSIsCurrencySymbols__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_UNICODE_ENABLED)
-extern __typeof (xmlUCSIsCypriotSyllabary) xmlUCSIsCypriotSyllabary__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlunicode
+#undef xmlUCSIsCypriotSyllabary
extern __typeof (xmlUCSIsCypriotSyllabary) xmlUCSIsCypriotSyllabary __attribute((alias("xmlUCSIsCypriotSyllabary__internal_alias")));
+#else
+#ifndef xmlUCSIsCypriotSyllabary
+extern __typeof (xmlUCSIsCypriotSyllabary) xmlUCSIsCypriotSyllabary__internal_alias __attribute((visibility("hidden")));
#define xmlUCSIsCypriotSyllabary xmlUCSIsCypriotSyllabary__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_UNICODE_ENABLED)
-extern __typeof (xmlUCSIsCyrillic) xmlUCSIsCyrillic__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlunicode
+#undef xmlUCSIsCyrillic
extern __typeof (xmlUCSIsCyrillic) xmlUCSIsCyrillic __attribute((alias("xmlUCSIsCyrillic__internal_alias")));
+#else
+#ifndef xmlUCSIsCyrillic
+extern __typeof (xmlUCSIsCyrillic) xmlUCSIsCyrillic__internal_alias __attribute((visibility("hidden")));
#define xmlUCSIsCyrillic xmlUCSIsCyrillic__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_UNICODE_ENABLED)
-extern __typeof (xmlUCSIsCyrillicSupplement) xmlUCSIsCyrillicSupplement__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlunicode
+#undef xmlUCSIsCyrillicSupplement
extern __typeof (xmlUCSIsCyrillicSupplement) xmlUCSIsCyrillicSupplement __attribute((alias("xmlUCSIsCyrillicSupplement__internal_alias")));
+#else
+#ifndef xmlUCSIsCyrillicSupplement
+extern __typeof (xmlUCSIsCyrillicSupplement) xmlUCSIsCyrillicSupplement__internal_alias __attribute((visibility("hidden")));
#define xmlUCSIsCyrillicSupplement xmlUCSIsCyrillicSupplement__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_UNICODE_ENABLED)
-extern __typeof (xmlUCSIsDeseret) xmlUCSIsDeseret__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlunicode
+#undef xmlUCSIsDeseret
extern __typeof (xmlUCSIsDeseret) xmlUCSIsDeseret __attribute((alias("xmlUCSIsDeseret__internal_alias")));
+#else
+#ifndef xmlUCSIsDeseret
+extern __typeof (xmlUCSIsDeseret) xmlUCSIsDeseret__internal_alias __attribute((visibility("hidden")));
#define xmlUCSIsDeseret xmlUCSIsDeseret__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_UNICODE_ENABLED)
-extern __typeof (xmlUCSIsDevanagari) xmlUCSIsDevanagari__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlunicode
+#undef xmlUCSIsDevanagari
extern __typeof (xmlUCSIsDevanagari) xmlUCSIsDevanagari __attribute((alias("xmlUCSIsDevanagari__internal_alias")));
+#else
+#ifndef xmlUCSIsDevanagari
+extern __typeof (xmlUCSIsDevanagari) xmlUCSIsDevanagari__internal_alias __attribute((visibility("hidden")));
#define xmlUCSIsDevanagari xmlUCSIsDevanagari__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_UNICODE_ENABLED)
-extern __typeof (xmlUCSIsDingbats) xmlUCSIsDingbats__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlunicode
+#undef xmlUCSIsDingbats
extern __typeof (xmlUCSIsDingbats) xmlUCSIsDingbats __attribute((alias("xmlUCSIsDingbats__internal_alias")));
+#else
+#ifndef xmlUCSIsDingbats
+extern __typeof (xmlUCSIsDingbats) xmlUCSIsDingbats__internal_alias __attribute((visibility("hidden")));
#define xmlUCSIsDingbats xmlUCSIsDingbats__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_UNICODE_ENABLED)
-extern __typeof (xmlUCSIsEnclosedAlphanumerics) xmlUCSIsEnclosedAlphanumerics__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlunicode
+#undef xmlUCSIsEnclosedAlphanumerics
extern __typeof (xmlUCSIsEnclosedAlphanumerics) xmlUCSIsEnclosedAlphanumerics __attribute((alias("xmlUCSIsEnclosedAlphanumerics__internal_alias")));
+#else
+#ifndef xmlUCSIsEnclosedAlphanumerics
+extern __typeof (xmlUCSIsEnclosedAlphanumerics) xmlUCSIsEnclosedAlphanumerics__internal_alias __attribute((visibility("hidden")));
#define xmlUCSIsEnclosedAlphanumerics xmlUCSIsEnclosedAlphanumerics__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_UNICODE_ENABLED)
-extern __typeof (xmlUCSIsEnclosedCJKLettersandMonths) xmlUCSIsEnclosedCJKLettersandMonths__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlunicode
+#undef xmlUCSIsEnclosedCJKLettersandMonths
extern __typeof (xmlUCSIsEnclosedCJKLettersandMonths) xmlUCSIsEnclosedCJKLettersandMonths __attribute((alias("xmlUCSIsEnclosedCJKLettersandMonths__internal_alias")));
+#else
+#ifndef xmlUCSIsEnclosedCJKLettersandMonths
+extern __typeof (xmlUCSIsEnclosedCJKLettersandMonths) xmlUCSIsEnclosedCJKLettersandMonths__internal_alias __attribute((visibility("hidden")));
#define xmlUCSIsEnclosedCJKLettersandMonths xmlUCSIsEnclosedCJKLettersandMonths__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_UNICODE_ENABLED)
-extern __typeof (xmlUCSIsEthiopic) xmlUCSIsEthiopic__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlunicode
+#undef xmlUCSIsEthiopic
extern __typeof (xmlUCSIsEthiopic) xmlUCSIsEthiopic __attribute((alias("xmlUCSIsEthiopic__internal_alias")));
+#else
+#ifndef xmlUCSIsEthiopic
+extern __typeof (xmlUCSIsEthiopic) xmlUCSIsEthiopic__internal_alias __attribute((visibility("hidden")));
#define xmlUCSIsEthiopic xmlUCSIsEthiopic__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_UNICODE_ENABLED)
-extern __typeof (xmlUCSIsGeneralPunctuation) xmlUCSIsGeneralPunctuation__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlunicode
+#undef xmlUCSIsGeneralPunctuation
extern __typeof (xmlUCSIsGeneralPunctuation) xmlUCSIsGeneralPunctuation __attribute((alias("xmlUCSIsGeneralPunctuation__internal_alias")));
+#else
+#ifndef xmlUCSIsGeneralPunctuation
+extern __typeof (xmlUCSIsGeneralPunctuation) xmlUCSIsGeneralPunctuation__internal_alias __attribute((visibility("hidden")));
#define xmlUCSIsGeneralPunctuation xmlUCSIsGeneralPunctuation__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_UNICODE_ENABLED)
-extern __typeof (xmlUCSIsGeometricShapes) xmlUCSIsGeometricShapes__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlunicode
+#undef xmlUCSIsGeometricShapes
extern __typeof (xmlUCSIsGeometricShapes) xmlUCSIsGeometricShapes __attribute((alias("xmlUCSIsGeometricShapes__internal_alias")));
+#else
+#ifndef xmlUCSIsGeometricShapes
+extern __typeof (xmlUCSIsGeometricShapes) xmlUCSIsGeometricShapes__internal_alias __attribute((visibility("hidden")));
#define xmlUCSIsGeometricShapes xmlUCSIsGeometricShapes__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_UNICODE_ENABLED)
-extern __typeof (xmlUCSIsGeorgian) xmlUCSIsGeorgian__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlunicode
+#undef xmlUCSIsGeorgian
extern __typeof (xmlUCSIsGeorgian) xmlUCSIsGeorgian __attribute((alias("xmlUCSIsGeorgian__internal_alias")));
+#else
+#ifndef xmlUCSIsGeorgian
+extern __typeof (xmlUCSIsGeorgian) xmlUCSIsGeorgian__internal_alias __attribute((visibility("hidden")));
#define xmlUCSIsGeorgian xmlUCSIsGeorgian__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_UNICODE_ENABLED)
-extern __typeof (xmlUCSIsGothic) xmlUCSIsGothic__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlunicode
+#undef xmlUCSIsGothic
extern __typeof (xmlUCSIsGothic) xmlUCSIsGothic __attribute((alias("xmlUCSIsGothic__internal_alias")));
+#else
+#ifndef xmlUCSIsGothic
+extern __typeof (xmlUCSIsGothic) xmlUCSIsGothic__internal_alias __attribute((visibility("hidden")));
#define xmlUCSIsGothic xmlUCSIsGothic__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_UNICODE_ENABLED)
-extern __typeof (xmlUCSIsGreek) xmlUCSIsGreek__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlunicode
+#undef xmlUCSIsGreek
extern __typeof (xmlUCSIsGreek) xmlUCSIsGreek __attribute((alias("xmlUCSIsGreek__internal_alias")));
+#else
+#ifndef xmlUCSIsGreek
+extern __typeof (xmlUCSIsGreek) xmlUCSIsGreek__internal_alias __attribute((visibility("hidden")));
#define xmlUCSIsGreek xmlUCSIsGreek__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_UNICODE_ENABLED)
-extern __typeof (xmlUCSIsGreekExtended) xmlUCSIsGreekExtended__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlunicode
+#undef xmlUCSIsGreekExtended
extern __typeof (xmlUCSIsGreekExtended) xmlUCSIsGreekExtended __attribute((alias("xmlUCSIsGreekExtended__internal_alias")));
+#else
+#ifndef xmlUCSIsGreekExtended
+extern __typeof (xmlUCSIsGreekExtended) xmlUCSIsGreekExtended__internal_alias __attribute((visibility("hidden")));
#define xmlUCSIsGreekExtended xmlUCSIsGreekExtended__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_UNICODE_ENABLED)
-extern __typeof (xmlUCSIsGreekandCoptic) xmlUCSIsGreekandCoptic__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlunicode
+#undef xmlUCSIsGreekandCoptic
extern __typeof (xmlUCSIsGreekandCoptic) xmlUCSIsGreekandCoptic __attribute((alias("xmlUCSIsGreekandCoptic__internal_alias")));
+#else
+#ifndef xmlUCSIsGreekandCoptic
+extern __typeof (xmlUCSIsGreekandCoptic) xmlUCSIsGreekandCoptic__internal_alias __attribute((visibility("hidden")));
#define xmlUCSIsGreekandCoptic xmlUCSIsGreekandCoptic__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_UNICODE_ENABLED)
-extern __typeof (xmlUCSIsGujarati) xmlUCSIsGujarati__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlunicode
+#undef xmlUCSIsGujarati
extern __typeof (xmlUCSIsGujarati) xmlUCSIsGujarati __attribute((alias("xmlUCSIsGujarati__internal_alias")));
+#else
+#ifndef xmlUCSIsGujarati
+extern __typeof (xmlUCSIsGujarati) xmlUCSIsGujarati__internal_alias __attribute((visibility("hidden")));
#define xmlUCSIsGujarati xmlUCSIsGujarati__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_UNICODE_ENABLED)
-extern __typeof (xmlUCSIsGurmukhi) xmlUCSIsGurmukhi__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlunicode
+#undef xmlUCSIsGurmukhi
extern __typeof (xmlUCSIsGurmukhi) xmlUCSIsGurmukhi __attribute((alias("xmlUCSIsGurmukhi__internal_alias")));
+#else
+#ifndef xmlUCSIsGurmukhi
+extern __typeof (xmlUCSIsGurmukhi) xmlUCSIsGurmukhi__internal_alias __attribute((visibility("hidden")));
#define xmlUCSIsGurmukhi xmlUCSIsGurmukhi__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_UNICODE_ENABLED)
-extern __typeof (xmlUCSIsHalfwidthandFullwidthForms) xmlUCSIsHalfwidthandFullwidthForms__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlunicode
+#undef xmlUCSIsHalfwidthandFullwidthForms
extern __typeof (xmlUCSIsHalfwidthandFullwidthForms) xmlUCSIsHalfwidthandFullwidthForms __attribute((alias("xmlUCSIsHalfwidthandFullwidthForms__internal_alias")));
+#else
+#ifndef xmlUCSIsHalfwidthandFullwidthForms
+extern __typeof (xmlUCSIsHalfwidthandFullwidthForms) xmlUCSIsHalfwidthandFullwidthForms__internal_alias __attribute((visibility("hidden")));
#define xmlUCSIsHalfwidthandFullwidthForms xmlUCSIsHalfwidthandFullwidthForms__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_UNICODE_ENABLED)
-extern __typeof (xmlUCSIsHangulCompatibilityJamo) xmlUCSIsHangulCompatibilityJamo__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlunicode
+#undef xmlUCSIsHangulCompatibilityJamo
extern __typeof (xmlUCSIsHangulCompatibilityJamo) xmlUCSIsHangulCompatibilityJamo __attribute((alias("xmlUCSIsHangulCompatibilityJamo__internal_alias")));
+#else
+#ifndef xmlUCSIsHangulCompatibilityJamo
+extern __typeof (xmlUCSIsHangulCompatibilityJamo) xmlUCSIsHangulCompatibilityJamo__internal_alias __attribute((visibility("hidden")));
#define xmlUCSIsHangulCompatibilityJamo xmlUCSIsHangulCompatibilityJamo__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_UNICODE_ENABLED)
-extern __typeof (xmlUCSIsHangulJamo) xmlUCSIsHangulJamo__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlunicode
+#undef xmlUCSIsHangulJamo
extern __typeof (xmlUCSIsHangulJamo) xmlUCSIsHangulJamo __attribute((alias("xmlUCSIsHangulJamo__internal_alias")));
+#else
+#ifndef xmlUCSIsHangulJamo
+extern __typeof (xmlUCSIsHangulJamo) xmlUCSIsHangulJamo__internal_alias __attribute((visibility("hidden")));
#define xmlUCSIsHangulJamo xmlUCSIsHangulJamo__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_UNICODE_ENABLED)
-extern __typeof (xmlUCSIsHangulSyllables) xmlUCSIsHangulSyllables__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlunicode
+#undef xmlUCSIsHangulSyllables
extern __typeof (xmlUCSIsHangulSyllables) xmlUCSIsHangulSyllables __attribute((alias("xmlUCSIsHangulSyllables__internal_alias")));
+#else
+#ifndef xmlUCSIsHangulSyllables
+extern __typeof (xmlUCSIsHangulSyllables) xmlUCSIsHangulSyllables__internal_alias __attribute((visibility("hidden")));
#define xmlUCSIsHangulSyllables xmlUCSIsHangulSyllables__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_UNICODE_ENABLED)
-extern __typeof (xmlUCSIsHanunoo) xmlUCSIsHanunoo__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlunicode
+#undef xmlUCSIsHanunoo
extern __typeof (xmlUCSIsHanunoo) xmlUCSIsHanunoo __attribute((alias("xmlUCSIsHanunoo__internal_alias")));
+#else
+#ifndef xmlUCSIsHanunoo
+extern __typeof (xmlUCSIsHanunoo) xmlUCSIsHanunoo__internal_alias __attribute((visibility("hidden")));
#define xmlUCSIsHanunoo xmlUCSIsHanunoo__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_UNICODE_ENABLED)
-extern __typeof (xmlUCSIsHebrew) xmlUCSIsHebrew__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlunicode
+#undef xmlUCSIsHebrew
extern __typeof (xmlUCSIsHebrew) xmlUCSIsHebrew __attribute((alias("xmlUCSIsHebrew__internal_alias")));
+#else
+#ifndef xmlUCSIsHebrew
+extern __typeof (xmlUCSIsHebrew) xmlUCSIsHebrew__internal_alias __attribute((visibility("hidden")));
#define xmlUCSIsHebrew xmlUCSIsHebrew__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_UNICODE_ENABLED)
-extern __typeof (xmlUCSIsHighPrivateUseSurrogates) xmlUCSIsHighPrivateUseSurrogates__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlunicode
+#undef xmlUCSIsHighPrivateUseSurrogates
extern __typeof (xmlUCSIsHighPrivateUseSurrogates) xmlUCSIsHighPrivateUseSurrogates __attribute((alias("xmlUCSIsHighPrivateUseSurrogates__internal_alias")));
+#else
+#ifndef xmlUCSIsHighPrivateUseSurrogates
+extern __typeof (xmlUCSIsHighPrivateUseSurrogates) xmlUCSIsHighPrivateUseSurrogates__internal_alias __attribute((visibility("hidden")));
#define xmlUCSIsHighPrivateUseSurrogates xmlUCSIsHighPrivateUseSurrogates__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_UNICODE_ENABLED)
-extern __typeof (xmlUCSIsHighSurrogates) xmlUCSIsHighSurrogates__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlunicode
+#undef xmlUCSIsHighSurrogates
extern __typeof (xmlUCSIsHighSurrogates) xmlUCSIsHighSurrogates __attribute((alias("xmlUCSIsHighSurrogates__internal_alias")));
+#else
+#ifndef xmlUCSIsHighSurrogates
+extern __typeof (xmlUCSIsHighSurrogates) xmlUCSIsHighSurrogates__internal_alias __attribute((visibility("hidden")));
#define xmlUCSIsHighSurrogates xmlUCSIsHighSurrogates__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_UNICODE_ENABLED)
-extern __typeof (xmlUCSIsHiragana) xmlUCSIsHiragana__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlunicode
+#undef xmlUCSIsHiragana
extern __typeof (xmlUCSIsHiragana) xmlUCSIsHiragana __attribute((alias("xmlUCSIsHiragana__internal_alias")));
+#else
+#ifndef xmlUCSIsHiragana
+extern __typeof (xmlUCSIsHiragana) xmlUCSIsHiragana__internal_alias __attribute((visibility("hidden")));
#define xmlUCSIsHiragana xmlUCSIsHiragana__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_UNICODE_ENABLED)
-extern __typeof (xmlUCSIsIPAExtensions) xmlUCSIsIPAExtensions__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlunicode
+#undef xmlUCSIsIPAExtensions
extern __typeof (xmlUCSIsIPAExtensions) xmlUCSIsIPAExtensions __attribute((alias("xmlUCSIsIPAExtensions__internal_alias")));
+#else
+#ifndef xmlUCSIsIPAExtensions
+extern __typeof (xmlUCSIsIPAExtensions) xmlUCSIsIPAExtensions__internal_alias __attribute((visibility("hidden")));
#define xmlUCSIsIPAExtensions xmlUCSIsIPAExtensions__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_UNICODE_ENABLED)
-extern __typeof (xmlUCSIsIdeographicDescriptionCharacters) xmlUCSIsIdeographicDescriptionCharacters__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlunicode
+#undef xmlUCSIsIdeographicDescriptionCharacters
extern __typeof (xmlUCSIsIdeographicDescriptionCharacters) xmlUCSIsIdeographicDescriptionCharacters __attribute((alias("xmlUCSIsIdeographicDescriptionCharacters__internal_alias")));
+#else
+#ifndef xmlUCSIsIdeographicDescriptionCharacters
+extern __typeof (xmlUCSIsIdeographicDescriptionCharacters) xmlUCSIsIdeographicDescriptionCharacters__internal_alias __attribute((visibility("hidden")));
#define xmlUCSIsIdeographicDescriptionCharacters xmlUCSIsIdeographicDescriptionCharacters__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_UNICODE_ENABLED)
-extern __typeof (xmlUCSIsKanbun) xmlUCSIsKanbun__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlunicode
+#undef xmlUCSIsKanbun
extern __typeof (xmlUCSIsKanbun) xmlUCSIsKanbun __attribute((alias("xmlUCSIsKanbun__internal_alias")));
+#else
+#ifndef xmlUCSIsKanbun
+extern __typeof (xmlUCSIsKanbun) xmlUCSIsKanbun__internal_alias __attribute((visibility("hidden")));
#define xmlUCSIsKanbun xmlUCSIsKanbun__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_UNICODE_ENABLED)
-extern __typeof (xmlUCSIsKangxiRadicals) xmlUCSIsKangxiRadicals__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlunicode
+#undef xmlUCSIsKangxiRadicals
extern __typeof (xmlUCSIsKangxiRadicals) xmlUCSIsKangxiRadicals __attribute((alias("xmlUCSIsKangxiRadicals__internal_alias")));
+#else
+#ifndef xmlUCSIsKangxiRadicals
+extern __typeof (xmlUCSIsKangxiRadicals) xmlUCSIsKangxiRadicals__internal_alias __attribute((visibility("hidden")));
#define xmlUCSIsKangxiRadicals xmlUCSIsKangxiRadicals__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_UNICODE_ENABLED)
-extern __typeof (xmlUCSIsKannada) xmlUCSIsKannada__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlunicode
+#undef xmlUCSIsKannada
extern __typeof (xmlUCSIsKannada) xmlUCSIsKannada __attribute((alias("xmlUCSIsKannada__internal_alias")));
+#else
+#ifndef xmlUCSIsKannada
+extern __typeof (xmlUCSIsKannada) xmlUCSIsKannada__internal_alias __attribute((visibility("hidden")));
#define xmlUCSIsKannada xmlUCSIsKannada__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_UNICODE_ENABLED)
-extern __typeof (xmlUCSIsKatakana) xmlUCSIsKatakana__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlunicode
+#undef xmlUCSIsKatakana
extern __typeof (xmlUCSIsKatakana) xmlUCSIsKatakana __attribute((alias("xmlUCSIsKatakana__internal_alias")));
+#else
+#ifndef xmlUCSIsKatakana
+extern __typeof (xmlUCSIsKatakana) xmlUCSIsKatakana__internal_alias __attribute((visibility("hidden")));
#define xmlUCSIsKatakana xmlUCSIsKatakana__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_UNICODE_ENABLED)
-extern __typeof (xmlUCSIsKatakanaPhoneticExtensions) xmlUCSIsKatakanaPhoneticExtensions__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlunicode
+#undef xmlUCSIsKatakanaPhoneticExtensions
extern __typeof (xmlUCSIsKatakanaPhoneticExtensions) xmlUCSIsKatakanaPhoneticExtensions __attribute((alias("xmlUCSIsKatakanaPhoneticExtensions__internal_alias")));
+#else
+#ifndef xmlUCSIsKatakanaPhoneticExtensions
+extern __typeof (xmlUCSIsKatakanaPhoneticExtensions) xmlUCSIsKatakanaPhoneticExtensions__internal_alias __attribute((visibility("hidden")));
#define xmlUCSIsKatakanaPhoneticExtensions xmlUCSIsKatakanaPhoneticExtensions__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_UNICODE_ENABLED)
-extern __typeof (xmlUCSIsKhmer) xmlUCSIsKhmer__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlunicode
+#undef xmlUCSIsKhmer
extern __typeof (xmlUCSIsKhmer) xmlUCSIsKhmer __attribute((alias("xmlUCSIsKhmer__internal_alias")));
+#else
+#ifndef xmlUCSIsKhmer
+extern __typeof (xmlUCSIsKhmer) xmlUCSIsKhmer__internal_alias __attribute((visibility("hidden")));
#define xmlUCSIsKhmer xmlUCSIsKhmer__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_UNICODE_ENABLED)
-extern __typeof (xmlUCSIsKhmerSymbols) xmlUCSIsKhmerSymbols__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlunicode
+#undef xmlUCSIsKhmerSymbols
extern __typeof (xmlUCSIsKhmerSymbols) xmlUCSIsKhmerSymbols __attribute((alias("xmlUCSIsKhmerSymbols__internal_alias")));
+#else
+#ifndef xmlUCSIsKhmerSymbols
+extern __typeof (xmlUCSIsKhmerSymbols) xmlUCSIsKhmerSymbols__internal_alias __attribute((visibility("hidden")));
#define xmlUCSIsKhmerSymbols xmlUCSIsKhmerSymbols__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_UNICODE_ENABLED)
-extern __typeof (xmlUCSIsLao) xmlUCSIsLao__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlunicode
+#undef xmlUCSIsLao
extern __typeof (xmlUCSIsLao) xmlUCSIsLao __attribute((alias("xmlUCSIsLao__internal_alias")));
+#else
+#ifndef xmlUCSIsLao
+extern __typeof (xmlUCSIsLao) xmlUCSIsLao__internal_alias __attribute((visibility("hidden")));
#define xmlUCSIsLao xmlUCSIsLao__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_UNICODE_ENABLED)
-extern __typeof (xmlUCSIsLatin1Supplement) xmlUCSIsLatin1Supplement__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlunicode
+#undef xmlUCSIsLatin1Supplement
extern __typeof (xmlUCSIsLatin1Supplement) xmlUCSIsLatin1Supplement __attribute((alias("xmlUCSIsLatin1Supplement__internal_alias")));
+#else
+#ifndef xmlUCSIsLatin1Supplement
+extern __typeof (xmlUCSIsLatin1Supplement) xmlUCSIsLatin1Supplement__internal_alias __attribute((visibility("hidden")));
#define xmlUCSIsLatin1Supplement xmlUCSIsLatin1Supplement__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_UNICODE_ENABLED)
-extern __typeof (xmlUCSIsLatinExtendedA) xmlUCSIsLatinExtendedA__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlunicode
+#undef xmlUCSIsLatinExtendedA
extern __typeof (xmlUCSIsLatinExtendedA) xmlUCSIsLatinExtendedA __attribute((alias("xmlUCSIsLatinExtendedA__internal_alias")));
+#else
+#ifndef xmlUCSIsLatinExtendedA
+extern __typeof (xmlUCSIsLatinExtendedA) xmlUCSIsLatinExtendedA__internal_alias __attribute((visibility("hidden")));
#define xmlUCSIsLatinExtendedA xmlUCSIsLatinExtendedA__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_UNICODE_ENABLED)
-extern __typeof (xmlUCSIsLatinExtendedAdditional) xmlUCSIsLatinExtendedAdditional__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlunicode
+#undef xmlUCSIsLatinExtendedAdditional
extern __typeof (xmlUCSIsLatinExtendedAdditional) xmlUCSIsLatinExtendedAdditional __attribute((alias("xmlUCSIsLatinExtendedAdditional__internal_alias")));
+#else
+#ifndef xmlUCSIsLatinExtendedAdditional
+extern __typeof (xmlUCSIsLatinExtendedAdditional) xmlUCSIsLatinExtendedAdditional__internal_alias __attribute((visibility("hidden")));
#define xmlUCSIsLatinExtendedAdditional xmlUCSIsLatinExtendedAdditional__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_UNICODE_ENABLED)
-extern __typeof (xmlUCSIsLatinExtendedB) xmlUCSIsLatinExtendedB__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlunicode
+#undef xmlUCSIsLatinExtendedB
extern __typeof (xmlUCSIsLatinExtendedB) xmlUCSIsLatinExtendedB __attribute((alias("xmlUCSIsLatinExtendedB__internal_alias")));
+#else
+#ifndef xmlUCSIsLatinExtendedB
+extern __typeof (xmlUCSIsLatinExtendedB) xmlUCSIsLatinExtendedB__internal_alias __attribute((visibility("hidden")));
#define xmlUCSIsLatinExtendedB xmlUCSIsLatinExtendedB__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_UNICODE_ENABLED)
-extern __typeof (xmlUCSIsLetterlikeSymbols) xmlUCSIsLetterlikeSymbols__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlunicode
+#undef xmlUCSIsLetterlikeSymbols
extern __typeof (xmlUCSIsLetterlikeSymbols) xmlUCSIsLetterlikeSymbols __attribute((alias("xmlUCSIsLetterlikeSymbols__internal_alias")));
+#else
+#ifndef xmlUCSIsLetterlikeSymbols
+extern __typeof (xmlUCSIsLetterlikeSymbols) xmlUCSIsLetterlikeSymbols__internal_alias __attribute((visibility("hidden")));
#define xmlUCSIsLetterlikeSymbols xmlUCSIsLetterlikeSymbols__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_UNICODE_ENABLED)
-extern __typeof (xmlUCSIsLimbu) xmlUCSIsLimbu__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlunicode
+#undef xmlUCSIsLimbu
extern __typeof (xmlUCSIsLimbu) xmlUCSIsLimbu __attribute((alias("xmlUCSIsLimbu__internal_alias")));
+#else
+#ifndef xmlUCSIsLimbu
+extern __typeof (xmlUCSIsLimbu) xmlUCSIsLimbu__internal_alias __attribute((visibility("hidden")));
#define xmlUCSIsLimbu xmlUCSIsLimbu__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_UNICODE_ENABLED)
-extern __typeof (xmlUCSIsLinearBIdeograms) xmlUCSIsLinearBIdeograms__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlunicode
+#undef xmlUCSIsLinearBIdeograms
extern __typeof (xmlUCSIsLinearBIdeograms) xmlUCSIsLinearBIdeograms __attribute((alias("xmlUCSIsLinearBIdeograms__internal_alias")));
+#else
+#ifndef xmlUCSIsLinearBIdeograms
+extern __typeof (xmlUCSIsLinearBIdeograms) xmlUCSIsLinearBIdeograms__internal_alias __attribute((visibility("hidden")));
#define xmlUCSIsLinearBIdeograms xmlUCSIsLinearBIdeograms__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_UNICODE_ENABLED)
-extern __typeof (xmlUCSIsLinearBSyllabary) xmlUCSIsLinearBSyllabary__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlunicode
+#undef xmlUCSIsLinearBSyllabary
extern __typeof (xmlUCSIsLinearBSyllabary) xmlUCSIsLinearBSyllabary __attribute((alias("xmlUCSIsLinearBSyllabary__internal_alias")));
+#else
+#ifndef xmlUCSIsLinearBSyllabary
+extern __typeof (xmlUCSIsLinearBSyllabary) xmlUCSIsLinearBSyllabary__internal_alias __attribute((visibility("hidden")));
#define xmlUCSIsLinearBSyllabary xmlUCSIsLinearBSyllabary__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_UNICODE_ENABLED)
-extern __typeof (xmlUCSIsLowSurrogates) xmlUCSIsLowSurrogates__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlunicode
+#undef xmlUCSIsLowSurrogates
extern __typeof (xmlUCSIsLowSurrogates) xmlUCSIsLowSurrogates __attribute((alias("xmlUCSIsLowSurrogates__internal_alias")));
+#else
+#ifndef xmlUCSIsLowSurrogates
+extern __typeof (xmlUCSIsLowSurrogates) xmlUCSIsLowSurrogates__internal_alias __attribute((visibility("hidden")));
#define xmlUCSIsLowSurrogates xmlUCSIsLowSurrogates__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_UNICODE_ENABLED)
-extern __typeof (xmlUCSIsMalayalam) xmlUCSIsMalayalam__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlunicode
+#undef xmlUCSIsMalayalam
extern __typeof (xmlUCSIsMalayalam) xmlUCSIsMalayalam __attribute((alias("xmlUCSIsMalayalam__internal_alias")));
+#else
+#ifndef xmlUCSIsMalayalam
+extern __typeof (xmlUCSIsMalayalam) xmlUCSIsMalayalam__internal_alias __attribute((visibility("hidden")));
#define xmlUCSIsMalayalam xmlUCSIsMalayalam__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_UNICODE_ENABLED)
-extern __typeof (xmlUCSIsMathematicalAlphanumericSymbols) xmlUCSIsMathematicalAlphanumericSymbols__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlunicode
+#undef xmlUCSIsMathematicalAlphanumericSymbols
extern __typeof (xmlUCSIsMathematicalAlphanumericSymbols) xmlUCSIsMathematicalAlphanumericSymbols __attribute((alias("xmlUCSIsMathematicalAlphanumericSymbols__internal_alias")));
+#else
+#ifndef xmlUCSIsMathematicalAlphanumericSymbols
+extern __typeof (xmlUCSIsMathematicalAlphanumericSymbols) xmlUCSIsMathematicalAlphanumericSymbols__internal_alias __attribute((visibility("hidden")));
#define xmlUCSIsMathematicalAlphanumericSymbols xmlUCSIsMathematicalAlphanumericSymbols__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_UNICODE_ENABLED)
-extern __typeof (xmlUCSIsMathematicalOperators) xmlUCSIsMathematicalOperators__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlunicode
+#undef xmlUCSIsMathematicalOperators
extern __typeof (xmlUCSIsMathematicalOperators) xmlUCSIsMathematicalOperators __attribute((alias("xmlUCSIsMathematicalOperators__internal_alias")));
+#else
+#ifndef xmlUCSIsMathematicalOperators
+extern __typeof (xmlUCSIsMathematicalOperators) xmlUCSIsMathematicalOperators__internal_alias __attribute((visibility("hidden")));
#define xmlUCSIsMathematicalOperators xmlUCSIsMathematicalOperators__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_UNICODE_ENABLED)
-extern __typeof (xmlUCSIsMiscellaneousMathematicalSymbolsA) xmlUCSIsMiscellaneousMathematicalSymbolsA__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlunicode
+#undef xmlUCSIsMiscellaneousMathematicalSymbolsA
extern __typeof (xmlUCSIsMiscellaneousMathematicalSymbolsA) xmlUCSIsMiscellaneousMathematicalSymbolsA __attribute((alias("xmlUCSIsMiscellaneousMathematicalSymbolsA__internal_alias")));
+#else
+#ifndef xmlUCSIsMiscellaneousMathematicalSymbolsA
+extern __typeof (xmlUCSIsMiscellaneousMathematicalSymbolsA) xmlUCSIsMiscellaneousMathematicalSymbolsA__internal_alias __attribute((visibility("hidden")));
#define xmlUCSIsMiscellaneousMathematicalSymbolsA xmlUCSIsMiscellaneousMathematicalSymbolsA__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_UNICODE_ENABLED)
-extern __typeof (xmlUCSIsMiscellaneousMathematicalSymbolsB) xmlUCSIsMiscellaneousMathematicalSymbolsB__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlunicode
+#undef xmlUCSIsMiscellaneousMathematicalSymbolsB
extern __typeof (xmlUCSIsMiscellaneousMathematicalSymbolsB) xmlUCSIsMiscellaneousMathematicalSymbolsB __attribute((alias("xmlUCSIsMiscellaneousMathematicalSymbolsB__internal_alias")));
+#else
+#ifndef xmlUCSIsMiscellaneousMathematicalSymbolsB
+extern __typeof (xmlUCSIsMiscellaneousMathematicalSymbolsB) xmlUCSIsMiscellaneousMathematicalSymbolsB__internal_alias __attribute((visibility("hidden")));
#define xmlUCSIsMiscellaneousMathematicalSymbolsB xmlUCSIsMiscellaneousMathematicalSymbolsB__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_UNICODE_ENABLED)
-extern __typeof (xmlUCSIsMiscellaneousSymbols) xmlUCSIsMiscellaneousSymbols__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlunicode
+#undef xmlUCSIsMiscellaneousSymbols
extern __typeof (xmlUCSIsMiscellaneousSymbols) xmlUCSIsMiscellaneousSymbols __attribute((alias("xmlUCSIsMiscellaneousSymbols__internal_alias")));
+#else
+#ifndef xmlUCSIsMiscellaneousSymbols
+extern __typeof (xmlUCSIsMiscellaneousSymbols) xmlUCSIsMiscellaneousSymbols__internal_alias __attribute((visibility("hidden")));
#define xmlUCSIsMiscellaneousSymbols xmlUCSIsMiscellaneousSymbols__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_UNICODE_ENABLED)
-extern __typeof (xmlUCSIsMiscellaneousSymbolsandArrows) xmlUCSIsMiscellaneousSymbolsandArrows__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlunicode
+#undef xmlUCSIsMiscellaneousSymbolsandArrows
extern __typeof (xmlUCSIsMiscellaneousSymbolsandArrows) xmlUCSIsMiscellaneousSymbolsandArrows __attribute((alias("xmlUCSIsMiscellaneousSymbolsandArrows__internal_alias")));
+#else
+#ifndef xmlUCSIsMiscellaneousSymbolsandArrows
+extern __typeof (xmlUCSIsMiscellaneousSymbolsandArrows) xmlUCSIsMiscellaneousSymbolsandArrows__internal_alias __attribute((visibility("hidden")));
#define xmlUCSIsMiscellaneousSymbolsandArrows xmlUCSIsMiscellaneousSymbolsandArrows__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_UNICODE_ENABLED)
-extern __typeof (xmlUCSIsMiscellaneousTechnical) xmlUCSIsMiscellaneousTechnical__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlunicode
+#undef xmlUCSIsMiscellaneousTechnical
extern __typeof (xmlUCSIsMiscellaneousTechnical) xmlUCSIsMiscellaneousTechnical __attribute((alias("xmlUCSIsMiscellaneousTechnical__internal_alias")));
+#else
+#ifndef xmlUCSIsMiscellaneousTechnical
+extern __typeof (xmlUCSIsMiscellaneousTechnical) xmlUCSIsMiscellaneousTechnical__internal_alias __attribute((visibility("hidden")));
#define xmlUCSIsMiscellaneousTechnical xmlUCSIsMiscellaneousTechnical__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_UNICODE_ENABLED)
-extern __typeof (xmlUCSIsMongolian) xmlUCSIsMongolian__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlunicode
+#undef xmlUCSIsMongolian
extern __typeof (xmlUCSIsMongolian) xmlUCSIsMongolian __attribute((alias("xmlUCSIsMongolian__internal_alias")));
+#else
+#ifndef xmlUCSIsMongolian
+extern __typeof (xmlUCSIsMongolian) xmlUCSIsMongolian__internal_alias __attribute((visibility("hidden")));
#define xmlUCSIsMongolian xmlUCSIsMongolian__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_UNICODE_ENABLED)
-extern __typeof (xmlUCSIsMusicalSymbols) xmlUCSIsMusicalSymbols__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlunicode
+#undef xmlUCSIsMusicalSymbols
extern __typeof (xmlUCSIsMusicalSymbols) xmlUCSIsMusicalSymbols __attribute((alias("xmlUCSIsMusicalSymbols__internal_alias")));
+#else
+#ifndef xmlUCSIsMusicalSymbols
+extern __typeof (xmlUCSIsMusicalSymbols) xmlUCSIsMusicalSymbols__internal_alias __attribute((visibility("hidden")));
#define xmlUCSIsMusicalSymbols xmlUCSIsMusicalSymbols__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_UNICODE_ENABLED)
-extern __typeof (xmlUCSIsMyanmar) xmlUCSIsMyanmar__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlunicode
+#undef xmlUCSIsMyanmar
extern __typeof (xmlUCSIsMyanmar) xmlUCSIsMyanmar __attribute((alias("xmlUCSIsMyanmar__internal_alias")));
+#else
+#ifndef xmlUCSIsMyanmar
+extern __typeof (xmlUCSIsMyanmar) xmlUCSIsMyanmar__internal_alias __attribute((visibility("hidden")));
#define xmlUCSIsMyanmar xmlUCSIsMyanmar__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_UNICODE_ENABLED)
-extern __typeof (xmlUCSIsNumberForms) xmlUCSIsNumberForms__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlunicode
+#undef xmlUCSIsNumberForms
extern __typeof (xmlUCSIsNumberForms) xmlUCSIsNumberForms __attribute((alias("xmlUCSIsNumberForms__internal_alias")));
+#else
+#ifndef xmlUCSIsNumberForms
+extern __typeof (xmlUCSIsNumberForms) xmlUCSIsNumberForms__internal_alias __attribute((visibility("hidden")));
#define xmlUCSIsNumberForms xmlUCSIsNumberForms__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_UNICODE_ENABLED)
-extern __typeof (xmlUCSIsOgham) xmlUCSIsOgham__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlunicode
+#undef xmlUCSIsOgham
extern __typeof (xmlUCSIsOgham) xmlUCSIsOgham __attribute((alias("xmlUCSIsOgham__internal_alias")));
+#else
+#ifndef xmlUCSIsOgham
+extern __typeof (xmlUCSIsOgham) xmlUCSIsOgham__internal_alias __attribute((visibility("hidden")));
#define xmlUCSIsOgham xmlUCSIsOgham__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_UNICODE_ENABLED)
-extern __typeof (xmlUCSIsOldItalic) xmlUCSIsOldItalic__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlunicode
+#undef xmlUCSIsOldItalic
extern __typeof (xmlUCSIsOldItalic) xmlUCSIsOldItalic __attribute((alias("xmlUCSIsOldItalic__internal_alias")));
+#else
+#ifndef xmlUCSIsOldItalic
+extern __typeof (xmlUCSIsOldItalic) xmlUCSIsOldItalic__internal_alias __attribute((visibility("hidden")));
#define xmlUCSIsOldItalic xmlUCSIsOldItalic__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_UNICODE_ENABLED)
-extern __typeof (xmlUCSIsOpticalCharacterRecognition) xmlUCSIsOpticalCharacterRecognition__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlunicode
+#undef xmlUCSIsOpticalCharacterRecognition
extern __typeof (xmlUCSIsOpticalCharacterRecognition) xmlUCSIsOpticalCharacterRecognition __attribute((alias("xmlUCSIsOpticalCharacterRecognition__internal_alias")));
+#else
+#ifndef xmlUCSIsOpticalCharacterRecognition
+extern __typeof (xmlUCSIsOpticalCharacterRecognition) xmlUCSIsOpticalCharacterRecognition__internal_alias __attribute((visibility("hidden")));
#define xmlUCSIsOpticalCharacterRecognition xmlUCSIsOpticalCharacterRecognition__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_UNICODE_ENABLED)
-extern __typeof (xmlUCSIsOriya) xmlUCSIsOriya__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlunicode
+#undef xmlUCSIsOriya
extern __typeof (xmlUCSIsOriya) xmlUCSIsOriya __attribute((alias("xmlUCSIsOriya__internal_alias")));
+#else
+#ifndef xmlUCSIsOriya
+extern __typeof (xmlUCSIsOriya) xmlUCSIsOriya__internal_alias __attribute((visibility("hidden")));
#define xmlUCSIsOriya xmlUCSIsOriya__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_UNICODE_ENABLED)
-extern __typeof (xmlUCSIsOsmanya) xmlUCSIsOsmanya__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlunicode
+#undef xmlUCSIsOsmanya
extern __typeof (xmlUCSIsOsmanya) xmlUCSIsOsmanya __attribute((alias("xmlUCSIsOsmanya__internal_alias")));
+#else
+#ifndef xmlUCSIsOsmanya
+extern __typeof (xmlUCSIsOsmanya) xmlUCSIsOsmanya__internal_alias __attribute((visibility("hidden")));
#define xmlUCSIsOsmanya xmlUCSIsOsmanya__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_UNICODE_ENABLED)
-extern __typeof (xmlUCSIsPhoneticExtensions) xmlUCSIsPhoneticExtensions__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlunicode
+#undef xmlUCSIsPhoneticExtensions
extern __typeof (xmlUCSIsPhoneticExtensions) xmlUCSIsPhoneticExtensions __attribute((alias("xmlUCSIsPhoneticExtensions__internal_alias")));
+#else
+#ifndef xmlUCSIsPhoneticExtensions
+extern __typeof (xmlUCSIsPhoneticExtensions) xmlUCSIsPhoneticExtensions__internal_alias __attribute((visibility("hidden")));
#define xmlUCSIsPhoneticExtensions xmlUCSIsPhoneticExtensions__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_UNICODE_ENABLED)
-extern __typeof (xmlUCSIsPrivateUse) xmlUCSIsPrivateUse__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlunicode
+#undef xmlUCSIsPrivateUse
extern __typeof (xmlUCSIsPrivateUse) xmlUCSIsPrivateUse __attribute((alias("xmlUCSIsPrivateUse__internal_alias")));
+#else
+#ifndef xmlUCSIsPrivateUse
+extern __typeof (xmlUCSIsPrivateUse) xmlUCSIsPrivateUse__internal_alias __attribute((visibility("hidden")));
#define xmlUCSIsPrivateUse xmlUCSIsPrivateUse__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_UNICODE_ENABLED)
-extern __typeof (xmlUCSIsPrivateUseArea) xmlUCSIsPrivateUseArea__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlunicode
+#undef xmlUCSIsPrivateUseArea
extern __typeof (xmlUCSIsPrivateUseArea) xmlUCSIsPrivateUseArea __attribute((alias("xmlUCSIsPrivateUseArea__internal_alias")));
+#else
+#ifndef xmlUCSIsPrivateUseArea
+extern __typeof (xmlUCSIsPrivateUseArea) xmlUCSIsPrivateUseArea__internal_alias __attribute((visibility("hidden")));
#define xmlUCSIsPrivateUseArea xmlUCSIsPrivateUseArea__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_UNICODE_ENABLED)
-extern __typeof (xmlUCSIsRunic) xmlUCSIsRunic__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlunicode
+#undef xmlUCSIsRunic
extern __typeof (xmlUCSIsRunic) xmlUCSIsRunic __attribute((alias("xmlUCSIsRunic__internal_alias")));
+#else
+#ifndef xmlUCSIsRunic
+extern __typeof (xmlUCSIsRunic) xmlUCSIsRunic__internal_alias __attribute((visibility("hidden")));
#define xmlUCSIsRunic xmlUCSIsRunic__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_UNICODE_ENABLED)
-extern __typeof (xmlUCSIsShavian) xmlUCSIsShavian__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlunicode
+#undef xmlUCSIsShavian
extern __typeof (xmlUCSIsShavian) xmlUCSIsShavian __attribute((alias("xmlUCSIsShavian__internal_alias")));
+#else
+#ifndef xmlUCSIsShavian
+extern __typeof (xmlUCSIsShavian) xmlUCSIsShavian__internal_alias __attribute((visibility("hidden")));
#define xmlUCSIsShavian xmlUCSIsShavian__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_UNICODE_ENABLED)
-extern __typeof (xmlUCSIsSinhala) xmlUCSIsSinhala__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlunicode
+#undef xmlUCSIsSinhala
extern __typeof (xmlUCSIsSinhala) xmlUCSIsSinhala __attribute((alias("xmlUCSIsSinhala__internal_alias")));
+#else
+#ifndef xmlUCSIsSinhala
+extern __typeof (xmlUCSIsSinhala) xmlUCSIsSinhala__internal_alias __attribute((visibility("hidden")));
#define xmlUCSIsSinhala xmlUCSIsSinhala__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_UNICODE_ENABLED)
-extern __typeof (xmlUCSIsSmallFormVariants) xmlUCSIsSmallFormVariants__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlunicode
+#undef xmlUCSIsSmallFormVariants
extern __typeof (xmlUCSIsSmallFormVariants) xmlUCSIsSmallFormVariants __attribute((alias("xmlUCSIsSmallFormVariants__internal_alias")));
+#else
+#ifndef xmlUCSIsSmallFormVariants
+extern __typeof (xmlUCSIsSmallFormVariants) xmlUCSIsSmallFormVariants__internal_alias __attribute((visibility("hidden")));
#define xmlUCSIsSmallFormVariants xmlUCSIsSmallFormVariants__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_UNICODE_ENABLED)
-extern __typeof (xmlUCSIsSpacingModifierLetters) xmlUCSIsSpacingModifierLetters__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlunicode
+#undef xmlUCSIsSpacingModifierLetters
extern __typeof (xmlUCSIsSpacingModifierLetters) xmlUCSIsSpacingModifierLetters __attribute((alias("xmlUCSIsSpacingModifierLetters__internal_alias")));
+#else
+#ifndef xmlUCSIsSpacingModifierLetters
+extern __typeof (xmlUCSIsSpacingModifierLetters) xmlUCSIsSpacingModifierLetters__internal_alias __attribute((visibility("hidden")));
#define xmlUCSIsSpacingModifierLetters xmlUCSIsSpacingModifierLetters__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_UNICODE_ENABLED)
-extern __typeof (xmlUCSIsSpecials) xmlUCSIsSpecials__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlunicode
+#undef xmlUCSIsSpecials
extern __typeof (xmlUCSIsSpecials) xmlUCSIsSpecials __attribute((alias("xmlUCSIsSpecials__internal_alias")));
+#else
+#ifndef xmlUCSIsSpecials
+extern __typeof (xmlUCSIsSpecials) xmlUCSIsSpecials__internal_alias __attribute((visibility("hidden")));
#define xmlUCSIsSpecials xmlUCSIsSpecials__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_UNICODE_ENABLED)
-extern __typeof (xmlUCSIsSuperscriptsandSubscripts) xmlUCSIsSuperscriptsandSubscripts__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlunicode
+#undef xmlUCSIsSuperscriptsandSubscripts
extern __typeof (xmlUCSIsSuperscriptsandSubscripts) xmlUCSIsSuperscriptsandSubscripts __attribute((alias("xmlUCSIsSuperscriptsandSubscripts__internal_alias")));
+#else
+#ifndef xmlUCSIsSuperscriptsandSubscripts
+extern __typeof (xmlUCSIsSuperscriptsandSubscripts) xmlUCSIsSuperscriptsandSubscripts__internal_alias __attribute((visibility("hidden")));
#define xmlUCSIsSuperscriptsandSubscripts xmlUCSIsSuperscriptsandSubscripts__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_UNICODE_ENABLED)
-extern __typeof (xmlUCSIsSupplementalArrowsA) xmlUCSIsSupplementalArrowsA__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlunicode
+#undef xmlUCSIsSupplementalArrowsA
extern __typeof (xmlUCSIsSupplementalArrowsA) xmlUCSIsSupplementalArrowsA __attribute((alias("xmlUCSIsSupplementalArrowsA__internal_alias")));
+#else
+#ifndef xmlUCSIsSupplementalArrowsA
+extern __typeof (xmlUCSIsSupplementalArrowsA) xmlUCSIsSupplementalArrowsA__internal_alias __attribute((visibility("hidden")));
#define xmlUCSIsSupplementalArrowsA xmlUCSIsSupplementalArrowsA__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_UNICODE_ENABLED)
-extern __typeof (xmlUCSIsSupplementalArrowsB) xmlUCSIsSupplementalArrowsB__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlunicode
+#undef xmlUCSIsSupplementalArrowsB
extern __typeof (xmlUCSIsSupplementalArrowsB) xmlUCSIsSupplementalArrowsB __attribute((alias("xmlUCSIsSupplementalArrowsB__internal_alias")));
+#else
+#ifndef xmlUCSIsSupplementalArrowsB
+extern __typeof (xmlUCSIsSupplementalArrowsB) xmlUCSIsSupplementalArrowsB__internal_alias __attribute((visibility("hidden")));
#define xmlUCSIsSupplementalArrowsB xmlUCSIsSupplementalArrowsB__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_UNICODE_ENABLED)
-extern __typeof (xmlUCSIsSupplementalMathematicalOperators) xmlUCSIsSupplementalMathematicalOperators__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlunicode
+#undef xmlUCSIsSupplementalMathematicalOperators
extern __typeof (xmlUCSIsSupplementalMathematicalOperators) xmlUCSIsSupplementalMathematicalOperators __attribute((alias("xmlUCSIsSupplementalMathematicalOperators__internal_alias")));
+#else
+#ifndef xmlUCSIsSupplementalMathematicalOperators
+extern __typeof (xmlUCSIsSupplementalMathematicalOperators) xmlUCSIsSupplementalMathematicalOperators__internal_alias __attribute((visibility("hidden")));
#define xmlUCSIsSupplementalMathematicalOperators xmlUCSIsSupplementalMathematicalOperators__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_UNICODE_ENABLED)
-extern __typeof (xmlUCSIsSupplementaryPrivateUseAreaA) xmlUCSIsSupplementaryPrivateUseAreaA__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlunicode
+#undef xmlUCSIsSupplementaryPrivateUseAreaA
extern __typeof (xmlUCSIsSupplementaryPrivateUseAreaA) xmlUCSIsSupplementaryPrivateUseAreaA __attribute((alias("xmlUCSIsSupplementaryPrivateUseAreaA__internal_alias")));
+#else
+#ifndef xmlUCSIsSupplementaryPrivateUseAreaA
+extern __typeof (xmlUCSIsSupplementaryPrivateUseAreaA) xmlUCSIsSupplementaryPrivateUseAreaA__internal_alias __attribute((visibility("hidden")));
#define xmlUCSIsSupplementaryPrivateUseAreaA xmlUCSIsSupplementaryPrivateUseAreaA__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_UNICODE_ENABLED)
-extern __typeof (xmlUCSIsSupplementaryPrivateUseAreaB) xmlUCSIsSupplementaryPrivateUseAreaB__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlunicode
+#undef xmlUCSIsSupplementaryPrivateUseAreaB
extern __typeof (xmlUCSIsSupplementaryPrivateUseAreaB) xmlUCSIsSupplementaryPrivateUseAreaB __attribute((alias("xmlUCSIsSupplementaryPrivateUseAreaB__internal_alias")));
+#else
+#ifndef xmlUCSIsSupplementaryPrivateUseAreaB
+extern __typeof (xmlUCSIsSupplementaryPrivateUseAreaB) xmlUCSIsSupplementaryPrivateUseAreaB__internal_alias __attribute((visibility("hidden")));
#define xmlUCSIsSupplementaryPrivateUseAreaB xmlUCSIsSupplementaryPrivateUseAreaB__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_UNICODE_ENABLED)
-extern __typeof (xmlUCSIsSyriac) xmlUCSIsSyriac__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlunicode
+#undef xmlUCSIsSyriac
extern __typeof (xmlUCSIsSyriac) xmlUCSIsSyriac __attribute((alias("xmlUCSIsSyriac__internal_alias")));
+#else
+#ifndef xmlUCSIsSyriac
+extern __typeof (xmlUCSIsSyriac) xmlUCSIsSyriac__internal_alias __attribute((visibility("hidden")));
#define xmlUCSIsSyriac xmlUCSIsSyriac__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_UNICODE_ENABLED)
-extern __typeof (xmlUCSIsTagalog) xmlUCSIsTagalog__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlunicode
+#undef xmlUCSIsTagalog
extern __typeof (xmlUCSIsTagalog) xmlUCSIsTagalog __attribute((alias("xmlUCSIsTagalog__internal_alias")));
+#else
+#ifndef xmlUCSIsTagalog
+extern __typeof (xmlUCSIsTagalog) xmlUCSIsTagalog__internal_alias __attribute((visibility("hidden")));
#define xmlUCSIsTagalog xmlUCSIsTagalog__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_UNICODE_ENABLED)
-extern __typeof (xmlUCSIsTagbanwa) xmlUCSIsTagbanwa__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlunicode
+#undef xmlUCSIsTagbanwa
extern __typeof (xmlUCSIsTagbanwa) xmlUCSIsTagbanwa __attribute((alias("xmlUCSIsTagbanwa__internal_alias")));
+#else
+#ifndef xmlUCSIsTagbanwa
+extern __typeof (xmlUCSIsTagbanwa) xmlUCSIsTagbanwa__internal_alias __attribute((visibility("hidden")));
#define xmlUCSIsTagbanwa xmlUCSIsTagbanwa__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_UNICODE_ENABLED)
-extern __typeof (xmlUCSIsTags) xmlUCSIsTags__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlunicode
+#undef xmlUCSIsTags
extern __typeof (xmlUCSIsTags) xmlUCSIsTags __attribute((alias("xmlUCSIsTags__internal_alias")));
+#else
+#ifndef xmlUCSIsTags
+extern __typeof (xmlUCSIsTags) xmlUCSIsTags__internal_alias __attribute((visibility("hidden")));
#define xmlUCSIsTags xmlUCSIsTags__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_UNICODE_ENABLED)
-extern __typeof (xmlUCSIsTaiLe) xmlUCSIsTaiLe__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlunicode
+#undef xmlUCSIsTaiLe
extern __typeof (xmlUCSIsTaiLe) xmlUCSIsTaiLe __attribute((alias("xmlUCSIsTaiLe__internal_alias")));
+#else
+#ifndef xmlUCSIsTaiLe
+extern __typeof (xmlUCSIsTaiLe) xmlUCSIsTaiLe__internal_alias __attribute((visibility("hidden")));
#define xmlUCSIsTaiLe xmlUCSIsTaiLe__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_UNICODE_ENABLED)
-extern __typeof (xmlUCSIsTaiXuanJingSymbols) xmlUCSIsTaiXuanJingSymbols__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlunicode
+#undef xmlUCSIsTaiXuanJingSymbols
extern __typeof (xmlUCSIsTaiXuanJingSymbols) xmlUCSIsTaiXuanJingSymbols __attribute((alias("xmlUCSIsTaiXuanJingSymbols__internal_alias")));
+#else
+#ifndef xmlUCSIsTaiXuanJingSymbols
+extern __typeof (xmlUCSIsTaiXuanJingSymbols) xmlUCSIsTaiXuanJingSymbols__internal_alias __attribute((visibility("hidden")));
#define xmlUCSIsTaiXuanJingSymbols xmlUCSIsTaiXuanJingSymbols__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_UNICODE_ENABLED)
-extern __typeof (xmlUCSIsTamil) xmlUCSIsTamil__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlunicode
+#undef xmlUCSIsTamil
extern __typeof (xmlUCSIsTamil) xmlUCSIsTamil __attribute((alias("xmlUCSIsTamil__internal_alias")));
+#else
+#ifndef xmlUCSIsTamil
+extern __typeof (xmlUCSIsTamil) xmlUCSIsTamil__internal_alias __attribute((visibility("hidden")));
#define xmlUCSIsTamil xmlUCSIsTamil__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_UNICODE_ENABLED)
-extern __typeof (xmlUCSIsTelugu) xmlUCSIsTelugu__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlunicode
+#undef xmlUCSIsTelugu
extern __typeof (xmlUCSIsTelugu) xmlUCSIsTelugu __attribute((alias("xmlUCSIsTelugu__internal_alias")));
+#else
+#ifndef xmlUCSIsTelugu
+extern __typeof (xmlUCSIsTelugu) xmlUCSIsTelugu__internal_alias __attribute((visibility("hidden")));
#define xmlUCSIsTelugu xmlUCSIsTelugu__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_UNICODE_ENABLED)
-extern __typeof (xmlUCSIsThaana) xmlUCSIsThaana__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlunicode
+#undef xmlUCSIsThaana
extern __typeof (xmlUCSIsThaana) xmlUCSIsThaana __attribute((alias("xmlUCSIsThaana__internal_alias")));
+#else
+#ifndef xmlUCSIsThaana
+extern __typeof (xmlUCSIsThaana) xmlUCSIsThaana__internal_alias __attribute((visibility("hidden")));
#define xmlUCSIsThaana xmlUCSIsThaana__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_UNICODE_ENABLED)
-extern __typeof (xmlUCSIsThai) xmlUCSIsThai__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlunicode
+#undef xmlUCSIsThai
extern __typeof (xmlUCSIsThai) xmlUCSIsThai __attribute((alias("xmlUCSIsThai__internal_alias")));
+#else
+#ifndef xmlUCSIsThai
+extern __typeof (xmlUCSIsThai) xmlUCSIsThai__internal_alias __attribute((visibility("hidden")));
#define xmlUCSIsThai xmlUCSIsThai__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_UNICODE_ENABLED)
-extern __typeof (xmlUCSIsTibetan) xmlUCSIsTibetan__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlunicode
+#undef xmlUCSIsTibetan
extern __typeof (xmlUCSIsTibetan) xmlUCSIsTibetan __attribute((alias("xmlUCSIsTibetan__internal_alias")));
+#else
+#ifndef xmlUCSIsTibetan
+extern __typeof (xmlUCSIsTibetan) xmlUCSIsTibetan__internal_alias __attribute((visibility("hidden")));
#define xmlUCSIsTibetan xmlUCSIsTibetan__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_UNICODE_ENABLED)
-extern __typeof (xmlUCSIsUgaritic) xmlUCSIsUgaritic__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlunicode
+#undef xmlUCSIsUgaritic
extern __typeof (xmlUCSIsUgaritic) xmlUCSIsUgaritic __attribute((alias("xmlUCSIsUgaritic__internal_alias")));
+#else
+#ifndef xmlUCSIsUgaritic
+extern __typeof (xmlUCSIsUgaritic) xmlUCSIsUgaritic__internal_alias __attribute((visibility("hidden")));
#define xmlUCSIsUgaritic xmlUCSIsUgaritic__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_UNICODE_ENABLED)
-extern __typeof (xmlUCSIsUnifiedCanadianAboriginalSyllabics) xmlUCSIsUnifiedCanadianAboriginalSyllabics__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlunicode
+#undef xmlUCSIsUnifiedCanadianAboriginalSyllabics
extern __typeof (xmlUCSIsUnifiedCanadianAboriginalSyllabics) xmlUCSIsUnifiedCanadianAboriginalSyllabics __attribute((alias("xmlUCSIsUnifiedCanadianAboriginalSyllabics__internal_alias")));
+#else
+#ifndef xmlUCSIsUnifiedCanadianAboriginalSyllabics
+extern __typeof (xmlUCSIsUnifiedCanadianAboriginalSyllabics) xmlUCSIsUnifiedCanadianAboriginalSyllabics__internal_alias __attribute((visibility("hidden")));
#define xmlUCSIsUnifiedCanadianAboriginalSyllabics xmlUCSIsUnifiedCanadianAboriginalSyllabics__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_UNICODE_ENABLED)
-extern __typeof (xmlUCSIsVariationSelectors) xmlUCSIsVariationSelectors__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlunicode
+#undef xmlUCSIsVariationSelectors
extern __typeof (xmlUCSIsVariationSelectors) xmlUCSIsVariationSelectors __attribute((alias("xmlUCSIsVariationSelectors__internal_alias")));
+#else
+#ifndef xmlUCSIsVariationSelectors
+extern __typeof (xmlUCSIsVariationSelectors) xmlUCSIsVariationSelectors__internal_alias __attribute((visibility("hidden")));
#define xmlUCSIsVariationSelectors xmlUCSIsVariationSelectors__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_UNICODE_ENABLED)
-extern __typeof (xmlUCSIsVariationSelectorsSupplement) xmlUCSIsVariationSelectorsSupplement__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlunicode
+#undef xmlUCSIsVariationSelectorsSupplement
extern __typeof (xmlUCSIsVariationSelectorsSupplement) xmlUCSIsVariationSelectorsSupplement __attribute((alias("xmlUCSIsVariationSelectorsSupplement__internal_alias")));
+#else
+#ifndef xmlUCSIsVariationSelectorsSupplement
+extern __typeof (xmlUCSIsVariationSelectorsSupplement) xmlUCSIsVariationSelectorsSupplement__internal_alias __attribute((visibility("hidden")));
#define xmlUCSIsVariationSelectorsSupplement xmlUCSIsVariationSelectorsSupplement__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_UNICODE_ENABLED)
-extern __typeof (xmlUCSIsYiRadicals) xmlUCSIsYiRadicals__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlunicode
+#undef xmlUCSIsYiRadicals
extern __typeof (xmlUCSIsYiRadicals) xmlUCSIsYiRadicals __attribute((alias("xmlUCSIsYiRadicals__internal_alias")));
+#else
+#ifndef xmlUCSIsYiRadicals
+extern __typeof (xmlUCSIsYiRadicals) xmlUCSIsYiRadicals__internal_alias __attribute((visibility("hidden")));
#define xmlUCSIsYiRadicals xmlUCSIsYiRadicals__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_UNICODE_ENABLED)
-extern __typeof (xmlUCSIsYiSyllables) xmlUCSIsYiSyllables__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlunicode
+#undef xmlUCSIsYiSyllables
extern __typeof (xmlUCSIsYiSyllables) xmlUCSIsYiSyllables __attribute((alias("xmlUCSIsYiSyllables__internal_alias")));
+#else
+#ifndef xmlUCSIsYiSyllables
+extern __typeof (xmlUCSIsYiSyllables) xmlUCSIsYiSyllables__internal_alias __attribute((visibility("hidden")));
#define xmlUCSIsYiSyllables xmlUCSIsYiSyllables__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_UNICODE_ENABLED)
-extern __typeof (xmlUCSIsYijingHexagramSymbols) xmlUCSIsYijingHexagramSymbols__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlunicode
+#undef xmlUCSIsYijingHexagramSymbols
extern __typeof (xmlUCSIsYijingHexagramSymbols) xmlUCSIsYijingHexagramSymbols __attribute((alias("xmlUCSIsYijingHexagramSymbols__internal_alias")));
+#else
+#ifndef xmlUCSIsYijingHexagramSymbols
+extern __typeof (xmlUCSIsYijingHexagramSymbols) xmlUCSIsYijingHexagramSymbols__internal_alias __attribute((visibility("hidden")));
#define xmlUCSIsYijingHexagramSymbols xmlUCSIsYijingHexagramSymbols__internal_alias
#endif
+#endif
+#endif
-extern __typeof (xmlURIEscape) xmlURIEscape__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_uri
+#undef xmlURIEscape
extern __typeof (xmlURIEscape) xmlURIEscape __attribute((alias("xmlURIEscape__internal_alias")));
+#else
+#ifndef xmlURIEscape
+extern __typeof (xmlURIEscape) xmlURIEscape__internal_alias __attribute((visibility("hidden")));
#define xmlURIEscape xmlURIEscape__internal_alias
+#endif
+#endif
-extern __typeof (xmlURIEscapeStr) xmlURIEscapeStr__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_uri
+#undef xmlURIEscapeStr
extern __typeof (xmlURIEscapeStr) xmlURIEscapeStr __attribute((alias("xmlURIEscapeStr__internal_alias")));
+#else
+#ifndef xmlURIEscapeStr
+extern __typeof (xmlURIEscapeStr) xmlURIEscapeStr__internal_alias __attribute((visibility("hidden")));
#define xmlURIEscapeStr xmlURIEscapeStr__internal_alias
+#endif
+#endif
-extern __typeof (xmlURIUnescapeString) xmlURIUnescapeString__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_uri
+#undef xmlURIUnescapeString
extern __typeof (xmlURIUnescapeString) xmlURIUnescapeString __attribute((alias("xmlURIUnescapeString__internal_alias")));
+#else
+#ifndef xmlURIUnescapeString
+extern __typeof (xmlURIUnescapeString) xmlURIUnescapeString__internal_alias __attribute((visibility("hidden")));
#define xmlURIUnescapeString xmlURIUnescapeString__internal_alias
+#endif
+#endif
-extern __typeof (xmlUTF8Charcmp) xmlUTF8Charcmp__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlstring
+#undef xmlUTF8Charcmp
extern __typeof (xmlUTF8Charcmp) xmlUTF8Charcmp __attribute((alias("xmlUTF8Charcmp__internal_alias")));
+#else
+#ifndef xmlUTF8Charcmp
+extern __typeof (xmlUTF8Charcmp) xmlUTF8Charcmp__internal_alias __attribute((visibility("hidden")));
#define xmlUTF8Charcmp xmlUTF8Charcmp__internal_alias
+#endif
+#endif
-extern __typeof (xmlUTF8Size) xmlUTF8Size__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlstring
+#undef xmlUTF8Size
extern __typeof (xmlUTF8Size) xmlUTF8Size __attribute((alias("xmlUTF8Size__internal_alias")));
+#else
+#ifndef xmlUTF8Size
+extern __typeof (xmlUTF8Size) xmlUTF8Size__internal_alias __attribute((visibility("hidden")));
#define xmlUTF8Size xmlUTF8Size__internal_alias
+#endif
+#endif
-extern __typeof (xmlUTF8Strlen) xmlUTF8Strlen__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlstring
+#undef xmlUTF8Strlen
extern __typeof (xmlUTF8Strlen) xmlUTF8Strlen __attribute((alias("xmlUTF8Strlen__internal_alias")));
+#else
+#ifndef xmlUTF8Strlen
+extern __typeof (xmlUTF8Strlen) xmlUTF8Strlen__internal_alias __attribute((visibility("hidden")));
#define xmlUTF8Strlen xmlUTF8Strlen__internal_alias
+#endif
+#endif
-extern __typeof (xmlUTF8Strloc) xmlUTF8Strloc__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlstring
+#undef xmlUTF8Strloc
extern __typeof (xmlUTF8Strloc) xmlUTF8Strloc __attribute((alias("xmlUTF8Strloc__internal_alias")));
+#else
+#ifndef xmlUTF8Strloc
+extern __typeof (xmlUTF8Strloc) xmlUTF8Strloc__internal_alias __attribute((visibility("hidden")));
#define xmlUTF8Strloc xmlUTF8Strloc__internal_alias
+#endif
+#endif
-extern __typeof (xmlUTF8Strndup) xmlUTF8Strndup__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlstring
+#undef xmlUTF8Strndup
extern __typeof (xmlUTF8Strndup) xmlUTF8Strndup __attribute((alias("xmlUTF8Strndup__internal_alias")));
+#else
+#ifndef xmlUTF8Strndup
+extern __typeof (xmlUTF8Strndup) xmlUTF8Strndup__internal_alias __attribute((visibility("hidden")));
#define xmlUTF8Strndup xmlUTF8Strndup__internal_alias
+#endif
+#endif
-extern __typeof (xmlUTF8Strpos) xmlUTF8Strpos__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlstring
+#undef xmlUTF8Strpos
extern __typeof (xmlUTF8Strpos) xmlUTF8Strpos __attribute((alias("xmlUTF8Strpos__internal_alias")));
+#else
+#ifndef xmlUTF8Strpos
+extern __typeof (xmlUTF8Strpos) xmlUTF8Strpos__internal_alias __attribute((visibility("hidden")));
#define xmlUTF8Strpos xmlUTF8Strpos__internal_alias
+#endif
+#endif
-extern __typeof (xmlUTF8Strsize) xmlUTF8Strsize__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlstring
+#undef xmlUTF8Strsize
extern __typeof (xmlUTF8Strsize) xmlUTF8Strsize __attribute((alias("xmlUTF8Strsize__internal_alias")));
+#else
+#ifndef xmlUTF8Strsize
+extern __typeof (xmlUTF8Strsize) xmlUTF8Strsize__internal_alias __attribute((visibility("hidden")));
#define xmlUTF8Strsize xmlUTF8Strsize__internal_alias
+#endif
+#endif
-extern __typeof (xmlUTF8Strsub) xmlUTF8Strsub__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xmlstring
+#undef xmlUTF8Strsub
extern __typeof (xmlUTF8Strsub) xmlUTF8Strsub __attribute((alias("xmlUTF8Strsub__internal_alias")));
+#else
+#ifndef xmlUTF8Strsub
+extern __typeof (xmlUTF8Strsub) xmlUTF8Strsub__internal_alias __attribute((visibility("hidden")));
#define xmlUTF8Strsub xmlUTF8Strsub__internal_alias
+#endif
+#endif
-extern __typeof (xmlUnlinkNode) xmlUnlinkNode__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_tree
+#undef xmlUnlinkNode
extern __typeof (xmlUnlinkNode) xmlUnlinkNode __attribute((alias("xmlUnlinkNode__internal_alias")));
+#else
+#ifndef xmlUnlinkNode
+extern __typeof (xmlUnlinkNode) xmlUnlinkNode__internal_alias __attribute((visibility("hidden")));
#define xmlUnlinkNode xmlUnlinkNode__internal_alias
+#endif
+#endif
-extern __typeof (xmlUnlockLibrary) xmlUnlockLibrary__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_threads
+#undef xmlUnlockLibrary
extern __typeof (xmlUnlockLibrary) xmlUnlockLibrary __attribute((alias("xmlUnlockLibrary__internal_alias")));
+#else
+#ifndef xmlUnlockLibrary
+extern __typeof (xmlUnlockLibrary) xmlUnlockLibrary__internal_alias __attribute((visibility("hidden")));
#define xmlUnlockLibrary xmlUnlockLibrary__internal_alias
+#endif
+#endif
#if defined(LIBXML_TREE_ENABLED) || defined(LIBXML_SCHEMAS_ENABLED)
-extern __typeof (xmlUnsetNsProp) xmlUnsetNsProp__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_tree
+#undef xmlUnsetNsProp
extern __typeof (xmlUnsetNsProp) xmlUnsetNsProp __attribute((alias("xmlUnsetNsProp__internal_alias")));
+#else
+#ifndef xmlUnsetNsProp
+extern __typeof (xmlUnsetNsProp) xmlUnsetNsProp__internal_alias __attribute((visibility("hidden")));
#define xmlUnsetNsProp xmlUnsetNsProp__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_TREE_ENABLED) || defined(LIBXML_SCHEMAS_ENABLED)
-extern __typeof (xmlUnsetProp) xmlUnsetProp__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_tree
+#undef xmlUnsetProp
extern __typeof (xmlUnsetProp) xmlUnsetProp __attribute((alias("xmlUnsetProp__internal_alias")));
+#else
+#ifndef xmlUnsetProp
+extern __typeof (xmlUnsetProp) xmlUnsetProp__internal_alias __attribute((visibility("hidden")));
#define xmlUnsetProp xmlUnsetProp__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_VALID_ENABLED) && defined(LIBXML_REGEXP_ENABLED)
-extern __typeof (xmlValidBuildContentModel) xmlValidBuildContentModel__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_valid
+#undef xmlValidBuildContentModel
extern __typeof (xmlValidBuildContentModel) xmlValidBuildContentModel __attribute((alias("xmlValidBuildContentModel__internal_alias")));
+#else
+#ifndef xmlValidBuildContentModel
+extern __typeof (xmlValidBuildContentModel) xmlValidBuildContentModel__internal_alias __attribute((visibility("hidden")));
#define xmlValidBuildContentModel xmlValidBuildContentModel__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_VALID_ENABLED)
-extern __typeof (xmlValidCtxtNormalizeAttributeValue) xmlValidCtxtNormalizeAttributeValue__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_valid
+#undef xmlValidCtxtNormalizeAttributeValue
extern __typeof (xmlValidCtxtNormalizeAttributeValue) xmlValidCtxtNormalizeAttributeValue __attribute((alias("xmlValidCtxtNormalizeAttributeValue__internal_alias")));
+#else
+#ifndef xmlValidCtxtNormalizeAttributeValue
+extern __typeof (xmlValidCtxtNormalizeAttributeValue) xmlValidCtxtNormalizeAttributeValue__internal_alias __attribute((visibility("hidden")));
#define xmlValidCtxtNormalizeAttributeValue xmlValidCtxtNormalizeAttributeValue__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_VALID_ENABLED)
-extern __typeof (xmlValidGetPotentialChildren) xmlValidGetPotentialChildren__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_valid
+#undef xmlValidGetPotentialChildren
extern __typeof (xmlValidGetPotentialChildren) xmlValidGetPotentialChildren __attribute((alias("xmlValidGetPotentialChildren__internal_alias")));
+#else
+#ifndef xmlValidGetPotentialChildren
+extern __typeof (xmlValidGetPotentialChildren) xmlValidGetPotentialChildren__internal_alias __attribute((visibility("hidden")));
#define xmlValidGetPotentialChildren xmlValidGetPotentialChildren__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_VALID_ENABLED)
-extern __typeof (xmlValidGetValidElements) xmlValidGetValidElements__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_valid
+#undef xmlValidGetValidElements
extern __typeof (xmlValidGetValidElements) xmlValidGetValidElements __attribute((alias("xmlValidGetValidElements__internal_alias")));
+#else
+#ifndef xmlValidGetValidElements
+extern __typeof (xmlValidGetValidElements) xmlValidGetValidElements__internal_alias __attribute((visibility("hidden")));
#define xmlValidGetValidElements xmlValidGetValidElements__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_VALID_ENABLED)
-extern __typeof (xmlValidNormalizeAttributeValue) xmlValidNormalizeAttributeValue__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_valid
+#undef xmlValidNormalizeAttributeValue
extern __typeof (xmlValidNormalizeAttributeValue) xmlValidNormalizeAttributeValue __attribute((alias("xmlValidNormalizeAttributeValue__internal_alias")));
+#else
+#ifndef xmlValidNormalizeAttributeValue
+extern __typeof (xmlValidNormalizeAttributeValue) xmlValidNormalizeAttributeValue__internal_alias __attribute((visibility("hidden")));
#define xmlValidNormalizeAttributeValue xmlValidNormalizeAttributeValue__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_VALID_ENABLED)
-extern __typeof (xmlValidateAttributeDecl) xmlValidateAttributeDecl__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_valid
+#undef xmlValidateAttributeDecl
extern __typeof (xmlValidateAttributeDecl) xmlValidateAttributeDecl __attribute((alias("xmlValidateAttributeDecl__internal_alias")));
+#else
+#ifndef xmlValidateAttributeDecl
+extern __typeof (xmlValidateAttributeDecl) xmlValidateAttributeDecl__internal_alias __attribute((visibility("hidden")));
#define xmlValidateAttributeDecl xmlValidateAttributeDecl__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_VALID_ENABLED)
-extern __typeof (xmlValidateAttributeValue) xmlValidateAttributeValue__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_valid
+#undef xmlValidateAttributeValue
extern __typeof (xmlValidateAttributeValue) xmlValidateAttributeValue __attribute((alias("xmlValidateAttributeValue__internal_alias")));
+#else
+#ifndef xmlValidateAttributeValue
+extern __typeof (xmlValidateAttributeValue) xmlValidateAttributeValue__internal_alias __attribute((visibility("hidden")));
#define xmlValidateAttributeValue xmlValidateAttributeValue__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_VALID_ENABLED)
-extern __typeof (xmlValidateDocument) xmlValidateDocument__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_valid
+#undef xmlValidateDocument
extern __typeof (xmlValidateDocument) xmlValidateDocument __attribute((alias("xmlValidateDocument__internal_alias")));
+#else
+#ifndef xmlValidateDocument
+extern __typeof (xmlValidateDocument) xmlValidateDocument__internal_alias __attribute((visibility("hidden")));
#define xmlValidateDocument xmlValidateDocument__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_VALID_ENABLED)
-extern __typeof (xmlValidateDocumentFinal) xmlValidateDocumentFinal__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_valid
+#undef xmlValidateDocumentFinal
extern __typeof (xmlValidateDocumentFinal) xmlValidateDocumentFinal __attribute((alias("xmlValidateDocumentFinal__internal_alias")));
+#else
+#ifndef xmlValidateDocumentFinal
+extern __typeof (xmlValidateDocumentFinal) xmlValidateDocumentFinal__internal_alias __attribute((visibility("hidden")));
#define xmlValidateDocumentFinal xmlValidateDocumentFinal__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_VALID_ENABLED)
-extern __typeof (xmlValidateDtd) xmlValidateDtd__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_valid
+#undef xmlValidateDtd
extern __typeof (xmlValidateDtd) xmlValidateDtd __attribute((alias("xmlValidateDtd__internal_alias")));
+#else
+#ifndef xmlValidateDtd
+extern __typeof (xmlValidateDtd) xmlValidateDtd__internal_alias __attribute((visibility("hidden")));
#define xmlValidateDtd xmlValidateDtd__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_VALID_ENABLED)
-extern __typeof (xmlValidateDtdFinal) xmlValidateDtdFinal__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_valid
+#undef xmlValidateDtdFinal
extern __typeof (xmlValidateDtdFinal) xmlValidateDtdFinal __attribute((alias("xmlValidateDtdFinal__internal_alias")));
+#else
+#ifndef xmlValidateDtdFinal
+extern __typeof (xmlValidateDtdFinal) xmlValidateDtdFinal__internal_alias __attribute((visibility("hidden")));
#define xmlValidateDtdFinal xmlValidateDtdFinal__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_VALID_ENABLED)
-extern __typeof (xmlValidateElement) xmlValidateElement__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_valid
+#undef xmlValidateElement
extern __typeof (xmlValidateElement) xmlValidateElement __attribute((alias("xmlValidateElement__internal_alias")));
+#else
+#ifndef xmlValidateElement
+extern __typeof (xmlValidateElement) xmlValidateElement__internal_alias __attribute((visibility("hidden")));
#define xmlValidateElement xmlValidateElement__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_VALID_ENABLED)
-extern __typeof (xmlValidateElementDecl) xmlValidateElementDecl__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_valid
+#undef xmlValidateElementDecl
extern __typeof (xmlValidateElementDecl) xmlValidateElementDecl __attribute((alias("xmlValidateElementDecl__internal_alias")));
+#else
+#ifndef xmlValidateElementDecl
+extern __typeof (xmlValidateElementDecl) xmlValidateElementDecl__internal_alias __attribute((visibility("hidden")));
#define xmlValidateElementDecl xmlValidateElementDecl__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_TREE_ENABLED) || defined(LIBXML_XPATH_ENABLED) || defined(LIBXML_SCHEMAS_ENABLED) || defined(LIBXML_DEBUG_ENABLED)
-extern __typeof (xmlValidateNCName) xmlValidateNCName__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_tree
+#undef xmlValidateNCName
extern __typeof (xmlValidateNCName) xmlValidateNCName __attribute((alias("xmlValidateNCName__internal_alias")));
+#else
+#ifndef xmlValidateNCName
+extern __typeof (xmlValidateNCName) xmlValidateNCName__internal_alias __attribute((visibility("hidden")));
#define xmlValidateNCName xmlValidateNCName__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_TREE_ENABLED) || defined(LIBXML_SCHEMAS_ENABLED)
-extern __typeof (xmlValidateNMToken) xmlValidateNMToken__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_tree
+#undef xmlValidateNMToken
extern __typeof (xmlValidateNMToken) xmlValidateNMToken __attribute((alias("xmlValidateNMToken__internal_alias")));
+#else
+#ifndef xmlValidateNMToken
+extern __typeof (xmlValidateNMToken) xmlValidateNMToken__internal_alias __attribute((visibility("hidden")));
#define xmlValidateNMToken xmlValidateNMToken__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_TREE_ENABLED) || defined(LIBXML_SCHEMAS_ENABLED)
-extern __typeof (xmlValidateName) xmlValidateName__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_tree
+#undef xmlValidateName
extern __typeof (xmlValidateName) xmlValidateName __attribute((alias("xmlValidateName__internal_alias")));
+#else
+#ifndef xmlValidateName
+extern __typeof (xmlValidateName) xmlValidateName__internal_alias __attribute((visibility("hidden")));
#define xmlValidateName xmlValidateName__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_VALID_ENABLED)
-extern __typeof (xmlValidateNameValue) xmlValidateNameValue__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_valid
+#undef xmlValidateNameValue
extern __typeof (xmlValidateNameValue) xmlValidateNameValue __attribute((alias("xmlValidateNameValue__internal_alias")));
+#else
+#ifndef xmlValidateNameValue
+extern __typeof (xmlValidateNameValue) xmlValidateNameValue__internal_alias __attribute((visibility("hidden")));
#define xmlValidateNameValue xmlValidateNameValue__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_VALID_ENABLED)
-extern __typeof (xmlValidateNamesValue) xmlValidateNamesValue__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_valid
+#undef xmlValidateNamesValue
extern __typeof (xmlValidateNamesValue) xmlValidateNamesValue __attribute((alias("xmlValidateNamesValue__internal_alias")));
+#else
+#ifndef xmlValidateNamesValue
+extern __typeof (xmlValidateNamesValue) xmlValidateNamesValue__internal_alias __attribute((visibility("hidden")));
#define xmlValidateNamesValue xmlValidateNamesValue__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_VALID_ENABLED)
-extern __typeof (xmlValidateNmtokenValue) xmlValidateNmtokenValue__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_valid
+#undef xmlValidateNmtokenValue
extern __typeof (xmlValidateNmtokenValue) xmlValidateNmtokenValue __attribute((alias("xmlValidateNmtokenValue__internal_alias")));
+#else
+#ifndef xmlValidateNmtokenValue
+extern __typeof (xmlValidateNmtokenValue) xmlValidateNmtokenValue__internal_alias __attribute((visibility("hidden")));
#define xmlValidateNmtokenValue xmlValidateNmtokenValue__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_VALID_ENABLED)
-extern __typeof (xmlValidateNmtokensValue) xmlValidateNmtokensValue__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_valid
+#undef xmlValidateNmtokensValue
extern __typeof (xmlValidateNmtokensValue) xmlValidateNmtokensValue __attribute((alias("xmlValidateNmtokensValue__internal_alias")));
+#else
+#ifndef xmlValidateNmtokensValue
+extern __typeof (xmlValidateNmtokensValue) xmlValidateNmtokensValue__internal_alias __attribute((visibility("hidden")));
#define xmlValidateNmtokensValue xmlValidateNmtokensValue__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_VALID_ENABLED)
-extern __typeof (xmlValidateNotationDecl) xmlValidateNotationDecl__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_valid
+#undef xmlValidateNotationDecl
extern __typeof (xmlValidateNotationDecl) xmlValidateNotationDecl __attribute((alias("xmlValidateNotationDecl__internal_alias")));
+#else
+#ifndef xmlValidateNotationDecl
+extern __typeof (xmlValidateNotationDecl) xmlValidateNotationDecl__internal_alias __attribute((visibility("hidden")));
#define xmlValidateNotationDecl xmlValidateNotationDecl__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_VALID_ENABLED) || defined(LIBXML_SCHEMAS_ENABLED)
-extern __typeof (xmlValidateNotationUse) xmlValidateNotationUse__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_valid
+#undef xmlValidateNotationUse
extern __typeof (xmlValidateNotationUse) xmlValidateNotationUse __attribute((alias("xmlValidateNotationUse__internal_alias")));
+#else
+#ifndef xmlValidateNotationUse
+extern __typeof (xmlValidateNotationUse) xmlValidateNotationUse__internal_alias __attribute((visibility("hidden")));
#define xmlValidateNotationUse xmlValidateNotationUse__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_VALID_ENABLED)
-extern __typeof (xmlValidateOneAttribute) xmlValidateOneAttribute__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_valid
+#undef xmlValidateOneAttribute
extern __typeof (xmlValidateOneAttribute) xmlValidateOneAttribute __attribute((alias("xmlValidateOneAttribute__internal_alias")));
+#else
+#ifndef xmlValidateOneAttribute
+extern __typeof (xmlValidateOneAttribute) xmlValidateOneAttribute__internal_alias __attribute((visibility("hidden")));
#define xmlValidateOneAttribute xmlValidateOneAttribute__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_VALID_ENABLED)
-extern __typeof (xmlValidateOneElement) xmlValidateOneElement__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_valid
+#undef xmlValidateOneElement
extern __typeof (xmlValidateOneElement) xmlValidateOneElement __attribute((alias("xmlValidateOneElement__internal_alias")));
+#else
+#ifndef xmlValidateOneElement
+extern __typeof (xmlValidateOneElement) xmlValidateOneElement__internal_alias __attribute((visibility("hidden")));
#define xmlValidateOneElement xmlValidateOneElement__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_VALID_ENABLED)
-extern __typeof (xmlValidateOneNamespace) xmlValidateOneNamespace__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_valid
+#undef xmlValidateOneNamespace
extern __typeof (xmlValidateOneNamespace) xmlValidateOneNamespace __attribute((alias("xmlValidateOneNamespace__internal_alias")));
+#else
+#ifndef xmlValidateOneNamespace
+extern __typeof (xmlValidateOneNamespace) xmlValidateOneNamespace__internal_alias __attribute((visibility("hidden")));
#define xmlValidateOneNamespace xmlValidateOneNamespace__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_VALID_ENABLED) && defined(LIBXML_REGEXP_ENABLED)
-extern __typeof (xmlValidatePopElement) xmlValidatePopElement__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_valid
+#undef xmlValidatePopElement
extern __typeof (xmlValidatePopElement) xmlValidatePopElement __attribute((alias("xmlValidatePopElement__internal_alias")));
+#else
+#ifndef xmlValidatePopElement
+extern __typeof (xmlValidatePopElement) xmlValidatePopElement__internal_alias __attribute((visibility("hidden")));
#define xmlValidatePopElement xmlValidatePopElement__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_VALID_ENABLED) && defined(LIBXML_REGEXP_ENABLED)
-extern __typeof (xmlValidatePushCData) xmlValidatePushCData__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_valid
+#undef xmlValidatePushCData
extern __typeof (xmlValidatePushCData) xmlValidatePushCData __attribute((alias("xmlValidatePushCData__internal_alias")));
+#else
+#ifndef xmlValidatePushCData
+extern __typeof (xmlValidatePushCData) xmlValidatePushCData__internal_alias __attribute((visibility("hidden")));
#define xmlValidatePushCData xmlValidatePushCData__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_VALID_ENABLED) && defined(LIBXML_REGEXP_ENABLED)
-extern __typeof (xmlValidatePushElement) xmlValidatePushElement__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_valid
+#undef xmlValidatePushElement
extern __typeof (xmlValidatePushElement) xmlValidatePushElement __attribute((alias("xmlValidatePushElement__internal_alias")));
+#else
+#ifndef xmlValidatePushElement
+extern __typeof (xmlValidatePushElement) xmlValidatePushElement__internal_alias __attribute((visibility("hidden")));
#define xmlValidatePushElement xmlValidatePushElement__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_TREE_ENABLED) || defined(LIBXML_SCHEMAS_ENABLED)
-extern __typeof (xmlValidateQName) xmlValidateQName__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_tree
+#undef xmlValidateQName
extern __typeof (xmlValidateQName) xmlValidateQName __attribute((alias("xmlValidateQName__internal_alias")));
+#else
+#ifndef xmlValidateQName
+extern __typeof (xmlValidateQName) xmlValidateQName__internal_alias __attribute((visibility("hidden")));
#define xmlValidateQName xmlValidateQName__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_VALID_ENABLED)
-extern __typeof (xmlValidateRoot) xmlValidateRoot__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_valid
+#undef xmlValidateRoot
extern __typeof (xmlValidateRoot) xmlValidateRoot __attribute((alias("xmlValidateRoot__internal_alias")));
+#else
+#ifndef xmlValidateRoot
+extern __typeof (xmlValidateRoot) xmlValidateRoot__internal_alias __attribute((visibility("hidden")));
#define xmlValidateRoot xmlValidateRoot__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_XINCLUDE_ENABLED)
-extern __typeof (xmlXIncludeFreeContext) xmlXIncludeFreeContext__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xinclude
+#undef xmlXIncludeFreeContext
extern __typeof (xmlXIncludeFreeContext) xmlXIncludeFreeContext __attribute((alias("xmlXIncludeFreeContext__internal_alias")));
+#else
+#ifndef xmlXIncludeFreeContext
+extern __typeof (xmlXIncludeFreeContext) xmlXIncludeFreeContext__internal_alias __attribute((visibility("hidden")));
#define xmlXIncludeFreeContext xmlXIncludeFreeContext__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_XINCLUDE_ENABLED)
-extern __typeof (xmlXIncludeNewContext) xmlXIncludeNewContext__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xinclude
+#undef xmlXIncludeNewContext
extern __typeof (xmlXIncludeNewContext) xmlXIncludeNewContext __attribute((alias("xmlXIncludeNewContext__internal_alias")));
+#else
+#ifndef xmlXIncludeNewContext
+extern __typeof (xmlXIncludeNewContext) xmlXIncludeNewContext__internal_alias __attribute((visibility("hidden")));
#define xmlXIncludeNewContext xmlXIncludeNewContext__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_XINCLUDE_ENABLED)
-extern __typeof (xmlXIncludeProcess) xmlXIncludeProcess__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xinclude
+#undef xmlXIncludeProcess
extern __typeof (xmlXIncludeProcess) xmlXIncludeProcess __attribute((alias("xmlXIncludeProcess__internal_alias")));
+#else
+#ifndef xmlXIncludeProcess
+extern __typeof (xmlXIncludeProcess) xmlXIncludeProcess__internal_alias __attribute((visibility("hidden")));
#define xmlXIncludeProcess xmlXIncludeProcess__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_XINCLUDE_ENABLED)
-extern __typeof (xmlXIncludeProcessFlags) xmlXIncludeProcessFlags__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xinclude
+#undef xmlXIncludeProcessFlags
extern __typeof (xmlXIncludeProcessFlags) xmlXIncludeProcessFlags __attribute((alias("xmlXIncludeProcessFlags__internal_alias")));
+#else
+#ifndef xmlXIncludeProcessFlags
+extern __typeof (xmlXIncludeProcessFlags) xmlXIncludeProcessFlags__internal_alias __attribute((visibility("hidden")));
#define xmlXIncludeProcessFlags xmlXIncludeProcessFlags__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_XINCLUDE_ENABLED)
-extern __typeof (xmlXIncludeProcessNode) xmlXIncludeProcessNode__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xinclude
+#undef xmlXIncludeProcessNode
extern __typeof (xmlXIncludeProcessNode) xmlXIncludeProcessNode __attribute((alias("xmlXIncludeProcessNode__internal_alias")));
+#else
+#ifndef xmlXIncludeProcessNode
+extern __typeof (xmlXIncludeProcessNode) xmlXIncludeProcessNode__internal_alias __attribute((visibility("hidden")));
#define xmlXIncludeProcessNode xmlXIncludeProcessNode__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_XINCLUDE_ENABLED)
-extern __typeof (xmlXIncludeProcessTree) xmlXIncludeProcessTree__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xinclude
+#undef xmlXIncludeProcessTree
extern __typeof (xmlXIncludeProcessTree) xmlXIncludeProcessTree __attribute((alias("xmlXIncludeProcessTree__internal_alias")));
+#else
+#ifndef xmlXIncludeProcessTree
+extern __typeof (xmlXIncludeProcessTree) xmlXIncludeProcessTree__internal_alias __attribute((visibility("hidden")));
#define xmlXIncludeProcessTree xmlXIncludeProcessTree__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_XINCLUDE_ENABLED)
-extern __typeof (xmlXIncludeProcessTreeFlags) xmlXIncludeProcessTreeFlags__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xinclude
+#undef xmlXIncludeProcessTreeFlags
extern __typeof (xmlXIncludeProcessTreeFlags) xmlXIncludeProcessTreeFlags __attribute((alias("xmlXIncludeProcessTreeFlags__internal_alias")));
+#else
+#ifndef xmlXIncludeProcessTreeFlags
+extern __typeof (xmlXIncludeProcessTreeFlags) xmlXIncludeProcessTreeFlags__internal_alias __attribute((visibility("hidden")));
#define xmlXIncludeProcessTreeFlags xmlXIncludeProcessTreeFlags__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_XINCLUDE_ENABLED)
-extern __typeof (xmlXIncludeSetFlags) xmlXIncludeSetFlags__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xinclude
+#undef xmlXIncludeSetFlags
extern __typeof (xmlXIncludeSetFlags) xmlXIncludeSetFlags __attribute((alias("xmlXIncludeSetFlags__internal_alias")));
+#else
+#ifndef xmlXIncludeSetFlags
+extern __typeof (xmlXIncludeSetFlags) xmlXIncludeSetFlags__internal_alias __attribute((visibility("hidden")));
#define xmlXIncludeSetFlags xmlXIncludeSetFlags__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_XPATH_ENABLED)
-extern __typeof (xmlXPathAddValues) xmlXPathAddValues__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xpath
+#undef xmlXPathAddValues
extern __typeof (xmlXPathAddValues) xmlXPathAddValues __attribute((alias("xmlXPathAddValues__internal_alias")));
+#else
+#ifndef xmlXPathAddValues
+extern __typeof (xmlXPathAddValues) xmlXPathAddValues__internal_alias __attribute((visibility("hidden")));
#define xmlXPathAddValues xmlXPathAddValues__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_XPATH_ENABLED)
-extern __typeof (xmlXPathBooleanFunction) xmlXPathBooleanFunction__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xpath
+#undef xmlXPathBooleanFunction
extern __typeof (xmlXPathBooleanFunction) xmlXPathBooleanFunction __attribute((alias("xmlXPathBooleanFunction__internal_alias")));
+#else
+#ifndef xmlXPathBooleanFunction
+extern __typeof (xmlXPathBooleanFunction) xmlXPathBooleanFunction__internal_alias __attribute((visibility("hidden")));
#define xmlXPathBooleanFunction xmlXPathBooleanFunction__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_XPATH_ENABLED)
-extern __typeof (xmlXPathCastBooleanToNumber) xmlXPathCastBooleanToNumber__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xpath
+#undef xmlXPathCastBooleanToNumber
extern __typeof (xmlXPathCastBooleanToNumber) xmlXPathCastBooleanToNumber __attribute((alias("xmlXPathCastBooleanToNumber__internal_alias")));
+#else
+#ifndef xmlXPathCastBooleanToNumber
+extern __typeof (xmlXPathCastBooleanToNumber) xmlXPathCastBooleanToNumber__internal_alias __attribute((visibility("hidden")));
#define xmlXPathCastBooleanToNumber xmlXPathCastBooleanToNumber__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_XPATH_ENABLED)
-extern __typeof (xmlXPathCastBooleanToString) xmlXPathCastBooleanToString__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xpath
+#undef xmlXPathCastBooleanToString
extern __typeof (xmlXPathCastBooleanToString) xmlXPathCastBooleanToString __attribute((alias("xmlXPathCastBooleanToString__internal_alias")));
+#else
+#ifndef xmlXPathCastBooleanToString
+extern __typeof (xmlXPathCastBooleanToString) xmlXPathCastBooleanToString__internal_alias __attribute((visibility("hidden")));
#define xmlXPathCastBooleanToString xmlXPathCastBooleanToString__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_XPATH_ENABLED)
-extern __typeof (xmlXPathCastNodeSetToBoolean) xmlXPathCastNodeSetToBoolean__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xpath
+#undef xmlXPathCastNodeSetToBoolean
extern __typeof (xmlXPathCastNodeSetToBoolean) xmlXPathCastNodeSetToBoolean __attribute((alias("xmlXPathCastNodeSetToBoolean__internal_alias")));
+#else
+#ifndef xmlXPathCastNodeSetToBoolean
+extern __typeof (xmlXPathCastNodeSetToBoolean) xmlXPathCastNodeSetToBoolean__internal_alias __attribute((visibility("hidden")));
#define xmlXPathCastNodeSetToBoolean xmlXPathCastNodeSetToBoolean__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_XPATH_ENABLED)
-extern __typeof (xmlXPathCastNodeSetToNumber) xmlXPathCastNodeSetToNumber__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xpath
+#undef xmlXPathCastNodeSetToNumber
extern __typeof (xmlXPathCastNodeSetToNumber) xmlXPathCastNodeSetToNumber __attribute((alias("xmlXPathCastNodeSetToNumber__internal_alias")));
+#else
+#ifndef xmlXPathCastNodeSetToNumber
+extern __typeof (xmlXPathCastNodeSetToNumber) xmlXPathCastNodeSetToNumber__internal_alias __attribute((visibility("hidden")));
#define xmlXPathCastNodeSetToNumber xmlXPathCastNodeSetToNumber__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_XPATH_ENABLED)
-extern __typeof (xmlXPathCastNodeSetToString) xmlXPathCastNodeSetToString__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xpath
+#undef xmlXPathCastNodeSetToString
extern __typeof (xmlXPathCastNodeSetToString) xmlXPathCastNodeSetToString __attribute((alias("xmlXPathCastNodeSetToString__internal_alias")));
+#else
+#ifndef xmlXPathCastNodeSetToString
+extern __typeof (xmlXPathCastNodeSetToString) xmlXPathCastNodeSetToString__internal_alias __attribute((visibility("hidden")));
#define xmlXPathCastNodeSetToString xmlXPathCastNodeSetToString__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_XPATH_ENABLED)
-extern __typeof (xmlXPathCastNodeToNumber) xmlXPathCastNodeToNumber__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xpath
+#undef xmlXPathCastNodeToNumber
extern __typeof (xmlXPathCastNodeToNumber) xmlXPathCastNodeToNumber __attribute((alias("xmlXPathCastNodeToNumber__internal_alias")));
+#else
+#ifndef xmlXPathCastNodeToNumber
+extern __typeof (xmlXPathCastNodeToNumber) xmlXPathCastNodeToNumber__internal_alias __attribute((visibility("hidden")));
#define xmlXPathCastNodeToNumber xmlXPathCastNodeToNumber__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_XPATH_ENABLED)
-extern __typeof (xmlXPathCastNodeToString) xmlXPathCastNodeToString__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xpath
+#undef xmlXPathCastNodeToString
extern __typeof (xmlXPathCastNodeToString) xmlXPathCastNodeToString __attribute((alias("xmlXPathCastNodeToString__internal_alias")));
+#else
+#ifndef xmlXPathCastNodeToString
+extern __typeof (xmlXPathCastNodeToString) xmlXPathCastNodeToString__internal_alias __attribute((visibility("hidden")));
#define xmlXPathCastNodeToString xmlXPathCastNodeToString__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_XPATH_ENABLED)
-extern __typeof (xmlXPathCastNumberToBoolean) xmlXPathCastNumberToBoolean__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xpath
+#undef xmlXPathCastNumberToBoolean
extern __typeof (xmlXPathCastNumberToBoolean) xmlXPathCastNumberToBoolean __attribute((alias("xmlXPathCastNumberToBoolean__internal_alias")));
+#else
+#ifndef xmlXPathCastNumberToBoolean
+extern __typeof (xmlXPathCastNumberToBoolean) xmlXPathCastNumberToBoolean__internal_alias __attribute((visibility("hidden")));
#define xmlXPathCastNumberToBoolean xmlXPathCastNumberToBoolean__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_XPATH_ENABLED)
-extern __typeof (xmlXPathCastNumberToString) xmlXPathCastNumberToString__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xpath
+#undef xmlXPathCastNumberToString
extern __typeof (xmlXPathCastNumberToString) xmlXPathCastNumberToString __attribute((alias("xmlXPathCastNumberToString__internal_alias")));
+#else
+#ifndef xmlXPathCastNumberToString
+extern __typeof (xmlXPathCastNumberToString) xmlXPathCastNumberToString__internal_alias __attribute((visibility("hidden")));
#define xmlXPathCastNumberToString xmlXPathCastNumberToString__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_XPATH_ENABLED)
-extern __typeof (xmlXPathCastStringToBoolean) xmlXPathCastStringToBoolean__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xpath
+#undef xmlXPathCastStringToBoolean
extern __typeof (xmlXPathCastStringToBoolean) xmlXPathCastStringToBoolean __attribute((alias("xmlXPathCastStringToBoolean__internal_alias")));
+#else
+#ifndef xmlXPathCastStringToBoolean
+extern __typeof (xmlXPathCastStringToBoolean) xmlXPathCastStringToBoolean__internal_alias __attribute((visibility("hidden")));
#define xmlXPathCastStringToBoolean xmlXPathCastStringToBoolean__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_XPATH_ENABLED)
-extern __typeof (xmlXPathCastStringToNumber) xmlXPathCastStringToNumber__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xpath
+#undef xmlXPathCastStringToNumber
extern __typeof (xmlXPathCastStringToNumber) xmlXPathCastStringToNumber __attribute((alias("xmlXPathCastStringToNumber__internal_alias")));
+#else
+#ifndef xmlXPathCastStringToNumber
+extern __typeof (xmlXPathCastStringToNumber) xmlXPathCastStringToNumber__internal_alias __attribute((visibility("hidden")));
#define xmlXPathCastStringToNumber xmlXPathCastStringToNumber__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_XPATH_ENABLED)
-extern __typeof (xmlXPathCastToBoolean) xmlXPathCastToBoolean__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xpath
+#undef xmlXPathCastToBoolean
extern __typeof (xmlXPathCastToBoolean) xmlXPathCastToBoolean __attribute((alias("xmlXPathCastToBoolean__internal_alias")));
+#else
+#ifndef xmlXPathCastToBoolean
+extern __typeof (xmlXPathCastToBoolean) xmlXPathCastToBoolean__internal_alias __attribute((visibility("hidden")));
#define xmlXPathCastToBoolean xmlXPathCastToBoolean__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_XPATH_ENABLED)
-extern __typeof (xmlXPathCastToNumber) xmlXPathCastToNumber__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xpath
+#undef xmlXPathCastToNumber
extern __typeof (xmlXPathCastToNumber) xmlXPathCastToNumber __attribute((alias("xmlXPathCastToNumber__internal_alias")));
+#else
+#ifndef xmlXPathCastToNumber
+extern __typeof (xmlXPathCastToNumber) xmlXPathCastToNumber__internal_alias __attribute((visibility("hidden")));
#define xmlXPathCastToNumber xmlXPathCastToNumber__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_XPATH_ENABLED)
-extern __typeof (xmlXPathCastToString) xmlXPathCastToString__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xpath
+#undef xmlXPathCastToString
extern __typeof (xmlXPathCastToString) xmlXPathCastToString __attribute((alias("xmlXPathCastToString__internal_alias")));
+#else
+#ifndef xmlXPathCastToString
+extern __typeof (xmlXPathCastToString) xmlXPathCastToString__internal_alias __attribute((visibility("hidden")));
#define xmlXPathCastToString xmlXPathCastToString__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_XPATH_ENABLED)
-extern __typeof (xmlXPathCeilingFunction) xmlXPathCeilingFunction__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xpath
+#undef xmlXPathCeilingFunction
extern __typeof (xmlXPathCeilingFunction) xmlXPathCeilingFunction __attribute((alias("xmlXPathCeilingFunction__internal_alias")));
+#else
+#ifndef xmlXPathCeilingFunction
+extern __typeof (xmlXPathCeilingFunction) xmlXPathCeilingFunction__internal_alias __attribute((visibility("hidden")));
#define xmlXPathCeilingFunction xmlXPathCeilingFunction__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_XPATH_ENABLED)
-extern __typeof (xmlXPathCmpNodes) xmlXPathCmpNodes__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xpath
+#undef xmlXPathCmpNodes
extern __typeof (xmlXPathCmpNodes) xmlXPathCmpNodes __attribute((alias("xmlXPathCmpNodes__internal_alias")));
+#else
+#ifndef xmlXPathCmpNodes
+extern __typeof (xmlXPathCmpNodes) xmlXPathCmpNodes__internal_alias __attribute((visibility("hidden")));
#define xmlXPathCmpNodes xmlXPathCmpNodes__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_XPATH_ENABLED)
-extern __typeof (xmlXPathCompareValues) xmlXPathCompareValues__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xpath
+#undef xmlXPathCompareValues
extern __typeof (xmlXPathCompareValues) xmlXPathCompareValues __attribute((alias("xmlXPathCompareValues__internal_alias")));
+#else
+#ifndef xmlXPathCompareValues
+extern __typeof (xmlXPathCompareValues) xmlXPathCompareValues__internal_alias __attribute((visibility("hidden")));
#define xmlXPathCompareValues xmlXPathCompareValues__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_XPATH_ENABLED)
-extern __typeof (xmlXPathCompile) xmlXPathCompile__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xpath
+#undef xmlXPathCompile
extern __typeof (xmlXPathCompile) xmlXPathCompile __attribute((alias("xmlXPathCompile__internal_alias")));
+#else
+#ifndef xmlXPathCompile
+extern __typeof (xmlXPathCompile) xmlXPathCompile__internal_alias __attribute((visibility("hidden")));
#define xmlXPathCompile xmlXPathCompile__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_XPATH_ENABLED)
-extern __typeof (xmlXPathCompiledEval) xmlXPathCompiledEval__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xpath
+#undef xmlXPathCompiledEval
extern __typeof (xmlXPathCompiledEval) xmlXPathCompiledEval __attribute((alias("xmlXPathCompiledEval__internal_alias")));
+#else
+#ifndef xmlXPathCompiledEval
+extern __typeof (xmlXPathCompiledEval) xmlXPathCompiledEval__internal_alias __attribute((visibility("hidden")));
#define xmlXPathCompiledEval xmlXPathCompiledEval__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_XPATH_ENABLED)
-extern __typeof (xmlXPathConcatFunction) xmlXPathConcatFunction__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xpath
+#undef xmlXPathConcatFunction
extern __typeof (xmlXPathConcatFunction) xmlXPathConcatFunction __attribute((alias("xmlXPathConcatFunction__internal_alias")));
+#else
+#ifndef xmlXPathConcatFunction
+extern __typeof (xmlXPathConcatFunction) xmlXPathConcatFunction__internal_alias __attribute((visibility("hidden")));
#define xmlXPathConcatFunction xmlXPathConcatFunction__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_XPATH_ENABLED)
-extern __typeof (xmlXPathContainsFunction) xmlXPathContainsFunction__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xpath
+#undef xmlXPathContainsFunction
extern __typeof (xmlXPathContainsFunction) xmlXPathContainsFunction __attribute((alias("xmlXPathContainsFunction__internal_alias")));
+#else
+#ifndef xmlXPathContainsFunction
+extern __typeof (xmlXPathContainsFunction) xmlXPathContainsFunction__internal_alias __attribute((visibility("hidden")));
#define xmlXPathContainsFunction xmlXPathContainsFunction__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_XPATH_ENABLED)
-extern __typeof (xmlXPathConvertBoolean) xmlXPathConvertBoolean__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xpath
+#undef xmlXPathConvertBoolean
extern __typeof (xmlXPathConvertBoolean) xmlXPathConvertBoolean __attribute((alias("xmlXPathConvertBoolean__internal_alias")));
+#else
+#ifndef xmlXPathConvertBoolean
+extern __typeof (xmlXPathConvertBoolean) xmlXPathConvertBoolean__internal_alias __attribute((visibility("hidden")));
#define xmlXPathConvertBoolean xmlXPathConvertBoolean__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_XPATH_ENABLED)
-extern __typeof (xmlXPathConvertNumber) xmlXPathConvertNumber__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xpath
+#undef xmlXPathConvertNumber
extern __typeof (xmlXPathConvertNumber) xmlXPathConvertNumber __attribute((alias("xmlXPathConvertNumber__internal_alias")));
+#else
+#ifndef xmlXPathConvertNumber
+extern __typeof (xmlXPathConvertNumber) xmlXPathConvertNumber__internal_alias __attribute((visibility("hidden")));
#define xmlXPathConvertNumber xmlXPathConvertNumber__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_XPATH_ENABLED)
-extern __typeof (xmlXPathConvertString) xmlXPathConvertString__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xpath
+#undef xmlXPathConvertString
extern __typeof (xmlXPathConvertString) xmlXPathConvertString __attribute((alias("xmlXPathConvertString__internal_alias")));
+#else
+#ifndef xmlXPathConvertString
+extern __typeof (xmlXPathConvertString) xmlXPathConvertString__internal_alias __attribute((visibility("hidden")));
#define xmlXPathConvertString xmlXPathConvertString__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_XPATH_ENABLED)
-extern __typeof (xmlXPathCountFunction) xmlXPathCountFunction__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xpath
+#undef xmlXPathCountFunction
extern __typeof (xmlXPathCountFunction) xmlXPathCountFunction __attribute((alias("xmlXPathCountFunction__internal_alias")));
+#else
+#ifndef xmlXPathCountFunction
+extern __typeof (xmlXPathCountFunction) xmlXPathCountFunction__internal_alias __attribute((visibility("hidden")));
#define xmlXPathCountFunction xmlXPathCountFunction__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_XPATH_ENABLED)
-extern __typeof (xmlXPathCtxtCompile) xmlXPathCtxtCompile__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xpath
+#undef xmlXPathCtxtCompile
extern __typeof (xmlXPathCtxtCompile) xmlXPathCtxtCompile __attribute((alias("xmlXPathCtxtCompile__internal_alias")));
+#else
+#ifndef xmlXPathCtxtCompile
+extern __typeof (xmlXPathCtxtCompile) xmlXPathCtxtCompile__internal_alias __attribute((visibility("hidden")));
#define xmlXPathCtxtCompile xmlXPathCtxtCompile__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_XPATH_ENABLED) && defined(LIBXML_DEBUG_ENABLED)
-extern __typeof (xmlXPathDebugDumpCompExpr) xmlXPathDebugDumpCompExpr__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xpath
+#undef xmlXPathDebugDumpCompExpr
extern __typeof (xmlXPathDebugDumpCompExpr) xmlXPathDebugDumpCompExpr __attribute((alias("xmlXPathDebugDumpCompExpr__internal_alias")));
+#else
+#ifndef xmlXPathDebugDumpCompExpr
+extern __typeof (xmlXPathDebugDumpCompExpr) xmlXPathDebugDumpCompExpr__internal_alias __attribute((visibility("hidden")));
#define xmlXPathDebugDumpCompExpr xmlXPathDebugDumpCompExpr__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_XPATH_ENABLED) && defined(LIBXML_DEBUG_ENABLED)
-extern __typeof (xmlXPathDebugDumpObject) xmlXPathDebugDumpObject__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xpath
+#undef xmlXPathDebugDumpObject
extern __typeof (xmlXPathDebugDumpObject) xmlXPathDebugDumpObject __attribute((alias("xmlXPathDebugDumpObject__internal_alias")));
+#else
+#ifndef xmlXPathDebugDumpObject
+extern __typeof (xmlXPathDebugDumpObject) xmlXPathDebugDumpObject__internal_alias __attribute((visibility("hidden")));
#define xmlXPathDebugDumpObject xmlXPathDebugDumpObject__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_XPATH_ENABLED)
-extern __typeof (xmlXPathDifference) xmlXPathDifference__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xpath
+#undef xmlXPathDifference
extern __typeof (xmlXPathDifference) xmlXPathDifference __attribute((alias("xmlXPathDifference__internal_alias")));
+#else
+#ifndef xmlXPathDifference
+extern __typeof (xmlXPathDifference) xmlXPathDifference__internal_alias __attribute((visibility("hidden")));
#define xmlXPathDifference xmlXPathDifference__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_XPATH_ENABLED)
-extern __typeof (xmlXPathDistinct) xmlXPathDistinct__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xpath
+#undef xmlXPathDistinct
extern __typeof (xmlXPathDistinct) xmlXPathDistinct __attribute((alias("xmlXPathDistinct__internal_alias")));
+#else
+#ifndef xmlXPathDistinct
+extern __typeof (xmlXPathDistinct) xmlXPathDistinct__internal_alias __attribute((visibility("hidden")));
#define xmlXPathDistinct xmlXPathDistinct__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_XPATH_ENABLED)
-extern __typeof (xmlXPathDistinctSorted) xmlXPathDistinctSorted__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xpath
+#undef xmlXPathDistinctSorted
extern __typeof (xmlXPathDistinctSorted) xmlXPathDistinctSorted __attribute((alias("xmlXPathDistinctSorted__internal_alias")));
+#else
+#ifndef xmlXPathDistinctSorted
+extern __typeof (xmlXPathDistinctSorted) xmlXPathDistinctSorted__internal_alias __attribute((visibility("hidden")));
#define xmlXPathDistinctSorted xmlXPathDistinctSorted__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_XPATH_ENABLED)
-extern __typeof (xmlXPathDivValues) xmlXPathDivValues__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xpath
+#undef xmlXPathDivValues
extern __typeof (xmlXPathDivValues) xmlXPathDivValues __attribute((alias("xmlXPathDivValues__internal_alias")));
+#else
+#ifndef xmlXPathDivValues
+extern __typeof (xmlXPathDivValues) xmlXPathDivValues__internal_alias __attribute((visibility("hidden")));
#define xmlXPathDivValues xmlXPathDivValues__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_XPATH_ENABLED)
-extern __typeof (xmlXPathEqualValues) xmlXPathEqualValues__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xpath
+#undef xmlXPathEqualValues
extern __typeof (xmlXPathEqualValues) xmlXPathEqualValues __attribute((alias("xmlXPathEqualValues__internal_alias")));
+#else
+#ifndef xmlXPathEqualValues
+extern __typeof (xmlXPathEqualValues) xmlXPathEqualValues__internal_alias __attribute((visibility("hidden")));
#define xmlXPathEqualValues xmlXPathEqualValues__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_XPATH_ENABLED)
-extern __typeof (xmlXPathErr) xmlXPathErr__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xpath
+#undef xmlXPathErr
extern __typeof (xmlXPathErr) xmlXPathErr __attribute((alias("xmlXPathErr__internal_alias")));
+#else
+#ifndef xmlXPathErr
+extern __typeof (xmlXPathErr) xmlXPathErr__internal_alias __attribute((visibility("hidden")));
#define xmlXPathErr xmlXPathErr__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_XPATH_ENABLED)
-extern __typeof (xmlXPathEval) xmlXPathEval__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xpath
+#undef xmlXPathEval
extern __typeof (xmlXPathEval) xmlXPathEval __attribute((alias("xmlXPathEval__internal_alias")));
+#else
+#ifndef xmlXPathEval
+extern __typeof (xmlXPathEval) xmlXPathEval__internal_alias __attribute((visibility("hidden")));
#define xmlXPathEval xmlXPathEval__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_XPATH_ENABLED)
-extern __typeof (xmlXPathEvalExpr) xmlXPathEvalExpr__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xpath
+#undef xmlXPathEvalExpr
extern __typeof (xmlXPathEvalExpr) xmlXPathEvalExpr __attribute((alias("xmlXPathEvalExpr__internal_alias")));
+#else
+#ifndef xmlXPathEvalExpr
+extern __typeof (xmlXPathEvalExpr) xmlXPathEvalExpr__internal_alias __attribute((visibility("hidden")));
#define xmlXPathEvalExpr xmlXPathEvalExpr__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_XPATH_ENABLED)
-extern __typeof (xmlXPathEvalExpression) xmlXPathEvalExpression__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xpath
+#undef xmlXPathEvalExpression
extern __typeof (xmlXPathEvalExpression) xmlXPathEvalExpression __attribute((alias("xmlXPathEvalExpression__internal_alias")));
+#else
+#ifndef xmlXPathEvalExpression
+extern __typeof (xmlXPathEvalExpression) xmlXPathEvalExpression__internal_alias __attribute((visibility("hidden")));
#define xmlXPathEvalExpression xmlXPathEvalExpression__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_XPATH_ENABLED)
-extern __typeof (xmlXPathEvalPredicate) xmlXPathEvalPredicate__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xpath
+#undef xmlXPathEvalPredicate
extern __typeof (xmlXPathEvalPredicate) xmlXPathEvalPredicate __attribute((alias("xmlXPathEvalPredicate__internal_alias")));
+#else
+#ifndef xmlXPathEvalPredicate
+extern __typeof (xmlXPathEvalPredicate) xmlXPathEvalPredicate__internal_alias __attribute((visibility("hidden")));
#define xmlXPathEvalPredicate xmlXPathEvalPredicate__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_XPATH_ENABLED)
-extern __typeof (xmlXPathEvaluatePredicateResult) xmlXPathEvaluatePredicateResult__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xpath
+#undef xmlXPathEvaluatePredicateResult
extern __typeof (xmlXPathEvaluatePredicateResult) xmlXPathEvaluatePredicateResult __attribute((alias("xmlXPathEvaluatePredicateResult__internal_alias")));
+#else
+#ifndef xmlXPathEvaluatePredicateResult
+extern __typeof (xmlXPathEvaluatePredicateResult) xmlXPathEvaluatePredicateResult__internal_alias __attribute((visibility("hidden")));
#define xmlXPathEvaluatePredicateResult xmlXPathEvaluatePredicateResult__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_XPATH_ENABLED)
-extern __typeof (xmlXPathFalseFunction) xmlXPathFalseFunction__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xpath
+#undef xmlXPathFalseFunction
extern __typeof (xmlXPathFalseFunction) xmlXPathFalseFunction __attribute((alias("xmlXPathFalseFunction__internal_alias")));
+#else
+#ifndef xmlXPathFalseFunction
+extern __typeof (xmlXPathFalseFunction) xmlXPathFalseFunction__internal_alias __attribute((visibility("hidden")));
#define xmlXPathFalseFunction xmlXPathFalseFunction__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_XPATH_ENABLED)
-extern __typeof (xmlXPathFloorFunction) xmlXPathFloorFunction__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xpath
+#undef xmlXPathFloorFunction
extern __typeof (xmlXPathFloorFunction) xmlXPathFloorFunction __attribute((alias("xmlXPathFloorFunction__internal_alias")));
+#else
+#ifndef xmlXPathFloorFunction
+extern __typeof (xmlXPathFloorFunction) xmlXPathFloorFunction__internal_alias __attribute((visibility("hidden")));
#define xmlXPathFloorFunction xmlXPathFloorFunction__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_XPATH_ENABLED)
-extern __typeof (xmlXPathFreeCompExpr) xmlXPathFreeCompExpr__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xpath
+#undef xmlXPathFreeCompExpr
extern __typeof (xmlXPathFreeCompExpr) xmlXPathFreeCompExpr __attribute((alias("xmlXPathFreeCompExpr__internal_alias")));
+#else
+#ifndef xmlXPathFreeCompExpr
+extern __typeof (xmlXPathFreeCompExpr) xmlXPathFreeCompExpr__internal_alias __attribute((visibility("hidden")));
#define xmlXPathFreeCompExpr xmlXPathFreeCompExpr__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_XPATH_ENABLED)
-extern __typeof (xmlXPathFreeContext) xmlXPathFreeContext__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xpath
+#undef xmlXPathFreeContext
extern __typeof (xmlXPathFreeContext) xmlXPathFreeContext __attribute((alias("xmlXPathFreeContext__internal_alias")));
+#else
+#ifndef xmlXPathFreeContext
+extern __typeof (xmlXPathFreeContext) xmlXPathFreeContext__internal_alias __attribute((visibility("hidden")));
#define xmlXPathFreeContext xmlXPathFreeContext__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_XPATH_ENABLED)
-extern __typeof (xmlXPathFreeNodeSet) xmlXPathFreeNodeSet__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xpath
+#undef xmlXPathFreeNodeSet
extern __typeof (xmlXPathFreeNodeSet) xmlXPathFreeNodeSet __attribute((alias("xmlXPathFreeNodeSet__internal_alias")));
+#else
+#ifndef xmlXPathFreeNodeSet
+extern __typeof (xmlXPathFreeNodeSet) xmlXPathFreeNodeSet__internal_alias __attribute((visibility("hidden")));
#define xmlXPathFreeNodeSet xmlXPathFreeNodeSet__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_XPATH_ENABLED)
-extern __typeof (xmlXPathFreeNodeSetList) xmlXPathFreeNodeSetList__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xpath
+#undef xmlXPathFreeNodeSetList
extern __typeof (xmlXPathFreeNodeSetList) xmlXPathFreeNodeSetList __attribute((alias("xmlXPathFreeNodeSetList__internal_alias")));
+#else
+#ifndef xmlXPathFreeNodeSetList
+extern __typeof (xmlXPathFreeNodeSetList) xmlXPathFreeNodeSetList__internal_alias __attribute((visibility("hidden")));
#define xmlXPathFreeNodeSetList xmlXPathFreeNodeSetList__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_XPATH_ENABLED)
-extern __typeof (xmlXPathFreeObject) xmlXPathFreeObject__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xpath
+#undef xmlXPathFreeObject
extern __typeof (xmlXPathFreeObject) xmlXPathFreeObject __attribute((alias("xmlXPathFreeObject__internal_alias")));
+#else
+#ifndef xmlXPathFreeObject
+extern __typeof (xmlXPathFreeObject) xmlXPathFreeObject__internal_alias __attribute((visibility("hidden")));
#define xmlXPathFreeObject xmlXPathFreeObject__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_XPATH_ENABLED)
-extern __typeof (xmlXPathFreeParserContext) xmlXPathFreeParserContext__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xpath
+#undef xmlXPathFreeParserContext
extern __typeof (xmlXPathFreeParserContext) xmlXPathFreeParserContext __attribute((alias("xmlXPathFreeParserContext__internal_alias")));
+#else
+#ifndef xmlXPathFreeParserContext
+extern __typeof (xmlXPathFreeParserContext) xmlXPathFreeParserContext__internal_alias __attribute((visibility("hidden")));
#define xmlXPathFreeParserContext xmlXPathFreeParserContext__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_XPATH_ENABLED)
-extern __typeof (xmlXPathFunctionLookup) xmlXPathFunctionLookup__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xpath
+#undef xmlXPathFunctionLookup
extern __typeof (xmlXPathFunctionLookup) xmlXPathFunctionLookup __attribute((alias("xmlXPathFunctionLookup__internal_alias")));
+#else
+#ifndef xmlXPathFunctionLookup
+extern __typeof (xmlXPathFunctionLookup) xmlXPathFunctionLookup__internal_alias __attribute((visibility("hidden")));
#define xmlXPathFunctionLookup xmlXPathFunctionLookup__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_XPATH_ENABLED)
-extern __typeof (xmlXPathFunctionLookupNS) xmlXPathFunctionLookupNS__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xpath
+#undef xmlXPathFunctionLookupNS
extern __typeof (xmlXPathFunctionLookupNS) xmlXPathFunctionLookupNS __attribute((alias("xmlXPathFunctionLookupNS__internal_alias")));
+#else
+#ifndef xmlXPathFunctionLookupNS
+extern __typeof (xmlXPathFunctionLookupNS) xmlXPathFunctionLookupNS__internal_alias __attribute((visibility("hidden")));
#define xmlXPathFunctionLookupNS xmlXPathFunctionLookupNS__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_XPATH_ENABLED)
-extern __typeof (xmlXPathHasSameNodes) xmlXPathHasSameNodes__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xpath
+#undef xmlXPathHasSameNodes
extern __typeof (xmlXPathHasSameNodes) xmlXPathHasSameNodes __attribute((alias("xmlXPathHasSameNodes__internal_alias")));
+#else
+#ifndef xmlXPathHasSameNodes
+extern __typeof (xmlXPathHasSameNodes) xmlXPathHasSameNodes__internal_alias __attribute((visibility("hidden")));
#define xmlXPathHasSameNodes xmlXPathHasSameNodes__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_XPATH_ENABLED)
-extern __typeof (xmlXPathIdFunction) xmlXPathIdFunction__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xpath
+#undef xmlXPathIdFunction
extern __typeof (xmlXPathIdFunction) xmlXPathIdFunction __attribute((alias("xmlXPathIdFunction__internal_alias")));
+#else
+#ifndef xmlXPathIdFunction
+extern __typeof (xmlXPathIdFunction) xmlXPathIdFunction__internal_alias __attribute((visibility("hidden")));
#define xmlXPathIdFunction xmlXPathIdFunction__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_XPATH_ENABLED) || defined(LIBXML_SCHEMAS_ENABLED)
-extern __typeof (xmlXPathInit) xmlXPathInit__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xpath
+#undef xmlXPathInit
extern __typeof (xmlXPathInit) xmlXPathInit __attribute((alias("xmlXPathInit__internal_alias")));
+#else
+#ifndef xmlXPathInit
+extern __typeof (xmlXPathInit) xmlXPathInit__internal_alias __attribute((visibility("hidden")));
#define xmlXPathInit xmlXPathInit__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_XPATH_ENABLED)
-extern __typeof (xmlXPathIntersection) xmlXPathIntersection__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xpath
+#undef xmlXPathIntersection
extern __typeof (xmlXPathIntersection) xmlXPathIntersection __attribute((alias("xmlXPathIntersection__internal_alias")));
+#else
+#ifndef xmlXPathIntersection
+extern __typeof (xmlXPathIntersection) xmlXPathIntersection__internal_alias __attribute((visibility("hidden")));
#define xmlXPathIntersection xmlXPathIntersection__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_XPATH_ENABLED) || defined(LIBXML_SCHEMAS_ENABLED)
-extern __typeof (xmlXPathIsInf) xmlXPathIsInf__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xpath
+#undef xmlXPathIsInf
extern __typeof (xmlXPathIsInf) xmlXPathIsInf __attribute((alias("xmlXPathIsInf__internal_alias")));
+#else
+#ifndef xmlXPathIsInf
+extern __typeof (xmlXPathIsInf) xmlXPathIsInf__internal_alias __attribute((visibility("hidden")));
#define xmlXPathIsInf xmlXPathIsInf__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_XPATH_ENABLED) || defined(LIBXML_SCHEMAS_ENABLED)
-extern __typeof (xmlXPathIsNaN) xmlXPathIsNaN__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xpath
+#undef xmlXPathIsNaN
extern __typeof (xmlXPathIsNaN) xmlXPathIsNaN __attribute((alias("xmlXPathIsNaN__internal_alias")));
+#else
+#ifndef xmlXPathIsNaN
+extern __typeof (xmlXPathIsNaN) xmlXPathIsNaN__internal_alias __attribute((visibility("hidden")));
#define xmlXPathIsNaN xmlXPathIsNaN__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_XPATH_ENABLED)
-extern __typeof (xmlXPathIsNodeType) xmlXPathIsNodeType__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xpath
+#undef xmlXPathIsNodeType
extern __typeof (xmlXPathIsNodeType) xmlXPathIsNodeType __attribute((alias("xmlXPathIsNodeType__internal_alias")));
+#else
+#ifndef xmlXPathIsNodeType
+extern __typeof (xmlXPathIsNodeType) xmlXPathIsNodeType__internal_alias __attribute((visibility("hidden")));
#define xmlXPathIsNodeType xmlXPathIsNodeType__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_XPATH_ENABLED)
-extern __typeof (xmlXPathLangFunction) xmlXPathLangFunction__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xpath
+#undef xmlXPathLangFunction
extern __typeof (xmlXPathLangFunction) xmlXPathLangFunction __attribute((alias("xmlXPathLangFunction__internal_alias")));
+#else
+#ifndef xmlXPathLangFunction
+extern __typeof (xmlXPathLangFunction) xmlXPathLangFunction__internal_alias __attribute((visibility("hidden")));
#define xmlXPathLangFunction xmlXPathLangFunction__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_XPATH_ENABLED)
-extern __typeof (xmlXPathLastFunction) xmlXPathLastFunction__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xpath
+#undef xmlXPathLastFunction
extern __typeof (xmlXPathLastFunction) xmlXPathLastFunction __attribute((alias("xmlXPathLastFunction__internal_alias")));
+#else
+#ifndef xmlXPathLastFunction
+extern __typeof (xmlXPathLastFunction) xmlXPathLastFunction__internal_alias __attribute((visibility("hidden")));
#define xmlXPathLastFunction xmlXPathLastFunction__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_XPATH_ENABLED)
-extern __typeof (xmlXPathLeading) xmlXPathLeading__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xpath
+#undef xmlXPathLeading
extern __typeof (xmlXPathLeading) xmlXPathLeading __attribute((alias("xmlXPathLeading__internal_alias")));
+#else
+#ifndef xmlXPathLeading
+extern __typeof (xmlXPathLeading) xmlXPathLeading__internal_alias __attribute((visibility("hidden")));
#define xmlXPathLeading xmlXPathLeading__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_XPATH_ENABLED)
-extern __typeof (xmlXPathLeadingSorted) xmlXPathLeadingSorted__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xpath
+#undef xmlXPathLeadingSorted
extern __typeof (xmlXPathLeadingSorted) xmlXPathLeadingSorted __attribute((alias("xmlXPathLeadingSorted__internal_alias")));
+#else
+#ifndef xmlXPathLeadingSorted
+extern __typeof (xmlXPathLeadingSorted) xmlXPathLeadingSorted__internal_alias __attribute((visibility("hidden")));
#define xmlXPathLeadingSorted xmlXPathLeadingSorted__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_XPATH_ENABLED)
-extern __typeof (xmlXPathLocalNameFunction) xmlXPathLocalNameFunction__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xpath
+#undef xmlXPathLocalNameFunction
extern __typeof (xmlXPathLocalNameFunction) xmlXPathLocalNameFunction __attribute((alias("xmlXPathLocalNameFunction__internal_alias")));
+#else
+#ifndef xmlXPathLocalNameFunction
+extern __typeof (xmlXPathLocalNameFunction) xmlXPathLocalNameFunction__internal_alias __attribute((visibility("hidden")));
#define xmlXPathLocalNameFunction xmlXPathLocalNameFunction__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_XPATH_ENABLED)
-extern __typeof (xmlXPathModValues) xmlXPathModValues__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xpath
+#undef xmlXPathModValues
extern __typeof (xmlXPathModValues) xmlXPathModValues __attribute((alias("xmlXPathModValues__internal_alias")));
+#else
+#ifndef xmlXPathModValues
+extern __typeof (xmlXPathModValues) xmlXPathModValues__internal_alias __attribute((visibility("hidden")));
#define xmlXPathModValues xmlXPathModValues__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_XPATH_ENABLED)
-extern __typeof (xmlXPathMultValues) xmlXPathMultValues__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xpath
+#undef xmlXPathMultValues
extern __typeof (xmlXPathMultValues) xmlXPathMultValues __attribute((alias("xmlXPathMultValues__internal_alias")));
+#else
+#ifndef xmlXPathMultValues
+extern __typeof (xmlXPathMultValues) xmlXPathMultValues__internal_alias __attribute((visibility("hidden")));
#define xmlXPathMultValues xmlXPathMultValues__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_XPATH_ENABLED)
-extern __typeof (xmlXPathNamespaceURIFunction) xmlXPathNamespaceURIFunction__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xpath
+#undef xmlXPathNamespaceURIFunction
extern __typeof (xmlXPathNamespaceURIFunction) xmlXPathNamespaceURIFunction __attribute((alias("xmlXPathNamespaceURIFunction__internal_alias")));
+#else
+#ifndef xmlXPathNamespaceURIFunction
+extern __typeof (xmlXPathNamespaceURIFunction) xmlXPathNamespaceURIFunction__internal_alias __attribute((visibility("hidden")));
#define xmlXPathNamespaceURIFunction xmlXPathNamespaceURIFunction__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_XPATH_ENABLED)
-extern __typeof (xmlXPathNewBoolean) xmlXPathNewBoolean__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xpath
+#undef xmlXPathNewBoolean
extern __typeof (xmlXPathNewBoolean) xmlXPathNewBoolean __attribute((alias("xmlXPathNewBoolean__internal_alias")));
+#else
+#ifndef xmlXPathNewBoolean
+extern __typeof (xmlXPathNewBoolean) xmlXPathNewBoolean__internal_alias __attribute((visibility("hidden")));
#define xmlXPathNewBoolean xmlXPathNewBoolean__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_XPATH_ENABLED)
-extern __typeof (xmlXPathNewCString) xmlXPathNewCString__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xpath
+#undef xmlXPathNewCString
extern __typeof (xmlXPathNewCString) xmlXPathNewCString __attribute((alias("xmlXPathNewCString__internal_alias")));
+#else
+#ifndef xmlXPathNewCString
+extern __typeof (xmlXPathNewCString) xmlXPathNewCString__internal_alias __attribute((visibility("hidden")));
#define xmlXPathNewCString xmlXPathNewCString__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_XPATH_ENABLED)
-extern __typeof (xmlXPathNewContext) xmlXPathNewContext__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xpath
+#undef xmlXPathNewContext
extern __typeof (xmlXPathNewContext) xmlXPathNewContext __attribute((alias("xmlXPathNewContext__internal_alias")));
+#else
+#ifndef xmlXPathNewContext
+extern __typeof (xmlXPathNewContext) xmlXPathNewContext__internal_alias __attribute((visibility("hidden")));
#define xmlXPathNewContext xmlXPathNewContext__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_XPATH_ENABLED)
-extern __typeof (xmlXPathNewFloat) xmlXPathNewFloat__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xpath
+#undef xmlXPathNewFloat
extern __typeof (xmlXPathNewFloat) xmlXPathNewFloat __attribute((alias("xmlXPathNewFloat__internal_alias")));
+#else
+#ifndef xmlXPathNewFloat
+extern __typeof (xmlXPathNewFloat) xmlXPathNewFloat__internal_alias __attribute((visibility("hidden")));
#define xmlXPathNewFloat xmlXPathNewFloat__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_XPATH_ENABLED)
-extern __typeof (xmlXPathNewNodeSet) xmlXPathNewNodeSet__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xpath
+#undef xmlXPathNewNodeSet
extern __typeof (xmlXPathNewNodeSet) xmlXPathNewNodeSet __attribute((alias("xmlXPathNewNodeSet__internal_alias")));
+#else
+#ifndef xmlXPathNewNodeSet
+extern __typeof (xmlXPathNewNodeSet) xmlXPathNewNodeSet__internal_alias __attribute((visibility("hidden")));
#define xmlXPathNewNodeSet xmlXPathNewNodeSet__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_XPATH_ENABLED)
-extern __typeof (xmlXPathNewNodeSetList) xmlXPathNewNodeSetList__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xpath
+#undef xmlXPathNewNodeSetList
extern __typeof (xmlXPathNewNodeSetList) xmlXPathNewNodeSetList __attribute((alias("xmlXPathNewNodeSetList__internal_alias")));
+#else
+#ifndef xmlXPathNewNodeSetList
+extern __typeof (xmlXPathNewNodeSetList) xmlXPathNewNodeSetList__internal_alias __attribute((visibility("hidden")));
#define xmlXPathNewNodeSetList xmlXPathNewNodeSetList__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_XPATH_ENABLED)
-extern __typeof (xmlXPathNewParserContext) xmlXPathNewParserContext__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xpath
+#undef xmlXPathNewParserContext
extern __typeof (xmlXPathNewParserContext) xmlXPathNewParserContext __attribute((alias("xmlXPathNewParserContext__internal_alias")));
+#else
+#ifndef xmlXPathNewParserContext
+extern __typeof (xmlXPathNewParserContext) xmlXPathNewParserContext__internal_alias __attribute((visibility("hidden")));
#define xmlXPathNewParserContext xmlXPathNewParserContext__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_XPATH_ENABLED)
-extern __typeof (xmlXPathNewString) xmlXPathNewString__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xpath
+#undef xmlXPathNewString
extern __typeof (xmlXPathNewString) xmlXPathNewString __attribute((alias("xmlXPathNewString__internal_alias")));
+#else
+#ifndef xmlXPathNewString
+extern __typeof (xmlXPathNewString) xmlXPathNewString__internal_alias __attribute((visibility("hidden")));
#define xmlXPathNewString xmlXPathNewString__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_XPATH_ENABLED)
-extern __typeof (xmlXPathNewValueTree) xmlXPathNewValueTree__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xpath
+#undef xmlXPathNewValueTree
extern __typeof (xmlXPathNewValueTree) xmlXPathNewValueTree __attribute((alias("xmlXPathNewValueTree__internal_alias")));
+#else
+#ifndef xmlXPathNewValueTree
+extern __typeof (xmlXPathNewValueTree) xmlXPathNewValueTree__internal_alias __attribute((visibility("hidden")));
#define xmlXPathNewValueTree xmlXPathNewValueTree__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_XPATH_ENABLED)
-extern __typeof (xmlXPathNextAncestor) xmlXPathNextAncestor__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xpath
+#undef xmlXPathNextAncestor
extern __typeof (xmlXPathNextAncestor) xmlXPathNextAncestor __attribute((alias("xmlXPathNextAncestor__internal_alias")));
+#else
+#ifndef xmlXPathNextAncestor
+extern __typeof (xmlXPathNextAncestor) xmlXPathNextAncestor__internal_alias __attribute((visibility("hidden")));
#define xmlXPathNextAncestor xmlXPathNextAncestor__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_XPATH_ENABLED)
-extern __typeof (xmlXPathNextAncestorOrSelf) xmlXPathNextAncestorOrSelf__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xpath
+#undef xmlXPathNextAncestorOrSelf
extern __typeof (xmlXPathNextAncestorOrSelf) xmlXPathNextAncestorOrSelf __attribute((alias("xmlXPathNextAncestorOrSelf__internal_alias")));
+#else
+#ifndef xmlXPathNextAncestorOrSelf
+extern __typeof (xmlXPathNextAncestorOrSelf) xmlXPathNextAncestorOrSelf__internal_alias __attribute((visibility("hidden")));
#define xmlXPathNextAncestorOrSelf xmlXPathNextAncestorOrSelf__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_XPATH_ENABLED)
-extern __typeof (xmlXPathNextAttribute) xmlXPathNextAttribute__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xpath
+#undef xmlXPathNextAttribute
extern __typeof (xmlXPathNextAttribute) xmlXPathNextAttribute __attribute((alias("xmlXPathNextAttribute__internal_alias")));
+#else
+#ifndef xmlXPathNextAttribute
+extern __typeof (xmlXPathNextAttribute) xmlXPathNextAttribute__internal_alias __attribute((visibility("hidden")));
#define xmlXPathNextAttribute xmlXPathNextAttribute__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_XPATH_ENABLED)
-extern __typeof (xmlXPathNextChild) xmlXPathNextChild__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xpath
+#undef xmlXPathNextChild
extern __typeof (xmlXPathNextChild) xmlXPathNextChild __attribute((alias("xmlXPathNextChild__internal_alias")));
+#else
+#ifndef xmlXPathNextChild
+extern __typeof (xmlXPathNextChild) xmlXPathNextChild__internal_alias __attribute((visibility("hidden")));
#define xmlXPathNextChild xmlXPathNextChild__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_XPATH_ENABLED)
-extern __typeof (xmlXPathNextDescendant) xmlXPathNextDescendant__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xpath
+#undef xmlXPathNextDescendant
extern __typeof (xmlXPathNextDescendant) xmlXPathNextDescendant __attribute((alias("xmlXPathNextDescendant__internal_alias")));
+#else
+#ifndef xmlXPathNextDescendant
+extern __typeof (xmlXPathNextDescendant) xmlXPathNextDescendant__internal_alias __attribute((visibility("hidden")));
#define xmlXPathNextDescendant xmlXPathNextDescendant__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_XPATH_ENABLED)
-extern __typeof (xmlXPathNextDescendantOrSelf) xmlXPathNextDescendantOrSelf__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xpath
+#undef xmlXPathNextDescendantOrSelf
extern __typeof (xmlXPathNextDescendantOrSelf) xmlXPathNextDescendantOrSelf __attribute((alias("xmlXPathNextDescendantOrSelf__internal_alias")));
+#else
+#ifndef xmlXPathNextDescendantOrSelf
+extern __typeof (xmlXPathNextDescendantOrSelf) xmlXPathNextDescendantOrSelf__internal_alias __attribute((visibility("hidden")));
#define xmlXPathNextDescendantOrSelf xmlXPathNextDescendantOrSelf__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_XPATH_ENABLED)
-extern __typeof (xmlXPathNextFollowing) xmlXPathNextFollowing__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xpath
+#undef xmlXPathNextFollowing
extern __typeof (xmlXPathNextFollowing) xmlXPathNextFollowing __attribute((alias("xmlXPathNextFollowing__internal_alias")));
+#else
+#ifndef xmlXPathNextFollowing
+extern __typeof (xmlXPathNextFollowing) xmlXPathNextFollowing__internal_alias __attribute((visibility("hidden")));
#define xmlXPathNextFollowing xmlXPathNextFollowing__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_XPATH_ENABLED)
-extern __typeof (xmlXPathNextFollowingSibling) xmlXPathNextFollowingSibling__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xpath
+#undef xmlXPathNextFollowingSibling
extern __typeof (xmlXPathNextFollowingSibling) xmlXPathNextFollowingSibling __attribute((alias("xmlXPathNextFollowingSibling__internal_alias")));
+#else
+#ifndef xmlXPathNextFollowingSibling
+extern __typeof (xmlXPathNextFollowingSibling) xmlXPathNextFollowingSibling__internal_alias __attribute((visibility("hidden")));
#define xmlXPathNextFollowingSibling xmlXPathNextFollowingSibling__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_XPATH_ENABLED)
-extern __typeof (xmlXPathNextNamespace) xmlXPathNextNamespace__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xpath
+#undef xmlXPathNextNamespace
extern __typeof (xmlXPathNextNamespace) xmlXPathNextNamespace __attribute((alias("xmlXPathNextNamespace__internal_alias")));
+#else
+#ifndef xmlXPathNextNamespace
+extern __typeof (xmlXPathNextNamespace) xmlXPathNextNamespace__internal_alias __attribute((visibility("hidden")));
#define xmlXPathNextNamespace xmlXPathNextNamespace__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_XPATH_ENABLED)
-extern __typeof (xmlXPathNextParent) xmlXPathNextParent__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xpath
+#undef xmlXPathNextParent
extern __typeof (xmlXPathNextParent) xmlXPathNextParent __attribute((alias("xmlXPathNextParent__internal_alias")));
+#else
+#ifndef xmlXPathNextParent
+extern __typeof (xmlXPathNextParent) xmlXPathNextParent__internal_alias __attribute((visibility("hidden")));
#define xmlXPathNextParent xmlXPathNextParent__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_XPATH_ENABLED)
-extern __typeof (xmlXPathNextPreceding) xmlXPathNextPreceding__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xpath
+#undef xmlXPathNextPreceding
extern __typeof (xmlXPathNextPreceding) xmlXPathNextPreceding __attribute((alias("xmlXPathNextPreceding__internal_alias")));
+#else
+#ifndef xmlXPathNextPreceding
+extern __typeof (xmlXPathNextPreceding) xmlXPathNextPreceding__internal_alias __attribute((visibility("hidden")));
#define xmlXPathNextPreceding xmlXPathNextPreceding__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_XPATH_ENABLED)
-extern __typeof (xmlXPathNextPrecedingSibling) xmlXPathNextPrecedingSibling__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xpath
+#undef xmlXPathNextPrecedingSibling
extern __typeof (xmlXPathNextPrecedingSibling) xmlXPathNextPrecedingSibling __attribute((alias("xmlXPathNextPrecedingSibling__internal_alias")));
+#else
+#ifndef xmlXPathNextPrecedingSibling
+extern __typeof (xmlXPathNextPrecedingSibling) xmlXPathNextPrecedingSibling__internal_alias __attribute((visibility("hidden")));
#define xmlXPathNextPrecedingSibling xmlXPathNextPrecedingSibling__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_XPATH_ENABLED)
-extern __typeof (xmlXPathNextSelf) xmlXPathNextSelf__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xpath
+#undef xmlXPathNextSelf
extern __typeof (xmlXPathNextSelf) xmlXPathNextSelf __attribute((alias("xmlXPathNextSelf__internal_alias")));
+#else
+#ifndef xmlXPathNextSelf
+extern __typeof (xmlXPathNextSelf) xmlXPathNextSelf__internal_alias __attribute((visibility("hidden")));
#define xmlXPathNextSelf xmlXPathNextSelf__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_XPATH_ENABLED)
-extern __typeof (xmlXPathNodeLeading) xmlXPathNodeLeading__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xpath
+#undef xmlXPathNodeLeading
extern __typeof (xmlXPathNodeLeading) xmlXPathNodeLeading __attribute((alias("xmlXPathNodeLeading__internal_alias")));
+#else
+#ifndef xmlXPathNodeLeading
+extern __typeof (xmlXPathNodeLeading) xmlXPathNodeLeading__internal_alias __attribute((visibility("hidden")));
#define xmlXPathNodeLeading xmlXPathNodeLeading__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_XPATH_ENABLED)
-extern __typeof (xmlXPathNodeLeadingSorted) xmlXPathNodeLeadingSorted__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xpath
+#undef xmlXPathNodeLeadingSorted
extern __typeof (xmlXPathNodeLeadingSorted) xmlXPathNodeLeadingSorted __attribute((alias("xmlXPathNodeLeadingSorted__internal_alias")));
+#else
+#ifndef xmlXPathNodeLeadingSorted
+extern __typeof (xmlXPathNodeLeadingSorted) xmlXPathNodeLeadingSorted__internal_alias __attribute((visibility("hidden")));
#define xmlXPathNodeLeadingSorted xmlXPathNodeLeadingSorted__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_XPATH_ENABLED)
-extern __typeof (xmlXPathNodeSetAdd) xmlXPathNodeSetAdd__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xpath
+#undef xmlXPathNodeSetAdd
extern __typeof (xmlXPathNodeSetAdd) xmlXPathNodeSetAdd __attribute((alias("xmlXPathNodeSetAdd__internal_alias")));
+#else
+#ifndef xmlXPathNodeSetAdd
+extern __typeof (xmlXPathNodeSetAdd) xmlXPathNodeSetAdd__internal_alias __attribute((visibility("hidden")));
#define xmlXPathNodeSetAdd xmlXPathNodeSetAdd__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_XPATH_ENABLED)
-extern __typeof (xmlXPathNodeSetAddNs) xmlXPathNodeSetAddNs__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xpath
+#undef xmlXPathNodeSetAddNs
extern __typeof (xmlXPathNodeSetAddNs) xmlXPathNodeSetAddNs __attribute((alias("xmlXPathNodeSetAddNs__internal_alias")));
+#else
+#ifndef xmlXPathNodeSetAddNs
+extern __typeof (xmlXPathNodeSetAddNs) xmlXPathNodeSetAddNs__internal_alias __attribute((visibility("hidden")));
#define xmlXPathNodeSetAddNs xmlXPathNodeSetAddNs__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_XPATH_ENABLED)
-extern __typeof (xmlXPathNodeSetAddUnique) xmlXPathNodeSetAddUnique__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xpath
+#undef xmlXPathNodeSetAddUnique
extern __typeof (xmlXPathNodeSetAddUnique) xmlXPathNodeSetAddUnique __attribute((alias("xmlXPathNodeSetAddUnique__internal_alias")));
+#else
+#ifndef xmlXPathNodeSetAddUnique
+extern __typeof (xmlXPathNodeSetAddUnique) xmlXPathNodeSetAddUnique__internal_alias __attribute((visibility("hidden")));
#define xmlXPathNodeSetAddUnique xmlXPathNodeSetAddUnique__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_XPATH_ENABLED)
-extern __typeof (xmlXPathNodeSetContains) xmlXPathNodeSetContains__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xpath
+#undef xmlXPathNodeSetContains
extern __typeof (xmlXPathNodeSetContains) xmlXPathNodeSetContains __attribute((alias("xmlXPathNodeSetContains__internal_alias")));
+#else
+#ifndef xmlXPathNodeSetContains
+extern __typeof (xmlXPathNodeSetContains) xmlXPathNodeSetContains__internal_alias __attribute((visibility("hidden")));
#define xmlXPathNodeSetContains xmlXPathNodeSetContains__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_XPATH_ENABLED)
-extern __typeof (xmlXPathNodeSetCreate) xmlXPathNodeSetCreate__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xpath
+#undef xmlXPathNodeSetCreate
extern __typeof (xmlXPathNodeSetCreate) xmlXPathNodeSetCreate __attribute((alias("xmlXPathNodeSetCreate__internal_alias")));
+#else
+#ifndef xmlXPathNodeSetCreate
+extern __typeof (xmlXPathNodeSetCreate) xmlXPathNodeSetCreate__internal_alias __attribute((visibility("hidden")));
#define xmlXPathNodeSetCreate xmlXPathNodeSetCreate__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_XPATH_ENABLED)
-extern __typeof (xmlXPathNodeSetDel) xmlXPathNodeSetDel__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xpath
+#undef xmlXPathNodeSetDel
extern __typeof (xmlXPathNodeSetDel) xmlXPathNodeSetDel __attribute((alias("xmlXPathNodeSetDel__internal_alias")));
+#else
+#ifndef xmlXPathNodeSetDel
+extern __typeof (xmlXPathNodeSetDel) xmlXPathNodeSetDel__internal_alias __attribute((visibility("hidden")));
#define xmlXPathNodeSetDel xmlXPathNodeSetDel__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_XPATH_ENABLED)
-extern __typeof (xmlXPathNodeSetFreeNs) xmlXPathNodeSetFreeNs__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xpath
+#undef xmlXPathNodeSetFreeNs
extern __typeof (xmlXPathNodeSetFreeNs) xmlXPathNodeSetFreeNs __attribute((alias("xmlXPathNodeSetFreeNs__internal_alias")));
+#else
+#ifndef xmlXPathNodeSetFreeNs
+extern __typeof (xmlXPathNodeSetFreeNs) xmlXPathNodeSetFreeNs__internal_alias __attribute((visibility("hidden")));
#define xmlXPathNodeSetFreeNs xmlXPathNodeSetFreeNs__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_XPATH_ENABLED)
-extern __typeof (xmlXPathNodeSetMerge) xmlXPathNodeSetMerge__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xpath
+#undef xmlXPathNodeSetMerge
extern __typeof (xmlXPathNodeSetMerge) xmlXPathNodeSetMerge __attribute((alias("xmlXPathNodeSetMerge__internal_alias")));
+#else
+#ifndef xmlXPathNodeSetMerge
+extern __typeof (xmlXPathNodeSetMerge) xmlXPathNodeSetMerge__internal_alias __attribute((visibility("hidden")));
#define xmlXPathNodeSetMerge xmlXPathNodeSetMerge__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_XPATH_ENABLED)
-extern __typeof (xmlXPathNodeSetRemove) xmlXPathNodeSetRemove__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xpath
+#undef xmlXPathNodeSetRemove
extern __typeof (xmlXPathNodeSetRemove) xmlXPathNodeSetRemove __attribute((alias("xmlXPathNodeSetRemove__internal_alias")));
+#else
+#ifndef xmlXPathNodeSetRemove
+extern __typeof (xmlXPathNodeSetRemove) xmlXPathNodeSetRemove__internal_alias __attribute((visibility("hidden")));
#define xmlXPathNodeSetRemove xmlXPathNodeSetRemove__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_XPATH_ENABLED)
-extern __typeof (xmlXPathNodeSetSort) xmlXPathNodeSetSort__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xpath
+#undef xmlXPathNodeSetSort
extern __typeof (xmlXPathNodeSetSort) xmlXPathNodeSetSort __attribute((alias("xmlXPathNodeSetSort__internal_alias")));
+#else
+#ifndef xmlXPathNodeSetSort
+extern __typeof (xmlXPathNodeSetSort) xmlXPathNodeSetSort__internal_alias __attribute((visibility("hidden")));
#define xmlXPathNodeSetSort xmlXPathNodeSetSort__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_XPATH_ENABLED)
-extern __typeof (xmlXPathNodeTrailing) xmlXPathNodeTrailing__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xpath
+#undef xmlXPathNodeTrailing
extern __typeof (xmlXPathNodeTrailing) xmlXPathNodeTrailing __attribute((alias("xmlXPathNodeTrailing__internal_alias")));
+#else
+#ifndef xmlXPathNodeTrailing
+extern __typeof (xmlXPathNodeTrailing) xmlXPathNodeTrailing__internal_alias __attribute((visibility("hidden")));
#define xmlXPathNodeTrailing xmlXPathNodeTrailing__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_XPATH_ENABLED)
-extern __typeof (xmlXPathNodeTrailingSorted) xmlXPathNodeTrailingSorted__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xpath
+#undef xmlXPathNodeTrailingSorted
extern __typeof (xmlXPathNodeTrailingSorted) xmlXPathNodeTrailingSorted __attribute((alias("xmlXPathNodeTrailingSorted__internal_alias")));
+#else
+#ifndef xmlXPathNodeTrailingSorted
+extern __typeof (xmlXPathNodeTrailingSorted) xmlXPathNodeTrailingSorted__internal_alias __attribute((visibility("hidden")));
#define xmlXPathNodeTrailingSorted xmlXPathNodeTrailingSorted__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_XPATH_ENABLED)
-extern __typeof (xmlXPathNormalizeFunction) xmlXPathNormalizeFunction__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xpath
+#undef xmlXPathNormalizeFunction
extern __typeof (xmlXPathNormalizeFunction) xmlXPathNormalizeFunction __attribute((alias("xmlXPathNormalizeFunction__internal_alias")));
+#else
+#ifndef xmlXPathNormalizeFunction
+extern __typeof (xmlXPathNormalizeFunction) xmlXPathNormalizeFunction__internal_alias __attribute((visibility("hidden")));
#define xmlXPathNormalizeFunction xmlXPathNormalizeFunction__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_XPATH_ENABLED)
-extern __typeof (xmlXPathNotEqualValues) xmlXPathNotEqualValues__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xpath
+#undef xmlXPathNotEqualValues
extern __typeof (xmlXPathNotEqualValues) xmlXPathNotEqualValues __attribute((alias("xmlXPathNotEqualValues__internal_alias")));
+#else
+#ifndef xmlXPathNotEqualValues
+extern __typeof (xmlXPathNotEqualValues) xmlXPathNotEqualValues__internal_alias __attribute((visibility("hidden")));
#define xmlXPathNotEqualValues xmlXPathNotEqualValues__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_XPATH_ENABLED)
-extern __typeof (xmlXPathNotFunction) xmlXPathNotFunction__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xpath
+#undef xmlXPathNotFunction
extern __typeof (xmlXPathNotFunction) xmlXPathNotFunction __attribute((alias("xmlXPathNotFunction__internal_alias")));
+#else
+#ifndef xmlXPathNotFunction
+extern __typeof (xmlXPathNotFunction) xmlXPathNotFunction__internal_alias __attribute((visibility("hidden")));
#define xmlXPathNotFunction xmlXPathNotFunction__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_XPATH_ENABLED)
-extern __typeof (xmlXPathNsLookup) xmlXPathNsLookup__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xpath
+#undef xmlXPathNsLookup
extern __typeof (xmlXPathNsLookup) xmlXPathNsLookup __attribute((alias("xmlXPathNsLookup__internal_alias")));
+#else
+#ifndef xmlXPathNsLookup
+extern __typeof (xmlXPathNsLookup) xmlXPathNsLookup__internal_alias __attribute((visibility("hidden")));
#define xmlXPathNsLookup xmlXPathNsLookup__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_XPATH_ENABLED)
-extern __typeof (xmlXPathNumberFunction) xmlXPathNumberFunction__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xpath
+#undef xmlXPathNumberFunction
extern __typeof (xmlXPathNumberFunction) xmlXPathNumberFunction __attribute((alias("xmlXPathNumberFunction__internal_alias")));
+#else
+#ifndef xmlXPathNumberFunction
+extern __typeof (xmlXPathNumberFunction) xmlXPathNumberFunction__internal_alias __attribute((visibility("hidden")));
#define xmlXPathNumberFunction xmlXPathNumberFunction__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_XPATH_ENABLED)
-extern __typeof (xmlXPathObjectCopy) xmlXPathObjectCopy__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xpath
+#undef xmlXPathObjectCopy
extern __typeof (xmlXPathObjectCopy) xmlXPathObjectCopy __attribute((alias("xmlXPathObjectCopy__internal_alias")));
+#else
+#ifndef xmlXPathObjectCopy
+extern __typeof (xmlXPathObjectCopy) xmlXPathObjectCopy__internal_alias __attribute((visibility("hidden")));
#define xmlXPathObjectCopy xmlXPathObjectCopy__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_XPATH_ENABLED)
-extern __typeof (xmlXPathOrderDocElems) xmlXPathOrderDocElems__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xpath
+#undef xmlXPathOrderDocElems
extern __typeof (xmlXPathOrderDocElems) xmlXPathOrderDocElems __attribute((alias("xmlXPathOrderDocElems__internal_alias")));
+#else
+#ifndef xmlXPathOrderDocElems
+extern __typeof (xmlXPathOrderDocElems) xmlXPathOrderDocElems__internal_alias __attribute((visibility("hidden")));
#define xmlXPathOrderDocElems xmlXPathOrderDocElems__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_XPATH_ENABLED)
-extern __typeof (xmlXPathParseNCName) xmlXPathParseNCName__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xpath
+#undef xmlXPathParseNCName
extern __typeof (xmlXPathParseNCName) xmlXPathParseNCName __attribute((alias("xmlXPathParseNCName__internal_alias")));
+#else
+#ifndef xmlXPathParseNCName
+extern __typeof (xmlXPathParseNCName) xmlXPathParseNCName__internal_alias __attribute((visibility("hidden")));
#define xmlXPathParseNCName xmlXPathParseNCName__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_XPATH_ENABLED)
-extern __typeof (xmlXPathParseName) xmlXPathParseName__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xpath
+#undef xmlXPathParseName
extern __typeof (xmlXPathParseName) xmlXPathParseName __attribute((alias("xmlXPathParseName__internal_alias")));
+#else
+#ifndef xmlXPathParseName
+extern __typeof (xmlXPathParseName) xmlXPathParseName__internal_alias __attribute((visibility("hidden")));
#define xmlXPathParseName xmlXPathParseName__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_XPATH_ENABLED)
-extern __typeof (xmlXPathPopBoolean) xmlXPathPopBoolean__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xpath
+#undef xmlXPathPopBoolean
extern __typeof (xmlXPathPopBoolean) xmlXPathPopBoolean __attribute((alias("xmlXPathPopBoolean__internal_alias")));
+#else
+#ifndef xmlXPathPopBoolean
+extern __typeof (xmlXPathPopBoolean) xmlXPathPopBoolean__internal_alias __attribute((visibility("hidden")));
#define xmlXPathPopBoolean xmlXPathPopBoolean__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_XPATH_ENABLED)
-extern __typeof (xmlXPathPopExternal) xmlXPathPopExternal__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xpath
+#undef xmlXPathPopExternal
extern __typeof (xmlXPathPopExternal) xmlXPathPopExternal __attribute((alias("xmlXPathPopExternal__internal_alias")));
+#else
+#ifndef xmlXPathPopExternal
+extern __typeof (xmlXPathPopExternal) xmlXPathPopExternal__internal_alias __attribute((visibility("hidden")));
#define xmlXPathPopExternal xmlXPathPopExternal__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_XPATH_ENABLED)
-extern __typeof (xmlXPathPopNodeSet) xmlXPathPopNodeSet__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xpath
+#undef xmlXPathPopNodeSet
extern __typeof (xmlXPathPopNodeSet) xmlXPathPopNodeSet __attribute((alias("xmlXPathPopNodeSet__internal_alias")));
+#else
+#ifndef xmlXPathPopNodeSet
+extern __typeof (xmlXPathPopNodeSet) xmlXPathPopNodeSet__internal_alias __attribute((visibility("hidden")));
#define xmlXPathPopNodeSet xmlXPathPopNodeSet__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_XPATH_ENABLED)
-extern __typeof (xmlXPathPopNumber) xmlXPathPopNumber__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xpath
+#undef xmlXPathPopNumber
extern __typeof (xmlXPathPopNumber) xmlXPathPopNumber __attribute((alias("xmlXPathPopNumber__internal_alias")));
+#else
+#ifndef xmlXPathPopNumber
+extern __typeof (xmlXPathPopNumber) xmlXPathPopNumber__internal_alias __attribute((visibility("hidden")));
#define xmlXPathPopNumber xmlXPathPopNumber__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_XPATH_ENABLED)
-extern __typeof (xmlXPathPopString) xmlXPathPopString__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xpath
+#undef xmlXPathPopString
extern __typeof (xmlXPathPopString) xmlXPathPopString __attribute((alias("xmlXPathPopString__internal_alias")));
+#else
+#ifndef xmlXPathPopString
+extern __typeof (xmlXPathPopString) xmlXPathPopString__internal_alias __attribute((visibility("hidden")));
#define xmlXPathPopString xmlXPathPopString__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_XPATH_ENABLED)
-extern __typeof (xmlXPathPositionFunction) xmlXPathPositionFunction__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xpath
+#undef xmlXPathPositionFunction
extern __typeof (xmlXPathPositionFunction) xmlXPathPositionFunction __attribute((alias("xmlXPathPositionFunction__internal_alias")));
+#else
+#ifndef xmlXPathPositionFunction
+extern __typeof (xmlXPathPositionFunction) xmlXPathPositionFunction__internal_alias __attribute((visibility("hidden")));
#define xmlXPathPositionFunction xmlXPathPositionFunction__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_XPATH_ENABLED)
-extern __typeof (xmlXPathRegisterAllFunctions) xmlXPathRegisterAllFunctions__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xpath
+#undef xmlXPathRegisterAllFunctions
extern __typeof (xmlXPathRegisterAllFunctions) xmlXPathRegisterAllFunctions __attribute((alias("xmlXPathRegisterAllFunctions__internal_alias")));
+#else
+#ifndef xmlXPathRegisterAllFunctions
+extern __typeof (xmlXPathRegisterAllFunctions) xmlXPathRegisterAllFunctions__internal_alias __attribute((visibility("hidden")));
#define xmlXPathRegisterAllFunctions xmlXPathRegisterAllFunctions__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_XPATH_ENABLED)
-extern __typeof (xmlXPathRegisterFunc) xmlXPathRegisterFunc__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xpath
+#undef xmlXPathRegisterFunc
extern __typeof (xmlXPathRegisterFunc) xmlXPathRegisterFunc __attribute((alias("xmlXPathRegisterFunc__internal_alias")));
+#else
+#ifndef xmlXPathRegisterFunc
+extern __typeof (xmlXPathRegisterFunc) xmlXPathRegisterFunc__internal_alias __attribute((visibility("hidden")));
#define xmlXPathRegisterFunc xmlXPathRegisterFunc__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_XPATH_ENABLED)
-extern __typeof (xmlXPathRegisterFuncLookup) xmlXPathRegisterFuncLookup__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xpath
+#undef xmlXPathRegisterFuncLookup
extern __typeof (xmlXPathRegisterFuncLookup) xmlXPathRegisterFuncLookup __attribute((alias("xmlXPathRegisterFuncLookup__internal_alias")));
+#else
+#ifndef xmlXPathRegisterFuncLookup
+extern __typeof (xmlXPathRegisterFuncLookup) xmlXPathRegisterFuncLookup__internal_alias __attribute((visibility("hidden")));
#define xmlXPathRegisterFuncLookup xmlXPathRegisterFuncLookup__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_XPATH_ENABLED)
-extern __typeof (xmlXPathRegisterFuncNS) xmlXPathRegisterFuncNS__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xpath
+#undef xmlXPathRegisterFuncNS
extern __typeof (xmlXPathRegisterFuncNS) xmlXPathRegisterFuncNS __attribute((alias("xmlXPathRegisterFuncNS__internal_alias")));
+#else
+#ifndef xmlXPathRegisterFuncNS
+extern __typeof (xmlXPathRegisterFuncNS) xmlXPathRegisterFuncNS__internal_alias __attribute((visibility("hidden")));
#define xmlXPathRegisterFuncNS xmlXPathRegisterFuncNS__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_XPATH_ENABLED)
-extern __typeof (xmlXPathRegisterNs) xmlXPathRegisterNs__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xpath
+#undef xmlXPathRegisterNs
extern __typeof (xmlXPathRegisterNs) xmlXPathRegisterNs __attribute((alias("xmlXPathRegisterNs__internal_alias")));
+#else
+#ifndef xmlXPathRegisterNs
+extern __typeof (xmlXPathRegisterNs) xmlXPathRegisterNs__internal_alias __attribute((visibility("hidden")));
#define xmlXPathRegisterNs xmlXPathRegisterNs__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_XPATH_ENABLED)
-extern __typeof (xmlXPathRegisterVariable) xmlXPathRegisterVariable__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xpath
+#undef xmlXPathRegisterVariable
extern __typeof (xmlXPathRegisterVariable) xmlXPathRegisterVariable __attribute((alias("xmlXPathRegisterVariable__internal_alias")));
+#else
+#ifndef xmlXPathRegisterVariable
+extern __typeof (xmlXPathRegisterVariable) xmlXPathRegisterVariable__internal_alias __attribute((visibility("hidden")));
#define xmlXPathRegisterVariable xmlXPathRegisterVariable__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_XPATH_ENABLED)
-extern __typeof (xmlXPathRegisterVariableLookup) xmlXPathRegisterVariableLookup__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xpath
+#undef xmlXPathRegisterVariableLookup
extern __typeof (xmlXPathRegisterVariableLookup) xmlXPathRegisterVariableLookup __attribute((alias("xmlXPathRegisterVariableLookup__internal_alias")));
+#else
+#ifndef xmlXPathRegisterVariableLookup
+extern __typeof (xmlXPathRegisterVariableLookup) xmlXPathRegisterVariableLookup__internal_alias __attribute((visibility("hidden")));
#define xmlXPathRegisterVariableLookup xmlXPathRegisterVariableLookup__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_XPATH_ENABLED)
-extern __typeof (xmlXPathRegisterVariableNS) xmlXPathRegisterVariableNS__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xpath
+#undef xmlXPathRegisterVariableNS
extern __typeof (xmlXPathRegisterVariableNS) xmlXPathRegisterVariableNS __attribute((alias("xmlXPathRegisterVariableNS__internal_alias")));
+#else
+#ifndef xmlXPathRegisterVariableNS
+extern __typeof (xmlXPathRegisterVariableNS) xmlXPathRegisterVariableNS__internal_alias __attribute((visibility("hidden")));
#define xmlXPathRegisterVariableNS xmlXPathRegisterVariableNS__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_XPATH_ENABLED)
-extern __typeof (xmlXPathRegisteredFuncsCleanup) xmlXPathRegisteredFuncsCleanup__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xpath
+#undef xmlXPathRegisteredFuncsCleanup
extern __typeof (xmlXPathRegisteredFuncsCleanup) xmlXPathRegisteredFuncsCleanup __attribute((alias("xmlXPathRegisteredFuncsCleanup__internal_alias")));
+#else
+#ifndef xmlXPathRegisteredFuncsCleanup
+extern __typeof (xmlXPathRegisteredFuncsCleanup) xmlXPathRegisteredFuncsCleanup__internal_alias __attribute((visibility("hidden")));
#define xmlXPathRegisteredFuncsCleanup xmlXPathRegisteredFuncsCleanup__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_XPATH_ENABLED)
-extern __typeof (xmlXPathRegisteredNsCleanup) xmlXPathRegisteredNsCleanup__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xpath
+#undef xmlXPathRegisteredNsCleanup
extern __typeof (xmlXPathRegisteredNsCleanup) xmlXPathRegisteredNsCleanup __attribute((alias("xmlXPathRegisteredNsCleanup__internal_alias")));
+#else
+#ifndef xmlXPathRegisteredNsCleanup
+extern __typeof (xmlXPathRegisteredNsCleanup) xmlXPathRegisteredNsCleanup__internal_alias __attribute((visibility("hidden")));
#define xmlXPathRegisteredNsCleanup xmlXPathRegisteredNsCleanup__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_XPATH_ENABLED)
-extern __typeof (xmlXPathRegisteredVariablesCleanup) xmlXPathRegisteredVariablesCleanup__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xpath
+#undef xmlXPathRegisteredVariablesCleanup
extern __typeof (xmlXPathRegisteredVariablesCleanup) xmlXPathRegisteredVariablesCleanup __attribute((alias("xmlXPathRegisteredVariablesCleanup__internal_alias")));
+#else
+#ifndef xmlXPathRegisteredVariablesCleanup
+extern __typeof (xmlXPathRegisteredVariablesCleanup) xmlXPathRegisteredVariablesCleanup__internal_alias __attribute((visibility("hidden")));
#define xmlXPathRegisteredVariablesCleanup xmlXPathRegisteredVariablesCleanup__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_XPATH_ENABLED)
-extern __typeof (xmlXPathRoot) xmlXPathRoot__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xpath
+#undef xmlXPathRoot
extern __typeof (xmlXPathRoot) xmlXPathRoot __attribute((alias("xmlXPathRoot__internal_alias")));
+#else
+#ifndef xmlXPathRoot
+extern __typeof (xmlXPathRoot) xmlXPathRoot__internal_alias __attribute((visibility("hidden")));
#define xmlXPathRoot xmlXPathRoot__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_XPATH_ENABLED)
-extern __typeof (xmlXPathRoundFunction) xmlXPathRoundFunction__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xpath
+#undef xmlXPathRoundFunction
extern __typeof (xmlXPathRoundFunction) xmlXPathRoundFunction __attribute((alias("xmlXPathRoundFunction__internal_alias")));
+#else
+#ifndef xmlXPathRoundFunction
+extern __typeof (xmlXPathRoundFunction) xmlXPathRoundFunction__internal_alias __attribute((visibility("hidden")));
#define xmlXPathRoundFunction xmlXPathRoundFunction__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_XPATH_ENABLED)
-extern __typeof (xmlXPathStartsWithFunction) xmlXPathStartsWithFunction__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xpath
+#undef xmlXPathStartsWithFunction
extern __typeof (xmlXPathStartsWithFunction) xmlXPathStartsWithFunction __attribute((alias("xmlXPathStartsWithFunction__internal_alias")));
+#else
+#ifndef xmlXPathStartsWithFunction
+extern __typeof (xmlXPathStartsWithFunction) xmlXPathStartsWithFunction__internal_alias __attribute((visibility("hidden")));
#define xmlXPathStartsWithFunction xmlXPathStartsWithFunction__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_XPATH_ENABLED)
-extern __typeof (xmlXPathStringEvalNumber) xmlXPathStringEvalNumber__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xpath
+#undef xmlXPathStringEvalNumber
extern __typeof (xmlXPathStringEvalNumber) xmlXPathStringEvalNumber __attribute((alias("xmlXPathStringEvalNumber__internal_alias")));
+#else
+#ifndef xmlXPathStringEvalNumber
+extern __typeof (xmlXPathStringEvalNumber) xmlXPathStringEvalNumber__internal_alias __attribute((visibility("hidden")));
#define xmlXPathStringEvalNumber xmlXPathStringEvalNumber__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_XPATH_ENABLED)
-extern __typeof (xmlXPathStringFunction) xmlXPathStringFunction__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xpath
+#undef xmlXPathStringFunction
extern __typeof (xmlXPathStringFunction) xmlXPathStringFunction __attribute((alias("xmlXPathStringFunction__internal_alias")));
+#else
+#ifndef xmlXPathStringFunction
+extern __typeof (xmlXPathStringFunction) xmlXPathStringFunction__internal_alias __attribute((visibility("hidden")));
#define xmlXPathStringFunction xmlXPathStringFunction__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_XPATH_ENABLED)
-extern __typeof (xmlXPathStringLengthFunction) xmlXPathStringLengthFunction__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xpath
+#undef xmlXPathStringLengthFunction
extern __typeof (xmlXPathStringLengthFunction) xmlXPathStringLengthFunction __attribute((alias("xmlXPathStringLengthFunction__internal_alias")));
+#else
+#ifndef xmlXPathStringLengthFunction
+extern __typeof (xmlXPathStringLengthFunction) xmlXPathStringLengthFunction__internal_alias __attribute((visibility("hidden")));
#define xmlXPathStringLengthFunction xmlXPathStringLengthFunction__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_XPATH_ENABLED)
-extern __typeof (xmlXPathSubValues) xmlXPathSubValues__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xpath
+#undef xmlXPathSubValues
extern __typeof (xmlXPathSubValues) xmlXPathSubValues __attribute((alias("xmlXPathSubValues__internal_alias")));
+#else
+#ifndef xmlXPathSubValues
+extern __typeof (xmlXPathSubValues) xmlXPathSubValues__internal_alias __attribute((visibility("hidden")));
#define xmlXPathSubValues xmlXPathSubValues__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_XPATH_ENABLED)
-extern __typeof (xmlXPathSubstringAfterFunction) xmlXPathSubstringAfterFunction__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xpath
+#undef xmlXPathSubstringAfterFunction
extern __typeof (xmlXPathSubstringAfterFunction) xmlXPathSubstringAfterFunction __attribute((alias("xmlXPathSubstringAfterFunction__internal_alias")));
+#else
+#ifndef xmlXPathSubstringAfterFunction
+extern __typeof (xmlXPathSubstringAfterFunction) xmlXPathSubstringAfterFunction__internal_alias __attribute((visibility("hidden")));
#define xmlXPathSubstringAfterFunction xmlXPathSubstringAfterFunction__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_XPATH_ENABLED)
-extern __typeof (xmlXPathSubstringBeforeFunction) xmlXPathSubstringBeforeFunction__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xpath
+#undef xmlXPathSubstringBeforeFunction
extern __typeof (xmlXPathSubstringBeforeFunction) xmlXPathSubstringBeforeFunction __attribute((alias("xmlXPathSubstringBeforeFunction__internal_alias")));
+#else
+#ifndef xmlXPathSubstringBeforeFunction
+extern __typeof (xmlXPathSubstringBeforeFunction) xmlXPathSubstringBeforeFunction__internal_alias __attribute((visibility("hidden")));
#define xmlXPathSubstringBeforeFunction xmlXPathSubstringBeforeFunction__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_XPATH_ENABLED)
-extern __typeof (xmlXPathSubstringFunction) xmlXPathSubstringFunction__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xpath
+#undef xmlXPathSubstringFunction
extern __typeof (xmlXPathSubstringFunction) xmlXPathSubstringFunction __attribute((alias("xmlXPathSubstringFunction__internal_alias")));
+#else
+#ifndef xmlXPathSubstringFunction
+extern __typeof (xmlXPathSubstringFunction) xmlXPathSubstringFunction__internal_alias __attribute((visibility("hidden")));
#define xmlXPathSubstringFunction xmlXPathSubstringFunction__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_XPATH_ENABLED)
-extern __typeof (xmlXPathSumFunction) xmlXPathSumFunction__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xpath
+#undef xmlXPathSumFunction
extern __typeof (xmlXPathSumFunction) xmlXPathSumFunction __attribute((alias("xmlXPathSumFunction__internal_alias")));
+#else
+#ifndef xmlXPathSumFunction
+extern __typeof (xmlXPathSumFunction) xmlXPathSumFunction__internal_alias __attribute((visibility("hidden")));
#define xmlXPathSumFunction xmlXPathSumFunction__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_XPATH_ENABLED)
-extern __typeof (xmlXPathTrailing) xmlXPathTrailing__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xpath
+#undef xmlXPathTrailing
extern __typeof (xmlXPathTrailing) xmlXPathTrailing __attribute((alias("xmlXPathTrailing__internal_alias")));
+#else
+#ifndef xmlXPathTrailing
+extern __typeof (xmlXPathTrailing) xmlXPathTrailing__internal_alias __attribute((visibility("hidden")));
#define xmlXPathTrailing xmlXPathTrailing__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_XPATH_ENABLED)
-extern __typeof (xmlXPathTrailingSorted) xmlXPathTrailingSorted__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xpath
+#undef xmlXPathTrailingSorted
extern __typeof (xmlXPathTrailingSorted) xmlXPathTrailingSorted __attribute((alias("xmlXPathTrailingSorted__internal_alias")));
+#else
+#ifndef xmlXPathTrailingSorted
+extern __typeof (xmlXPathTrailingSorted) xmlXPathTrailingSorted__internal_alias __attribute((visibility("hidden")));
#define xmlXPathTrailingSorted xmlXPathTrailingSorted__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_XPATH_ENABLED)
-extern __typeof (xmlXPathTranslateFunction) xmlXPathTranslateFunction__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xpath
+#undef xmlXPathTranslateFunction
extern __typeof (xmlXPathTranslateFunction) xmlXPathTranslateFunction __attribute((alias("xmlXPathTranslateFunction__internal_alias")));
+#else
+#ifndef xmlXPathTranslateFunction
+extern __typeof (xmlXPathTranslateFunction) xmlXPathTranslateFunction__internal_alias __attribute((visibility("hidden")));
#define xmlXPathTranslateFunction xmlXPathTranslateFunction__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_XPATH_ENABLED)
-extern __typeof (xmlXPathTrueFunction) xmlXPathTrueFunction__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xpath
+#undef xmlXPathTrueFunction
extern __typeof (xmlXPathTrueFunction) xmlXPathTrueFunction __attribute((alias("xmlXPathTrueFunction__internal_alias")));
+#else
+#ifndef xmlXPathTrueFunction
+extern __typeof (xmlXPathTrueFunction) xmlXPathTrueFunction__internal_alias __attribute((visibility("hidden")));
#define xmlXPathTrueFunction xmlXPathTrueFunction__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_XPATH_ENABLED)
-extern __typeof (xmlXPathValueFlipSign) xmlXPathValueFlipSign__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xpath
+#undef xmlXPathValueFlipSign
extern __typeof (xmlXPathValueFlipSign) xmlXPathValueFlipSign __attribute((alias("xmlXPathValueFlipSign__internal_alias")));
+#else
+#ifndef xmlXPathValueFlipSign
+extern __typeof (xmlXPathValueFlipSign) xmlXPathValueFlipSign__internal_alias __attribute((visibility("hidden")));
#define xmlXPathValueFlipSign xmlXPathValueFlipSign__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_XPATH_ENABLED)
-extern __typeof (xmlXPathVariableLookup) xmlXPathVariableLookup__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xpath
+#undef xmlXPathVariableLookup
extern __typeof (xmlXPathVariableLookup) xmlXPathVariableLookup __attribute((alias("xmlXPathVariableLookup__internal_alias")));
+#else
+#ifndef xmlXPathVariableLookup
+extern __typeof (xmlXPathVariableLookup) xmlXPathVariableLookup__internal_alias __attribute((visibility("hidden")));
#define xmlXPathVariableLookup xmlXPathVariableLookup__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_XPATH_ENABLED)
-extern __typeof (xmlXPathVariableLookupNS) xmlXPathVariableLookupNS__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xpath
+#undef xmlXPathVariableLookupNS
extern __typeof (xmlXPathVariableLookupNS) xmlXPathVariableLookupNS __attribute((alias("xmlXPathVariableLookupNS__internal_alias")));
+#else
+#ifndef xmlXPathVariableLookupNS
+extern __typeof (xmlXPathVariableLookupNS) xmlXPathVariableLookupNS__internal_alias __attribute((visibility("hidden")));
#define xmlXPathVariableLookupNS xmlXPathVariableLookupNS__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_XPATH_ENABLED)
-extern __typeof (xmlXPathWrapCString) xmlXPathWrapCString__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xpath
+#undef xmlXPathWrapCString
extern __typeof (xmlXPathWrapCString) xmlXPathWrapCString __attribute((alias("xmlXPathWrapCString__internal_alias")));
+#else
+#ifndef xmlXPathWrapCString
+extern __typeof (xmlXPathWrapCString) xmlXPathWrapCString__internal_alias __attribute((visibility("hidden")));
#define xmlXPathWrapCString xmlXPathWrapCString__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_XPATH_ENABLED)
-extern __typeof (xmlXPathWrapExternal) xmlXPathWrapExternal__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xpath
+#undef xmlXPathWrapExternal
extern __typeof (xmlXPathWrapExternal) xmlXPathWrapExternal __attribute((alias("xmlXPathWrapExternal__internal_alias")));
+#else
+#ifndef xmlXPathWrapExternal
+extern __typeof (xmlXPathWrapExternal) xmlXPathWrapExternal__internal_alias __attribute((visibility("hidden")));
#define xmlXPathWrapExternal xmlXPathWrapExternal__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_XPATH_ENABLED)
-extern __typeof (xmlXPathWrapNodeSet) xmlXPathWrapNodeSet__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xpath
+#undef xmlXPathWrapNodeSet
extern __typeof (xmlXPathWrapNodeSet) xmlXPathWrapNodeSet __attribute((alias("xmlXPathWrapNodeSet__internal_alias")));
+#else
+#ifndef xmlXPathWrapNodeSet
+extern __typeof (xmlXPathWrapNodeSet) xmlXPathWrapNodeSet__internal_alias __attribute((visibility("hidden")));
#define xmlXPathWrapNodeSet xmlXPathWrapNodeSet__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_XPATH_ENABLED)
-extern __typeof (xmlXPathWrapString) xmlXPathWrapString__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xpath
+#undef xmlXPathWrapString
extern __typeof (xmlXPathWrapString) xmlXPathWrapString __attribute((alias("xmlXPathWrapString__internal_alias")));
+#else
+#ifndef xmlXPathWrapString
+extern __typeof (xmlXPathWrapString) xmlXPathWrapString__internal_alias __attribute((visibility("hidden")));
#define xmlXPathWrapString xmlXPathWrapString__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_XPATH_ENABLED)
-extern __typeof (xmlXPatherror) xmlXPatherror__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xpath
+#undef xmlXPatherror
extern __typeof (xmlXPatherror) xmlXPatherror __attribute((alias("xmlXPatherror__internal_alias")));
+#else
+#ifndef xmlXPatherror
+extern __typeof (xmlXPatherror) xmlXPatherror__internal_alias __attribute((visibility("hidden")));
#define xmlXPatherror xmlXPatherror__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_XPTR_ENABLED)
-extern __typeof (xmlXPtrBuildNodeList) xmlXPtrBuildNodeList__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xpointer
+#undef xmlXPtrBuildNodeList
extern __typeof (xmlXPtrBuildNodeList) xmlXPtrBuildNodeList __attribute((alias("xmlXPtrBuildNodeList__internal_alias")));
+#else
+#ifndef xmlXPtrBuildNodeList
+extern __typeof (xmlXPtrBuildNodeList) xmlXPtrBuildNodeList__internal_alias __attribute((visibility("hidden")));
#define xmlXPtrBuildNodeList xmlXPtrBuildNodeList__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_XPTR_ENABLED)
-extern __typeof (xmlXPtrEval) xmlXPtrEval__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xpointer
+#undef xmlXPtrEval
extern __typeof (xmlXPtrEval) xmlXPtrEval __attribute((alias("xmlXPtrEval__internal_alias")));
+#else
+#ifndef xmlXPtrEval
+extern __typeof (xmlXPtrEval) xmlXPtrEval__internal_alias __attribute((visibility("hidden")));
#define xmlXPtrEval xmlXPtrEval__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_XPTR_ENABLED)
-extern __typeof (xmlXPtrEvalRangePredicate) xmlXPtrEvalRangePredicate__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xpointer
+#undef xmlXPtrEvalRangePredicate
extern __typeof (xmlXPtrEvalRangePredicate) xmlXPtrEvalRangePredicate __attribute((alias("xmlXPtrEvalRangePredicate__internal_alias")));
+#else
+#ifndef xmlXPtrEvalRangePredicate
+extern __typeof (xmlXPtrEvalRangePredicate) xmlXPtrEvalRangePredicate__internal_alias __attribute((visibility("hidden")));
#define xmlXPtrEvalRangePredicate xmlXPtrEvalRangePredicate__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_XPTR_ENABLED)
-extern __typeof (xmlXPtrFreeLocationSet) xmlXPtrFreeLocationSet__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xpointer
+#undef xmlXPtrFreeLocationSet
extern __typeof (xmlXPtrFreeLocationSet) xmlXPtrFreeLocationSet __attribute((alias("xmlXPtrFreeLocationSet__internal_alias")));
+#else
+#ifndef xmlXPtrFreeLocationSet
+extern __typeof (xmlXPtrFreeLocationSet) xmlXPtrFreeLocationSet__internal_alias __attribute((visibility("hidden")));
#define xmlXPtrFreeLocationSet xmlXPtrFreeLocationSet__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_XPTR_ENABLED)
-extern __typeof (xmlXPtrLocationSetAdd) xmlXPtrLocationSetAdd__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xpointer
+#undef xmlXPtrLocationSetAdd
extern __typeof (xmlXPtrLocationSetAdd) xmlXPtrLocationSetAdd __attribute((alias("xmlXPtrLocationSetAdd__internal_alias")));
+#else
+#ifndef xmlXPtrLocationSetAdd
+extern __typeof (xmlXPtrLocationSetAdd) xmlXPtrLocationSetAdd__internal_alias __attribute((visibility("hidden")));
#define xmlXPtrLocationSetAdd xmlXPtrLocationSetAdd__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_XPTR_ENABLED)
-extern __typeof (xmlXPtrLocationSetCreate) xmlXPtrLocationSetCreate__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xpointer
+#undef xmlXPtrLocationSetCreate
extern __typeof (xmlXPtrLocationSetCreate) xmlXPtrLocationSetCreate __attribute((alias("xmlXPtrLocationSetCreate__internal_alias")));
+#else
+#ifndef xmlXPtrLocationSetCreate
+extern __typeof (xmlXPtrLocationSetCreate) xmlXPtrLocationSetCreate__internal_alias __attribute((visibility("hidden")));
#define xmlXPtrLocationSetCreate xmlXPtrLocationSetCreate__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_XPTR_ENABLED)
-extern __typeof (xmlXPtrLocationSetDel) xmlXPtrLocationSetDel__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xpointer
+#undef xmlXPtrLocationSetDel
extern __typeof (xmlXPtrLocationSetDel) xmlXPtrLocationSetDel __attribute((alias("xmlXPtrLocationSetDel__internal_alias")));
+#else
+#ifndef xmlXPtrLocationSetDel
+extern __typeof (xmlXPtrLocationSetDel) xmlXPtrLocationSetDel__internal_alias __attribute((visibility("hidden")));
#define xmlXPtrLocationSetDel xmlXPtrLocationSetDel__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_XPTR_ENABLED)
-extern __typeof (xmlXPtrLocationSetMerge) xmlXPtrLocationSetMerge__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xpointer
+#undef xmlXPtrLocationSetMerge
extern __typeof (xmlXPtrLocationSetMerge) xmlXPtrLocationSetMerge __attribute((alias("xmlXPtrLocationSetMerge__internal_alias")));
+#else
+#ifndef xmlXPtrLocationSetMerge
+extern __typeof (xmlXPtrLocationSetMerge) xmlXPtrLocationSetMerge__internal_alias __attribute((visibility("hidden")));
#define xmlXPtrLocationSetMerge xmlXPtrLocationSetMerge__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_XPTR_ENABLED)
-extern __typeof (xmlXPtrLocationSetRemove) xmlXPtrLocationSetRemove__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xpointer
+#undef xmlXPtrLocationSetRemove
extern __typeof (xmlXPtrLocationSetRemove) xmlXPtrLocationSetRemove __attribute((alias("xmlXPtrLocationSetRemove__internal_alias")));
+#else
+#ifndef xmlXPtrLocationSetRemove
+extern __typeof (xmlXPtrLocationSetRemove) xmlXPtrLocationSetRemove__internal_alias __attribute((visibility("hidden")));
#define xmlXPtrLocationSetRemove xmlXPtrLocationSetRemove__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_XPTR_ENABLED)
-extern __typeof (xmlXPtrNewCollapsedRange) xmlXPtrNewCollapsedRange__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xpointer
+#undef xmlXPtrNewCollapsedRange
extern __typeof (xmlXPtrNewCollapsedRange) xmlXPtrNewCollapsedRange __attribute((alias("xmlXPtrNewCollapsedRange__internal_alias")));
+#else
+#ifndef xmlXPtrNewCollapsedRange
+extern __typeof (xmlXPtrNewCollapsedRange) xmlXPtrNewCollapsedRange__internal_alias __attribute((visibility("hidden")));
#define xmlXPtrNewCollapsedRange xmlXPtrNewCollapsedRange__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_XPTR_ENABLED)
-extern __typeof (xmlXPtrNewContext) xmlXPtrNewContext__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xpointer
+#undef xmlXPtrNewContext
extern __typeof (xmlXPtrNewContext) xmlXPtrNewContext __attribute((alias("xmlXPtrNewContext__internal_alias")));
+#else
+#ifndef xmlXPtrNewContext
+extern __typeof (xmlXPtrNewContext) xmlXPtrNewContext__internal_alias __attribute((visibility("hidden")));
#define xmlXPtrNewContext xmlXPtrNewContext__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_XPTR_ENABLED)
-extern __typeof (xmlXPtrNewLocationSetNodeSet) xmlXPtrNewLocationSetNodeSet__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xpointer
+#undef xmlXPtrNewLocationSetNodeSet
extern __typeof (xmlXPtrNewLocationSetNodeSet) xmlXPtrNewLocationSetNodeSet __attribute((alias("xmlXPtrNewLocationSetNodeSet__internal_alias")));
+#else
+#ifndef xmlXPtrNewLocationSetNodeSet
+extern __typeof (xmlXPtrNewLocationSetNodeSet) xmlXPtrNewLocationSetNodeSet__internal_alias __attribute((visibility("hidden")));
#define xmlXPtrNewLocationSetNodeSet xmlXPtrNewLocationSetNodeSet__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_XPTR_ENABLED)
-extern __typeof (xmlXPtrNewLocationSetNodes) xmlXPtrNewLocationSetNodes__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xpointer
+#undef xmlXPtrNewLocationSetNodes
extern __typeof (xmlXPtrNewLocationSetNodes) xmlXPtrNewLocationSetNodes __attribute((alias("xmlXPtrNewLocationSetNodes__internal_alias")));
+#else
+#ifndef xmlXPtrNewLocationSetNodes
+extern __typeof (xmlXPtrNewLocationSetNodes) xmlXPtrNewLocationSetNodes__internal_alias __attribute((visibility("hidden")));
#define xmlXPtrNewLocationSetNodes xmlXPtrNewLocationSetNodes__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_XPTR_ENABLED)
-extern __typeof (xmlXPtrNewRange) xmlXPtrNewRange__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xpointer
+#undef xmlXPtrNewRange
extern __typeof (xmlXPtrNewRange) xmlXPtrNewRange __attribute((alias("xmlXPtrNewRange__internal_alias")));
+#else
+#ifndef xmlXPtrNewRange
+extern __typeof (xmlXPtrNewRange) xmlXPtrNewRange__internal_alias __attribute((visibility("hidden")));
#define xmlXPtrNewRange xmlXPtrNewRange__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_XPTR_ENABLED)
-extern __typeof (xmlXPtrNewRangeNodeObject) xmlXPtrNewRangeNodeObject__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xpointer
+#undef xmlXPtrNewRangeNodeObject
extern __typeof (xmlXPtrNewRangeNodeObject) xmlXPtrNewRangeNodeObject __attribute((alias("xmlXPtrNewRangeNodeObject__internal_alias")));
+#else
+#ifndef xmlXPtrNewRangeNodeObject
+extern __typeof (xmlXPtrNewRangeNodeObject) xmlXPtrNewRangeNodeObject__internal_alias __attribute((visibility("hidden")));
#define xmlXPtrNewRangeNodeObject xmlXPtrNewRangeNodeObject__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_XPTR_ENABLED)
-extern __typeof (xmlXPtrNewRangeNodePoint) xmlXPtrNewRangeNodePoint__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xpointer
+#undef xmlXPtrNewRangeNodePoint
extern __typeof (xmlXPtrNewRangeNodePoint) xmlXPtrNewRangeNodePoint __attribute((alias("xmlXPtrNewRangeNodePoint__internal_alias")));
+#else
+#ifndef xmlXPtrNewRangeNodePoint
+extern __typeof (xmlXPtrNewRangeNodePoint) xmlXPtrNewRangeNodePoint__internal_alias __attribute((visibility("hidden")));
#define xmlXPtrNewRangeNodePoint xmlXPtrNewRangeNodePoint__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_XPTR_ENABLED)
-extern __typeof (xmlXPtrNewRangeNodes) xmlXPtrNewRangeNodes__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xpointer
+#undef xmlXPtrNewRangeNodes
extern __typeof (xmlXPtrNewRangeNodes) xmlXPtrNewRangeNodes __attribute((alias("xmlXPtrNewRangeNodes__internal_alias")));
+#else
+#ifndef xmlXPtrNewRangeNodes
+extern __typeof (xmlXPtrNewRangeNodes) xmlXPtrNewRangeNodes__internal_alias __attribute((visibility("hidden")));
#define xmlXPtrNewRangeNodes xmlXPtrNewRangeNodes__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_XPTR_ENABLED)
-extern __typeof (xmlXPtrNewRangePointNode) xmlXPtrNewRangePointNode__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xpointer
+#undef xmlXPtrNewRangePointNode
extern __typeof (xmlXPtrNewRangePointNode) xmlXPtrNewRangePointNode __attribute((alias("xmlXPtrNewRangePointNode__internal_alias")));
+#else
+#ifndef xmlXPtrNewRangePointNode
+extern __typeof (xmlXPtrNewRangePointNode) xmlXPtrNewRangePointNode__internal_alias __attribute((visibility("hidden")));
#define xmlXPtrNewRangePointNode xmlXPtrNewRangePointNode__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_XPTR_ENABLED)
-extern __typeof (xmlXPtrNewRangePoints) xmlXPtrNewRangePoints__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xpointer
+#undef xmlXPtrNewRangePoints
extern __typeof (xmlXPtrNewRangePoints) xmlXPtrNewRangePoints __attribute((alias("xmlXPtrNewRangePoints__internal_alias")));
+#else
+#ifndef xmlXPtrNewRangePoints
+extern __typeof (xmlXPtrNewRangePoints) xmlXPtrNewRangePoints__internal_alias __attribute((visibility("hidden")));
#define xmlXPtrNewRangePoints xmlXPtrNewRangePoints__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_XPTR_ENABLED)
-extern __typeof (xmlXPtrRangeToFunction) xmlXPtrRangeToFunction__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xpointer
+#undef xmlXPtrRangeToFunction
extern __typeof (xmlXPtrRangeToFunction) xmlXPtrRangeToFunction __attribute((alias("xmlXPtrRangeToFunction__internal_alias")));
+#else
+#ifndef xmlXPtrRangeToFunction
+extern __typeof (xmlXPtrRangeToFunction) xmlXPtrRangeToFunction__internal_alias __attribute((visibility("hidden")));
#define xmlXPtrRangeToFunction xmlXPtrRangeToFunction__internal_alias
#endif
+#endif
+#endif
#if defined(LIBXML_XPTR_ENABLED)
-extern __typeof (xmlXPtrWrapLocationSet) xmlXPtrWrapLocationSet__internal_alias __attribute((visibility("hidden")));
+#ifdef bottom_xpointer
+#undef xmlXPtrWrapLocationSet
extern __typeof (xmlXPtrWrapLocationSet) xmlXPtrWrapLocationSet __attribute((alias("xmlXPtrWrapLocationSet__internal_alias")));
+#else
+#ifndef xmlXPtrWrapLocationSet
+extern __typeof (xmlXPtrWrapLocationSet) xmlXPtrWrapLocationSet__internal_alias __attribute((visibility("hidden")));
#define xmlXPtrWrapLocationSet xmlXPtrWrapLocationSet__internal_alias
#endif
+#endif
+#endif
+
+
+#endif
+#endif
+#endif
+#endif
+#endif
diff --git a/encoding.c b/encoding.c
index a3dad07..66e63b5 100644
--- a/encoding.c
+++ b/encoding.c
@@ -2332,7 +2332,7 @@ ISO8859xToUTF8(unsigned char* out, int *outlen,
unsigned char* outend;
const unsigned char* instart = in;
const unsigned char* inend;
- const unsigned char* instop = inend;
+ const unsigned char* instop;
unsigned int c;
if ((out == NULL) || (outlen == NULL) || (inlen == NULL) ||
@@ -2340,6 +2340,7 @@ ISO8859xToUTF8(unsigned char* out, int *outlen,
return(-1);
outend = out + *outlen;
inend = in + *inlen;
+ instop = inend;
c = *in;
while (in < inend && out < outend - 1) {
if (c >= 0x80) {
@@ -3260,4 +3261,6 @@ xmlRegisterCharEncodingHandlersISO8859x (void) {
#endif
#endif
+#define bottom_encoding
+#include "elfgcchack.h"
diff --git a/entities.c b/entities.c
index 619a4d6..08034c3 100644
--- a/entities.c
+++ b/entities.c
@@ -964,3 +964,5 @@ xmlDumpEntitiesTable(xmlBufferPtr buf, xmlEntitiesTablePtr table) {
xmlHashScan(table, (xmlHashScanner)xmlDumpEntityDeclScan, buf);
}
#endif /* LIBXML_OUTPUT_ENABLED */
+#define bottom_entities
+#include "elfgcchack.h"
diff --git a/error.c b/error.c
index 5ab1835..d9505e4 100644
--- a/error.c
+++ b/error.c
@@ -969,3 +969,5 @@ xmlCopyError(xmlErrorPtr from, xmlErrorPtr to) {
return 0;
}
+#define bottom_error
+#include "elfgcchack.h"
diff --git a/gentest.py b/gentest.py
index 234685c..e4ede36 100755
--- a/gentest.py
+++ b/gentest.py
@@ -45,6 +45,7 @@ modules_defines = {
"xmlsave" : "LIBXML_OUTPUT_ENABLED",
"DOCBparser" : "LIBXML_DOCB_ENABLED",
"xmlmodule" : "LIBXML_MODULES_ENABLED",
+ "pattern" : "LIBXML_PATTERN_ENABLED",
}
#
diff --git a/globals.c b/globals.c
index 01e2c42..4a002d3 100644
--- a/globals.c
+++ b/globals.c
@@ -78,13 +78,6 @@ void xmlCleanupGlobals()
#undef xmlRealloc
#if defined(DEBUG_MEMORY_LOCATION) || defined(DEBUG_MEMORY)
-#ifndef __DEBUG_MEMORY_ALLOC__
-extern void xmlMemFree(void *ptr);
-extern void * xmlMemMalloc(size_t size);
-extern void * xmlMemRealloc(void *ptr,size_t size);
-extern char * xmlMemoryStrdup(const char *str);
-#endif
-
xmlFreeFunc xmlFree = (xmlFreeFunc) xmlMemFree;
xmlMallocFunc xmlMalloc = (xmlMallocFunc) xmlMemMalloc;
xmlMallocFunc xmlMallocAtomic = (xmlMallocFunc) xmlMemMalloc;
@@ -1096,3 +1089,6 @@ __xmlOutputBufferCreateFilenameValue(void) {
else
return (&xmlGetGlobalState()->xmlOutputBufferCreateFilenameValue);
}
+
+#define bottom_globals
+#include "elfgcchack.h"
diff --git a/hash.c b/hash.c
index cc38f1e..e92a5a0 100644
--- a/hash.c
+++ b/hash.c
@@ -1075,3 +1075,5 @@ xmlHashRemoveEntry3(xmlHashTablePtr table, const xmlChar *name,
}
}
+#define bottom_hash
+#include "elfgcchack.h"
diff --git a/include/libxml/parser.h b/include/libxml/parser.h
index 6e2d241..e0de43f 100644
--- a/include/libxml/parser.h
+++ b/include/libxml/parser.h
@@ -825,7 +825,7 @@ XMLPUBFUN int XMLCALL
*/
#ifdef LIBXML_SAX1_ENABLED
XMLPUBFUN xmlDocPtr XMLCALL
- xmlParseDoc (xmlChar *cur);
+ xmlParseDoc (const xmlChar *cur);
XMLPUBFUN xmlDocPtr XMLCALL
xmlParseFile (const char *filename);
XMLPUBFUN xmlDocPtr XMLCALL
@@ -877,7 +877,7 @@ XMLPUBFUN int XMLCALL
int size);
XMLPUBFUN xmlDocPtr XMLCALL
xmlSAXParseDoc (xmlSAXHandlerPtr sax,
- xmlChar *cur,
+ const xmlChar *cur,
int recovery);
XMLPUBFUN xmlDocPtr XMLCALL
xmlSAXParseMemory (xmlSAXHandlerPtr sax,
diff --git a/include/libxml/schemasInternals.h b/include/libxml/schemasInternals.h
index 0cd8053..2c39a87 100644
--- a/include/libxml/schemasInternals.h
+++ b/include/libxml/schemasInternals.h
@@ -102,6 +102,7 @@ typedef enum {
XML_SCHEMA_TYPE_IDC_UNIQUE,
XML_SCHEMA_TYPE_IDC_KEY,
XML_SCHEMA_TYPE_IDC_KEYREF,
+ XML_SCHEMA_TYPE_PARTICLE,
XML_SCHEMA_FACET_MININCLUSIVE = 1000,
XML_SCHEMA_FACET_MINEXCLUSIVE,
XML_SCHEMA_FACET_MAXINCLUSIVE,
@@ -113,7 +114,8 @@ typedef enum {
XML_SCHEMA_FACET_WHITESPACE,
XML_SCHEMA_FACET_LENGTH,
XML_SCHEMA_FACET_MAXLENGTH,
- XML_SCHEMA_FACET_MINLENGTH
+ XML_SCHEMA_FACET_MINLENGTH,
+ XML_SCHEMA_EXTRA_QNAMEREF = 2000
} xmlSchemaTypeType;
typedef enum {
@@ -409,7 +411,7 @@ struct _xmlSchemaFacetLink {
* the complexType owns an attribute wildcard, i.e.
* it can be freed by the complexType
*/
-#define XML_SCHEMAS_TYPE_OWNED_ATTR_WILDCARD 1 << 4
+#define XML_SCHEMAS_TYPE_OWNED_ATTR_WILDCARD 1 << 4 /* Obsolete. */
/**
* XML_SCHEMAS_TYPE_VARIETY_ABSENT:
*
@@ -507,6 +509,19 @@ struct _xmlSchemaFacetLink {
* indicates if the facets need a computed value
*/
#define XML_SCHEMAS_TYPE_FACETSNEEDVALUE 1 << 21
+/**
+ * XML_SCHEMAS_TYPE_INTERNAL_RESOLVED:
+ *
+ * indicates that the type was typefixed
+ */
+#define XML_SCHEMAS_TYPE_INTERNAL_RESOLVED 1 << 22
+/**
+ * XML_SCHEMAS_TYPE_INTERNAL_INVALID:
+ *
+ * indicates that the type is invalid
+ */
+#define XML_SCHEMAS_TYPE_INTERNAL_INVALID 1 << 23
+
/**
* _xmlSchemaType:
@@ -835,6 +850,7 @@ struct _xmlSchema {
int preserve; /* whether to free the document */
int counter; /* used to give ononymous components unique names */
xmlHashTablePtr idcDef;
+ void *volatiles; /* Misc. helper items (e.g. reference items) */
};
XMLPUBFUN void XMLCALL xmlSchemaFreeType (xmlSchemaTypePtr type);
diff --git a/include/libxml/xmlerror.h b/include/libxml/xmlerror.h
index df883e5..540a51e 100644
--- a/include/libxml/xmlerror.h
+++ b/include/libxml/xmlerror.h
@@ -663,6 +663,8 @@ typedef enum {
XML_C14N_REQUIRES_UTF8, /* 1951 */
XML_C14N_CREATE_STACK, /* 1952 */
XML_C14N_INVALID_NODE, /* 1953 */
+ XML_C14N_UNKNOW_NODE, /* 1954 */
+ XML_C14N_RELATIVE_NAMESPACE, /* 1955 */
XML_FTP_PASV_ANSWER = 2000,
XML_FTP_EPSV_ANSWER, /* 2001 */
XML_FTP_ACCNT, /* 2002 */
diff --git a/include/libxml/xmlschemastypes.h b/include/libxml/xmlschemastypes.h
index 004386f..18014fe 100644
--- a/include/libxml/xmlschemastypes.h
+++ b/include/libxml/xmlschemastypes.h
@@ -50,7 +50,14 @@ XMLPUBFUN int XMLCALL
xmlSchemaValidateFacet (xmlSchemaTypePtr base,
xmlSchemaFacetPtr facet,
const xmlChar *value,
- xmlSchemaValPtr val);
+ xmlSchemaValPtr val);
+XMLPUBFUN int XMLCALL
+ xmlSchemaValidateFacetWhtsp (xmlSchemaFacetPtr facet,
+ xmlSchemaWhitespaceValueType fws,
+ xmlSchemaValType valType,
+ const xmlChar *value,
+ xmlSchemaValPtr val,
+ xmlSchemaWhitespaceValueType ws);
XMLPUBFUN void XMLCALL
xmlSchemaFreeValue (xmlSchemaValPtr val);
XMLPUBFUN xmlSchemaFacetPtr XMLCALL
@@ -88,7 +95,14 @@ XMLPUBFUN int XMLCALL
xmlSchemaFacetPtr facet,
const xmlChar *value,
xmlSchemaValPtr val,
- unsigned long *length) ;
+ unsigned long *length);
+XMLPUBFUN int XMLCALL
+ xmlSchemaValidateLengthFacetWhtsp(xmlSchemaFacetPtr facet,
+ xmlSchemaValType valType,
+ const xmlChar *value,
+ xmlSchemaValPtr val,
+ unsigned long *length,
+ xmlSchemaWhitespaceValueType ws);
XMLPUBFUN int XMLCALL
xmlSchemaValPredefTypeNodeNoNorm(xmlSchemaTypePtr type,
const xmlChar *value,
@@ -110,7 +124,9 @@ XMLPUBFUN int XMLCALL
xmlSchemaValPtr y,
xmlSchemaWhitespaceValueType yws);
XMLPUBFUN xmlSchemaValPtr XMLCALL
- xmlSchemaCopyValue (xmlSchemaValPtr val);
+ xmlSchemaCopyValue (xmlSchemaValPtr val);
+XMLPUBFUN xmlSchemaValType XMLCALL
+ xmlSchemaGetValType (xmlSchemaValPtr val);
#ifdef __cplusplus
}
diff --git a/include/libxml/xmlversion.h b/include/libxml/xmlversion.h
index 357910e..b31beca 100644
--- a/include/libxml/xmlversion.h
+++ b/include/libxml/xmlversion.h
@@ -29,28 +29,28 @@ XMLPUBFUN void XMLCALL xmlCheckVersion(int version);
*
* the version string like "1.2.3"
*/
-#define LIBXML_DOTTED_VERSION "2.6.18"
+#define LIBXML_DOTTED_VERSION "2.6.19"
/**
* LIBXML_VERSION:
*
* the version number: 1.2.3 value is 1002003
*/
-#define LIBXML_VERSION 20618
+#define LIBXML_VERSION 20619
/**
* LIBXML_VERSION_STRING:
*
* the version number string, 1.2.3 value is "1002003"
*/
-#define LIBXML_VERSION_STRING "20618"
+#define LIBXML_VERSION_STRING "20619"
/**
* LIBXML_VERSION_EXTRA:
*
* extra version information, used to show a CVS compilation
*/
-#define LIBXML_VERSION_EXTRA "-CVS2374"
+#define LIBXML_VERSION_EXTRA "-CVS2405"
/**
* LIBXML_TEST_VERSION:
@@ -58,7 +58,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(20618);
+#define LIBXML_TEST_VERSION xmlCheckVersion(20619);
#ifndef VMS
#if 0
diff --git a/legacy.c b/legacy.c
index dad1d83..bbbd2c9 100644
--- a/legacy.c
+++ b/legacy.c
@@ -1338,5 +1338,7 @@ cdataBlock(void *ctx, const xmlChar * value, int len)
DEPRECATED("cdataBlock")
xmlSAX2CDataBlock(ctx, value, len);
}
+#define bottom_legacy
+#include "elfgcchack.h"
#endif /* LIBXML_LEGACY_ENABLED */
diff --git a/libxml.spec.in b/libxml.spec.in
index 481f88e..91972bd 100644
--- a/libxml.spec.in
+++ b/libxml.spec.in
@@ -89,13 +89,15 @@ else
%configure
make
fi
-(cd doc/examples ; make clean)
gzip -9 ChangeLog
%install
rm -fr %{buildroot}
%makeinstall
+(cd doc/examples ; make clean ; rm -rf .deps)
+gzip -9 doc/libxml2-api.xml
+rm -f $RPM_BUILD_ROOT%{_libdir}/*.la
%clean
rm -fr %{buildroot}
@@ -124,7 +126,7 @@ rm -fr %{buildroot}
%doc %{_mandir}/man1/xml2-config.1*
%doc AUTHORS ChangeLog.gz NEWS README Copyright TODO
%doc doc/*.html doc/html doc/*.gif doc/*.png
-%doc doc/tutorial doc/libxml2-api.xml
+%doc doc/tutorial doc/libxml2-api.xml.gz
%doc doc/examples
%{_libdir}/lib*.so
diff --git a/libxml2.spec b/libxml2.spec
index d15f6bf..49c1115 100644
--- a/libxml2.spec
+++ b/libxml2.spec
@@ -1,6 +1,6 @@
Summary: Library providing XML and HTML support
Name: libxml2
-Version: 2.6.18
+Version: 2.6.19
Release: 1
License: MIT
Group: Development/Libraries
@@ -89,13 +89,15 @@ else
%configure
make
fi
-(cd doc/examples ; make clean)
gzip -9 ChangeLog
%install
rm -fr %{buildroot}
%makeinstall
+(cd doc/examples ; make clean ; rm -rf .deps)
+gzip -9 doc/libxml2-api.xml
+rm -f $RPM_BUILD_ROOT%{_libdir}/*.la
%clean
rm -fr %{buildroot}
@@ -124,7 +126,7 @@ rm -fr %{buildroot}
%doc %{_mandir}/man1/xml2-config.1*
%doc AUTHORS ChangeLog.gz NEWS README Copyright TODO
%doc doc/*.html doc/html doc/*.gif doc/*.png
-%doc doc/tutorial doc/libxml2-api.xml
+%doc doc/tutorial doc/libxml2-api.xml.gz
%doc doc/examples
%{_libdir}/lib*.so
@@ -148,8 +150,8 @@ rm -fr %{buildroot}
%doc doc/python.html
%changelog
-* Sun Mar 13 2005 Daniel Veillard <veillard@redhat.com>
-- upstream release 2.6.18 see http://xmlsoft.org/news.html
+* Sat Apr 2 2005 Daniel Veillard <veillard@redhat.com>
+- upstream release 2.6.19 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/list.c b/list.c
index ccd2233..2dc6d96 100644
--- a/list.c
+++ b/list.c
@@ -775,3 +775,5 @@ xmlListCopy(xmlListPtr cur, const xmlListPtr old)
}
/* xmlListUnique() */
/* xmlListSwap */
+#define bottom_list
+#include "elfgcchack.h"
diff --git a/macos/src/config-mac.h b/macos/src/config-mac.h
index 7317aef..7281426 100644
--- a/macos/src/config-mac.h
+++ b/macos/src/config-mac.h
@@ -16,7 +16,7 @@
#undef HAVE_LIBHISTORY
#undef HAVE_LIBREADLINE
-#define SOCKLEN_T socklen_t
+#define XML_SOCKLEN_T socklen_t
#define HAVE_LIBPTHREAD
#define HAVE_PTHREAD_H
#define LIBXML_THREAD_ENABLED
diff --git a/nanoftp.c b/nanoftp.c
index ac0c2f0..e4319cf 100644
--- a/nanoftp.c
+++ b/nanoftp.c
@@ -81,8 +81,8 @@
#define _WINSOCKAPI_
#include <wsockcompat.h>
#include <winsock2.h>
-#undef SOCKLEN_T
-#define SOCKLEN_T unsigned int
+#undef XML_SOCKLEN_T
+#define XML_SOCKLEN_T unsigned int
#endif
/**
@@ -95,7 +95,7 @@
#define SOCKET int
#endif
#if defined(VMS) || defined(__VMS)
-#define SOCKLEN_T unsigned int
+#define XML_SOCKLEN_T unsigned int
#endif
#ifdef __BEOS__
@@ -1372,7 +1372,7 @@ xmlNanoFTPGetConnection(void *ctx) {
#else
struct sockaddr_in dataAddr;
#endif
- SOCKLEN_T dataAddrLen;
+ XML_SOCKLEN_T dataAddrLen;
if (ctxt == NULL) return(-1);
@@ -2104,3 +2104,5 @@ int main(int argc, char **argv) {
}
#endif /* STANDALONE */
#endif /* LIBXML_FTP_ENABLED */
+#define bottom_nanoftp
+#include "elfgcchack.h"
diff --git a/nanohttp.c b/nanohttp.c
index ef88fd0..9897c14 100644
--- a/nanohttp.c
+++ b/nanohttp.c
@@ -69,7 +69,7 @@
#ifdef VMS
#include <stropts>
-#define SOCKLEN_T unsigned int
+#define XML_SOCKLEN_T unsigned int
#define SOCKET int
#endif
@@ -78,8 +78,8 @@
#define _WINSOCKAPI_
#include <wsockcompat.h>
#include <winsock2.h>
-#undef SOCKLEN_T
-#define SOCKLEN_T unsigned int
+#undef XML_SOCKLEN_T
+#define XML_SOCKLEN_T unsigned int
#endif
@@ -107,8 +107,8 @@
#endif
#endif
-#ifndef SOCKLEN_T
-#define SOCKLEN_T unsigned int
+#ifndef XML_SOCKLEN_T
+#define XML_SOCKLEN_T unsigned int
#endif
#ifndef SOCKET
#define SOCKET int
@@ -861,7 +861,7 @@ xmlNanoHTTPConnectAttempt(struct sockaddr *addr)
|| FD_ISSET(s, &xfd)
#endif
) {
- SOCKLEN_T len;
+ XML_SOCKLEN_T len;
len = sizeof(status);
#ifdef SO_ERROR
if (getsockopt(s, SOL_SOCKET, SO_ERROR, (char*)&status, &len) < 0 ) {
@@ -1673,3 +1673,5 @@ int main(int argc, char **argv) {
}
#endif /* STANDALONE */
#endif /* LIBXML_HTTP_ENABLED */
+#define bottom_nanohttp
+#include "elfgcchack.h"
diff --git a/parser.c b/parser.c
index d089882..84b58fe 100644
--- a/parser.c
+++ b/parser.c
@@ -3220,8 +3220,9 @@ get_more_space:
(ctxt->sax->ignorableWhitespace !=
ctxt->sax->characters)) {
if (areBlanks(ctxt, tmp, nbchar, 1)) {
- ctxt->sax->ignorableWhitespace(ctxt->userData,
- tmp, nbchar);
+ if (ctxt->sax->ignorableWhitespace != NULL)
+ ctxt->sax->ignorableWhitespace(ctxt->userData,
+ tmp, nbchar);
} else if (ctxt->sax->characters != NULL)
ctxt->sax->characters(ctxt->userData,
tmp, nbchar);
@@ -3274,8 +3275,9 @@ get_more:
ctxt->input->cur = in;
if (areBlanks(ctxt, tmp, nbchar, 0)) {
- ctxt->sax->ignorableWhitespace(ctxt->userData,
- tmp, nbchar);
+ if (ctxt->sax->ignorableWhitespace != NULL)
+ ctxt->sax->ignorableWhitespace(ctxt->userData,
+ tmp, nbchar);
} else if (ctxt->sax->characters != NULL)
ctxt->sax->characters(ctxt->userData,
tmp, nbchar);
@@ -12210,7 +12212,7 @@ xmlCreateDocParserCtxt(const xmlChar *cur) {
*/
xmlDocPtr
-xmlSAXParseDoc(xmlSAXHandlerPtr sax, xmlChar *cur, int recovery) {
+xmlSAXParseDoc(xmlSAXHandlerPtr sax, const xmlChar *cur, int recovery) {
xmlDocPtr ret;
xmlParserCtxtPtr ctxt;
xmlSAXHandlerPtr oldsax = NULL;
@@ -12251,7 +12253,7 @@ xmlSAXParseDoc(xmlSAXHandlerPtr sax, xmlChar *cur, int recovery) {
*/
xmlDocPtr
-xmlParseDoc(xmlChar *cur) {
+xmlParseDoc(const xmlChar *cur) {
return(xmlSAXParseDoc(NULL, cur, 0));
}
#endif /* LIBXML_SAX1_ENABLED */
@@ -13089,3 +13091,6 @@ xmlCtxtReadIO(xmlParserCtxtPtr ctxt, xmlInputReadCallback ioread,
inputPush(ctxt, stream);
return (xmlDoRead(ctxt, URL, encoding, options, 1));
}
+
+#define bottom_parser
+#include "elfgcchack.h"
diff --git a/parserInternals.c b/parserInternals.c
index 27257fc..0e01deb 100644
--- a/parserInternals.c
+++ b/parserInternals.c
@@ -2092,3 +2092,5 @@ xmlKeepBlanksDefault(int val) {
return(old);
}
+#define bottom_parserInternals
+#include "elfgcchack.h"
diff --git a/pattern.c b/pattern.c
index 041039e..4e31c3a 100644
--- a/pattern.c
+++ b/pattern.c
@@ -1082,7 +1082,7 @@ xmlCompileStepPattern(xmlPatParserContextPtr ctxt) {
ctxt->error = 1;
goto error;
}
- xmlFree(name);
+ /* NOT REACHED xmlFree(name); */
}
} else if (CUR == '*') {
if (name != NULL) {
@@ -2075,4 +2075,6 @@ xmlPatternFromRoot(xmlPatternPtr comp) {
}
+#define bottom_pattern
+#include "elfgcchack.h"
#endif /* LIBXML_PATTERN_ENABLED */
diff --git a/python/generator.py b/python/generator.py
index 8add0a9..6144e54 100755
--- a/python/generator.py
+++ b/python/generator.py
@@ -346,6 +346,9 @@ def skip_function(name):
return 1
if name == "xmlFreeValidCtxt":
return 1
+ if name == "xmlSchemaFreeValidCtxt":
+ return 1
+
#
# Those are skipped because the Const version is used of the bindings
# instead.
@@ -744,6 +747,9 @@ classes_ancestor = {
"inputBuffer": "ioReadWrapper",
"parserCtxt": "parserCtxtCore",
"xmlTextReader": "xmlTextReaderCore",
+ "ValidCtxt": "ValidCtxtCore",
+ "SchemaValidCtxt": "SchemaValidCtxtCore",
+ "relaxNgValidCtxt": "relaxNgValidCtxtCore",
}
classes_destructors = {
"parserCtxt": "xmlFreeParserCtxt",
diff --git a/python/libxml.c b/python/libxml.c
index b520994..b18f887 100644
--- a/python/libxml.c
+++ b/python/libxml.c
@@ -1378,7 +1378,7 @@ libxml_xmlSAXParseFile(ATTRIBUTE_UNUSED PyObject * self, PyObject * args)
SAX = &pythonSaxHandler;
Py_INCREF(pyobj_SAX);
/* The reference is released in pythonEndDocument() */
- xmlSAXParseFileWithData(SAX, URI, recover, pyobj_SAX);
+ xmlSAXUserParseFile(SAX, pyobj_SAX, URI);
Py_INCREF(Py_None);
return (Py_None);
}
@@ -1859,7 +1859,7 @@ libxml_xmlSetValidErrors(ATTRIBUTE_UNUSED PyObject * self, PyObject * args)
}
-PyObject *
+static PyObject *
libxml_xmlFreeValidCtxt(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) {
xmlValidCtxtPtr cur;
xmlValidCtxtPyCtxtPtr pyCtxt;
@@ -3289,8 +3289,7 @@ libxml_xmlSchemaSetValidErrors(ATTRIBUTE_UNUSED PyObject * self, PyObject * args
return(py_retval);
}
-#if 0
-PyObject *
+static PyObject *
libxml_xmlSchemaFreeValidCtxt(ATTRIBUTE_UNUSED PyObject * self, PyObject * args)
{
xmlSchemaValidCtxtPtr ctxt;
@@ -3316,7 +3315,6 @@ libxml_xmlSchemaFreeValidCtxt(ATTRIBUTE_UNUSED PyObject * self, PyObject * args)
Py_INCREF(Py_None);
return(Py_None);
}
-#endif
#endif
@@ -3668,6 +3666,7 @@ static PyMethodDef libxmlMethods[] = {
{(char *)"xmlRelaxNGSetValidErrors", libxml_xmlRelaxNGSetValidErrors, METH_VARARGS, NULL},
{(char *)"xmlRelaxNGFreeValidCtxt", libxml_xmlRelaxNGFreeValidCtxt, METH_VARARGS, NULL},
{(char *)"xmlSchemaSetValidErrors", libxml_xmlSchemaSetValidErrors, METH_VARARGS, NULL},
+ {(char *)"xmlSchemaFreeValidCtxt", libxml_xmlSchemaFreeValidCtxt, METH_VARARGS, NULL},
#endif
#ifdef LIBXML_C14N_ENABLED
#ifdef LIBXML_OUTPUT_ENABLED
diff --git a/python/libxml.py b/python/libxml.py
index bde8aba..2eca71e 100644
--- a/python/libxml.py
+++ b/python/libxml.py
@@ -587,6 +587,45 @@ class parserCtxtCore:
return libxml2mod.addLocalCatalog(self._o, uri)
+class ValidCtxtCore:
+
+ def __init__(self, *args, **kw):
+ pass
+
+ def setValidityErrorHandler(self, err_func, warn_func, arg=None):
+ """
+ Register error and warning handlers for DTD validation.
+ These will be called back as f(msg,arg)
+ """
+ libxml2mod.xmlSetValidErrors(self._o, err_func, warn_func, arg)
+
+
+class SchemaValidCtxtCore:
+
+ def __init__(self, *args, **kw):
+ pass
+
+ def setValidityErrorHandler(self, err_func, warn_func, arg=None):
+ """
+ Register error and warning handlers for Schema validation.
+ These will be called back as f(msg,arg)
+ """
+ libxml2mod.xmlSchemaSetValidErrors(self._o, err_func, warn_func, arg)
+
+
+class relaxNgValidCtxtCore:
+
+ def __init__(self, *args, **kw):
+ pass
+
+ def setValidityErrorHandler(self, err_func, warn_func, arg=None):
+ """
+ Register error and warning handlers for RelaxNG validation.
+ These will be called back as f(msg,arg)
+ """
+ libxml2mod.xmlRelaxNGSetValidErrors(self._o, err_func, warn_func, arg)
+
+
def _xmlTextReaderErrorFunc((f,arg),msg,severity,locator):
"""Intermediate callback to wrap the locator"""
return f(arg,msg,severity,xmlTextReaderLocator(locator))
diff --git a/python/libxml2-py.c b/python/libxml2-py.c
index b704cd1..f0821d2 100644
--- a/python/libxml2-py.c
+++ b/python/libxml2-py.c
@@ -7738,22 +7738,6 @@ libxml_xmlXPathNewNodeSet(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) {
#endif /* LIBXML_XPATH_ENABLED */
#ifdef LIBXML_SCHEMAS_ENABLED
PyObject *
-libxml_xmlSchemaFreeValidCtxt(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) {
- xmlSchemaValidCtxtPtr ctxt;
- PyObject *pyobj_ctxt;
-
- if (!PyArg_ParseTuple(args, (char *)"O:xmlSchemaFreeValidCtxt", &pyobj_ctxt))
- return(NULL);
- ctxt = (xmlSchemaValidCtxtPtr) PySchemaValidCtxt_Get(pyobj_ctxt);
-
- xmlSchemaFreeValidCtxt(ctxt);
- Py_INCREF(Py_None);
- return(Py_None);
-}
-
-#endif /* LIBXML_SCHEMAS_ENABLED */
-#ifdef LIBXML_SCHEMAS_ENABLED
-PyObject *
libxml_xmlSchemaNewParserCtxt(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) {
PyObject *py_retval;
xmlSchemaParserCtxtPtr c_retval;
diff --git a/python/setup.py b/python/setup.py
index 748c1a8..e1e1cdb 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.18",
+ version = "2.6.19",
description = descr,
author = "Daniel Veillard",
author_email = "veillard@redhat.com",
diff --git a/python/tests/Makefile.am b/python/tests/Makefile.am
index f41cd6d..c6d03e9 100644
--- a/python/tests/Makefile.am
+++ b/python/tests/Makefile.am
@@ -39,7 +39,10 @@ PYTESTS= \
tstLastError.py \
indexes.py \
dtdvalid.py \
- tstmem.py
+ tstmem.py \
+ validDTD.py \
+ validSchemas.py \
+ validRNG.py
XMLS= \
tst.xml \
diff --git a/python/tests/Makefile.in b/python/tests/Makefile.in
index 2184681..6769fa1 100644
--- a/python/tests/Makefile.in
+++ b/python/tests/Makefile.in
@@ -295,7 +295,10 @@ PYTESTS = \
tstLastError.py \
indexes.py \
dtdvalid.py \
- tstmem.py
+ tstmem.py \
+ validDTD.py \
+ validSchemas.py \
+ validRNG.py
XMLS = \
tst.xml \
diff --git a/python/tests/validDTD.py b/python/tests/validDTD.py
new file mode 100755
index 0000000..1222f9f
--- /dev/null
+++ b/python/tests/validDTD.py
@@ -0,0 +1,59 @@
+#!/usr/bin/python -u
+import libxml2
+import sys
+
+ARG = 'test string'
+
+class ErrorHandler:
+
+ def __init__(self):
+ self.errors = []
+
+ def handler(self, msg, data):
+ if data != ARG:
+ raise Exception, "Error handler did not receive correct argument"
+ self.errors.append(msg)
+
+
+# Memory debug specific
+libxml2.debugMemory(1)
+
+dtd="""<!ELEMENT foo EMPTY>"""
+valid="""<?xml version="1.0"?>
+<foo></foo>"""
+
+invalid="""<?xml version="1.0"?>
+<foo><bar/></foo>"""
+
+dtd = libxml2.parseDTD(None, 'test.dtd')
+ctxt = libxml2.newValidCtxt()
+e = ErrorHandler()
+ctxt.setValidityErrorHandler(e.handler, e.handler, ARG)
+
+# Test valid document
+doc = libxml2.parseDoc(valid)
+ret = doc.validateDtd(ctxt, dtd)
+if ret != 1 or e.errors:
+ print "error doing DTD validation"
+ sys.exit(1)
+doc.freeDoc()
+
+# Test invalid document
+doc = libxml2.parseDoc(invalid)
+ret = doc.validateDtd(ctxt, dtd)
+if ret != 0 or not e.errors:
+ print "Error: document supposed to be invalid"
+doc.freeDoc()
+
+dtd.freeDtd()
+del dtd
+del ctxt
+
+# 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/python/tests/validRNG.py b/python/tests/validRNG.py
new file mode 100755
index 0000000..7022efe
--- /dev/null
+++ b/python/tests/validRNG.py
@@ -0,0 +1,76 @@
+#!/usr/bin/python -u
+import libxml2
+import sys
+
+ARG = 'test string'
+
+class ErrorHandler:
+
+ def __init__(self):
+ self.errors = []
+
+ def handler(self, msg, data):
+ if data != ARG:
+ raise Exception, "Error handler did not receive correct argument"
+ self.errors.append(msg)
+
+# Memory debug specific
+libxml2.debugMemory(1)
+
+schema="""<?xml version="1.0"?>
+<element name="foo"
+ xmlns="http://relaxng.org/ns/structure/1.0"
+ xmlns:a="http://relaxng.org/ns/annotation/1.0"
+ xmlns:ex1="http://www.example.com/n1"
+ xmlns:ex2="http://www.example.com/n2">
+ <a:documentation>A foo element.</a:documentation>
+ <element name="ex1:bar1">
+ <empty/>
+ </element>
+ <element name="ex2:bar2">
+ <empty/>
+ </element>
+</element>
+"""
+
+valid="""<?xml version="1.0"?>
+<foo><pre1:bar1 xmlns:pre1="http://www.example.com/n1"/><pre2:bar2 xmlns:pre2="http://www.example.com/n2"/></foo>"""
+
+invalid="""<?xml version="1.0"?>
+<foo><pre1:bar1 xmlns:pre1="http://www.example.com/n1">bad</pre1:bar1><pre2:bar2 xmlns:pre2="http://www.example.com/n2"/></foo>"""
+
+rngp = libxml2.relaxNGNewMemParserCtxt(schema, len(schema))
+rngs = rngp.relaxNGParse()
+ctxt = rngs.relaxNGNewValidCtxt()
+e = ErrorHandler()
+ctxt.setValidityErrorHandler(e.handler, e.handler, ARG)
+
+# Test valid document
+doc = libxml2.parseDoc(valid)
+ret = doc.relaxNGValidateDoc(ctxt)
+if ret != 0 or e.errors:
+ print "error doing RelaxNG validation"
+ sys.exit(1)
+doc.freeDoc()
+
+# Test invalid document
+doc = libxml2.parseDoc(invalid)
+ret = doc.relaxNGValidateDoc(ctxt)
+if ret == 0 or not e.errors:
+ print "Error: document supposed to be RelaxNG invalid"
+ sys.exit(1)
+doc.freeDoc()
+
+del rngp
+del rngs
+del ctxt
+libxml2.relaxNGCleanupTypes()
+
+# 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/python/tests/validSchemas.py b/python/tests/validSchemas.py
new file mode 100755
index 0000000..d4d62b2
--- /dev/null
+++ b/python/tests/validSchemas.py
@@ -0,0 +1,83 @@
+#!/usr/bin/python -u
+import libxml2
+import sys
+
+ARG = 'test string'
+
+class ErrorHandler:
+
+ def __init__(self):
+ self.errors = []
+
+ def handler(self, msg, data):
+ if data != ARG:
+ raise Exception, "Error handler did not receive correct argument"
+ self.errors.append(msg)
+
+# Memory debug specific
+libxml2.debugMemory(1)
+
+schema="""<?xml version="1.0" encoding="iso-8859-1"?>
+<schema xmlns = "http://www.w3.org/2001/XMLSchema">
+ <element name = "Customer">
+ <complexType>
+ <sequence>
+ <element name = "FirstName" type = "string" />
+ <element name = "MiddleInitial" type = "string" />
+ <element name = "LastName" type = "string" />
+ </sequence>
+ <attribute name = "customerID" type = "integer" />
+ </complexType>
+ </element>
+</schema>"""
+
+valid="""<?xml version="1.0" encoding="iso-8859-1"?>
+<Customer customerID = "24332">
+ <FirstName>Raymond</FirstName>
+ <MiddleInitial>G</MiddleInitial>
+ <LastName>Bayliss</LastName>
+</Customer>
+"""
+
+invalid="""<?xml version="1.0" encoding="iso-8859-1"?>
+<Customer customerID = "24332">
+ <MiddleInitial>G</MiddleInitial>
+ <LastName>Bayliss</LastName>
+</Customer>
+"""
+
+e = ErrorHandler()
+ctxt_parser = libxml2.schemaNewMemParserCtxt(schema, len(schema))
+ctxt_schema = ctxt_parser.schemaParse()
+ctxt_valid = ctxt_schema.schemaNewValidCtxt()
+ctxt_valid.setValidityErrorHandler(e.handler, e.handler, ARG)
+
+# Test valid document
+doc = libxml2.parseDoc(valid)
+ret = doc.schemaValidateDoc(ctxt_valid)
+if ret != 0 or e.errors:
+ print "error doing schema validation"
+ sys.exit(1)
+doc.freeDoc()
+
+# Test invalid document
+doc = libxml2.parseDoc(invalid)
+ret = doc.schemaValidateDoc(ctxt_valid)
+if ret == 0 or not e.errors:
+ print "Error: document supposer to be schema invalid"
+ sys.exit(1)
+doc.freeDoc()
+
+del ctxt_parser
+del ctxt_schema
+del ctxt_valid
+libxml2.schemaCleanupTypes()
+
+# 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/relaxng.c b/relaxng.c
index 16174e0..cd28034 100644
--- a/relaxng.c
+++ b/relaxng.c
@@ -6129,11 +6129,18 @@ xmlRelaxNGCheckRules(xmlRelaxNGParserCtxtPtr ctxt,
ret = XML_RELAXNG_CONTENT_EMPTY;
if ((cur->type == XML_RELAXNG_REF) ||
(cur->type == XML_RELAXNG_PARENTREF)) {
+ /*
+ * This should actually be caught by list//element(ref) at the
+ * element boundaries, c.f. Bug #159968 local refs are dropped
+ * in step 4.19.
+ */
+#if 0
if (flags & XML_RELAXNG_IN_LIST) {
xmlRngPErr(ctxt, cur->node, XML_RNGP_PAT_LIST_REF,
"Found forbidden pattern list//ref\n", NULL,
NULL);
}
+#endif
if (flags & XML_RELAXNG_IN_DATAEXCEPT) {
xmlRngPErr(ctxt, cur->node, XML_RNGP_PAT_DATA_EXCEPT_REF,
"Found forbidden pattern data/except//ref\n",
@@ -10701,4 +10708,6 @@ xmlRelaxNGValidateDoc(xmlRelaxNGValidCtxtPtr ctxt, xmlDocPtr doc)
return (ret);
}
+#define bottom_relaxng
+#include "elfgcchack.h"
#endif /* LIBXML_SCHEMAS_ENABLED */
diff --git a/result/relaxng/list_0 b/result/relaxng/list_0
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/result/relaxng/list_0
diff --git a/result/relaxng/list_0.err b/result/relaxng/list_0.err
new file mode 100644
index 0000000..5c8ca7c
--- /dev/null
+++ b/result/relaxng/list_0.err
@@ -0,0 +1 @@
+./test/relaxng/list_0.xml validates
diff --git a/result/relaxng/list_1 b/result/relaxng/list_1
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/result/relaxng/list_1
diff --git a/result/relaxng/list_1.err b/result/relaxng/list_1.err
new file mode 100644
index 0000000..3ae35ae
--- /dev/null
+++ b/result/relaxng/list_1.err
@@ -0,0 +1,2 @@
+./test/relaxng/list_1.xml:1: element elem1: Relax-NG validity error : Element elem1 failed to validate attributes
+./test/relaxng/list_1.xml fails to validate
diff --git a/result/relaxng/list_err b/result/relaxng/list_err
new file mode 100644
index 0000000..748e21b
--- /dev/null
+++ b/result/relaxng/list_err
@@ -0,0 +1 @@
+./test/relaxng/list.rng validates
diff --git a/result/relaxng/list_valid b/result/relaxng/list_valid
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/result/relaxng/list_valid
diff --git a/result/schemas/element-err_0_0.err b/result/schemas/element-err_0_0.err
index 08fd1f1..5760fb4 100644
--- a/result/schemas/element-err_0_0.err
+++ b/result/schemas/element-err_0_0.err
@@ -1,4 +1,4 @@
-./test/schemas/element-err_0.xsd:8: element element: Schemas parser error : Element decl.: The attribute 'name' is required but missing.
+./test/schemas/element-err_0.xsd:8: element element: Schemas parser error : Element 'element': The attribute 'name' is required but missing.
./test/schemas/element-err_0.xsd:14: element element: Schemas parser error : Element decl. 'foo': The attribute 'ref' is not allowed.
./test/schemas/element-err_0.xsd:14: element element: Schemas parser error : Element decl. 'foo': The attribute 'minOccurs' is not allowed.
./test/schemas/element-err_0.xsd:14: element element: Schemas parser error : Element decl. 'foo': The attribute 'maxOccurs' is not allowed.
@@ -6,15 +6,15 @@
./test/schemas/element-err_0.xsd:14: element element: Schemas parser error : Element decl. 'foo', attribute 'final' [(#all | List of (extension | restriction))]: The value 'fantasy' is not valid.
./test/schemas/element-err_0.xsd:14: element element: Schemas parser error : Element decl. 'foo', attribute 'block' [(#all | List of (extension | restriction | substitution))]: The value 'flute' is not valid.
./test/schemas/element-err_0.xsd:14: element element: Schemas parser error : Element decl. 'foo': The attributes 'default' and 'fixed' are mutually exclusive.
-./test/schemas/element-err_0.xsd:22: element element: Schemas parser error : Element ref. 'foo:bar': The attributes 'ref' and 'name' are mutually exclusive.
-./test/schemas/element-err_0.xsd:22: element element: Schemas parser error : Element ref. 'foo:bar', attribute 'abstract': Only the attributes 'minOccurs', 'maxOccurs' and 'id' are allowed in addition to 'ref'.
-./test/schemas/element-err_0.xsd:22: element element: Schemas parser error : Element ref. 'foo:bar', attribute 'minOccurs': The value must not be greater than the value of 'maxOccurs'.
-./test/schemas/element-err_0.xsd:23: element complexType: Schemas parser error : Element ref. 'foo:bar': The content is not valid. Expected is (annotation?).
+./test/schemas/element-err_0.xsd:22: element element: Schemas parser error : Element 'element', attribute 'minOccurs': The value must not be greater than the value of 'maxOccurs'.
+./test/schemas/element-err_0.xsd:22: element element: Schemas parser error : Element 'element': The attributes 'ref' and 'name' are mutually exclusive.
+./test/schemas/element-err_0.xsd:22: element element: Schemas parser error : Element 'element', attribute 'abstract': Only the attributes 'minOccurs', 'maxOccurs' and 'id' are allowed in addition to 'ref'.
+./test/schemas/element-err_0.xsd:23: element complexType: Schemas parser error : Element 'element': The content is not valid. Expected is (annotation?).
+./test/schemas/element-err_0.xsd:30: element element: Schemas parser error : Element 'element', attribute 'maxOccurs': The value must be greater than or equal to 1.
./test/schemas/element-err_0.xsd:30: element element: Schemas parser error : Element decl. 'myomy': The attribute 'abstract' is not allowed.
./test/schemas/element-err_0.xsd:30: element element: Schemas parser error : Element decl. 'myomy': The attribute 'substitutionGroup' is not allowed.
./test/schemas/element-err_0.xsd:30: element element: Schemas parser error : Element decl. 'myomy': The attribute 'final' is not allowed.
./test/schemas/element-err_0.xsd:30: element element: Schemas parser error : Element decl. 'myomy', attribute 'block' [(#all | List of (extension | restriction | substitution))]: The value 'flute' is not valid.
./test/schemas/element-err_0.xsd:30: element element: Schemas parser error : Element decl. 'myomy': The attributes 'default' and 'fixed' are mutually exclusive.
-./test/schemas/element-err_0.xsd:30: element element: Schemas parser error : Element decl. 'myomy', attribute 'maxOccurs': The value must be greater than or equal to 1.
./test/schemas/element-err_0.xsd:31: element complexType: Schemas parser error : Element decl. 'myomy': The attribute 'type' and the <complexType> child are mutually exclusive.
./test/schemas/element-err_0.xsd:32: element simpleType: Schemas parser error : Element decl. 'myomy': The content is not valid. Expected is (annotation?, ((simpleType | complexType)?, (unique | key | keyref)*)).
diff --git a/result/schemas/element-minmax-err_0_0.err b/result/schemas/element-minmax-err_0_0.err
index 8071eff..b2be323 100644
--- a/result/schemas/element-minmax-err_0_0.err
+++ b/result/schemas/element-minmax-err_0_0.err
@@ -1 +1 @@
-./test/schemas/element-minmax-err_0.xsd:6: element element: Schemas parser error : Element decl. 'bar', attribute 'maxOccurs': The value must be greater than or equal to 1.
+./test/schemas/element-minmax-err_0.xsd:6: element element: Schemas parser error : Element 'element', attribute 'maxOccurs': The value must be greater than or equal to 1.
diff --git a/result/schemas/src-element2-1_0_0.err b/result/schemas/src-element2-1_0_0.err
index cb97353..f48f013 100644
--- a/result/schemas/src-element2-1_0_0.err
+++ b/result/schemas/src-element2-1_0_0.err
@@ -1 +1 @@
-./test/schemas/src-element2-1_0.xsd:12: element element: Schemas parser error : Element ref. 'foo:bar': The attributes 'ref' and 'name' are mutually exclusive.
+./test/schemas/src-element2-1_0.xsd:12: element element: Schemas parser error : Element 'element': The attributes 'ref' and 'name' are mutually exclusive.
diff --git a/result/schemas/src-element2-2_0_0.err b/result/schemas/src-element2-2_0_0.err
index b62417d..c7995f4 100644
--- a/result/schemas/src-element2-2_0_0.err
+++ b/result/schemas/src-element2-2_0_0.err
@@ -1,9 +1,9 @@
-./test/schemas/src-element2-2_0.xsd:18: element element: Schemas parser error : Element ref. 'foo:bar', attribute 'maxOccurs': The value must be greater than or equal to 1.
-./test/schemas/src-element2-2_0.xsd:23: element complexType: Schemas parser error : Element ref. 'foo:bar': The content is not valid. Expected is (annotation?).
-./test/schemas/src-element2-2_0.xsd:29: element simpleType: Schemas parser error : Element ref. 'foo:bar': The content is not valid. Expected is (annotation?).
-./test/schemas/src-element2-2_0.xsd:36: element element: Schemas parser error : Element ref. 'foo:bar', attribute 'type': Only the attributes 'minOccurs', 'maxOccurs' and 'id' are allowed in addition to 'ref'.
-./test/schemas/src-element2-2_0.xsd:37: element element: Schemas parser error : Element ref. 'foo:bar', attribute 'nillable': Only the attributes 'minOccurs', 'maxOccurs' and 'id' are allowed in addition to 'ref'.
-./test/schemas/src-element2-2_0.xsd:38: element element: Schemas parser error : Element ref. 'foo:bar', attribute 'default': Only the attributes 'minOccurs', 'maxOccurs' and 'id' are allowed in addition to 'ref'.
-./test/schemas/src-element2-2_0.xsd:39: element element: Schemas parser error : Element ref. 'foo:bar', attribute 'fixed': Only the attributes 'minOccurs', 'maxOccurs' and 'id' are allowed in addition to 'ref'.
-./test/schemas/src-element2-2_0.xsd:40: element element: Schemas parser error : Element ref. 'foo:bar', attribute 'form': Only the attributes 'minOccurs', 'maxOccurs' and 'id' are allowed in addition to 'ref'.
-./test/schemas/src-element2-2_0.xsd:41: element element: Schemas parser error : Element ref. 'foo:bar', attribute 'block': Only the attributes 'minOccurs', 'maxOccurs' and 'id' are allowed in addition to 'ref'.
+./test/schemas/src-element2-2_0.xsd:18: element element: Schemas parser error : Element 'element', attribute 'maxOccurs': The value must be greater than or equal to 1.
+./test/schemas/src-element2-2_0.xsd:23: element complexType: Schemas parser error : Element 'element': The content is not valid. Expected is (annotation?).
+./test/schemas/src-element2-2_0.xsd:29: element simpleType: Schemas parser error : Element 'element': The content is not valid. Expected is (annotation?).
+./test/schemas/src-element2-2_0.xsd:36: element element: Schemas parser error : Element 'element', attribute 'type': Only the attributes 'minOccurs', 'maxOccurs' and 'id' are allowed in addition to 'ref'.
+./test/schemas/src-element2-2_0.xsd:37: element element: Schemas parser error : Element 'element', attribute 'nillable': Only the attributes 'minOccurs', 'maxOccurs' and 'id' are allowed in addition to 'ref'.
+./test/schemas/src-element2-2_0.xsd:38: element element: Schemas parser error : Element 'element', attribute 'default': Only the attributes 'minOccurs', 'maxOccurs' and 'id' are allowed in addition to 'ref'.
+./test/schemas/src-element2-2_0.xsd:39: element element: Schemas parser error : Element 'element', attribute 'fixed': Only the attributes 'minOccurs', 'maxOccurs' and 'id' are allowed in addition to 'ref'.
+./test/schemas/src-element2-2_0.xsd:40: element element: Schemas parser error : Element 'element', attribute 'form': Only the attributes 'minOccurs', 'maxOccurs' and 'id' are allowed in addition to 'ref'.
+./test/schemas/src-element2-2_0.xsd:41: element element: Schemas parser error : Element 'element', attribute 'block': Only the attributes 'minOccurs', 'maxOccurs' and 'id' are allowed in addition to 'ref'.
diff --git a/test/relaxng/.memdump b/test/relaxng/.memdump
index 9849352..840a248 100644
--- a/test/relaxng/.memdump
+++ b/test/relaxng/.memdump
@@ -1,4 +1,4 @@
- 01:31:31 PM
+ 03:32:41 PM
- MEMORY ALLOCATED : 0, MAX was 36632
+ MEMORY ALLOCATED : 0, MAX was 28962
BLOCK NUMBER SIZE TYPE
diff --git a/test/relaxng/list.rng b/test/relaxng/list.rng
new file mode 100644
index 0000000..57de17c
--- /dev/null
+++ b/test/relaxng/list.rng
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<grammar
+ xmlns="http://relaxng.org/ns/structure/1.0"
+ xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"
+ datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
+
+<define name="pattern1">
+ <data type="string">
+ <param name="pattern">-?([0-9]+(\.[0-9]*)?|\.[0-9]+)</param>
+ </data>
+</define>
+
+<start>
+ <element name="elem1">
+ <attribute name="attr1">
+ <list>
+ <ref name="pattern1"/>
+ </list>
+ </attribute>
+ </element>
+</start>
+
+</grammar>
diff --git a/test/relaxng/list_0.xml b/test/relaxng/list_0.xml
new file mode 100644
index 0000000..a6b4d60
--- /dev/null
+++ b/test/relaxng/list_0.xml
@@ -0,0 +1 @@
+<elem1 attr1="0"/>
diff --git a/test/relaxng/list_1.xml b/test/relaxng/list_1.xml
new file mode 100644
index 0000000..a8907cc
--- /dev/null
+++ b/test/relaxng/list_1.xml
@@ -0,0 +1 @@
+<elem1 attr1="a"/>
diff --git a/test/schemas/bug152470_1.xsd b/test/schemas/bug152470_1.xsd
index 877a655..7fc9747 100755
--- a/test/schemas/bug152470_1.xsd
+++ b/test/schemas/bug152470_1.xsd
@@ -13,7 +13,7 @@
<complexType name="Identifier">
<choice>
- <element name="keyIdentifier" type="roap:KeyIdentifier"/>
+ <element name="keyIdentifier" type="roap:X509SPKIHash"/> <!-- was: type="roap:KeyIdentifier" -->
</choice>
</complexType>
diff --git a/testapi.c b/testapi.c
index c3d7045..4a73ed8 100644
--- a/testapi.c
+++ b/testapi.c
@@ -1064,6 +1064,9 @@ static xmlSchemaValType gen_xmlSchemaValType(int no, int nr ATTRIBUTE_UNUSED) {
static void des_xmlSchemaValType(int no ATTRIBUTE_UNUSED, xmlSchemaValType val ATTRIBUTE_UNUSED, int nr ATTRIBUTE_UNUSED) {
}
+static void desret_xmlSchemaValType(xmlSchemaValType val ATTRIBUTE_UNUSED) {
+}
+
#endif
#ifdef LIBXML_SCHEMAS_ENABLED
@@ -13610,14 +13613,14 @@ test_xmlParseDoc(void) {
xmlChar * cur; /* a pointer to an array of xmlChar */
int n_cur;
- for (n_cur = 0;n_cur < gen_nb_xmlChar_ptr;n_cur++) {
+ for (n_cur = 0;n_cur < gen_nb_const_xmlChar_ptr;n_cur++) {
mem_base = xmlMemBlocks();
- cur = gen_xmlChar_ptr(n_cur, 0);
+ cur = gen_const_xmlChar_ptr(n_cur, 0);
- ret_val = xmlParseDoc(cur);
+ ret_val = xmlParseDoc((const xmlChar *)cur);
desret_xmlDocPtr(ret_val);
call_tests++;
- des_xmlChar_ptr(n_cur, cur, 0);
+ des_const_xmlChar_ptr(n_cur, (const xmlChar *)cur, 0);
xmlResetLastError();
if (mem_base != xmlMemBlocks()) {
printf("Leak of %d blocks found in xmlParseDoc",
@@ -14554,18 +14557,18 @@ test_xmlSAXParseDoc(void) {
int n_recovery;
for (n_sax = 0;n_sax < gen_nb_xmlSAXHandlerPtr;n_sax++) {
- for (n_cur = 0;n_cur < gen_nb_xmlChar_ptr;n_cur++) {
+ for (n_cur = 0;n_cur < gen_nb_const_xmlChar_ptr;n_cur++) {
for (n_recovery = 0;n_recovery < gen_nb_int;n_recovery++) {
mem_base = xmlMemBlocks();
sax = gen_xmlSAXHandlerPtr(n_sax, 0);
- cur = gen_xmlChar_ptr(n_cur, 1);
+ cur = gen_const_xmlChar_ptr(n_cur, 1);
recovery = gen_int(n_recovery, 2);
- ret_val = xmlSAXParseDoc(sax, cur, recovery);
+ ret_val = xmlSAXParseDoc(sax, (const xmlChar *)cur, recovery);
desret_xmlDocPtr(ret_val);
call_tests++;
des_xmlSAXHandlerPtr(n_sax, sax, 0);
- des_xmlChar_ptr(n_cur, cur, 1);
+ des_const_xmlChar_ptr(n_cur, (const xmlChar *)cur, 1);
des_int(n_recovery, recovery, 2);
xmlResetLastError();
if (mem_base != xmlMemBlocks()) {
@@ -16733,6 +16736,7 @@ test_xmlPatterncompile(void) {
return(test_ret);
}
+#ifdef LIBXML_PATTERN_ENABLED
#define gen_nb_xmlStreamCtxtPtr 1
static xmlStreamCtxtPtr gen_xmlStreamCtxtPtr(int no ATTRIBUTE_UNUSED, int nr ATTRIBUTE_UNUSED) {
@@ -16740,6 +16744,8 @@ static xmlStreamCtxtPtr gen_xmlStreamCtxtPtr(int no ATTRIBUTE_UNUSED, int nr ATT
}
static void des_xmlStreamCtxtPtr(int no ATTRIBUTE_UNUSED, xmlStreamCtxtPtr val ATTRIBUTE_UNUSED, int nr ATTRIBUTE_UNUSED) {
}
+#endif
+
static int
test_xmlStreamPop(void) {
@@ -33055,6 +33061,40 @@ test_xmlSchemaGetPredefinedType(void) {
static int
+test_xmlSchemaGetValType(void) {
+ int test_ret = 0;
+
+#if defined(LIBXML_SCHEMAS_ENABLED)
+ int mem_base;
+ xmlSchemaValType ret_val;
+ xmlSchemaValPtr val; /* a schemas value */
+ int n_val;
+
+ for (n_val = 0;n_val < gen_nb_xmlSchemaValPtr;n_val++) {
+ mem_base = xmlMemBlocks();
+ val = gen_xmlSchemaValPtr(n_val, 0);
+
+ ret_val = xmlSchemaGetValType(val);
+ desret_xmlSchemaValType(ret_val);
+ call_tests++;
+ des_xmlSchemaValPtr(n_val, val, 0);
+ xmlResetLastError();
+ if (mem_base != xmlMemBlocks()) {
+ printf("Leak of %d blocks found in xmlSchemaGetValType",
+ xmlMemBlocks() - mem_base);
+ test_ret++;
+ printf(" %d", n_val);
+ printf("\n");
+ }
+ }
+ function_tests++;
+#endif
+
+ return(test_ret);
+}
+
+
+static int
test_xmlSchemaInitTypes(void) {
int test_ret = 0;
@@ -33318,6 +33358,75 @@ test_xmlSchemaValidateFacet(void) {
static int
+test_xmlSchemaValidateFacetWhtsp(void) {
+ int test_ret = 0;
+
+#if defined(LIBXML_SCHEMAS_ENABLED)
+ int mem_base;
+ int ret_val;
+ xmlSchemaFacetPtr facet; /* the facet to check */
+ int n_facet;
+ xmlSchemaWhitespaceValueType fws; /* the whitespace type of the facet's value */
+ int n_fws;
+ xmlSchemaValType valType; /* the built-in type of the value */
+ int n_valType;
+ xmlChar * value; /* the lexical (or normalized for pattern) repr of the value to validate */
+ int n_value;
+ xmlSchemaValPtr val; /* the precomputed value */
+ int n_val;
+ xmlSchemaWhitespaceValueType ws; /* the whitespace type of the value */
+ int n_ws;
+
+ for (n_facet = 0;n_facet < gen_nb_xmlSchemaFacetPtr;n_facet++) {
+ for (n_fws = 0;n_fws < gen_nb_xmlSchemaWhitespaceValueType;n_fws++) {
+ for (n_valType = 0;n_valType < gen_nb_xmlSchemaValType;n_valType++) {
+ for (n_value = 0;n_value < gen_nb_const_xmlChar_ptr;n_value++) {
+ for (n_val = 0;n_val < gen_nb_xmlSchemaValPtr;n_val++) {
+ for (n_ws = 0;n_ws < gen_nb_xmlSchemaWhitespaceValueType;n_ws++) {
+ mem_base = xmlMemBlocks();
+ facet = gen_xmlSchemaFacetPtr(n_facet, 0);
+ fws = gen_xmlSchemaWhitespaceValueType(n_fws, 1);
+ valType = gen_xmlSchemaValType(n_valType, 2);
+ value = gen_const_xmlChar_ptr(n_value, 3);
+ val = gen_xmlSchemaValPtr(n_val, 4);
+ ws = gen_xmlSchemaWhitespaceValueType(n_ws, 5);
+
+ ret_val = xmlSchemaValidateFacetWhtsp(facet, fws, valType, (const xmlChar *)value, val, ws);
+ desret_int(ret_val);
+ call_tests++;
+ des_xmlSchemaFacetPtr(n_facet, facet, 0);
+ des_xmlSchemaWhitespaceValueType(n_fws, fws, 1);
+ des_xmlSchemaValType(n_valType, valType, 2);
+ des_const_xmlChar_ptr(n_value, (const xmlChar *)value, 3);
+ des_xmlSchemaValPtr(n_val, val, 4);
+ des_xmlSchemaWhitespaceValueType(n_ws, ws, 5);
+ xmlResetLastError();
+ if (mem_base != xmlMemBlocks()) {
+ printf("Leak of %d blocks found in xmlSchemaValidateFacetWhtsp",
+ xmlMemBlocks() - mem_base);
+ test_ret++;
+ printf(" %d", n_facet);
+ printf(" %d", n_fws);
+ printf(" %d", n_valType);
+ printf(" %d", n_value);
+ printf(" %d", n_val);
+ printf(" %d", n_ws);
+ printf("\n");
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ function_tests++;
+#endif
+
+ return(test_ret);
+}
+
+
+static int
test_xmlSchemaValidateLengthFacet(void) {
int test_ret = 0;
@@ -33380,6 +33489,75 @@ test_xmlSchemaValidateLengthFacet(void) {
static int
+test_xmlSchemaValidateLengthFacetWhtsp(void) {
+ int test_ret = 0;
+
+#if defined(LIBXML_SCHEMAS_ENABLED)
+ int mem_base;
+ int ret_val;
+ xmlSchemaFacetPtr facet; /* the facet to check */
+ int n_facet;
+ xmlSchemaValType valType; /* the built-in type */
+ int n_valType;
+ xmlChar * value; /* the lexical repr. of the value to be validated */
+ int n_value;
+ xmlSchemaValPtr val; /* the precomputed value */
+ int n_val;
+ unsigned long * length; /* the actual length of the value */
+ int n_length;
+ xmlSchemaWhitespaceValueType ws; /* the whitespace type of the value */
+ int n_ws;
+
+ for (n_facet = 0;n_facet < gen_nb_xmlSchemaFacetPtr;n_facet++) {
+ for (n_valType = 0;n_valType < gen_nb_xmlSchemaValType;n_valType++) {
+ for (n_value = 0;n_value < gen_nb_const_xmlChar_ptr;n_value++) {
+ for (n_val = 0;n_val < gen_nb_xmlSchemaValPtr;n_val++) {
+ for (n_length = 0;n_length < gen_nb_unsigned_long_ptr;n_length++) {
+ for (n_ws = 0;n_ws < gen_nb_xmlSchemaWhitespaceValueType;n_ws++) {
+ mem_base = xmlMemBlocks();
+ facet = gen_xmlSchemaFacetPtr(n_facet, 0);
+ valType = gen_xmlSchemaValType(n_valType, 1);
+ value = gen_const_xmlChar_ptr(n_value, 2);
+ val = gen_xmlSchemaValPtr(n_val, 3);
+ length = gen_unsigned_long_ptr(n_length, 4);
+ ws = gen_xmlSchemaWhitespaceValueType(n_ws, 5);
+
+ ret_val = xmlSchemaValidateLengthFacetWhtsp(facet, valType, (const xmlChar *)value, val, length, ws);
+ desret_int(ret_val);
+ call_tests++;
+ des_xmlSchemaFacetPtr(n_facet, facet, 0);
+ des_xmlSchemaValType(n_valType, valType, 1);
+ des_const_xmlChar_ptr(n_value, (const xmlChar *)value, 2);
+ des_xmlSchemaValPtr(n_val, val, 3);
+ des_unsigned_long_ptr(n_length, length, 4);
+ des_xmlSchemaWhitespaceValueType(n_ws, ws, 5);
+ xmlResetLastError();
+ if (mem_base != xmlMemBlocks()) {
+ printf("Leak of %d blocks found in xmlSchemaValidateLengthFacetWhtsp",
+ xmlMemBlocks() - mem_base);
+ test_ret++;
+ printf(" %d", n_facet);
+ printf(" %d", n_valType);
+ printf(" %d", n_value);
+ printf(" %d", n_val);
+ printf(" %d", n_length);
+ printf(" %d", n_ws);
+ printf("\n");
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ function_tests++;
+#endif
+
+ return(test_ret);
+}
+
+
+static int
test_xmlSchemaValidateListSimpleTypeFacet(void) {
int test_ret = 0;
@@ -33519,7 +33697,7 @@ static int
test_xmlschemastypes(void) {
int test_ret = 0;
- if (quiet == 0) printf("Testing xmlschemastypes : 19 of 25 functions ...\n");
+ if (quiet == 0) printf("Testing xmlschemastypes : 22 of 28 functions ...\n");
test_ret += test_xmlSchemaCheckFacet();
test_ret += test_xmlSchemaCleanupTypes();
test_ret += test_xmlSchemaCollapseString();
@@ -33531,6 +33709,7 @@ test_xmlschemastypes(void) {
test_ret += test_xmlSchemaGetCanonValue();
test_ret += test_xmlSchemaGetFacetValueAsULong();
test_ret += test_xmlSchemaGetPredefinedType();
+ test_ret += test_xmlSchemaGetValType();
test_ret += test_xmlSchemaInitTypes();
test_ret += test_xmlSchemaIsBuiltInTypeFacet();
test_ret += test_xmlSchemaNewFacet();
@@ -33539,7 +33718,9 @@ test_xmlschemastypes(void) {
test_ret += test_xmlSchemaValPredefTypeNode();
test_ret += test_xmlSchemaValPredefTypeNodeNoNorm();
test_ret += test_xmlSchemaValidateFacet();
+ test_ret += test_xmlSchemaValidateFacetWhtsp();
test_ret += test_xmlSchemaValidateLengthFacet();
+ test_ret += test_xmlSchemaValidateLengthFacetWhtsp();
test_ret += test_xmlSchemaValidateListSimpleTypeFacet();
test_ret += test_xmlSchemaValidatePredefinedType();
test_ret += test_xmlSchemaWhiteSpaceReplace();
diff --git a/threads.c b/threads.c
index e803b62..6066a27 100644
--- a/threads.c
+++ b/threads.c
@@ -774,3 +774,5 @@ BOOL WINAPI DllMain(HINSTANCE hinstDLL, DWORD fdwReason, LPVOID lpvReserved)
return TRUE;
}
#endif
+#define bottom_threads
+#include "elfgcchack.h"
diff --git a/tree.c b/tree.c
index 7b88beb..ff47a51 100644
--- a/tree.c
+++ b/tree.c
@@ -1721,39 +1721,26 @@ xmlNodeListGetRawString(xmlDocPtr doc, xmlNodePtr list, int inLine)
}
#endif /* LIBXML_TREE_ENABLED */
-#if defined(LIBXML_TREE_ENABLED) || defined(LIBXML_HTML_ENABLED) || \
- defined(LIBXML_SCHEMAS_ENABLED)
-/**
- * xmlNewProp:
- * @node: the holding node
- * @name: the name of the attribute
- * @value: the value of the attribute
- *
- * Create a new property carried by a node.
- * Returns a pointer to the attribute
- */
-xmlAttrPtr
-xmlNewProp(xmlNodePtr node, const xmlChar *name, const xmlChar *value) {
+static xmlAttrPtr xmlNewPropInternal(xmlNodePtr node, xmlNsPtr ns,
+ const xmlChar *name, const xmlChar *value, int eatname) {
xmlAttrPtr cur;
xmlDocPtr doc = NULL;
- if (name == NULL) {
-#ifdef DEBUG_TREE
- xmlGenericError(xmlGenericErrorContext,
- "xmlNewProp : name == NULL\n");
-#endif
- return(NULL);
- }
- if ((node != NULL) && (node->type != XML_ELEMENT_NODE))
- return(NULL);
+ if ((node != NULL) && (node->type != XML_ELEMENT_NODE)) {
+ if (eatname == 1)
+ xmlFree((xmlChar *) name);
+ return(NULL);
+ }
/*
* Allocate a new property and fill the fields.
*/
cur = (xmlAttrPtr) xmlMalloc(sizeof(xmlAttr));
if (cur == NULL) {
- xmlTreeErrMemory("building attribute");
- return(NULL);
+ if (eatname == 1)
+ xmlFree((xmlChar *) name);
+ xmlTreeErrMemory("building attribute");
+ return(NULL);
}
memset(cur, 0, sizeof(xmlAttr));
cur->type = XML_ATTRIBUTE_NODE;
@@ -1763,10 +1750,16 @@ xmlNewProp(xmlNodePtr node, const xmlChar *name, const xmlChar *value) {
doc = node->doc;
cur->doc = doc;
}
- if ((doc != NULL) && (doc->dict != NULL))
- cur->name = (xmlChar *) xmlDictLookup(doc->dict, name, -1);
- else
- cur->name = xmlStrdup(name);
+ cur->ns = ns;
+
+ if (eatname == 0) {
+ if ((doc != NULL) && (doc->dict != NULL))
+ cur->name = (xmlChar *) xmlDictLookup(doc->dict, name, -1);
+ else
+ cur->name = xmlStrdup(name);
+ } else
+ cur->name = name;
+
if (value != NULL) {
xmlChar *buffer;
xmlNodePtr tmp;
@@ -1777,7 +1770,6 @@ xmlNewProp(xmlNodePtr node, const xmlChar *name, const xmlChar *value) {
tmp = cur->children;
while (tmp != NULL) {
tmp->parent = (xmlNodePtr) cur;
- tmp->doc = doc;
if (tmp->next == NULL)
cur->last = tmp;
tmp = tmp->next;
@@ -1804,6 +1796,31 @@ xmlNewProp(xmlNodePtr node, const xmlChar *name, const xmlChar *value) {
xmlRegisterNodeDefaultValue((xmlNodePtr)cur);
return(cur);
}
+
+#if defined(LIBXML_TREE_ENABLED) || defined(LIBXML_HTML_ENABLED) || \
+ defined(LIBXML_SCHEMAS_ENABLED)
+/**
+ * xmlNewProp:
+ * @node: the holding node
+ * @name: the name of the attribute
+ * @value: the value of the attribute
+ *
+ * Create a new property carried by a node.
+ * Returns a pointer to the attribute
+ */
+xmlAttrPtr
+xmlNewProp(xmlNodePtr node, const xmlChar *name, const xmlChar *value) {
+
+ if (name == NULL) {
+#ifdef DEBUG_TREE
+ xmlGenericError(xmlGenericErrorContext,
+ "xmlNewProp : name == NULL\n");
+#endif
+ return(NULL);
+ }
+
+ return xmlNewPropInternal(node, NULL, name, value, 0);
+}
#endif /* LIBXML_TREE_ENABLED */
/**
@@ -1819,8 +1836,6 @@ xmlNewProp(xmlNodePtr node, const xmlChar *name, const xmlChar *value) {
xmlAttrPtr
xmlNewNsProp(xmlNodePtr node, xmlNsPtr ns, const xmlChar *name,
const xmlChar *value) {
- xmlAttrPtr cur;
- xmlDocPtr doc = NULL;
if (name == NULL) {
#ifdef DEBUG_TREE
@@ -1830,62 +1845,7 @@ xmlNewNsProp(xmlNodePtr node, xmlNsPtr ns, const xmlChar *name,
return(NULL);
}
- /*
- * Allocate a new property and fill the fields.
- */
- cur = (xmlAttrPtr) xmlMalloc(sizeof(xmlAttr));
- if (cur == NULL) {
- xmlTreeErrMemory("building attribute");
- return(NULL);
- }
- memset(cur, 0, sizeof(xmlAttr));
- cur->type = XML_ATTRIBUTE_NODE;
-
- cur->parent = node;
- if (node != NULL) {
- doc = node->doc;
- cur->doc = doc;
- }
- cur->ns = ns;
- if ((doc != NULL) && (doc->dict != NULL))
- cur->name = xmlDictLookup(doc->dict, name, -1);
- else
- cur->name = xmlStrdup(name);
- if (value != NULL) {
- xmlChar *buffer;
- xmlNodePtr tmp;
-
- buffer = xmlEncodeEntitiesReentrant(doc, value);
- cur->children = xmlStringGetNodeList(doc, buffer);
- cur->last = NULL;
- tmp = cur->children;
- while (tmp != NULL) {
- tmp->parent = (xmlNodePtr) cur;
- if (tmp->next == NULL)
- cur->last = tmp;
- tmp = tmp->next;
- }
- xmlFree(buffer);
- }
-
- /*
- * Add it at the end to preserve parsing order ...
- */
- if (node != NULL) {
- if (node->properties == NULL) {
- node->properties = cur;
- } else {
- xmlAttrPtr prev = node->properties;
-
- while (prev->next != NULL) prev = prev->next;
- prev->next = cur;
- cur->prev = prev;
- }
- }
-
- if ((__xmlRegisterCallbacks) && (xmlRegisterNodeDefaultValue))
- xmlRegisterNodeDefaultValue((xmlNodePtr)cur);
- return(cur);
+ return xmlNewPropInternal(node, ns, name, value, 0);
}
/**
@@ -1901,8 +1861,6 @@ xmlNewNsProp(xmlNodePtr node, xmlNsPtr ns, const xmlChar *name,
xmlAttrPtr
xmlNewNsPropEatName(xmlNodePtr node, xmlNsPtr ns, xmlChar *name,
const xmlChar *value) {
- xmlAttrPtr cur;
- xmlDocPtr doc = NULL;
if (name == NULL) {
#ifdef DEBUG_TREE
@@ -1912,59 +1870,7 @@ xmlNewNsPropEatName(xmlNodePtr node, xmlNsPtr ns, xmlChar *name,
return(NULL);
}
- /*
- * Allocate a new property and fill the fields.
- */
- cur = (xmlAttrPtr) xmlMalloc(sizeof(xmlAttr));
- if (cur == NULL) {
- xmlTreeErrMemory("building attribute");
- return(NULL);
- }
- memset(cur, 0, sizeof(xmlAttr));
- cur->type = XML_ATTRIBUTE_NODE;
-
- cur->parent = node;
- if (node != NULL) {
- doc = node->doc;
- cur->doc = doc;
- }
- cur->ns = ns;
- cur->name = name;
- if (value != NULL) {
- xmlChar *buffer;
- xmlNodePtr tmp;
-
- buffer = xmlEncodeEntitiesReentrant(doc, value);
- cur->children = xmlStringGetNodeList(doc, buffer);
- cur->last = NULL;
- tmp = cur->children;
- while (tmp != NULL) {
- tmp->parent = (xmlNodePtr) cur;
- if (tmp->next == NULL)
- cur->last = tmp;
- tmp = tmp->next;
- }
- xmlFree(buffer);
- }
-
- /*
- * Add it at the end to preserve parsing order ...
- */
- if (node != NULL) {
- if (node->properties == NULL) {
- node->properties = cur;
- } else {
- xmlAttrPtr prev = node->properties;
-
- while (prev->next != NULL) prev = prev->next;
- prev->next = cur;
- cur->prev = prev;
- }
- }
-
- if ((__xmlRegisterCallbacks) && (xmlRegisterNodeDefaultValue))
- xmlRegisterNodeDefaultValue((xmlNodePtr)cur);
- return(cur);
+ return xmlNewPropInternal(node, ns, name, value, 1);
}
/**
@@ -2250,6 +2156,7 @@ xmlNewNodeEatName(xmlNsPtr ns, xmlChar *name) {
*/
cur = (xmlNodePtr) xmlMalloc(sizeof(xmlNode));
if (cur == NULL) {
+ xmlFree(name);
xmlTreeErrMemory("building node");
return(NULL);
}
@@ -6311,17 +6218,7 @@ xmlUnsetProp(xmlNodePtr node, const xmlChar *name) {
while (prop != NULL) {
if ((xmlStrEqual(prop->name, name)) &&
(prop->ns == NULL)) {
- if (prev == NULL) {
- node->properties = prop->next;
- if (prop->next != NULL)
- prop->next->prev = NULL;
- } else {
- prev->next = prop->next;
- if (prop->next != NULL)
- prop->next->prev = NULL;
- }
- prop->next = NULL;
- prop->prev = NULL;
+ xmlUnlinkNode((xmlNodePtr) prop);
xmlFreeProp(prop);
return(0);
}
@@ -6354,17 +6251,7 @@ xmlUnsetNsProp(xmlNodePtr node, xmlNsPtr ns, const xmlChar *name) {
while (prop != NULL) {
if ((xmlStrEqual(prop->name, name)) &&
(prop->ns != NULL) && (xmlStrEqual(prop->ns->href, ns->href))) {
- if (prev == NULL) {
- node->properties = prop->next;
- if (prop->next != NULL)
- prop->next->prev = NULL;
- } else {
- prev->next = prop->next;
- if (prop->next != NULL)
- prop->next->prev = NULL;
- }
- prop->next = NULL;
- prop->prev = NULL;
+ xmlUnlinkNode((xmlNodePtr) prop);
xmlFreeProp(prop);
return(0);
}
@@ -7232,3 +7119,5 @@ xmlSetCompressMode(int mode) {
else xmlCompressMode = mode;
}
+#define bottom_tree
+#include "elfgcchack.h"
diff --git a/uri.c b/uri.c
index 09abd3d..d2fa521 100644
--- a/uri.c
+++ b/uri.c
@@ -2274,3 +2274,5 @@ xmlCanonicPath(const xmlChar *path)
return(ret);
}
+#define bottom_uri
+#include "elfgcchack.h"
diff --git a/valid.c b/valid.c
index e73bd65..975ed9f 100644
--- a/valid.c
+++ b/valid.c
@@ -6930,3 +6930,5 @@ xmlValidGetValidElements(xmlNode *prev, xmlNode *next, const xmlChar **names,
}
#endif /* LIBXML_VALID_ENABLED */
+#define bottom_valid
+#include "elfgcchack.h"
diff --git a/win32/libxml2.def.src b/win32/libxml2.def.src
index 5e2c8fb..09f9bb5 100644
--- a/win32/libxml2.def.src
+++ b/win32/libxml2.def.src
@@ -1525,6 +1525,9 @@ xmlSchemaCompareValues
xmlSchemaCompareValuesWhtsp
#endif
#ifdef LIBXML_SCHEMAS_ENABLED
+xmlSchemaCopyValue
+#endif
+#ifdef LIBXML_SCHEMAS_ENABLED
xmlSchemaDump
#endif
#ifdef LIBXML_SCHEMAS_ENABLED
@@ -1563,6 +1566,9 @@ xmlSchemaGetParserErrors
xmlSchemaGetPredefinedType
#endif
#ifdef LIBXML_SCHEMAS_ENABLED
+xmlSchemaGetValType
+#endif
+#ifdef LIBXML_SCHEMAS_ENABLED
xmlSchemaGetValidErrors
#endif
#ifdef LIBXML_SCHEMAS_ENABLED
@@ -1620,9 +1626,15 @@ xmlSchemaValidateDoc
xmlSchemaValidateFacet
#endif
#ifdef LIBXML_SCHEMAS_ENABLED
+xmlSchemaValidateFacetWhtsp
+#endif
+#ifdef LIBXML_SCHEMAS_ENABLED
xmlSchemaValidateLengthFacet
#endif
#ifdef LIBXML_SCHEMAS_ENABLED
+xmlSchemaValidateLengthFacetWhtsp
+#endif
+#ifdef LIBXML_SCHEMAS_ENABLED
xmlSchemaValidateListSimpleTypeFacet
#endif
#ifdef LIBXML_SCHEMAS_ENABLED
diff --git a/xinclude.c b/xinclude.c
index 2e7d884..8801f1e 100644
--- a/xinclude.c
+++ b/xinclude.c
@@ -2468,3 +2468,5 @@ xmlXIncludeProcessNode(xmlXIncludeCtxtPtr ctxt, xmlNodePtr node) {
#else /* !LIBXML_XINCLUDE_ENABLED */
#endif
+#define bottom_xinclude
+#include "elfgcchack.h"
diff --git a/xlink.c b/xlink.c
index 4454d17..0d9be73 100644
--- a/xlink.c
+++ b/xlink.c
@@ -179,3 +179,5 @@ xlinkIsLink (xmlDocPtr doc, xmlNodePtr node) {
return(ret);
}
#endif /* LIBXML_XPTR_ENABLED */
+#define bottom_xlink
+#include "elfgcchack.h"
diff --git a/xmlIO.c b/xmlIO.c
index 83fb242..29d057d 100644
--- a/xmlIO.c
+++ b/xmlIO.c
@@ -3688,3 +3688,5 @@ xmlNoNetExternalEntityLoader(const char *URL, const char *ID,
return(input);
}
+#define bottom_xmlIO
+#include "elfgcchack.h"
diff --git a/xmllint.c b/xmllint.c
index f691dae..b92b533 100644
--- a/xmllint.c
+++ b/xmllint.c
@@ -31,8 +31,8 @@
#define _WINSOCKAPI_
#include <wsockcompat.h>
#include <winsock2.h>
-#undef SOCKLEN_T
-#define SOCKLEN_T unsigned int
+#undef XML_SOCKLEN_T
+#define XML_SOCKLEN_T unsigned int
#endif
#ifdef HAVE_SYS_TIMEB_H
@@ -695,6 +695,7 @@ xmlHTMLValidityError(void *ctx, const char *msg, ...)
xmlHTMLPrintFileContext(input);
xmlHTMLEncodeSend();
+ progresult = XMLLINT_ERR_VALID;
}
/**
diff --git a/xmlmemory.c b/xmlmemory.c
index d547e2c..2216b70 100644
--- a/xmlmemory.c
+++ b/xmlmemory.c
@@ -1021,3 +1021,5 @@ xmlGcMemGet(xmlFreeFunc *freeFunc, xmlMallocFunc *mallocFunc,
return(0);
}
+#define bottom_xmlmemory
+#include "elfgcchack.h"
diff --git a/xmlmodule.c b/xmlmodule.c
index b057371..8b0fab9 100644
--- a/xmlmodule.c
+++ b/xmlmodule.c
@@ -439,4 +439,6 @@ xmlModulePlatformSymbol(void *handle, const char *name, void **symbol)
#endif /* HAVE_OS2 */
+#define bottom_xmlmodule
+#include "elfgcchack.h"
#endif /* LIBXML_MODULES_ENABLED */
diff --git a/xmlreader.c b/xmlreader.c
index e16128b..54a6bf8 100644
--- a/xmlreader.c
+++ b/xmlreader.c
@@ -5125,4 +5125,6 @@ int main(int argc, char **argv) {
}
#endif
#endif /* NOT_USED_YET */
+#define bottom_xmlreader
+#include "elfgcchack.h"
#endif /* LIBXML_READER_ENABLED */
diff --git a/xmlregexp.c b/xmlregexp.c
index 7638c71..495f1c5 100644
--- a/xmlregexp.c
+++ b/xmlregexp.c
@@ -5181,4 +5181,6 @@ xmlAutomataIsDeterminist(xmlAutomataPtr am) {
return(ret);
}
#endif /* LIBXML_AUTOMATA_ENABLED */
+#define bottom_xmlregexp
+#include "elfgcchack.h"
#endif /* LIBXML_REGEXP_ENABLED */
diff --git a/xmlsave.c b/xmlsave.c
index a894bc9..fb1aa6a 100644
--- a/xmlsave.c
+++ b/xmlsave.c
@@ -1808,6 +1808,9 @@ xmlNodeDumpOutput(xmlOutputBufferPtr buf, xmlDocPtr doc, xmlNodePtr cur,
if ((buf == NULL) || (cur == NULL)) return;
+ if (encoding == NULL)
+ encoding = "UTF-8";
+
memset(&ctxt, 0, sizeof(ctxt));
ctxt.doc = doc;
ctxt.buf = buf;
@@ -2227,3 +2230,5 @@ xmlSaveFile(const char *filename, xmlDocPtr cur) {
#endif /* LIBXML_OUTPUT_ENABLED */
+#define bottom_xmlsave
+#include "elfgcchack.h"
diff --git a/xmlschemas.c b/xmlschemas.c
index 41add1c..34bd48d 100644
--- a/xmlschemas.c
+++ b/xmlschemas.c
@@ -15,6 +15,12 @@
* - if we don't intend to use the schema for schemas, we
* need to validate all schema attributes (ref, type, name)
* against their types.
+ * - Eliminate item creation for: ??
+ *
+ * NOTES:
+ * - Elimated item creation for: <restriction>, <extension>,
+ * <simpleContent>, <complexContent>, <list>, <union>
+ *
*/
#define IN_LIBXML
#include "libxml.h"
@@ -52,15 +58,11 @@
/* #define DEBUG_UNION_VALIDATION 1 */
-#define ELEM_INFO_ENABLED 1
-
-#define IDC_ENABLED 1
-
-#define IDC_VALUE_SUPPORT 1
+/* #define DEBUG_IDC 1 */
-#define IDC_XPATH_SUPPORT 1
+/* #define DEBUG_INCLUDES 1 */
-/* #define DEBUG_IDC 1 */
+#define DUMP_CONTENT_MODEL
#define UNBOUNDED (1 << 30)
@@ -94,8 +96,10 @@ static const xmlChar *xmlSchemaElemDesCT = (const xmlChar *)
"complex type";
static const xmlChar *xmlSchemaElemModelGrDef = (const xmlChar *)
"Model group";
+#if 0
static const xmlChar *xmlSchemaElemModelGrRef = (const xmlChar *)
"Model group ref.";
+#endif
#define IS_SCHEMA(node, type) \
((node != NULL) && (node->ns != NULL) && \
@@ -109,8 +113,8 @@ static const xmlChar *xmlSchemaElemModelGrRef = (const xmlChar *)
}
#define IS_ANYTYPE(item) \
- ((item->type == XML_SCHEMA_TYPE_BASIC) && \
- (item->builtInType == XML_SCHEMAS_ANYTYPE))
+ ((item->type == XML_SCHEMA_TYPE_BASIC) && \
+ (item->builtInType == XML_SCHEMAS_ANYTYPE))
#define IS_COMPLEX_TYPE(item) \
((item->type == XML_SCHEMA_TYPE_COMPLEX) || \
@@ -121,6 +125,30 @@ static const xmlChar *xmlSchemaElemModelGrRef = (const xmlChar *)
((item->type == XML_SCHEMA_TYPE_BASIC) && \
(item->builtInType != XML_SCHEMAS_ANYTYPE)))
+#define IS_ANY_SIMPLE_TYPE(item) \
+ ((item->type == XML_SCHEMA_TYPE_BASIC) && \
+ (item->builtInType == XML_SCHEMAS_ANYSIMPLETYPE))
+
+#define IS_NOT_TYPEFIXED(item) \
+ ((item->type != XML_SCHEMA_TYPE_BASIC) && \
+ ((item->flags & XML_SCHEMAS_TYPE_INTERNAL_RESOLVED) == 0))
+
+#define HAS_COMPLEX_CONTENT(item) \
+ ((item->contentType == XML_SCHEMA_CONTENT_MIXED) || \
+ (item->contentType == XML_SCHEMA_CONTENT_EMPTY) || \
+ (item->contentType == XML_SCHEMA_CONTENT_ELEMENTS))
+
+#define GET_NODE(item) xmlSchemaGetComponentNode((xmlSchemaBasicItemPtr) item)
+
+#define IS_MODEL_GROUP(item) \
+ ((item->type == XML_SCHEMA_TYPE_SEQUENCE) || \
+ (item->type == XML_SCHEMA_TYPE_CHOICE) || \
+ (item->type == XML_SCHEMA_TYPE_ALL))
+
+#if 0
+#define WXS_GET_NEXT(item) xmlSchemaGetNextComponent((xmlSchemaBasicItemPtr) item)
+#endif
+
/*
#define XML_SCHEMAS_VAL_WTSP_PRESERVE 0
#define XML_SCHEMAS_VAL_WTSP_REPLACE 1
@@ -151,9 +179,13 @@ typedef enum {
} xmlSchemaParserOption;
*/
-typedef struct _xmlSchemaAssemble xmlSchemaAssemble;
+typedef struct _xmlSchemaItemList xmlSchemaAssemble;
typedef xmlSchemaAssemble *xmlSchemaAssemblePtr;
-struct _xmlSchemaAssemble {
+
+typedef struct _xmlSchemaItemList xmlSchemaItemList;
+typedef xmlSchemaItemList *xmlSchemaItemListPtr;
+
+struct _xmlSchemaItemList {
void **items; /* used for dynamic addition of schemata */
int nbItems; /* used for dynamic addition of schemata */
int sizeItems; /* used for dynamic addition of schemata */
@@ -223,21 +255,113 @@ struct _xmlSchemaAttrState {
const xmlChar *value;
};
+/**
+ * xmlSchemaBasicItem:
+ *
+ * The abstract base type for schema components.
+ */
typedef struct _xmlSchemaBasicItem xmlSchemaBasicItem;
typedef xmlSchemaBasicItem *xmlSchemaBasicItemPtr;
struct _xmlSchemaBasicItem {
xmlSchemaTypeType type;
+};
+
+/**
+ * xmlSchemaAnnotItem:
+ *
+ * The abstract base type for annotated schema components.
+ * (Extends xmlSchemaBasicItem)
+ */
+typedef struct _xmlSchemaAnnotItem xmlSchemaAnnotItem;
+typedef xmlSchemaAnnotItem *xmlSchemaAnnotItemPtr;
+struct _xmlSchemaAnnotItem {
+ xmlSchemaTypeType type;
xmlSchemaAnnotPtr annot;
};
-typedef struct _xmlSchemaItemQNRef xmlSchemaItemQNRef;
-typedef xmlSchemaItemQNRef *xmlSchemaItemQNRefPtr;
-struct _xmlSchemaItemQNRef {
+/**
+ * xmlSchemaTreeItem:
+ *
+ * The abstract base type for tree-like structured schema components.
+ * (Extends xmlSchemaAnnotItem)
+ */
+typedef struct _xmlSchemaTreeItem xmlSchemaTreeItem;
+typedef xmlSchemaTreeItem *xmlSchemaTreeItemPtr;
+struct _xmlSchemaTreeItem {
+ xmlSchemaTypeType type;
+ xmlSchemaAnnotPtr annot;
+ xmlSchemaTreeItemPtr next;
+ xmlSchemaTreeItemPtr children;
+};
+
+/**
+ * xmlSchemaQNameRef:
+ *
+ * A component reference item (not a schema component)
+ * (Extends xmlSchemaBasicItem)
+ */
+typedef struct _xmlSchemaQNameRef xmlSchemaQNameRef;
+typedef xmlSchemaQNameRef *xmlSchemaQNameRefPtr;
+struct _xmlSchemaQNameRef {
+ xmlSchemaTypeType type;
xmlSchemaBasicItemPtr item;
+ xmlSchemaTypeType itemType;
const xmlChar *name;
const xmlChar *targetNamespace;
};
+/**
+ * xmlSchemaParticle:
+ *
+ * A particle component.
+ * (Extends xmlSchemaTreeItem)
+ */
+typedef struct _xmlSchemaParticle xmlSchemaParticle;
+typedef xmlSchemaParticle *xmlSchemaParticlePtr;
+struct _xmlSchemaParticle {
+ xmlSchemaTypeType type;
+ xmlSchemaAnnotPtr annot;
+ xmlSchemaTreeItemPtr next; /* next particle (OR "element decl" OR "wildcard") */
+ xmlSchemaTreeItemPtr children; /* the "term" ("model group" OR "group definition") */
+ int minOccurs;
+ int maxOccurs;
+ xmlNodePtr node;
+};
+
+/**
+ * xmlSchemaModelGroup:
+ *
+ * A model group component.
+ * (Extends xmlSchemaTreeItem)
+ */
+typedef struct _xmlSchemaModelGroup xmlSchemaModelGroup;
+typedef xmlSchemaModelGroup *xmlSchemaModelGroupPtr;
+struct _xmlSchemaModelGroup {
+ xmlSchemaTypeType type; /* XML_SCHEMA_TYPE_SEQUENCE, XML_SCHEMA_TYPE_CHOICE, XML_SCHEMA_TYPE_ALL */
+ xmlSchemaAnnotPtr annot;
+ xmlSchemaTreeItemPtr next; /* not used */
+ xmlSchemaTreeItemPtr children; /* first particle (OR "element decl" OR "wildcard") */
+ xmlNodePtr node;
+};
+
+/**
+ * xmlSchemaModelGroupDef:
+ *
+ * A model group definition component.
+ * (Extends xmlSchemaTreeItem)
+ */
+typedef struct _xmlSchemaModelGroupDef xmlSchemaModelGroupDef;
+typedef xmlSchemaModelGroupDef *xmlSchemaModelGroupDefPtr;
+struct _xmlSchemaModelGroupDef {
+ xmlSchemaTypeType type; /* XML_SCHEMA_TYPE_GROUP */
+ xmlSchemaAnnotPtr annot;
+ xmlSchemaTreeItemPtr next; /* not used */
+ xmlSchemaTreeItemPtr children; /* the "model group" */
+ const xmlChar *name;
+ const xmlChar *targetNamespace;
+ xmlNodePtr node;
+};
+
typedef struct _xmlSchemaIDC xmlSchemaIDC;
typedef xmlSchemaIDC *xmlSchemaIDCPtr;
@@ -261,6 +385,7 @@ struct _xmlSchemaIDCSelect {
* xmlSchemaIDC:
*
* The identity-constraint definition component.
+ * (Extends xmlSchemaAnnotItem)
*/
struct _xmlSchemaIDC {
@@ -273,7 +398,7 @@ struct _xmlSchemaIDC {
xmlSchemaIDCSelectPtr selector;
xmlSchemaIDCSelectPtr fields;
int nbFields;
- xmlSchemaItemQNRefPtr ref;
+ xmlSchemaQNameRefPtr ref;
};
/**
@@ -286,7 +411,7 @@ typedef xmlSchemaIDCAug *xmlSchemaIDCAugPtr;
struct _xmlSchemaIDCAug {
xmlSchemaIDCAugPtr next; /* next in a list */
xmlSchemaIDCPtr def; /* the IDC definition */
- int bubbleDepth; /* the lowest level to which IDC
+ int bubbleDepth; /* the lowest tree level to which IDC
tables need to be bubbled upwards */
};
@@ -408,12 +533,13 @@ struct _xmlSchemaNodeInfo {
element */
};
+#define XML_SCHEMA_VALID_INVALID_NEG_WILDCARD 1<<0
+
/**
* xmlSchemaValidCtxt:
*
* A Schemas validation context
*/
-
struct _xmlSchemaValidCtxt {
void *userData; /* user specific data block */
xmlSchemaValidityErrorFunc error; /* the callback in case of errors */
@@ -446,14 +572,13 @@ struct _xmlSchemaValidCtxt {
xmlNodePtr validationRoot;
xmlSchemaParserCtxtPtr pctxt;
int xsiAssemble;
-#ifdef ELEM_INFO_ENABLED
+
int depth;
xmlSchemaNodeInfoPtr *elemInfos; /* array of element informations */
int sizeElemInfos;
xmlSchemaNodeInfoPtr nodeInfo; /* the current element information */
xmlSchemaNodeInfoPtr attrInfo; /* node infor for the current attribute */
-#endif
-#ifdef IDC_ENABLED
+
xmlSchemaIDCAugPtr aidcs; /* a list of augmented IDC informations */
xmlSchemaIDCStateObjPtr xpathStates; /* first active state object. */
@@ -466,7 +591,8 @@ struct _xmlSchemaValidCtxt {
xmlSchemaPSVIIDCKeyPtr *idcKeys; /* list of all IDC node-table entries */
int nbIdcKeys;
int sizeIdcKeys;
-#endif
+
+ int flags;
};
/*
@@ -494,36 +620,6 @@ struct _xmlSchemaInclude {
const xmlChar *targetNamespace;
};
-typedef struct _xmlSchemaParticle xmlSchemaParticle;
-typedef xmlSchemaParticle *xmlSchemaParticlePtr;
-struct _xmlSchemaParticle {
- xmlSchemaTypeType type;
- xmlSchemaParticlePtr next; /* the next particle if in a list */
- int minOccurs;
- int maxOccurs;
- xmlSchemaTypePtr term;
-};
-
-
-typedef struct _xmlSchemaModelGroup xmlSchemaModelGroup;
-typedef xmlSchemaModelGroup *xmlSchemaModelGroupPtr;
-struct _xmlSchemaModelGroup {
- xmlSchemaTypeType type;
- int compositor; /* one of all, choice or sequence */
- xmlSchemaParticlePtr particles; /* list of particles */
- xmlSchemaAnnotPtr annot;
-};
-
-typedef struct _xmlSchemaModelGroupDef xmlSchemaModelGroupDef;
-typedef xmlSchemaModelGroupDef *xmlSchemaModelGroupDefPtr;
-struct _xmlSchemaModelGroupDef {
- xmlSchemaTypeType type;
- const xmlChar *name;
- const xmlChar *targetNamespace;
- xmlSchemaModelGroupPtr modelGroup;
- xmlSchemaAnnotPtr annot;
-};
-
/************************************************************************
* *
* Some predeclarations *
@@ -551,17 +647,34 @@ xmlSchemaValidateElementByDeclaration(xmlSchemaValidCtxtPtr ctxt,
xmlSchemaElementPtr elemDecl);
static int
xmlSchemaValidateElementByWildcard(xmlSchemaValidCtxtPtr ctxt,
- xmlSchemaTypePtr type);
+ xmlSchemaWildcardPtr wild);
static int
xmlSchemaHasElemOrCharContent(xmlNodePtr node);
static int
xmlSchemaParseImport(xmlSchemaParserCtxtPtr ctxt, xmlSchemaPtr schema,
xmlNodePtr node);
static void
-xmlSchemaCheckDefaults(xmlSchemaTypePtr typeDecl,
- xmlSchemaParserCtxtPtr ctxt, const xmlChar * name);
+xmlSchemaCheckFacetValues(xmlSchemaTypePtr typeDecl,
+ xmlSchemaParserCtxtPtr ctxt);
static void
xmlSchemaClearValidCtxt(xmlSchemaValidCtxtPtr vctxt);
+static int
+xmlSchemaPostCreateVal(xmlSchemaValidCtxtPtr vctxt,
+ xmlSchemaTypePtr type,
+ const xmlChar *value,
+ xmlSchemaValPtr *val);
+static xmlSchemaTypePtr
+xmlSchemaGetSimpleContentType(xmlSchemaTypePtr complexType);
+static int
+xmlSchemaGetWhiteSpaceFacetValue(xmlSchemaTypePtr type);
+static xmlSchemaTreeItemPtr
+xmlSchemaParseModelGroup(xmlSchemaParserCtxtPtr ctxt, xmlSchemaPtr schema,
+ xmlNodePtr node, xmlSchemaTypeType type,
+ int withParticle);
+static const xmlChar *
+xmlSchemaCompTypeToString(xmlSchemaTypeType type);
+static xmlSchemaTypeLinkPtr
+xmlSchemaGetUnionSimpleTypeMemberTypes(xmlSchemaTypePtr type);
/************************************************************************
* *
@@ -824,6 +937,90 @@ xmlSchemaVErr(xmlSchemaValidCtxtPtr ctxt, xmlNodePtr node, int error,
}
/**
+ * xmlSchemaGetComponentNode:
+ * @item: a schema component
+ *
+ * Returns node associated with the schema component.
+ * NOTE that such a node need not be available; plus, a component's
+ * node need not to reflect the component directly, since there is no
+ * one-to-one relationship between the XML Schema representation and
+ * the component representation.
+ */
+static xmlNodePtr
+xmlSchemaGetComponentNode(xmlSchemaBasicItemPtr item)
+{
+ switch (item->type) {
+ case XML_SCHEMA_TYPE_ELEMENT:
+ return (((xmlSchemaElementPtr) item)->node);
+ case XML_SCHEMA_TYPE_ATTRIBUTE:
+ return (((xmlSchemaAttributePtr) item)->node);
+ case XML_SCHEMA_TYPE_COMPLEX:
+ case XML_SCHEMA_TYPE_SIMPLE:
+ return (((xmlSchemaTypePtr) item)->node);
+ case XML_SCHEMA_TYPE_ANY:
+ case XML_SCHEMA_TYPE_ANY_ATTRIBUTE:
+ return (((xmlSchemaWildcardPtr) item)->node);
+ case XML_SCHEMA_TYPE_PARTICLE:
+ return (((xmlSchemaParticlePtr) item)->node);
+ case XML_SCHEMA_TYPE_SEQUENCE:
+ case XML_SCHEMA_TYPE_CHOICE:
+ case XML_SCHEMA_TYPE_ALL:
+ return (((xmlSchemaModelGroupPtr) item)->node);
+ case XML_SCHEMA_TYPE_GROUP:
+ return (((xmlSchemaModelGroupDefPtr) item)->node);
+ case XML_SCHEMA_TYPE_ATTRIBUTEGROUP:
+ return (((xmlSchemaAttributeGroupPtr) item)->node);
+ case XML_SCHEMA_TYPE_IDC_UNIQUE:
+ case XML_SCHEMA_TYPE_IDC_KEY:
+ case XML_SCHEMA_TYPE_IDC_KEYREF:
+ return (((xmlSchemaIDCPtr) item)->node);
+ default:
+ return (NULL);
+ }
+}
+
+#if 0
+/**
+ * xmlSchemaGetNextComponent:
+ * @item: a schema component
+ *
+ * Returns the next sibling of the schema component.
+ */
+static xmlSchemaBasicItemPtr
+xmlSchemaGetNextComponent(xmlSchemaBasicItemPtr item)
+{
+ switch (item->type) {
+ case XML_SCHEMA_TYPE_ELEMENT:
+ return ((xmlSchemaBasicItemPtr) ((xmlSchemaElementPtr) item)->next);
+ case XML_SCHEMA_TYPE_ATTRIBUTE:
+ return ((xmlSchemaBasicItemPtr) ((xmlSchemaAttributePtr) item)->next);
+ case XML_SCHEMA_TYPE_COMPLEX:
+ case XML_SCHEMA_TYPE_SIMPLE:
+ return ((xmlSchemaBasicItemPtr) ((xmlSchemaTypePtr) item)->next);
+ case XML_SCHEMA_TYPE_ANY:
+ case XML_SCHEMA_TYPE_ANY_ATTRIBUTE:
+ return (NULL);
+ case XML_SCHEMA_TYPE_PARTICLE:
+ return ((xmlSchemaBasicItemPtr) ((xmlSchemaParticlePtr) item)->next);
+ case XML_SCHEMA_TYPE_SEQUENCE:
+ case XML_SCHEMA_TYPE_CHOICE:
+ case XML_SCHEMA_TYPE_ALL:
+ return (NULL);
+ case XML_SCHEMA_TYPE_GROUP:
+ return (NULL);
+ case XML_SCHEMA_TYPE_ATTRIBUTEGROUP:
+ return ((xmlSchemaBasicItemPtr) ((xmlSchemaAttributeGroupPtr) item)->next);
+ case XML_SCHEMA_TYPE_IDC_UNIQUE:
+ case XML_SCHEMA_TYPE_IDC_KEY:
+ case XML_SCHEMA_TYPE_IDC_KEYREF:
+ return ((xmlSchemaBasicItemPtr) ((xmlSchemaIDCPtr) item)->next);
+ default:
+ return (NULL);
+ }
+}
+#endif
+
+/**
* xmlSchemaGetAttrName:
* @attr: the attribute declaration/use
*
@@ -945,6 +1142,71 @@ xmlSchemaFormatQName(xmlChar **buf,
return ((const xmlChar *) *buf);
}
+static const xmlChar *
+xmlSchemaGetComponentName(xmlSchemaBasicItemPtr item)
+{
+ switch (item->type) {
+ case XML_SCHEMA_TYPE_ELEMENT:
+ return (((xmlSchemaElementPtr) item)->name);
+ case XML_SCHEMA_TYPE_ATTRIBUTE:
+ return (((xmlSchemaAttributePtr) item)->name);
+ case XML_SCHEMA_TYPE_ATTRIBUTEGROUP:
+ return (((xmlSchemaAttributeGroupPtr) item)->name);
+ case XML_SCHEMA_TYPE_SIMPLE:
+ case XML_SCHEMA_TYPE_COMPLEX:
+ return (((xmlSchemaTypePtr) item)->name);
+ case XML_SCHEMA_TYPE_GROUP:
+ return (((xmlSchemaModelGroupDefPtr) item)->name);
+ case XML_SCHEMA_TYPE_IDC_KEY:
+ case XML_SCHEMA_TYPE_IDC_UNIQUE:
+ case XML_SCHEMA_TYPE_IDC_KEYREF:
+ return (((xmlSchemaIDCPtr) item)->name);
+ default:
+ /*
+ * Other components cannot have names.
+ */
+ break;
+ }
+ return (NULL);
+}
+
+static const xmlChar *
+xmlSchemaGetComponentTargetNs(xmlSchemaBasicItemPtr item)
+{
+ switch (item->type) {
+ case XML_SCHEMA_TYPE_ELEMENT:
+ return (((xmlSchemaElementPtr) item)->targetNamespace);
+ case XML_SCHEMA_TYPE_ATTRIBUTE:
+ return (((xmlSchemaAttributePtr) item)->targetNamespace);
+ case XML_SCHEMA_TYPE_ATTRIBUTEGROUP:
+ return (((xmlSchemaAttributeGroupPtr) item)->targetNamespace);
+ case XML_SCHEMA_TYPE_SIMPLE:
+ case XML_SCHEMA_TYPE_COMPLEX:
+ return (((xmlSchemaTypePtr) item)->targetNamespace);
+ case XML_SCHEMA_TYPE_GROUP:
+ return (((xmlSchemaModelGroupDefPtr) item)->targetNamespace);
+ case XML_SCHEMA_TYPE_IDC_KEY:
+ case XML_SCHEMA_TYPE_IDC_UNIQUE:
+ case XML_SCHEMA_TYPE_IDC_KEYREF:
+ return (((xmlSchemaIDCPtr) item)->targetNamespace);
+ default:
+ /*
+ * Other components cannot have names.
+ */
+ break;
+ }
+ return (NULL);
+}
+
+static const xmlChar*
+xmlSchemaGetComponentQName(xmlChar **buf,
+ void *item)
+{
+ return (xmlSchemaFormatQName(buf,
+ xmlSchemaGetComponentTargetNs((xmlSchemaBasicItemPtr) item),
+ xmlSchemaGetComponentName((xmlSchemaBasicItemPtr) item)));
+}
+
/**
* xmlSchemaWildcardPCToString:
* @pc: the type of processContents
@@ -1097,6 +1359,7 @@ xmlSchemaFormatItemForReport(xmlChar **buf,
*buf = xmlStrcat(*buf, ((xmlSchemaIDCPtr) item)->name);
*buf = xmlStrcat(*buf, BAD_CAST "'");
break;
+ case XML_SCHEMA_TYPE_ANY:
case XML_SCHEMA_TYPE_ANY_ATTRIBUTE:
*buf = xmlStrdup(xmlSchemaWildcardPCToString(
((xmlSchemaWildcardPtr) item)->processContents));
@@ -1121,19 +1384,24 @@ xmlSchemaFormatItemForReport(xmlChar **buf,
case XML_SCHEMA_TYPE_NOTATION:
*buf = xmlStrdup(BAD_CAST "notation");
break;
- case XML_SCHEMA_TYPE_GROUP:
- if (item->flags & XML_SCHEMAS_TYPE_GLOBAL) {
+ case XML_SCHEMA_TYPE_GROUP: {
+ xmlChar *s = NULL;
+
*buf = xmlStrdup(xmlSchemaElemModelGrDef);
*buf = xmlStrcat(*buf, BAD_CAST " '");
- *buf = xmlStrcat(*buf, item->name);
- *buf = xmlStrcat(*buf, BAD_CAST "'");
- } else {
- *buf = xmlStrdup(xmlSchemaElemModelGrRef);
- *buf = xmlStrcat(*buf, BAD_CAST " '");
- *buf = xmlStrcat(*buf, item->ref);
+ *buf = xmlStrcat(*buf, xmlSchemaFormatQName(&s,
+ ((xmlSchemaModelGroupDefPtr) item)->targetNamespace,
+ ((xmlSchemaModelGroupDefPtr) item)->name));
*buf = xmlStrcat(*buf, BAD_CAST "'");
+ FREE_AND_NULL(s)
}
break;
+ case XML_SCHEMA_TYPE_SEQUENCE:
+ case XML_SCHEMA_TYPE_CHOICE:
+ case XML_SCHEMA_TYPE_ALL:
+ case XML_SCHEMA_TYPE_PARTICLE:
+ *buf = xmlStrdup(xmlSchemaCompTypeToString(item->type));
+ break;
default:
named = 0;
}
@@ -1192,6 +1460,59 @@ xmlSchemaPRequestItemDes(xmlChar **buf,
}
/**
+ * xmlSchemaGetCanonValueWhtsp:
+ * @val: the precomputed value
+ * @retValue: the returned value
+ * @ws: the whitespace type of the value
+ *
+ * Get a the cononical representation of the value.
+ * The caller has to free the returned retValue.
+ *
+ * Returns 0 if the value could be built and -1 in case of
+ * API errors or if the value type is not supported yet.
+ */
+static int
+xmlSchemaGetCanonValueWhtsp(const xmlChar *value,
+ xmlSchemaValPtr val,
+ xmlSchemaWhitespaceValueType ws,
+ const xmlChar **retValue)
+{
+ xmlSchemaValType valType;
+
+ if ((retValue == NULL) || (value == NULL) || (val == NULL))
+ return (-1);
+ *retValue = NULL;
+ valType = xmlSchemaGetValType(val);
+ switch (valType) {
+ case XML_SCHEMAS_STRING:
+ if (value == NULL)
+ *retValue = BAD_CAST xmlStrdup(BAD_CAST "");
+ else if (ws == XML_SCHEMA_WHITESPACE_COLLAPSE)
+ *retValue = xmlSchemaCollapseString(value);
+ else if (ws == XML_SCHEMA_WHITESPACE_REPLACE)
+ *retValue = xmlSchemaWhiteSpaceReplace(value);
+ if ((*retValue) == NULL)
+ *retValue = BAD_CAST xmlStrdup(value);
+ break;
+ case XML_SCHEMAS_NORMSTRING:
+ if (value == NULL)
+ *retValue = BAD_CAST xmlStrdup(BAD_CAST "");
+ else {
+ if (ws == XML_SCHEMA_WHITESPACE_COLLAPSE)
+ *retValue = xmlSchemaCollapseString(value);
+ else
+ *retValue = xmlSchemaWhiteSpaceReplace(value);
+ if ((*retValue) == NULL)
+ *retValue = BAD_CAST xmlStrdup(value);
+ }
+ break;
+ default:
+ return (xmlSchemaGetCanonValue(val, retValue));
+ }
+ return (0);
+}
+
+/**
* xmlSchemaFormatFacetEnumSet:
* @buf: the string buffer
* @type: the type holding the enumeration facets
@@ -1203,24 +1524,56 @@ xmlSchemaPRequestItemDes(xmlChar **buf,
static const xmlChar *
xmlSchemaFormatFacetEnumSet(xmlChar **buf, xmlSchemaTypePtr type)
{
- xmlSchemaFacetLinkPtr link;
+ xmlSchemaFacetPtr facet;
+ xmlSchemaWhitespaceValueType ws;
+ const xmlChar *value = NULL;
+ int res, found = 0;
if (*buf != NULL)
xmlFree(*buf);
*buf = NULL;
- for (link = type->facetSet; link != NULL; link = link->next) {
- if (link->facet->type == XML_SCHEMA_FACET_ENUMERATION) {
+
+ do {
+ /*
+ * Use the whitespace type of the base type.
+ */
+ ws = (xmlSchemaWhitespaceValueType)
+ xmlSchemaGetWhiteSpaceFacetValue(type->baseType);
+ for (facet = type->facets; facet != NULL; facet = facet->next) {
+ if (facet->type != XML_SCHEMA_FACET_ENUMERATION)
+ continue;
+ found = 1;
+ res = xmlSchemaGetCanonValueWhtsp(facet->value, facet->val,
+ ws, &value);
+ if (res == -1) {
+ xmlSchemaVErr(NULL, NULL,
+ XML_SCHEMAV_INTERNAL,
+ "Internal error: xmlSchemaFormatFacetEnumSet, failed to "
+ "compute the canonical lexical representation.\n",
+ NULL, NULL);
+ if (*buf != NULL)
+ xmlFree(*buf);
+ *buf = NULL;
+ return (NULL);
+ }
if (*buf == NULL) {
*buf = xmlStrdup(BAD_CAST "'");
- *buf = xmlStrcat(*buf, link->facet->value);
+ *buf = xmlStrcat(*buf, value);
*buf = xmlStrcat(*buf, BAD_CAST "'");
} else {
*buf = xmlStrcat(*buf, BAD_CAST ", '");
- *buf = xmlStrcat(*buf, link->facet->value);
+ *buf = xmlStrcat(*buf, value);
*buf = xmlStrcat(*buf, BAD_CAST "'");
}
+ if (value != NULL) {
+ xmlFree((xmlChar *)value);
+ value = NULL;
+ }
}
- }
+ type = type->baseType;
+ } while ((! found) && (type != NULL) &&
+ (type->type != XML_SCHEMA_TYPE_BASIC));
+
return ((const xmlChar *) *buf);
}
@@ -1320,7 +1673,29 @@ xmlSchemaVFacetErr(xmlSchemaValidCtxtPtr ctxt,
msg = xmlStrcat(msg, BAD_CAST "The value '%s' is not accepted "
"by the pattern '%s'.\n");
xmlSchemaVErr(ctxt, node, error, (const char *) msg, value,
- facet->value);
+ facet->value);
+ } else if (facetType == XML_SCHEMA_FACET_MININCLUSIVE) {
+ msg = xmlStrcat(msg, BAD_CAST "The value '%s' is less than the "
+ "minimum value allowed ('%s').\n");
+ xmlSchemaVErr(ctxt, node, error, (const char *) msg, value,
+ facet->value);
+ } else if (facetType == XML_SCHEMA_FACET_MAXINCLUSIVE) {
+ msg = xmlStrcat(msg, BAD_CAST "The value '%s' is greater than the "
+ "maximum value allowed ('%s').\n");
+ xmlSchemaVErr(ctxt, node, error, (const char *) msg, value,
+ facet->value);
+#if 0
+ } else if (facetType == XML_SCHEMA_FACET_MINEXCLUSIVE) {
+ msg = xmlStrcat(msg, BAD_CAST "The value '%s' is less than the "
+ "minimum exclusive value allowed ('%s').\n");
+ xmlSchemaVErr(ctxt, node, error, (const char *) msg, value,
+ facet->value);
+ } else if (facetType == XML_SCHEMA_FACET_MAXEXCLUSIVE) {
+ msg = xmlStrcat(msg, BAD_CAST "The value '%s' is greater than the "
+ "maximum exclusive value allowed ('%s').\n");
+ xmlSchemaVErr(ctxt, node, error, (const char *) msg, value,
+ facet->value);
+#endif
} else if (node->type == XML_ATTRIBUTE_NODE) {
msg = xmlStrcat(msg, BAD_CAST "The value '%s' is not facet-valid.\n");
xmlSchemaVErr(ctxt, node, error, (const char *) msg, value, NULL);
@@ -1560,26 +1935,34 @@ xmlSchemaPMissingAttrErr(xmlSchemaParserCtxtPtr ctxt,
*
* Returns the component name of a schema item.
*/
-static const char *
+static const xmlChar *
xmlSchemaCompTypeToString(xmlSchemaTypeType type)
{
switch (type) {
case XML_SCHEMA_TYPE_SIMPLE:
- return("simple type definition");
+ return(BAD_CAST "simple type definition");
case XML_SCHEMA_TYPE_COMPLEX:
- return("complex type definition");
+ return(BAD_CAST "complex type definition");
case XML_SCHEMA_TYPE_ELEMENT:
- return("element declaration");
+ return(BAD_CAST "element declaration");
case XML_SCHEMA_TYPE_ATTRIBUTE:
- return("attribute declaration");
+ return(BAD_CAST "attribute declaration");
case XML_SCHEMA_TYPE_GROUP:
- return("model group definition");
+ return(BAD_CAST "model group definition");
case XML_SCHEMA_TYPE_ATTRIBUTEGROUP:
- return("attribute group definition");
+ return(BAD_CAST "attribute group definition");
case XML_SCHEMA_TYPE_NOTATION:
- return("notation declaration");
+ return(BAD_CAST "notation declaration");
+ case XML_SCHEMA_TYPE_SEQUENCE:
+ return(BAD_CAST "model group (sequence)");
+ case XML_SCHEMA_TYPE_CHOICE:
+ return(BAD_CAST "model group (choice)");
+ case XML_SCHEMA_TYPE_ALL:
+ return(BAD_CAST "model group (all)");
+ case XML_SCHEMA_TYPE_PARTICLE:
+ return(BAD_CAST "particle");
default:
- return("Not a schema component");
+ return(BAD_CAST "Not a schema component");
}
}
/**
@@ -1619,7 +2002,7 @@ xmlSchemaPResCompAttrErr(xmlSchemaParserCtxtPtr ctxt,
} else
des = *ownerDes;
if (refTypeStr == NULL)
- refTypeStr = xmlSchemaCompTypeToString(refType);
+ refTypeStr = (const char *) xmlSchemaCompTypeToString(refType);
xmlSchemaPErrExt(ctxt, ownerElem, error,
NULL, NULL, NULL,
"%s, attribute '%s': The QName value %s does not resolve to a(n) "
@@ -2087,11 +2470,12 @@ xmlSchemaIsGlobalItem(xmlSchemaTypePtr item)
{
switch (item->type) {
case XML_SCHEMA_TYPE_COMPLEX:
- case XML_SCHEMA_TYPE_SIMPLE:
- case XML_SCHEMA_TYPE_GROUP:
+ case XML_SCHEMA_TYPE_SIMPLE:
if (item->flags & XML_SCHEMAS_TYPE_GLOBAL)
return(1);
break;
+ case XML_SCHEMA_TYPE_GROUP:
+ return (1);
case XML_SCHEMA_TYPE_ELEMENT:
if ( ((xmlSchemaElementPtr) item)->flags &
XML_SCHEMAS_ELEM_GLOBAL)
@@ -2510,10 +2894,6 @@ xmlSchemaFreeAttributeGroup(xmlSchemaAttributeGroupPtr attr)
return;
if (attr->annot != NULL)
xmlSchemaFreeAnnot(attr->annot);
- if ((attr->flags & XML_SCHEMAS_ATTRGROUP_GLOBAL) &&
- (attr->attributeWildcard != NULL))
- xmlSchemaFreeWildcard(attr->attributeWildcard);
-
xmlFree(attr);
}
@@ -2536,6 +2916,59 @@ xmlSchemaFreeAttributeUseList(xmlSchemaAttributeLinkPtr attrUse)
}
/**
+ * xmlSchemaFreeQNameRef:
+ * @item: a QName reference structure
+ *
+ * Deallocatea a QName reference structure.
+ */
+static void
+xmlSchemaFreeQNameRef(xmlSchemaQNameRefPtr item)
+{
+ xmlFree(item);
+}
+
+static int
+xmlSchemaAddVolatile(xmlSchemaPtr schema,
+ xmlSchemaBasicItemPtr item)
+{
+ xmlSchemaItemListPtr list;
+
+ if (schema->volatiles == NULL) {
+ schema->volatiles = (void *) xmlMalloc(sizeof(xmlSchemaItemList));
+ if (schema->volatiles == NULL) {
+ xmlSchemaPErrMemory(NULL,
+ "allocating list of volatiles", NULL);
+ return (-1);
+ }
+ memset(schema->volatiles, 0, sizeof(xmlSchemaItemList));
+
+ }
+ list = (xmlSchemaItemListPtr) schema->volatiles;
+ if (list->items == NULL) {
+ list->items = (void **) xmlMalloc(
+ 20 * sizeof(xmlSchemaBasicItemPtr));
+ if (list->items == NULL) {
+ xmlSchemaPErrMemory(NULL,
+ "allocating new volatile item buffer", NULL);
+ return (-1);
+ }
+ list->sizeItems = 20;
+ } else if (list->sizeItems <= list->nbItems) {
+ list->sizeItems *= 2;
+ list->items = (void **) xmlRealloc(list->items,
+ list->sizeItems * sizeof(xmlSchemaTypePtr));
+ if (list->items == NULL) {
+ xmlSchemaPErrMemory(NULL,
+ "growing volatile item buffer", NULL);
+ list->sizeItems = 0;
+ return (-1);
+ }
+ }
+ ((xmlSchemaBasicItemPtr *) list->items)[list->nbItems++] = (void *) item;
+ return (0);
+}
+
+/**
* xmlSchemaFreeTypeLinkList:
* @alink: a type link
*
@@ -2553,7 +2986,6 @@ xmlSchemaFreeTypeLinkList(xmlSchemaTypeLinkPtr link)
}
}
-#ifdef IDC_ENABLED
static void
xmlSchemaFreeIDCStateObjList(xmlSchemaIDCStateObjPtr sto)
{
@@ -2583,9 +3015,7 @@ xmlSchemaFreeIDC(xmlSchemaIDCPtr idcDef)
if (idcDef == NULL)
return;
if (idcDef->annot != NULL)
- xmlSchemaFreeAnnot(idcDef->annot);
- if (idcDef->ref != NULL)
- xmlFree(idcDef->ref);
+ xmlSchemaFreeAnnot(idcDef->annot);
/* Selector */
if (idcDef->selector != NULL) {
if (idcDef->selector->xpathComp != NULL)
@@ -2605,7 +3035,6 @@ xmlSchemaFreeIDC(xmlSchemaIDCPtr idcDef)
}
xmlFree(idcDef);
}
-#endif /* IDC_ENABLED */
/**
* xmlSchemaFreeElement:
@@ -2672,17 +3101,7 @@ xmlSchemaFreeType(xmlSchemaTypePtr type)
}
if (type->type != XML_SCHEMA_TYPE_BASIC) {
if (type->attributeUses != NULL)
- xmlSchemaFreeAttributeUseList(type->attributeUses);
- if ((type->attributeWildcard != NULL) &&
- ((type->type != XML_SCHEMA_TYPE_COMPLEX) ||
- (type->flags & XML_SCHEMAS_TYPE_OWNED_ATTR_WILDCARD))) {
- /*
- * NOTE: The only case where an attribute wildcard
- * is not owned, is if a complex type inherits it
- * from a base type.
- */
- xmlSchemaFreeWildcard(type->attributeWildcard);
- }
+ xmlSchemaFreeAttributeUseList(type->attributeUses);
}
if (type->memberTypes != NULL)
xmlSchemaFreeTypeLinkList(type->memberTypes);
@@ -2702,6 +3121,106 @@ xmlSchemaFreeType(xmlSchemaTypePtr type)
}
/**
+ * xmlSchemaFreeModelGroupDef:
+ * @item: a schema model group definition
+ *
+ * Deallocates a schema model group definition.
+ */
+static void
+xmlSchemaFreeModelGroupDef(xmlSchemaModelGroupDefPtr item)
+{
+ if (item->annot != NULL)
+ xmlSchemaFreeAnnot(item->annot);
+ xmlFree(item);
+}
+
+/**
+ * xmlSchemaFreeModelGroup:
+ * @item: a schema model group
+ *
+ * Deallocates a schema model group structure.
+ */
+static void
+xmlSchemaFreeModelGroup(xmlSchemaModelGroupPtr item)
+{
+ if (item->annot != NULL)
+ xmlSchemaFreeAnnot(item->annot);
+ xmlFree(item);
+}
+
+/**
+ * xmlSchemaFreeParticle:
+ * @type: a schema type structure
+ *
+ * Deallocate a Schema Type structure.
+ */
+static void
+xmlSchemaFreeParticle(xmlSchemaParticlePtr item)
+{
+ if (item->annot != NULL)
+ xmlSchemaFreeAnnot(item->annot);
+ xmlFree(item);
+}
+
+/**
+ * xmlSchemaFreeMiscComponents:
+ * @item: a schema component
+ *
+ * Deallocates misc. schema component structures.
+ */
+static void
+xmlSchemaFreeMiscComponents(xmlSchemaTreeItemPtr item)
+{
+ if (item == NULL)
+ return;
+ switch (item->type) {
+ case XML_SCHEMA_TYPE_PARTICLE:
+ xmlSchemaFreeParticle((xmlSchemaParticlePtr) item);
+ return;
+ case XML_SCHEMA_TYPE_SEQUENCE:
+ case XML_SCHEMA_TYPE_CHOICE:
+ case XML_SCHEMA_TYPE_ALL:
+ xmlSchemaFreeModelGroup((xmlSchemaModelGroupPtr) item);
+ return;
+ case XML_SCHEMA_TYPE_ANY:
+ case XML_SCHEMA_TYPE_ANY_ATTRIBUTE:
+ xmlSchemaFreeWildcard((xmlSchemaWildcardPtr) item);
+ break;
+ default:
+ /* TODO: This should never be hit. */
+ TODO
+ return;
+ }
+}
+
+static void
+xmlSchemaFreeVolatiles(xmlSchemaPtr schema)
+{
+ if (schema->volatiles == NULL)
+ return;
+ {
+ xmlSchemaItemListPtr list = (xmlSchemaItemListPtr) schema->volatiles;
+ xmlSchemaTreeItemPtr item;
+ int i;
+
+ for (i = 0; i < list->nbItems; i++) {
+ if (list->items[i] != NULL) {
+ item = (xmlSchemaTreeItemPtr) list->items[i];
+ switch (item->type) {
+ case XML_SCHEMA_EXTRA_QNAMEREF:
+ xmlSchemaFreeQNameRef((xmlSchemaQNameRefPtr) item);
+ break;
+ default:
+ xmlSchemaFreeMiscComponents(item);
+ }
+ }
+ }
+ if (list->items != NULL)
+ xmlFree(list->items);
+ xmlFree(list);
+ }
+}
+/**
* xmlSchemaFreeTypeList:
* @type: a schema type structure
*
@@ -2731,6 +3250,8 @@ xmlSchemaFree(xmlSchemaPtr schema)
if (schema == NULL)
return;
+ if (schema->volatiles != NULL)
+ xmlSchemaFreeVolatiles(schema);
if (schema->notaDecl != NULL)
xmlHashFree(schema->notaDecl,
(xmlHashDeallocator) xmlSchemaFreeNotation);
@@ -2748,12 +3269,10 @@ xmlSchemaFree(xmlSchemaPtr schema)
(xmlHashDeallocator) xmlSchemaFreeTypeList);
if (schema->groupDecl != NULL)
xmlHashFree(schema->groupDecl,
- (xmlHashDeallocator) xmlSchemaFreeType);
-#ifdef IDC_ENABLED
+ (xmlHashDeallocator) xmlSchemaFreeModelGroupDef);
if (schema->idcDef != NULL)
xmlHashFree(schema->idcDef,
(xmlHashDeallocator) xmlSchemaFreeIDC);
-#endif
if (schema->schemasImports != NULL)
xmlHashFree(schema->schemasImports,
(xmlHashDeallocator) xmlSchemaFreeImport);
@@ -2894,6 +3413,72 @@ xmlSchemaAnnotDump(FILE * output, xmlSchemaAnnotPtr annot)
* Dump a SchemaType structure
*/
static void
+xmlSchemaContentModelDump(xmlSchemaParticlePtr particle, FILE * output, int depth)
+{
+ xmlChar *str = NULL;
+ xmlSchemaTreeItemPtr term;
+ char shift[100];
+ int i;
+
+ if (particle == NULL)
+ return;
+ for (i = 0;((i < depth) && (i < 25));i++)
+ shift[2 * i] = shift[2 * i + 1] = ' ';
+ shift[2 * i] = shift[2 * i + 1] = 0;
+ fprintf(output, shift);
+ if (particle->children == NULL) {
+ fprintf(output, "MISSING particle term\n");
+ return;
+ }
+ term = particle->children;
+ switch (term->type) {
+ case XML_SCHEMA_TYPE_ELEMENT:
+ fprintf(output, "ELEM '%s'", xmlSchemaFormatQName(&str,
+ ((xmlSchemaElementPtr)term)->targetNamespace,
+ ((xmlSchemaElementPtr)term)->name));
+ break;
+ case XML_SCHEMA_TYPE_SEQUENCE:
+ fprintf(output, "SEQUENCE");
+ break;
+ case XML_SCHEMA_TYPE_CHOICE:
+ fprintf(output, "CHOICE");
+ break;
+ case XML_SCHEMA_TYPE_ALL:
+ fprintf(output, "ALL");
+ break;
+ case XML_SCHEMA_TYPE_ANY:
+ fprintf(output, "ANY");
+ break;
+ default:
+ fprintf(output, "UNKNOWN\n");
+ return;
+ }
+ if (particle->minOccurs != 1)
+ fprintf(output, " min: %d", particle->minOccurs);
+ if (particle->maxOccurs >= UNBOUNDED)
+ fprintf(output, " max: unbounded");
+ else if (particle->maxOccurs != 1)
+ fprintf(output, " max: %d", particle->maxOccurs);
+ fprintf(output, "\n");
+ if (((term->type == XML_SCHEMA_TYPE_SEQUENCE) ||
+ (term->type == XML_SCHEMA_TYPE_CHOICE) ||
+ (term->type == XML_SCHEMA_TYPE_ALL)) &&
+ (term->children != NULL)) {
+ xmlSchemaContentModelDump((xmlSchemaParticlePtr) term->children,
+ output, depth +1);
+ }
+ if (particle->next != NULL)
+ xmlSchemaContentModelDump((xmlSchemaParticlePtr) particle->next,
+ output, depth);
+}
+/**
+ * xmlSchemaTypeDump:
+ * @output: the file output
+ * @type: a type structure
+ *
+ * Dump a SchemaType structure
+ */
+static void
xmlSchemaTypeDump(xmlSchemaTypePtr type, FILE * output)
{
if (type == NULL) {
@@ -2967,15 +3552,6 @@ xmlSchemaTypeDump(xmlSchemaTypePtr type, FILE * output)
break;
}
fprintf(output, "\n");
- if ((type->minOccurs != 1) || (type->maxOccurs != 1)) {
- fprintf(output, " min: %d ", type->minOccurs);
- if (type->maxOccurs >= UNBOUNDED)
- fprintf(output, "max: unbounded\n");
- else if (type->maxOccurs != 1)
- fprintf(output, "max: %d\n", type->maxOccurs);
- else
- fprintf(output, "\n");
- }
if (type->base != NULL) {
fprintf(output, " base type: %s", type->base);
if (type->baseNs != NULL)
@@ -2985,17 +3561,13 @@ xmlSchemaTypeDump(xmlSchemaTypePtr type, FILE * output)
}
if (type->annot != NULL)
xmlSchemaAnnotDump(output, type->annot);
- if (type->subtypes != NULL) {
- xmlSchemaTypePtr sub = type->subtypes;
-
- fprintf(output, " subtypes: ");
- while (sub != NULL) {
- fprintf(output, "%s ", sub->name);
- sub = sub->next;
- }
- fprintf(output, "\n");
+#ifdef DUMP_CONTENT_MODEL
+ if ((type->type == XML_SCHEMA_TYPE_COMPLEX) &&
+ (type->subtypes != NULL)) {
+ xmlSchemaContentModelDump((xmlSchemaParticlePtr) type->subtypes,
+ output, 1);
}
-
+#endif
}
/**
@@ -3033,7 +3605,6 @@ xmlSchemaDump(FILE * output, xmlSchemaPtr schema)
(xmlHashScannerFull) xmlSchemaElementDump, output);
}
-#ifdef IDC_ENABLED
#ifdef DEBUG_IDC
/**
* xmlSchemaDebugDumpIDCTable:
@@ -3069,12 +3640,7 @@ xmlSchemaDebugDumpIDCTable(FILE * output,
for (j = 0; j < bind->definition->nbFields; j++) {
key = tab->keys[j];
if ((key != NULL) && (key->compValue != NULL)) {
-#ifdef IDC_VALUE_SUPPORT
res = xmlSchemaGetCanonValue(key->compValue, &value);
-#else
- value = xmlStrdup(BAD_CAST "dummy-value");
- res = 0;
-#endif
if (res >= 0)
fprintf(output, "\"%s\" ", value);
else
@@ -3092,7 +3658,6 @@ xmlSchemaDebugDumpIDCTable(FILE * output,
} while (bind != NULL);
}
#endif /* DEBUG_IDC */
-#endif /* IDC_ENABLED */
#endif /* LIBXML_OUTPUT_ENABLED */
/************************************************************************
@@ -3261,9 +3826,9 @@ xmlSchemaGetElem(xmlSchemaPtr schema, const xmlChar * name,
#ifdef DEBUG
if (ret == NULL) {
if (namespace == NULL)
- fprintf(stderr, "Unable to lookup type %s", name);
+ fprintf(stderr, "Unable to lookup element decl. %s", name);
else
- fprintf(stderr, "Unable to lookup type %s:%s", name,
+ fprintf(stderr, "Unable to lookup element decl. %s:%s", name,
namespace);
}
#endif
@@ -3446,12 +4011,7 @@ xmlSchemaGetGroup(xmlSchemaPtr schema, const xmlChar * name,
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;
/*
* Removed since imported components will be hold by the main schema only.
*
@@ -3479,6 +4039,34 @@ xmlSchemaGetGroup(xmlSchemaPtr schema, const xmlChar * name,
return (ret);
}
+/**
+ * xmlSchemaGetNamedComponent:
+ * @schema: 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 xmlSchemaTreeItemPtr
+xmlSchemaGetNamedComponent(xmlSchemaPtr schema,
+ xmlSchemaTypeType itemType,
+ const xmlChar *name,
+ const xmlChar *targetNs)
+{
+ switch (itemType) {
+ case XML_SCHEMA_TYPE_GROUP:
+ return ((xmlSchemaTreeItemPtr) xmlSchemaGetGroup(schema,
+ name, targetNs));
+ case XML_SCHEMA_TYPE_ELEMENT:
+ return ((xmlSchemaTreeItemPtr) xmlSchemaGetElem(schema,
+ name, targetNs));
+ default:
+ return (NULL);
+ }
+}
+
/************************************************************************
* *
* Parsing functions *
@@ -3889,6 +4477,7 @@ xmlSchemaAddType(xmlSchemaParserCtxtPtr ctxt, xmlSchemaPtr schema,
prev->redef = ret;
}
}
+ ret->node = node;
ret->minOccurs = 1;
ret->maxOccurs = 1;
ret->attributeUses = NULL;
@@ -3898,6 +4487,142 @@ xmlSchemaAddType(xmlSchemaParserCtxtPtr ctxt, xmlSchemaPtr schema,
return (ret);
}
+static xmlSchemaQNameRefPtr
+xmlSchemaNewQNameRef(xmlSchemaPtr schema,
+ xmlSchemaTypeType refType,
+ const xmlChar *refName,
+ const xmlChar *refNs)
+{
+ xmlSchemaQNameRefPtr ret;
+
+ ret = (xmlSchemaQNameRefPtr)
+ xmlMalloc(sizeof(xmlSchemaQNameRef));
+ if (ret == NULL) {
+ xmlSchemaPErrMemory(NULL, "allocating QName reference item",
+ NULL);
+ return (NULL);
+ }
+ ret->type = XML_SCHEMA_EXTRA_QNAMEREF;
+ ret->name = refName;
+ ret->targetNamespace = refNs;
+ ret->item = NULL;
+ ret->itemType = refType;
+ /*
+ * Store the reference item in the schema.
+ */
+ xmlSchemaAddVolatile(schema, (xmlSchemaBasicItemPtr) ret);
+ return (ret);
+}
+
+/**
+ * xmlSchemaAddModelGroup:
+ * @ctxt: a schema parser context
+ * @schema: the schema being built
+ * @type: the "compositor" type of the model group
+ * @container: the internal component name
+ * @node: the node in the schema doc
+ *
+ * Adds a schema model group
+ * *WARNING* this interface is highly subject to change
+ *
+ * Returns the new struture or NULL in case of error
+ */
+static xmlSchemaModelGroupPtr
+xmlSchemaAddModelGroup(xmlSchemaParserCtxtPtr ctxt, xmlSchemaPtr schema,
+ xmlSchemaTypeType type, const xmlChar **container,
+ xmlNodePtr node)
+{
+ xmlSchemaModelGroupPtr ret = NULL;
+ xmlChar buf[30];
+
+ if ((ctxt == NULL) || (schema == NULL))
+ return (NULL);
+
+#ifdef DEBUG
+ fprintf(stderr, "Adding model group component\n");
+#endif
+ ret = (xmlSchemaModelGroupPtr)
+ xmlMalloc(sizeof(xmlSchemaModelGroup));
+ if (ret == NULL) {
+ xmlSchemaPErrMemory(ctxt, "allocating model group component",
+ NULL);
+ return (NULL);
+ }
+ ret->type = type;
+ ret->annot = NULL;
+ ret->node = node;
+ ret->children = NULL;
+ ret->next = NULL;
+ if (type == XML_SCHEMA_TYPE_SEQUENCE) {
+ if (container != NULL)
+ snprintf((char *) buf, 29, "#seq%d", ctxt->counter++ + 1);
+ } else if (type == XML_SCHEMA_TYPE_CHOICE) {
+ if (container != NULL)
+ snprintf((char *) buf, 29, "#cho%d", ctxt->counter++ + 1);
+ } else {
+ if (container != NULL)
+ snprintf((char *) buf, 29, "#all%d", ctxt->counter++ + 1);
+ }
+ if (container != NULL)
+ *container = xmlDictLookup(ctxt->dict, BAD_CAST buf, -1);
+ /*
+ * Add to volatile items.
+ * TODO: this should be changed someday.
+ */
+ if (xmlSchemaAddVolatile(schema, (xmlSchemaBasicItemPtr) ret) != 0) {
+ xmlFree(ret);
+ return (NULL);
+ }
+ return (ret);
+}
+
+
+/**
+ * xmlSchemaAddParticle:
+ * @ctxt: a schema parser context
+ * @schema: the schema being built
+ * @node: the corresponding node in the schema doc
+ * @min: the minOccurs
+ * @max: the maxOccurs
+ *
+ * Adds an XML schema particle component.
+ * *WARNING* this interface is highly subject to change
+ *
+ * Returns the new struture or NULL in case of error
+ */
+static xmlSchemaParticlePtr
+xmlSchemaAddParticle(xmlSchemaParserCtxtPtr ctxt, xmlSchemaPtr schema,
+ xmlNodePtr node, int min, int max)
+{
+ xmlSchemaParticlePtr ret = NULL;
+ if ((ctxt == NULL) || (schema == NULL))
+ return (NULL);
+
+#ifdef DEBUG
+ fprintf(stderr, "Adding particle component\n");
+#endif
+ ret = (xmlSchemaParticlePtr)
+ xmlMalloc(sizeof(xmlSchemaParticle));
+ if (ret == NULL) {
+ xmlSchemaPErrMemory(ctxt, "allocating particle component",
+ NULL);
+ return (NULL);
+ }
+ ret->type = XML_SCHEMA_TYPE_PARTICLE;
+ ret->annot = NULL;
+ ret->node = node;
+ ret->minOccurs = min;
+ ret->maxOccurs = max;
+ ret->next = NULL;
+ ret->children = NULL;
+
+ if (xmlSchemaAddVolatile(schema, (xmlSchemaBasicItemPtr) ret) != 0) {
+ xmlFree(ret);
+ return (NULL);
+ }
+ return (ret);
+}
+
/**
* xmlSchemaAddGroup:
* @ctxt: a schema validation context
@@ -3908,12 +4633,12 @@ xmlSchemaAddType(xmlSchemaParserCtxtPtr ctxt, xmlSchemaPtr schema,
*
* Returns the new struture or NULL in case of error
*/
-static xmlSchemaTypePtr
+static xmlSchemaModelGroupDefPtr
xmlSchemaAddGroup(xmlSchemaParserCtxtPtr ctxt, xmlSchemaPtr schema,
const xmlChar *name, const xmlChar *namespaceName,
xmlNodePtr node)
{
- xmlSchemaTypePtr ret = NULL;
+ xmlSchemaModelGroupDefPtr ret = NULL;
int val;
if ((ctxt == NULL) || (schema == NULL) || (name == NULL))
@@ -3924,16 +4649,17 @@ xmlSchemaAddGroup(xmlSchemaParserCtxtPtr ctxt, xmlSchemaPtr schema,
if (schema->groupDecl == NULL)
return (NULL);
- ret = (xmlSchemaTypePtr) xmlMalloc(sizeof(xmlSchemaType));
+ ret = (xmlSchemaModelGroupDefPtr) xmlMalloc(sizeof(xmlSchemaModelGroupDef));
if (ret == NULL) {
xmlSchemaPErrMemory(ctxt, "adding group", NULL);
return (NULL);
}
- memset(ret, 0, sizeof(xmlSchemaType));
+ memset(ret, 0, sizeof(xmlSchemaModelGroupDef));
ret->name = xmlDictLookup(ctxt->dict, name, -1);
- val =
- xmlHashAddEntry2(schema->groupDecl, name, namespaceName,
- ret);
+ ret->type = XML_SCHEMA_TYPE_GROUP;
+ ret->node = node;
+ ret->targetNamespace = namespaceName;
+ val = xmlHashAddEntry2(schema->groupDecl, ret->name, namespaceName, ret);
if (val != 0) {
xmlSchemaPCustomErr(ctxt,
XML_SCHEMAP_REDEFINED_GROUP,
@@ -3942,10 +4668,7 @@ xmlSchemaAddGroup(xmlSchemaParserCtxtPtr ctxt, xmlSchemaPtr schema,
"exist", name);
xmlFree(ret);
return (NULL);
- }
- ret->targetNamespace = namespaceName;
- ret->minOccurs = 1;
- ret->maxOccurs = 1;
+ }
if (ctxt->assemble != NULL)
xmlSchemaAddAssembledItem(ctxt, (xmlSchemaTypePtr) ret);
return (ret);
@@ -3978,29 +4701,42 @@ xmlSchemaNewWildcardNsConstraint(xmlSchemaParserCtxtPtr ctxt)
/**
* xmlSchemaAddWildcard:
* @ctxt: a schema validation context
- * Adds a wildcard. It corresponds to a
- * xsd:anyAttribute and is used as storage for namespace
- * constraints on a xsd:any.
+ * @schema: a schema
+ *
+ * Adds a wildcard.
+ * It corresponds to a xsd:anyAttribute and xsd:any.
*
* Returns the new struture or NULL in case of error
*/
static xmlSchemaWildcardPtr
-xmlSchemaAddWildcard(xmlSchemaParserCtxtPtr ctxt)
+xmlSchemaAddWildcard(xmlSchemaParserCtxtPtr ctxt, xmlSchemaPtr schema,
+ xmlSchemaTypeType type, xmlNodePtr node)
{
xmlSchemaWildcardPtr ret = NULL;
- if (ctxt == NULL)
+ if ((ctxt == NULL) || (schema == NULL))
return (NULL);
+#ifdef DEBUG
+ fprintf(stderr, "Adding wildcard component\n");
+#endif
+
ret = (xmlSchemaWildcardPtr) xmlMalloc(sizeof(xmlSchemaWildcard));
if (ret == NULL) {
xmlSchemaPErrMemory(ctxt, "adding wildcard", NULL);
return (NULL);
}
memset(ret, 0, sizeof(xmlSchemaWildcard));
+ ret->type = type;
ret->minOccurs = 1;
ret->maxOccurs = 1;
+ if (xmlSchemaAddVolatile(schema, (xmlSchemaBasicItemPtr) ret) != 0) {
+ xmlSchemaPCustomErr(ctxt, XML_SCHEMAP_INTERNAL, NULL, NULL, node,
+ "Failed to add a wildcard component to the list", NULL);
+ xmlFree(ret);
+ return (NULL);
+ }
return (ret);
}
@@ -4010,6 +4746,7 @@ xmlSchemaAddWildcard(xmlSchemaParserCtxtPtr ctxt)
* *
************************************************************************/
+#if 0
/**
* xmlGetQNameProp:
* @ctxt: a schema validation context
@@ -4067,6 +4804,7 @@ xmlGetQNameProp(xmlSchemaParserCtxtPtr ctxt, xmlNodePtr node,
}
return (ret);
}
+#endif
/**
* xmlSchemaPValAttrNodeQNameValue:
@@ -4128,7 +4866,7 @@ xmlSchemaPValAttrNodeQNameValue(xmlSchemaParserCtxtPtr ctxt,
*/
*uri = schema->targetNamespace;
}
- *local = value;
+ *local = xmlDictLookup(ctxt->dict, value, -1);
return (0);
}
/*
@@ -4137,7 +4875,7 @@ xmlSchemaPValAttrNodeQNameValue(xmlSchemaParserCtxtPtr ctxt,
*local = xmlSplitQName3(value, &len);
*local = xmlDictLookup(ctxt->dict, *local, -1);
pref = xmlDictLookup(ctxt->dict, value, len);
- if (prefix != 0)
+ if (prefix != 0)
*prefix = pref;
ns = xmlSearchNs(attr->doc, attr->parent, pref);
if (ns == NULL) {
@@ -4220,6 +4958,8 @@ xmlSchemaPValAttrQName(xmlSchemaParserCtxtPtr ctxt,
attr = xmlSchemaGetPropNode(ownerElem, name);
if (attr == NULL) {
*local = NULL;
+ if (prefix != NULL)
+ *prefix = NULL;
*uri = NULL;
return (0);
}
@@ -4532,13 +5272,8 @@ static xmlSchemaTypePtr xmlSchemaParseComplexType(xmlSchemaParserCtxtPtr
static xmlSchemaTypePtr xmlSchemaParseRestriction(xmlSchemaParserCtxtPtr
ctxt,
xmlSchemaPtr schema,
- xmlNodePtr node);
-static xmlSchemaTypePtr xmlSchemaParseSequence(xmlSchemaParserCtxtPtr ctxt,
- xmlSchemaPtr schema,
- xmlNodePtr node);
-static xmlSchemaTypePtr xmlSchemaParseAll(xmlSchemaParserCtxtPtr ctxt,
- xmlSchemaPtr schema,
- xmlNodePtr node);
+ xmlNodePtr node,
+ xmlSchemaTypeType parentType);
static xmlSchemaAttributePtr xmlSchemaParseAttribute(xmlSchemaParserCtxtPtr
ctxt,
xmlSchemaPtr schema,
@@ -4548,9 +5283,6 @@ static xmlSchemaAttributeGroupPtr
xmlSchemaParseAttributeGroup(xmlSchemaParserCtxtPtr ctxt,
xmlSchemaPtr schema, xmlNodePtr node,
int topLevel);
-static xmlSchemaTypePtr xmlSchemaParseChoice(xmlSchemaParserCtxtPtr ctxt,
- xmlSchemaPtr schema,
- xmlNodePtr node);
static xmlSchemaTypePtr xmlSchemaParseList(xmlSchemaParserCtxtPtr ctxt,
xmlSchemaPtr schema,
xmlNodePtr node);
@@ -4793,7 +5525,7 @@ static int
xmlSchemaCheckReference(xmlSchemaParserCtxtPtr pctxt,
xmlSchemaPtr schema,
xmlNodePtr node,
- xmlSchemaTypePtr item,
+ xmlSchemaBasicItemPtr item,
const xmlChar *namespaceName)
{
if (xmlStrEqual(schema->targetNamespace, namespaceName))
@@ -4806,12 +5538,14 @@ xmlSchemaCheckReference(xmlSchemaParserCtxtPtr pctxt,
}
if (namespaceName == NULL)
xmlSchemaPCustomErr(pctxt, XML_SCHEMAP_SRC_RESOLVE,
- NULL, item, node, "References from this schema to components in no "
+ NULL, (xmlSchemaTypePtr) item, node,
+ "References from this schema to components in no "
"namespace are not valid, since not indicated by an import "
"statement", NULL);
else
xmlSchemaPCustomErr(pctxt, XML_SCHEMAP_SRC_RESOLVE,
- NULL, item, node, "References from this schema to components in the "
+ NULL, (xmlSchemaTypePtr) item, node,
+ "References from this schema to components in the "
"namespace '%s' are not valid, since not indicated by an import "
"statement", namespaceName);
return (0);
@@ -4822,7 +5556,7 @@ xmlSchemaCheckReference(xmlSchemaParserCtxtPtr pctxt,
* @ctxt: a schema validation context
* @schema: the schema being built
* @node: a subtree containing XML Schema informations
- * @type: the hosting type
+ * @type: the hosting type where the attributes will be anchored
*
* parse a XML schema attrDecls declaration corresponding to
* <!ENTITY % attrDecls
@@ -4832,9 +5566,8 @@ static xmlNodePtr
xmlSchemaParseAttrDecls(xmlSchemaParserCtxtPtr ctxt, xmlSchemaPtr schema,
xmlNodePtr child, xmlSchemaTypePtr type)
{
- xmlSchemaAttributePtr lastattr, attr;
+ xmlSchemaAttributePtr lastattr = NULL, attr;
- lastattr = NULL;
while ((IS_SCHEMA(child, "attribute")) ||
(IS_SCHEMA(child, "attributeGroup"))) {
attr = NULL;
@@ -4849,7 +5582,7 @@ xmlSchemaParseAttrDecls(xmlSchemaParserCtxtPtr ctxt, xmlSchemaPtr schema,
if (type->type == XML_SCHEMA_TYPE_ATTRIBUTEGROUP)
((xmlSchemaAttributeGroupPtr) type)->attributes = attr;
else
- type->attributes = attr;
+ type->attributes = attr;
lastattr = attr;
} else {
lastattr->next = attr;
@@ -5110,12 +5843,12 @@ xmlSchemaParseWildcardNs(xmlSchemaParserCtxtPtr ctxt,
wildc->processContents = XML_SCHEMAS_ANY_LAX;
} else {
xmlSchemaPSimpleTypeErr(ctxt,
- XML_SCHEMAP_UNKNOWN_PROCESSCONTENT_CHILD,
+ XML_SCHEMAP_S4S_ATTR_INVALID_VALUE,
NULL, NULL, node,
NULL, "(strict | skip | lax)", pc,
NULL, NULL, NULL);
wildc->processContents = XML_SCHEMAS_ANY_STRICT;
- ret = XML_SCHEMAP_UNKNOWN_PROCESSCONTENT_CHILD;
+ ret = XML_SCHEMAP_S4S_ATTR_INVALID_VALUE;
}
/*
* Build the namespace constraints.
@@ -5200,11 +5933,13 @@ xmlSchemaParseWildcardNs(xmlSchemaParserCtxtPtr ctxt,
static int
xmlSchemaPCheckParticleCorrect_2(xmlSchemaParserCtxtPtr ctxt,
- xmlSchemaTypePtr item,
+ xmlSchemaParticlePtr item ATTRIBUTE_UNUSED,
xmlNodePtr node,
int minOccurs,
int maxOccurs) {
+ if ((maxOccurs == 0) && ( minOccurs == 0))
+ return (0);
if (maxOccurs != UNBOUNDED) {
/*
* TODO: Maby we should better not create the particle,
@@ -5221,7 +5956,8 @@ xmlSchemaPCheckParticleCorrect_2(xmlSchemaParserCtxtPtr ctxt,
*/
xmlSchemaPCustomAttrErr(ctxt,
XML_SCHEMAP_P_PROPS_CORRECT_2_2,
- NULL, item, xmlSchemaGetPropNode(node, "maxOccurs"),
+ NULL, NULL,
+ xmlSchemaGetPropNode(node, "maxOccurs"),
"The value must be greater than or equal to 1");
return (XML_SCHEMAP_P_PROPS_CORRECT_2_2);
} else if (minOccurs > maxOccurs) {
@@ -5230,7 +5966,8 @@ xmlSchemaPCheckParticleCorrect_2(xmlSchemaParserCtxtPtr ctxt,
*/
xmlSchemaPCustomAttrErr(ctxt,
XML_SCHEMAP_P_PROPS_CORRECT_2_1,
- NULL, item, xmlSchemaGetPropNode(node, "minOccurs"),
+ NULL, NULL,
+ xmlSchemaGetPropNode(node, "minOccurs"),
"The value must not be greater than the value of 'maxOccurs'");
return (XML_SCHEMAP_P_PROPS_CORRECT_2_1);
}
@@ -5244,67 +5981,95 @@ xmlSchemaPCheckParticleCorrect_2(xmlSchemaParserCtxtPtr ctxt,
* @schema: the schema being built
* @node: a subtree containing XML Schema informations
*
- * parse a XML schema Any declaration
+ * Parsea a XML schema <any> element. A particle and wildcard
+ * will be created (except if minOccurs==maxOccurs==0, in this case
+ * nothing will be created).
* *WARNING* this interface is highly subject to change
*
- * Returns the new type structure or NULL in case of error
+ * Returns the particle or NULL in case of error or if minOccurs==maxOccurs==0
*/
-static xmlSchemaTypePtr
+static xmlSchemaParticlePtr
xmlSchemaParseAny(xmlSchemaParserCtxtPtr ctxt, xmlSchemaPtr schema,
xmlNodePtr node)
{
- xmlSchemaTypePtr type;
+ xmlSchemaParticlePtr particle;
xmlNodePtr child = NULL;
- xmlChar name[30];
- xmlSchemaWildcardPtr wildc;
- int minOccurs, maxOccurs;
+ xmlSchemaWildcardPtr wild;
+ int min, max;
+ xmlAttrPtr attr;
+ xmlSchemaAnnotPtr annot = NULL;
if ((ctxt == NULL) || (schema == NULL) || (node == NULL))
return (NULL);
- maxOccurs = xmlGetMaxOccurs(ctxt, node, 0, UNBOUNDED, 1,
- "(nonNegativeInteger | unbounded)");
- minOccurs = xmlGetMinOccurs(ctxt, node, 0, -1, 1,
- "nonNegativeInteger");
- if ((minOccurs == 0) && (maxOccurs == 0))
- return (NULL);
-
- snprintf((char *) name, 30, "#any%d", ctxt->counter++ + 1);
- type = xmlSchemaAddType(ctxt, schema, name, NULL, node);
- if (type == NULL)
- return (NULL);
- type->node = node;
- type->type = XML_SCHEMA_TYPE_ANY;
-
/*
- * TODO: Use a particle component here.
+ * Check for illegal attributes.
*/
- wildc = xmlSchemaAddWildcard(ctxt);
+ attr = node->properties;
+ while (attr != NULL) {
+ if (attr->ns == NULL) {
+ if ((!xmlStrEqual(attr->name, BAD_CAST "id")) &&
+ (!xmlStrEqual(attr->name, BAD_CAST "minOccurs")) &&
+ (!xmlStrEqual(attr->name, BAD_CAST "maxOccurs")) &&
+ (!xmlStrEqual(attr->name, BAD_CAST "namespace")) &&
+ (!xmlStrEqual(attr->name, BAD_CAST "processContents"))) {
+ xmlSchemaPIllegalAttrErr(ctxt,
+ XML_SCHEMAP_S4S_ATTR_NOT_ALLOWED,
+ NULL, NULL, attr);
+ }
+ } else if (xmlStrEqual(attr->ns->href, xmlSchemaNs)) {
+ xmlSchemaPIllegalAttrErr(ctxt,
+ XML_SCHEMAP_S4S_ATTR_NOT_ALLOWED,
+ NULL, NULL, attr);
+ }
+ attr = attr->next;
+ }
+ xmlSchemaPValAttrID(ctxt, NULL, NULL, node, BAD_CAST "id");
/*
- * Check min/max sanity.
+ * minOccurs/maxOccurs.
+ */
+ max = xmlGetMaxOccurs(ctxt, node, 0, UNBOUNDED, 1,
+ "(nonNegativeInteger | unbounded)");
+ min = xmlGetMinOccurs(ctxt, node, 0, -1, 1,
+ "nonNegativeInteger");
+ xmlSchemaPCheckParticleCorrect_2(ctxt, NULL, node, min, max);
+ /*
+ * Create & parse the wildcard.
*/
- type->maxOccurs = maxOccurs;
- type->minOccurs = minOccurs;
- xmlSchemaPCheckParticleCorrect_2(ctxt, type,
- node, type->minOccurs, type->maxOccurs);
+ wild = xmlSchemaAddWildcard(ctxt, schema, XML_SCHEMA_TYPE_ANY, node);
+ if (wild == NULL)
+ return (NULL);
+ xmlSchemaParseWildcardNs(ctxt, schema, wild, node);
/*
- * This is not nice, since it is won't be used as a attribute wildcard,
- * but better than adding a field to the structure.
+ * And now for the children...
*/
- type->attributeWildcard = wildc;
- xmlSchemaParseWildcardNs(ctxt, schema, wildc, node);
child = node->children;
if (IS_SCHEMA(child, "annotation")) {
- type->annot = xmlSchemaParseAnnotation(ctxt, schema, child);
+ annot = xmlSchemaParseAnnotation(ctxt, schema, child);
child = child->next;
}
if (child != NULL) {
- xmlSchemaPErr2(ctxt, node, child,
- XML_SCHEMAP_UNKNOWN_SEQUENCE_CHILD,
- "Sequence %s has unexpected content\n", type->name,
- NULL);
+ xmlSchemaPContentErr(ctxt,
+ XML_SCHEMAP_S4S_ELEM_NOT_ALLOWED,
+ NULL, NULL, node, child,
+ NULL, "(annotation?)");
}
+ /*
+ * No component if minOccurs==maxOccurs==0.
+ */
+ if ((min == 0) && (max == 0)) {
+ /* Don't free the wildcard, since it's already on the list. */
+ return (NULL);
+ }
+ /*
+ * Create the particle.
+ */
+ particle = xmlSchemaAddParticle(ctxt, schema, node, min, max);
+ if (particle == NULL)
+ return (NULL);
+ particle->annot = annot;
+ particle->children = (xmlSchemaTreeItemPtr) wild;
- return (type);
+ return (particle);
}
/**
@@ -5353,9 +6118,10 @@ xmlSchemaParseNotation(xmlSchemaParserCtxtPtr ctxt, xmlSchemaPtr schema,
child = child->next;
}
if (child != NULL) {
- xmlSchemaPErr2(ctxt, node, child,
- XML_SCHEMAP_UNKNOWN_NOTATION_CHILD,
- "notation %s has unexpected content\n", name, NULL);
+ xmlSchemaPContentErr(ctxt,
+ XML_SCHEMAP_S4S_ELEM_NOT_ALLOWED,
+ NULL, NULL, node, child,
+ NULL, "(annotation?)");
}
return (ret);
@@ -5383,11 +6149,11 @@ xmlSchemaParseAnyAttribute(xmlSchemaParserCtxtPtr ctxt,
if ((ctxt == NULL) || (schema == NULL) || (node == NULL))
return (NULL);
- ret = xmlSchemaAddWildcard(ctxt);
+ ret = xmlSchemaAddWildcard(ctxt, schema, XML_SCHEMA_TYPE_ANY_ATTRIBUTE,
+ node);
if (ret == NULL) {
return (NULL);
}
- ret->type = XML_SCHEMA_TYPE_ANY_ATTRIBUTE;
/*
* Check for illegal attributes.
*/
@@ -5413,10 +6179,8 @@ xmlSchemaParseAnyAttribute(xmlSchemaParserCtxtPtr ctxt,
/*
* Parse the namespace list.
*/
- if (xmlSchemaParseWildcardNs(ctxt, schema, ret, node) != 0) {
- xmlSchemaFreeWildcard(ret);
+ if (xmlSchemaParseWildcardNs(ctxt, schema, ret, node) != 0)
return (NULL);
- }
/*
* And now for the children...
*/
@@ -5515,7 +6279,8 @@ xmlSchemaParseAttribute(xmlSchemaParserCtxtPtr ctxt, xmlSchemaPtr schema,
ret->refNs = refNs;
ret->refPrefix = refPrefix;
ret->ref = ref;
- xmlSchemaCheckReference(ctxt, schema, node, (xmlSchemaTypePtr) ret, refNs);
+ xmlSchemaCheckReference(ctxt, schema, node, (xmlSchemaBasicItemPtr) ret,
+ refNs);
/*
xmlSchemaFormatTypeRep(&repName, (xmlSchemaTypePtr) ret, NULL, NULL);
*/
@@ -5850,7 +6615,8 @@ xmlSchemaParseAttributeGroup(xmlSchemaParserCtxtPtr ctxt,
/* TODO: Is @refPrefix currently used? */
ret->refPrefix = refPrefix;
ret->node = node;
- xmlSchemaCheckReference(ctxt, schema, node, (xmlSchemaTypePtr) ret, refNs);
+ xmlSchemaCheckReference(ctxt, schema, node,
+ (xmlSchemaBasicItemPtr) ret, refNs);
}
/*
* Check for illegal attributes.
@@ -6026,7 +6792,6 @@ xmlSchemaPValAttrBlockFinal(const xmlChar *value,
return (ret);
}
-#ifdef IDC_ENABLED
static int
xmlSchemaCheckCSelectorXPath(xmlSchemaParserCtxtPtr ctxt,
xmlSchemaIDCPtr idc,
@@ -6098,6 +6863,9 @@ xmlSchemaCheckCSelectorXPath(xmlSchemaParserCtxtPtr ctxt,
nsArray[count * 2] = NULL;
xmlFree(nsList);
}
+ /*
+ * TODO: Differentiate between "selector" and "field".
+ */
if (isField)
selector->xpathComp = (void *) xmlPatterncompile(selector->xpath,
NULL, 1, nsArray);
@@ -6107,7 +6875,6 @@ xmlSchemaCheckCSelectorXPath(xmlSchemaParserCtxtPtr ctxt,
if (nsArray != NULL)
xmlFree((xmlChar **) nsArray);
-#ifdef IDC_XPATH_SUPPORT
if (selector->xpathComp == NULL) {
xmlSchemaPCustomErr(ctxt,
/* TODO: Adjust error code? */
@@ -6116,12 +6883,23 @@ xmlSchemaCheckCSelectorXPath(xmlSchemaParserCtxtPtr ctxt,
"The XPath expression '%s' could not be "
"compiled", selector->xpath);
return (XML_SCHEMAP_S4S_ATTR_INVALID_VALUE);
- }
-#endif
+ }
}
return (0);
}
+#define ADD_ANNOTATION(annot) \
+ xmlSchemaAnnotPtr cur = item->annot; \
+ if (item->annot == NULL) { \
+ item->annot = annot; \
+ return (annot); \
+ } \
+ cur = item->annot; \
+ if (cur->next != NULL) { \
+ cur = cur->next; \
+ } \
+ cur->next = annot;
+
/**
* xmlSchemaAssignAnnotation:
* @item: the schema component
@@ -6132,20 +6910,89 @@ xmlSchemaCheckCSelectorXPath(xmlSchemaParserCtxtPtr ctxt,
* Returns the given annotaion.
*/
static xmlSchemaAnnotPtr
-xmlSchemaAssignAnnotation(xmlSchemaBasicItemPtr item,
- xmlSchemaAnnotPtr annot)
-{
- xmlSchemaAnnotPtr cur = item->annot;
-
- if (item->annot == NULL) {
- item->annot = annot;
- return (annot);
- }
- cur = item->annot;
- if (cur->next != NULL) {
- cur = cur->next;
+xmlSchemaAddAnnotation(xmlSchemaAnnotItemPtr annItem,
+ xmlSchemaAnnotPtr annot)
+{
+ if ((annItem == NULL) || (annot == NULL))
+ return (NULL);
+ switch (annItem->type) {
+ case XML_SCHEMA_TYPE_ELEMENT: {
+ xmlSchemaElementPtr item = (xmlSchemaElementPtr) annItem;
+ ADD_ANNOTATION(annot)
+ }
+ break;
+ case XML_SCHEMA_TYPE_ATTRIBUTE: {
+ xmlSchemaAttributePtr item = (xmlSchemaAttributePtr) annItem;
+ ADD_ANNOTATION(annot)
+ }
+ break;
+ case XML_SCHEMA_TYPE_ANY_ATTRIBUTE:
+ case XML_SCHEMA_TYPE_ANY: {
+ xmlSchemaWildcardPtr item = (xmlSchemaWildcardPtr) annItem;
+ ADD_ANNOTATION(annot)
+ }
+ break;
+ case XML_SCHEMA_TYPE_PARTICLE:
+ case XML_SCHEMA_TYPE_IDC_KEY:
+ case XML_SCHEMA_TYPE_IDC_KEYREF:
+ case XML_SCHEMA_TYPE_IDC_UNIQUE: {
+ xmlSchemaAnnotItemPtr item = (xmlSchemaAnnotItemPtr) annItem;
+ ADD_ANNOTATION(annot)
+ }
+ break;
+ case XML_SCHEMA_TYPE_ATTRIBUTEGROUP: {
+ xmlSchemaAttributeGroupPtr item =
+ (xmlSchemaAttributeGroupPtr) annItem;
+ ADD_ANNOTATION(annot)
+ }
+ break;
+ case XML_SCHEMA_TYPE_NOTATION: {
+ xmlSchemaNotationPtr item = (xmlSchemaNotationPtr) annItem;
+ ADD_ANNOTATION(annot)
+ }
+ break;
+ case XML_SCHEMA_FACET_MININCLUSIVE:
+ case XML_SCHEMA_FACET_MINEXCLUSIVE:
+ case XML_SCHEMA_FACET_MAXINCLUSIVE:
+ case XML_SCHEMA_FACET_MAXEXCLUSIVE:
+ case XML_SCHEMA_FACET_TOTALDIGITS:
+ case XML_SCHEMA_FACET_FRACTIONDIGITS:
+ case XML_SCHEMA_FACET_PATTERN:
+ case XML_SCHEMA_FACET_ENUMERATION:
+ case XML_SCHEMA_FACET_WHITESPACE:
+ case XML_SCHEMA_FACET_LENGTH:
+ case XML_SCHEMA_FACET_MAXLENGTH:
+ case XML_SCHEMA_FACET_MINLENGTH: {
+ xmlSchemaFacetPtr item = (xmlSchemaFacetPtr) annItem;
+ ADD_ANNOTATION(annot)
+ }
+ break;
+ case XML_SCHEMA_TYPE_SIMPLE:
+ case XML_SCHEMA_TYPE_COMPLEX: {
+ xmlSchemaTypePtr item = (xmlSchemaTypePtr) annItem;
+ ADD_ANNOTATION(annot)
+ }
+ break;
+ case XML_SCHEMA_TYPE_GROUP: {
+ xmlSchemaModelGroupDefPtr item = (xmlSchemaModelGroupDefPtr) annItem;
+ ADD_ANNOTATION(annot)
+ }
+ break;
+ case XML_SCHEMA_TYPE_SEQUENCE:
+ case XML_SCHEMA_TYPE_CHOICE:
+ case XML_SCHEMA_TYPE_ALL: {
+ xmlSchemaModelGroupPtr item = (xmlSchemaModelGroupPtr) annItem;
+ ADD_ANNOTATION(annot)
+ }
+ break;
+ default:
+ xmlSchemaPCustomErr(NULL,
+ XML_SCHEMAP_INTERNAL,
+ NULL, NULL, NULL,
+ "Internal error: xmlSchemaAddAnnotation, "
+ "The item is not a annotated schema component", NULL);
+ break;
}
- cur->next = annot;
return (annot);
}
@@ -6236,7 +7083,7 @@ xmlSchemaParseIDCSelectorAndField(xmlSchemaParserCtxtPtr ctxt,
/*
* Add the annotation to the parent IDC.
*/
- xmlSchemaAssignAnnotation((xmlSchemaBasicItemPtr) idc,
+ xmlSchemaAddAnnotation((xmlSchemaAnnotItemPtr) idc,
xmlSchemaParseAnnotation(ctxt, schema, child));
child = child->next;
}
@@ -6362,19 +7209,16 @@ xmlSchemaParseIDC(xmlSchemaParserCtxtPtr ctxt,
/*
* Create a reference item.
*/
- item->ref = (xmlSchemaItemQNRefPtr) xmlMalloc(
- sizeof(xmlSchemaItemQNRef));
- if (item->ref == NULL) {
- xmlSchemaPErrMemory(ctxt,
- "allocating a QName reference item", NULL);
+ item->ref = xmlSchemaNewQNameRef(schema, XML_SCHEMA_TYPE_IDC_KEY,
+ NULL, NULL);
+ if (item->ref == NULL)
return (NULL);
- }
- memset(item->ref, 0, sizeof(xmlSchemaItemQNRef));
xmlSchemaPValAttrNodeQName(ctxt, schema,
NULL, NULL, attr,
&(item->ref->targetNamespace), 0,
&(item->ref->name));
- xmlSchemaCheckReference(ctxt, schema, node, (xmlSchemaTypePtr) item,
+ xmlSchemaCheckReference(ctxt, schema, node,
+ (xmlSchemaBasicItemPtr) item,
item->ref->targetNamespace);
}
}
@@ -6434,113 +7278,97 @@ xmlSchemaParseIDC(xmlSchemaParserCtxtPtr ctxt,
return (item);
}
-#endif
/**
* xmlSchemaParseElement:
* @ctxt: a schema validation context
* @schema: the schema being built
* @node: a subtree containing XML Schema informations
+ * @topLevel: indicates if this is global declaration
*
- * parse a XML schema Element declaration
+ * Parses a XML schema element declaration.
* *WARNING* this interface is highly subject to change
*
- * Returns the parsed element declaration.
+ * Returns the element declaration or a particle; NULL in case
+ * of an error or if the particle has minOccurs==maxOccurs==0.
*/
-static xmlSchemaElementPtr
+static xmlSchemaBasicItemPtr
xmlSchemaParseElement(xmlSchemaParserCtxtPtr ctxt, xmlSchemaPtr schema,
xmlNodePtr node, int topLevel)
-{
- const xmlChar *name = NULL;
- const xmlChar *attrValue;
- xmlChar *repName = NULL;
- xmlSchemaElementPtr ret;
- xmlNodePtr child = NULL;
- const xmlChar *oldcontainer;
- xmlAttrPtr attr, nameAttr;
- int minOccurs, maxOccurs;
- int isRef = 0;
-#ifdef IDC_ENABLED
- xmlSchemaIDCPtr curIDC = NULL, lastIDC = NULL;
-#endif
+{
+ xmlSchemaElementPtr decl = NULL;
+ xmlSchemaParticlePtr particle = NULL;
+ xmlSchemaAnnotPtr annot = NULL;
+ xmlNodePtr child = NULL;
+ xmlAttrPtr attr, nameAttr;
+ int min, max, isRef = 0;
+ xmlChar *des = NULL;
/* 3.3.3 Constraints on XML Representations of Element Declarations */
/* TODO: Complete implementation of 3.3.6 */
if ((ctxt == NULL) || (schema == NULL) || (node == NULL))
- return (NULL);
-
- oldcontainer = ctxt->container;
-
+ return (NULL);
+ /*
+ * If we get a "ref" attribute on a local <element> we will assume it's
+ * a reference - even if there's a "name" attribute; this seems to be more
+ * robust.
+ */
nameAttr = xmlSchemaGetPropNode(node, "name");
attr = xmlSchemaGetPropNode(node, "ref");
if ((topLevel) || (attr == NULL)) {
if (nameAttr == NULL) {
xmlSchemaPMissingAttrErr(ctxt,
XML_SCHEMAP_S4S_ATTR_MISSING,
- (xmlChar **) &xmlSchemaElemDesElemDecl, NULL, node,
- "name", NULL);
+ NULL, NULL, node, "name", NULL);
return (NULL);
- }
- name = xmlSchemaGetNodeContent(ctxt, (xmlNodePtr) nameAttr);
- } else {
+ }
+ } else
isRef = 1;
-
+
+ xmlSchemaPValAttrID(ctxt, NULL, NULL, node, BAD_CAST "id");
+ child = node->children;
+ if (IS_SCHEMA(child, "annotation")) {
+ annot = xmlSchemaParseAnnotation(ctxt, schema, child);
+ child = child->next;
}
- /*
- * ... unless minOccurs=maxOccurs=0, in which case the item corresponds
- * to no component at all
- * TODO: It might be better to validate the element, even if it won't be
- * used.
- */
- minOccurs = xmlGetMinOccurs(ctxt, node, 0, -1, 1, "nonNegativeInteger");
- maxOccurs = xmlGetMaxOccurs(ctxt, node, 0, UNBOUNDED, 1, "(nonNegativeInteger | unbounded)");
- if ((minOccurs == 0) && (maxOccurs == 0))
- return (NULL);
/*
- * If we get a "ref" attribute on a local <element> we will assume it's
- * a reference - even if there's a "name" attribute; this seems to be more
- * robust.
+ * Skip particle part if a global declaration.
*/
- if (isRef) {
- char buf[50];
- const xmlChar *refNs = NULL, *ref = NULL, *refPrefix;
+ if (topLevel)
+ goto declaration_part;
+ /*
+ * The particle part ==================================================
+ */
+ min = xmlGetMinOccurs(ctxt, node, 0, -1, 1, "nonNegativeInteger");
+ max = xmlGetMaxOccurs(ctxt, node, 0, UNBOUNDED, 1, "(nonNegativeInteger | unbounded)");
+ xmlSchemaPCheckParticleCorrect_2(ctxt, NULL, node, min, max);
+ particle = xmlSchemaAddParticle(ctxt, schema, node, min, max);
+ if (particle == NULL)
+ goto return_null;
+
+ /* ret->flags |= XML_SCHEMAS_ELEM_REF; */
+ if (isRef) {
+ const xmlChar *refNs = NULL, *ref = NULL;
+ xmlSchemaQNameRefPtr refer = NULL;
/*
- * Parse as a particle.
+ * The reference part =============================================
*/
xmlSchemaPValAttrNodeQName(ctxt, schema,
- (xmlChar **) &xmlSchemaElemDesElemRef,
- NULL, attr, &refNs, &refPrefix, &ref);
-
- snprintf(buf, 49, "#eRef%d", ctxt->counter++ + 1);
- ret = xmlSchemaAddElement(ctxt, schema, (const xmlChar *) buf, NULL, node, 0);
- if (ret == NULL) {
- if (repName != NULL)
- xmlFree(repName);
- return (NULL);
- }
- ret->type = XML_SCHEMA_TYPE_ELEMENT;
- ret->node = node;
- ret->ref = ref;
- ret->refNs = refNs;
- ret->refPrefix = refPrefix;
- ret->flags |= XML_SCHEMAS_ELEM_REF;
- xmlSchemaCheckReference(ctxt, schema, node, (xmlSchemaTypePtr) ret, refNs);
+ NULL, NULL, attr, &refNs, NULL, &ref);
+ xmlSchemaCheckReference(ctxt, schema, node, NULL, refNs);
/*
- * Check for illegal attributes.
- */
- /*
- * 3.3.3 : 2.1
- * One of ref or name must be present, but not both
+ * SPEC (3.3.3 : 2.1) "One of ref or name must be present, but not both"
*/
if (nameAttr != NULL) {
xmlSchemaPMutualExclAttrErr(ctxt,
XML_SCHEMAP_SRC_ELEMENT_2_1,
- &repName, (xmlSchemaTypePtr) ret, nameAttr,
- "ref", "name");
+ NULL, NULL, nameAttr, "ref", "name");
}
- /* 3.3.3 : 2.2 */
+ /*
+ * Check for illegal attributes.
+ */
attr = node->properties;
while (attr != NULL) {
if (attr->ns == NULL) {
@@ -6553,9 +7381,10 @@ xmlSchemaParseElement(xmlSchemaParserCtxtPtr ctxt, xmlSchemaPtr schema,
attr = attr->next;
continue;
} else {
+ /* SPEC (3.3.3 : 2.2) */
xmlSchemaPCustomAttrErr(ctxt,
XML_SCHEMAP_SRC_ELEMENT_2_2,
- &repName, (xmlSchemaTypePtr) ret, attr,
+ NULL, NULL, attr,
"Only the attributes 'minOccurs', 'maxOccurs' and "
"'id' are allowed in addition to 'ref'");
break;
@@ -6563,20 +7392,47 @@ xmlSchemaParseElement(xmlSchemaParserCtxtPtr ctxt, xmlSchemaPtr schema,
} else if (xmlStrEqual(attr->ns->href, xmlSchemaNs)) {
xmlSchemaPIllegalAttrErr(ctxt,
XML_SCHEMAP_S4S_ATTR_NOT_ALLOWED,
- &repName, (xmlSchemaTypePtr) ret, attr);
+ NULL, NULL, attr);
}
attr = attr->next;
- }
- } else {
- const xmlChar *ns = NULL, *fixed;
-
+ }
/*
- * Parse as an element declaration.
+ * No children except <annotation> expected.
*/
- if (xmlSchemaPValAttrNode(ctxt,
- (xmlChar **) &xmlSchemaElemDesElemDecl, NULL, nameAttr,
+ if (child != NULL) {
+ xmlSchemaPContentErr(ctxt, XML_SCHEMAP_S4S_ELEM_NOT_ALLOWED,
+ NULL, NULL, node, child, NULL, "(annotation?)");
+ }
+ if ((min == 0) && (max == 0))
+ goto return_null;
+ /*
+ * Create the reference item.
+ */
+ refer = xmlSchemaNewQNameRef(schema, XML_SCHEMA_TYPE_ELEMENT,
+ ref, refNs);
+ if (refer == NULL)
+ goto return_null;
+ particle->children = (xmlSchemaTreeItemPtr) refer;
+ particle->annot = annot;
+ /*
+ * Add to assembled items; the reference need to be resolved.
+ */
+ if (ctxt->assemble != NULL)
+ xmlSchemaAddAssembledItem(ctxt, (xmlSchemaTypePtr) particle);
+
+ return ((xmlSchemaBasicItemPtr) particle);
+ }
+ /*
+ * The declaration part ===============================================
+ */
+declaration_part:
+ {
+ const xmlChar *ns = NULL, *fixed, *name, *oldcontainer, *attrValue;
+ xmlSchemaIDCPtr curIDC = NULL, lastIDC = NULL;
+
+ if (xmlSchemaPValAttrNode(ctxt, NULL, NULL, nameAttr,
xmlSchemaGetBuiltInType(XML_SCHEMAS_NCNAME), &name) != 0)
- return (NULL);
+ goto return_null;
/*
* Evaluate the target namespace.
*/
@@ -6591,22 +7447,20 @@ xmlSchemaParseElement(xmlSchemaParserCtxtPtr ctxt, xmlSchemaPtr schema,
} else if (!xmlStrEqual(attrValue, BAD_CAST "unqualified")) {
xmlSchemaPSimpleTypeErr(ctxt,
XML_SCHEMAP_S4S_ATTR_INVALID_VALUE,
- &repName, NULL, (xmlNodePtr) attr,
+ NULL, NULL, (xmlNodePtr) attr,
NULL, "(qualified | unqualified)",
attrValue, NULL, NULL, NULL);
}
} else if (schema->flags & XML_SCHEMAS_QUALIF_ELEM)
ns = schema->targetNamespace;
}
- ret = xmlSchemaAddElement(ctxt, schema, name, ns, node, topLevel);
- if (ret == NULL) {
- if (repName != NULL)
- xmlFree(repName);
- return (NULL);
+ decl = xmlSchemaAddElement(ctxt, schema, name, ns, node, topLevel);
+ if (decl == NULL) {
+ goto return_null;
}
- ret->type = XML_SCHEMA_TYPE_ELEMENT;
- ret->node = node;
- ret->targetNamespace = ns;
+ decl->type = XML_SCHEMA_TYPE_ELEMENT;
+ decl->node = node;
+ decl->targetNamespace = ns;
/*
* Check for illegal attributes.
*/
@@ -6633,16 +7487,15 @@ xmlSchemaParseElement(xmlSchemaParserCtxtPtr ctxt, xmlSchemaPtr schema,
* TODO: This one is redundant, since the S4S does
* prohibit this attribute on local declarations already;
* so why an explicit error code? Weird spec.
- * TODO: Move this to the proper constraint layer.
- * TODO: Or better wait for spec 1.1 to come.
+ * TODO: Think about hanling this equal to the other attributes.
*/
xmlSchemaPIllegalAttrErr(ctxt,
XML_SCHEMAP_E_PROPS_CORRECT_3,
- &repName, (xmlSchemaTypePtr) ret, attr);
+ NULL, (xmlSchemaTypePtr) decl, attr);
} else {
xmlSchemaPIllegalAttrErr(ctxt,
XML_SCHEMAP_S4S_ATTR_NOT_ALLOWED,
- &repName, (xmlSchemaTypePtr) ret, attr);
+ NULL, (xmlSchemaTypePtr) decl, attr);
}
}
} else if ((!xmlStrEqual(attr->name, BAD_CAST "final")) &&
@@ -6651,14 +7504,14 @@ xmlSchemaParseElement(xmlSchemaParserCtxtPtr ctxt, xmlSchemaPtr schema,
xmlSchemaPIllegalAttrErr(ctxt,
XML_SCHEMAP_S4S_ATTR_NOT_ALLOWED,
- &repName, (xmlSchemaTypePtr) ret, attr);
+ NULL, (xmlSchemaTypePtr) decl, attr);
}
}
} else if (xmlStrEqual(attr->ns->href, xmlSchemaNs)) {
xmlSchemaPIllegalAttrErr(ctxt,
XML_SCHEMAP_S4S_ATTR_NOT_ALLOWED,
- &repName, (xmlSchemaTypePtr) ret, attr);
+ NULL, (xmlSchemaTypePtr) decl, attr);
}
attr = attr->next;
}
@@ -6669,29 +7522,29 @@ xmlSchemaParseElement(xmlSchemaParserCtxtPtr ctxt, xmlSchemaPtr schema,
/*
* Process top attributes of global element declarations here.
*/
- ret->flags |= XML_SCHEMAS_ELEM_GLOBAL;
- ret->flags |= XML_SCHEMAS_ELEM_TOPLEVEL;
- xmlSchemaPValAttrQName(ctxt, schema, &repName,
- (xmlSchemaTypePtr) ret, node, "substitutionGroup",
- &(ret->substGroupNs), NULL, &(ret->substGroup));
- if (xmlGetBooleanProp(ctxt, &repName, (xmlSchemaTypePtr) ret,
+ decl->flags |= XML_SCHEMAS_ELEM_GLOBAL;
+ decl->flags |= XML_SCHEMAS_ELEM_TOPLEVEL;
+ xmlSchemaPValAttrQName(ctxt, schema, NULL,
+ (xmlSchemaTypePtr) decl, node, "substitutionGroup",
+ &(decl->substGroupNs), NULL, &(decl->substGroup));
+ if (xmlGetBooleanProp(ctxt, NULL, (xmlSchemaTypePtr) decl,
node, "abstract", 0))
- ret->flags |= XML_SCHEMAS_ELEM_ABSTRACT;
+ decl->flags |= XML_SCHEMAS_ELEM_ABSTRACT;
/*
* Attribute "final".
*/
attr = xmlSchemaGetPropNode(node, "final");
if (attr == NULL) {
- ret->flags |= XML_SCHEMAS_ELEM_FINAL_ABSENT;
+ decl->flags |= XML_SCHEMAS_ELEM_FINAL_ABSENT;
} else {
attrValue = xmlSchemaGetNodeContent(ctxt, (xmlNodePtr) attr);
- if (xmlSchemaPValAttrBlockFinal(attrValue, &(ret->flags),
+ if (xmlSchemaPValAttrBlockFinal(attrValue, &(decl->flags),
-1,
XML_SCHEMAS_ELEM_FINAL_EXTENSION,
XML_SCHEMAS_ELEM_FINAL_RESTRICTION, -1, -1, -1) != 0) {
xmlSchemaPSimpleTypeErr(ctxt,
XML_SCHEMAP_S4S_ATTR_INVALID_VALUE,
- &repName, (xmlSchemaTypePtr) ret, (xmlNodePtr) attr,
+ NULL, (xmlSchemaTypePtr) decl, (xmlNodePtr) attr,
NULL, "(#all | List of (extension | restriction))",
attrValue, NULL, NULL, NULL);
}
@@ -6702,90 +7555,67 @@ xmlSchemaParseElement(xmlSchemaParserCtxtPtr ctxt, xmlSchemaPtr schema,
*/
attr = xmlSchemaGetPropNode(node, "block");
if (attr == NULL) {
- ret->flags |= XML_SCHEMAS_ELEM_BLOCK_ABSENT;
+ decl->flags |= XML_SCHEMAS_ELEM_BLOCK_ABSENT;
} else {
attrValue = xmlSchemaGetNodeContent(ctxt, (xmlNodePtr) attr);
- if (xmlSchemaPValAttrBlockFinal(attrValue, &(ret->flags),
+ if (xmlSchemaPValAttrBlockFinal(attrValue, &(decl->flags),
-1,
XML_SCHEMAS_ELEM_BLOCK_EXTENSION,
XML_SCHEMAS_ELEM_BLOCK_RESTRICTION,
XML_SCHEMAS_ELEM_BLOCK_SUBSTITUTION, -1, -1) != 0) {
xmlSchemaPSimpleTypeErr(ctxt,
XML_SCHEMAP_S4S_ATTR_INVALID_VALUE,
- &repName, (xmlSchemaTypePtr) ret, (xmlNodePtr) attr,
+ NULL, (xmlSchemaTypePtr) decl, (xmlNodePtr) attr,
NULL, "(#all | List of (extension | "
"restriction | substitution))", attrValue,
NULL, NULL, NULL);
}
}
- if (xmlGetBooleanProp(ctxt, &repName, (xmlSchemaTypePtr) ret,
+ if (xmlGetBooleanProp(ctxt, NULL, (xmlSchemaTypePtr) decl,
node, "nillable", 0))
- ret->flags |= XML_SCHEMAS_ELEM_NILLABLE;
+ decl->flags |= XML_SCHEMAS_ELEM_NILLABLE;
xmlSchemaPValAttrQName(ctxt, schema,
- &repName, (xmlSchemaTypePtr) ret, node,
- "type", &(ret->namedTypeNs), NULL, &(ret->namedType));
+ NULL, (xmlSchemaTypePtr) decl, node,
+ "type", &(decl->namedTypeNs), NULL, &(decl->namedType));
- ret->value = xmlSchemaGetProp(ctxt, node, "default");
+ decl->value = xmlSchemaGetProp(ctxt, node, "default");
attr = xmlSchemaGetPropNode(node, "fixed");
if (attr != NULL) {
fixed = xmlSchemaGetNodeContent(ctxt, (xmlNodePtr) attr);
- if (ret->value != NULL) {
+ if (decl->value != NULL) {
/*
* 3.3.3 : 1
* default and fixed must not both be present.
*/
xmlSchemaPMutualExclAttrErr(ctxt,
XML_SCHEMAP_SRC_ELEMENT_1,
- &repName, (xmlSchemaTypePtr) ret, attr,
+ NULL, (xmlSchemaTypePtr) decl, attr,
"default", "fixed");
} else {
- ret->flags |= XML_SCHEMAS_ELEM_FIXED;
- ret->value = fixed;
+ decl->flags |= XML_SCHEMAS_ELEM_FIXED;
+ decl->value = fixed;
}
- }
- }
- /*
- * Extract/validate common attributes.
- */
- xmlSchemaPValAttrID(ctxt, NULL, (xmlSchemaTypePtr) ret,
- node, BAD_CAST "id");
- ret->minOccurs = minOccurs;
- ret->maxOccurs = maxOccurs;
- if (topLevel != 1)
- xmlSchemaPCheckParticleCorrect_2(ctxt, (xmlSchemaTypePtr) ret,
- node, minOccurs, maxOccurs);
- /*
- * And now for the children...
- */
- ctxt->container = ret->name;
- child = node->children;
- if (IS_SCHEMA(child, "annotation")) {
- ret->annot = xmlSchemaParseAnnotation(ctxt, schema, child);
- child = child->next;
- }
- if (isRef) {
- if (child != NULL) {
- xmlSchemaPContentErr(ctxt,
- XML_SCHEMAP_SRC_ELEMENT_2_2,
- &repName, (xmlSchemaTypePtr) ret, node, child,
- NULL, "(annotation?)");
}
- } else {
+ /*
+ * And now for the children...
+ */
+ oldcontainer = ctxt->container;
+ ctxt->container = decl->name;
if (IS_SCHEMA(child, "complexType")) {
/*
* 3.3.3 : 3
* "type" and either <simpleType> or <complexType> are mutually
* exclusive
*/
- if (ret->namedType != NULL) {
+ if (decl->namedType != NULL) {
xmlSchemaPContentErr(ctxt,
XML_SCHEMAP_SRC_ELEMENT_3,
- &repName, (xmlSchemaTypePtr) ret, node, child,
+ NULL, (xmlSchemaTypePtr) decl, node, child,
"The attribute 'type' and the <complexType> child are "
"mutually exclusive", NULL);
} else
- ret->subtypes = xmlSchemaParseComplexType(ctxt, schema, child, 0);
+ decl->subtypes = xmlSchemaParseComplexType(ctxt, schema, child, 0);
child = child->next;
} else if (IS_SCHEMA(child, "simpleType")) {
/*
@@ -6793,59 +7623,66 @@ xmlSchemaParseElement(xmlSchemaParserCtxtPtr ctxt, xmlSchemaPtr schema,
* "type" and either <simpleType> or <complexType> are
* mutually exclusive
*/
- if (ret->namedType != NULL) {
+ if (decl->namedType != NULL) {
xmlSchemaPContentErr(ctxt,
XML_SCHEMAP_SRC_ELEMENT_3,
- &repName, (xmlSchemaTypePtr) ret, node, child,
+ NULL, (xmlSchemaTypePtr) decl, node, child,
"The attribute 'type' and the <simpleType> child are "
"mutually exclusive", NULL);
} else
- ret->subtypes = xmlSchemaParseSimpleType(ctxt, schema, child, 0);
+ decl->subtypes = xmlSchemaParseSimpleType(ctxt, schema, child, 0);
child = child->next;
}
while ((IS_SCHEMA(child, "unique")) ||
(IS_SCHEMA(child, "key")) || (IS_SCHEMA(child, "keyref"))) {
-#ifdef IDC_ENABLED
if (IS_SCHEMA(child, "unique")) {
curIDC = xmlSchemaParseIDC(ctxt, schema, child,
- XML_SCHEMA_TYPE_IDC_UNIQUE, ret->targetNamespace);
+ XML_SCHEMA_TYPE_IDC_UNIQUE, decl->targetNamespace);
} else if (IS_SCHEMA(child, "key")) {
curIDC = xmlSchemaParseIDC(ctxt, schema, child,
- XML_SCHEMA_TYPE_IDC_KEY, ret->targetNamespace);
+ XML_SCHEMA_TYPE_IDC_KEY, decl->targetNamespace);
} else if (IS_SCHEMA(child, "keyref")) {
curIDC = xmlSchemaParseIDC(ctxt, schema, child,
- XML_SCHEMA_TYPE_IDC_KEYREF, ret->targetNamespace);
+ XML_SCHEMA_TYPE_IDC_KEYREF, decl->targetNamespace);
}
if (lastIDC != NULL)
lastIDC->next = curIDC;
else
- ret->idcs = (void *) curIDC;
+ decl->idcs = (void *) curIDC;
lastIDC = curIDC;
-#else
- TODO
-#endif
child = child->next;
}
if (child != NULL) {
xmlSchemaPContentErr(ctxt,
XML_SCHEMAP_S4S_ELEM_NOT_ALLOWED,
- &repName, (xmlSchemaTypePtr) ret, node, child,
+ NULL, (xmlSchemaTypePtr) decl, node, child,
NULL, "(annotation?, ((simpleType | complexType)?, "
"(unique | key | keyref)*))");
- }
-
+ }
+ ctxt->container = oldcontainer;
+ decl->annot = annot;
}
- ctxt->container = oldcontainer;
- /*
- * Cleanup.
- */
- if (repName != NULL)
- xmlFree(repName);
/*
* NOTE: Element Declaration Representation OK 4. will be checked at a
* different layer.
*/
- return (ret);
+ FREE_AND_NULL(des)
+ if (topLevel)
+ return ((xmlSchemaBasicItemPtr) decl);
+ else {
+ particle->children = (xmlSchemaTreeItemPtr) decl;
+ return ((xmlSchemaBasicItemPtr) particle);
+ }
+
+return_null:
+ FREE_AND_NULL(des)
+ if (annot != NULL)
+ xmlSchemaFreeAnnot(annot);
+ if (particle != NULL)
+ xmlSchemaFreeParticle(particle);
+ if (decl != NULL)
+ xmlSchemaFreeElement(decl);
+ return (NULL);
}
/**
@@ -6857,27 +7694,26 @@ xmlSchemaParseElement(xmlSchemaParserCtxtPtr ctxt, xmlSchemaPtr schema,
* parse a XML schema Union definition
* *WARNING* this interface is highly subject to change
*
- * Returns -1 in case of error, 0 if the declaration is improper and
- * 1 in case of success.
+ * Returns -1 in case of internal error, 0 in case of success and a positive
+ * error code otherwise.
*/
-static xmlSchemaTypePtr
+static int
xmlSchemaParseUnion(xmlSchemaParserCtxtPtr ctxt, xmlSchemaPtr schema,
xmlNodePtr node)
{
- xmlSchemaTypePtr type, subtype, last = NULL;
+ xmlSchemaTypePtr type;
xmlNodePtr child = NULL;
- xmlChar name[30];
xmlAttrPtr attr;
+ const xmlChar *cur = NULL;
if ((ctxt == NULL) || (schema == NULL) || (node == NULL))
- return (NULL);
-
- snprintf((char *) name, 30, "#union%d", ctxt->counter++ + 1);
- type = xmlSchemaAddType(ctxt, schema, name, NULL, node);
- if (type == NULL)
- return (NULL);
- type->type = XML_SCHEMA_TYPE_UNION;
- type->node = node;
+ return (-1);
+ /* Not a component, don't create it. */
+ type = ctxt->ctxtType;
+ /*
+ * Mark the simple type as being of variety "union".
+ */
+ type->flags |= XML_SCHEMAS_TYPE_VARIETY_UNION;
/*
* Check for illegal attributes.
*/
@@ -6888,51 +7724,131 @@ xmlSchemaParseUnion(xmlSchemaParserCtxtPtr ctxt, xmlSchemaPtr schema,
(!xmlStrEqual(attr->name, BAD_CAST "memberTypes"))) {
xmlSchemaPIllegalAttrErr(ctxt,
XML_SCHEMAP_S4S_ATTR_NOT_ALLOWED,
- NULL, type, attr);
+ NULL, NULL, attr);
}
} else if (xmlStrEqual(attr->ns->href, xmlSchemaNs)) {
xmlSchemaPIllegalAttrErr(ctxt,
XML_SCHEMAP_S4S_ATTR_NOT_ALLOWED,
- NULL, type, attr);
+ NULL, NULL, attr);
}
attr = attr->next;
}
xmlSchemaPValAttrID(ctxt, NULL, NULL, node, BAD_CAST "id");
/*
* Attribute "memberTypes". This is a list of QNames.
- * TODO: Validate the QNames.
+ * TODO: Check the value to contain anything.
*/
- type->base = xmlSchemaGetProp(ctxt, node, "memberTypes");
+ attr = xmlSchemaGetPropNode(node, "memberTypes");
+ if (attr != NULL) {
+ const xmlChar *end;
+ xmlChar *tmp;
+ const xmlChar *localName, *nsName;
+ xmlSchemaTypeLinkPtr link, lastLink = NULL;
+ xmlSchemaQNameRefPtr ref;
+
+ cur = xmlSchemaGetNodeContent(ctxt, (xmlNodePtr) attr);
+ type->ref = cur;
+ 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);
+ if (xmlSchemaPValAttrNodeQNameValue(ctxt, schema, NULL,
+ NULL, attr, BAD_CAST tmp, &nsName, NULL, &localName) == 0) {
+ /*
+ * Create the member type link.
+ */
+ link = (xmlSchemaTypeLinkPtr)
+ xmlMalloc(sizeof(xmlSchemaTypeLink));
+ if (link == NULL) {
+ xmlSchemaPErrMemory(ctxt, "xmlSchemaParseUnion, "
+ "allocating a type link", NULL);
+ return (-1);
+ }
+ link->type = NULL;
+ link->next = NULL;
+ if (lastLink == NULL)
+ type->memberTypes = link;
+ else
+ lastLink->next = link;
+ lastLink = link;
+ /*
+ * Create a reference item.
+ */
+ ref = xmlSchemaNewQNameRef(schema, XML_SCHEMA_TYPE_SIMPLE,
+ localName, nsName);
+ if (ref == NULL) {
+ FREE_AND_NULL(tmp)
+ return (-1);
+ }
+ /*
+ * Assign the reference to the link, it will be resolved
+ * later during fixup of the union simple type.
+ */
+ link->type = (xmlSchemaTypePtr) ref;
+ }
+ FREE_AND_NULL(tmp)
+ cur = end;
+ } while (*cur != 0);
+
+ }
/*
* And now for the children...
*/
child = node->children;
if (IS_SCHEMA(child, "annotation")) {
- type->annot = xmlSchemaParseAnnotation(ctxt, schema, child);
+ /*
+ * Add the annotation to the simple type ancestor.
+ */
+ xmlSchemaAddAnnotation((xmlSchemaAnnotItemPtr) type,
+ xmlSchemaParseAnnotation(ctxt, schema, child));
child = child->next;
}
- while (IS_SCHEMA(child, "simpleType")) {
- subtype = (xmlSchemaTypePtr)
- xmlSchemaParseSimpleType(ctxt, schema, child, 0);
- if (subtype != NULL) {
- if (last == NULL) {
- type->subtypes = subtype;
- last = subtype;
- } else {
- last->next = subtype;
- last = subtype;
- }
- last->next = NULL;
- }
- child = child->next;
+ if (IS_SCHEMA(child, "simpleType")) {
+ xmlSchemaTypePtr subtype, last = NULL;
+
+ /*
+ * Anchor the member types in the "subtypes" field of the
+ * simple type.
+ */
+ while (IS_SCHEMA(child, "simpleType")) {
+ subtype = (xmlSchemaTypePtr)
+ xmlSchemaParseSimpleType(ctxt, schema, child, 0);
+ if (subtype != NULL) {
+ if (last == NULL) {
+ type->subtypes = subtype;
+ last = subtype;
+ } else {
+ last->next = subtype;
+ last = subtype;
+ }
+ last->next = NULL;
+ }
+ child = child->next;
+ }
}
if (child != NULL) {
- /* TODO: Think about the error code. */
xmlSchemaPContentErr(ctxt,
- XML_SCHEMAP_UNKNOWN_UNION_CHILD,
- NULL, type, node, child, NULL, "(annotation?, simpleType*)");
- }
- return (type);
+ XML_SCHEMAP_S4S_ELEM_NOT_ALLOWED,
+ NULL, NULL, node, child, NULL, "(annotation?, simpleType*)");
+ }
+ if ((attr == NULL) && (type->subtypes == NULL)) {
+ /*
+ * 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].
+ */
+ xmlSchemaPCustomErr(ctxt,
+ XML_SCHEMAP_SRC_UNION_MEMBERTYPES_OR_SIMPLETYPES,
+ NULL, NULL, node,
+ "Either the attribute 'memberTypes' or "
+ "at least one <simpleType> child must be present", NULL);
+ }
+ return (0);
}
/**
@@ -6951,21 +7867,18 @@ static xmlSchemaTypePtr
xmlSchemaParseList(xmlSchemaParserCtxtPtr ctxt, xmlSchemaPtr schema,
xmlNodePtr node)
{
- xmlSchemaTypePtr type, subtype;
+ xmlSchemaTypePtr type;
xmlNodePtr child = NULL;
- xmlChar name[30];
xmlAttrPtr attr;
if ((ctxt == NULL) || (schema == NULL) || (node == NULL))
return (NULL);
-
- snprintf((char *) name, 30, "#list%d", ctxt->counter++ + 1);
- type = xmlSchemaAddType(ctxt, schema, name, NULL, node);
- if (type == NULL)
- return (NULL);
- type->node = node;
- type->type = XML_SCHEMA_TYPE_LIST;
- xmlSchemaPValAttrID(ctxt, NULL, NULL, node, BAD_CAST "id");
+ /* Not a component, don't create it. */
+ type = ctxt->ctxtType;
+ /*
+ * Mark the type as being of variety "list".
+ */
+ type->flags |= XML_SCHEMAS_TYPE_VARIETY_LIST;
/*
* Check for illegal attributes.
*/
@@ -6976,50 +7889,71 @@ xmlSchemaParseList(xmlSchemaParserCtxtPtr ctxt, xmlSchemaPtr schema,
(!xmlStrEqual(attr->name, BAD_CAST "itemType"))) {
xmlSchemaPIllegalAttrErr(ctxt,
XML_SCHEMAP_S4S_ATTR_NOT_ALLOWED,
- NULL, type, attr);
+ NULL, NULL, attr);
}
} else if (xmlStrEqual(attr->ns->href, xmlSchemaNs)) {
xmlSchemaPIllegalAttrErr(ctxt,
XML_SCHEMAP_S4S_ATTR_NOT_ALLOWED,
- NULL, type, attr);
+ NULL, NULL, attr);
}
attr = attr->next;
}
+
+ xmlSchemaPValAttrID(ctxt, NULL, NULL, node, BAD_CAST "id");
+
/*
- * Attribute "itemType".
+ * Attribute "itemType". NOTE that we will use the "ref" and "refNs"
+ * fields for holding the reference to the itemType.
*/
xmlSchemaPValAttrQName(ctxt, schema, NULL, NULL,
- node, "itemType", &(type->baseNs), NULL, &(type->base));
+ node, "itemType", &(type->refNs), NULL, &(type->ref));
/*
* And now for the children...
*/
child = node->children;
if (IS_SCHEMA(child, "annotation")) {
- type->annot = xmlSchemaParseAnnotation(ctxt, schema, child);
+ xmlSchemaAddAnnotation((xmlSchemaAnnotItemPtr) type,
+ xmlSchemaParseAnnotation(ctxt, schema, child));
child = child->next;
}
- subtype = NULL;
if (IS_SCHEMA(child, "simpleType")) {
- if (type->base != 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->ref != NULL) {
xmlSchemaPCustomErr(ctxt,
XML_SCHEMAP_SRC_SIMPLE_TYPE_1,
- NULL, type, node,
+ NULL, NULL, node,
"The attribute 'itemType' and the <simpleType> child "
- "are mutually exclusive", NULL);
+ "are mutually exclusive", NULL);
} else {
- subtype = (xmlSchemaTypePtr)
- xmlSchemaParseSimpleType(ctxt, schema, child, 0);
- type->subtypes = subtype;
+ type->subtypes = xmlSchemaParseSimpleType(ctxt, schema, child, 0);
}
child = child->next;
+ } else if (type->ref == NULL) {
+ xmlSchemaPCustomErr(ctxt,
+ XML_SCHEMAP_SRC_SIMPLE_TYPE_1,
+ NULL, NULL, node,
+ "Either the attribute 'itemType' or the <simpleType> child "
+ "must be present", NULL);
}
if (child != NULL) {
- /* TODO: Think about the error code. */
xmlSchemaPContentErr(ctxt,
- XML_SCHEMAP_UNKNOWN_LIST_CHILD,
- NULL, type, node, child, NULL, "(annotation?, simpleType?)");
+ XML_SCHEMAP_S4S_ELEM_NOT_ALLOWED,
+ NULL, NULL, node, child, NULL, "(annotation?, simpleType?)");
}
- return (type);
+ if ((type->ref == NULL) &&
+ (type->subtypes == NULL) &&
+ (xmlSchemaGetPropNode(node, "itemType") == NULL)) {
+ xmlSchemaPCustomErr(ctxt,
+ XML_SCHEMAP_SRC_SIMPLE_TYPE_1,
+ NULL, NULL, node,
+ "Either the attribute 'itemType' or the <simpleType> child "
+ "must be present", NULL);
+ }
+ return (NULL);
}
/**
@@ -7038,10 +7972,9 @@ static xmlSchemaTypePtr
xmlSchemaParseSimpleType(xmlSchemaParserCtxtPtr ctxt, xmlSchemaPtr schema,
xmlNodePtr node, int topLevel)
{
- xmlSchemaTypePtr type, subtype, oldCtxtType, oldParentItem;
+ xmlSchemaTypePtr type, oldCtxtType, oldParentItem;
xmlNodePtr child = NULL;
const xmlChar *attrValue = NULL;
- xmlChar *des = NULL;
xmlAttrPtr attr;
if ((ctxt == NULL) || (schema == NULL) || (node == NULL))
@@ -7052,11 +7985,11 @@ xmlSchemaParseSimpleType(xmlSchemaParserCtxtPtr ctxt, xmlSchemaPtr schema,
if (attr == NULL) {
xmlSchemaPMissingAttrErr(ctxt,
XML_SCHEMAP_S4S_ATTR_MISSING,
- (xmlChar **) &xmlSchemaElemDesST, NULL, node,
+ NULL, NULL, node,
"name", NULL);
return (NULL);
} else if (xmlSchemaPValAttrNode(ctxt,
- (xmlChar **) &xmlSchemaElemDesST, NULL, attr,
+ NULL, NULL, attr,
xmlSchemaGetBuiltInType(XML_SCHEMAS_NCNAME), &attrValue) != 0) {
return (NULL);
}
@@ -7083,12 +8016,12 @@ xmlSchemaParseSimpleType(xmlSchemaParserCtxtPtr ctxt, xmlSchemaPtr schema,
if (!xmlStrEqual(attr->name, BAD_CAST "id")) {
xmlSchemaPIllegalAttrErr(ctxt,
XML_SCHEMAP_S4S_ATTR_NOT_ALLOWED,
- &des, type, attr);
+ NULL, type, attr);
}
} else if (xmlStrEqual(attr->ns->href, xmlSchemaNs)) {
xmlSchemaPIllegalAttrErr(ctxt,
XML_SCHEMAP_S4S_ATTR_NOT_ALLOWED,
- &des, type, attr);
+ NULL, type, attr);
}
attr = attr->next;
}
@@ -7115,12 +8048,12 @@ xmlSchemaParseSimpleType(xmlSchemaParserCtxtPtr ctxt, xmlSchemaPtr schema,
(!xmlStrEqual(attr->name, BAD_CAST "final"))) {
xmlSchemaPIllegalAttrErr(ctxt,
XML_SCHEMAP_S4S_ATTR_NOT_ALLOWED,
- &des, type, attr);
+ NULL, type, attr);
}
} else if (xmlStrEqual(attr->ns->href, xmlSchemaNs)) {
xmlSchemaPIllegalAttrErr(ctxt,
XML_SCHEMAP_S4S_ATTR_NOT_ALLOWED,
- &des, type, attr);
+ NULL, type, attr);
}
attr = attr->next;
}
@@ -7139,7 +8072,7 @@ xmlSchemaParseSimpleType(xmlSchemaParserCtxtPtr ctxt, xmlSchemaPtr schema,
xmlSchemaPSimpleTypeErr(ctxt,
XML_SCHEMAP_S4S_ATTR_INVALID_VALUE,
- &des, type, (xmlNodePtr) attr,
+ NULL, type, (xmlNodePtr) attr,
NULL, "(#all | List of (list | union | restriction)",
attrValue, NULL, NULL, NULL);
}
@@ -7159,285 +8092,222 @@ xmlSchemaParseSimpleType(xmlSchemaParserCtxtPtr ctxt, xmlSchemaPtr schema,
type->annot = xmlSchemaParseAnnotation(ctxt, schema, child);
child = child->next;
}
- subtype = NULL;
- if (IS_SCHEMA(child, "restriction")) {
- subtype = (xmlSchemaTypePtr)
- xmlSchemaParseRestriction(ctxt, schema, child);
+ if (child == NULL) {
+ xmlSchemaPContentErr(ctxt, XML_SCHEMAP_S4S_ELEM_MISSING,
+ NULL, type, node, child, NULL,
+ "(annotation?, (restriction | list | union))");
+ } else if (IS_SCHEMA(child, "restriction")) {
+ xmlSchemaParseRestriction(ctxt, schema, child,
+ XML_SCHEMA_TYPE_SIMPLE);
child = child->next;
- } else if (IS_SCHEMA(child, "list")) {
- subtype = (xmlSchemaTypePtr)
- xmlSchemaParseList(ctxt, schema, child);
+ } else if (IS_SCHEMA(child, "list")) {
+ xmlSchemaParseList(ctxt, schema, child);
child = child->next;
- } else if (IS_SCHEMA(child, "union")) {
- subtype = (xmlSchemaTypePtr)
- xmlSchemaParseUnion(ctxt, schema, child);
+ } else if (IS_SCHEMA(child, "union")) {
+ xmlSchemaParseUnion(ctxt, schema, child);
child = child->next;
}
- type->subtypes = subtype;
- if ((child != NULL) || (subtype == NULL)) {
+ if (child != NULL) {
xmlSchemaPContentErr(ctxt, XML_SCHEMAP_S4S_ELEM_NOT_ALLOWED,
- &des, type, node, child, NULL,
+ NULL, type, node, child, NULL,
"(annotation?, (restriction | list | union))");
}
ctxt->parentItem = oldParentItem;
ctxt->ctxtType = oldCtxtType;
- FREE_AND_NULL(des)
return (type);
}
-
/**
- * xmlSchemaParseGroup:
+ * xmlSchemaParseModelGroupDefRef:
* @ctxt: a schema validation context
* @schema: the schema being built
* @node: a subtree containing XML Schema informations
*
- * parse a XML schema Group definition
+ * Parses a XML schema particle (reference to a model group definition).
* *WARNING* this interface is highly subject to change
*
* Returns -1 in case of error, 0 if the declaration is improper and
* 1 in case of success.
*/
-static xmlSchemaTypePtr
-xmlSchemaParseGroup(xmlSchemaParserCtxtPtr ctxt, xmlSchemaPtr schema,
- xmlNodePtr node, int topLevel)
+static xmlSchemaTreeItemPtr
+xmlSchemaParseModelGroupDefRef(xmlSchemaParserCtxtPtr ctxt,
+ xmlSchemaPtr schema,
+ xmlNodePtr node)
{
- xmlSchemaTypePtr item;
+ xmlSchemaParticlePtr item;
xmlNodePtr child = NULL;
xmlAttrPtr attr;
+ const xmlChar *ref = NULL, *refNs = NULL;
+ int min, max;
if ((ctxt == NULL) || (schema == NULL) || (node == NULL))
- return (NULL);
-
- if (topLevel) {
- const xmlChar *name;
- /*
- * Parse as model group definition.
- */
- attr = xmlSchemaGetPropNode(node, "name");
- if (attr == NULL) {
- xmlSchemaPMissingAttrErr(ctxt,
- XML_SCHEMAP_S4S_ATTR_MISSING,
- NULL, NULL, node,
- "name", NULL);
- return (NULL);
- } else if (xmlSchemaPValAttrNode(ctxt,
- NULL, NULL, attr,
- xmlSchemaGetBuiltInType(XML_SCHEMAS_NCNAME), &name) != 0) {
- return (NULL);
- }
- item = xmlSchemaAddGroup(ctxt, schema, name,
- schema->targetNamespace, node);
- if (item == NULL)
- return (NULL);
- item->node = node;
- item->type = XML_SCHEMA_TYPE_GROUP;
- item->flags |= XML_SCHEMAS_TYPE_GLOBAL;
- /*
- * Check for illegal attributes.
- */
- attr = node->properties;
- while (attr != NULL) {
- if (attr->ns == NULL) {
- if ((!xmlStrEqual(attr->name, BAD_CAST "name")) &&
- (!xmlStrEqual(attr->name, BAD_CAST "id"))) {
- xmlSchemaPIllegalAttrErr(ctxt,
- XML_SCHEMAP_S4S_ATTR_NOT_ALLOWED,
- NULL, item, attr);
- }
- } else if (xmlStrEqual(attr->ns->href, xmlSchemaNs)) {
- xmlSchemaPIllegalAttrErr(ctxt,
- XML_SCHEMAP_S4S_ATTR_NOT_ALLOWED,
- NULL, item, attr);
- }
- attr = attr->next;
- }
- xmlSchemaPValAttrID(ctxt, NULL, item, node, BAD_CAST "id");
- /*
- * And now for the children...
- */
- child = node->children;
- if (IS_SCHEMA(child, "annotation")) {
- item->annot = xmlSchemaParseAnnotation(ctxt, schema, child);
- child = child->next;
- }
- if (IS_SCHEMA(child, "all")) {
- item->subtypes = (xmlSchemaTypePtr)
- xmlSchemaParseAll(ctxt, schema, child);
- child = child->next;
- } else if (IS_SCHEMA(child, "choice")) {
- item->subtypes = xmlSchemaParseChoice(ctxt, schema, child);
- child = child->next;
- } else if (IS_SCHEMA(child, "sequence")) {
- item->subtypes = xmlSchemaParseSequence(ctxt, schema, child);
- child = child->next;
- }
- if (child != NULL) {
- xmlSchemaPContentErr(ctxt,
- XML_SCHEMAP_S4S_ELEM_NOT_ALLOWED,
- NULL, item, node, child, NULL,
- "(annotation?, (all | choice | sequence)?)");
- }
- } else {
- const xmlChar *ref = NULL, *refNs = NULL, *refPrefix = NULL;
- int minOccurs, maxOccurs;
- char buf[40];
-
- /*
- * Parse as particle.
- */
- attr = xmlSchemaGetPropNode(node, "ref");
- if (attr == NULL) {
- xmlSchemaPMissingAttrErr(ctxt,
- XML_SCHEMAP_S4S_ATTR_MISSING,
- NULL, NULL, node,
- "ref", NULL);
- return (NULL);
- } else if (xmlSchemaPValAttrNodeQName(ctxt, schema, NULL, NULL,
- attr, &refNs, &refPrefix, &ref) != 0) {
- return (NULL);
- }
+ return (NULL);
- /*
- * TODO: Validate the element even if no item is created
- * (i.e. min/maxOccurs == 0).
- */
- minOccurs = xmlGetMinOccurs(ctxt, node, 0, -1, 1, "nonNegativeInteger");
- maxOccurs = xmlGetMaxOccurs(ctxt, node, 0, UNBOUNDED, 1,
- "(nonNegativeInteger | unbounded)");
- if ((minOccurs == 0) && (maxOccurs == 0)) {
- return (NULL);
- }
-
- snprintf(buf, 39, "#grRef%d", ctxt->counter++ + 1);
- item = xmlSchemaAddGroup(ctxt, schema, (const xmlChar *)buf, NULL, node);
- if (item == NULL)
- return (NULL);
- item->node = node;
- item->type = XML_SCHEMA_TYPE_GROUP;
- item->ref = ref;
- item->refNs = refNs;
- xmlSchemaCheckReference(ctxt, schema, node, item, refNs);
- item->minOccurs = minOccurs;
- item->maxOccurs = maxOccurs;
- xmlSchemaPCheckParticleCorrect_2(ctxt, item,
- node, item->minOccurs, item->maxOccurs);
- /*
- * Check for illegal attributes.
- */
- attr = node->properties;
- while (attr != NULL) {
- if (attr->ns == NULL) {
- if ((!xmlStrEqual(attr->name, BAD_CAST "ref")) &&
- (!xmlStrEqual(attr->name, BAD_CAST "id")) &&
- (!xmlStrEqual(attr->name, BAD_CAST "minOccurs")) &&
- (!xmlStrEqual(attr->name, BAD_CAST "maxOccurs"))) {
- xmlSchemaPIllegalAttrErr(ctxt,
- XML_SCHEMAP_S4S_ATTR_NOT_ALLOWED,
- NULL, item, attr);
- }
- } else if (xmlStrEqual(attr->ns->href, xmlSchemaNs)) {
- xmlSchemaPIllegalAttrErr(ctxt,
- XML_SCHEMAP_S4S_ATTR_NOT_ALLOWED,
- NULL, item, attr);
+ attr = xmlSchemaGetPropNode(node, "ref");
+ if (attr == NULL) {
+ xmlSchemaPMissingAttrErr(ctxt,
+ XML_SCHEMAP_S4S_ATTR_MISSING,
+ NULL, NULL, node,
+ "ref", NULL);
+ return (NULL);
+ } else if (xmlSchemaPValAttrNodeQName(ctxt, schema, NULL, NULL,
+ attr, &refNs, NULL, &ref) != 0) {
+ return (NULL);
+ }
+ min = xmlGetMinOccurs(ctxt, node, 0, -1, 1, "nonNegativeInteger");
+ max = xmlGetMaxOccurs(ctxt, node, 0, UNBOUNDED, 1,
+ "(nonNegativeInteger | unbounded)");
+ /*
+ * Check for illegal attributes.
+ */
+ attr = node->properties;
+ while (attr != NULL) {
+ if (attr->ns == NULL) {
+ if ((!xmlStrEqual(attr->name, BAD_CAST "ref")) &&
+ (!xmlStrEqual(attr->name, BAD_CAST "id")) &&
+ (!xmlStrEqual(attr->name, BAD_CAST "minOccurs")) &&
+ (!xmlStrEqual(attr->name, BAD_CAST "maxOccurs"))) {
+ xmlSchemaPIllegalAttrErr(ctxt,
+ XML_SCHEMAP_S4S_ATTR_NOT_ALLOWED,
+ NULL, NULL, attr);
}
- attr = attr->next;
+ } else if (xmlStrEqual(attr->ns->href, xmlSchemaNs)) {
+ xmlSchemaPIllegalAttrErr(ctxt,
+ XML_SCHEMAP_S4S_ATTR_NOT_ALLOWED,
+ NULL, NULL, attr);
}
- xmlSchemaPValAttrID(ctxt, NULL, item, node, BAD_CAST "id");
+ attr = attr->next;
+ }
+ xmlSchemaPValAttrID(ctxt, NULL, NULL, node, BAD_CAST "id");
+ item = xmlSchemaAddParticle(ctxt, schema, node, min, max);
+ if (item == NULL)
+ return (NULL);
+ /*
+ * Create a reference item as the term; it will be substituted for
+ * the model group after the reference has been resolved.
+ */
+ item->children = (xmlSchemaTreeItemPtr)
+ xmlSchemaNewQNameRef(schema, XML_SCHEMA_TYPE_GROUP, ref, refNs);
+ xmlSchemaCheckReference(ctxt, schema, node, (xmlSchemaBasicItemPtr) item, refNs);
+ xmlSchemaPCheckParticleCorrect_2(ctxt, item, node, min, max);
+ /*
+ * And now for the children...
+ */
+ child = node->children;
+ /* TODO: Is annotation even allowed for a model group reference? */
+ if (IS_SCHEMA(child, "annotation")) {
/*
- * And now for the children...
+ * TODO: What to do exactly with the annotation?
*/
- child = node->children;
- if (IS_SCHEMA(child, "annotation")) {
- item->annot = xmlSchemaParseAnnotation(ctxt, schema, child);
- child = child->next;
- }
- if (child != NULL) {
- xmlSchemaPContentErr(ctxt,
- XML_SCHEMAP_S4S_ELEM_NOT_ALLOWED,
- NULL, item, node, child, NULL,
- "(annotation?, (all | choice | sequence)?)");
- }
+ item->annot = xmlSchemaParseAnnotation(ctxt, schema, child);
+ child = child->next;
}
-
- return (item);
+ if (child != NULL) {
+ xmlSchemaPContentErr(ctxt,
+ XML_SCHEMAP_S4S_ELEM_NOT_ALLOWED,
+ NULL, NULL, node, child, NULL,
+ "(annotation?)");
+ }
+ /*
+ * Corresponds to no component at all if minOccurs==maxOccurs==0.
+ */
+ if ((min == 0) && (max == 0))
+ return (NULL);
+ if (ctxt->assemble != NULL)
+ xmlSchemaAddAssembledItem(ctxt, (xmlSchemaTypePtr) item);
+ return ((xmlSchemaTreeItemPtr) item);
}
/**
- * xmlSchemaParseAll:
+ * xmlSchemaParseModelGroupDefinition:
* @ctxt: a schema validation context
* @schema: the schema being built
* @node: a subtree containing XML Schema informations
*
- * parse a XML schema All definition
+ * Parses a XML schema model group definition.
* *WARNING* this interface is highly subject to change
*
* Returns -1 in case of error, 0 if the declaration is improper and
* 1 in case of success.
*/
-static xmlSchemaTypePtr
-xmlSchemaParseAll(xmlSchemaParserCtxtPtr ctxt, xmlSchemaPtr schema,
- xmlNodePtr node)
+static xmlSchemaModelGroupDefPtr
+xmlSchemaParseModelGroupDefinition(xmlSchemaParserCtxtPtr ctxt,
+ xmlSchemaPtr schema,
+ xmlNodePtr node)
{
- xmlSchemaTypePtr type, subtype, last = NULL;
- xmlNodePtr child = NULL;
- xmlChar name[30];
- const xmlChar *oldcontainer;
+ xmlSchemaModelGroupDefPtr item;
+ xmlNodePtr child = NULL;
+ xmlAttrPtr attr;
+ const xmlChar *name;
if ((ctxt == NULL) || (schema == NULL) || (node == NULL))
- return (NULL);
-
-
- snprintf((char *) name, 30, "#all%d", ctxt->counter++ + 1);
- type = xmlSchemaAddType(ctxt, schema, name, NULL, node);
- if (type == NULL)
- return (NULL);
- type->node = node;
- type->type = XML_SCHEMA_TYPE_ALL;
-
+ return (NULL);
+
+ attr = xmlSchemaGetPropNode(node, "name");
+ if (attr == NULL) {
+ xmlSchemaPMissingAttrErr(ctxt,
+ XML_SCHEMAP_S4S_ATTR_MISSING,
+ NULL, NULL, node,
+ "name", NULL);
+ return (NULL);
+ } else if (xmlSchemaPValAttrNode(ctxt,
+ NULL, NULL, attr,
+ xmlSchemaGetBuiltInType(XML_SCHEMAS_NCNAME), &name) != 0) {
+ return (NULL);
+ }
+ item = xmlSchemaAddGroup(ctxt, schema, name, schema->targetNamespace, node);
+ if (item == NULL)
+ return (NULL);
+ /*
+ * Check for illegal attributes.
+ */
+ attr = node->properties;
+ while (attr != NULL) {
+ if (attr->ns == NULL) {
+ if ((!xmlStrEqual(attr->name, BAD_CAST "name")) &&
+ (!xmlStrEqual(attr->name, BAD_CAST "id"))) {
+ xmlSchemaPIllegalAttrErr(ctxt,
+ XML_SCHEMAP_S4S_ATTR_NOT_ALLOWED,
+ NULL, NULL, attr);
+ }
+ } else if (xmlStrEqual(attr->ns->href, xmlSchemaNs)) {
+ xmlSchemaPIllegalAttrErr(ctxt,
+ XML_SCHEMAP_S4S_ATTR_NOT_ALLOWED,
+ NULL, NULL, attr);
+ }
+ attr = attr->next;
+ }
xmlSchemaPValAttrID(ctxt, NULL, NULL, node, BAD_CAST "id");
-
- type->minOccurs = xmlGetMinOccurs(ctxt, node, 0, 1, 1, "(0 | 1)");
- type->maxOccurs = xmlGetMaxOccurs(ctxt, node, 1, 1, 1, "1");
-
- oldcontainer = ctxt->container;
- ctxt->container = (const xmlChar *) name;
+ /*
+ * And now for the children...
+ */
child = node->children;
if (IS_SCHEMA(child, "annotation")) {
- type->annot = xmlSchemaParseAnnotation(ctxt, schema, child);
- child = child->next;
+ item->annot = xmlSchemaParseAnnotation(ctxt, schema, child);
+ child = child->next;
}
- while (IS_SCHEMA(child, "element")) {
- subtype = (xmlSchemaTypePtr)
- xmlSchemaParseElement(ctxt, schema, child, 0);
- if (subtype != NULL) {
- if (subtype->minOccurs > 1)
- xmlSchemaPErr(ctxt, child, XML_SCHEMAP_INVALID_MINOCCURS,
- "invalid value for minOccurs (must be 0 or 1).\n",
- NULL, NULL);
- if (subtype->maxOccurs > 1)
- xmlSchemaPErr(ctxt, child, XML_SCHEMAP_INVALID_MAXOCCURS,
- "invalid value for maxOccurs (must be 0 or 1).\n",
- NULL, NULL);
- if (last == NULL) {
- type->subtypes = subtype;
- last = subtype;
- } else {
- last->next = subtype;
- last = subtype;
- }
- last->next = NULL;
- }
- child = child->next;
+ if (IS_SCHEMA(child, "all")) {
+ item->children = xmlSchemaParseModelGroup(ctxt, schema, child,
+ XML_SCHEMA_TYPE_ALL, 0);
+ child = child->next;
+ } else if (IS_SCHEMA(child, "choice")) {
+ item->children = xmlSchemaParseModelGroup(ctxt, schema, child,
+ XML_SCHEMA_TYPE_CHOICE, 0);
+ child = child->next;
+ } else if (IS_SCHEMA(child, "sequence")) {
+ item->children = xmlSchemaParseModelGroup(ctxt, schema, child,
+ XML_SCHEMA_TYPE_SEQUENCE, 0);
+ child = child->next;
}
if (child != NULL) {
- xmlSchemaPErr2(ctxt, node, child, XML_SCHEMAP_UNKNOWN_ALL_CHILD,
- "<all> has unexpected content.\n", type->name,
- NULL);
+ xmlSchemaPContentErr(ctxt,
+ XML_SCHEMAP_S4S_ELEM_NOT_ALLOWED,
+ NULL, NULL, node, child, NULL,
+ "(annotation?, (all | choice | sequence)?)");
}
- ctxt->container = oldcontainer;
- return (type);
+
+ return (item);
}
/**
@@ -7740,7 +8610,7 @@ xmlSchemaParseSchemaTopLevel(xmlSchemaParserCtxtPtr ctxt,
xmlSchemaParseAttributeGroup(ctxt, schema, child, 1);
child = child->next;
} else if (IS_SCHEMA(child, "group")) {
- xmlSchemaParseGroup(ctxt, schema, child, 1);
+ xmlSchemaParseModelGroupDefinition(ctxt, schema, child);
child = child->next;
} else if (IS_SCHEMA(child, "notation")) {
xmlSchemaParseNotation(ctxt, schema, child);
@@ -8147,6 +9017,7 @@ xmlSchemaParseImport(xmlSchemaParserCtxtPtr ctxt, xmlSchemaPtr schema,
if (IS_SCHEMA(child, "annotation")) {
/*
* the annotation here is simply discarded ...
+ * TODO: really?
*/
child = child->next;
}
@@ -8315,6 +9186,7 @@ xmlSchemaParseInclude(xmlSchemaParserCtxtPtr ctxt, xmlSchemaPtr schema,
while (IS_SCHEMA(child, "annotation")) {
/*
* the annotations here are simply discarded ...
+ * TODO: really?
*/
child = child->next;
}
@@ -8350,15 +9222,9 @@ xmlSchemaParseInclude(xmlSchemaParserCtxtPtr ctxt, xmlSchemaPtr schema,
*/
if (xmlStrEqual(schema->targetNamespace,
include->targetNamespace)) {
- fprintf(stderr, "already included chameleon '%s', TNS '%s'\n",
- include->schemaLocation,
- include->origTargetNamespace);
goto check_targetNamespace;
}
} else {
- fprintf(stderr, "already included '%s', TNS '%s'\n",
- include->schemaLocation,
- include->origTargetNamespace);
goto check_targetNamespace;
}
}
@@ -8497,6 +9363,17 @@ check_targetNamespace:
*/
include->origTargetNamespace = targetNamespace;
include->targetNamespace = schema->targetNamespace;
+#ifdef DEBUG_INCLUDES
+ if (targetNamespace != schema->targetNamespace)
+ xmlGenericError(xmlGenericErrorContext,
+ "INCLUDING CHAMELEON '%s'\n orig TNS '%s'\n"
+ " into TNS '%s'\n", schemaLocation,
+ targetNamespace, schema->targetNamespace);
+ else
+ xmlGenericError(xmlGenericErrorContext,
+ "INCLUDING '%s'\n orig-TNS '%s'\n", schemaLocation,
+ targetNamespace);
+#endif
/*
* Compile the included schema.
*/
@@ -8526,226 +9403,193 @@ exit_failure:
xmlFreeDoc(doc);
}
return (-1);
-
}
/**
- * xmlSchemaParseChoice:
+ * xmlSchemaParseModelGroup:
* @ctxt: a schema validation context
* @schema: the schema being built
* @node: a subtree containing XML Schema informations
+ * @type: the "compositor" type
+ * @particleNeeded: if a a model group with a particle
*
- * parse a XML schema Choice definition
+ * parse a XML schema Sequence definition
* *WARNING* this interface is highly subject to change
*
* Returns -1 in case of error, 0 if the declaration is improper and
* 1 in case of success.
*/
-static xmlSchemaTypePtr
-xmlSchemaParseChoice(xmlSchemaParserCtxtPtr ctxt, xmlSchemaPtr schema,
- xmlNodePtr node)
+static xmlSchemaTreeItemPtr
+xmlSchemaParseModelGroup(xmlSchemaParserCtxtPtr ctxt, xmlSchemaPtr schema,
+ xmlNodePtr node, xmlSchemaTypeType type,
+ int withParticle)
{
- xmlSchemaTypePtr type, subtype, last = NULL;
+ xmlSchemaModelGroupPtr item;
+ xmlSchemaParticlePtr particle = NULL;
xmlNodePtr child = NULL;
- xmlChar name[30];
xmlAttrPtr attr;
- const xmlChar *oldcontainer;
+ const xmlChar *oldcontainer, *container;
+ int min, max;
if ((ctxt == NULL) || (schema == NULL) || (node == NULL))
- return (NULL);
-
-
- snprintf((char *) name, 30, "#ch%d", ctxt->counter++ + 1);
- type = xmlSchemaAddType(ctxt, schema, name, NULL, node);
- if (type == NULL)
- return (NULL);
- type->node = node;
- type->type = XML_SCHEMA_TYPE_CHOICE;
- /*
- * Check for illegal attributes.
+ return (NULL);
+ /*
+ * Create a model group with the given compositor.
*/
- attr = node->properties;
- while (attr != NULL) {
- if (attr->ns == NULL) {
- if ((!xmlStrEqual(attr->name, BAD_CAST "id")) &&
- (!xmlStrEqual(attr->name, BAD_CAST "maxOccurs")) &&
- (!xmlStrEqual(attr->name, BAD_CAST "minOccurs"))) {
+ item = xmlSchemaAddModelGroup(ctxt, schema, type, &container, node);
+ if (item == NULL)
+ return (NULL);
+
+ if (withParticle) {
+ if (type == XML_SCHEMA_TYPE_ALL) {
+ min = xmlGetMinOccurs(ctxt, node, 0, 1, 1, "(0 | 1)");
+ max = xmlGetMaxOccurs(ctxt, node, 1, 1, 1, "1");
+ } else {
+ /* choice + sequence */
+ min = xmlGetMinOccurs(ctxt, node, 0, -1, 1, "nonNegativeInteger");
+ max = xmlGetMaxOccurs(ctxt, node, 0, UNBOUNDED, 1,
+ "(nonNegativeInteger | unbounded)");
+ }
+ /*
+ * Create a particle
+ */
+ particle = xmlSchemaAddParticle(ctxt, schema, node, min, max);
+ if (particle == NULL)
+ return (NULL);
+ particle->children = (xmlSchemaTreeItemPtr) item;
+ /*
+ * Check for illegal attributes.
+ */
+ attr = node->properties;
+ while (attr != NULL) {
+ if (attr->ns == NULL) {
+ if ((!xmlStrEqual(attr->name, BAD_CAST "id")) &&
+ (!xmlStrEqual(attr->name, BAD_CAST "maxOccurs")) &&
+ (!xmlStrEqual(attr->name, BAD_CAST "minOccurs"))) {
+ xmlSchemaPIllegalAttrErr(ctxt,
+ XML_SCHEMAP_S4S_ATTR_NOT_ALLOWED,
+ NULL, NULL, attr);
+ }
+ } else if (xmlStrEqual(attr->ns->href, xmlSchemaNs)) {
xmlSchemaPIllegalAttrErr(ctxt,
XML_SCHEMAP_S4S_ATTR_NOT_ALLOWED,
- NULL, type, attr);
+ NULL, NULL, attr);
}
- } else if (xmlStrEqual(attr->ns->href, xmlSchemaNs)) {
- xmlSchemaPIllegalAttrErr(ctxt,
- XML_SCHEMAP_S4S_ATTR_NOT_ALLOWED,
- NULL, type, attr);
+ attr = attr->next;
}
- attr = attr->next;
- }
- /*
- * Extract and validate attributes.
- */
- xmlSchemaPValAttrID(ctxt, NULL, NULL, node, BAD_CAST "id");
- type->minOccurs = xmlGetMinOccurs(ctxt, node, 0, -1, 1, "nonNegativeInteger");
- type->maxOccurs = xmlGetMaxOccurs(ctxt, node, 0, UNBOUNDED, 1,
- "(nonNegativeInteger | unbounded)");
- /*
- * And now for the children...
- */
- oldcontainer = ctxt->container;
- ctxt->container = (const xmlChar *) name;
- child = node->children;
- if (IS_SCHEMA(child, "annotation")) {
- type->annot = xmlSchemaParseAnnotation(ctxt, schema, child);
- child = child->next;
- }
- while ((IS_SCHEMA(child, "element")) ||
- (IS_SCHEMA(child, "group")) ||
- (IS_SCHEMA(child, "any")) ||
- (IS_SCHEMA(child, "choice")) ||
- (IS_SCHEMA(child, "sequence"))) {
- subtype = NULL;
- if (IS_SCHEMA(child, "element")) {
- subtype = (xmlSchemaTypePtr)
- xmlSchemaParseElement(ctxt, schema, child, 0);
- } else if (IS_SCHEMA(child, "group")) {
- subtype = xmlSchemaParseGroup(ctxt, schema, child, 0);
- } else if (IS_SCHEMA(child, "any")) {
- subtype = xmlSchemaParseAny(ctxt, schema, child);
- } else if (IS_SCHEMA(child, "sequence")) {
- subtype = xmlSchemaParseSequence(ctxt, schema, child);
- } else if (IS_SCHEMA(child, "choice")) {
- subtype = xmlSchemaParseChoice(ctxt, schema, child);
- }
- if (subtype != NULL) {
- if (last == NULL) {
- type->subtypes = subtype;
- last = subtype;
- } else {
- last->next = subtype;
- last = subtype;
- }
- last->next = NULL;
- }
- child = child->next;
- }
- if (child != NULL) {
- /* TODO: error code. */
- xmlSchemaPContentErr(ctxt,
- XML_SCHEMAP_UNKNOWN_CHOICE_CHILD,
- NULL, type, node, child, NULL,
- "(annotation?, (element | group | choice | sequence | any)*)");
- }
- ctxt->container = oldcontainer;
- return (type);
-}
-
-/**
- * xmlSchemaParseSequence:
- * @ctxt: a schema validation context
- * @schema: the schema being built
- * @node: a subtree containing XML Schema informations
- *
- * parse a XML schema Sequence definition
- * *WARNING* this interface is highly subject to change
- *
- * Returns -1 in case of error, 0 if the declaration is improper and
- * 1 in case of success.
- */
-static xmlSchemaTypePtr
-xmlSchemaParseSequence(xmlSchemaParserCtxtPtr ctxt, xmlSchemaPtr schema,
- xmlNodePtr node)
-{
- xmlSchemaTypePtr type, subtype, last = NULL;
- xmlNodePtr child = NULL;
- xmlChar name[30];
- xmlAttrPtr attr;
- const xmlChar *oldcontainer;
-
- if ((ctxt == NULL) || (schema == NULL) || (node == NULL))
- return (NULL);
-
- oldcontainer = ctxt->container;
- snprintf((char *) name, 30, "#seq%d", ctxt->counter++ + 1);
- type = xmlSchemaAddType(ctxt, schema, name, NULL, node);
- if (type == NULL)
- return (NULL);
- type->node = node;
- type->type = XML_SCHEMA_TYPE_SEQUENCE;
- /*
- * Check for illegal attributes.
- */
- attr = node->properties;
- while (attr != NULL) {
- if (attr->ns == NULL) {
- if ((!xmlStrEqual(attr->name, BAD_CAST "id")) &&
- (!xmlStrEqual(attr->name, BAD_CAST "maxOccurs")) &&
- (!xmlStrEqual(attr->name, BAD_CAST "minOccurs"))) {
+ } else {
+ /*
+ * Check for illegal attributes.
+ */
+ attr = node->properties;
+ while (attr != NULL) {
+ if (attr->ns == NULL) {
+ if (!xmlStrEqual(attr->name, BAD_CAST "id")) {
+ xmlSchemaPIllegalAttrErr(ctxt,
+ XML_SCHEMAP_S4S_ATTR_NOT_ALLOWED,
+ NULL, NULL, attr);
+ }
+ } else if (xmlStrEqual(attr->ns->href, xmlSchemaNs)) {
xmlSchemaPIllegalAttrErr(ctxt,
XML_SCHEMAP_S4S_ATTR_NOT_ALLOWED,
- NULL, type, attr);
+ NULL, NULL, attr);
}
- } else if (xmlStrEqual(attr->ns->href, xmlSchemaNs)) {
- xmlSchemaPIllegalAttrErr(ctxt,
- XML_SCHEMAP_S4S_ATTR_NOT_ALLOWED,
- NULL, type, attr);
+ attr = attr->next;
}
- attr = attr->next;
+
}
+
/*
* Extract and validate attributes.
*/
- xmlSchemaPValAttrID(ctxt, NULL, NULL, node, BAD_CAST "id");
- type->minOccurs = xmlGetMinOccurs(ctxt, node, 0, -1, 1, "nonNegativeInteger");
- type->maxOccurs = xmlGetMaxOccurs(ctxt, node, 0, UNBOUNDED, 1,
- "(nonNegativeInteger | unbounded)");
+ xmlSchemaPValAttrID(ctxt, NULL, NULL, node, BAD_CAST "id");
/*
* And now for the children...
*/
- ctxt->container = (const xmlChar *) name;
child = node->children;
if (IS_SCHEMA(child, "annotation")) {
- type->annot = xmlSchemaParseAnnotation(ctxt, schema, child);
- child = child->next;
- }
- while ((IS_SCHEMA(child, "element")) ||
- (IS_SCHEMA(child, "group")) ||
- (IS_SCHEMA(child, "any")) ||
- (IS_SCHEMA(child, "choice")) ||
- (IS_SCHEMA(child, "sequence"))) {
- subtype = NULL;
- if (IS_SCHEMA(child, "element")) {
- subtype = (xmlSchemaTypePtr)
- xmlSchemaParseElement(ctxt, schema, child, 0);
- } else if (IS_SCHEMA(child, "group")) {
- subtype = xmlSchemaParseGroup(ctxt, schema, child, 0);
- } else if (IS_SCHEMA(child, "any")) {
- subtype = xmlSchemaParseAny(ctxt, schema, child);
- } else if (IS_SCHEMA(child, "choice")) {
- subtype = xmlSchemaParseChoice(ctxt, schema, child);
- } else if (IS_SCHEMA(child, "sequence")) {
- subtype = xmlSchemaParseSequence(ctxt, schema, child);
- }
- if (subtype != NULL) {
- if (last == NULL) {
- type->subtypes = subtype;
- last = subtype;
- } else {
- last->next = subtype;
- last = subtype;
- }
- last->next = NULL;
- }
+ item->annot = xmlSchemaParseAnnotation(ctxt, schema, child);
child = child->next;
}
- if (child != NULL) {
- xmlSchemaPContentErr(ctxt,
- XML_SCHEMAP_UNKNOWN_SEQUENCE_CHILD,
- NULL, type, node, child, NULL,
- "(annotation?, (element | group | choice | sequence | any)*)");
+ oldcontainer = ctxt->container;
+ ctxt->container = container;
+ if (type == XML_SCHEMA_TYPE_ALL) {
+ xmlSchemaParticlePtr part, last = NULL;
+
+ while (IS_SCHEMA(child, "element")) {
+ part = (xmlSchemaParticlePtr) xmlSchemaParseElement(ctxt,
+ schema, child, 0);
+ if (part != NULL) {
+ if (part->minOccurs > 1)
+ xmlSchemaPCustomErr(ctxt, XML_SCHEMAP_INVALID_MINOCCURS,
+ NULL, NULL, child,
+ "Invalid value for minOccurs (must be 0 or 1)", NULL);
+ if (part->maxOccurs > 1)
+ xmlSchemaPCustomErr(ctxt, XML_SCHEMAP_INVALID_MAXOCCURS,
+ NULL, NULL, child,
+ "Invalid value for maxOccurs (must be 0 or 1)",
+ NULL);
+ if (last == NULL)
+ item->children = (xmlSchemaTreeItemPtr) part;
+ else
+ last->next = (xmlSchemaTreeItemPtr) part;
+ last = part;
+ }
+ child = child->next;
+ }
+ if (child != NULL) {
+ xmlSchemaPContentErr(ctxt,
+ XML_SCHEMAP_S4S_ELEM_NOT_ALLOWED,
+ NULL, NULL, node, child, NULL,
+ "(annotation?, (annotation?, element*)");
+ }
+ } else {
+ /* choice + sequence */
+ xmlSchemaTreeItemPtr part = NULL, last = NULL;
+
+ while ((IS_SCHEMA(child, "element")) ||
+ (IS_SCHEMA(child, "group")) ||
+ (IS_SCHEMA(child, "any")) ||
+ (IS_SCHEMA(child, "choice")) ||
+ (IS_SCHEMA(child, "sequence"))) {
+
+ if (IS_SCHEMA(child, "element")) {
+ part = (xmlSchemaTreeItemPtr)
+ xmlSchemaParseElement(ctxt, schema, child, 0);
+ } else if (IS_SCHEMA(child, "group")) {
+ part =
+ xmlSchemaParseModelGroupDefRef(ctxt, schema, child);
+ } else if (IS_SCHEMA(child, "any")) {
+ part = (xmlSchemaTreeItemPtr)
+ xmlSchemaParseAny(ctxt, schema, child);
+ } else if (IS_SCHEMA(child, "choice")) {
+ part = xmlSchemaParseModelGroup(ctxt, schema, child,
+ XML_SCHEMA_TYPE_CHOICE, 1);
+ } else if (IS_SCHEMA(child, "sequence")) {
+ part = xmlSchemaParseModelGroup(ctxt, schema, child,
+ XML_SCHEMA_TYPE_SEQUENCE, 1);
+ }
+ if (part != NULL) {
+ if (last == NULL)
+ item->children = part;
+ else
+ last->next = part;
+ last = part;
+ }
+ child = child->next;
+ }
+ if (child != NULL) {
+ xmlSchemaPContentErr(ctxt,
+ XML_SCHEMAP_S4S_ELEM_NOT_ALLOWED,
+ NULL, NULL, node, child, NULL,
+ "(annotation?, (element | group | choice | sequence | any)*)");
+ }
}
ctxt->container = oldcontainer;
-
- return (type);
+ if (withParticle)
+ return ((xmlSchemaTreeItemPtr) particle);
+ else
+ return ((xmlSchemaTreeItemPtr) item);
}
/**
@@ -8761,25 +9605,26 @@ xmlSchemaParseSequence(xmlSchemaParserCtxtPtr ctxt, xmlSchemaPtr schema,
*/
static xmlSchemaTypePtr
xmlSchemaParseRestriction(xmlSchemaParserCtxtPtr ctxt, xmlSchemaPtr schema,
- xmlNodePtr node)
+ xmlNodePtr node, xmlSchemaTypeType parentType)
{
- xmlSchemaTypePtr type, subtype;
+ xmlSchemaTypePtr type;
xmlNodePtr child = NULL;
- xmlChar name[30];
- const xmlChar *oldcontainer;
+ char buf[30];
+ const xmlChar *oldcontainer, *container;
xmlAttrPtr attr;
if ((ctxt == NULL) || (schema == NULL) || (node == NULL))
return (NULL);
-
- oldcontainer = ctxt->container;
-
- snprintf((char *) name, 30, "#restr%d", ctxt->counter++ + 1);
- type = xmlSchemaAddType(ctxt, schema, name, NULL, node);
- if (type == NULL)
- return (NULL);
- type->type = XML_SCHEMA_TYPE_RESTRICTION;
- type->node = node;
+ /* Not a component, don't create it. */
+ type = ctxt->ctxtType;
+ type->flags |= XML_SCHEMAS_TYPE_DERIVATION_METHOD_RESTRICTION;
+
+ /*
+ * TODO: Is the container needed at all? the anonymous
+ * items inside should generate unique names already.
+ */
+ snprintf(buf, 29, "#restr%d", ctxt->counter++ + 1);
+ container = xmlDictLookup(ctxt->dict, BAD_CAST buf, -1);
/*
* Check for illegal attributes.
*/
@@ -8790,12 +9635,12 @@ xmlSchemaParseRestriction(xmlSchemaParserCtxtPtr ctxt, xmlSchemaPtr schema,
(!xmlStrEqual(attr->name, BAD_CAST "base"))) {
xmlSchemaPIllegalAttrErr(ctxt,
XML_SCHEMAP_S4S_ATTR_NOT_ALLOWED,
- NULL, type, attr);
+ NULL, NULL, attr);
}
} else if (xmlStrEqual(attr->ns->href, xmlSchemaNs)) {
xmlSchemaPIllegalAttrErr(ctxt,
XML_SCHEMAP_S4S_ATTR_NOT_ALLOWED,
- NULL, type, attr);
+ NULL, NULL, attr);
}
attr = attr->next;
}
@@ -8804,48 +9649,36 @@ xmlSchemaParseRestriction(xmlSchemaParserCtxtPtr ctxt, xmlSchemaPtr schema,
*/
xmlSchemaPValAttrID(ctxt, NULL, NULL, node, BAD_CAST "id");
/*
- * Attribute "base".
+ * Attribute "base" - mandatory if inside a complex type.
*/
- type->base = xmlGetQNameProp(ctxt, node, "base", &(type->baseNs));
- if ((type->base == NULL) &&
- (ctxt->ctxtType->type == XML_SCHEMA_TYPE_COMPLEX)) {
- /* TODO: Think about the error code. */
+ if ((xmlSchemaPValAttrQName(ctxt, schema,
+ NULL, NULL, node, "base",
+ &(type->baseNs), NULL,
+ &(type->base)) == 0) &&
+ (type->base == NULL) &&
+ (type->type == XML_SCHEMA_TYPE_COMPLEX)) {
xmlSchemaPMissingAttrErr(ctxt,
- XML_SCHEMAP_RESTRICTION_NONAME_NOREF,
+ XML_SCHEMAP_S4S_ATTR_MISSING,
NULL, type, node, "base", NULL);
- }
+ }
/*
* And now for the children...
- */
- ctxt->container = name;
+ */
child = node->children;
if (IS_SCHEMA(child, "annotation")) {
- type->annot = xmlSchemaParseAnnotation(ctxt, schema, child);
+ /*
+ * Add the annotation to the simple type ancestor.
+ */
+ xmlSchemaAddAnnotation((xmlSchemaAnnotItemPtr) type,
+ xmlSchemaParseAnnotation(ctxt, schema, child));
child = child->next;
}
- subtype = NULL;
- 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) {
+ oldcontainer = ctxt->container;
+ ctxt->container = container;
+ if (parentType == XML_SCHEMA_TYPE_SIMPLE) {
+ /*
+ * Corresponds to <simpleType><restriction><simpleType>.
+ */
if (IS_SCHEMA(child, "simpleType")) {
if (type->base != NULL) {
/*
@@ -8855,30 +9688,111 @@ xmlSchemaParseRestriction(xmlSchemaParserCtxtPtr ctxt, xmlSchemaPtr schema,
*/
xmlSchemaPContentErr(ctxt,
XML_SCHEMAP_SRC_RESTRICTION_BASE_OR_SIMPLETYPE,
- NULL, NULL, type->node, child,
+ NULL, NULL, node, child,
"The attribute 'base' and the <simpleType> child are "
"mutually exclusive", NULL);
} else {
- subtype = (xmlSchemaTypePtr)
+ type->baseType = (xmlSchemaTypePtr)
xmlSchemaParseSimpleType(ctxt, schema, child, 0);
- type->baseType = subtype;
}
child = child->next;
+ } else if (type->base == NULL) {
+ xmlSchemaPContentErr(ctxt,
+ XML_SCHEMAP_SRC_RESTRICTION_BASE_OR_SIMPLETYPE,
+ NULL, NULL, node, child,
+ "Either the attribute 'base' or a <simpleType> child "
+ "must be present", NULL);
+ }
+ } else if (parentType == XML_SCHEMA_TYPE_COMPLEX_CONTENT) {
+ /*
+ * Corresponds to <complexType><complexContent><restriction>...
+ * followed by:
+ *
+ * Model groups <all>, <choice> and <sequence>.
+ */
+ if (IS_SCHEMA(child, "all")) {
+ type->subtypes = (xmlSchemaTypePtr)
+ xmlSchemaParseModelGroup(ctxt, schema, child,
+ XML_SCHEMA_TYPE_ALL, 1);
+ child = child->next;
+ } else if (IS_SCHEMA(child, "choice")) {
+ type->subtypes = (xmlSchemaTypePtr)
+ xmlSchemaParseModelGroup(ctxt,
+ schema, child, XML_SCHEMA_TYPE_CHOICE, 1);
+ child = child->next;
+ } else if (IS_SCHEMA(child, "sequence")) {
+ type->subtypes = (xmlSchemaTypePtr)
+ xmlSchemaParseModelGroup(ctxt, schema, child,
+ XML_SCHEMA_TYPE_SEQUENCE, 1);
+ child = child->next;
+ /*
+ * Model group reference <group>.
+ */
+ } else if (IS_SCHEMA(child, "group")) {
+ type->subtypes = (xmlSchemaTypePtr)
+ xmlSchemaParseModelGroupDefRef(ctxt, schema, child);
+ child = child->next;
}
- } else if (ctxt->parentItem->type == XML_SCHEMA_TYPE_SIMPLE_CONTENT) {
+ } else if (parentType == XML_SCHEMA_TYPE_SIMPLE_CONTENT) {
+ xmlSchemaTypePtr contType, baseType = NULL;
+ /*
+ * Corresponds to <complexType><simpleContent><restriction>...
+ *
+ * SPEC (content type):
+ * "1 If the type definition ·resolved· to by the ·actual value· of
+ * the base [attribute] is a complex type definition whose own
+ * {content type} is a simple type definition and the <restriction>
+ * alternative is chosen, then starting from either" ...
+ *
+ * "1.1 the simple type definition corresponding to the <simpleType>
+ * among the [children] of <restriction> if there is one;"
+ */
if (IS_SCHEMA(child, "simpleType")) {
- subtype = (xmlSchemaTypePtr)
+
+ baseType = (xmlSchemaTypePtr)
xmlSchemaParseSimpleType(ctxt, schema, child, 0);
- type->subtypes = subtype;
+ if (baseType == NULL)
+ return (NULL);
child = child->next;
- }
+ }
+ /*
+ * SPEC
+ * "... a simple type definition which restricts the simple type
+ * definition identified in clause 1.1 or clause 1.2 with a set
+ * of facet components"
+ *
+ * Create the anonymous simple type, which will be the content type
+ * of the complex type.
+ * Note that we will use the same node as for the <restriction> to
+ * have it somehow anchored in the schema doc.
+ */
+ snprintf(buf, 29, "#scST%d", ctxt->counter++ + 1);
+ contType = xmlSchemaAddType(ctxt, schema, (const xmlChar *)buf,
+ container, node);
+ if (contType == NULL)
+ return (NULL);
+ contType->node = node;
+ contType->type = XML_SCHEMA_TYPE_SIMPLE;
+ contType->baseType = baseType;
+ type->contentTypeDef = contType;
}
- if ((ctxt->ctxtType->type == XML_SCHEMA_TYPE_SIMPLE) ||
- (ctxt->parentItem->type == XML_SCHEMA_TYPE_SIMPLE_CONTENT)) {
- xmlSchemaFacetPtr facet, lastfacet = NULL;
+
+ if ((parentType == XML_SCHEMA_TYPE_SIMPLE) ||
+ (parentType == XML_SCHEMA_TYPE_SIMPLE_CONTENT)) {
+ xmlSchemaFacetPtr facet, lastfacet = NULL;
+ xmlSchemaTypePtr facetHolder;
+
+ if (parentType == XML_SCHEMA_TYPE_SIMPLE)
+ facetHolder = type;
+ else
+ facetHolder = type->contentTypeDef;
+ /*
+ * Corresponds to <complexType><simpleContent><restriction>...
+ * <simpleType><restriction>...
+ */
/*
- * Add the facets to the parent simpleType/complexType.
+ * Add the facets to the simple type ancestor.
*/
/*
* TODO: Datatypes: 4.1.3 Constraints on XML Representation of
@@ -8900,7 +9814,7 @@ xmlSchemaParseRestriction(xmlSchemaParserCtxtPtr ctxt, xmlSchemaPtr schema,
facet = xmlSchemaParseFacet(ctxt, schema, child);
if (facet != NULL) {
if (lastfacet == NULL)
- ctxt->ctxtType->facets = facet;
+ facetHolder->facets = facet;
else
lastfacet->next = facet;
lastfacet = facet;
@@ -8911,12 +9825,13 @@ xmlSchemaParseRestriction(xmlSchemaParserCtxtPtr ctxt, xmlSchemaPtr schema,
/*
* Create links for derivation and validation.
*/
- if (lastfacet != NULL) {
+ if (facetHolder->facets != NULL) {
xmlSchemaFacetLinkPtr facetLink, lastFacetLink = NULL;
- facet = ctxt->ctxtType->facets;
+ facet = facetHolder->facets;
do {
- facetLink = (xmlSchemaFacetLinkPtr) xmlMalloc(sizeof(xmlSchemaFacetLink));
+ facetLink = (xmlSchemaFacetLinkPtr)
+ xmlMalloc(sizeof(xmlSchemaFacetLink));
if (facetLink == NULL) {
xmlSchemaPErrMemory(ctxt, "allocating a facet link", NULL);
xmlFree(facetLink);
@@ -8925,7 +9840,7 @@ xmlSchemaParseRestriction(xmlSchemaParserCtxtPtr ctxt, xmlSchemaPtr schema,
facetLink->facet = facet;
facetLink->next = NULL;
if (lastFacetLink == NULL)
- ctxt->ctxtType->facetSet = facetLink;
+ facetHolder->facetSet = facetLink;
else
lastFacetLink->next = facetLink;
lastFacetLink = facetLink;
@@ -8933,25 +9848,31 @@ xmlSchemaParseRestriction(xmlSchemaParserCtxtPtr ctxt, xmlSchemaPtr schema,
} while (facet != NULL);
}
}
- if (ctxt->ctxtType->type == XML_SCHEMA_TYPE_COMPLEX) {
+ if (type->type == XML_SCHEMA_TYPE_COMPLEX) {
+ /*
+ * Attribute uses/declarations.
+ */
child = xmlSchemaParseAttrDecls(ctxt, schema, child, type);
+ /*
+ * Attribute wildcard.
+ */
if (IS_SCHEMA(child, "anyAttribute")) {
- ctxt->ctxtType->attributeWildcard = xmlSchemaParseAnyAttribute(ctxt, schema, child);
+ type->attributeWildcard =
+ xmlSchemaParseAnyAttribute(ctxt, schema, child);
child = child->next;
}
}
if (child != NULL) {
- /* TODO: Think about the error code. */
- if (ctxt->parentItem->type == XML_SCHEMA_TYPE_COMPLEX_CONTENT) {
+ if (parentType == XML_SCHEMA_TYPE_COMPLEX_CONTENT) {
xmlSchemaPContentErr(ctxt,
- XML_SCHEMAP_UNKNOWN_RESTRICTION_CHILD,
- NULL, type, node, child, NULL,
+ XML_SCHEMAP_S4S_ELEM_NOT_ALLOWED,
+ NULL, NULL, node, child, NULL,
"annotation?, (group | all | choice | sequence)?, "
"((attribute | attributeGroup)*, anyAttribute?))");
- } else if (ctxt->parentItem->type == XML_SCHEMA_TYPE_SIMPLE_CONTENT) {
+ } else if (parentType == XML_SCHEMA_TYPE_SIMPLE_CONTENT) {
xmlSchemaPContentErr(ctxt,
- XML_SCHEMAP_UNKNOWN_RESTRICTION_CHILD,
- NULL, type, node, child, NULL,
+ XML_SCHEMAP_S4S_ELEM_NOT_ALLOWED,
+ NULL, NULL, node, child, NULL,
"(annotation?, (simpleType?, (minExclusive | minInclusive | "
"maxExclusive | maxInclusive | totalDigits | fractionDigits | "
"length | minLength | maxLength | enumeration | whiteSpace | "
@@ -8959,8 +9880,8 @@ xmlSchemaParseRestriction(xmlSchemaParserCtxtPtr ctxt, xmlSchemaPtr schema,
} else {
/* Simple type */
xmlSchemaPContentErr(ctxt,
- XML_SCHEMAP_UNKNOWN_RESTRICTION_CHILD,
- NULL, type, node, child, NULL,
+ XML_SCHEMAP_S4S_ELEM_NOT_ALLOWED,
+ NULL, NULL, node, child, NULL,
"(annotation?, (simpleType?, (minExclusive | minInclusive | "
"maxExclusive | maxInclusive | totalDigits | fractionDigits | "
"length | minLength | maxLength | enumeration | whiteSpace | "
@@ -8968,7 +9889,7 @@ xmlSchemaParseRestriction(xmlSchemaParserCtxtPtr ctxt, xmlSchemaPtr schema,
}
}
ctxt->container = oldcontainer;
- return (type);
+ return (NULL);
}
/**
@@ -8977,67 +9898,111 @@ xmlSchemaParseRestriction(xmlSchemaParserCtxtPtr ctxt, xmlSchemaPtr schema,
* @schema: the schema being built
* @node: a subtree containing XML Schema informations
*
- * parse a XML schema Extension definition
- * *WARNING* this interface is highly subject to change
+ * Parses an <extension>, which is found inside a
+ * <simpleContent> or <complexContent>.
+ * *WARNING* this interface is highly subject to change.
*
- * Returns the type definition or NULL in case of error
+ * TODO: Returns the type definition or NULL in case of error
*/
static xmlSchemaTypePtr
xmlSchemaParseExtension(xmlSchemaParserCtxtPtr ctxt, xmlSchemaPtr schema,
- xmlNodePtr node)
+ xmlNodePtr node, xmlSchemaTypeType parentType)
{
- xmlSchemaTypePtr type, subtype;
+ xmlSchemaTypePtr type;
xmlNodePtr child = NULL;
- xmlChar name[30];
- const xmlChar *oldcontainer;
+ char buf[30];
+ const xmlChar *oldcontainer, *container;
+ xmlAttrPtr attr;
if ((ctxt == NULL) || (schema == NULL) || (node == NULL))
return (NULL);
+ /* Not a component, don't create it. */
+ type = ctxt->ctxtType;
+ type->flags |= XML_SCHEMAS_TYPE_DERIVATION_METHOD_EXTENSION;
- oldcontainer = ctxt->container;
-
- snprintf((char *) name, 30, "#ext%d", ctxt->counter++ + 1);
- type = xmlSchemaAddType(ctxt, schema, name, NULL, node);
- if (type == NULL)
- return (NULL);
- type->type = XML_SCHEMA_TYPE_EXTENSION;
- type->node = node;
+ snprintf(buf, 29, "#ext%d", ctxt->counter++ + 1);
+ container = xmlDictLookup(ctxt->dict, BAD_CAST buf, -1);
+ /*
+ * Check for illegal attributes.
+ */
+ attr = node->properties;
+ while (attr != NULL) {
+ if (attr->ns == NULL) {
+ if ((!xmlStrEqual(attr->name, BAD_CAST "id")) &&
+ (!xmlStrEqual(attr->name, BAD_CAST "base"))) {
+ xmlSchemaPIllegalAttrErr(ctxt,
+ XML_SCHEMAP_S4S_ATTR_NOT_ALLOWED,
+ NULL, NULL, attr);
+ }
+ } else if (xmlStrEqual(attr->ns->href, xmlSchemaNs)) {
+ xmlSchemaPIllegalAttrErr(ctxt,
+ XML_SCHEMAP_S4S_ATTR_NOT_ALLOWED,
+ NULL, NULL, attr);
+ }
+ attr = attr->next;
+ }
xmlSchemaPValAttrID(ctxt, NULL, NULL, node, BAD_CAST "id");
-
- ctxt->container = name;
-
- type->base = xmlGetQNameProp(ctxt, node, "base", &(type->baseNs));
- if (type->base == NULL) {
- xmlSchemaPErr2(ctxt, node, child, XML_SCHEMAP_EXTENSION_NO_BASE,
- "<extension>: The attribute \"base\" is missing.\n",
- type->name, NULL);
- }
+
+ /*
+ * Attribute "base" - mandatory.
+ */
+ if ((xmlSchemaPValAttrQName(ctxt, schema,
+ NULL, NULL, node, "base", &(type->baseNs), NULL,
+ &(type->base)) == 0) && (type->base == NULL)) {
+ xmlSchemaPMissingAttrErr(ctxt,
+ XML_SCHEMAP_S4S_ATTR_MISSING,
+ NULL, NULL, node, "base", NULL);
+ }
+ /*
+ * And now for the children...
+ */
child = node->children;
if (IS_SCHEMA(child, "annotation")) {
- type->annot = xmlSchemaParseAnnotation(ctxt, schema, child);
+ /*
+ * Add the annotation to the type ancestor.
+ */
+ xmlSchemaAddAnnotation((xmlSchemaAnnotItemPtr) type,
+ xmlSchemaParseAnnotation(ctxt, schema, child));
child = child->next;
}
- subtype = NULL;
-
- if (IS_SCHEMA(child, "all")) {
- subtype = xmlSchemaParseAll(ctxt, schema, child);
- child = child->next;
- } else if (IS_SCHEMA(child, "choice")) {
- subtype = xmlSchemaParseChoice(ctxt, schema, child);
- child = child->next;
- } else if (IS_SCHEMA(child, "sequence")) {
- subtype = xmlSchemaParseSequence(ctxt, schema, child);
- child = child->next;
- } else if (IS_SCHEMA(child, "group")) {
- subtype = xmlSchemaParseGroup(ctxt, schema, child, 0);
- child = child->next;
+ oldcontainer = ctxt->container;
+ ctxt->container = container;
+ if (parentType == XML_SCHEMA_TYPE_COMPLEX_CONTENT) {
+ /*
+ * Corresponds to <complexType><complexContent><extension>... and:
+ *
+ * Model groups <all>, <choice>, <sequence> and <group>.
+ */
+ if (IS_SCHEMA(child, "all")) {
+ type->subtypes = (xmlSchemaTypePtr)
+ xmlSchemaParseModelGroup(ctxt, schema,
+ child, XML_SCHEMA_TYPE_ALL, 1);
+ child = child->next;
+ } else if (IS_SCHEMA(child, "choice")) {
+ type->subtypes = (xmlSchemaTypePtr)
+ xmlSchemaParseModelGroup(ctxt, schema,
+ child, XML_SCHEMA_TYPE_CHOICE, 1);
+ child = child->next;
+ } else if (IS_SCHEMA(child, "sequence")) {
+ type->subtypes = (xmlSchemaTypePtr)
+ xmlSchemaParseModelGroup(ctxt, schema,
+ child, XML_SCHEMA_TYPE_SEQUENCE, 1);
+ child = child->next;
+ } else if (IS_SCHEMA(child, "group")) {
+ type->subtypes = (xmlSchemaTypePtr)
+ xmlSchemaParseModelGroupDefRef(ctxt, schema, child);
+ child = child->next;
+ }
}
- if (subtype != NULL)
- type->subtypes = subtype;
- if ((ctxt->ctxtType != NULL) &&
- (ctxt->ctxtType->type == XML_SCHEMA_TYPE_COMPLEX)) {
+ if (child != NULL) {
+ /*
+ * Attribute uses/declarations.
+ */
child = xmlSchemaParseAttrDecls(ctxt, schema, child, type);
+ /*
+ * Attribute wildcard.
+ */
if (IS_SCHEMA(child, "anyAttribute")) {
ctxt->ctxtType->attributeWildcard =
xmlSchemaParseAnyAttribute(ctxt, schema, child);
@@ -9045,13 +10010,24 @@ xmlSchemaParseExtension(xmlSchemaParserCtxtPtr ctxt, xmlSchemaPtr schema,
}
}
if (child != NULL) {
- xmlSchemaPErr2(ctxt, node, child,
- XML_SCHEMAP_UNKNOWN_EXTENSION_CHILD,
- "<extension> has unexpected content.\n", type->name,
- NULL);
+ if (parentType == XML_SCHEMA_TYPE_COMPLEX_CONTENT) {
+ /* Complex content extension. */
+ xmlSchemaPContentErr(ctxt,
+ XML_SCHEMAP_S4S_ELEM_NOT_ALLOWED,
+ NULL, NULL, node, child, NULL,
+ "(annotation?, ((group | all | choice | sequence)?, "
+ "((attribute | attributeGroup)*, anyAttribute?)))");
+ } else {
+ /* Simple content extension. */
+ xmlSchemaPContentErr(ctxt,
+ XML_SCHEMAP_S4S_ELEM_NOT_ALLOWED,
+ NULL, NULL, node, child, NULL,
+ "(annotation?, ((attribute | attributeGroup)*, "
+ "anyAttribute?))");
+ }
}
ctxt->container = oldcontainer;
- return (type);
+ return (NULL);
}
/**
@@ -9065,52 +10041,68 @@ xmlSchemaParseExtension(xmlSchemaParserCtxtPtr ctxt, xmlSchemaPtr schema,
*
* Returns the type definition or NULL in case of error
*/
-static xmlSchemaTypePtr
+static int
xmlSchemaParseSimpleContent(xmlSchemaParserCtxtPtr ctxt,
xmlSchemaPtr schema, xmlNodePtr node)
{
- xmlSchemaTypePtr type, subtype, oldParentItem;
+ xmlSchemaTypePtr type;
xmlNodePtr child = NULL;
- xmlChar name[30];
+ xmlAttrPtr attr;
if ((ctxt == NULL) || (schema == NULL) || (node == NULL))
- return (NULL);
-
- snprintf((char *) name, 30, "#SC%d", ctxt->counter++ + 1);
- type = xmlSchemaAddType(ctxt, schema, name, NULL, node);
- if (type == NULL)
- return (NULL);
- type->type = XML_SCHEMA_TYPE_SIMPLE_CONTENT;
- type->node = node;
+ return (-1);
+ /* Not a component, don't create it. */
+ type = ctxt->ctxtType;
+ type->contentType = XML_SCHEMA_CONTENT_SIMPLE;
+ /*
+ * Check for illegal attributes.
+ */
+ attr = node->properties;
+ while (attr != NULL) {
+ if (attr->ns == NULL) {
+ if ((!xmlStrEqual(attr->name, BAD_CAST "id"))) {
+ xmlSchemaPIllegalAttrErr(ctxt,
+ XML_SCHEMAP_S4S_ATTR_NOT_ALLOWED,
+ NULL, NULL, attr);
+ }
+ } else if (xmlStrEqual(attr->ns->href, xmlSchemaNs)) {
+ xmlSchemaPIllegalAttrErr(ctxt,
+ XML_SCHEMAP_S4S_ATTR_NOT_ALLOWED,
+ NULL, NULL, attr);
+ }
+ attr = attr->next;
+ }
xmlSchemaPValAttrID(ctxt, NULL, NULL, node, BAD_CAST "id");
+ /*
+ * And now for the children...
+ */
child = node->children;
if (IS_SCHEMA(child, "annotation")) {
- type->annot = xmlSchemaParseAnnotation(ctxt, schema, child);
+ /*
+ * Add the annotation to the complex type ancestor.
+ */
+ xmlSchemaAddAnnotation((xmlSchemaAnnotItemPtr) type,
+ xmlSchemaParseAnnotation(ctxt, schema, child));
child = child->next;
}
- oldParentItem = ctxt->parentItem;
- ctxt->parentItem = type;
- subtype = NULL;
if (IS_SCHEMA(child, "restriction")) {
- subtype = (xmlSchemaTypePtr)
- xmlSchemaParseRestriction(ctxt, schema, child);
+ xmlSchemaParseRestriction(ctxt, schema, child,
+ XML_SCHEMA_TYPE_SIMPLE_CONTENT);
child = child->next;
} else if (IS_SCHEMA(child, "extension")) {
- subtype = (xmlSchemaTypePtr)
- xmlSchemaParseExtension(ctxt, schema, child);
+ xmlSchemaParseExtension(ctxt, schema, child,
+ XML_SCHEMA_TYPE_SIMPLE_CONTENT);
child = child->next;
}
- type->subtypes = subtype;
- if (child != NULL) {
- xmlSchemaPErr2(ctxt, node, child,
- XML_SCHEMAP_UNKNOWN_SIMPLECONTENT_CHILD,
- "<simpleContent> has unexpected content.\n",
- NULL, NULL);
+ if (child != NULL) {
+ xmlSchemaPContentErr(ctxt,
+ XML_SCHEMAP_S4S_ELEM_NOT_ALLOWED,
+ NULL, NULL, node, child, NULL,
+ "(annotation?, (restriction | extension))");
}
- ctxt->parentItem = oldParentItem;
- return (type);
+ return (0);
}
/**
@@ -9124,24 +10116,18 @@ xmlSchemaParseSimpleContent(xmlSchemaParserCtxtPtr ctxt,
*
* Returns the type definition or NULL in case of error
*/
-static xmlSchemaTypePtr
+static int
xmlSchemaParseComplexContent(xmlSchemaParserCtxtPtr ctxt,
xmlSchemaPtr schema, xmlNodePtr node)
{
- xmlSchemaTypePtr type, subtype, oldParentItem;
+ xmlSchemaTypePtr type;
xmlNodePtr child = NULL;
- xmlChar name[30];
xmlAttrPtr attr;
if ((ctxt == NULL) || (schema == NULL) || (node == NULL))
- return (NULL);
-
- snprintf((char *) name, 30, "#CC%d", ctxt->counter++ + 1);
- type = xmlSchemaAddType(ctxt, schema, name, NULL, node);
- if (type == NULL)
- return (NULL);
- type->type = XML_SCHEMA_TYPE_COMPLEX_CONTENT;
- type->node = node;
+ return (-1);
+ /* Not a component, don't create it. */
+ type = ctxt->ctxtType;
/*
* Check for illegal attributes.
*/
@@ -9166,38 +10152,37 @@ xmlSchemaParseComplexContent(xmlSchemaParserCtxtPtr ctxt,
xmlSchemaPValAttrID(ctxt, NULL, NULL, node, BAD_CAST "id");
/*
- * Handle attribute 'mixed'.
+ * Set the 'mixed' on the complex type ancestor.
*/
- if (xmlGetBooleanProp(ctxt, NULL, type, node, "mixed", 0)) {
- if ((ctxt->ctxtType->flags & XML_SCHEMAS_TYPE_MIXED) == 0)
- ctxt->ctxtType->flags |= XML_SCHEMAS_TYPE_MIXED;
+ if (xmlGetBooleanProp(ctxt, NULL, NULL, node, "mixed", 0)) {
+ if ((type->flags & XML_SCHEMAS_TYPE_MIXED) == 0)
+ type->flags |= XML_SCHEMAS_TYPE_MIXED;
}
child = node->children;
if (IS_SCHEMA(child, "annotation")) {
- type->annot = xmlSchemaParseAnnotation(ctxt, schema, child);
+ /*
+ * Add the annotation to the complex type ancestor.
+ */
+ xmlSchemaAddAnnotation((xmlSchemaAnnotItemPtr) type,
+ xmlSchemaParseAnnotation(ctxt, schema, child));
child = child->next;
}
- oldParentItem = ctxt->parentItem;
- ctxt->parentItem = type;
- subtype = NULL;
- if (IS_SCHEMA(child, "restriction")) {
- subtype = (xmlSchemaTypePtr)
- xmlSchemaParseRestriction(ctxt, schema, child);
+ if (IS_SCHEMA(child, "restriction")) {
+ xmlSchemaParseRestriction(ctxt, schema, child,
+ XML_SCHEMA_TYPE_COMPLEX_CONTENT);
child = child->next;
} else if (IS_SCHEMA(child, "extension")) {
- subtype = (xmlSchemaTypePtr)
- xmlSchemaParseExtension(ctxt, schema, child);
+ xmlSchemaParseExtension(ctxt, schema, child,
+ XML_SCHEMA_TYPE_COMPLEX_CONTENT);
child = child->next;
}
- type->subtypes = subtype;
if (child != NULL) {
xmlSchemaPContentErr(ctxt,
XML_SCHEMAP_S4S_ELEM_NOT_ALLOWED,
NULL, NULL, node, child,
NULL, "(annotation?, (restriction | extension))");
}
- ctxt->parentItem = oldParentItem;
- return (type);
+ return (0);
}
/**
@@ -9215,10 +10200,9 @@ static xmlSchemaTypePtr
xmlSchemaParseComplexType(xmlSchemaParserCtxtPtr ctxt, xmlSchemaPtr schema,
xmlNodePtr node, int topLevel)
{
- xmlSchemaTypePtr type, subtype, ctxtType;
+ xmlSchemaTypePtr type, ctxtType;
xmlNodePtr child = NULL;
- const xmlChar *name = NULL;
- const xmlChar *oldcontainer;
+ const xmlChar *oldcontainer, *name = NULL;
xmlAttrPtr attr;
const xmlChar *attrValue;
xmlChar *des = NULL; /* The reported designation. */
@@ -9253,7 +10237,7 @@ xmlSchemaParseComplexType(xmlSchemaParserCtxtPtr ctxt, xmlSchemaPtr schema,
type = xmlSchemaAddType(ctxt, schema, (const xmlChar *)buf, NULL, node);
if (type == NULL)
return (NULL);
- name = (const xmlChar *) buf;
+ name = type->name;
type->node = node;
type->type = XML_SCHEMA_TYPE_COMPLEX;
/*
@@ -9362,13 +10346,7 @@ xmlSchemaParseComplexType(xmlSchemaParserCtxtPtr ctxt, xmlSchemaPtr schema,
&des, type, attr);
}
attr = attr->next;
- }
- /*
- * Set as default for attribute wildcards.
- * This will be only changed if a complex type
- * inherits an attribute wildcard from a base type.
- */
- type->flags |= XML_SCHEMAS_TYPE_OWNED_ATTR_WILDCARD;
+ }
/*
* And now for the children...
*/
@@ -9388,31 +10366,45 @@ xmlSchemaParseComplexType(xmlSchemaParserCtxtPtr ctxt, xmlSchemaPtr schema,
*/
if (type->flags & XML_SCHEMAS_TYPE_MIXED)
type->flags ^= XML_SCHEMAS_TYPE_MIXED;
- type->subtypes = xmlSchemaParseSimpleContent(ctxt, schema, child);
+ xmlSchemaParseSimpleContent(ctxt, schema, child);
child = child->next;
} else if (IS_SCHEMA(child, "complexContent")) {
- type->subtypes = xmlSchemaParseComplexContent(ctxt, schema, child);
+ type->contentType = XML_SCHEMA_CONTENT_EMPTY;
+ xmlSchemaParseComplexContent(ctxt, schema, child);
child = child->next;
} else {
- subtype = NULL;
+ /*
+ * SPEC
+ * "...the third alternative (neither <simpleContent> nor
+ * <complexContent>) is chosen. 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.
+ */
+ type->baseType = xmlSchemaGetBuiltInType(XML_SCHEMAS_ANYTYPE);
+ type->flags |= XML_SCHEMAS_TYPE_DERIVATION_METHOD_RESTRICTION;
/*
* Parse model groups.
*/
if (IS_SCHEMA(child, "all")) {
- subtype = xmlSchemaParseAll(ctxt, schema, child);
+ type->subtypes = (xmlSchemaTypePtr)
+ xmlSchemaParseModelGroup(ctxt, schema, child,
+ XML_SCHEMA_TYPE_ALL, 1);
child = child->next;
} else if (IS_SCHEMA(child, "choice")) {
- subtype = xmlSchemaParseChoice(ctxt, schema, child);
+ type->subtypes = (xmlSchemaTypePtr)
+ xmlSchemaParseModelGroup(ctxt, schema, child,
+ XML_SCHEMA_TYPE_CHOICE, 1);
child = child->next;
} else if (IS_SCHEMA(child, "sequence")) {
- subtype = xmlSchemaParseSequence(ctxt, schema, child);
+ type->subtypes = (xmlSchemaTypePtr)
+ xmlSchemaParseModelGroup(ctxt, schema, child,
+ XML_SCHEMA_TYPE_SEQUENCE, 1);
child = child->next;
} else if (IS_SCHEMA(child, "group")) {
- subtype = xmlSchemaParseGroup(ctxt, schema, child, 0);
+ type->subtypes = (xmlSchemaTypePtr)
+ xmlSchemaParseModelGroupDefRef(ctxt, schema, child);
child = child->next;
}
- if (subtype != NULL)
- type->subtypes = subtype;
/*
* Parse attribute decls/refs.
*/
@@ -9775,42 +10767,44 @@ xmlSchemaFreeParserCtxt(xmlSchemaParserCtxtPtr ctxt)
/**
* xmlSchemaBuildAContentModel:
- * @type: the schema type definition
* @ctxt: the schema parser context
- * @name: the element name whose content is being built
+ * @particle: the particle component
+ * @name: the complex type's name whose content is being built
*
* Generate the automata sequence needed for that type
*/
static void
-xmlSchemaBuildAContentModel(xmlSchemaTypePtr type,
- xmlSchemaParserCtxtPtr ctxt,
+xmlSchemaBuildAContentModel(xmlSchemaParserCtxtPtr ctxt,
+ xmlSchemaParticlePtr particle,
const xmlChar * name)
{
- if (type == NULL) {
- xmlGenericError(xmlGenericErrorContext,
- "Found unexpected type = NULL in %s content model\n",
- name);
- return;
+ if (particle == NULL) {
+ xmlSchemaPErr(ctxt, NULL,
+ XML_SCHEMAP_INTERNAL,
+ "Internal error: xmlSchemaBuildAContentModel, "
+ "particle is NULL.\n", NULL, NULL);
+ return;
}
- switch (type->type) {
- case XML_SCHEMA_TYPE_ANY: {
+ if (particle->children == NULL) {
+ xmlSchemaPErr(ctxt, GET_NODE(particle),
+ XML_SCHEMAP_INTERNAL,
+ "Internal error: xmlSchemaBuildAContentModel, "
+ "no term on particle.\n", NULL, NULL);
+ return;
+ }
+
+ switch (particle->children->type) {
+ case XML_SCHEMA_TYPE_ANY: {
xmlAutomataStatePtr start, end;
xmlSchemaWildcardPtr wild;
xmlSchemaWildcardNsPtr ns;
- wild = type->attributeWildcard;
-
- if (wild == NULL) {
- xmlSchemaPErr(ctxt, type->node, XML_SCHEMAP_INTERNAL,
- "Internal error: xmlSchemaBuildAContentModel, "
- "no wildcard on xsd:any.\n", NULL, NULL);
- return;
- }
+ wild = (xmlSchemaWildcardPtr) particle->children;
start = ctxt->state;
end = xmlAutomataNewState(ctxt->am);
- if (type->maxOccurs == 1) {
+ if (particle->maxOccurs == 1) {
if (wild->any == 1) {
/*
* We need to add both transitions:
@@ -9819,14 +10813,14 @@ xmlSchemaBuildAContentModel(xmlSchemaTypePtr type,
*/
ctxt->state =
xmlAutomataNewTransition2(ctxt->am,
- start, NULL, BAD_CAST "*", BAD_CAST "*", type);
+ start, NULL, BAD_CAST "*", BAD_CAST "*", wild);
xmlAutomataNewEpsilon(ctxt->am, ctxt->state, end);
/*
* 2. the {"*"} for elements in no namespace.
*/
ctxt->state =
xmlAutomataNewTransition2(ctxt->am,
- start, NULL, BAD_CAST "*", NULL, type);
+ start, NULL, BAD_CAST "*", NULL, wild);
xmlAutomataNewEpsilon(ctxt->am, ctxt->state, end);
} else if (wild->nsSet != NULL) {
@@ -9834,7 +10828,7 @@ xmlSchemaBuildAContentModel(xmlSchemaTypePtr type,
do {
ctxt->state = start;
ctxt->state = xmlAutomataNewTransition2(ctxt->am,
- ctxt->state, NULL, BAD_CAST "*", ns->value, type);
+ ctxt->state, NULL, BAD_CAST "*", ns->value, wild);
xmlAutomataNewEpsilon(ctxt->am, ctxt->state, end);
ns = ns->next;
} while (ns != NULL);
@@ -9844,36 +10838,36 @@ xmlSchemaBuildAContentModel(xmlSchemaTypePtr type,
deadEnd = xmlAutomataNewState(ctxt->am);
ctxt->state = xmlAutomataNewTransition2(ctxt->am,
- start, deadEnd, BAD_CAST "*", wild->negNsSet->value, type);
+ start, deadEnd, BAD_CAST "*", wild->negNsSet->value, wild);
ctxt->state = xmlAutomataNewTransition2(ctxt->am,
- start, NULL, BAD_CAST "*", BAD_CAST "*", type);
+ start, NULL, BAD_CAST "*", BAD_CAST "*", wild);
xmlAutomataNewEpsilon(ctxt->am, ctxt->state, end);
}
} else {
int counter;
xmlAutomataStatePtr hop;
int maxOccurs =
- type->maxOccurs == UNBOUNDED ? UNBOUNDED : type->maxOccurs - 1;
+ particle->maxOccurs == UNBOUNDED ? UNBOUNDED : particle->maxOccurs - 1;
int minOccurs =
- type->minOccurs < 1 ? 0 : type->minOccurs - 1;
+ particle->minOccurs < 1 ? 0 : particle->minOccurs - 1;
counter = xmlAutomataNewCounter(ctxt->am, minOccurs, maxOccurs);
hop = xmlAutomataNewState(ctxt->am);
if (wild->any == 1) {
ctxt->state =
xmlAutomataNewTransition2(ctxt->am,
- start, NULL, BAD_CAST "*", BAD_CAST "*", type);
+ start, NULL, BAD_CAST "*", BAD_CAST "*", wild);
xmlAutomataNewEpsilon(ctxt->am, ctxt->state, hop);
ctxt->state =
xmlAutomataNewTransition2(ctxt->am,
- start, NULL, BAD_CAST "*", NULL, type);
+ start, NULL, BAD_CAST "*", NULL, wild);
xmlAutomataNewEpsilon(ctxt->am, ctxt->state, hop);
} else if (wild->nsSet != NULL) {
ns = wild->nsSet;
do {
ctxt->state =
xmlAutomataNewTransition2(ctxt->am,
- start, NULL, BAD_CAST "*", ns->value, type);
+ start, NULL, BAD_CAST "*", ns->value, wild);
xmlAutomataNewEpsilon(ctxt->am, ctxt->state, hop);
ns = ns->next;
} while (ns != NULL);
@@ -9883,15 +10877,15 @@ xmlSchemaBuildAContentModel(xmlSchemaTypePtr type,
deadEnd = xmlAutomataNewState(ctxt->am);
ctxt->state = xmlAutomataNewTransition2(ctxt->am,
- start, deadEnd, BAD_CAST "*", wild->negNsSet->value, type);
+ start, deadEnd, BAD_CAST "*", wild->negNsSet->value, wild);
ctxt->state = xmlAutomataNewTransition2(ctxt->am,
- start, NULL, BAD_CAST "*", BAD_CAST "*", type);
+ start, NULL, BAD_CAST "*", BAD_CAST "*", wild);
xmlAutomataNewEpsilon(ctxt->am, ctxt->state, hop);
}
xmlAutomataNewCountedTrans(ctxt->am, hop, start, counter);
xmlAutomataNewCounterTrans(ctxt->am, hop, end, counter);
}
- if (type->minOccurs == 0) {
+ if (particle->minOccurs == 0) {
xmlAutomataNewEpsilon(ctxt->am, start, end);
}
ctxt->state = end;
@@ -9899,35 +10893,10 @@ xmlSchemaBuildAContentModel(xmlSchemaTypePtr type,
}
case XML_SCHEMA_TYPE_ELEMENT:{
xmlAutomataStatePtr oldstate;
- xmlSchemaElementPtr particle, elemDecl;
+ xmlSchemaElementPtr elemDecl;
+
+ elemDecl = (xmlSchemaElementPtr) particle->children;
- /*
- * IMPORTANT: This puts element declarations
- * (and never element decl. references) into the
- * automaton. This is crucial and should not be changed,
- * since validating functions rely now on it.
- */
- particle = (xmlSchemaElementPtr) type;
- if (particle->ref != NULL) {
- if (particle->refDecl == NULL) {
- /*
- * Skip content model creation if the reference
- * did not resolve to a declaration.
- */
- break;
- } else {
- /*
- * Referenced global element declaration.
- */
- elemDecl = particle->refDecl;
- }
- } else {
- /*
- * Anonymous element declaration.
- */
- elemDecl = particle;
- }
-
oldstate = ctxt->state;
if (particle->maxOccurs >= UNBOUNDED) {
@@ -10011,41 +10980,39 @@ xmlSchemaBuildAContentModel(xmlSchemaTypePtr type,
break;
}
case XML_SCHEMA_TYPE_SEQUENCE:{
- xmlSchemaTypePtr subtypes;
+ xmlSchemaTreeItemPtr sub;
/*
* If max and min occurances are default (1) then
- * simply iterate over the subtypes
+ * simply iterate over the particles of the <sequence>.
*/
- if ((type->minOccurs == 1) && (type->maxOccurs == 1)) {
- subtypes = type->subtypes;
- while (subtypes != NULL) {
- xmlSchemaBuildAContentModel(subtypes, ctxt, name);
- subtypes = subtypes->next;
+ if ((particle->minOccurs == 1) && (particle->maxOccurs == 1)) {
+ sub = particle->children->children;
+ while (sub != NULL) {
+ xmlSchemaBuildAContentModel(ctxt,
+ (xmlSchemaParticlePtr) sub, name);
+ sub = sub->next;
}
} else {
xmlAutomataStatePtr oldstate = ctxt->state;
- if (type->maxOccurs >= UNBOUNDED) {
- if (type->minOccurs > 1) {
+ if (particle->maxOccurs >= UNBOUNDED) {
+ if (particle->minOccurs > 1) {
xmlAutomataStatePtr tmp;
int counter;
ctxt->state = xmlAutomataNewEpsilon(ctxt->am,
- oldstate,
- NULL);
+ oldstate, NULL);
oldstate = ctxt->state;
counter = xmlAutomataNewCounter(ctxt->am,
- type->
- minOccurs - 1,
- UNBOUNDED);
-
- subtypes = type->subtypes;
- while (subtypes != NULL) {
- xmlSchemaBuildAContentModel(subtypes, ctxt,
- name);
- subtypes = subtypes->next;
+ particle->minOccurs - 1, UNBOUNDED);
+
+ sub = particle->children->children;
+ while (sub != NULL) {
+ xmlSchemaBuildAContentModel(ctxt,
+ (xmlSchemaParticlePtr) sub, name);
+ sub = sub->next;
}
tmp = ctxt->state;
xmlAutomataNewCountedTrans(ctxt->am, tmp,
@@ -10055,60 +11022,56 @@ xmlSchemaBuildAContentModel(xmlSchemaTypePtr type,
NULL, counter);
} else {
- subtypes = type->subtypes;
- while (subtypes != NULL) {
- xmlSchemaBuildAContentModel(subtypes, ctxt,
- name);
- subtypes = subtypes->next;
+ sub = particle->children->children;
+ while (sub != NULL) {
+ xmlSchemaBuildAContentModel(ctxt,
+ (xmlSchemaParticlePtr) sub, name);
+ sub = sub->next;
}
xmlAutomataNewEpsilon(ctxt->am, ctxt->state,
oldstate);
- if (type->minOccurs == 0) {
- xmlAutomataNewEpsilon(ctxt->am, oldstate,
- ctxt->state);
+ if (particle->minOccurs == 0) {
+ xmlAutomataNewEpsilon(ctxt->am,
+ oldstate, ctxt->state);
}
}
- } else if ((type->maxOccurs > 1)
- || (type->minOccurs > 1)) {
+ } else if ((particle->maxOccurs > 1)
+ || (particle->minOccurs > 1)) {
xmlAutomataStatePtr tmp;
int counter;
ctxt->state = xmlAutomataNewEpsilon(ctxt->am,
- oldstate,
- NULL);
+ oldstate, NULL);
oldstate = ctxt->state;
counter = xmlAutomataNewCounter(ctxt->am,
- type->minOccurs -
- 1,
- type->maxOccurs -
- 1);
-
- subtypes = type->subtypes;
- while (subtypes != NULL) {
- xmlSchemaBuildAContentModel(subtypes, ctxt,
- name);
- subtypes = subtypes->next;
+ particle->minOccurs - 1,
+ particle->maxOccurs - 1);
+
+ sub = particle->children->children;
+ while (sub != NULL) {
+ xmlSchemaBuildAContentModel(ctxt,
+ (xmlSchemaParticlePtr) sub, name);
+ sub = sub->next;
}
tmp = ctxt->state;
- xmlAutomataNewCountedTrans(ctxt->am, tmp, oldstate,
- counter);
+ xmlAutomataNewCountedTrans(ctxt->am,
+ tmp, oldstate, counter);
ctxt->state =
xmlAutomataNewCounterTrans(ctxt->am, tmp, NULL,
counter);
- if (type->minOccurs == 0) {
- xmlAutomataNewEpsilon(ctxt->am, oldstate,
- ctxt->state);
+ if (particle->minOccurs == 0) {
+ xmlAutomataNewEpsilon(ctxt->am,
+ oldstate, ctxt->state);
}
-
} else {
- subtypes = type->subtypes;
- while (subtypes != NULL) {
- xmlSchemaBuildAContentModel(subtypes, ctxt,
- name);
- subtypes = subtypes->next;
+ sub = particle->children->children;
+ while (sub != NULL) {
+ xmlSchemaBuildAContentModel(ctxt,
+ (xmlSchemaParticlePtr) sub, name);
+ sub = sub->next;
}
- if (type->minOccurs == 0) {
+ if (particle->minOccurs == 0) {
xmlAutomataNewEpsilon(ctxt->am, oldstate,
ctxt->state);
}
@@ -10117,7 +11080,7 @@ xmlSchemaBuildAContentModel(xmlSchemaTypePtr type,
break;
}
case XML_SCHEMA_TYPE_CHOICE:{
- xmlSchemaTypePtr subtypes;
+ xmlSchemaTreeItemPtr sub;
xmlAutomataStatePtr start, end;
start = ctxt->state;
@@ -10127,21 +11090,22 @@ xmlSchemaBuildAContentModel(xmlSchemaTypePtr type,
* iterate over the subtypes and remerge the end with an
* epsilon transition
*/
- if (type->maxOccurs == 1) {
- subtypes = type->subtypes;
- while (subtypes != NULL) {
+ if (particle->maxOccurs == 1) {
+ sub = particle->children->children;
+ while (sub != NULL) {
ctxt->state = start;
- xmlSchemaBuildAContentModel(subtypes, ctxt, name);
+ xmlSchemaBuildAContentModel(ctxt,
+ (xmlSchemaParticlePtr) sub, name);
xmlAutomataNewEpsilon(ctxt->am, ctxt->state, end);
- subtypes = subtypes->next;
+ sub = sub->next;
}
} else {
int counter;
xmlAutomataStatePtr hop;
- int maxOccurs = type->maxOccurs == UNBOUNDED ?
- UNBOUNDED : type->maxOccurs - 1;
+ int maxOccurs = particle->maxOccurs == UNBOUNDED ?
+ UNBOUNDED : particle->maxOccurs - 1;
int minOccurs =
- type->minOccurs < 1 ? 0 : type->minOccurs - 1;
+ particle->minOccurs < 1 ? 0 : particle->minOccurs - 1;
/*
* use a counter to keep track of the number of transtions
@@ -10152,19 +11116,20 @@ xmlSchemaBuildAContentModel(xmlSchemaTypePtr type,
maxOccurs);
hop = xmlAutomataNewState(ctxt->am);
- subtypes = type->subtypes;
- while (subtypes != NULL) {
+ sub = particle->children->children;
+ while (sub != NULL) {
ctxt->state = start;
- xmlSchemaBuildAContentModel(subtypes, ctxt, name);
+ xmlSchemaBuildAContentModel(ctxt,
+ (xmlSchemaParticlePtr) sub, name);
xmlAutomataNewEpsilon(ctxt->am, ctxt->state, hop);
- subtypes = subtypes->next;
+ sub = sub->next;
}
xmlAutomataNewCountedTrans(ctxt->am, hop, start,
counter);
xmlAutomataNewCounterTrans(ctxt->am, hop, end,
counter);
}
- if (type->minOccurs == 0) {
+ if (particle->minOccurs == 0) {
xmlAutomataNewEpsilon(ctxt->am, start, end);
}
ctxt->state = end;
@@ -10172,46 +11137,40 @@ xmlSchemaBuildAContentModel(xmlSchemaTypePtr type,
}
case XML_SCHEMA_TYPE_ALL:{
xmlAutomataStatePtr start;
- xmlSchemaElementPtr elemDecl, particle;
+ xmlSchemaParticlePtr sub;
+ xmlSchemaElementPtr elemDecl;
int lax;
-
- particle = (xmlSchemaElementPtr) type->subtypes;
- if (particle == NULL)
+
+ sub = (xmlSchemaParticlePtr) particle->children->children;
+ if (sub == NULL)
break;
start = ctxt->state;
- while (particle != NULL) {
+ while (sub != NULL) {
ctxt->state = start;
- /*
- * Changed to put the element declaration and
- * never the element decl. reference into the
- * automaton. This fixes bug 139897 and bug 167754.
- */
- if (particle->ref != NULL) {
- if (particle->refDecl == NULL) {
- /*
- * TODO: Note that we break on missing
- * sub-components.
- */
- break;
- } else
- elemDecl = particle->refDecl;
- } else
- elemDecl = particle;
+
+ elemDecl = (xmlSchemaElementPtr) sub->children;
+ if (elemDecl == NULL) {
+ xmlSchemaPErr(ctxt, NULL,
+ XML_SCHEMAP_INTERNAL,
+ "Internal error: xmlSchemaBuildAContentModel, "
+ "<element> particle a NULL term.\n", NULL, NULL);
+ return;
+ };
/*
* NOTE: The {max occurs} of all the particles in the
* {particles} of the group must be 0 or 1; this is
* already ensured during the parse of the content of
* <all>.
*/
- if ((particle->minOccurs == 1) &&
- (particle->maxOccurs == 1)) {
+ if ((sub->minOccurs == 1) &&
+ (sub->maxOccurs == 1)) {
xmlAutomataNewOnceTrans2(ctxt->am, ctxt->state,
ctxt->state,
elemDecl->name,
elemDecl->targetNamespace,
1, 1, elemDecl);
- } else if ((particle->minOccurs == 0) &&
- (particle->maxOccurs == 1)) {
+ } else if ((sub->minOccurs == 0) &&
+ (sub->maxOccurs == 1)) {
xmlAutomataNewCountTrans2(ctxt->am, ctxt->state,
ctxt->state,
@@ -10221,125 +11180,42 @@ xmlSchemaBuildAContentModel(xmlSchemaTypePtr type,
1,
elemDecl);
}
- particle = (xmlSchemaElementPtr) particle->next;
+ sub = (xmlSchemaParticlePtr) sub->next;
}
- lax = type->minOccurs == 0;
+ lax = particle->minOccurs == 0;
ctxt->state =
- xmlAutomataNewAllTrans(ctxt->am, ctxt->state, NULL,
- lax);
+ xmlAutomataNewAllTrans(ctxt->am, ctxt->state, NULL, lax);
break;
}
- case XML_SCHEMA_TYPE_RESTRICTION:
- if (type->subtypes != NULL)
- xmlSchemaBuildAContentModel(type->subtypes, ctxt, name);
- break;
- case XML_SCHEMA_TYPE_EXTENSION:
- if (type->baseType != NULL) {
- xmlSchemaTypePtr subtypes;
-
- /*
- * TODO: Circular definitions will be checked at the
- * constraint level. So remove this when the complex type
- * constraints are implemented.
- */
- if (type->recurse) {
- /* TODO: Change the error code. */
- xmlSchemaPCustomErr(ctxt,
- XML_SCHEMAP_UNKNOWN_BASE_TYPE,
- NULL, type, type->node,
- "This item is circular", NULL);
- return;
- }
- type->recurse = 1;
- xmlSchemaBuildAContentModel(type->baseType, ctxt, name);
- type->recurse = 0;
- subtypes = type->subtypes;
- while (subtypes != NULL) {
- xmlSchemaBuildAContentModel(subtypes, ctxt, name);
- subtypes = subtypes->next;
- }
- } else if (type->subtypes != NULL)
- xmlSchemaBuildAContentModel(type->subtypes, ctxt, name);
- break;
- case XML_SCHEMA_TYPE_GROUP:
- /*
- * Handle model group definition references.
- * NOTE: type->subtypes is the referenced model grop definition;
- * and type->subtypes->subtypes is the model group (i.e. <all> or
- * <choice> or <sequence>).
- */
- if ((type->ref != NULL) && (type->subtypes != NULL) &&
- (type->subtypes->subtypes != NULL)) {
- xmlSchemaTypePtr modelGr;
- xmlAutomataStatePtr start, end;
-
- modelGr = type->subtypes->subtypes;
- start = ctxt->state;
- end = xmlAutomataNewState(ctxt->am);
- if (type->maxOccurs == 1) {
- ctxt->state = start;
- xmlSchemaBuildAContentModel(modelGr, ctxt, name);
- xmlAutomataNewEpsilon(ctxt->am, ctxt->state, end);
- } else {
- int counter;
- xmlAutomataStatePtr hop;
- int maxOccurs = type->maxOccurs == UNBOUNDED ?
- UNBOUNDED : type->maxOccurs - 1;
- int minOccurs =
- type->minOccurs < 1 ? 0 : type->minOccurs - 1;
-
- counter =
- xmlAutomataNewCounter(ctxt->am, minOccurs, maxOccurs);
- hop = xmlAutomataNewState(ctxt->am);
- ctxt->state = start;
- xmlSchemaBuildAContentModel(modelGr, ctxt, name);
- xmlAutomataNewEpsilon(ctxt->am, ctxt->state, hop);
- xmlAutomataNewCountedTrans(ctxt->am, hop, start,
- counter);
- xmlAutomataNewCounterTrans(ctxt->am, hop, end,
- counter);
- }
- if (type->minOccurs == 0) {
- xmlAutomataNewEpsilon(ctxt->am, start, end);
- }
- ctxt->state = end;
- break;
- }
- break;
- case XML_SCHEMA_TYPE_COMPLEX:
- case XML_SCHEMA_TYPE_COMPLEX_CONTENT:
- if (type->subtypes != NULL)
- xmlSchemaBuildAContentModel(type->subtypes, ctxt, name);
- break;
- case XML_SCHEMA_TYPE_SIMPLE_CONTENT:
- break;
default:
xmlGenericError(xmlGenericErrorContext,
- "Found unexpected type %d in %s content model\n",
- type->type, name);
+ "Internal error: xmlSchemaBuildAContentModel, found "
+ "unexpected term of type %d in content model of complex "
+ "type '%s'.\n",
+ particle->children->type, name);
return;
}
}
/**
* xmlSchemaBuildContentModel:
- * @type: the type definition (or reference)
* @ctxt: the schema parser context
+ * @type: the complex type definition
* @name: the element name
*
* Builds the content model of the complex type.
*/
static void
xmlSchemaBuildContentModel(xmlSchemaTypePtr type,
- xmlSchemaParserCtxtPtr ctxt,
+ xmlSchemaParserCtxtPtr ctxt,
const xmlChar * name)
{
xmlAutomataStatePtr start;
- if ((type->type != XML_SCHEMA_TYPE_COMPLEX) || (type->ref != NULL) ||
- (type->contentType == XML_SCHEMA_CONTENT_BASIC) ||
- (type->contentType == XML_SCHEMA_CONTENT_SIMPLE) ||
- (type->contModel != NULL))
+ if ((type->type != XML_SCHEMA_TYPE_COMPLEX) ||
+ (type->contModel != NULL) ||
+ ((type->contentType != XML_SCHEMA_CONTENT_ELEMENTS) &&
+ (type->contentType != XML_SCHEMA_CONTENT_MIXED)))
return;
#ifdef DEBUG_CONTENT
@@ -10350,11 +11226,11 @@ xmlSchemaBuildContentModel(xmlSchemaTypePtr type,
ctxt->am = xmlNewAutomata();
if (ctxt->am == NULL) {
xmlGenericError(xmlGenericErrorContext,
- "Cannot create automata for complex tpye %s\n", name);
+ "Cannot create automata for complex type %s\n", name);
return;
}
start = ctxt->state = xmlAutomataGetInitState(ctxt->am);
- xmlSchemaBuildAContentModel(type, ctxt, name);
+ xmlSchemaBuildAContentModel(ctxt, (xmlSchemaParticlePtr) type->subtypes, name);
xmlAutomataSetFinalState(ctxt->am, ctxt->state);
type->contModel = xmlAutomataCompile(ctxt->am);
if (type->contModel == NULL) {
@@ -10371,7 +11247,7 @@ xmlSchemaBuildContentModel(xmlSchemaTypePtr type,
} else {
#ifdef DEBUG_CONTENT_REGEXP
xmlGenericError(xmlGenericErrorContext,
- "Content model of %s:\n", name);
+ "Content model of %s:\n", type->name);
xmlRegexpPrint(stderr, type->contModel);
#endif
}
@@ -10381,7 +11257,7 @@ xmlSchemaBuildContentModel(xmlSchemaTypePtr type,
}
/**
- * xmlSchemaRefFixupCallback:
+ * xmlSchemaElementFixup:
* @elem: the schema element context
* @ctxt: the schema parser context
*
@@ -10390,7 +11266,7 @@ xmlSchemaBuildContentModel(xmlSchemaTypePtr type,
* term.
*/
static void
-xmlSchemaRefFixupCallback(xmlSchemaElementPtr elem,
+xmlSchemaElementFixup(xmlSchemaElementPtr elem,
xmlSchemaParserCtxtPtr ctxt,
const xmlChar * name ATTRIBUTE_UNUSED,
const xmlChar * context ATTRIBUTE_UNUSED,
@@ -10400,224 +11276,128 @@ xmlSchemaRefFixupCallback(xmlSchemaElementPtr elem,
((elem != NULL) && (elem->flags & XML_SCHEMAS_ELEM_INTERNAL_RESOLVED)))
return;
elem->flags |= XML_SCHEMAS_ELEM_INTERNAL_RESOLVED;
- if (elem->ref != NULL) {
- xmlSchemaElementPtr elemDecl;
-
+
+ if ((elem->subtypes == NULL) && (elem->namedType != NULL)) {
+ xmlSchemaTypePtr type;
+
+ /* (type definition) ... otherwise the type definition ·resolved·
+ * to by the ·actual value· of the type [attribute] ...
+ */
+ type = xmlSchemaGetType(ctxt->schema, elem->namedType,
+ elem->namedTypeNs);
+ if (type == NULL) {
+ xmlSchemaPResCompAttrErr(ctxt,
+ XML_SCHEMAP_SRC_RESOLVE,
+ NULL, (xmlSchemaTypePtr) elem, elem->node,
+ "type", elem->namedType, elem->namedTypeNs,
+ XML_SCHEMA_TYPE_BASIC, "type definition");
+ } else
+ elem->subtypes = type;
+ }
+ if (elem->substGroup != NULL) {
+ xmlSchemaElementPtr substHead;
+
/*
- * TODO: Evaluate, what errors could occur if the declaration is not
- * found. It might be possible that the "typefixup" might crash if
- * no ref declaration was found.
+ * FIXME TODO: Do we need a new field in _xmlSchemaElement for
+ * substitutionGroup?
*/
- elemDecl = xmlSchemaGetElem(ctxt->schema, elem->ref, elem->refNs);
- if (elemDecl == NULL) {
+ substHead = xmlSchemaGetElem(ctxt->schema, elem->substGroup,
+ elem->substGroupNs);
+ if (substHead == NULL) {
xmlSchemaPResCompAttrErr(ctxt,
XML_SCHEMAP_SRC_RESOLVE,
- NULL, (xmlSchemaTypePtr) elem, elem->node,
- "ref", elem->ref, elem->refNs,
+ NULL, (xmlSchemaTypePtr) elem, NULL,
+ "substitutionGroup", elem->substGroup, elem->substGroupNs,
XML_SCHEMA_TYPE_ELEMENT, NULL);
- } else
- elem->refDecl = elemDecl;
- } else {
- if ((elem->subtypes == NULL) && (elem->namedType != NULL)) {
- xmlSchemaTypePtr type;
-
- /* (type definition) ... otherwise the type definition ·resolved·
- * to by the ·actual value· of the type [attribute] ...
- */
- type = xmlSchemaGetType(ctxt->schema, elem->namedType,
- elem->namedTypeNs);
- if (type == NULL) {
- xmlSchemaPResCompAttrErr(ctxt,
- XML_SCHEMAP_SRC_RESOLVE,
- NULL, (xmlSchemaTypePtr) elem, elem->node,
- "type", elem->namedType, elem->namedTypeNs,
- XML_SCHEMA_TYPE_BASIC, "type definition");
- } else
- elem->subtypes = type;
- }
- if (elem->substGroup != NULL) {
- xmlSchemaElementPtr substHead;
-
+ } else {
+ xmlSchemaElementFixup(substHead, ctxt, NULL, NULL, NULL);
/*
- * FIXME TODO: Do we need a new field in _xmlSchemaElement for
- * substitutionGroup?
+ * (type definition)...otherwise the {type definition} of the
+ * element declaration ·resolved· to by the ·actual value· of
+ * the substitutionGroup [attribute], if present
*/
- substHead = xmlSchemaGetElem(ctxt->schema, elem->substGroup,
- elem->substGroupNs);
- if (substHead == NULL) {
- xmlSchemaPResCompAttrErr(ctxt,
- XML_SCHEMAP_SRC_RESOLVE,
- NULL, (xmlSchemaTypePtr) elem, NULL,
- "substitutionGroup", elem->substGroup, elem->substGroupNs,
- XML_SCHEMA_TYPE_ELEMENT, NULL);
- } else {
- xmlSchemaRefFixupCallback(substHead, ctxt, NULL, NULL, NULL);
- /*
- * (type definition)...otherwise the {type definition} of the
- * element declaration ·resolved· to by the ·actual value· of
- * the substitutionGroup [attribute], if present
- */
- if (elem->subtypes == NULL)
- elem->subtypes = substHead->subtypes;
- }
+ if (elem->subtypes == NULL)
+ elem->subtypes = substHead->subtypes;
}
- if ((elem->subtypes == NULL) && (elem->namedType == NULL) &&
- (elem->substGroup == NULL))
- elem->subtypes = xmlSchemaGetBuiltInType(XML_SCHEMAS_ANYTYPE);
- }
-}
-
-/**
- * xmlSchemaParseListRefFixup:
- * @type: the schema type definition
- * @ctxt: the schema parser context
- *
- * Fixup of the itemType reference of the list type.
- */
-static void
-xmlSchemaParseListRefFixup(xmlSchemaTypePtr type, xmlSchemaParserCtxtPtr ctxt)
-{
-
- if (((type->base == NULL) &&
- (type->subtypes == NULL)) ||
- ((type->base != NULL) &&
- (type->subtypes != NULL))) {
- /*
- * src-list-itemType-or-simpleType
- * Either the itemType [attribute] or the <simpleType> [child] of
- * the <list> element must be present, but not both.
- */
- /*
- * TODO: Move this to the parse function.
- */
- xmlSchemaPCustomErr(ctxt,
- XML_SCHEMAP_SRC_LIST_ITEMTYPE_OR_SIMPLETYPE,
- NULL, type, type->node,
- "The attribute 'itemType' and the <simpleType> child "
- "are mutually exclusive", NULL);
- } else if (type->base!= NULL) {
- type->subtypes = xmlSchemaGetType(ctxt->schema, type->base, type->baseNs);
- if (type->subtypes == NULL) {
- xmlSchemaPResCompAttrErr(ctxt,
- XML_SCHEMAP_SRC_RESOLVE,
- NULL, type, type->node,
- "itemType", type->base, type->baseNs,
- XML_SCHEMA_TYPE_SIMPLE, NULL);
- }
- }
- if ((type->subtypes != NULL) &&
- (type->subtypes->contentType == XML_SCHEMA_CONTENT_UNKNOWN))
- xmlSchemaTypeFixup(type->subtypes, ctxt, NULL);
+ }
+ if ((elem->subtypes == NULL) && (elem->namedType == NULL) &&
+ (elem->substGroup == NULL))
+ elem->subtypes = xmlSchemaGetBuiltInType(XML_SCHEMAS_ANYTYPE);
}
/**
- * xmlSchemaParseUnionRefCheck:
- * @typeDecl: the schema type definition
+ * xmlSchemaResolveUnionMemberTypes:
* @ctxt: the schema parser context
+ * @type: the schema simple type definition
*
- * Checks and builds the memberTypes of the union type.
+ * Checks and builds the memberTypes of the union simple type.
* Returns -1 in case of an internal error, 0 otherwise.
*/
static int
-xmlSchemaParseUnionRefCheck(xmlSchemaTypePtr type,
- xmlSchemaParserCtxtPtr ctxt)
+xmlSchemaResolveUnionMemberTypes(xmlSchemaParserCtxtPtr ctxt,
+ xmlSchemaTypePtr type)
{
- xmlSchemaTypeLinkPtr link, lastLink = NULL, prevLink, subLink, newLink;
- xmlSchemaTypePtr memberType, ctxtType;
+ xmlSchemaTypeLinkPtr link, lastLink, prevLink, subLink, newLink;
+ xmlSchemaTypePtr memberType;
/* 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.
- */
-
- if (type->type != XML_SCHEMA_TYPE_UNION)
- return (-1);
- if (ctxt->ctxtType == NULL) {
- xmlSchemaPErr(ctxt, type->node,
- XML_SCHEMAP_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].
+ * Resolve references.
*/
- if ((type->base == NULL) &&
- (type->subtypes == NULL)) {
- xmlSchemaPCustomErr(ctxt,
- XML_SCHEMAP_SRC_UNION_MEMBERTYPES_OR_SIMPLETYPES,
- NULL, NULL, type->node,
- "Either the attribute 'memberTypes' must be non-empty "
- "or there must be at least one <simpleType> child", NULL);
- }
-
- ctxtType = ctxt->ctxtType;
- if (type->base != NULL) {
- xmlAttrPtr attr;
- const xmlChar *cur, *end;
- xmlChar *tmp;
- const xmlChar *localName, *uri;
+ link = type->memberTypes;
+ lastLink = NULL;
+ while (link != NULL) {
+ const xmlChar *name, *nsName;
- attr = xmlSchemaGetPropNode(type->node, "memberTypes");
- 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);
- xmlSchemaPValAttrNodeQNameValue(ctxt, ctxt->schema, NULL,
- NULL, attr, BAD_CAST tmp, &uri, NULL, &localName);
- memberType = xmlSchemaGetType(ctxt->schema, localName, uri);
- if (memberType == NULL) {
- xmlSchemaPResCompAttrErr(ctxt,
- XML_SCHEMAP_UNKNOWN_MEMBER_TYPE,
- NULL, NULL, type->node, "memberTypes", localName, uri,
- XML_SCHEMA_TYPE_SIMPLE, NULL);
- } 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);
- }
+ name = ((xmlSchemaQNameRefPtr) link->type)->name;
+ nsName = ((xmlSchemaQNameRefPtr) link->type)->targetNamespace;
+
+ memberType = xmlSchemaGetType(ctxt->schema, name, nsName);
+ if ((memberType == NULL) || (! IS_SIMPLE_TYPE(memberType))) {
+ xmlSchemaPResCompAttrErr(ctxt, XML_SCHEMAP_SRC_RESOLVE,
+ NULL, type, type->node, "memberTypes",
+ name, nsName, XML_SCHEMA_TYPE_SIMPLE, NULL);
+ /*
+ * Remove the member type link.
+ */
+ if (lastLink == NULL)
+ type->memberTypes = link->next;
+ else
+ lastLink->next = link->next;
+ newLink = link;
+ link = link->next;
+ xmlFree(newLink);
+ } else {
+ link->type = memberType;
+ if (IS_NOT_TYPEFIXED(memberType))
+ xmlSchemaTypeFixup(memberType, ctxt, NULL);
+
+ lastLink = link;
+ link = link->next;
+ }
+ }
/*
* Add local simple types,
*/
memberType = type->subtypes;
- while (memberType != NULL) {
- if (memberType->contentType == XML_SCHEMA_CONTENT_UNKNOWN)
- xmlSchemaTypeFixup(memberType, ctxt, NULL);
+ while (memberType != NULL) {
link = (xmlSchemaTypeLinkPtr) xmlMalloc(sizeof(xmlSchemaTypeLink));
if (link == NULL) {
xmlSchemaPErrMemory(ctxt, "allocating a type link", NULL);
return (-1);
}
+ if (IS_NOT_TYPEFIXED(memberType))
+ xmlSchemaTypeFixup(memberType, ctxt, NULL);
link->type = memberType;
link->next = NULL;
if (lastLink == NULL)
- ctxtType->memberTypes = link;
+ type->memberTypes = link;
else
lastLink->next = link;
lastLink = link;
@@ -10628,10 +11408,11 @@ xmlSchemaParseUnionRefCheck(xmlSchemaTypePtr type,
* definition in the ·explicit members· with the members of their
* {member type definitions}, in order.
*/
- link = ctxtType->memberTypes;
+ link = type->memberTypes;
while (link != NULL) {
+ /* TODO: type-fixup it. */
if (link->type->flags & XML_SCHEMAS_TYPE_VARIETY_UNION) {
- subLink = link->type->memberTypes;
+ subLink = xmlSchemaGetUnionSimpleTypeMemberTypes(link->type);
if (subLink != NULL) {
link->type = subLink->type;
if (subLink->next != NULL) {
@@ -10738,6 +11519,9 @@ xmlSchemaGetPrimitiveType(xmlSchemaTypePtr type)
static xmlSchemaTypePtr
xmlSchemaGetBuiltInTypeAncestor(xmlSchemaTypePtr type)
{
+ if ((type->flags & XML_SCHEMAS_TYPE_VARIETY_LIST) ||
+ (type->flags & XML_SCHEMAS_TYPE_VARIETY_UNION))
+ return (0);
while (type != NULL) {
if (type->type == XML_SCHEMA_TYPE_BASIC)
return (type);
@@ -10748,7 +11532,6 @@ xmlSchemaGetBuiltInTypeAncestor(xmlSchemaTypePtr type)
}
#endif
-
/**
* xmlSchemaBuildAttributeUsesOwned:
* @ctxt: the schema parser context
@@ -11417,24 +12200,20 @@ xmlSchemaBuildCompleteAttributeWildcard(xmlSchemaParserCtxtPtr ctxt,
if (*completeWild == NULL) {
/*
* Copy the first encountered wildcard as context, except for the annotation.
+ *
+ * Although the complete wildcard might not correspond to any
+ * node in the schema, we will save this context node.
*/
- *completeWild = xmlSchemaAddWildcard(ctxt);
- (*completeWild)->type = XML_SCHEMA_TYPE_ANY_ATTRIBUTE;
+ *completeWild = xmlSchemaAddWildcard(ctxt, ctxt->schema,
+ XML_SCHEMA_TYPE_ANY_ATTRIBUTE,
+ group->attributeWildcard->node);
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.
- * TODO: Hmm, is this sane?
- */
- (*completeWild)->node = group->attributeWildcard->node;
-
- } else if (xmlSchemaIntersectWildcards(ctxt, *completeWild, group->attributeWildcard) == -1) {
- xmlSchemaFreeWildcard(*completeWild);
+ (*completeWild)->node = group->attributeWildcard->node;
+ } else if (xmlSchemaIntersectWildcards(ctxt, *completeWild, group->attributeWildcard) == -1)
return (-1);
- }
}
}
attrs = attrs->next;
@@ -11624,8 +12403,6 @@ xmlSchemaBuildAttributeValidation(xmlSchemaParserCtxtPtr ctxt, xmlSchemaTypePtr
* NOTE: This is the only case where an attribute
* wildcard is shared.
*/
- if (type->flags & XML_SCHEMAS_TYPE_OWNED_ATTR_WILDCARD)
- type->flags ^= XML_SCHEMAS_TYPE_OWNED_ATTR_WILDCARD;
type->attributeWildcard = baseType->attributeWildcard;
}
}
@@ -11976,7 +12753,7 @@ xmlSchemaBuildAttributeValidation(xmlSchemaParserCtxtPtr ctxt, xmlSchemaTypePtr
*/
if ((baseType != NULL) && (!baseIsAnyType) &&
(baseType->type == XML_SCHEMA_TYPE_COMPLEX) &&
- (baseType->contentType == XML_SCHEMA_CONTENT_UNKNOWN)) {
+ (IS_NOT_TYPEFIXED(baseType))) {
xmlSchemaPErr(ctxt, baseType->node, XML_SCHEMAP_INTERNAL,
"Internal error: xmlSchemaBuildAttributeValidation: "
"attribute uses not builded on base type '%s'.\n",
@@ -12038,7 +12815,7 @@ xmlSchemaTypeFinalContains(xmlSchemaPtr schema, xmlSchemaTypePtr type, int final
static xmlSchemaTypeLinkPtr
xmlSchemaGetUnionSimpleTypeMemberTypes(xmlSchemaTypePtr type)
{
- while (type != NULL) {
+ while ((type != NULL) && (type->type == XML_SCHEMA_TYPE_SIMPLE)) {
if (type->memberTypes != NULL)
return (type->memberTypes);
else
@@ -12065,20 +12842,76 @@ xmlSchemaGetListSimpleTypeItemType(xmlSchemaTypePtr type)
*/
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));
- }
+ return (type->subtypes);
+}
+
+
+static int
+xmlSchemaGetParticleTotalRangeMin(xmlSchemaTreeItemPtr particle)
+{
+ if ((particle->children == NULL) ||
+ ( ((xmlSchemaParticlePtr) particle)->minOccurs == 0))
+ return (0);
+ if (particle->children->type == XML_SCHEMA_TYPE_CHOICE) {
+ int min = 0, cur;
+ xmlSchemaTreeItemPtr part = particle->children->children;
+
+ if (part == NULL)
+ return (0);
+ if ((part->children->type == XML_SCHEMA_TYPE_ELEMENT) ||
+ (part->children->type == XML_SCHEMA_TYPE_ANY))
+ min = ((xmlSchemaParticlePtr) part)->minOccurs;
+ else
+ min = xmlSchemaGetParticleTotalRangeMin(part);
+ if (min == 0)
+ return (0);
+ part = part->next;
+ while (part != NULL) {
+ if ((part->children->type == XML_SCHEMA_TYPE_ELEMENT) ||
+ (part->children->type == XML_SCHEMA_TYPE_ANY))
+ cur = ((xmlSchemaParticlePtr) part)->minOccurs;
+ else
+ cur = xmlSchemaGetParticleTotalRangeMin(part);
+ if (cur == 0)
+ return (0);
+ if (min > cur)
+ min = cur;
+ part = part->next;
+ }
+ return (((xmlSchemaParticlePtr) particle)->minOccurs * min);
+ } else {
+ /* <all> and <sequence> */
+ int sum = 0;
+ xmlSchemaTreeItemPtr part = particle->children->children;
+
+ if (part == NULL)
+ return (0);
+ do {
+ if ((part->children->type == XML_SCHEMA_TYPE_ELEMENT) ||
+ (part->children->type == XML_SCHEMA_TYPE_ANY))
+ sum += ((xmlSchemaParticlePtr) part)->minOccurs;
+ else
+ sum += xmlSchemaGetParticleTotalRangeMin(part);
+ part = part->next;
+ } while (part != NULL);
+ return (((xmlSchemaParticlePtr) particle)->minOccurs * sum);
+ }
+}
+
+
+static int
+xmlSchemaIsParticleEmptiable(xmlSchemaParticlePtr particle)
+{
+ if ((particle == NULL) || (particle->minOccurs == 0) ||
+ (particle->children == NULL))
+ return (1);
+
+ if (IS_MODEL_GROUP(particle->children)) {
+ if (xmlSchemaGetParticleTotalRangeMin(
+ (xmlSchemaTreeItemPtr) particle) == 0)
+ return (1);
+ }
+ return (0);
}
/**
@@ -12163,6 +12996,70 @@ xmlSchemaCheckCOSSTDerivedOK(xmlSchemaPtr schema,
return (XML_SCHEMAP_COS_ST_DERIVED_OK_2_2);
}
+/**
+ * xmlSchemaCheckTypeDefCircularInternal:
+ * @pctxt: the schema parser context
+ * @ctxtType: the type definition
+ * @ancestor: an ancestor of @ctxtType
+ *
+ * Checks st-props-correct (2) + ct-props-correct (3).
+ * Circular type definitions are not allowed.
+ *
+ * Returns XML_SCHEMAP_ST_PROPS_CORRECT_2 if the given type is
+ * circular, 0 otherwise.
+ */
+static int
+xmlSchemaCheckTypeDefCircularInternal(xmlSchemaParserCtxtPtr pctxt,
+ xmlSchemaTypePtr ctxtType,
+ xmlSchemaTypePtr ancestor)
+{
+ int ret;
+
+ if ((ancestor == NULL) || (ancestor->type == XML_SCHEMA_TYPE_BASIC))
+ return (0);
+
+ if (IS_NOT_TYPEFIXED(ancestor))
+ xmlSchemaTypeFixup(ancestor, pctxt, NULL);
+ if (ancestor->flags & XML_SCHEMAS_TYPE_MARKED) {
+ /*
+ * Avoid inifinite recursion on circular types not yet checked.
+ */
+ return (0);
+ }
+ if (ctxtType == ancestor) {
+ xmlSchemaPCustomErr(pctxt,
+ XML_SCHEMAP_ST_PROPS_CORRECT_2,
+ NULL, ctxtType, GET_NODE(ctxtType),
+ "The definition is circular", NULL);
+ return (XML_SCHEMAP_ST_PROPS_CORRECT_2);
+ }
+ ancestor->flags |= XML_SCHEMAS_TYPE_MARKED;
+ ret = xmlSchemaCheckTypeDefCircularInternal(pctxt, ctxtType,
+ ancestor->baseType);
+ ancestor->flags ^= XML_SCHEMAS_TYPE_MARKED;
+ return (ret);
+}
+
+/**
+ * xmlSchemaCheckGroupDefCircular:
+ * @item: the complex/simple type definition
+ * @ctxt: the parser context
+ * @name: the name
+ *
+ * Checks for circular type definitions.
+ */
+static void
+xmlSchemaCheckTypeDefCircular(xmlSchemaTypePtr item,
+ xmlSchemaParserCtxtPtr ctxt,
+ const xmlChar * name ATTRIBUTE_UNUSED)
+{
+ if ((item == NULL) ||
+ ((item->type != XML_SCHEMA_TYPE_COMPLEX) &&
+ (item->type != XML_SCHEMA_TYPE_SIMPLE)))
+ return;
+ xmlSchemaCheckTypeDefCircularInternal(ctxt, item, item->baseType);
+
+}
/**
* xmlSchemaCheckSTPropsCorrect:
@@ -12192,41 +13089,42 @@ xmlSchemaCheckSTPropsCorrect(xmlSchemaParserCtxtPtr ctxt,
*/
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) {
+ /*
+ * TODO: Think about: "modulo the impact of Missing
+ * Sub-components (§5.3)."
+ */
xmlSchemaPCustomErr(ctxt,
XML_SCHEMAP_ST_PROPS_CORRECT_1,
NULL, type, NULL,
"No base type existent", NULL);
return (XML_SCHEMAP_ST_PROPS_CORRECT_1);
+
}
- if ((baseType->type != XML_SCHEMA_TYPE_SIMPLE) &&
- ((baseType->type != XML_SCHEMA_TYPE_BASIC) ||
- (baseType == anyType))) {
+ if (! IS_SIMPLE_TYPE(baseType)) {
xmlSchemaPCustomErr(ctxt,
XML_SCHEMAP_ST_PROPS_CORRECT_1,
NULL, type, NULL,
- "The base type %s is not a simple type",
- xmlSchemaFormatItemForReport(&str, NULL, baseType, NULL, 1));
+ "The base type '%s' is not a simple type",
+ xmlSchemaGetComponentQName(&str, baseType));
FREE_AND_NULL(str)
return (XML_SCHEMAP_ST_PROPS_CORRECT_1);
}
- if ((baseType != anySimpleType) &&
- (type->subtypes->type != XML_SCHEMA_TYPE_RESTRICTION)) {
+ if ((baseType->builtInType != XML_SCHEMAS_ANYSIMPLETYPE) &&
+ ((type->flags &
+ XML_SCHEMAS_TYPE_DERIVATION_METHOD_RESTRICTION) == 0) &&
+ ((type->flags & XML_SCHEMAS_TYPE_VARIETY_LIST) ||
+ (type->flags & XML_SCHEMAS_TYPE_VARIETY_UNION))) {
xmlSchemaPCustomErr(ctxt,
XML_SCHEMAP_ST_PROPS_CORRECT_1,
NULL, type, NULL,
"A type, derived by list or union, must have"
- "the simple ur-type definition as base type, not %s",
- xmlSchemaFormatItemForReport(&str, NULL, baseType, NULL, 1));
+ "the simple ur-type definition as base type, not '%s'",
+ xmlSchemaGetComponentQName(&str, baseType));
FREE_AND_NULL(str)
return (XML_SCHEMAP_ST_PROPS_CORRECT_1);
}
@@ -12243,52 +13141,47 @@ xmlSchemaCheckSTPropsCorrect(xmlSchemaParserCtxtPtr ctxt,
return (XML_SCHEMAP_ST_PROPS_CORRECT_1);
}
/* TODO: Finish this. Hmm, is this finished? */
-
- /*
- * 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) {
- xmlSchemaPCustomErr(ctxt,
- XML_SCHEMAP_ST_PROPS_CORRECT_2,
- NULL, type, NULL,
- "The definition is circular", 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,
+ if (xmlSchemaTypeFinalContains(ctxt->schema, baseType,
XML_SCHEMAS_TYPE_FINAL_RESTRICTION)) {
xmlSchemaPCustomErr(ctxt,
XML_SCHEMAP_ST_PROPS_CORRECT_3,
NULL, type, NULL,
- "The 'final' of its base type %s must not contain "
+ "The 'final' of its base type '%s' must not contain "
"'restriction'",
- xmlSchemaFormatItemForReport(&str, NULL, baseType, NULL, 1));
+ xmlSchemaGetComponentQName(&str, baseType));
FREE_AND_NULL(str)
return (XML_SCHEMAP_ST_PROPS_CORRECT_3);
}
+
+ /*
+ * 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}.
+ *
+ * NOTE: this is done in xmlSchemaCheckTypeDefCircular().
+ */
return (0);
}
/**
- * xmlSchemaCheckDerivationValidSimpleRestriction:
+ * xmlSchemaCheckCOSSTRestricts:
* @ctxt: the schema parser context
* @type: the simple type definition
*
* Checks if the given @type (simpleType) is derived
* validly by restriction.
+ * STATUS:
+ * missing:
+ * (3.3.2.5) facet derivation
+ * (1.3.2) facet derivation
+ * (2.3.2.5)
+ * (3.3.2.5) facet derivation
+ *
*
* Returns -1 on internal errors, 0 if the type is validly derived,
* a positive error code otherwise.
@@ -12299,12 +13192,10 @@ xmlSchemaCheckCOSSTRestricts(xmlSchemaParserCtxtPtr ctxt,
{
xmlChar *str = NULL;
- /* STATE: error funcs converted. */
-
if (type->type != XML_SCHEMA_TYPE_SIMPLE) {
xmlSchemaPErr(ctxt, type->node,
XML_ERR_INTERNAL_ERROR,
- "xmlSchemaCheckDerivationValidSimpleRestriction: The given "
+ "xmlSchemaCheckCOSSTRestricts: The given "
"type '%s' is not a user-derived simpleType.\n",
type->name, NULL);
return (-1);
@@ -12320,8 +13211,8 @@ xmlSchemaCheckCOSSTRestricts(xmlSchemaParserCtxtPtr ctxt,
xmlSchemaPCustomErr(ctxt,
XML_SCHEMAP_COS_ST_RESTRICTS_1_1,
NULL, type, NULL,
- "The base type %s is not an atomic simple type",
- xmlSchemaFormatItemForReport(&str, NULL, type->baseType, NULL, 1));
+ "The base type '%s' is not an atomic simple type",
+ xmlSchemaGetComponentQName(&str, type->baseType));
FREE_AND_NULL(str)
return (XML_SCHEMAP_COS_ST_RESTRICTS_1_1);
}
@@ -12334,8 +13225,8 @@ xmlSchemaCheckCOSSTRestricts(xmlSchemaParserCtxtPtr ctxt,
xmlSchemaPCustomErr(ctxt,
XML_SCHEMAP_COS_ST_RESTRICTS_1_2,
NULL, type, NULL,
- "The final of its base type %s must not contain 'restriction'",
- xmlSchemaFormatItemForReport(&str, NULL, type->baseType, NULL, 1));
+ "The final of its base type '%s' must not contain 'restriction'",
+ xmlSchemaGetComponentQName(&str, type->baseType));
FREE_AND_NULL(str)
return (XML_SCHEMAP_COS_ST_RESTRICTS_1_2);
}
@@ -12353,7 +13244,7 @@ xmlSchemaCheckCOSSTRestricts(xmlSchemaParserCtxtPtr ctxt,
if (primitive == NULL) {
xmlSchemaPErr(ctxt, type->node,
XML_ERR_INTERNAL_ERROR,
- "xmlSchemaCheckDerivationValidSimpleRestriction: failed "
+ "xmlSchemaCheckCOSSTRestricts: failed "
"to get primitive type of type '%s'.\n",
type->name, NULL);
return (-1);
@@ -12377,15 +13268,17 @@ xmlSchemaCheckCOSSTRestricts(xmlSchemaParserCtxtPtr ctxt,
} else if (type->flags & XML_SCHEMAS_TYPE_VARIETY_LIST) {
xmlSchemaTypePtr itemType = NULL;
- itemType = xmlSchemaGetListSimpleTypeItemType(type);
- if (itemType == NULL) {
+ itemType = type->subtypes;
+ if ((itemType == NULL) || (! IS_SIMPLE_TYPE(itemType))) {
xmlSchemaPErr(ctxt, type->node,
XML_ERR_INTERNAL_ERROR,
- "Internal error: xmlSchemaCheckDerivationValidSimpleRestriction: "
+ "Internal error: xmlSchemaCheckCOSSTRestricts: "
"failed to evaluate the item type of type '%s'.\n",
type->name, NULL);
return (-1);
}
+ if (IS_NOT_TYPEFIXED(itemType))
+ xmlSchemaTypeFixup(itemType, ctxt, NULL);
/*
* 2.1 The {item type definition} must have a {variety} of atomic or
* union (in which case all the {member type definitions}
@@ -12396,8 +13289,8 @@ xmlSchemaCheckCOSSTRestricts(xmlSchemaParserCtxtPtr ctxt,
xmlSchemaPCustomErr(ctxt,
XML_SCHEMAP_COS_ST_RESTRICTS_2_1,
NULL, type, NULL,
- "The item type %s must have a variety of atomic or union",
- xmlSchemaFormatItemForReport(&str, NULL, itemType, NULL, 1));
+ "The item type '%s' does not have a variety of atomic or union",
+ xmlSchemaGetComponentQName(&str, itemType));
FREE_AND_NULL(str)
return (XML_SCHEMAP_COS_ST_RESTRICTS_2_1);
} else if (itemType->flags & XML_SCHEMAS_TYPE_VARIETY_UNION) {
@@ -12411,8 +13304,8 @@ xmlSchemaCheckCOSSTRestricts(xmlSchemaParserCtxtPtr ctxt,
XML_SCHEMAP_COS_ST_RESTRICTS_2_1,
NULL, type, NULL,
"The item type is a union type, but the "
- "member type %s of this item type is not atomic",
- xmlSchemaFormatItemForReport(&str, NULL, member->type, NULL, 1));
+ "member type '%s' of this item type is not atomic",
+ xmlSchemaGetComponentQName(&str, member->type));
FREE_AND_NULL(str)
return (XML_SCHEMAP_COS_ST_RESTRICTS_2_1);
}
@@ -12420,7 +13313,7 @@ xmlSchemaCheckCOSSTRestricts(xmlSchemaParserCtxtPtr ctxt,
}
}
- if (type->baseType == xmlSchemaGetBuiltInType(XML_SCHEMAS_ANYSIMPLETYPE)) {
+ if (type->baseType->builtInType == XML_SCHEMAS_ANYSIMPLETYPE) {
xmlSchemaFacetPtr facet;
/*
* This is the case if we have: <simpleType><list ..
@@ -12435,8 +13328,8 @@ xmlSchemaCheckCOSSTRestricts(xmlSchemaParserCtxtPtr ctxt,
xmlSchemaPCustomErr(ctxt,
XML_SCHEMAP_COS_ST_RESTRICTS_2_3_1_1,
NULL, type, NULL,
- "The final of its item type %s must not contain 'list'",
- xmlSchemaFormatItemForReport(&str, NULL, itemType, NULL, 1));
+ "The final of its item type '%s' must not contain 'list'",
+ xmlSchemaGetComponentQName(&str, itemType));
FREE_AND_NULL(str)
return (XML_SCHEMAP_COS_ST_RESTRICTS_2_3_1_1);
}
@@ -12457,7 +13350,7 @@ xmlSchemaCheckCOSSTRestricts(xmlSchemaParserCtxtPtr ctxt,
} while (facet != NULL);
}
/*
- * TODO: Datatypes states:
+ * MABY TODO: (Hmm, not really) 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
@@ -12466,6 +13359,7 @@ xmlSchemaCheckCOSSTRestricts(xmlSchemaParserCtxtPtr ctxt,
} else {
/*
* This is the case if we have: <simpleType><restriction ...
+ * I.e. the variety of "list" is inherited.
*/
/*
* 2.3.2
@@ -12475,8 +13369,8 @@ xmlSchemaCheckCOSSTRestricts(xmlSchemaParserCtxtPtr ctxt,
xmlSchemaPCustomErr(ctxt,
XML_SCHEMAP_COS_ST_RESTRICTS_2_3_2_1,
NULL, type, NULL,
- "The base type %s must be a list type",
- xmlSchemaFormatItemForReport(&str, NULL, type->baseType, NULL, 1));
+ "The base type '%s' must be a list type",
+ xmlSchemaGetComponentQName(&str, type->baseType));
FREE_AND_NULL(str)
return (XML_SCHEMAP_COS_ST_RESTRICTS_2_3_2_1);
}
@@ -12489,8 +13383,8 @@ xmlSchemaCheckCOSSTRestricts(xmlSchemaParserCtxtPtr ctxt,
xmlSchemaPCustomErr(ctxt,
XML_SCHEMAP_COS_ST_RESTRICTS_2_3_2_2,
NULL, type, NULL,
- "The final of the base type %s must not contain 'restriction'",
- xmlSchemaFormatItemForReport(&str, NULL, type->baseType, NULL, 1));
+ "The 'final' of the base type '%s' must not contain 'restriction'",
+ xmlSchemaGetComponentQName(&str, type->baseType));
FREE_AND_NULL(str)
return (XML_SCHEMAP_COS_ST_RESTRICTS_2_3_2_2);
}
@@ -12502,11 +13396,11 @@ xmlSchemaCheckCOSSTRestricts(xmlSchemaParserCtxtPtr ctxt,
{
xmlSchemaTypePtr baseItemType;
- baseItemType = xmlSchemaGetListSimpleTypeItemType(type->baseType);
- if (baseItemType == NULL) {
+ baseItemType = type->baseType->subtypes;
+ if ((baseItemType == NULL) || (! IS_SIMPLE_TYPE(baseItemType))) {
xmlSchemaPErr(ctxt, type->node,
XML_ERR_INTERNAL_ERROR,
- "xmlSchemaCheckDerivationValidSimpleRestriction: "
+ "Internal error: xmlSchemaCheckCOSSTRestricts, "
"List simple type '%s': Failed to "
"evaluate the item type of its base type '%s'.\n",
type->name, type->baseType->name);
@@ -12519,11 +13413,11 @@ xmlSchemaCheckCOSSTRestricts(xmlSchemaParserCtxtPtr ctxt,
xmlSchemaPCustomErrExt(ctxt,
XML_SCHEMAP_COS_ST_RESTRICTS_2_3_2_3,
NULL, type, NULL,
- "The item type %s is not validly derived from the "
- "item type %s of the base type %s",
- xmlSchemaFormatItemForReport(&str, NULL, itemType, NULL, 1),
- xmlSchemaFormatItemForReport(&strBIT, NULL, baseItemType, NULL, 1),
- xmlSchemaFormatItemForReport(&strBT, NULL, type->baseType, NULL, 1));
+ "The item type '%s' is not validly derived from the "
+ "item type '%s' of the base type '%s'",
+ xmlSchemaGetComponentQName(&str, itemType),
+ xmlSchemaGetComponentQName(&strBIT, baseItemType),
+ xmlSchemaGetComponentQName(&strBT, type->baseType));
FREE_AND_NULL(str)
FREE_AND_NULL(strBIT)
@@ -12587,6 +13481,9 @@ xmlSchemaCheckCOSSTRestricts(xmlSchemaParserCtxtPtr ctxt,
member = type->memberTypes;
while (member != NULL) {
+ if (IS_NOT_TYPEFIXED(member->type))
+ xmlSchemaTypeFixup(member->type, ctxt, NULL);
+
if (((member->type->flags &
XML_SCHEMAS_TYPE_VARIETY_ATOMIC) == 0) &&
((member->type->flags &
@@ -12594,8 +13491,8 @@ xmlSchemaCheckCOSSTRestricts(xmlSchemaParserCtxtPtr ctxt,
xmlSchemaPCustomErr(ctxt,
XML_SCHEMAP_COS_ST_RESTRICTS_3_1,
NULL, type, NULL,
- "The member type %s is neither an atomic, nor a list type",
- xmlSchemaFormatItemForReport(&str, NULL, member->type, NULL, 1));
+ "The member type '%s' is neither an atomic, nor a list type",
+ xmlSchemaGetComponentQName(&str, member->type));
FREE_AND_NULL(str)
return (XML_SCHEMAP_COS_ST_RESTRICTS_3_1);
}
@@ -12605,7 +13502,7 @@ xmlSchemaCheckCOSSTRestricts(xmlSchemaParserCtxtPtr ctxt,
* 3.3.1 If the {base type definition} is the ·simple ur-type
* definition·
*/
- if (type->baseType == xmlSchemaGetBuiltInType(XML_SCHEMAS_ANYSIMPLETYPE)) {
+ if (type->baseType->builtInType == XML_SCHEMAS_ANYSIMPLETYPE) {
/*
* 3.3.1.1 All of the {member type definitions} must have a
* {final} which does not contain union.
@@ -12617,8 +13514,8 @@ xmlSchemaCheckCOSSTRestricts(xmlSchemaParserCtxtPtr ctxt,
xmlSchemaPCustomErr(ctxt,
XML_SCHEMAP_COS_ST_RESTRICTS_3_3_1,
NULL, type, NULL,
- "The final of member type %s contains 'union'",
- xmlSchemaFormatItemForReport(&str, NULL, member->type, NULL, 1));
+ "The 'final' of member type '%s' contains 'union'",
+ xmlSchemaGetComponentQName(&str, member->type));
FREE_AND_NULL(str)
return (XML_SCHEMAP_COS_ST_RESTRICTS_3_3_1);
}
@@ -12637,13 +13534,14 @@ xmlSchemaCheckCOSSTRestricts(xmlSchemaParserCtxtPtr ctxt,
} else {
/*
* 3.3.2.1 The {base type definition} must have a {variety} of union.
+ * I.e. the variety of "list" is inherited.
*/
if ((type->baseType->flags & XML_SCHEMAS_TYPE_VARIETY_UNION) == 0) {
xmlSchemaPCustomErr(ctxt,
XML_SCHEMAP_COS_ST_RESTRICTS_3_3_2_1,
NULL, type, NULL,
- "The base type %s is not a union type",
- xmlSchemaFormatItemForReport(&str, NULL, type->baseType, NULL, 1));
+ "The base type '%s' is not a union type",
+ xmlSchemaGetComponentQName(&str, type->baseType));
FREE_AND_NULL(str)
return (XML_SCHEMAP_COS_ST_RESTRICTS_3_3_2_1);
}
@@ -12655,8 +13553,8 @@ xmlSchemaCheckCOSSTRestricts(xmlSchemaParserCtxtPtr ctxt,
xmlSchemaPCustomErr(ctxt,
XML_SCHEMAP_COS_ST_RESTRICTS_3_3_2_2,
NULL, type, NULL,
- "The final of its base type %s must not contain 'restriction'",
- xmlSchemaFormatItemForReport(&str, NULL, type->baseType, NULL, 1));
+ "The 'final' of its base type '%s' must not contain 'restriction'",
+ xmlSchemaGetComponentQName(&str, type->baseType));
FREE_AND_NULL(str)
return (XML_SCHEMAP_COS_ST_RESTRICTS_3_3_2_2);
}
@@ -12687,8 +13585,7 @@ xmlSchemaCheckCOSSTRestricts(xmlSchemaParserCtxtPtr ctxt,
if ((member == NULL) && (baseMember != NULL)) {
xmlSchemaPErr(ctxt, type->node,
XML_SCHEMAP_INTERNAL,
- "Internal error: "
- "xmlSchemaCheckDerivationValidSimpleRestriction "
+ "Internal error: xmlSchemaCheckCOSSTRestricts, "
"(3.3.2.3), union simple type '%s', unequal number "
"of member types in the base type\n",
type->name, NULL);
@@ -12698,7 +13595,7 @@ xmlSchemaCheckCOSSTRestricts(xmlSchemaParserCtxtPtr ctxt,
xmlSchemaPErr(ctxt, type->node,
XML_SCHEMAP_INTERNAL,
"Internal error: "
- "xmlSchemaCheckDerivationValidSimpleRestriction "
+ "xmlSchemaCheckCOSSTRestricts "
"(3.3.2.3), union simple type '%s', unequal number "
"of member types in the base type.\n",
type->name, NULL);
@@ -12713,9 +13610,9 @@ xmlSchemaCheckCOSSTRestricts(xmlSchemaParserCtxtPtr ctxt,
NULL, type, NULL,
"The member type %s is not validly derived from its "
"corresponding member type %s of the base type %s",
- xmlSchemaFormatItemForReport(&str, NULL, member->type, NULL, 1),
- xmlSchemaFormatItemForReport(&strBMT, NULL, baseMember->type, NULL, 1),
- xmlSchemaFormatItemForReport(&strBT, NULL, type->baseType, NULL, 1));
+ xmlSchemaGetComponentQName(&str, member->type),
+ xmlSchemaGetComponentQName(&strBMT, baseMember->type),
+ xmlSchemaGetComponentQName(&strBT, type->baseType));
FREE_AND_NULL(str)
FREE_AND_NULL(strBMT)
FREE_AND_NULL(strBT)
@@ -12773,20 +13670,6 @@ 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_SCHEMAP_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
@@ -12809,7 +13692,7 @@ xmlSchemaCheckSRCSimpleType(xmlSchemaParserCtxtPtr ctxt,
return (XML_SCHEMAP_SRC_SIMPLE_TYPE_1);
}
- if (type->subtypes->type == XML_SCHEMA_TYPE_RESTRICTION) {
+ if (type->flags & XML_SCHEMAS_TYPE_DERIVATION_METHOD_RESTRICTION) {
/*
* src-simple-type.2 If the <restriction> alternative is chosen,
* either it must have a base [attribute] or a <simpleType> among its
@@ -12817,33 +13700,16 @@ xmlSchemaCheckSRCSimpleType(xmlSchemaParserCtxtPtr ctxt,
*/
/*
* XML_SCHEMAP_SRC_SIMPLE_TYPE_2
- * NOTE: This was removed, since this will be already handled
- * in the parse function for <restriction>.
+ * NOTE: This is checked in the parse function of <restriction>.
*/
- } else if (type->subtypes->type == XML_SCHEMA_TYPE_LIST) {
+ } else if (type->flags & XML_SCHEMAS_TYPE_VARIETY_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.
- */
- /*
- * TODO: Remove this, and add the check to the parse function of <list>.
- */
- if (((type->subtypes->base == NULL) &&
- (type->baseType == NULL)) ||
- ((type->subtypes->base != NULL) &&
- (type->subtypes->baseType != NULL))) {
- xmlSchemaPCustomErr(ctxt,
- XML_SCHEMAP_SRC_SIMPLE_TYPE_3,
- NULL, type, NULL,
- "Either the attribute 'itemType' or the <simpleType> child "
- "must be present on the <list> child ", NULL);
- return (XML_SCHEMAP_SRC_SIMPLE_TYPE_3);
- }
-
-
- } else if (type->subtypes->type == XML_SCHEMA_TYPE_UNION) {
+ *
+ * REMOVED: This is checked in the parse function of <list>.
+ */
+ } else if (type->flags & XML_SCHEMAS_TYPE_VARIETY_UNION) {
xmlSchemaTypeLinkPtr member;
xmlSchemaTypePtr ancestor, anySimpleType;
@@ -12857,26 +13723,25 @@ xmlSchemaCheckSRCSimpleType(xmlSchemaParserCtxtPtr ctxt,
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) {
+ while ((ancestor != NULL) && (ancestor->type != XML_SCHEMA_TYPE_BASIC)) {
+ if (ancestor == type) {
xmlSchemaPCustomErr(ctxt,
XML_SCHEMAP_SRC_SIMPLE_TYPE_4,
NULL, type, NULL,
"The definition is circular", NULL);
return (XML_SCHEMAP_SRC_SIMPLE_TYPE_4);
- } else if (ancestor->flags & XML_SCHEMAS_TYPE_VARIETY_LIST) {
+ }
+ if (IS_NOT_TYPEFIXED(ancestor))
+ xmlSchemaTypeFixup(ancestor, ctxt, NULL);
+ if (ancestor->flags & XML_SCHEMAS_TYPE_VARIETY_LIST) {
/*
* TODO, FIXME: 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;
@@ -12886,7 +13751,7 @@ xmlSchemaCheckSRCSimpleType(xmlSchemaParserCtxtPtr ctxt,
return (0);
}
-#if 0 /* Not yet used code for CT schema validation */
+#if 0 /* Not yet used code for ST schema validation */
static int
xmlSchemaCheckCVCSimpleType(xmlSchemaValidCtxtPtr ctxt,
const xmlChar * value,
@@ -12968,10 +13833,10 @@ xmlSchemaCreateVCtxtOnPCtxt(xmlSchemaParserCtxtPtr ctxt)
/**
* xmlSchemaCheckCOSValidDefault:
- * @ctxt: the schema parser context
+ * @pctxt: the schema parser context
+ * @vctxt: the temporary schema validation context
* @type: the simple type definition
* @value: the default value
- * @val: the precomputed value to be returned
* @node: an optional node (the holder of the value)
*
* Checks the "cos-valid-default" constraints.
@@ -13073,47 +13938,75 @@ xmlSchemaCheckCOSValidDefault(xmlSchemaParserCtxtPtr pctxt,
return (ret);
}
-#if 0 /* Not yet used code for CT schema validation */
/**
- * xmlSchemaGetSTContentOfCT:
+ * xmlSchemaCheckCTPropsCorrect:
* @ctxt: the schema parser context
* @type: the complex type definition
*
+ *.(4.6) Constraints on Complex Type Definition Schema Components
+ * Schema Component Constraint:
+ * Complex Type Definition Properties Correct (ct-props-correct)
+ * STATUS: (seems) complete
*
- * Returns the corresponding simple type for the content of
- * the complex type.
+ * Returns 0 if the constraints are satisfied, a positive
+ * error code if not and -1 if an internal error occured.
*/
-static xmlSchemaTypePtr
-xmlSchemaGetSTContentOfCT(xmlSchemaParserCtxtPtr ctxt,
- xmlSchemaTypePtr type)
+static int
+xmlSchemaCheckCTPropsCorrect(xmlSchemaParserCtxtPtr pctxt,
+ xmlSchemaTypePtr type)
{
- xmlSchemaTypePtr orig = type, anyType;
-
- anyType = xmlSchemaGetBuiltInType(XML_SCHEMAS_ANYTYPE);
- while ((type != NULL) && (type != anyType) &&
- (type->type == XML_SCHEMA_TYPE_COMPLEX)) {
- if (type->type == XML_SCHEMA_TYPE_SIMPLE)
- return(type);
- type = type->baseType;
- }
- xmlSchemaPCustomErr(ctxt,
- XML_SCHEMAP_INTERNAL,
- NULL, orig, NULL,
- "Internal error: xmlSchemaGetSTContentTypeOfCT, "
- "no simple type for the content of complex type '%s' could be "
- "computed", orig->name);
- return (NULL);
+ /*
+ * TODO: Correct the error code; XML_SCHEMAP_SRC_CT_1 is used temporarily.
+ *
+ * SPEC (1) "The values of the properties of a complex type definition must
+ * be as described in the property tableau in The Complex Type Definition
+ * Schema Component (§3.4.1), modulo the impact of Missing
+ * Sub-components (§5.3)."
+ */
+ if ((type->baseType != NULL) &&
+ (IS_SIMPLE_TYPE(type->baseType)) &&
+ ((type->flags & XML_SCHEMAS_TYPE_DERIVATION_METHOD_EXTENSION) == 0)) {
+ /*
+ * SPEC (2) "If the {base type definition} is a simple type definition,
+ * the {derivation method} must be extension."
+ */
+ xmlSchemaPCustomErr(pctxt,
+ XML_SCHEMAP_SRC_CT_1,
+ NULL, type, NULL,
+ "If the base type is a simple type, the derivation method must be "
+ "'extension'", NULL);
+ return (XML_SCHEMAP_SRC_CT_1);
+ }
+ /*
+ * SPEC (3) "Circular definitions are disallowed, except for the ·ur-type
+ * definition·. That is, it must be possible to reach the ·ur-type
+ * definition by repeatedly following the {base type definition}."
+ *
+ * NOTE (3) is done in xmlSchemaCheckTypeDefCircular().
+ *
+ * SPEC (4) "Two distinct attribute declarations in the {attribute uses}
+ * must not have identical {name}s and {target namespace}s."
+ * SPEC (5) "Two distinct attribute declarations in the {attribute uses}
+ * must not have {type definition}s which are or are derived from ID."
+ *
+ * NOTE (4) and (5) are done in xmlSchemaBuildAttributeValidation().
+ */
+ return (0);
}
-
-
-
/**
* xmlSchemaCheckCOSCTExtends:
* @ctxt: the schema parser context
* @type: the complex type definition
*
- * Schema Component Constraint: Derivation Valid (Extension)
+ * (3.4.6) Constraints on Complex Type Definition Schema Components
+ * Schema Component Constraint:
+ * Derivation Valid (Extension) (cos-ct-extends)
+ *
+ * STATUS:
+ * missing:
+ * (1.5)
+ * (1.4.3.2.2.2) "Particle Valid (Extension)", which is not really needed.
*
* Returns 0 if the constraints are satisfied, a positive
* error code if not and -1 if an internal error occured.
@@ -13122,462 +14015,1082 @@ static int
xmlSchemaCheckCOSCTExtends(xmlSchemaParserCtxtPtr ctxt,
xmlSchemaTypePtr type)
{
- xmlSchemaTypePtr base;
+ xmlSchemaTypePtr base = type->baseType;
+ /*
+ * TODO: Correct the error code; XML_SCHEMAP_COS_CT_EXTENDS_1_1 is used
+ * temporarily only.
+ */
/*
- * 1 If the {base type definition} is a complex type definition,
- * then all of the following must be true:
+ * SPEC (1) "If the {base type definition} is a complex type definition,
+ * then all of the following must be true:"
*/
- base = type->baseType;
- if (base == NULL) {
- xmlSchemaPCustomErr(ctxt,
- XML_SCHEMAP_INTERNAL,
- NULL, type, NULL,
- "Internal error: xmlSchemaCheckCOSCTExtends, "
- "the complex type '%s' has no base type", type->name);
- return (-1);
- }
if (base->type == XML_SCHEMA_TYPE_COMPLEX) {
/*
- * 1.1 The {final} of the {base type definition} must not
- * contain extension.
+ * SPEC (1.1) "The {final} of the {base type definition} must not
+ * contain extension."
*/
if (base->flags & XML_SCHEMAS_TYPE_FINAL_EXTENSION) {
xmlSchemaPCustomErr(ctxt,
XML_SCHEMAP_COS_CT_EXTENDS_1_1,
NULL, type, NULL,
"The 'final' of the base type definition "
- "contains extension", NULL);
+ "contains 'extension'", NULL);
return (XML_SCHEMAP_COS_CT_EXTENDS_1_1);
}
/*
- * 1.2 Its {attribute uses} must be a subset of the {attribute uses}
+ * SPEC (1.2) "Its {attribute uses} must be a subset of the {attribute
+ * uses}
* of the complex type definition itself, that is, for every attribute
* use in the {attribute uses} of the {base type definition}, there
* must be an attribute use in the {attribute uses} of the complex
* type definition itself whose {attribute declaration} has the same
* {name}, {target namespace} and {type definition} as its attribute
- * declaration
+ * declaration"
*
- * NOTE: This will be already satisfied by the way the attribute uses
- * are extended in xmlSchemaBuildAttributeValidation; thus this check
- * is not needed.
+ * NOTE (1.2): This will be already satisfied by the way the attribute
+ * uses are extended in xmlSchemaBuildAttributeValidation(); thus this
+ * check is not needed.
*/
/*
- * 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).
+ * SPEC (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)."
+ *
+ * NOTE (1.3) This is already checked in
+ * xmlSchemaBuildAttributeValidation; thus this check is not needed.
*
- * This is already checked in xmlSchemaBuildAttributeValidation; thus
- * this check is not needed.
+ * SPEC (1.4) "One of the following must be true:"
*/
-
+ if ((type->contentTypeDef != NULL) &&
+ (type->contentTypeDef == base->contentTypeDef)) {
+ /*
+ * SPEC (1.4.1) "The {content type} of the {base type definition}
+ * and the {content type} of the complex type definition itself
+ * must be the same simple type definition"
+ * PASS
+ */
+ } else if ((type->contentType == XML_SCHEMA_CONTENT_EMPTY) &&
+ (base->contentType == XML_SCHEMA_CONTENT_EMPTY) ) {
+ /*
+ * SPEC (1.4.2) "The {content type} of both the {base type
+ * definition} and the complex type definition itself must
+ * be empty."
+ * PASS
+ */
+ } else {
+ /*
+ * SPEC (1.4.3) "All of the following must be true:"
+ */
+ if (type->subtypes == NULL) {
+ /*
+ * SPEC 1.4.3.1 The {content type} of the complex type
+ * definition itself must specify a particle.
+ */
+ xmlSchemaPCustomErr(ctxt,
+ XML_SCHEMAP_COS_CT_EXTENDS_1_1,
+ NULL, type, NULL,
+ "The content type must specify a particle", NULL);
+ return (XML_SCHEMAP_COS_CT_EXTENDS_1_1);
+ }
+ /*
+ * SPEC (1.4.3.2) "One of the following must be true:"
+ */
+ if (base->contentType == XML_SCHEMA_CONTENT_EMPTY) {
+ /*
+ * SPEC (1.4.3.2.1) "The {content type} of the {base type
+ * definition} must be empty.
+ * PASS
+ */
+ } else {
+ /*
+ * SPEC (1.4.3.2.2) "All of the following must be true:"
+ */
+ if ((type->contentType != base->contentType) ||
+ ((type->contentType != XML_SCHEMA_CONTENT_MIXED) &&
+ (type->contentType != XML_SCHEMA_CONTENT_ELEMENTS))) {
+ /*
+ * SPEC (1.4.3.2.2.1) "Both {content type}s must be mixed
+ * or both must be element-only."
+ */
+ xmlSchemaPCustomErr(ctxt,
+ XML_SCHEMAP_COS_CT_EXTENDS_1_1,
+ NULL, type, NULL,
+ "The content type of both, the type and its base "
+ "type, must either 'mixed' or 'element-only'", NULL);
+ return (XML_SCHEMAP_COS_CT_EXTENDS_1_1);
+ }
+ /*
+ * FUTURE TODO SPEC (1.4.3.2.2.2) "The particle of the
+ * complex type definition must be a ·valid extension·
+ * of the {base type definition}'s particle, as defined
+ * in Particle Valid (Extension) (§3.9.6)."
+ *
+ * NOTE that we won't check "Particle Valid (Extension)",
+ * since it is ensured by the derivation process in
+ * xmlSchemaTypeFixup(). We need to implement this when heading
+ * for a construction API
+ */
+ }
+ /*
+ * TODO (1.5)
+ */
+ }
+ } else {
/*
- * 1.4 One of the following must be true:
- *
- * 1.4.1 The {content type} of the {base type definition} and the
- * {content type} of the complex type definition itself must be the same
- * simple type definition
+ * SPEC (2) "If the {base type definition} is a simple type definition,
+ * then all of the following must be true:"
*/
+ if (type->contentTypeDef != base) {
+ /*
+ * SPEC (2.1) "The {content type} must be the same simple type
+ * definition."
+ */
+ xmlSchemaPCustomErr(ctxt,
+ XML_SCHEMAP_COS_CT_EXTENDS_1_1,
+ NULL, type, NULL,
+ "The content type must be the simple base type", NULL);
+ return (XML_SCHEMAP_COS_CT_EXTENDS_1_1);
+ }
+ if (base->flags & XML_SCHEMAS_TYPE_FINAL_EXTENSION) {
+ /*
+ * SPEC (2.2) "The {final} of the {base type definition} must not
+ * contain extension"
+ * NOTE that this is the same as (1.1).
+ */
+ xmlSchemaPCustomErr(ctxt,
+ XML_SCHEMAP_COS_CT_EXTENDS_1_1,
+ NULL, type, NULL,
+ "The 'final' of the base type definition "
+ "contains 'extension'", NULL);
+ return (XML_SCHEMAP_COS_CT_EXTENDS_1_1);
+ }
+ }
+ return (0);
+}
-
-
- } else {
+/**
+ * xmlSchemaCheckDerivationOKRestriction:
+ * @ctxt: the schema parser context
+ * @type: the complex type definition
+ *
+ * (3.4.6) Constraints on Complex Type Definition Schema Components
+ * Schema Component Constraint:
+ * Derivation Valid (Restriction, Complex) (derivation-ok-restriction)
+ *
+ * STATUS:
+ * missing:
+ * (5.4.2), (5.2.2.1)
+ *
+ * Returns 0 if the constraints are satisfied, a positive
+ * error code if not and -1 if an internal error occured.
+ */
+static int
+xmlSchemaCheckDerivationOKRestriction(xmlSchemaParserCtxtPtr ctxt,
+ xmlSchemaTypePtr type)
+{
+ xmlSchemaTypePtr base;
+
+ /*
+ * TODO: Correct the error code; XML_SCHEMAP_COS_CT_EXTENDS_1_1 is used
+ * temporarily only.
+ */
+ base = type->baseType;
+ if (base->flags & XML_SCHEMAS_TYPE_FINAL_RESTRICTION) {
+ /*
+ * SPEC (1) "The {base type definition} must be a complex type
+ * definition whose {final} does not contain restriction."
+ */
+ xmlSchemaPCustomErr(ctxt,
+ XML_SCHEMAP_COS_CT_EXTENDS_1_1,
+ NULL, type, NULL,
+ "The 'final' of the base type definition "
+ "contains 'restriction'", NULL);
+ return (XML_SCHEMAP_COS_CT_EXTENDS_1_1);
+ }
+ /*
+ * NOTE (3) and (4) are done in xmlSchemaBuildAttributeValidation().
+ *
+ * SPEC (5) "One of the following must be true:"
+ */
+ if (base->builtInType == XML_SCHEMAS_ANYTYPE) {
/*
- * 2 If the {base type definition} is a simple type definition,
- * then all of the following must be true:
+ * SPEC (5.1) "The {base type definition} must be the
+ * ·ur-type definition·."
+ * PASS
*/
+ } else if ((type->contentType == XML_SCHEMA_CONTENT_SIMPLE) ||
+ (type->contentType == XML_SCHEMA_CONTENT_BASIC)) {
/*
- * 2.1 The {content type} must be the same simple type definition.
+ * SPEC (5.2.1) "The {content type} of the complex type definition
+ * must be a simple type definition"
+ *
+ * SPEC (5.2.2) "One of the following must be true:"
*/
+ if ((base->contentType == XML_SCHEMA_CONTENT_SIMPLE) ||
+ (base->contentType == XML_SCHEMA_CONTENT_BASIC)) {
+ /*
+ * SPEC (5.2.2.1) "The {content type} of the {base type
+ * definition} must be a simple type definition from which
+ * the {content type} is validly derived given the empty
+ * set as defined in Type Derivation OK (Simple) (§3.14.6)."
+ * URGENT TODO
+ */
+ } else if ((base->contentType == XML_SCHEMA_CONTENT_MIXED) &&
+ (xmlSchemaIsParticleEmptiable(
+ (xmlSchemaParticlePtr) base->subtypes))) {
+ /*
+ * SPEC (5.2.2.2) "The {base type definition} must be mixed
+ * and have a particle which is ·emptiable· as defined in
+ * Particle Emptiable (§3.9.6)."
+ * PASS
+ */
+ } else {
+ xmlSchemaPCustomErr(ctxt,
+ XML_SCHEMAP_COS_CT_EXTENDS_1_1,
+ NULL, type, NULL,
+ "The content type of the base type must be either "
+ "a simple type or 'mixed' and an emptiable particle", NULL);
+ return (XML_SCHEMAP_COS_CT_EXTENDS_1_1);
+ }
+ } else if (type->contentType == XML_SCHEMA_CONTENT_EMPTY) {
/*
- * 2.2 The {final} of the {base type definition} must not contain
- * extension
+ * SPEC (5.3.1) "The {content type} of the complex type itself must
+ * be empty"
*/
+ if (base->contentType == XML_SCHEMA_CONTENT_EMPTY) {
+ /*
+ * SPEC (5.3.2.1) "The {content type} of the {base type
+ * definition} must also be empty."
+ * PASS
+ */
+ } else if (((base->contentType == XML_SCHEMA_CONTENT_ELEMENTS) ||
+ (base->contentType == XML_SCHEMA_CONTENT_MIXED)) &&
+ xmlSchemaIsParticleEmptiable(
+ (xmlSchemaParticlePtr) base->subtypes)) {
+ /*
+ * SPEC (5.3.2.2) "The {content type} of the {base type
+ * definition} must be elementOnly or mixed and have a particle
+ * which is ·emptiable· as defined in Particle Emptiable (§3.9.6)."
+ * PASS
+ */
+ } else {
+ xmlSchemaPCustomErr(ctxt,
+ XML_SCHEMAP_COS_CT_EXTENDS_1_1,
+ NULL, type, NULL,
+ "The content type of the base type must be either "
+ "empty or 'mixed' (or 'elements-only') and an emptiable "
+ "particle", NULL);
+ return (XML_SCHEMAP_COS_CT_EXTENDS_1_1);
+ }
+ } else if ((type->contentType == XML_SCHEMA_CONTENT_ELEMENTS) ||
+ ((type->contentType == XML_SCHEMA_CONTENT_MIXED) &&
+ (base->contentType == XML_SCHEMA_CONTENT_MIXED))) {
+ /*
+ * SPEC (5.4.1.1) "The {content type} of the complex type definition
+ * itself must be element-only"
+ * SPEC (5.4.1.2) "The {content type} of the complex type definition
+ * itself and of the {base type definition} must be mixed"
+ */
+ /*
+ * SPEC (5.4.2) "The particle of the complex type definition itself
+ * must be a ·valid restriction· of the particle of the {content
+ * type} of the {base type definition} as defined in Particle Valid
+ * (Restriction) (§3.9.6).
+ * URGENT TODO
+ */
+ } else {
+ xmlSchemaPCustomErr(ctxt,
+ XML_SCHEMAP_COS_CT_EXTENDS_1_1,
+ NULL, type, NULL,
+ "The type is not a valid restriction of its base type", NULL);
+ return (XML_SCHEMAP_COS_CT_EXTENDS_1_1);
}
+ return (0);
+}
+/**
+ * xmlSchemaCheckCTPropertiesCorrect:
+ * @ctxt: the schema parser context
+ * @type: the complex type definition
+ *
+ * (3.4.6) Constraints on Complex Type Definition Schema Components
+ *
+ * Returns 0 if the constraints are satisfied, a positive
+ * error code if not and -1 if an internal error occured.
+ */
+static int
+xmlSchemaCheckCTComponent(xmlSchemaParserCtxtPtr ctxt,
+ xmlSchemaTypePtr type)
+{
+ int ret;
+ /*
+ * Complex Type Definition Properties Correct
+ */
+ ret = xmlSchemaCheckCTPropsCorrect(ctxt, type);
+ if (ret != 0)
+ return (ret);
+ if (type->flags & XML_SCHEMAS_TYPE_DERIVATION_METHOD_EXTENSION)
+ ret = xmlSchemaCheckCOSCTExtends(ctxt, type);
+ else
+ ret = xmlSchemaCheckDerivationOKRestriction(ctxt, type);
+ return (ret);
}
+/**
+ * xmlSchemaCheckSRCCT:
+ * @ctxt: the schema parser context
+ * @type: the complex type definition
+ *
+ * (3.4.3) Constraints on XML Representations of Complex Type Definitions:
+ * Schema Representation Constraint:
+ * Complex Type Definition Representation OK (src-ct)
+ *
+ * Returns 0 if the constraints are satisfied, a positive
+ * error code if not and -1 if an internal error occured.
+ */
static int
xmlSchemaCheckSRCCT(xmlSchemaParserCtxtPtr ctxt,
xmlSchemaTypePtr type)
{
- xmlSchemaTypePtr base, content;
- int OK = 0;
+ xmlSchemaTypePtr base;
+ int ret = 0;
/*
* TODO: Adjust the error codes here, as I used
* XML_SCHEMAP_SRC_CT_1 only yet.
*/
- /*
- * Schema Representation Constraint:
- * Complex Type Definition Representation OK
- */
base = type->baseType;
- if (base == NULL) {
- xmlSchemaPCustomErr(ctxt, XML_SCHEMAP_INTERNAL, NULL, type, NULL,
- "Internal error: xmlSchemaCheckSRCCT, '%s', no base type",
- type->name);
- return (-1);
- }
-
- if (type->subtypes != NULL) {
- if (type->subtypes->type == XML_SCHEMA_TYPE_COMPLEX_CONTENT) {
- if IS_COMPLEX_TYPE(base) {
- /*
- * 1 If the <complexContent> alternative is chosen, the type definition
- * ·resolved· to by the ·actual value· of the base [attribute]
- * must be a complex type definition;
+ if (type->contentType != XML_SCHEMA_CONTENT_SIMPLE) {
+ /*
+ * 1 If the <complexContent> alternative is chosen, the type definition
+ * ·resolved· to by the ·actual value· of the base [attribute]
+ * must be a complex type definition;
+ */
+ if (! IS_COMPLEX_TYPE(base)) {
+ xmlChar *str = NULL;
+ xmlSchemaPCustomErr(ctxt,
+ XML_SCHEMAP_SRC_CT_1,
+ NULL, type, type->node,
+ "If using <complexContent>, the base type is expected to be "
+ "a complex type. The base type '%s' is a simple type",
+ xmlSchemaFormatQName(&str, base->targetNamespace,
+ base->name));
+ FREE_AND_NULL(str)
+ return (XML_SCHEMAP_SRC_CT_1);
+ }
+ } else {
+ /*
+ * SPEC
+ * 2 If the <simpleContent> alternative is chosen, all of the
+ * following must be true:
+ * 2.1 The type definition ·resolved· to by the ·actual value· of the
+ * base [attribute] must be one of the following:
+ */
+ if (IS_SIMPLE_TYPE(base)) {
+ if ((type->flags &
+ XML_SCHEMAS_TYPE_DERIVATION_METHOD_EXTENSION) == 0) {
+ xmlChar *str = NULL;
+ /*
+ * 2.1.3 only if the <extension> alternative is also
+ * chosen, a simple type definition.
*/
+ /* TODO: Change error code to ..._SRC_CT_2_1_3. */
xmlSchemaPCustomErr(ctxt,
XML_SCHEMAP_SRC_CT_1,
NULL, type, NULL,
- "The base type is not a complex type", NULL);
+ "If using <simpleContent> and <restriction>, the base "
+ "type must be a complex type. The base type '%s' is "
+ "a simple type",
+ xmlSchemaFormatQName(&str, base->targetNamespace,
+ base->name));
+ FREE_AND_NULL(str)
return (XML_SCHEMAP_SRC_CT_1);
- }
- } else if (type->subtypes->type == XML_SCHEMA_TYPE_SIMPLE_CONTENT) {
-
- if IS_SIMPLE_TYPE(base) {
- if (type->flags &
- XML_SCHEMAS_TYPE_DERIVATION_METHOD_RESTRICTION) {
- /*
- * 2.1.3 only if the <extension> alternative is also
- * chosen, a simple type definition.
- */
- /* TODO: Change error code to ..._SRC_CT_2_1_3. */
- xmlSchemaPCustomErr(ctxt,
- XML_SCHEMAP_SRC_CT_1,
+ }
+ } else {
+ /* Base type is a complex type. */
+ if ((base->contentType == XML_SCHEMA_CONTENT_SIMPLE) ||
+ (base->contentType == XML_SCHEMA_CONTENT_BASIC)) {
+ /*
+ * 2.1.1 a complex type definition whose {content type} is a
+ * simple type definition;
+ * PASS
+ */
+ if (base->contentTypeDef == NULL) {
+ xmlSchemaPCustomErr(ctxt, XML_SCHEMAP_INTERNAL,
NULL, type, NULL,
- "A complex type (simple content) cannot restrict "
- "an other simple type",
- NULL);
- return (XML_SCHEMAP_SRC_CT_1);
+ "Internal error: xmlSchemaCheckSRCCT, "
+ "'%s', base type has no content type",
+ type->name);
+ return (-1);
}
- OK = 1;
+ } else if ((base->contentType == XML_SCHEMA_CONTENT_MIXED) &&
+ (type->flags &
+ XML_SCHEMAS_TYPE_DERIVATION_METHOD_RESTRICTION)) {
- } else { /* if IS_SIMPLE_TYPE(base) */
- if (base->contentType = XML_SCHEMA_CONTENT_MIXED) {
- /*
- * 2.1.2 only if the <restriction> alternative is also
- * chosen, a complex type definition whose {content type}
- * is mixed and a particle emptyable.
- */
- /*
- * FIXME TODO: Check for *empiable particle* is missing.
- */
- if ((type->flags &
- XML_SCHEMAS_TYPE_DERIVATION_METHOD_RESTRICTION) == 0) {
- xmlSchemaPCustomErr(ctxt,
- XML_SCHEMAP_SRC_CT_1,
- NULL, type, NULL,
- "A complex type (simple content) cannot "
- "extend an other complex type which has a "
- "content type of: 'mixed' and emptiable particle",
- NULL);
- return (XML_SCHEMAP_SRC_CT_1);
- }
- /*
- * NOTE: This will be fired as well, if the base type
- * is *'anyType'*.
- * NOTE: type->subtypes->subtypes will be the
- * <restriction> item.
- */
- if (type->subtypes->subtypes == NULL) {
- /* Yes, this is paranoid programming. */
- xmlSchemaPCustomErr(ctxt, XML_SCHEMAP_INTERNAL,
- NULL, type, NULL,
- "Internal error: xmlSchemaCheckSRCCT, "
- "'%s', <simpleContent> has no <restriction>",
- type->name);
- return (-1);
- }
+ /*
+ * 2.1.2 only if the <restriction> alternative is also
+ * chosen, a complex type definition whose {content type}
+ * is mixed and a particle emptiable.
+ */
+ if (! xmlSchemaIsParticleEmptiable(
+ (xmlSchemaParticlePtr) base->subtypes)) {
+ ret = XML_SCHEMAP_SRC_CT_1;
+ } else if ((type->contentTypeDef == NULL) ||
+ (type->contentTypeDef->baseType == NULL)) {
+ xmlChar *str = NULL;
/*
* 2.2 If clause 2.1.2 above is satisfied, then there
* must be a <simpleType> among the [children] of
* <restriction>.
- */
- if (type->subtypes->subtypes->type !=
- XML_SCHEMA_TYPE_SIMPLE) {
- /* TODO: Change error code to ..._SRC_CT_2_2. */
- xmlSchemaPCustomErr(ctxt,
- XML_SCHEMAP_SRC_CT_1,
- NULL, type, NULL,
- "A <simpleType> is expected among the children "
- "of <restriction>", NULL);
- return (XML_SCHEMAP_SRC_CT_1);
- }
- OK = 1;
- } else { /* if (base->contentType = XML_SCHEMA_CONTENT_MIXED)*/
- /*
- * 2.1.1 a complex type definition whose {content type} is a
- * simple type definition;
- */
- if (base->contentType == XML_SCHEMA_CONTENT_ELEMENTS) {
- xmlSchemaPCustomErr(ctxt,
- XML_SCHEMAP_SRC_CT_1,
- NULL, type, NULL,
- "A complex type (simple content) cannot "
- "be derived from the complex type '%s'",
- base->name);
- return (XML_SCHEMAP_SRC_CT_1);
- }
- content = base->contentTypeDef;
- if (content == NULL) {
- xmlSchemaPCustomErr(ctxt, XML_SCHEMAP_INTERNAL,
- NULL, type, NULL,
- "Internal error: xmlSchemaCheckSRCCT, "
- "'%s', base type has no content type",
- type->name);
- return (-1);
- }
- if (content->type != XML_SCHEMA_TYPE_SIMPLE) {
- xmlSchemaPCustomErr(ctxt,
- XML_SCHEMAP_SRC_CT_1,
- NULL, type, NULL,
- "A complex type (simple content) cannot "
- "be derived from the complex type '%s'",
- base->name);
- return (XML_SCHEMAP_SRC_CT_1);
- }
+ */
+ /* TODO: Change error code to ..._SRC_CT_2_2. */
+ xmlSchemaPCustomErr(ctxt,
+ XML_SCHEMAP_SRC_CT_1,
+ NULL, type, NULL,
+ "A <simpleType> is expected among the children "
+ "of <restriction>, if <simpleContent> is used and "
+ "the base type '%s' is a complex type",
+ xmlSchemaFormatQName(&str, base->targetNamespace,
+ base->name));
+ FREE_AND_NULL(str)
+ return (XML_SCHEMAP_SRC_CT_1);
}
- }
- }
+ } else {
+ ret = XML_SCHEMAP_SRC_CT_1;
+ }
+ }
+ if (ret > 0) {
+ xmlChar *str = NULL;
+ if (type->flags & XML_SCHEMAS_TYPE_DERIVATION_METHOD_RESTRICTION) {
+ xmlSchemaPCustomErr(ctxt,
+ XML_SCHEMAP_SRC_CT_1,
+ NULL, type, NULL,
+ "If <simpleContent> and <restriction> is used, the "
+ "base type must be a simple type or a complex type with "
+ "mixed content and particle emptiable. The base type "
+ "'%s' is none of those",
+ xmlSchemaFormatQName(&str, base->targetNamespace,
+ base->name));
+ } else {
+ xmlSchemaPCustomErr(ctxt,
+ XML_SCHEMAP_SRC_CT_1,
+ NULL, type, NULL,
+ "If <simpleContent> and <extension> is used, the "
+ "base type must be a simple type. The base type '%s' "
+ "is a complex type",
+ xmlSchemaFormatQName(&str, base->targetNamespace,
+ base->name));
+ }
+ FREE_AND_NULL(str)
+ }
}
/*
- * TODO: 3 The corresponding complex type definition component must
+ * SPEC (3) "The corresponding complex type definition component must
* satisfy the conditions set out in Constraints on Complex Type
- * Definition Schema Components (§3.4.6);
- *
- * TODO: 4 If clause 2.2.1 or clause 2.2.2 in the correspondence specification
+ * Definition Schema Components (§3.4.6);"
+ * NOTE (3) will be done in xmlSchemaTypeFixup().
+ */
+ /*
+ * SPEC (4) If clause 2.2.1 or clause 2.2.2 in the correspondence specification
* above for {attribute wildcard} is satisfied, the intensional
* intersection must be expressible, as defined in Attribute Wildcard
* Intersection (§3.10.6).
+ * NOTE (4) is done in xmlSchemaBuildAttributeValidation().
*/
-
+ return (ret);
}
-#endif
-/**
- * xmlSchemaGroupDefFixup:
- * @typeDecl: the schema model group definition
- * @ctxt: the schema parser context
- *
- * Fixes model group definitions.
- */
+#define FACET_RESTR_MUTUAL_ERR(fac1, fac2) \
+ xmlSchemaPCustomErrExt(pctxt, \
+ XML_SCHEMAP_INVALID_FACET_VALUE, \
+ NULL, (xmlSchemaTypePtr) fac1, fac1->node, \
+ "It is an error for both '%s' and '%s' to be specified on the "\
+ "same type definition", \
+ BAD_CAST xmlSchemaFacetTypeToString(fac1->type), \
+ BAD_CAST xmlSchemaFacetTypeToString(fac2->type), NULL);
+
+#define FACET_RESTR_ERR(fac1, msg) \
+ xmlSchemaPCustomErr(pctxt, \
+ XML_SCHEMAP_INVALID_FACET_VALUE, \
+ NULL, (xmlSchemaTypePtr) fac1, fac1->node, \
+ msg, NULL);
+
+#define FACET_RESTR_FIXED_ERR(fac) \
+ xmlSchemaPCustomErr(pctxt, \
+ XML_SCHEMAP_INVALID_FACET_VALUE, \
+ NULL, (xmlSchemaTypePtr) fac, fac->node, \
+ "The base type's facet is 'fixed', thus the value must not " \
+ "differ", NULL);
+
static void
-xmlSchemaGroupDefFixup(xmlSchemaTypePtr group,
- xmlSchemaParserCtxtPtr ctxt,
- const xmlChar * name ATTRIBUTE_UNUSED)
-{
- group->contentType = XML_SCHEMA_CONTENT_ELEMENTS;
- if ((group->ref != NULL) && (group->subtypes == NULL)) {
- xmlSchemaTypePtr groupDef;
- /*
- * Resolve the reference.
- */
- groupDef = xmlSchemaGetGroup(ctxt->schema, group->ref,
- group->refNs);
- if (groupDef == NULL) {
- xmlSchemaPResCompAttrErr(ctxt,
- XML_SCHEMAP_SRC_RESOLVE,
- NULL, group, NULL,
- "ref", group->ref, group->refNs,
- XML_SCHEMA_TYPE_GROUP, NULL);
- return;
- }
- group->subtypes = groupDef;
- }
+xmlSchemaDeriveFacetErr(xmlSchemaParserCtxtPtr pctxt,
+ xmlSchemaFacetPtr facet1,
+ xmlSchemaFacetPtr facet2,
+ int lessGreater,
+ int orEqual,
+ int ofBase)
+{
+ xmlChar *msg = NULL;
+
+ msg = xmlStrdup(BAD_CAST "'");
+ msg = xmlStrcat(msg, xmlSchemaFacetTypeToString(facet1->type));
+ msg = xmlStrcat(msg, BAD_CAST "' has to be");
+ if (lessGreater == 0)
+ msg = xmlStrcat(msg, BAD_CAST " equal to");
+ if (lessGreater == 1)
+ msg = xmlStrcat(msg, BAD_CAST " greater than");
+ else
+ msg = xmlStrcat(msg, BAD_CAST " less than");
+
+ if (orEqual)
+ msg = xmlStrcat(msg, BAD_CAST " or equal to");
+ msg = xmlStrcat(msg, BAD_CAST " '");
+ msg = xmlStrcat(msg, xmlSchemaFacetTypeToString(facet2->type));
+ if (ofBase)
+ msg = xmlStrcat(msg, BAD_CAST "' of the base type");
+ else
+ msg = xmlStrcat(msg, BAD_CAST "'");
+
+ xmlSchemaPCustomErr(pctxt,
+ XML_SCHEMAP_INVALID_FACET_VALUE,
+ NULL, (xmlSchemaTypePtr) facet1, facet1->node,
+ (const char *) msg, NULL);
+
+ if (msg != NULL)
+ xmlFree(msg);
}
-#if 0 /* Enable when the content type will be computed. */
static int
-xmlSchemaComputeContentType(xmlSchemaParserCtxtPtr ctxt,
- xmlSchemaTypePtr type)
+xmlSchemaDeriveAndValidateFacets(xmlSchemaParserCtxtPtr pctxt,
+ xmlSchemaTypePtr type)
{
- xmlSchemaTypePtr base, res = NULL;
+ xmlSchemaTypePtr base = type->baseType;
+ xmlSchemaFacetLinkPtr link, cur, last = NULL;
+ xmlSchemaFacetPtr facet, bfacet,
+ flength = NULL, ftotdig = NULL, ffracdig = NULL,
+ fmaxlen = NULL, fminlen = NULL, /* facets of the current type */
+ fmininc = NULL, fmaxinc = NULL,
+ fminexc = NULL, fmaxexc = NULL,
+ bflength = NULL, bftotdig = NULL, bffracdig = NULL,
+ bfmaxlen = NULL, bfminlen = NULL, /* facets of the base type */
+ bfmininc = NULL, bfmaxinc = NULL,
+ bfminexc = NULL, bfmaxexc = NULL;
+ int res, err = 0, fixedErr;
+ /*
+ * 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 ((type->facetSet == NULL) && (base->facetSet == NULL))
+ return (0);
- base = type->baseType;
- if (base == NULL) {
- xmlSchemaPCustomErr(ctxt,
- XML_SCHEMAP_INTERNAL,
- NULL, type, NULL,
- "Internal error: xmlSchemaGetContentType, "
- "the complex type '%s' has no base type", type->name);
- return (-1);
- }
- if (IS_ANYTYPE(base) || (type->subtypes->type ==
- XML_SCHEMA_TYPE_COMPLEX_CONTENT)) {
- xmlSchemaTypePtr start;
+ last = type->facetSet;
+ if (last != NULL)
+ while (last->next != NULL)
+ last = last->next;
+
+ for (cur = type->facetSet; cur != NULL; cur = cur->next) {
+ facet = cur->facet;
+ switch (facet->type) {
+ case XML_SCHEMA_FACET_LENGTH:
+ flength = facet; break;
+ case XML_SCHEMA_FACET_MINLENGTH:
+ fminlen = facet; break;
+ case XML_SCHEMA_FACET_MININCLUSIVE:
+ fmininc = facet; break;
+ case XML_SCHEMA_FACET_MINEXCLUSIVE:
+ fminexc = facet; break;
+ case XML_SCHEMA_FACET_MAXLENGTH:
+ fmaxlen = facet; break;
+ case XML_SCHEMA_FACET_MAXINCLUSIVE:
+ fmaxinc = facet; break;
+ case XML_SCHEMA_FACET_MAXEXCLUSIVE:
+ fmaxexc = facet; break;
+ case XML_SCHEMA_FACET_TOTALDIGITS:
+ ftotdig = facet; break;
+ case XML_SCHEMA_FACET_FRACTIONDIGITS:
+ ffracdig = facet; break;
+ default:
+ break;
+ }
+ }
+ for (cur = base->facetSet; cur != NULL; cur = cur->next) {
+ facet = cur->facet;
+ switch (facet->type) {
+ case XML_SCHEMA_FACET_LENGTH:
+ bflength = facet; break;
+ case XML_SCHEMA_FACET_MINLENGTH:
+ bfminlen = facet; break;
+ case XML_SCHEMA_FACET_MININCLUSIVE:
+ bfmininc = facet; break;
+ case XML_SCHEMA_FACET_MINEXCLUSIVE:
+ bfminexc = facet; break;
+ case XML_SCHEMA_FACET_MAXLENGTH:
+ bfmaxlen = facet; break;
+ case XML_SCHEMA_FACET_MAXINCLUSIVE:
+ bfmaxinc = facet; break;
+ case XML_SCHEMA_FACET_MAXEXCLUSIVE:
+ bfmaxexc = facet; break;
+ case XML_SCHEMA_FACET_TOTALDIGITS:
+ bftotdig = facet; break;
+ case XML_SCHEMA_FACET_FRACTIONDIGITS:
+ bffracdig = facet; break;
+ default:
+ break;
+ }
+ }
+ err = 0;
+ /*
+ * length and minLength or maxLength (2.2) + (3.2)
+ */
+ if (flength && (fminlen || fmaxlen)) {
+ FACET_RESTR_ERR(flength, "It is an error for both 'length' and "
+ "either of 'minLength' or 'maxLength' to be specified on "
+ "the same type definition")
+ }
+ /*
+ * Mutual exclusions in the same derivation step.
+ */
+ if ((fmaxinc) && (fmaxexc)) {
+ /*
+ * SCC "maxInclusive and maxExclusive"
+ */
+ FACET_RESTR_MUTUAL_ERR(fmaxinc, fmaxexc)
+ }
+ if ((fmininc) && (fminexc)) {
+ /*
+ * SCC "minInclusive and minExclusive"
+ */
+ FACET_RESTR_MUTUAL_ERR(fmininc, fminexc)
+ }
+
+ if (flength && bflength) {
/*
- * Effective 'mixed'.
+ * SCC "length valid restriction"
+ * The values have to be equal.
*/
- if (type->flags & XML_SCHEMAS_TYPE_MIXED)
- type->contentType = XML_SCHEMA_CONTENT_MIXED;
+ res = xmlSchemaCompareValues(flength->val, bflength->val);
+ if (res == -2)
+ goto internal_error;
/*
- * Effective content.
+ * TODO: Maby a bug in the spec.
*/
- if (IS_ANYTYPE(base))
- start = type;
- else
- start = type->subtypes;
-
- } else { /* if XML_SCHEMA_TYPE_COMPLEX_CONTENT */
- xmlSchemaTypePtr baseContentItem;
-
+ if (res != 0)
+ xmlSchemaDeriveFacetErr(pctxt, flength, bflength, 0, 0, 1);
+ if ((res != 0) && (bflength->fixed)) {
+ FACET_RESTR_FIXED_ERR(flength)
+ }
+
+ }
+ if (fminlen && bfminlen) {
/*
- * Complex type with simple content.
+ * SCC "minLength valid restriction"
+ * minLength >= BASE minLength
*/
- if IS_COMPLEX_TYPE(base) {
- if (type->flags & XML_SCHEMAS_TYPE_DERIVATION_METHOD_RESTRICTION) {
- /*
- * Summary: a complex type (simple content) can *restrict*
- * a complex type with the following content type:
- * 1. 'mixed' and an emptiable particle
- * 2. simple type
- */
- if (base->contentType == XML_SCHEMA_CONTENT_MIXED) {
- /*
- * 2 if the {content type} of the base type is mixed and a
- * particle which is ·emptiable·,
- * [...]
- * then starting from the simple type definition
- * corresponding to the <simpleType> among the [children]
- * of <restriction> (**which must be present**)
- *
- * FIXME TODO: Handle "emptiable particle".
- */
- res = type->subtypes->subtypes;
- if (res == NULL) {
- xmlSchemaPCustomErr(ctxt,
- XML_SCHEMAP_INTERNAL,
- NULL, type, NULL,
- "Internal error: xmlSchemaGetContentType, "
- "CT '%s' (restricting): <simpleContent> has no "
- "<restriction>",
- type->name);
- return (-1);
- }
-
- res->subtypes;
- if (res == NULL) {
- xmlSchemaPCustomErr(ctxt,
- XML_SCHEMAP_INTERNAL,
- NULL, type, NULL,
- "Internal error: xmlSchemaGetContentType, "
- "CT '%s' (restricting): <restriction> has no "
- "mandatory <simpleType>",
- type->name);
- return (-1);
- }
- } else {
- baseContentItem = base->contentTypeDef;
- if (baseContentItem == NULL) {
- xmlSchemaPCustomErr(ctxt,
- XML_SCHEMAP_INTERNAL,
- NULL, type, NULL,
- "Internal error: xmlSchemaGetContentType, "
- "CT '%s' (restricting), the base type has no "
- "content type", type->name);
- return (-1);
- }
- if IS_SIMPLE_TYPE(baseContentItem) {
+ res = xmlSchemaCompareValues(fminlen->val, bfminlen->val);
+ if (res == -2)
+ goto internal_error;
+ if (res == -1)
+ xmlSchemaDeriveFacetErr(pctxt, fminlen, bfminlen, 1, 1, 1);
+ if ((res != 0) && (bfminlen->fixed)) {
+ FACET_RESTR_FIXED_ERR(fminlen)
+ }
+ }
+ if (fmaxlen && bfmaxlen) {
+ /*
+ * SCC "maxLength valid restriction"
+ * maxLength <= BASE minLength
+ */
+ res = xmlSchemaCompareValues(fmaxlen->val, bfmaxlen->val);
+ if (res == -2)
+ goto internal_error;
+ if (res == 1)
+ xmlSchemaDeriveFacetErr(pctxt, fmaxlen, bfmaxlen, -1, 1, 1);
+ if ((res != 0) && (bfmaxlen->fixed)) {
+ FACET_RESTR_FIXED_ERR(fmaxlen)
+ }
+ }
+ /*
+ * SCC "length and minLength or maxLength"
+ */
+ if (! flength)
+ flength = bflength;
+ if (flength) {
+ if (! fminlen)
+ flength = bflength;
+ if (fminlen) {
+ /* (1.1) length >= minLength */
+ res = xmlSchemaCompareValues(flength->val, fminlen->val);
+ if (res == -2)
+ goto internal_error;
+ if (res == -1)
+ xmlSchemaDeriveFacetErr(pctxt, flength, fminlen, 1, 1, 0);
+ }
+ if (! fmaxlen)
+ fmaxlen = bfmaxlen;
+ if (fmaxlen) {
+ /* (2.1) length <= maxLength */
+ res = xmlSchemaCompareValues(flength->val, fmaxlen->val);
+ if (res == -2)
+ goto internal_error;
+ if (res == 1)
+ xmlSchemaDeriveFacetErr(pctxt, flength, fmaxlen, -1, 1, 0);
+ }
+ }
+ if (fmaxinc) {
+ /*
+ * "maxInclusive"
+ */
+ if (fmininc) {
+ /* SCC "maxInclusive >= minInclusive" */
+ res = xmlSchemaCompareValues(fmaxinc->val, fmininc->val);
+ if (res == -2)
+ goto internal_error;
+ if (res == -1) {
+ xmlSchemaDeriveFacetErr(pctxt, fmaxinc, fmininc, 1, 1, 0);
+ }
+ }
+ /*
+ * SCC "maxInclusive valid restriction"
+ */
+ if (bfmaxinc) {
+ /* maxInclusive <= BASE maxInclusive */
+ res = xmlSchemaCompareValues(fmaxinc->val, bfmaxinc->val);
+ if (res == -2)
+ goto internal_error;
+ if (res == 1)
+ xmlSchemaDeriveFacetErr(pctxt, fmaxinc, bfmaxinc, -1, 1, 1);
+ if ((res != 0) && (bfmaxinc->fixed)) {
+ FACET_RESTR_FIXED_ERR(fmaxinc)
+ }
+ }
+ if (bfmaxexc) {
+ /* maxInclusive < BASE maxExclusive */
+ res = xmlSchemaCompareValues(fmaxinc->val, bfmaxexc->val);
+ if (res == -2)
+ goto internal_error;
+ if (res != -1) {
+ xmlSchemaDeriveFacetErr(pctxt, fmaxinc, bfmaxexc, -1, 0, 1);
+ }
+ }
+ if (bfmininc) {
+ /* maxInclusive >= BASE minInclusive */
+ res = xmlSchemaCompareValues(fmaxinc->val, bfmininc->val);
+ if (res == -2)
+ goto internal_error;
+ if (res == -1) {
+ xmlSchemaDeriveFacetErr(pctxt, fmaxinc, bfmininc, 1, 1, 1);
+ }
+ }
+ if (bfminexc) {
+ /* maxInclusive > BASE minExclusive */
+ res = xmlSchemaCompareValues(fmaxinc->val, bfminexc->val);
+ if (res == -2)
+ goto internal_error;
+ if (res != 1) {
+ xmlSchemaDeriveFacetErr(pctxt, fmaxinc, bfminexc, 1, 0, 1);
+ }
+ }
+ }
+ if (fmaxexc) {
+ /*
+ * "maxExclusive >= minExclusive"
+ */
+ if (fminexc) {
+ res = xmlSchemaCompareValues(fmaxexc->val, fminexc->val);
+ if (res == -2)
+ goto internal_error;
+ if (res == -1) {
+ xmlSchemaDeriveFacetErr(pctxt, fmaxexc, fminexc, 1, 1, 0);
+ }
+ }
+ /*
+ * "maxExclusive valid restriction"
+ */
+ if (bfmaxexc) {
+ /* maxExclusive <= BASE maxExclusive */
+ res = xmlSchemaCompareValues(fmaxexc->val, bfmaxexc->val);
+ if (res == -2)
+ goto internal_error;
+ if (res == 1) {
+ xmlSchemaDeriveFacetErr(pctxt, fmaxexc, bfmaxexc, -1, 1, 1);
+ }
+ if ((res != 0) && (bfmaxexc->fixed)) {
+ FACET_RESTR_FIXED_ERR(fmaxexc)
+ }
+ }
+ if (bfmaxinc) {
+ /* maxExclusive <= BASE maxInclusive */
+ res = xmlSchemaCompareValues(fmaxexc->val, bfmaxinc->val);
+ if (res == -2)
+ goto internal_error;
+ if (res == 1) {
+ xmlSchemaDeriveFacetErr(pctxt, fmaxexc, bfmaxinc, -1, 1, 1);
+ }
+ }
+ if (bfmininc) {
+ /* maxExclusive > BASE minInclusive */
+ res = xmlSchemaCompareValues(fmaxexc->val, bfmininc->val);
+ if (res == -2)
+ goto internal_error;
+ if (res != 1) {
+ xmlSchemaDeriveFacetErr(pctxt, fmaxexc, bfmininc, 1, 0, 1);
+ }
+ }
+ if (bfminexc) {
+ /* maxExclusive > BASE minExclusive */
+ res = xmlSchemaCompareValues(fmaxexc->val, bfminexc->val);
+ if (res == -2)
+ goto internal_error;
+ if (res != 1) {
+ xmlSchemaDeriveFacetErr(pctxt, fmaxexc, bfminexc, 1, 0, 1);
+ }
+ }
+ }
+ if (fminexc) {
+ /*
+ * "minExclusive < maxInclusive"
+ */
+ if (fmaxinc) {
+ res = xmlSchemaCompareValues(fminexc->val, fmaxinc->val);
+ if (res == -2)
+ goto internal_error;
+ if (res != -1) {
+ xmlSchemaDeriveFacetErr(pctxt, fminexc, fmaxinc, -1, 0, 0);
+ }
+ }
+ /*
+ * "minExclusive valid restriction"
+ */
+ if (bfminexc) {
+ /* minExclusive >= BASE minExclusive */
+ res = xmlSchemaCompareValues(fminexc->val, bfminexc->val);
+ if (res == -2)
+ goto internal_error;
+ if (res == -1) {
+ xmlSchemaDeriveFacetErr(pctxt, fminexc, bfminexc, 1, 1, 1);
+ }
+ if ((res != 0) && (bfminexc->fixed)) {
+ FACET_RESTR_FIXED_ERR(fminexc)
+ }
+ }
+ if (bfmaxinc) {
+ /* minExclusive <= BASE maxInclusive */
+ res = xmlSchemaCompareValues(fminexc->val, bfmaxinc->val);
+ if (res == -2)
+ goto internal_error;
+ if (res == 1) {
+ xmlSchemaDeriveFacetErr(pctxt, fminexc, bfmaxinc, -1, 1, 1);
+ }
+ }
+ if (bfmininc) {
+ /* minExclusive >= BASE minInclusive */
+ res = xmlSchemaCompareValues(fminexc->val, bfmininc->val);
+ if (res == -2)
+ goto internal_error;
+ if (res == -1) {
+ xmlSchemaDeriveFacetErr(pctxt, fminexc, bfmininc, 1, 1, 1);
+ }
+ }
+ if (bfmaxexc) {
+ /* minExclusive < BASE maxExclusive */
+ res = xmlSchemaCompareValues(fminexc->val, bfmaxexc->val);
+ if (res == -2)
+ goto internal_error;
+ if (res != -1) {
+ xmlSchemaDeriveFacetErr(pctxt, fminexc, bfmaxexc, -1, 0, 1);
+ }
+ }
+ }
+ if (fmininc) {
+ /*
+ * "minInclusive < maxExclusive"
+ */
+ if (fmaxexc) {
+ res = xmlSchemaCompareValues(fmininc->val, fmaxexc->val);
+ if (res == -2)
+ goto internal_error;
+ if (res != -1) {
+ xmlSchemaDeriveFacetErr(pctxt, fmininc, fmaxexc, -1, 0, 0);
+ }
+ }
+ /*
+ * "minExclusive valid restriction"
+ */
+ if (bfmininc) {
+ /* minInclusive >= BASE minInclusive */
+ res = xmlSchemaCompareValues(fmininc->val, bfmininc->val);
+ if (res == -2)
+ goto internal_error;
+ if (res == -1) {
+ xmlSchemaDeriveFacetErr(pctxt, fmininc, bfmininc, 1, 1, 1);
+ }
+ if ((res != 0) && (bfmininc->fixed)) {
+ FACET_RESTR_FIXED_ERR(fmininc)
+ }
+ }
+ if (bfmaxinc) {
+ /* minInclusive <= BASE maxInclusive */
+ res = xmlSchemaCompareValues(fmininc->val, bfmaxinc->val);
+ if (res == -2)
+ goto internal_error;
+ if (res == -1) {
+ xmlSchemaDeriveFacetErr(pctxt, fmininc, bfmaxinc, -1, 1, 1);
+ }
+ }
+ if (bfminexc) {
+ /* minInclusive > BASE minExclusive */
+ res = xmlSchemaCompareValues(fmininc->val, bfminexc->val);
+ if (res == -2)
+ goto internal_error;
+ if (res != 1)
+ xmlSchemaDeriveFacetErr(pctxt, fmininc, bfminexc, 1, 0, 1);
+ }
+ if (bfmaxexc) {
+ /* minInclusive < BASE maxExclusive */
+ res = xmlSchemaCompareValues(fmininc->val, bfmaxexc->val);
+ if (res == -2)
+ goto internal_error;
+ if (res != -1)
+ xmlSchemaDeriveFacetErr(pctxt, fmininc, bfmaxexc, -1, 0, 1);
+ }
+ }
+ if (ftotdig && bftotdig) {
+ /*
+ * SCC " totalDigits valid restriction"
+ * totalDigits <= BASE totalDigits
+ */
+ res = xmlSchemaCompareValues(ftotdig->val, bftotdig->val);
+ if (res == -2)
+ goto internal_error;
+ if (res == 1)
+ xmlSchemaDeriveFacetErr(pctxt, ftotdig, bftotdig,
+ -1, 1, 1);
+ if ((res != 0) && (bftotdig->fixed)) {
+ FACET_RESTR_FIXED_ERR(ftotdig)
+ }
+ }
+ if (ffracdig && bffracdig) {
+ /*
+ * SCC "fractionDigits valid restriction"
+ * fractionDigits <= BASE fractionDigits
+ */
+ res = xmlSchemaCompareValues(ffracdig->val, bffracdig->val);
+ if (res == -2)
+ goto internal_error;
+ if (res == 1)
+ xmlSchemaDeriveFacetErr(pctxt, ffracdig, bffracdig,
+ -1, 1, 1);
+ if ((res != 0) && (bffracdig->fixed)) {
+ FACET_RESTR_FIXED_ERR(ffracdig)
+ }
+ }
+ /*
+ * SCC "fractionDigits less than or equal to totalDigits"
+ */
+ if (! ftotdig)
+ ftotdig = bftotdig;
+ if (! ffracdig)
+ ffracdig = bffracdig;
+ if (ftotdig && ffracdig) {
+ res = xmlSchemaCompareValues(ffracdig->val, ftotdig->val);
+ if (res == -2)
+ goto internal_error;
+ if (res == 1)
+ xmlSchemaDeriveFacetErr(pctxt, ffracdig, ftotdig,
+ -1, 1, 0);
+ }
+ /*
+ * *Enumerations* won' be added here, since only the first set
+ * of enumerations in the ancestor-or-self axis is used
+ * for validation, plus we need to use the base type of those
+ * enumerations for whitespace.
+ *
+ * *Patterns*: won't be add here, since they are ORed at
+ * type level and ANDed at ancestor level. This will
+ * happed during validation by walking the base axis
+ * of the type.
+ */
+ for (cur = base->facetSet; cur != NULL; cur = cur->next) {
+ bfacet = cur->facet;
+ /*
+ * Special handling of enumerations and patterns.
+ * TODO: hmm, they should not appear in the set, so remove this.
+ */
+ if ((bfacet->type == XML_SCHEMA_FACET_PATTERN) ||
+ (bfacet->type == XML_SCHEMA_FACET_ENUMERATION))
+ continue;
+ /*
+ * Search for a duplicate facet in the current type.
+ */
+ link = type->facetSet;
+ err = 0;
+ fixedErr = 0;
+ while (link != NULL) {
+ facet = link->facet;
+ if (facet->type == bfacet->type) {
+ switch (facet->type) {
+ case XML_SCHEMA_FACET_WHITESPACE:
/*
- * 1 If the base type is a complex type whose own
- * {content type} is a simple type and the <restriction>
- * alternative is chosen
+ * The whitespace must be stronger.
*/
- /* type->subtypes->subtypes will be the restriction item.*/
- res = type->subtypes->subtypes;
- if (res == NULL) {
- xmlSchemaPCustomErr(ctxt,
- XML_SCHEMAP_INTERNAL,
- NULL, type, NULL,
- "Internal error: xmlSchemaGetContentType, "
- "CT '%s' (restricting): <simpleType> has no "
- "<restriction>", type->name);
- return (-1);
+ if (facet->whitespace < bfacet->whitespace) {
+ FACET_RESTR_ERR(flength,
+ "The 'whitespace' value has to be equal to "
+ "or stronger than the 'whitespace' value of "
+ "the base type")
}
- /*
- * 1.1 the simple type definition corresponding to the
- * <simpleType> among the [children] of <restriction>if
- * there is one;
- */
- res = res->subtypes;
- if (res == NULL) {
- /*
- * 1.2 otherwise the {content type}
- * of the base type .
- */
- res = baseContentItem;
+ if ((bfacet->fixed) &&
+ (facet->whitespace != bfacet->whitespace)) {
+ FACET_RESTR_FIXED_ERR(facet)
}
- }
- }
- /*
- * SPECIAL TODO: If *restricting* the spec wants us to
- * create an *additional* simple type which restricts the
- * located simple type; we won't do this yet, and look how
- * far we get with it.
- */
- } else { /* if XML_SCHEMAS_TYPE_DERIVATION_METHOD_RESTRICTION */
- /*
- * Summary: a complex type (simple content) can *extend*
- * only a complex base with a simple type as content.
- */
- /*
- * 3 If the type definition ·resolved· to by the ·actual
- * value· of the base [attribute] is a complex type
- * definition (whose own {content type} *must be* a simple
- * type definition, see below) and the *<extension>*
- * alternative is chosen, then the {content type} of that
- * complex type definition;
- */
- res = base->contentTypeDef;
- if (res == NULL) {
- xmlSchemaPCustomErr(ctxt,
- XML_SCHEMAP_INTERNAL,
- NULL, type, NULL,
- "Internal error: xmlSchemaGetContentType, "
- "CT '%s' (extending), the base type has no content "
- "type", type->name);
- return (-1);
- }
- if (! IS_SIMPLE_TYPE(res)) {
- xmlSchemaPCustomErr(ctxt,
- XML_SCHEMAP_INTERNAL,
- NULL, type, NULL,
- "Internal error: xmlSchemaGetContentType, "
- "CT '%s' (extending), the content type of the "
- "base is not a simple type", type->name);
- return (-1);
+ break;
+ default:
+ break;
}
- }
- } else /* if IS_COMPLEX_TYPE(base) */
- if (type->flags & XML_SCHEMAS_TYPE_DERIVATION_METHOD_EXTENSION) {
- /*
- * 4 otherwise (the type definition ·resolved· to by the
- * ·actual value· of the base [attribute] is a simple type
- * definition and the <extension> alternative is chosen),
- * then that simple type definition.
- */
- res = base;
- }
- type->contentTypeDef = res;
- if (res == NULL) {
- xmlSchemaPCustomErr(ctxt,
- XML_SCHEMAP_INTERNAL,
- NULL, type, NULL,
- "Internal error: xmlSchemaGetContentType, "
- "'%s', the content type could not be determined",
- type->name);
- return (-1);
+ /* Duplicate found. */
+ break;
+ }
+ link = link->next;
}
-
+ /*
+ * If no duplicate was found: add the base types's facet
+ * to the set.
+ */
+ if (link == NULL) {
+ link = (xmlSchemaFacetLinkPtr)
+ xmlMalloc(sizeof(xmlSchemaFacetLink));
+ if (link == NULL) {
+ xmlSchemaPErrMemory(pctxt,
+ "deriving facets, creating a facet link", NULL);
+ return (-1);
+ }
+ link->facet = cur->facet;
+ link->next = NULL;
+ if (last == NULL)
+ type->facetSet = link;
+ else
+ last->next = link;
+ last = link;
+ }
+
}
-
+
+ return (0);
+internal_error:
+ xmlSchemaPCustomErr(pctxt,
+ XML_SCHEMAP_INVALID_FACET_VALUE,
+ NULL, type, NULL,
+ "Internal error: xmlSchemaDeriveAndValidateFacets", NULL);
+ return (-1);
}
-#endif
/**
* xmlSchemaTypeFixup:
@@ -13587,540 +15100,500 @@ xmlSchemaComputeContentType(xmlSchemaParserCtxtPtr ctxt,
* Fixes the content model of the type.
*/
static void
-xmlSchemaTypeFixup(xmlSchemaTypePtr item,
+xmlSchemaTypeFixup(xmlSchemaTypePtr type,
xmlSchemaParserCtxtPtr ctxt, const xmlChar * name)
{
- xmlSchemaTypePtr ctxtType;
-
- if (item == NULL)
+ if (type == NULL)
return;
- /*
- * Do not fixup built-in types.
- */
- if (item->type == XML_SCHEMA_TYPE_BASIC)
+ if ((type->type != XML_SCHEMA_TYPE_COMPLEX) &&
+ (type->type != XML_SCHEMA_TYPE_SIMPLE))
return;
- /*
- * Do not allow the following types to be typefixed, prior to
- * the corresponding simple/complex types.
- */
- if (ctxt->ctxtType == NULL) {
- switch (item->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:
+ if (! IS_NOT_TYPEFIXED(type))
+ return;
+ type->flags |= XML_SCHEMAS_TYPE_INTERNAL_RESOLVED;
+ if (name == NULL)
+ name = type->name;
+
+ if (type->type == XML_SCHEMA_TYPE_COMPLEX) {
+ xmlSchemaTypePtr baseType;
+
+ /*
+ * Resolve & type-fix the base type.
+ */
+ baseType = type->baseType;
+ if (baseType == NULL) {
+ baseType = xmlSchemaGetType(ctxt->schema,
+ type->base, type->baseNs);
+ if (baseType == NULL) {
+ xmlSchemaPResCompAttrErr(ctxt,
+ XML_SCHEMAP_SRC_RESOLVE,
+ NULL, type, type->node,
+ "base", type->base, type->baseNs,
+ XML_SCHEMA_TYPE_SIMPLE, NULL);
return;
- default:
- break;
+ }
+ type->baseType = baseType;
}
- }
- if (name == NULL)
- name = item->name;
- if (item->contentType == XML_SCHEMA_CONTENT_UNKNOWN) {
- switch (item->type) {
- case XML_SCHEMA_TYPE_SIMPLE_CONTENT:{
- if (item->subtypes != NULL) {
- if (item->subtypes->contentType ==
- XML_SCHEMA_CONTENT_UNKNOWN) {
- xmlSchemaTypeFixup(item->subtypes, ctxt,
- NULL);
- }
- item->contentType =
- XML_SCHEMA_CONTENT_SIMPLE;
- /* item->subtypes->contentType; */
- }
- break;
- }
- case XML_SCHEMA_TYPE_RESTRICTION:{
- xmlSchemaTypePtr base = NULL;
-
- ctxt->ctxtType->flags |=
- XML_SCHEMAS_TYPE_DERIVATION_METHOD_RESTRICTION;
- if (item->baseType != NULL)
- base = item->baseType;
- else if (item->base != NULL) {
- base =
- xmlSchemaGetType(ctxt->schema, item->base,
- item->baseNs);
- if (base == NULL) {
- xmlSchemaPResCompAttrErr(ctxt,
- XML_SCHEMAP_SRC_RESOLVE,
- NULL, NULL,
- (xmlNodePtr) xmlSchemaGetPropNode(item->node, "base"),
- "base", item->base, item->baseNs,
- XML_SCHEMA_TYPE_BASIC, "type definition");
- } else if (base->contentType ==
- XML_SCHEMA_CONTENT_UNKNOWN) {
- xmlSchemaTypeFixup(base, ctxt, NULL);
- }
- }
- ctxt->ctxtType->baseType = base;
- if (ctxt->ctxtType->type == XML_SCHEMA_TYPE_COMPLEX) {
- /*
- * ComplexType restriction.
- */
- /*
- * Content type.
- */
- if (item->subtypes == NULL)
- /* 1.1.1 */
- item->contentType = XML_SCHEMA_CONTENT_EMPTY;
- else if ((item->subtypes->subtypes == NULL) &&
- ((item->subtypes->type ==
- XML_SCHEMA_TYPE_ALL)
- || (item->subtypes->type ==
- XML_SCHEMA_TYPE_SEQUENCE)))
- /* 1.1.2 */
- item->contentType = XML_SCHEMA_CONTENT_EMPTY;
- else if ((item->subtypes->type ==
- XML_SCHEMA_TYPE_CHOICE)
- && (item->subtypes->subtypes == NULL))
- /* 1.1.3 */
- item->contentType = XML_SCHEMA_CONTENT_EMPTY;
- else {
- /* 1.2 and 2.X are applied at the other layer */
- item->contentType =
- XML_SCHEMA_CONTENT_ELEMENTS;
- }
- } else {
- /*
- * SimpleType restriction.
- */
- /* TODO: Nothing? */
- }
- break;
- }
- case XML_SCHEMA_TYPE_EXTENSION:{
- xmlSchemaTypePtr base = NULL;
- xmlSchemaContentType explicitContentType;
-
+ if (IS_NOT_TYPEFIXED(baseType))
+ xmlSchemaTypeFixup(baseType, ctxt, NULL);
+ if (baseType->flags & XML_SCHEMAS_TYPE_INTERNAL_INVALID) {
+ /*
+ * Skip fixup if the base type is invalid.
+ * TODO: Generate a warning!
+ */
+ return;
+ }
+ /*
+ * This basically checks if the base type can be derived.
+ */
+ if (xmlSchemaCheckSRCCT(ctxt, type) != 0) {
+ type->flags |= XML_SCHEMAS_TYPE_INTERNAL_INVALID;
+ return;
+ }
+ /*
+ * Fixup the content type.
+ */
+ if (type->contentType == XML_SCHEMA_CONTENT_SIMPLE) {
+ /*
+ * Corresponds to <complexType><simpleContent>...
+ */
+ if ((IS_COMPLEX_TYPE(baseType)) &&
+ (baseType->contentTypeDef != NULL) &&
+ (type->flags & XML_SCHEMAS_TYPE_DERIVATION_METHOD_RESTRICTION)) {
+ /*
+ * SPEC (1) If <restriction> + base type is <complexType>,
+ * "whose own {content type} is a simple type..."
+ *
+ * NOTE (1.1) is handled during parsing of <restriction>.
+ *
+ * (1.2) "...otherwise (<restriction> has no <simpleType> among
+ * its [children]), the simple type definition which is the
+ * {content type} of the ... base type."
+ */
+ if (type->contentTypeDef->baseType == NULL) {
/*
- * An extension does exist on a complexType only.
+ * <simpleContent><restriction> has *no* <simpleType>
+ * child.
*/
- ctxt->ctxtType->flags |=
- XML_SCHEMAS_TYPE_DERIVATION_METHOD_EXTENSION;
- if (item->recurse) {
- /* TODO: The word "recursive" should be changed to "circular" here. */
- xmlSchemaPCustomErr(ctxt,
- XML_SCHEMAP_UNKNOWN_BASE_TYPE,
- NULL, item, item->node,
- "This item is circular", NULL);
- return;
- }
- if (item->base != NULL) {
- base =
- xmlSchemaGetType(ctxt->schema, item->base,
- item->baseNs);
- if (base == NULL) {
- xmlSchemaPResCompAttrErr(ctxt,
- XML_SCHEMAP_SRC_RESOLVE,
- NULL, item, item->node,
- "base", item->base, item->baseNs,
- XML_SCHEMA_TYPE_BASIC, "type definition");
- } else if (base->contentType ==
- XML_SCHEMA_CONTENT_UNKNOWN) {
- item->recurse = 1;
- xmlSchemaTypeFixup(base, ctxt, NULL);
- item->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.
- */
- item->baseType = base;
- }
- if ((item->subtypes != NULL) &&
- (item->subtypes->contentType == XML_SCHEMA_CONTENT_UNKNOWN))
- xmlSchemaTypeFixup(item->subtypes, ctxt, NULL);
-
- explicitContentType = XML_SCHEMA_CONTENT_ELEMENTS;
- if (item->subtypes == NULL)
- /* 1.1.1 */
- explicitContentType = XML_SCHEMA_CONTENT_EMPTY;
- else if ((item->subtypes->subtypes == NULL) &&
- ((item->subtypes->type ==
- XML_SCHEMA_TYPE_ALL)
- || (item->subtypes->type ==
- XML_SCHEMA_TYPE_SEQUENCE)))
- /* 1.1.2 */
- explicitContentType = XML_SCHEMA_CONTENT_EMPTY;
- else if ((item->subtypes->type ==
- XML_SCHEMA_TYPE_CHOICE)
- && (item->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 */
- item->contentType = base->contentType;
- } else if (base->contentType ==
- XML_SCHEMA_CONTENT_EMPTY) {
- /* 2.2 imbitable ! */
- item->contentType =
- XML_SCHEMA_CONTENT_ELEMENTS;
- } else {
- /* 2.3 imbitable pareil ! */
- item->contentType =
- XML_SCHEMA_CONTENT_ELEMENTS;
- }
- }
- break;
- }
- case XML_SCHEMA_TYPE_COMPLEX:{
- ctxtType = ctxt->ctxtType;
- ctxt->ctxtType = item;
+ type->contentTypeDef->baseType =
+ baseType->contentTypeDef;
+ }
+ } else if ((IS_COMPLEX_TYPE(baseType)) &&
+ (baseType->contentType == XML_SCHEMA_CONTENT_MIXED) &&
+ (type->flags & XML_SCHEMAS_TYPE_DERIVATION_METHOD_RESTRICTION)) {
+ /*
+ * SPEC (2) If <restriction> + base is a mixed <complexType> with
+ * an emptiable particle, then a simple type definition which
+ * restricts the <restriction>'s <simpleType> child.
+ */
+ if ((type->contentTypeDef == NULL) ||
+ (type->contentTypeDef->baseType == NULL)) {
/*
- * Start with an empty content-type type.
+ * TODO: Check if this ever happens.
*/
- if (item->subtypes == NULL)
- item->contentType = XML_SCHEMA_CONTENT_EMPTY;
-
- if ((item->subtypes == NULL) ||
- ((item->subtypes->type !=
- XML_SCHEMA_TYPE_SIMPLE_CONTENT) &&
- (item->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.
- */
- item->baseType = xmlSchemaGetBuiltInType(XML_SCHEMAS_ANYTYPE);
- item->flags |=
- XML_SCHEMAS_TYPE_DERIVATION_METHOD_RESTRICTION;
- /*
- * Assume that we inherit the content-type type
- * from 'anyType', which is 'mixed' and a particle
- * emptiable.
- */
- item->contentType = item->baseType->contentType;
- }
+ xmlSchemaPCustomErr(ctxt,
+ XML_SCHEMAP_INTERNAL,
+ NULL, type, NULL,
+ "Internal error: xmlSchemaTypeFixup, "
+ "complex type '%s': the <simpleContent><restriction> "
+ "is missing a <simpleType> child, but was not catched "
+ "by xmlSchemaCheckSRCCT()", type->name);
+ }
+ } else if ((IS_COMPLEX_TYPE(baseType)) &&
+ (type->flags & XML_SCHEMAS_TYPE_DERIVATION_METHOD_EXTENSION)) {
+ /*
+ * SPEC (3) If <extension> + base is <complexType> with
+ * <simpleType> content, "...then the {content type} of that
+ * complex type definition"
+ */
+ if (baseType->contentTypeDef == NULL) {
+ /*
+ * TODO: Check if this ever happens. xmlSchemaCheckSRCCT
+ * should have catched this already.
+ */
+ xmlSchemaPCustomErr(ctxt,
+ XML_SCHEMAP_INTERNAL,
+ NULL, type, NULL,
+ "Internal error: xmlSchemaTypeFixup, "
+ "complex type '%s': the <extension>ed base type is "
+ "a complex type with no simple content type",
+ type->name);
+ }
+ type->contentTypeDef = baseType->contentTypeDef;
+ } else if ((IS_SIMPLE_TYPE(baseType)) &&
+ (type->flags & XML_SCHEMAS_TYPE_DERIVATION_METHOD_EXTENSION)) {
+ /*
+ * SPEC (4) <extension> + base is <simpleType>
+ * "... then that simple type definition"
+ */
+ type->contentTypeDef = baseType;
+ } else {
+ /*
+ * TODO: Check if this ever happens.
+ */
+ xmlSchemaPCustomErr(ctxt,
+ XML_SCHEMAP_INTERNAL,
+ NULL, type, NULL,
+ "Internal error: xmlSchemaTypeFixup, "
+ "complex type '%s' with <simpleContent>: unhandled "
+ "derivation case", type->name);
+ }
+ } else {
+ int dummySequence = 0;
+ xmlSchemaParticlePtr particle =
+ (xmlSchemaParticlePtr) type->subtypes;
+ /*
+ * Corresponds to <complexType><complexContent>...
+ *
+ * NOTE that the effective mixed was already set during parsing of
+ * <complexType> and <complexContent>; its flag value is
+ * XML_SCHEMAS_TYPE_MIXED.
+ *
+ * Compute the "effective content":
+ * (2.1.1) + (2.1.2) + (2.1.3)
+ */
+ if ((particle == NULL) ||
+ ((particle->type == XML_SCHEMA_TYPE_PARTICLE) &&
+ ((particle->children->type == XML_SCHEMA_TYPE_ALL) ||
+ (particle->children->type == XML_SCHEMA_TYPE_SEQUENCE) ||
+ ((particle->children->type == XML_SCHEMA_TYPE_CHOICE) &&
+ (particle->minOccurs == 0))) &&
+ ( ((xmlSchemaTreeItemPtr) particle->children)->children == NULL))) {
+ if (type->flags & XML_SCHEMAS_TYPE_MIXED) {
/*
- * Fixup the sub components.
+ * SPEC (2.1.4) "If the ·effective mixed· is true, then
+ * a particle whose properties are as follows:..."
+ *
+ * Empty sequence model group with
+ * minOccurs/maxOccurs = 1 (i.e. a "particle emptiable").
+ * NOTE that we sill assign it the <complexType> node to
+ * somehow anchor it in the doc.
*/
- if ((item->subtypes != NULL) &&
- (item->subtypes->contentType ==
- XML_SCHEMA_CONTENT_UNKNOWN)) {
- xmlSchemaTypeFixup(item->subtypes, ctxt, NULL);
- }
- if (item->flags & XML_SCHEMAS_TYPE_MIXED) {
- item->contentType = XML_SCHEMA_CONTENT_MIXED;
- } else if (item->subtypes != NULL) {
+ if ((particle == NULL) ||
+ (particle->children->type != XML_SCHEMA_TYPE_SEQUENCE)) {
+ /*
+ * Create the particle.
+ */
+ particle = xmlSchemaAddParticle(ctxt, ctxt->schema,
+ type->node, 1, 1);
+ if (particle == NULL)
+ return;
/*
- * Use the content-type type of the model groups
- * defined, if 'mixed' is not set. If 'mixed' is set
- * it will expand the content-type by allowing character
- * content to appear.
+ * Create the model group.
*/
- item->contentType =
- item->subtypes->contentType;
+ particle->children = (xmlSchemaTreeItemPtr)
+ xmlSchemaAddModelGroup(ctxt, ctxt->schema,
+ XML_SCHEMA_TYPE_SEQUENCE, NULL, type->node);
+ if (particle->children == NULL)
+ return;
+
+ type->subtypes = (xmlSchemaTypePtr) particle;
}
-
+ dummySequence = 1;
+ type->contentType = XML_SCHEMA_CONTENT_ELEMENTS;
+ } else {
/*
- * Some optimization for validation:
- * If there are no facets beside the "whitespace" facet,
- * then a value needs not to checked against against a
- * facet, thus no computed value is needed.
- * TODO URGENT: This is just a workaround, we need to
- * introduce the correct usage of contentType to store the
- * facets in!
+ * SPEC (2.1.5) "otherwise empty"
*/
- if ((item->baseType != NULL) &&
- (item->baseType->flags &
- XML_SCHEMAS_TYPE_FACETSNEEDVALUE))
- item->flags |= XML_SCHEMAS_TYPE_FACETSNEEDVALUE;
- else {
- xmlSchemaFacetLinkPtr cur;
-
- for (cur = item->facetSet; cur != NULL;
- cur = cur->next) {
- if (cur->facet->type != XML_SCHEMA_FACET_WHITESPACE) {
- item->flags |= XML_SCHEMAS_TYPE_FACETSNEEDVALUE;
- break;
- }
- }
- }
-
- xmlSchemaBuildAttributeValidation(ctxt, item);
- xmlSchemaCheckDefaults(item, ctxt, item->name);
- ctxt->ctxtType = ctxtType;
- break;
- }
- case XML_SCHEMA_TYPE_COMPLEX_CONTENT:{
- if (item->subtypes == NULL) {
- item->contentType = XML_SCHEMA_CONTENT_EMPTY;
- if (item->flags & XML_SCHEMAS_TYPE_MIXED)
- item->contentType =
- XML_SCHEMA_CONTENT_MIXED;
- } else {
- if (item->flags & XML_SCHEMAS_TYPE_MIXED) {
- item->contentType =
- XML_SCHEMA_CONTENT_MIXED;
- } else {
- xmlSchemaTypeFixup(item->subtypes, ctxt,
- NULL);
- if (item->subtypes != NULL)
- item->contentType =
- item->subtypes->contentType;
- }
- /*
- * Removed due to implementation of the build of attribute uses.
- */
- /*
- if (item->attributes == NULL)
- item->attributes =
- item->subtypes->attributes;
- */
- }
- break;
- }
- case XML_SCHEMA_TYPE_SIMPLE:
+ type->contentType = XML_SCHEMA_CONTENT_EMPTY;
+ }
+ } else {
/*
- * Simple Type Definition Schema Component
- *
+ * SPEC (2.2) "otherwise the particle corresponding to the
+ * <all>, <choice>, <group> or <sequence> among the
+ * [children]."
*/
- ctxtType = ctxt->ctxtType;
- item->contentType = XML_SCHEMA_CONTENT_SIMPLE;
- if (item->subtypes->contentType ==
- XML_SCHEMA_CONTENT_UNKNOWN) {
- ctxt->ctxtType = item;
- xmlSchemaTypeFixup(item->subtypes, ctxt, NULL);
- }
- /* Fixup base type */
- if ((item->baseType != NULL) &&
- (item->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 = item;
- xmlSchemaTypeFixup(item->baseType, ctxt, NULL);
+ type->contentType = XML_SCHEMA_CONTENT_ELEMENTS;
+ }
+ /*
+ * Compute the "content type".
+ */
+ if (type->flags & XML_SCHEMAS_TYPE_DERIVATION_METHOD_RESTRICTION) {
+ /*
+ * SPEC (3.1) "If <restriction>..."
+ * (3.1.1) + (3.1.2) */
+ if (type->contentType != XML_SCHEMA_CONTENT_EMPTY) {
+ if (type->flags & XML_SCHEMAS_TYPE_MIXED)
+ type->contentType = XML_SCHEMA_CONTENT_MIXED;
}
- /* Base type:
- * 2 If the <list> or <union> alternative is chosen,
- * then the ·simple ur-type definition·.
+ } else {
+ /*
+ * SPEC (3.2) "If <extension>..."
*/
- if (item->subtypes->type ==
- XML_SCHEMA_TYPE_LIST) {
- item->baseType = xmlSchemaGetBuiltInType(XML_SCHEMAS_ANYSIMPLETYPE);
- item->flags |= XML_SCHEMAS_TYPE_VARIETY_LIST;
- } else if (item->subtypes->type ==
- XML_SCHEMA_TYPE_UNION) {
- item->baseType = xmlSchemaGetBuiltInType(XML_SCHEMAS_ANYSIMPLETYPE);
- item->flags |= XML_SCHEMAS_TYPE_VARIETY_UNION;
- } else if (item->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 (item->baseType != NULL) {
- if (item->baseType->flags &
- XML_SCHEMAS_TYPE_VARIETY_ATOMIC)
- item->flags |= XML_SCHEMAS_TYPE_VARIETY_ATOMIC;
- else if (item->baseType->flags &
- XML_SCHEMAS_TYPE_VARIETY_LIST)
- item->flags |= XML_SCHEMAS_TYPE_VARIETY_LIST;
- else if (item->baseType->flags &
- XML_SCHEMAS_TYPE_VARIETY_UNION)
- item->flags |= XML_SCHEMAS_TYPE_VARIETY_UNION;
+ if (type->contentType == XML_SCHEMA_CONTENT_EMPTY) {
+ /*
+ * SPEC (3.2.1)
+ */
+ type->contentType = baseType->contentType;
+ type->subtypes = baseType->subtypes;
+ /*
+ * NOTE that the effective mixed is ignored here.
+ */
+ } else if (baseType->contentType == XML_SCHEMA_CONTENT_EMPTY) {
+ /*
+ * SPEC (3.2.2)
+ */
+ if (type->flags & XML_SCHEMAS_TYPE_MIXED)
+ type->contentType = XML_SCHEMA_CONTENT_MIXED;
+ } else {
+ /*
+ * SPEC (3.2.3)
+ */
+ if (type->flags & XML_SCHEMAS_TYPE_MIXED)
+ type->contentType = XML_SCHEMA_CONTENT_MIXED;
+ /*
+ * "A model group whose {compositor} is sequence and whose
+ * {particles} are..."
+ */
+ if (! dummySequence) {
+ xmlSchemaTreeItemPtr effectiveContent =
+ (xmlSchemaTreeItemPtr) type->subtypes;
/*
- * 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.
+ * Create the particle.
*/
- if (item->baseType->facetSet != NULL) {
- last = item->facetSet;
- if (last != NULL)
- while (last->next != NULL)
- last = last->next;
- cur = item->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 ((item->facetSet != NULL) &&
- /* REMOVED: a check for
- * XML_SCHEMA_FACET_PATTERN was already
- * performed above.
-
- * (cur->facet->type !=
- * XML_SCHEMA_FACET_PATTERN) &&
- */
- (cur->facet->type !=
- XML_SCHEMA_FACET_ENUMERATION)) {
- facet = item->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;
- }
- /*
- * The facets are not copied but referenced
- * via the facet link.
- */
- facet->facet = cur->facet;
- facet->next = NULL;
- if (last == NULL)
- item->facetSet = facet;
- else
- last->next = facet;
- last = facet;
- }
- }
- }
+ particle = xmlSchemaAddParticle(ctxt, ctxt->schema,
+ type->node, 1, 1);
+ if (particle == NULL)
+ return;
/*
- * Some optimization for validation:
- * If there are no facets beside the "whitespace" facet,
- * then a value needs not to checked against against a
- * facet, thus no computed value is needed.
+ * Create the "sequence" model group.
*/
- if (item->baseType->flags & XML_SCHEMAS_TYPE_FACETSNEEDVALUE)
- item->flags |= XML_SCHEMAS_TYPE_FACETSNEEDVALUE;
- else {
- for (cur = item->facetSet; cur != NULL;
- cur = cur->next) {
- if (cur->facet->type != XML_SCHEMA_FACET_WHITESPACE) {
- item->flags |= XML_SCHEMAS_TYPE_FACETSNEEDVALUE;
- break;
- }
- }
- }
+ particle->children = (xmlSchemaTreeItemPtr)
+ xmlSchemaAddModelGroup(ctxt, ctxt->schema,
+ XML_SCHEMA_TYPE_SEQUENCE, NULL, type->node);
+ if (particle->children == NULL)
+ return;
+ type->subtypes = (xmlSchemaTypePtr) particle;
+ /*
+ * SPEC "the particle of the {content type} of
+ * the ... base ..."
+ * Create a duplicate of the base type's particle
+ * and assign its "term" to it.
+ */
+ particle->children->children =
+ (xmlSchemaTreeItemPtr) xmlSchemaAddParticle(ctxt,
+ ctxt->schema, type->node,
+ ((xmlSchemaParticlePtr) type->subtypes)->minOccurs,
+ ((xmlSchemaParticlePtr) type->subtypes)->maxOccurs);
+ if (particle->children->children == NULL)
+ return;
+ particle = (xmlSchemaParticlePtr)
+ particle->children->children;
+ particle->children =
+ ((xmlSchemaParticlePtr) baseType->subtypes)->children;
+ /*
+ * SPEC "followed by the ·effective content·."
+ */
+ particle->next = effectiveContent;
+ } else {
+ /*
+ * This is the case when there is already an empty
+ * <sequence> with minOccurs==maxOccurs==1.
+ * Just add the base types's content type.
+ * NOTE that, although we miss to add an intermediate
+ * <sequence>, this should produce no difference to
+ * neither the regex compilation of the content model,
+ * nor to the complex type contraints.
+ */
+ particle->children->children =
+ (xmlSchemaTreeItemPtr) baseType->subtypes;
}
- }
+ }
+ }
+ }
+ /*
+ * Apply the complex type component constraints; this will not
+ * check attributes, since this is done in
+ * xmlSchemaBuildAttributeValidation().
+ */
+ if (xmlSchemaCheckCTComponent(ctxt, type) != 0)
+ return;
+ /*
+ * Inherit & check constraints for attributes.
+ */
+ xmlSchemaBuildAttributeValidation(ctxt, type);
+ } else if (type->type == XML_SCHEMA_TYPE_SIMPLE) {
+ /*
+ * Simple Type Definition Schema Component
+ */
+ type->contentType = XML_SCHEMA_CONTENT_SIMPLE;
+ if (type->flags & XML_SCHEMAS_TYPE_VARIETY_LIST) {
+ /*
+ * Corresponds to <simpleType><list>...
+ * Resolve the itemType.
+ */
+ if ((type->subtypes == NULL) && (type->ref != NULL)) {
+ type->subtypes = xmlSchemaGetType(ctxt->schema,
+ type->ref, type->refNs);
+ if ((type->subtypes == NULL) ||
+ (! IS_SIMPLE_TYPE(type->subtypes))) {
+ type->subtypes = NULL;
+ xmlSchemaPResCompAttrErr(ctxt,
+ XML_SCHEMAP_SRC_RESOLVE,
+ NULL, type, type->node,
+ "itemType", type->ref, type->refNs,
+ XML_SCHEMA_TYPE_SIMPLE, NULL);
+ }
+ }
+ if (type->subtypes == NULL) {
/*
- * Check constraints.
+ * This one is really needed, so get out.
*/
- xmlSchemaCheckSRCSimpleType(ctxt, item);
- xmlSchemaCheckDefaults(item, ctxt, item->name);
- ctxt->ctxtType = ctxtType;
- break;
- case XML_SCHEMA_TYPE_SEQUENCE:
- case XML_SCHEMA_TYPE_ALL:
- case XML_SCHEMA_TYPE_CHOICE:
- item->contentType = XML_SCHEMA_CONTENT_ELEMENTS;
- break;
- case XML_SCHEMA_TYPE_GROUP:
+ return;
+ }
+ if (IS_NOT_TYPEFIXED(type->subtypes))
+ xmlSchemaTypeFixup(type->subtypes, ctxt, NULL);
+ /* Base type:
+ * 2 If the <list> or <union> alternative is chosen,
+ * then the ·simple ur-type definition·.
+ */
+ type->baseType = xmlSchemaGetBuiltInType(XML_SCHEMAS_ANYSIMPLETYPE);
+ } else if (type->flags & XML_SCHEMAS_TYPE_VARIETY_UNION) {
+ /*
+ * Corresponds to <simpleType><union>...
+ * Resolve the member types.
+ */
+ xmlSchemaResolveUnionMemberTypes(ctxt, type);
+ if (type->memberTypes == NULL) {
/*
- * TODO: Handling was moved to xmlSchemaGroupDefFixup.
+ * This one is really needed, so get out.
*/
- break;
- case XML_SCHEMA_TYPE_LIST:
- xmlSchemaParseListRefFixup(item, ctxt);
- item->contentType = XML_SCHEMA_CONTENT_SIMPLE;
- break;
- case XML_SCHEMA_TYPE_UNION:
- xmlSchemaParseUnionRefCheck(item, ctxt);
- item->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_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_FACET_MININCLUSIVE:
- case XML_SCHEMA_FACET_MINEXCLUSIVE:
- case XML_SCHEMA_FACET_MAXINCLUSIVE:
- case XML_SCHEMA_FACET_MAXEXCLUSIVE:
- case XML_SCHEMA_FACET_TOTALDIGITS:
- case XML_SCHEMA_FACET_FRACTIONDIGITS:
- case XML_SCHEMA_FACET_PATTERN:
- case XML_SCHEMA_FACET_ENUMERATION:
- case XML_SCHEMA_FACET_WHITESPACE:
- case XML_SCHEMA_FACET_LENGTH:
- case XML_SCHEMA_FACET_MAXLENGTH:
- case XML_SCHEMA_FACET_MINLENGTH:
- item->contentType = XML_SCHEMA_CONTENT_SIMPLE;
- if (item->subtypes != NULL)
- xmlSchemaTypeFixup(item->subtypes, ctxt, NULL);
- break;
- case XML_SCHEMA_TYPE_IDC_UNIQUE:
- case XML_SCHEMA_TYPE_IDC_KEY:
- case XML_SCHEMA_TYPE_IDC_KEYREF:
- break;
- }
+ return;
+ }
+ type->baseType = xmlSchemaGetBuiltInType(XML_SCHEMAS_ANYSIMPLETYPE);
+ } else {
+ xmlSchemaTypePtr baseType;
+ /*
+ * Corresponds to <simpleType><restriction>...
+ *
+ * Resolve the base type.
+ */
+ if ((type->baseType == NULL) && (type->base != NULL)) {
+ baseType = xmlSchemaGetType(ctxt->schema,
+ type->base, type->baseNs);
+
+ if (baseType == NULL) {
+ xmlSchemaPResCompAttrErr(ctxt,
+ XML_SCHEMAP_SRC_RESOLVE,
+ NULL, type, type->node,
+ "base", type->base, type->baseNs,
+ XML_SCHEMA_TYPE_SIMPLE, NULL);
+ }
+ type->baseType = baseType;
+ } else
+ baseType = type->baseType;
+
+ if (baseType == NULL)
+ return;
+
+ if (IS_NOT_TYPEFIXED(baseType))
+ xmlSchemaTypeFixup(baseType, ctxt, NULL);
+ /*
+ * Variety
+ * If the <restriction> alternative is chosen, then the
+ * {variety} of the {base type definition}.
+ */
+ if (baseType->flags & XML_SCHEMAS_TYPE_VARIETY_ATOMIC)
+ type->flags |= XML_SCHEMAS_TYPE_VARIETY_ATOMIC;
+ else if (baseType->flags & XML_SCHEMAS_TYPE_VARIETY_LIST) {
+ type->flags |= XML_SCHEMAS_TYPE_VARIETY_LIST;
+ /*
+ * Inherit the itemType.
+ */
+ type->subtypes = baseType->subtypes;
+ } else if (baseType->flags & XML_SCHEMAS_TYPE_VARIETY_UNION) {
+ type->flags |= XML_SCHEMAS_TYPE_VARIETY_UNION;
+ /*
+ * NOTE that we won't assign the memberTypes of the base,
+ * since this will make trouble when freeing them; we will
+ * use a lookup function to access them instead.
+ */
+ }
+
+ /*
+ * Some optimization for validation:
+ * If there are no facets beside the "whitespace" facet,
+ * then a value needs not to checked against against a
+ * facet, thus no computed value is needed.
+ */
+#if 0
+ if (baseType->flags & XML_SCHEMAS_TYPE_FACETSNEEDVALUE)
+ type->flags |= XML_SCHEMAS_TYPE_FACETSNEEDVALUE;
+ else {
+ for (cur = type->facetSet; cur != NULL;
+ cur = cur->next) {
+ if (cur->facet->type != XML_SCHEMA_FACET_WHITESPACE) {
+ type->flags |= XML_SCHEMAS_TYPE_FACETSNEEDVALUE;
+ break;
+ }
+ }
+ }
+#endif
+ }
+ /*
+ * Check constraints.
+ *
+ * TODO: Split this somehow, we need to know first if we can derive
+ * from the base type at all!
+ */
+ if (type->baseType != NULL) {
+ /*
+ * Schema Component Constraint: Simple Type Restriction
+ * (Facets)
+ * NOTE: Satisfaction of 1 and 2 arise from the fixup
+ * applied beforehand.
+ */
+ xmlSchemaCheckSRCSimpleType(ctxt, type);
+ xmlSchemaCheckFacetValues(type, ctxt);
+ xmlSchemaDeriveAndValidateFacets(ctxt, type);
+ }
}
+
#ifdef DEBUG_TYPE
- if (item->node != NULL) {
+ if (type->node != NULL) {
xmlGenericError(xmlGenericErrorContext,
"Type of %s : %s:%d :", name,
- item->node->doc->URL,
- xmlGetLineNo(item->node));
+ type->node->doc->URL,
+ xmlGetLineNo(type->node));
} else {
xmlGenericError(xmlGenericErrorContext, "Type of %s :", name);
}
- switch (item->contentType) {
- case XML_SCHEMA_CONTENT_SIMPLE:
- xmlGenericError(xmlGenericErrorContext, "simple\n");
- break;
- case XML_SCHEMA_CONTENT_ELEMENTS:
- xmlGenericError(xmlGenericErrorContext, "elements\n");
- break;
- case XML_SCHEMA_CONTENT_UNKNOWN:
- xmlGenericError(xmlGenericErrorContext, "unknown !!!\n");
- break;
- case XML_SCHEMA_CONTENT_EMPTY:
- xmlGenericError(xmlGenericErrorContext, "empty\n");
- break;
- 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;
- default:
- xmlGenericError(xmlGenericErrorContext,
- "not registered !!!\n");
- break;
+ if ((IS_SIMPLE_TYPE(type)) || (IS_COMPLEX_TYPE(type))) {
+ switch (type->contentType) {
+ case XML_SCHEMA_CONTENT_SIMPLE:
+ xmlGenericError(xmlGenericErrorContext, "simple\n");
+ break;
+ case XML_SCHEMA_CONTENT_ELEMENTS:
+ xmlGenericError(xmlGenericErrorContext, "elements\n");
+ break;
+ case XML_SCHEMA_CONTENT_UNKNOWN:
+ xmlGenericError(xmlGenericErrorContext, "unknown !!!\n");
+ break;
+ case XML_SCHEMA_CONTENT_EMPTY:
+ xmlGenericError(xmlGenericErrorContext, "empty\n");
+ break;
+ case XML_SCHEMA_CONTENT_MIXED:
+ if (xmlSchemaIsParticleEmptiable((xmlSchemaParticlePtr)
+ type->subtypes))
+ xmlGenericError(xmlGenericErrorContext,
+ "mixed as emptiable particle\n");
+ else
+ 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;
+ default:
+ xmlGenericError(xmlGenericErrorContext,
+ "not registered !!!\n");
+ break;
+ }
}
#endif
}
@@ -14179,8 +15652,9 @@ xmlSchemaCheckFacet(xmlSchemaFacetPtr facet,
*/
/*
* 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
+ * on the facet. In this implementation of XML Schemata the
+ * type holding a facet, won't 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.
@@ -14231,21 +15705,23 @@ xmlSchemaCheckFacet(xmlSchemaFacetPtr facet,
* of the facet.
*/
ret = xmlSchemaValidateSimpleTypeValue(vctxt, base,
- facet->value, 0, 1, 1, 0);
- facet->val = vctxt->value;
- vctxt->value = NULL;
+ facet->value, 0, 1, 1, 0);
if (ret > 0) {
/* error code */
if (ctxt != NULL) {
- xmlSchemaPErrExt(ctxt, facet->node,
- XML_SCHEMAP_INVALID_FACET,
- NULL, NULL, NULL,
- "Type definition '%s': The value '%s' of the "
- "facet '%s' is not valid.\n",
- name, facet->value,
- xmlSchemaFacetTypeToString(facet->type),
- NULL, NULL);
+ xmlChar *str = NULL;
+
+ xmlSchemaPCustomErrExt(ctxt,
+ XML_SCHEMAP_INVALID_FACET_VALUE,
+ NULL, (xmlSchemaTypePtr) facet, facet->node,
+ "The value '%s' of the facet does not validate "
+ "against the base type '%s'",
+ facet->value,
+ xmlSchemaFormatQName(&str,
+ base->targetNamespace, base->name), NULL);
+ FREE_AND_NULL(str)
}
+ /* xmlSchemaFacetTypeToString(facet->type), */
ret = -1;
} else if (ret < 0) {
xmlSchemaPErrExt(ctxt, facet->node,
@@ -14258,7 +15734,30 @@ xmlSchemaCheckFacet(xmlSchemaFacetPtr facet,
xmlSchemaFacetTypeToString(facet->type),
base->name, NULL, NULL);
ret = -1;
- }
+ } else {
+ if (vctxt->value != NULL) {
+ facet->val = vctxt->value;
+ vctxt->value = NULL;
+ } else {
+ xmlChar *str;
+ /*
+ * Ensure computed values even for type string.
+ * TODO OPTIMIZE MEMORY: The value will be hold twice,
+ * by the facet->value and by the computed value.
+ */
+ str = xmlStrdup(facet->value);
+ if (xmlSchemaPostCreateVal(vctxt, typeDecl,
+ BAD_CAST str, &(facet->val)) == -1) {
+ FREE_AND_NULL(str)
+ xmlSchemaPErr(ctxt, typeDecl->node,
+ XML_SCHEMAP_INTERNAL,
+ "Internal error: xmlSchemaCheckFacet, "
+ "post-creating a computed value.\n",
+ NULL, NULL);
+ /* Note that we don't return a failure yet.*/
+ }
+ }
+ }
if (reuseValCtxt == 0)
xmlSchemaFreeValidCtxt(vctxt);
break;
@@ -14288,14 +15787,11 @@ xmlSchemaCheckFacet(xmlSchemaFacetPtr facet,
if (tmp != 0) {
/* error code */
if (ctxt != NULL) {
- xmlSchemaPErrExt(ctxt, facet->node,
+ xmlSchemaPCustomErr(ctxt,
XML_SCHEMAP_INVALID_FACET_VALUE,
- NULL, NULL, NULL,
- "Type definition '%s': The value '%s' of the "
- "facet '%s' is not valid.\n",
- name, facet->value,
- xmlSchemaFacetTypeToString(facet->type),
- NULL, NULL);
+ NULL, (xmlSchemaTypePtr) facet, facet->node,
+ "The value '%s' of the facet is not a valid "
+ "nonNegativeInteger", facet->value);
}
ret = -1;
}
@@ -14310,11 +15806,12 @@ xmlSchemaCheckFacet(xmlSchemaFacetPtr facet,
facet->whitespace = XML_SCHEMAS_FACET_COLLAPSE;
} else {
if (ctxt != NULL) {
- xmlSchemaPErr(ctxt, facet->node,
- XML_SCHEMAP_INVALID_WHITE_SPACE,
- "Type definition '%s': The value '%s' of the "
- "facet 'whiteSpace' is not valid.\n",
- name, facet->value);
+ /* error was previously: XML_SCHEMAP_INVALID_WHITE_SPACE */
+ xmlSchemaPCustomErr(ctxt,
+ XML_SCHEMAP_INVALID_FACET_VALUE,
+ NULL, (xmlSchemaTypePtr) facet, facet->node,
+ "The value '%s' of the facet is not a valid",
+ facet->value);
}
ret = -1;
}
@@ -14326,18 +15823,17 @@ xmlSchemaCheckFacet(xmlSchemaFacetPtr facet,
}
/**
- * xmlSchemaCheckDefaults:
+ * xmlSchemaCheckFacetValues:
* @typeDecl: the schema type definition
* @ctxt: the schema parser context
*
* Checks the default values types, especially for facets
*/
static void
-xmlSchemaCheckDefaults(xmlSchemaTypePtr typeDecl,
- xmlSchemaParserCtxtPtr ctxt, const xmlChar * name)
+xmlSchemaCheckFacetValues(xmlSchemaTypePtr typeDecl,
+ xmlSchemaParserCtxtPtr ctxt)
{
- if (name == NULL)
- name = typeDecl->name;
+ const xmlChar *name = typeDecl->name;
/*
* NOTE: It is intended to use the facets list, instead
* of facetSet.
@@ -14366,80 +15862,58 @@ xmlSchemaCheckDefaults(xmlSchemaTypePtr typeDecl,
/**
* xmlSchemaGetCircModelGrDefRef:
- * @ctxtGr: the searched model group
- * @list: the list of model groups to be processed
+ * @ctxtMGroup: the searched model group
+ * @selfMGroup: the second searched model group
+ * @particle: the first particle
*
* This one is intended to be used by
* xmlSchemaCheckGroupDefCircular only.
*
- * Returns the circular model group definition reference, otherwise NULL.
+ * Returns the particle with the circular model group definition reference,
+ * otherwise NULL.
*/
-static xmlSchemaTypePtr
-xmlSchemaGetCircModelGrDefRef(xmlSchemaTypePtr ctxtGrDef,
- xmlSchemaTypePtr gr)
-{
- xmlSchemaTypePtr circ = NULL;
- int marked;
- /*
- * We will search for an model group reference which
- * references the context model group definition.
- */
- while (gr != NULL) {
- if (((gr->type == XML_SCHEMA_TYPE_GROUP) ||
- (gr->type == XML_SCHEMA_TYPE_ALL) ||
- (gr->type == XML_SCHEMA_TYPE_SEQUENCE) ||
- (gr->type == XML_SCHEMA_TYPE_CHOICE)) &&
- (gr->subtypes != NULL)) {
- marked = 0;
- if ((gr->type == XML_SCHEMA_TYPE_GROUP) &&
- (gr->ref != NULL)) {
- if (gr->subtypes == ctxtGrDef)
- return (gr);
- else if (gr->subtypes->flags &
- XML_SCHEMAS_TYPE_MARKED) {
- gr = gr->next;
- continue;
- } else {
- /*
- * Mark to avoid infinite recursion on
- * circular references not yet examined.
- */
- gr->subtypes->flags |= XML_SCHEMAS_TYPE_MARKED;
- marked = 1;
- }
- if (gr->subtypes->subtypes != NULL)
- circ = xmlSchemaGetCircModelGrDefRef(ctxtGrDef,
- gr->subtypes->subtypes);
- /*
- * Unmark the visited model group definition.
- */
- if (marked)
- gr->subtypes->flags ^= XML_SCHEMAS_TYPE_MARKED;
- if (circ != NULL)
- return (circ);
- } else {
- circ = xmlSchemaGetCircModelGrDefRef(ctxtGrDef,
- (xmlSchemaTypePtr) gr->subtypes);
- if (circ != NULL)
- return (circ);
- }
-
+static xmlSchemaTreeItemPtr
+xmlSchemaGetCircModelGrDefRef(xmlSchemaTreeItemPtr ctxtMGroup,
+ xmlSchemaTreeItemPtr selfMGroup,
+ xmlSchemaTreeItemPtr particle)
+{
+ xmlSchemaTreeItemPtr circ = NULL;
+ xmlSchemaTreeItemPtr term;
+
+ while (particle != NULL) {
+ term = particle->children;
+ if ((term != NULL) &&
+ ((term->type == XML_SCHEMA_TYPE_SEQUENCE) ||
+ (term->type == XML_SCHEMA_TYPE_CHOICE) ||
+ (term->type == XML_SCHEMA_TYPE_ALL))) {
+ if (term == ctxtMGroup)
+ return (particle);
+ /*
+ * Avoid infinite recursion on circular references not yet
+ * examined.
+ */
+ if (term == selfMGroup)
+ return (NULL);
+ circ = xmlSchemaGetCircModelGrDefRef(ctxtMGroup, term,
+ term->children);
+ if (circ != NULL)
+ return (circ);
}
- gr = gr->next;
+ particle = particle->next;
}
return (NULL);
}
/**
* xmlSchemaCheckGroupDefCircular:
- * attrGr: the model group definition
+ * @item: the model group definition
* @ctxt: the parser context
* @name: the name
*
* Checks for circular references to model group definitions.
*/
static void
-xmlSchemaCheckGroupDefCircular(xmlSchemaTypePtr modelGrDef,
+xmlSchemaCheckGroupDefCircular(xmlSchemaModelGroupDefPtr item,
xmlSchemaParserCtxtPtr ctxt,
const xmlChar * name ATTRIBUTE_UNUSED)
{
@@ -14449,32 +15923,36 @@ xmlSchemaCheckGroupDefCircular(xmlSchemaTypePtr modelGrDef,
* of a group there must not be at any depth a particle whose {term}
* is the group itself.
*/
- /*
- * NOTE: "gr->subtypes" holds the referenced group.
- */
- if ((modelGrDef->type != XML_SCHEMA_TYPE_GROUP) ||
- ((modelGrDef->flags & XML_SCHEMAS_TYPE_GLOBAL) == 0) ||
- (modelGrDef->subtypes == NULL))
+ if ((item == NULL) ||
+ (item->type != XML_SCHEMA_TYPE_GROUP) ||
+ (item->children == NULL))
return;
- else {
- xmlSchemaTypePtr circ;
+ {
+ xmlSchemaTreeItemPtr circ;
- circ = xmlSchemaGetCircModelGrDefRef(modelGrDef, modelGrDef->subtypes);
+ circ = xmlSchemaGetCircModelGrDefRef(item->children, NULL,
+ item->children->children);
if (circ != NULL) {
+ xmlChar *str = NULL;
/*
- * TODO: Report the referenced attr group as QName.
+ * TODO: The error report is not adequate: this constraint
+ * is defined for model groups but not definitions, but since
+ * there cannot be any circular model groups without a model group
+ * definition (if not using a construction API), we check those
+ * defintions only.
*/
xmlSchemaPCustomErr(ctxt,
XML_SCHEMAP_MG_PROPS_CORRECT_2,
- NULL, NULL, circ->node,
+ NULL, NULL, GET_NODE(circ),
"Circular reference to the model group definition '%s' "
- "defined", modelGrDef->name);
+ "defined", xmlSchemaFormatQName(&str,
+ item->targetNamespace, item->name));
+ FREE_AND_NULL(str)
/*
* NOTE: We will cut the reference to avoid further
- * confusion of the processor.
- * TODO: SPEC: Does the spec define how to process here?
+ * confusion of the processor. This is a fatal error.
*/
- circ->subtypes = NULL;
+ circ->children = NULL;
}
}
}
@@ -14845,6 +16323,50 @@ xmlSchemaCheckElemValConstr(xmlSchemaElementPtr decl,
}
}
+
+/**
+ * xmlSchemaMiscRefFixup:
+ * @item: an schema component
+ * @ctxt: a schema parser context
+ * @name: the internal name of the component
+ *
+ * Resolves references of misc. schema components.
+ */
+static void
+xmlSchemaMiscRefFixup(xmlSchemaTreeItemPtr item,
+ xmlSchemaParserCtxtPtr ctxt,
+ const xmlChar * name ATTRIBUTE_UNUSED)
+{
+ if (item->type == XML_SCHEMA_TYPE_PARTICLE) {
+ if ((item->children != NULL) &&
+ (item->children->type == XML_SCHEMA_EXTRA_QNAMEREF)) {
+ xmlSchemaQNameRefPtr ref = (xmlSchemaQNameRefPtr) item->children;
+ xmlSchemaTreeItemPtr refItem;
+ /*
+ * Resolve the reference.
+ */
+ item->children = NULL;
+ refItem = xmlSchemaGetNamedComponent(ctxt->schema,
+ ref->itemType, ref->name, ref->targetNamespace);
+ if (refItem == NULL) {
+ xmlSchemaPResCompAttrErr(ctxt, XML_SCHEMAP_SRC_RESOLVE,
+ NULL, NULL, GET_NODE(item), "ref", ref->name,
+ ref->targetNamespace, ref->itemType, NULL);
+ } else {
+ if (refItem->type == XML_SCHEMA_TYPE_GROUP) {
+ /*
+ * Assign the model group of the model group definition
+ * to the particle's "term".
+ */
+ item->children = refItem->children;
+ } else
+ item->children = refItem;
+ }
+ }
+ }
+}
+
+
/**
* xmlSchemaAttrFixup:
* @item: an schema attribute declaration/use.
@@ -15080,6 +16602,21 @@ xmlSchemaParse(xmlSchemaParserCtxtPtr ctxt)
ctxt->schema = ret;
ctxt->ctxtType = NULL;
ctxt->parentItem = NULL;
+
+
+ if (ret->volatiles != NULL) {
+ xmlSchemaItemListPtr list = (xmlSchemaItemListPtr) ret->volatiles;
+ int i;
+ xmlSchemaTreeItemPtr item;
+
+ for (i = 0; i < list->nbItems; i++) {
+ item = (xmlSchemaTreeItemPtr) list->items[i];
+ if (item->type == XML_SCHEMA_TYPE_PARTICLE)
+ xmlSchemaMiscRefFixup(item, ctxt, NULL);
+ /* xmlHashScan(ret->miscComps,
+ (xmlHashScanner) xmlSchemaMiscRefFixup, ctxt); */
+ }
+ }
/*
* Then fixup all attributes declarations
*/
@@ -15095,23 +16632,28 @@ xmlSchemaParse(xmlSchemaParserCtxtPtr ctxt)
* Resolve identity-constraint keyRefs.
*/
xmlHashScan(ret->idcDef, (xmlHashScanner) xmlSchemaResolveIDCKeyRef, ctxt);
+ /*
+ * Check type defnitions for circular references.
+ */
+ xmlHashScan(ret->typeDecl, (xmlHashScanner)
+ xmlSchemaCheckTypeDefCircular, ctxt);
+ /*
+ * Check model groups defnitions for circular references.
+ */
+ xmlHashScan(ret->groupDecl, (xmlHashScanner)
+ xmlSchemaCheckGroupDefCircular, ctxt);
/*
* Check attribute groups for circular references.
*/
xmlHashScan(ret->attrgrpDecl, (xmlHashScanner)
xmlSchemaCheckAttributeGroupCircular, ctxt);
-
- /*
- * Then fixup all model group definitions.
- */
- xmlHashScan(ret->groupDecl, (xmlHashScanner) xmlSchemaGroupDefFixup, ctxt);
/*
* Then fix references of element declaration; apply constraints.
*/
xmlHashScanFull(ret->elemDecl,
- (xmlHashScannerFull) xmlSchemaRefFixupCallback, ctxt);
+ (xmlHashScannerFull) xmlSchemaElementFixup, ctxt);
/*
* We will stop here if the schema was not valid to avoid internal errors
@@ -15126,23 +16668,13 @@ xmlSchemaParse(xmlSchemaParserCtxtPtr ctxt)
* Then fixup all types properties
*/
xmlHashScan(ret->typeDecl, (xmlHashScanner) xmlSchemaTypeFixup, ctxt);
- /*
- * Check model groups defnitions for circular references.
- */
- xmlHashScan(ret->groupDecl, (xmlHashScanner)
- xmlSchemaCheckGroupDefCircular, ctxt);
/*
* Then build the content model for all complex types
*/
xmlHashScan(ret->typeDecl,
(xmlHashScanner) xmlSchemaBuildContentModel, ctxt);
-
- /*
- * Then check the defaults part of the type like facets values
- */
- /* OLD: xmlHashScan(ret->typeDecl, (xmlHashScanner) xmlSchemaCheckDefaults, ctxt); */
-
+
/*
* Validate the value constraint of attribute declarations/uses.
*/
@@ -15301,18 +16833,20 @@ xmlSchemaGetWhiteSpaceFacetValue(xmlSchemaTypePtr type)
* by ·restriction· from it) the value of whiteSpace is fixed to
* collapse
*/
- if ((anc->type == XML_SCHEMA_TYPE_BASIC) &&
- (anc->builtInType == XML_SCHEMAS_STRING)) {
+ if ((anc->builtInType == XML_SCHEMAS_STRING) ||
+ (anc->builtInType == XML_SCHEMAS_NORMSTRING)) {
lin = type->facetSet;
do {
if (lin->facet->type == XML_SCHEMA_FACET_WHITESPACE) {
return(lin->facet->whitespace);
- break;
}
lin = lin->next;
- } while (lin != NULL);
- break;
+ } while (lin != NULL);
+ if (anc->builtInType == XML_SCHEMAS_NORMSTRING)
+ return (XML_SCHEMAS_FACET_REPLACE);
+ else
+ return (XML_SCHEMAS_FACET_PRESERVE);
}
anc = anc->baseType;
} while (anc != anyST);
@@ -15345,12 +16879,15 @@ xmlSchemaValidateFacetsInternal(xmlSchemaValidCtxtPtr ctxt,
{
int ret = 0;
xmlNodePtr node;
- xmlSchemaTypePtr biType; /* The build-in type. */
+ xmlSchemaTypePtr biType; /* The build-in type. */
xmlSchemaTypePtr tmpType;
xmlSchemaFacetLinkPtr facetLink;
int retFacet;
xmlSchemaFacetPtr facet;
unsigned long len = 0;
+ xmlSchemaWhitespaceValueType ws;
+
+ ws = (xmlSchemaWhitespaceValueType) xmlSchemaGetWhiteSpaceFacetValue(type);
#ifdef DEBUG_UNION_VALIDATION
printf("Facets of type: '%s'\n", (const char *) type->name);
@@ -15393,15 +16930,20 @@ xmlSchemaValidateFacetsInternal(xmlSchemaValidCtxtPtr ctxt,
case XML_SCHEMA_FACET_MAXLENGTH:
if (type->flags & XML_SCHEMAS_TYPE_VARIETY_LIST) {
ret = xmlSchemaValidateListSimpleTypeFacet(facet,
- value, length, 0);
+ value, length, NULL);
len = length;
} else
- ret = xmlSchemaValidateLengthFacet(biType, facet,
- value, ctxt->value, &len);
+ ret = xmlSchemaValidateLengthFacetWhtsp(facet,
+ (xmlSchemaValType) biType->builtInType,
+ value, ctxt->value, &len, ws);
break;
default:
- ret = xmlSchemaValidateFacet(biType, facet, value,
- ctxt->value);
+ ret = xmlSchemaValidateFacetWhtsp(facet, ws,
+ biType->builtInType, value, ctxt->value, ws);
+ /*
+ * ret = xmlSchemaValidateFacet(biType, facet, value,
+ * ctxt->value);
+ */
}
if (ret < 0) {
xmlSchemaVErr(ctxt, node, XML_SCHEMAV_INTERNAL,
@@ -15416,35 +16958,58 @@ xmlSchemaValidateFacetsInternal(xmlSchemaValidCtxtPtr ctxt,
facetLink = facetLink->next;
}
- if (ret >= 0) {
+
+ }
+
+ if (ret >= 0) {
+ xmlSchemaWhitespaceValueType fws;
+ int found = 0;
+ /*
+ * Process enumerations. Facet values are in the value space
+ * of the defining type's base type. This seems to be a bug in the
+ * XML Schema 1.0 spec. Use the whitespace type of the base type.
+ * Only the first set of enumerations in the ancestor-or-self axis
+ * is used for validation.
+ */
+ tmpType = type;
+ do {
/*
- * Process enumerations.
+ * Use the whitespace type of the base type.
*/
+ fws = (xmlSchemaWhitespaceValueType)
+ xmlSchemaGetWhiteSpaceFacetValue(tmpType->baseType);
retFacet = 0;
- facetLink = type->facetSet;
- while (facetLink != NULL) {
- if (facetLink->facet->type == XML_SCHEMA_FACET_ENUMERATION) {
- retFacet = xmlSchemaValidateFacet(biType, facetLink->facet,
- value, ctxt->value);
- if (retFacet <= 0)
- break;
+ for (facet = tmpType->facets; facet != NULL; facet = facet->next) {
+ if (facet->type != XML_SCHEMA_FACET_ENUMERATION)
+ continue;
+ found = 1;
+ retFacet = xmlSchemaValidateFacetWhtsp(facet, fws,
+ biType->builtInType, value, ctxt->value, ws);
+ if (retFacet == 0)
+ break;
+ else if (retFacet < 0) {
+ xmlSchemaVErr(ctxt, node, XML_SCHEMAV_INTERNAL,
+ "Internal error: xmlSchemaValidateFacetsInternal, "
+ "validating enumeration facet '%s' of type '%s'.\n",
+ facet->value, tmpType->name);
+ ret = -1;
+ break;
}
- facetLink = facetLink->next;
}
- if (retFacet > 0) {
- ret = XML_SCHEMAV_CVC_ENUMERATION_VALID;
- if (fireErrors)
- xmlSchemaVFacetErr(ctxt, ret, node,
- value, 0, type, NULL, NULL, NULL, NULL, NULL);
- } else if (retFacet < 0) {
- xmlSchemaVErr(ctxt, node, XML_SCHEMAV_INTERNAL,
- "Internal error: xmlSchemaValidateFacetsInternal, "
- "validating facet of type '%s'.\n",
- BAD_CAST "enumeration", NULL);
- ret = -1;
- }
- }
+ if (retFacet <= 0)
+ break;
+ tmpType = tmpType->baseType;
+ } while ((! found) && (tmpType != NULL) &&
+ (tmpType->type != XML_SCHEMA_TYPE_BASIC));
+ if (retFacet > 0) {
+ ret = XML_SCHEMAV_CVC_ENUMERATION_VALID;
+ if (fireErrors) {
+ xmlSchemaVFacetErr(ctxt, ret, node, value, 0, type, NULL,
+ NULL, NULL, NULL, NULL);
+ }
+ }
}
+
if (ret >= 0) {
/*
* Process patters. Pattern facets are ORed at type level
@@ -15474,7 +17039,7 @@ xmlSchemaValidateFacetsInternal(xmlSchemaValidCtxtPtr ctxt,
facet = facetLink->facet;
}
if (retFacet != 0)
- break;
+ break;
tmpType = tmpType->baseType;
} while ((tmpType != NULL) && (tmpType->type != XML_SCHEMA_TYPE_BASIC));
if (retFacet > 0) {
@@ -15513,7 +17078,6 @@ static int xmlSchemaValidateElementByType(xmlSchemaValidCtxtPtr ctxt,
static void xmlSchemaBeginElement(xmlSchemaValidCtxtPtr vctxt);
static int xmlSchemaEndElement(xmlSchemaValidCtxtPtr vctxt);
-#ifdef ELEM_INFO_ENABLED
/**
* xmlSchemaGetFreshElemInfo:
* @vctxt: the schema validation context
@@ -15582,8 +17146,6 @@ xmlSchemaGetFreshElemInfo(xmlSchemaValidCtxtPtr vctxt,
return (info);
}
-#endif /* ELEM_INFO_ENABLED */
-
/**
* xmlSchemaFreeAttrStates:
@@ -15695,15 +17257,15 @@ xmlSchemaPostSchemaAssembleFixup(xmlSchemaParserCtxtPtr ctxt)
xmlSchemaAttrFixup((xmlSchemaAttributePtr) item, ctxt, NULL);
break;
case XML_SCHEMA_TYPE_ELEMENT:
- xmlSchemaRefFixupCallback((xmlSchemaElementPtr) item, ctxt,
+ xmlSchemaElementFixup((xmlSchemaElementPtr) item, ctxt,
NULL, NULL, NULL);
break;
case XML_SCHEMA_TYPE_ATTRIBUTEGROUP:
xmlSchemaAttrGrpFixup((xmlSchemaAttributeGroupPtr) item,
ctxt, NULL);
break;
- case XML_SCHEMA_TYPE_GROUP:
- xmlSchemaGroupDefFixup(item, ctxt, NULL);
+ case XML_SCHEMA_TYPE_PARTICLE:
+ xmlSchemaMiscRefFixup((xmlSchemaTreeItemPtr) item, ctxt, NULL);
default:
break;
}
@@ -15713,9 +17275,15 @@ xmlSchemaPostSchemaAssembleFixup(xmlSchemaParserCtxtPtr ctxt)
*/
for (i = 0; i < nbItems; i++) {
item = items[i];
- switch (item->type) {
+ switch (item->type) {
+ case XML_SCHEMA_TYPE_COMPLEX:
+ case XML_SCHEMA_TYPE_SIMPLE:
+ xmlSchemaCheckTypeDefCircular(
+ (xmlSchemaTypePtr) item, ctxt, NULL);
+ break;
case XML_SCHEMA_TYPE_GROUP:
- xmlSchemaCheckGroupDefCircular(item, ctxt, NULL);
+ xmlSchemaCheckGroupDefCircular(
+ (xmlSchemaModelGroupDefPtr) item, ctxt, NULL);
break;
case XML_SCHEMA_TYPE_ATTRIBUTEGROUP:
xmlSchemaCheckAttributeGroupCircular(
@@ -15726,9 +17294,7 @@ xmlSchemaPostSchemaAssembleFixup(xmlSchemaParserCtxtPtr ctxt)
}
}
/*
- * Fixup for all other item.
- * TODO: Hmm, not sure if starting from complex/simple types,
- * all subsequent items will be reached.
+ * Fixup for simple/complex types.
*/
for (i = 0; i < nbItems; i++) {
item = items[i];
@@ -15742,24 +17308,6 @@ xmlSchemaPostSchemaAssembleFixup(xmlSchemaParserCtxtPtr ctxt)
}
}
/*
- * Check facet values. Note that facets are
- * hold by simple type components only (and
- * by complex types in the current implementation).
- */
- /* OLD:
- for (i = 0; i < nbItems; i++) {
- item = items[i];
- switch (item->type) {
- case XML_SCHEMA_TYPE_SIMPLE:
- case XML_SCHEMA_TYPE_COMPLEX:
- xmlSchemaCheckDefaults(item, ctxt, NULL);
- break;
- default:
- break;
- }
- }
- */
- /*
* Build the content model for complex types.
*/
for (i = 0; i < nbItems; i++) {
@@ -15779,10 +17327,12 @@ xmlSchemaPostSchemaAssembleFixup(xmlSchemaParserCtxtPtr ctxt)
item = items[i];
switch (item->type) {
case XML_SCHEMA_TYPE_ATTRIBUTE:
- xmlSchemaCheckAttrValConstr((xmlSchemaAttributePtr) item, ctxt, NULL);
+ xmlSchemaCheckAttrValConstr((xmlSchemaAttributePtr) item,
+ ctxt, NULL);
break;
case XML_SCHEMA_TYPE_ELEMENT:
- xmlSchemaCheckElemValConstr((xmlSchemaElementPtr) item, ctxt, NULL);
+ xmlSchemaCheckElemValConstr((xmlSchemaElementPtr) item,
+ ctxt, NULL);
break;
default:
break;
@@ -16036,26 +17586,17 @@ xmlSchemaAssembleByXSIElem(xmlSchemaValidCtxtPtr vctxt,
static void
xmlSchemaValidateCallback(xmlSchemaValidCtxtPtr ctxt,
const xmlChar * name ATTRIBUTE_UNUSED,
- xmlSchemaTypePtr type, xmlNodePtr node)
+ xmlSchemaBasicItemPtr item, xmlNodePtr node)
{
- xmlSchemaTypePtr oldtype = ctxt->type;
xmlNodePtr oldnode = ctxt->node;
-#ifdef DEBUG_CONTENT
- xmlGenericError(xmlGenericErrorContext,
- "xmlSchemaValidateCallback: %s, %s, %s\n",
- name, type->name, node->name);
-#endif
/*
* @type->type will be XML_SCHEMA_TYPE_ANY or XML_SCHEMA_TYPE_ELEMENT.
*/
- ctxt->type = type;
ctxt->node = node;
ctxt->cur = node->children;
-#ifdef ELEM_INFO_ENABLED
xmlSchemaBeginElement(ctxt);
-#endif
/*
* Assemble new schemata using xsi.
@@ -16077,43 +17618,32 @@ xmlSchemaValidateCallback(xmlSchemaValidCtxtPtr ctxt,
* TODO: But a warning would be nice.
*/
}
- switch (type->type) {
+ switch (item->type) {
case XML_SCHEMA_TYPE_ELEMENT: {
- /*
- * NOTE: The build of the content model
- * (xmlSchemaBuildAContentModel) ensures that the element
- * declaration (and not a reference to it) will be given.
- */
- if (((xmlSchemaElementPtr) ctxt->type)->ref != NULL) {
- /*
- * This is paranoid coding ;-)... it should not
- * happen here any more.
- */
- xmlSchemaVCustomErr(ctxt,
- XML_SCHEMAV_INTERNAL,
- node, NULL,
- "Internal error: xmlSchemaValidateCallback, "
- "element declaration 'reference' encountered, "
- "but an element declaration was expected",
- NULL);
- goto leave;
- }
+#ifdef DEBUG_CONTENT
+ xmlGenericError(xmlGenericErrorContext,
+ "xmlSchemaValidateCallback: %s, %s, %s\n",
+ name, ((xmlSchemaElementPtr) item)->name, node->name);
+#endif
xmlSchemaValidateElementByDeclaration(ctxt,
- (xmlSchemaElementPtr) type);
+ (xmlSchemaElementPtr) item);
break;
}
case XML_SCHEMA_TYPE_ANY:
- xmlSchemaValidateElementByWildcard(ctxt, type);
+#ifdef DEBUG_CONTENT
+ xmlGenericError(xmlGenericErrorContext,
+ "xmlSchemaValidateCallback: %s, <any>, %s\n",
+ name, node->name);
+#endif
+ xmlSchemaValidateElementByWildcard(ctxt,
+ (xmlSchemaWildcardPtr) item);
break;
default:
break;
}
leave:
-#ifdef ELEM_INFO_ENABLED
xmlSchemaEndElement(ctxt);
-#endif
- ctxt->type = oldtype;
ctxt->node = oldnode;
}
@@ -16179,6 +17709,34 @@ xmlSchemaValidateNotation(xmlSchemaValidCtxtPtr vctxt,
return (ret);
}
+static xmlSchemaTypePtr
+xmlSchemaGetSimpleContentType(xmlSchemaTypePtr complexType)
+{
+ xmlSchemaTypePtr ret;
+
+ if (complexType->type != XML_SCHEMA_TYPE_COMPLEX)
+ return (NULL);
+ if (complexType->contentTypeDef != NULL)
+ return (complexType->contentTypeDef);
+ /*
+ * TODO: This is only a workaround until the simple content
+ * type is computed for complex types with simple content.
+ */
+ ret = complexType->baseType;
+ while (ret != NULL) {
+ if (IS_SIMPLE_TYPE(ret))
+ return (ret);
+ if (ret->builtInType == XML_SCHEMAS_ANYTYPE)
+ return (NULL);
+ if ((ret->type == XML_SCHEMA_TYPE_COMPLEX) &&
+ (ret->contentTypeDef != NULL))
+ ret = ret->contentTypeDef;
+ else
+ ret = ret->baseType;
+ }
+ return (ret);
+}
+
/**
* xmlSchemaValidateSimpleTypeValue:
* @ctxt: a schema validation context
@@ -16289,18 +17847,20 @@ xmlSchemaValidateSimpleTypeValue(xmlSchemaValidCtxtPtr ctxt,
}
if (type->type == XML_SCHEMA_TYPE_COMPLEX) {
- xmlSchemaTypePtr base, anyType;
+ xmlSchemaTypePtr simpType, anyType;
anyType = xmlSchemaGetBuiltInType(XML_SCHEMAS_ANYTYPE);
- base = type->baseType;
- while ((base != NULL) &&
- (base->type != XML_SCHEMA_TYPE_SIMPLE) &&
- (base->type != XML_SCHEMA_TYPE_BASIC) &&
- (base != anyType)) {
- base = base->baseType;
+ simpType = xmlSchemaGetSimpleContentType(type);
+ if (simpType == NULL) {
+ xmlSchemaVErr(ctxt, node, XML_SCHEMAV_INTERNAL,
+ "Internal error: xmlSchemaValidateSimpleTypeValue, "
+ "failed to obtain the simple content type of the complex "
+ "type '%s'\n",
+ type->name, NULL);
+ return (-1);
}
- ret = xmlSchemaValidateSimpleTypeValue(ctxt, base, value, 1, 0, 1, 0);
+ ret = xmlSchemaValidateSimpleTypeValue(ctxt, simpType, value, 1, 0, 1, 0);
if (ret < 0) {
xmlSchemaVErr(ctxt, node, XML_SCHEMAV_INTERNAL,
"Internal error: xmlSchemaValidateSimpleTypeValue, "
@@ -16309,15 +17869,14 @@ xmlSchemaValidateSimpleTypeValue(xmlSchemaValidCtxtPtr ctxt,
} else if ((ret == 0) && (applyFacets) && (type->facetSet != NULL)) {
/*
* Check facets.
- */
- /*
- * This is somehow not nice, since if an error occurs
+ *
+ * TODO: This is somehow not nice, since if an error occurs
* the reported type will be the complex type; the spec
* wants a simple type to be created on the complex type
* if it has a simple content. For now we have to live with
* it.
- */
- ret = xmlSchemaValidateFacetsInternal(ctxt, type,
+ */
+ ret = xmlSchemaValidateFacetsInternal(ctxt, type,
value, 0, fireErrors);
if (ret < 0) {
xmlSchemaVErr(ctxt, node, XML_SCHEMAV_INTERNAL,
@@ -16363,7 +17922,6 @@ xmlSchemaValidateSimpleTypeValue(xmlSchemaValidCtxtPtr ctxt,
(type->builtInType == XML_SCHEMAS_STRING) &&
(ctxt->nodeInfo != NULL) &&
(ctxt->nodeInfo->flags & XML_SCHEMA_ELEM_INFO_VALUE_NEEDED)) {
-#ifdef IDC_VALUE_SUPPORT
xmlChar *valdup;
/*
* Create a precomputed string value for "string" as well if
@@ -16374,7 +17932,6 @@ xmlSchemaValidateSimpleTypeValue(xmlSchemaValidCtxtPtr ctxt,
BAD_CAST valdup);
if ((valdup != NULL) && (ctxt->value == NULL))
xmlFree(valdup);
-#endif
}
} else if (type->flags & XML_SCHEMAS_TYPE_VARIETY_ATOMIC) {
/* 1.2.1 if {variety} is ·atomic· then the string must ·match·
@@ -16393,8 +17950,8 @@ xmlSchemaValidateSimpleTypeValue(xmlSchemaValidCtxtPtr ctxt,
} else if ((applyFacets) && (type->facetSet != NULL)) {
/*
* Check facets.
- */
- ret = xmlSchemaValidateFacetsInternal(ctxt, type,
+ */
+ ret = xmlSchemaValidateFacetsInternal(ctxt, type,
value, 0, fireErrors);
if (ret < 0) {
xmlSchemaVErr(ctxt, node, XML_SCHEMAV_INTERNAL,
@@ -16461,7 +18018,7 @@ xmlSchemaValidateSimpleTypeValue(xmlSchemaValidCtxtPtr ctxt,
"validating list simple type '%s'\n",
type->name, NULL);
} else if ((ret == 0) && (applyFacets)) {
- ret = xmlSchemaValidateFacetsInternal(ctxt, type,
+ ret = xmlSchemaValidateFacetsInternal(ctxt, type,
value, len, fireErrors);
if (ret < 0) {
xmlSchemaVErr(ctxt, node, XML_SCHEMAV_INTERNAL,
@@ -16555,7 +18112,7 @@ xmlSchemaValidateSimpleTypeValue(xmlSchemaValidCtxtPtr ctxt,
value = (const xmlChar *) normValue;
}
- ret = xmlSchemaValidateFacetsInternal(ctxt, type,
+ ret = xmlSchemaValidateFacetsInternal(ctxt, type,
value, 0, fireErrors);
if (ret < 0) {
xmlSchemaVErr(ctxt, node, XML_SCHEMAV_INTERNAL,
@@ -16810,8 +18367,6 @@ xmlSchemaHasElemOrCharContent(xmlNodePtr node)
* *
************************************************************************/
-#ifdef IDC_ENABLED
-
/**
* xmlSchemaAugmentIDC:
* @idcDef: the IDC definition
@@ -17192,7 +18747,6 @@ xmlSchemaAreValuesEqual(xmlSchemaValidCtxtPtr vctxt,
}
compareValue:
{
-#ifdef IDC_VALUE_SUPPORT
int ret;
int aws, bws;
@@ -17213,9 +18767,6 @@ compareValue:
return(-1);
} else
return(0);
-#else
- return (1);
-#endif
}
}
@@ -17345,8 +18896,6 @@ xmlSchemaXPathEvaluate(xmlSchemaValidCtxtPtr vctxt,
xmlGenericError(xmlGenericErrorContext, "IDC: ['%s'] field '%s'\n",
sto->matcher->aidc->def->name, sto->sel->xpath);
#endif
-
-#ifdef IDC_XPATH_SUPPORT
if (nodeType == XML_ELEMENT_NODE)
res = xmlStreamPush((xmlStreamCtxtPtr) sto->xpathCtxt,
vctxt->nodeInfo->localName, vctxt->nodeInfo->namespaceName);
@@ -17354,9 +18903,6 @@ xmlSchemaXPathEvaluate(xmlSchemaValidCtxtPtr vctxt,
res = xmlStreamPushAttr((xmlStreamCtxtPtr) sto->xpathCtxt,
vctxt->nodeInfo->localName, vctxt->nodeInfo->namespaceName);
-#else
- res = 0;
-#endif
if (res == -1) {
xmlSchemaVErr(vctxt, vctxt->node,
XML_SCHEMAV_INTERNAL,
@@ -17486,12 +19032,10 @@ xmlSchemaXPathProcessHistory(xmlSchemaValidCtxtPtr vctxt,
* Evaluate the state objects.
*/
while (sto != NULL) {
-#ifdef IDC_XPATH_SUPPORT
xmlStreamPop((xmlStreamCtxtPtr) sto->xpathCtxt);
- #if DEBUG_IDC
- xmlGenericError(xmlGenericErrorContext, "IDC: stream pop '%s'\n",
- sto->sel->xpath);
- #endif
+#if DEBUG_IDC
+ xmlGenericError(xmlGenericErrorContext, "IDC: stream pop '%s'\n",
+ sto->sel->xpath);
#endif
if (sto->nbHistory == 0)
goto deregister_check;
@@ -18036,7 +19580,7 @@ xmlSchemaBubbleIDCNodeTables(xmlSchemaValidCtxtPtr vctxt)
xmlSchemaPSVIIDCNodePtr node, parNode = NULL; /* node-table entries. */
xmlSchemaPSVIIDCKeyPtr key, parKey; /* keys of in a key-sequence. */
xmlSchemaIDCAugPtr aidc;
- int i, j, k, ret = 0, oldNum, newDupls = 0;
+ int i, j, k, ret = 0, oldNum, newDupls;
int duplTop;
/*
@@ -18078,7 +19622,8 @@ start_binding:
aidc = vctxt->aidcs;
do {
if (aidc->def == bind->definition) {
- if (aidc->bubbleDepth >= vctxt->depth) {
+ if ((aidc->bubbleDepth == -1) ||
+ (aidc->bubbleDepth >= vctxt->depth)) {
bind = bind->next;
goto start_binding;
}
@@ -18102,6 +19647,7 @@ start_binding:
*/
oldNum = parBind->nbNodes; /* Skip newly added items. */
duplTop = oldNum + parBind->nbDupls;
+ newDupls = 0;
for (i = 0; i < bind->nbNodes; i++) {
node = bind->nodeTable[i];
@@ -18200,7 +19746,7 @@ start_binding:
*/
if (parBind->nodeTable == NULL) {
parBind->nodeTable = (xmlSchemaPSVIIDCNodePtr *)
- xmlMalloc(1 * sizeof(xmlSchemaPSVIIDCNodePtr));
+ xmlMalloc(10 * sizeof(xmlSchemaPSVIIDCNodePtr));
if (parBind->nodeTable == NULL) {
xmlSchemaVErrMemory(NULL,
"allocating IDC list of node-table items", NULL);
@@ -18208,7 +19754,7 @@ start_binding:
}
parBind->sizeNodes = 1;
} else if (duplTop >= parBind->sizeNodes) {
- parBind->sizeNodes++;
+ parBind->sizeNodes *= 2;
parBind->nodeTable = (xmlSchemaPSVIIDCNodePtr *)
xmlRealloc(parBind->nodeTable, parBind->sizeNodes *
sizeof(xmlSchemaPSVIIDCNodePtr));
@@ -18251,7 +19797,7 @@ start_binding:
lastParBind = parBind;
parBind = parBind->next;
}
- if (parBind == NULL) {
+ if ((parBind == NULL) && (bind->nbNodes != 0)) {
/*
* No binding for the IDC was found: create a new one and
* copy all node-tables.
@@ -18358,9 +19904,7 @@ xmlSchemaCheckCVCIDCKeyRef(xmlSchemaValidCtxtPtr vctxt)
}
return (0);
}
-#endif /* IDC_ENABLED */
-#ifdef ELEM_INFO_ENABLED
/**
* xmlSchemaBeginElement:
* @vctxt: the WXS validation context
@@ -18396,7 +19940,6 @@ xmlSchemaEndElement(xmlSchemaValidCtxtPtr vctxt)
vctxt->depth--;
return (0);
}
-#ifdef IDC_ENABLED
/*
* Evaluate the history of changes of active state objects.
*/
@@ -18416,13 +19959,11 @@ xmlSchemaEndElement(xmlSchemaValidCtxtPtr vctxt)
* Validate IDC keyrefs.
*/
xmlSchemaCheckCVCIDCKeyRef(vctxt);
-#endif
/*
* Merge/free the IDC table.
*/
if (vctxt->nodeInfo->idcTable != NULL) {
-#ifdef IDC_ENABLED
#ifdef DEBUG_IDC
xmlSchemaDebugDumpIDCTable(stdout,
vctxt->nodeInfo->namespaceName,
@@ -18440,19 +19981,16 @@ xmlSchemaEndElement(xmlSchemaValidCtxtPtr vctxt)
* requested for the PSVI.
*/
xmlSchemaIDCFreeIDCTable(vctxt->nodeInfo->idcTable);
-#endif
vctxt->nodeInfo->idcTable = NULL;
}
/*
* Cleanup IDC matchers.
*/
-#ifdef IDC_ENABLED
if (vctxt->nodeInfo->idcMatchers != NULL) {
xmlSchemaIDCFreeMatcherList(vctxt->nodeInfo->idcMatchers);
vctxt->nodeInfo->idcMatchers = NULL;
}
-#endif
/*
* Skip further processing if we are on the validation root.
@@ -18465,7 +20003,6 @@ xmlSchemaEndElement(xmlSchemaValidCtxtPtr vctxt)
/*
* Reset the bubbleDepth if needed.
*/
-#ifdef IDC_ENABLED
if (vctxt->aidcs != NULL) {
xmlSchemaIDCAugPtr aidc = vctxt->aidcs;
do {
@@ -18480,7 +20017,6 @@ xmlSchemaEndElement(xmlSchemaValidCtxtPtr vctxt)
aidc = aidc->next;
} while (aidc != NULL);
}
-#endif
vctxt->depth--;
/*
* Clear the current elemInfo.
@@ -18495,8 +20031,6 @@ xmlSchemaEndElement(xmlSchemaValidCtxtPtr vctxt)
return (0);
}
-#endif /* ELEM_INFO_ENABLED */
-
/**
* xmlSchemaValidateElementByDeclaration:
* @ctxt: a schema validation context
@@ -18547,10 +20081,8 @@ xmlSchemaValidateElementByDeclaration(xmlSchemaValidCtxtPtr ctxt,
/*
* Evaluate IDCs even if an error occured.
*/
-#ifdef IDC_ENABLED
if (xmlSchemaXPathEvaluate(ctxt, XML_ELEMENT_NODE) == -1)
return (-1);
-#endif
return (ctxt->err);
}
/*
@@ -18564,10 +20096,8 @@ xmlSchemaValidateElementByDeclaration(xmlSchemaValidCtxtPtr ctxt,
/*
* Evaluate IDCs even if an error occured.
*/
-#ifdef IDC_ENABLED
if (xmlSchemaXPathEvaluate(ctxt, XML_ELEMENT_NODE) == -1)
return (-1);
-#endif
return (ctxt->err);
}
@@ -18723,19 +20253,15 @@ xmlSchemaValidateElementByDeclaration(xmlSchemaValidCtxtPtr ctxt,
/*
* Evaluate IDCs even if an error occured.
*/
-#ifdef IDC_ENABLED
if (xmlSchemaXPathEvaluate(ctxt, XML_ELEMENT_NODE) == -1)
return (-1);
-#endif
return (XML_SCHEMAV_CVC_TYPE_1);
}
/*
* Remember the actual-type definition.
*/
-#ifdef ELEM_INFO_ENABLED
ctxt->nodeInfo->typeDef = actualType;
-#endif
/*
* TODO: Since this should be already checked by the content model automaton,
@@ -18771,7 +20297,6 @@ xmlSchemaValidateElementByDeclaration(xmlSchemaValidCtxtPtr ctxt,
/*
* IDC: Register identity-constraint XPath matchers.
*/
-#ifdef IDC_ENABLED
if (elemDecl->idcs != NULL)
xmlSchemaIDCRegisterMatchers(ctxt, elemDecl);
/*
@@ -18779,7 +20304,6 @@ xmlSchemaValidateElementByDeclaration(xmlSchemaValidCtxtPtr ctxt,
*/
if (xmlSchemaXPathEvaluate(ctxt, XML_ELEMENT_NODE) == -1)
return (-1);
-#endif
/*
* cvc-elt (3.3.4) : 5
* The appropriate case among the following must be true:
@@ -18871,12 +20395,10 @@ xmlSchemaValidateElementByDeclaration(xmlSchemaValidCtxtPtr ctxt,
* Consume the computed value for IDCs, ect. Note that default
* values are not supported yet.
*/
-#ifdef ELEM_INFO_ENABLED
if (ctxt->value != NULL) {
ctxt->nodeInfo->value = ctxt->value;
ctxt->value = NULL;
}
-#endif
ctxt->node = elem;
if (ret < 0) {
xmlSchemaVCustomErr(ctxt,
@@ -19046,10 +20568,9 @@ xmlSchemaValidateElementByWildcardInternal(xmlSchemaValidCtxtPtr ctxt,
/*
* Evaluate IDCs even if a validation error occured.
*/
-#ifdef IDC_ENABLED
if (xmlSchemaXPathEvaluate(ctxt,XML_ELEMENT_NODE) == -1)
return(-1);
-#endif
+
return (ctxt->err);
}
/*
@@ -19058,10 +20579,8 @@ xmlSchemaValidateElementByWildcardInternal(xmlSchemaValidCtxtPtr ctxt,
* definitely result in an IDC validation error if an IDC field
* resolves.
*/
-#ifdef IDC_ENABLED
if (xmlSchemaXPathEvaluate(ctxt, XML_ELEMENT_NODE) == -1)
return(-1);
-#endif
}
if (node->children != NULL) {
child = node->children;
@@ -19078,10 +20597,10 @@ xmlSchemaValidateElementByWildcardInternal(xmlSchemaValidCtxtPtr ctxt,
"The namespace of the element is not allowed");
return (ctxt->err);
}
-#ifdef ELEM_INFO_ENABLED
+
ctxt->node = child;
xmlSchemaBeginElement(ctxt);
-#endif
+
/*
* Recurse over the children.
*/
@@ -19089,10 +20608,10 @@ xmlSchemaValidateElementByWildcardInternal(xmlSchemaValidCtxtPtr ctxt,
wild, child);
if (ret == -1)
return (-1);
-#ifdef ELEM_INFO_ENABLED
+
if (xmlSchemaEndElement(ctxt) == -1)
return (-1);
-#endif
+
if (ret != 0)
return (ret);
}
@@ -19111,9 +20630,10 @@ xmlSchemaValidateElementByWildcardInternal(xmlSchemaValidCtxtPtr ctxt,
*/
static int
xmlSchemaValidateElementByWildcard(xmlSchemaValidCtxtPtr ctxt,
- xmlSchemaTypePtr type)
+ xmlSchemaWildcardPtr wild)
{
- if ((type == NULL) || (type->type != XML_SCHEMA_TYPE_ANY) ||
+
+ if ((wild == NULL) || (wild->type != XML_SCHEMA_TYPE_ANY) ||
(ctxt->node == NULL)) {
xmlSchemaVCustomErr(ctxt,
XML_SCHEMAV_INTERNAL, ctxt->node, NULL,
@@ -19121,12 +20641,26 @@ xmlSchemaValidateElementByWildcard(xmlSchemaValidCtxtPtr ctxt,
"bad arguments", NULL);
return (-1);
}
+ if (wild->negNsSet != NULL) {
+ /*
+ * Workaround for negated namespaces.
+ */
+ if (ctxt->node->ns != NULL) {
+ if (xmlSchemaMatchesWildcardNs(wild, ctxt->node->ns->href) == 0) {
+ ctxt->flags |= XML_SCHEMA_VALID_INVALID_NEG_WILDCARD;
+ return (XML_SCHEMAV_ELEMENT_CONTENT);
+ }
+ } else if (xmlSchemaMatchesWildcardNs(wild, NULL) == 0) {
+ ctxt->flags |= XML_SCHEMA_VALID_INVALID_NEG_WILDCARD;
+ return (XML_SCHEMAV_ELEMENT_CONTENT);
+ }
+ }
return(xmlSchemaValidateElementByWildcardInternal(ctxt,
- type->attributeWildcard, ctxt->node));
+ wild, ctxt->node));
}
/**
- * xmlSchemaValidateAnyTypeContent:
+ * xmlSchemaValidateElementByAnyType:
* @ctxt: a schema validation context
* @node: the current element
*
@@ -19145,7 +20679,7 @@ xmlSchemaValidateElementByAnyType(xmlSchemaValidCtxtPtr ctxt,
xmlSchemaTypePtr oldtype;
xmlNodePtr top, cur;
xmlSchemaElementPtr decl;
- int skipContent, ret;
+ int skipContent, ret, insub = 0;
if ((type == NULL) || (ctxt->node == NULL))
return (-1);
@@ -19171,9 +20705,18 @@ xmlSchemaValidateElementByAnyType(xmlSchemaValidCtxtPtr ctxt,
decl = xmlHashLookup3(ctxt->schema->elemDecl,
cur->name, cur->ns->href, NULL);
else
- decl = xmlHashLookup3(ctxt->schema->elemDecl, cur->name, NULL, NULL);
- if (decl != NULL) {
- ctxt->node = cur;
+ decl = xmlHashLookup3(ctxt->schema->elemDecl, cur->name, NULL, NULL);
+ ctxt->node = cur;
+
+ if (insub) {
+ /*
+ * BEGIN element.
+ */
+ xmlSchemaBeginElement(ctxt);
+ } else
+ insub = 1;
+
+ if (decl != NULL) {
ret = xmlSchemaValidateElementByDeclaration(ctxt, decl);
ctxt->node = top;
if (ret < 0) {
@@ -19185,6 +20728,12 @@ xmlSchemaValidateElementByAnyType(xmlSchemaValidCtxtPtr ctxt,
} else if (ret > 0)
return (ret);
skipContent = 1;
+ } else {
+ /*
+ * IDCs.
+ */
+ if (xmlSchemaXPathEvaluate(ctxt,XML_ELEMENT_NODE) == -1)
+ return(-1);
}
}
/*
@@ -19196,10 +20745,16 @@ xmlSchemaValidateElementByAnyType(xmlSchemaValidCtxtPtr ctxt,
} else if ((cur != top) && (cur->next != NULL)) {
/* then siblings */
cur = cur->next;
- } else if (cur != top) {
+ } else if (cur != top) {
/* go up to parents->next if needed */
while (cur != top) {
- if (cur->parent != NULL)
+ if (cur->type == XML_ELEMENT_NODE) {
+ /*
+ * END element.
+ */
+ xmlSchemaEndElement(ctxt);
+ }
+ if (cur->parent != NULL)
cur = cur->parent;
if ((cur != top) && (cur->next != NULL)) {
cur = cur->next;
@@ -19297,41 +20852,57 @@ xmlSchemaValidateElementByComplexType(xmlSchemaValidCtxtPtr ctxt,
*/
switch (type->contentType) {
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: Is the entity stuff correct?
+ */
+ if (xmlSchemaHasElemOrCharContent(elem) == 1) {
+ xmlSchemaVComplexTypeErr(ctxt,
+ XML_SCHEMAV_CVC_COMPLEX_TYPE_2_1,
+ elem, type,
+ "Character or element content is not allowed, "
+ "because the content type is empty");
+ }
+ break;
+ }
+ case XML_SCHEMA_CONTENT_MIXED:
/*
- * 1 If the {content type} is empty, then the element information
- * item has no character or element information item [children].
- */
- /*
- * TODO: Is the entity stuff correct?
+ * Some speedups for anyType or types derived directly from it.
*/
- if (xmlSchemaHasElemOrCharContent(elem) == 1) {
- xmlSchemaVComplexTypeErr(ctxt,
- XML_SCHEMAV_CVC_COMPLEX_TYPE_2_1,
- elem, type,
- "Character or element content is not allowed, "
- "because the content type is empty");
- }
- break;
- }
- case XML_SCHEMA_CONTENT_MIXED:
- if ((type->subtypes == NULL) &&
- (type->baseType->builtInType == XML_SCHEMAS_ANYTYPE)) {
+ if (IS_ANYTYPE(type)) {
+ /*
+ * Corresponds to <element name="foo" [type="xsd:anyType"]/>.
+ */
+ ret = xmlSchemaValidateElementByAnyType(ctxt, type);
+ /* TODO: Handle -1. */
+ break;
+ }
+ if (IS_ANYTYPE(type->baseType) &&
+ (type->flags & XML_SCHEMAS_TYPE_DERIVATION_METHOD_EXTENSION) &&
+ (type->subtypes == type->baseType->subtypes)) {
/*
- * The type has 'anyType' as its base and no content model
- * is defined -> use 'anyType' as the type to validate
- * against.
+ * Corresponds to an <extension> of anyType.
*/
ret = xmlSchemaValidateElementByAnyType(ctxt, type->baseType);
/* TODO: Handle -1. */
break;
}
/* No break on purpose. */
- case XML_SCHEMA_CONTENT_ELEMENTS:
- {
+ case XML_SCHEMA_CONTENT_ELEMENTS: {
xmlRegExecCtxtPtr oldregexp = NULL;
xmlChar *values[10];
int terminal, nbval = 10, nbneg;
-
+ /*
+ * SPEC (2.4) If the {content type} is element-only or mixed,
+ * then the sequence of the element information item's
+ * element information item [children], if any, taken in
+ * order, is ·valid· with respect to the {content type}'s
+ * particle, as defined in Element Sequence Locally Valid
+ * (Particle) (§3.9.4).
+ */
/*
* Content model check initialization.
*/
@@ -19355,14 +20926,18 @@ xmlSchemaValidateElementByComplexType(xmlSchemaValidCtxtPtr ctxt,
else
nsUri = NULL;
ret = xmlRegExecPushString2(ctxt->regexp,
- child->name, nsUri, child);
+ child->name, nsUri, child);
if (ctxt->err == XML_SCHEMAV_INTERNAL)
return (-1);
- /*
- * URGENT TODO: Could we anchor an error report
- * here to notify of invalid elements?
- * TODO: Perhaps it would be better to report
- * only the first erroneous element and then break.
+ if (ctxt->flags & XML_SCHEMA_VALID_INVALID_NEG_WILDCARD) {
+ ctxt->flags ^= XML_SCHEMA_VALID_INVALID_NEG_WILDCARD;
+ ret = -1;
+ }
+ /*
+ * URGENT TODO: Could we anchor an error report
+ * here to notify of invalid elements?
+ * TODO: Perhaps it would be better to report
+ * only the first erroneous element and then break.
*/
#ifdef DEBUG_AUTOMATA
if (ret < 0)
@@ -19418,33 +20993,31 @@ xmlSchemaValidateElementByComplexType(xmlSchemaValidCtxtPtr ctxt,
if (type->contModel != NULL) {
if (ret == 0) {
xmlRegExecNextValues(ctxt->regexp, &nbval, &nbneg,
- &values[0], &terminal);
- if (nbval + nbneg != 0) {
- /*
- * If a next value still exists, I does not have to
- * mean that there's an element missing, since it
- * might be an optional element. So double check it.
- */
- ret = xmlRegExecPushString(ctxt->regexp,
- NULL, NULL);
- if (ret <= 0) {
- ret = 1;
- xmlSchemaVComplexTypeElemErr(ctxt,
- XML_SCHEMAV_ELEMENT_CONTENT,
- elem, type, "Missing child element(s)",
- nbval, nbneg, values);
- } else
- ret = 0;
+ &values[0], &terminal);
+ /*
+ * If a next value still exists, It does not have to
+ * mean that there's an element missing, since it
+ * might be an optional element. So double check it.
+ */
+ ret = xmlRegExecPushString(ctxt->regexp,
+ NULL, NULL);
+ if (ret <= 0) {
+ ret = 1;
+ xmlSchemaVComplexTypeElemErr(ctxt,
+ XML_SCHEMAV_ELEMENT_CONTENT,
+ elem, type, "Missing child element(s)",
+ nbval, nbneg, values);
+ } else
+ ret = 0;
#ifdef DEBUG_AUTOMATA
- xmlGenericError(xmlGenericErrorContext,
- "====> %s : %d\n", elem->name, ret);
+ xmlGenericError(xmlGenericErrorContext,
+ "====> %s : %d\n", elem->name, ret);
#endif
- }
#ifdef DEBUG_CONTENT
if (ret == 0)
xmlGenericError(xmlGenericErrorContext,
- "Element %s content check succeeded\n",
- elem->name);
+ "Element %s content check succeeded\n",
+ elem->name);
#endif
}
xmlRegFreeExecCtxt(ctxt->regexp);
@@ -19495,81 +21068,45 @@ xmlSchemaValidateElementByComplexType(xmlSchemaValidCtxtPtr ctxt,
}
ctxt->node = elem;
ctxt->cur = elem->children;
- if (ret == 0) {
- /*
- * Validate the character content against a simple type.
- */
- /*
- * STREAM: Children are processed.
- */
- if (elem->children == NULL)
- value = NULL;
- else
- value = xmlNodeGetContent(elem);
- /*
- * URGENT TODO: Should facets for the simple type validation be
- * disabled, if the derivation of facets for complex types
- * is implemented?
- */
+ if (ret != 0) {
+ FREE_AND_NULL(value)
+ break;
+ }
+ /*
+ * Validate the character content against a simple type.
+ */
+ if (elem->children == NULL)
+ value = NULL;
+ else
+ value = xmlNodeGetContent(elem);
/*
* NOTE: This call won't check the correct types of the
* content nodes, since this should be done here.
*/
- ret = xmlSchemaValidateSimpleTypeValue(ctxt, type, value, 1, 1, 1, 0);
- if (ret > 0) {
- /*
- * NOTE: Although an error will be reported by
- * xmlSchemaValidateSimpleTypeValue, the spec wants
- * a specific complex type error to be reported
- * additionally.
- */
- xmlSchemaVComplexTypeErr(ctxt,
- XML_SCHEMAV_CVC_COMPLEX_TYPE_2_2,
- elem, type,
- "The character content is not valid");
- ret = XML_SCHEMAV_CVC_COMPLEX_TYPE_2_2;
- } else if (ret < 0) {
- xmlSchemaVErr(ctxt, elem, XML_SCHEMAV_INTERNAL,
- "Internal error: xmlSchemaValidateComplexType, "
- "Element '%s': Error while validating character "
- "content against complex type '%s'.\n",
- elem->name, type->name);
- if (value != NULL)
- xmlFree(value);
- ctxt->type = oldtype;
- return (-1);
- }
- }
- if (ret == 0) {
- /*
- * Apply facets of the complexType. Be sure to pass the
- * built-in type to xmlSchemaValidateFacetsInternal.
- */
- /* URGENT 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.
- */
-
- ret = xmlSchemaValidateFacetsInternal(ctxt,
- type, value, 0, 1);
- if (ret > 0) {
- xmlSchemaVComplexTypeErr(ctxt,
- XML_SCHEMAV_CVC_COMPLEX_TYPE_2_2,
- elem, type,
- "The character content is not valid");
- ret = XML_SCHEMAV_CVC_COMPLEX_TYPE_2_2;
- } else if (ret < 0) {
- xmlSchemaVErr(ctxt, elem, XML_SCHEMAV_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);
- ctxt->type = oldtype;
- return (-1);
- }
+ ret = xmlSchemaValidateSimpleTypeValue(ctxt,
+ type->contentTypeDef, value, 1, 1, 1, 0);
+ if (ret > 0) {
+ /*
+ * NOTE: Although an error will be reported by
+ * xmlSchemaValidateSimpleTypeValue, the spec wants
+ * a specific complex type error to be reported
+ * additionally.
+ */
+ xmlSchemaVComplexTypeErr(ctxt,
+ XML_SCHEMAV_CVC_COMPLEX_TYPE_2_2,
+ elem, type,
+ "The character content is not valid");
+ ret = XML_SCHEMAV_CVC_COMPLEX_TYPE_2_2;
+ } else if (ret < 0) {
+ xmlSchemaVErr(ctxt, elem, XML_SCHEMAV_INTERNAL,
+ "Internal error: xmlSchemaValidateComplexType, "
+ "Element '%s': Error while validating character "
+ "content against complex type '%s'.\n",
+ elem->name, type->name);
+ if (value != NULL)
+ xmlFree(value);
+ ctxt->type = oldtype;
+ return (-1);
}
if (value != NULL)
xmlFree(value);
@@ -19660,13 +21197,14 @@ xmlSchemaValidateElementByType(xmlSchemaValidCtxtPtr ctxt,
static int
xmlSchemaPostCreateVal(xmlSchemaValidCtxtPtr vctxt,
+ xmlSchemaTypePtr type,
const xmlChar *value,
xmlSchemaValPtr *val)
{
xmlSchemaTypePtr prim;
if (val == NULL) {
- xmlSchemaVErr(vctxt, vctxt->nodeInfo->node,
+ xmlSchemaVErr(vctxt, NULL,
XML_SCHEMAV_INTERNAL,
"Internal error: xmlSchemaPostCreateVal, "
"bad arguments", NULL, NULL);
@@ -19675,13 +21213,10 @@ xmlSchemaPostCreateVal(xmlSchemaValidCtxtPtr vctxt,
/*
* Only string or anySimpleType values are expected to be post-created.
*/
- prim = xmlSchemaGetPrimitiveType(vctxt->nodeInfo->typeDef);
+ prim = xmlSchemaGetPrimitiveType(type);
if ((prim->builtInType == XML_SCHEMAS_STRING) ||
(prim->builtInType == XML_SCHEMAS_ANYSIMPLETYPE))
{
-#if 0
- builtIn = xmlSchemaGetBuiltInTypeAncestor(vctxt->nodeInfo->typeDef);
-#endif
if (value == NULL)
/* TODO: Can this happen at all? */
*val = xmlSchemaNewStringValue(XML_SCHEMAS_STRING,
@@ -19689,7 +21224,7 @@ xmlSchemaPostCreateVal(xmlSchemaValidCtxtPtr vctxt,
else
*val = xmlSchemaNewStringValue(XML_SCHEMAS_STRING, value);
if ((*val) == NULL) {
- xmlSchemaVErr(vctxt, vctxt->nodeInfo->node,
+ xmlSchemaVErr(vctxt, NULL,
XML_SCHEMAV_INTERNAL,
"Internal error: xmlSchemaPostCreateVal, "
"failed to create the value", NULL, NULL);
@@ -19697,7 +21232,7 @@ xmlSchemaPostCreateVal(xmlSchemaValidCtxtPtr vctxt,
}
return (0);
}
- xmlSchemaVErr(vctxt, vctxt->nodeInfo->node,
+ xmlSchemaVErr(vctxt, NULL,
XML_SCHEMAV_INTERNAL,
"Internal error: xmlSchemaPostCreateVal, "
"the given type is not supported", NULL, NULL);
@@ -19771,7 +21306,8 @@ xmlSchemaCheckAttrLocallyValid(xmlSchemaValidCtxtPtr vctxt,
/*
* Post-create the value.
*/
- if (xmlSchemaPostCreateVal(vctxt, value, &(vctxt->value)) == -1) {
+ if (xmlSchemaPostCreateVal(vctxt, vctxt->attrInfo->typeDef,
+ value, &(vctxt->value)) == -1) {
ret = -1;
goto exit;
}
@@ -19787,7 +21323,8 @@ xmlSchemaCheckAttrLocallyValid(xmlSchemaValidCtxtPtr vctxt,
str = xmlStrdup(BAD_CAST "");
else
str = xmlStrdup(defValue);
- if (xmlSchemaPostCreateVal(vctxt, str, &defVal) == -1) {
+ if (xmlSchemaPostCreateVal(vctxt, vctxt->attrInfo->typeDef,
+ str, &defVal) == -1) {
ret = -1;
FREE_AND_NULL(str)
goto exit;
@@ -19979,15 +21516,12 @@ xmlSchemaValidateAttributes(xmlSchemaValidCtxtPtr ctxt, xmlNodePtr elem, xmlSche
tmp->decl = attrDecl;
tmp->value = defValue;
tmp->next = NULL;
-
- if (defAttrStates == NULL) {
- defAttrStates = tmp;
+ if (defAttrStatesTop == NULL)
defAttrStates = tmp;
- } else {
- defAttrStates->next = tmp;
- defAttrStatesTop = tmp;
- }
- }
+ else
+ defAttrStatesTop->next = tmp;
+ defAttrStatesTop = tmp;
+ }
}
attrUse = attrUse->next;
}
@@ -20128,8 +21662,6 @@ xmlSchemaValidateAttributes(xmlSchemaValidCtxtPtr ctxt, xmlNodePtr elem, xmlSche
ctxt->attrInfo->localName = curState->attr->name;
ctxt->nodeInfo = ctxt->attrInfo;
-
-#ifdef IDC_ENABLED
/*
* Evaluate IDCs.
*/
@@ -20140,7 +21672,6 @@ xmlSchemaValidateAttributes(xmlSchemaValidCtxtPtr ctxt, xmlNodePtr elem, xmlSche
goto fatal_exit;
}
-#endif
ret = xmlSchemaCheckAttrLocallyValid(ctxt, curState);
if (ret == -1)
goto fatal_exit;
@@ -20150,7 +21681,6 @@ xmlSchemaValidateAttributes(xmlSchemaValidCtxtPtr ctxt, xmlNodePtr elem, xmlSche
}
/* No break on purpose. */
case XML_SCHEMAS_ATTR_CHECKED:
-#ifdef IDC_ENABLED
if (ctxt->xpathStates != NULL) {
/*
* Evaluate IDCs.
@@ -20163,7 +21693,6 @@ xmlSchemaValidateAttributes(xmlSchemaValidCtxtPtr ctxt, xmlNodePtr elem, xmlSche
goto fatal_exit;
}
break;
-#endif
default:
break;
}
@@ -20240,8 +21769,6 @@ xmlSchemaValidateAttributes(xmlSchemaValidCtxtPtr ctxt, xmlNodePtr elem, xmlSche
attrDecl = curState->decl;
if (attrDecl->ref != NULL)
attrDecl = attrDecl->refDecl;
-
-#ifdef IDC_ENABLED
/*
* Evaluate IDCs on default attributes.
*/
@@ -20296,6 +21823,7 @@ xmlSchemaValidateAttributes(xmlSchemaValidCtxtPtr ctxt, xmlNodePtr elem, xmlSche
xmlChar *str = xmlStrdup(attrDecl->defValue);
if (xmlSchemaPostCreateVal(ctxt,
+ ctxt->attrInfo->typeDef,
str,
&(attrDecl->defVal)) == -1) {
FREE_AND_NULL(str)
@@ -20309,7 +21837,6 @@ xmlSchemaValidateAttributes(xmlSchemaValidCtxtPtr ctxt, xmlNodePtr elem, xmlSche
if (xmlSchemaXPathProcessHistory(ctxt, ctxt->depth +1) == -1)
goto fatal_exit;
}
-#endif
if (ctxt->options & XML_SCHEMA_VAL_VC_I_CREATE) {
/*
@@ -20563,6 +22090,8 @@ xmlSchemaClearValidCtxt(xmlSchemaValidCtxtPtr vctxt)
if (vctxt == NULL)
return;
+ vctxt->flags = 0;
+
vctxt->validationRoot = NULL;
if (vctxt->attr != NULL) {
xmlSchemaFreeAttributeStates(vctxt->attr);
@@ -20884,4 +22413,6 @@ xmlSchemaValidateStream(xmlSchemaValidCtxtPtr ctxt,
TODO return (0);
}
+#define bottom_xmlschemas
+#include "elfgcchack.h"
#endif /* LIBXML_SCHEMAS_ENABLED */
diff --git a/xmlschemastypes.c b/xmlschemastypes.c
index a1cdf7f..52dceaa 100644
--- a/xmlschemastypes.c
+++ b/xmlschemastypes.c
@@ -50,6 +50,8 @@ extern double xmlXPathNINF;
#define IS_WSP_SPACE_CH(c) ((c) == 0x20)
+#define IS_WSP_BLANK_CH(c) IS_BLANK_CH(c)
+
/* Date value */
typedef struct _xmlSchemaValDate xmlSchemaValDate;
typedef xmlSchemaValDate *xmlSchemaValDatePtr;
@@ -1761,38 +1763,38 @@ xmlSchemaValAtomicListNode(xmlSchemaTypePtr type, const xmlChar *value,
*
* Parse an unsigned long into 3 fields.
*
- * Returns the number of chars parsed or -1 if overflow of the capacity
+ * Returns the number of significant digits in the number or
+ * -1 if overflow of the capacity
*/
static int
xmlSchemaParseUInt(const xmlChar **str, unsigned long *llo,
- unsigned long *lmi, unsigned long *lhi) {
+ unsigned long *lmi, unsigned long *lhi) {
unsigned long lo = 0, mi = 0, hi = 0;
const xmlChar *tmp, *cur = *str;
int ret = 0, i = 0;
- while (*cur == '0') {
- ret++;
- cur++;
+ while (*cur == '0') { /* ignore leading zeroes */
+ cur++;
}
tmp = cur;
while ((*tmp != 0) && (*tmp >= '0') && (*tmp <= '9')) {
- i++;tmp++;ret++;
+ i++;tmp++;ret++;
}
if (i > 24) {
- *str = tmp;
- return(-1);
+ *str = tmp;
+ return(-1);
}
while (i > 16) {
- hi = hi * 10 + (*cur++ - '0');
- i--;
+ hi = hi * 10 + (*cur++ - '0');
+ i--;
}
while (i > 8) {
- mi = mi * 10 + (*cur++ - '0');
- i--;
+ mi = mi * 10 + (*cur++ - '0');
+ i--;
}
while (i > 0) {
- lo = lo * 10 + (*cur++ - '0');
- i--;
+ lo = lo * 10 + (*cur++ - '0');
+ i--;
}
*str = cur;
@@ -1930,7 +1932,7 @@ xmlSchemaValAtomicType(xmlSchemaTypePtr type, const xmlChar * value,
/*
* If a mixed decimal, get rid of trailing zeroes
*/
- if (dec) {
+ if (dec != -1) {
while ((cptr > cval) && (*(cptr-1) == '0')) {
cptr--;
len--;
@@ -2065,9 +2067,14 @@ xmlSchemaValAtomicType(xmlSchemaTypePtr type, const xmlChar * value,
if (type == xmlSchemaTypeFloatDef) {
v = xmlSchemaNewValue(XML_SCHEMAS_FLOAT);
if (v != NULL) {
+ /*
+ * TODO: sscanf seems not to give the correct
+ * value for extremely high/low values.
+ * E.g. "1E-149" results in zero.
+ */
if (sscanf((const char *) value, "%f",
&(v->value.f)) == 1) {
- *val = v;
+ *val = v;
} else {
xmlSchemaFreeValue(v);
goto return1;
@@ -2078,6 +2085,10 @@ xmlSchemaValAtomicType(xmlSchemaTypePtr type, const xmlChar * value,
} else {
v = xmlSchemaNewValue(XML_SCHEMAS_DOUBLE);
if (v != NULL) {
+ /*
+ * TODO: sscanf seems not to give the correct
+ * value for extremely high/low values.
+ */
if (sscanf((const char *) value, "%lf",
&(v->value.d)) == 1) {
*val = v;
@@ -2638,7 +2649,7 @@ xmlSchemaValAtomicType(xmlSchemaTypePtr type, const xmlChar * value,
} else if (*cur == '+')
cur++;
ret = xmlSchemaParseUInt(&cur, &lo, &mi, &hi);
- if (ret == 0)
+ if (ret == -1)
goto return1;
if (*cur != 0)
goto return1;
@@ -2661,18 +2672,15 @@ xmlSchemaValAtomicType(xmlSchemaTypePtr type, const xmlChar * value,
((hi != 0) || (mi != 0) || (lo != 0)))
goto return1;
}
- /*
- * We can store a value only if no overflow occured
- */
- if ((ret > 0) && (val != NULL)) {
+ if (val != NULL) {
v = xmlSchemaNewValue(type->builtInType);
if (v != NULL) {
v->value.decimal.lo = lo;
- v->value.decimal.mi = lo;
- v->value.decimal.hi = lo;
+ v->value.decimal.mi = mi;
+ v->value.decimal.hi = hi;
v->value.decimal.sign = sign;
v->value.decimal.frac = 0;
- v->value.decimal.total = cur - value;
+ v->value.decimal.total = ret;
*val = v;
}
}
@@ -2682,9 +2690,8 @@ xmlSchemaValAtomicType(xmlSchemaTypePtr type, const xmlChar * value,
case XML_SCHEMAS_BYTE:
case XML_SCHEMAS_SHORT:
case XML_SCHEMAS_INT:{
- const xmlChar *cur = value;
+ const xmlChar *cur = value;
unsigned long lo, mi, hi;
- int total = 0;
int sign = 0;
if (cur == NULL)
@@ -2695,7 +2702,7 @@ xmlSchemaValAtomicType(xmlSchemaTypePtr type, const xmlChar * value,
} else if (*cur == '+')
cur++;
ret = xmlSchemaParseUInt(&cur, &lo, &mi, &hi);
- if (ret <= 0)
+ if (ret < 0)
goto return1;
if (*cur != 0)
goto return1;
@@ -2742,11 +2749,11 @@ xmlSchemaValAtomicType(xmlSchemaTypePtr type, const xmlChar * value,
v = xmlSchemaNewValue(type->builtInType);
if (v != NULL) {
v->value.decimal.lo = lo;
- v->value.decimal.mi = lo;
- v->value.decimal.hi = lo;
+ v->value.decimal.mi = mi;
+ v->value.decimal.hi = hi;
v->value.decimal.sign = sign;
v->value.decimal.frac = 0;
- v->value.decimal.total = total;
+ v->value.decimal.total = ret;
*val = v;
}
}
@@ -2758,12 +2765,11 @@ xmlSchemaValAtomicType(xmlSchemaTypePtr type, const xmlChar * value,
case XML_SCHEMAS_UBYTE:{
const xmlChar *cur = value;
unsigned long lo, mi, hi;
- int total = 0;
if (cur == NULL)
goto return1;
ret = xmlSchemaParseUInt(&cur, &lo, &mi, &hi);
- if (ret <= 0)
+ if (ret < 0)
goto return1;
if (*cur != 0)
goto return1;
@@ -2806,7 +2812,7 @@ xmlSchemaValAtomicType(xmlSchemaTypePtr type, const xmlChar * value,
v->value.decimal.hi = hi;
v->value.decimal.sign = 0;
v->value.decimal.frac = 0;
- v->value.decimal.total = total;
+ v->value.decimal.total = ret;
*val = v;
}
}
@@ -3697,22 +3703,16 @@ xmlSchemaCompareDates (xmlSchemaValPtr x, xmlSchemaValPtr y)
* case of error
*/
static int
-xmlSchemaComparePreserveReplaceStrings(xmlSchemaValPtr x, xmlSchemaValPtr y,
+xmlSchemaComparePreserveReplaceStrings(const xmlChar *x,
+ const xmlChar *y,
int invert)
{
- const xmlChar *utf1;
- const xmlChar *utf2;
int tmp;
-
- if ((x == NULL) || (y == NULL))
- return(-2);
- utf1 = x->value.str;
- utf2 = y->value.str;
- while ((*utf1 != 0) && (*utf2 != 0)) {
- if (IS_WSP_REPLACE_CH(*utf2)) {
- if (! IS_WSP_SPACE_CH(*utf1)) {
- if ((*utf1 - 0x20) < 0) {
+ while ((*x != 0) && (*y != 0)) {
+ if (IS_WSP_REPLACE_CH(*y)) {
+ if (! IS_WSP_SPACE_CH(*x)) {
+ if ((*x - 0x20) < 0) {
if (invert)
return(1);
else
@@ -3725,7 +3725,7 @@ xmlSchemaComparePreserveReplaceStrings(xmlSchemaValPtr x, xmlSchemaValPtr y,
}
}
} else {
- tmp = *utf1 - *utf2;
+ tmp = *x - *y;
if (tmp < 0) {
if (invert)
return(1);
@@ -3739,16 +3739,16 @@ xmlSchemaComparePreserveReplaceStrings(xmlSchemaValPtr x, xmlSchemaValPtr y,
return(1);
}
}
- utf1++;
- utf2++;
+ x++;
+ y++;
}
- if (*utf1 != 0) {
+ if (*x != 0) {
if (invert)
return(-1);
else
return(1);
}
- if (*utf2 != 0) {
+ if (*y != 0) {
if (invert)
return(1);
else
@@ -3771,31 +3771,25 @@ xmlSchemaComparePreserveReplaceStrings(xmlSchemaValPtr x, xmlSchemaValPtr y,
* case of error
*/
static int
-xmlSchemaComparePreserveCollapseStrings(xmlSchemaValPtr x, xmlSchemaValPtr y,
+xmlSchemaComparePreserveCollapseStrings(const xmlChar *x,
+ const xmlChar *y,
int invert)
{
- const xmlChar *utf1;
- const xmlChar *utf2;
int tmp;
- if ((x == NULL) || (y == NULL))
- return(-2);
- utf1 = x->value.str;
- utf2 = y->value.str;
-
/*
* Skip leading blank chars of the collapsed string.
*/
- while (IS_WSP_SPACE_CH(*utf2) || IS_WSP_REPLACE_CH(*utf2))
- utf2++;
+ while IS_WSP_BLANK_CH(*y)
+ y++;
- while ((*utf1 != 0) && (*utf2 != 0)) {
- if (IS_WSP_SPACE_CH(*utf2) || IS_WSP_REPLACE_CH(*utf2)) {
- if (! IS_WSP_SPACE_CH(*utf1)) {
+ while ((*x != 0) && (*y != 0)) {
+ if IS_WSP_BLANK_CH(*y) {
+ if (! IS_WSP_SPACE_CH(*x)) {
/*
- * The utf2 character would have been replaced to 0x20.
+ * The yv character would have been replaced to 0x20.
*/
- if ((*utf1 - 0x20) < 0) {
+ if ((*x - 0x20) < 0) {
if (invert)
return(1);
else
@@ -3807,15 +3801,15 @@ xmlSchemaComparePreserveCollapseStrings(xmlSchemaValPtr x, xmlSchemaValPtr y,
return(1);
}
}
- utf1++;
- utf2++;
+ x++;
+ y++;
/*
* Skip contiguous blank chars of the collapsed string.
*/
- while (IS_WSP_SPACE_CH(*utf2) || IS_WSP_REPLACE_CH(*utf2))
- utf2++;
+ while IS_WSP_BLANK_CH(*y)
+ y++;
} else {
- tmp = *utf1++ - *utf2++;
+ tmp = *x++ - *y++;
if (tmp < 0) {
if (invert)
return(1);
@@ -3830,19 +3824,19 @@ xmlSchemaComparePreserveCollapseStrings(xmlSchemaValPtr x, xmlSchemaValPtr y,
}
}
}
- if (*utf1 != 0) {
+ if (*x != 0) {
if (invert)
return(-1);
else
return(1);
}
- if (*utf2 != 0) {
+ if (*y != 0) {
/*
* Skip trailing blank chars of the collapsed string.
*/
- while (IS_WSP_SPACE_CH(*utf2) || IS_WSP_REPLACE_CH(*utf2))
- utf2++;
- if (*utf2 != 0) {
+ while IS_WSP_BLANK_CH(*y)
+ y++;
+ if (*y != 0) {
if (invert)
return(1);
else
@@ -3866,31 +3860,25 @@ xmlSchemaComparePreserveCollapseStrings(xmlSchemaValPtr x, xmlSchemaValPtr y,
* case of error
*/
static int
-xmlSchemaCompareReplaceCollapseStrings(xmlSchemaValPtr x, xmlSchemaValPtr y,
+xmlSchemaCompareReplaceCollapseStrings(const xmlChar *x,
+ const xmlChar *y,
int invert)
{
- const xmlChar *utf1;
- const xmlChar *utf2;
int tmp;
- if ((x == NULL) || (y == NULL))
- return(-2);
- utf1 = x->value.str;
- utf2 = y->value.str;
-
/*
* Skip leading blank chars of the collapsed string.
*/
- while (IS_WSP_SPACE_CH(*utf2) || IS_WSP_REPLACE_CH(*utf2))
- utf2++;
+ while IS_WSP_BLANK_CH(*y)
+ y++;
- while ((*utf1 != 0) && (*utf2 != 0)) {
- if (IS_WSP_SPACE_CH(*utf2) || IS_WSP_REPLACE_CH(*utf2)) {
- if (! (IS_WSP_SPACE_CH(*utf1) || IS_WSP_REPLACE_CH(*utf1))) {
+ while ((*x != 0) && (*y != 0)) {
+ if IS_WSP_BLANK_CH(*y) {
+ if (! IS_WSP_BLANK_CH(*x)) {
/*
- * The utf2 character would have been replaced to 0x20.
+ * The yv character would have been replaced to 0x20.
*/
- if ((*utf1 - 0x20) < 0) {
+ if ((*x - 0x20) < 0) {
if (invert)
return(1);
else
@@ -3902,19 +3890,19 @@ xmlSchemaCompareReplaceCollapseStrings(xmlSchemaValPtr x, xmlSchemaValPtr y,
return(1);
}
}
- utf1++;
- utf2++;
+ x++;
+ y++;
/*
* Skip contiguous blank chars of the collapsed string.
*/
- while (IS_WSP_SPACE_CH(*utf2) || IS_WSP_REPLACE_CH(*utf2))
- utf2++;
+ while IS_WSP_BLANK_CH(*y)
+ y++;
} else {
- if (IS_WSP_SPACE_CH(*utf1) || IS_WSP_REPLACE_CH(*utf1)) {
+ if IS_WSP_BLANK_CH(*x) {
/*
- * The utf1 character would have been replaced to 0x20.
+ * The xv character would have been replaced to 0x20.
*/
- if ((0x20 - *utf2) < 0) {
+ if ((0x20 - *y) < 0) {
if (invert)
return(1);
else
@@ -3926,26 +3914,26 @@ xmlSchemaCompareReplaceCollapseStrings(xmlSchemaValPtr x, xmlSchemaValPtr y,
return(1);
}
}
- tmp = *utf1++ - *utf2++;
+ tmp = *x++ - *y++;
if (tmp < 0)
return(-1);
if (tmp > 0)
return(1);
}
}
- if (*utf1 != 0) {
+ if (*x != 0) {
if (invert)
return(-1);
else
return(1);
}
- if (*utf2 != 0) {
+ if (*y != 0) {
/*
* Skip trailing blank chars of the collapsed string.
*/
- while (IS_WSP_SPACE_CH(*utf2) || IS_WSP_REPLACE_CH(*utf2))
- utf2++;
- if (*utf2 != 0) {
+ while IS_WSP_BLANK_CH(*y)
+ y++;
+ if (*y != 0) {
if (invert)
return(1);
else
@@ -3967,44 +3955,38 @@ xmlSchemaCompareReplaceCollapseStrings(xmlSchemaValPtr x, xmlSchemaValPtr y,
* case of error
*/
static int
-xmlSchemaCompareReplacedStrings(xmlSchemaValPtr x, xmlSchemaValPtr y)
+xmlSchemaCompareReplacedStrings(const xmlChar *x,
+ const xmlChar *y)
{
- const xmlChar *utf1;
- const xmlChar *utf2;
int tmp;
-
- if ((x == NULL) || (y == NULL))
- return(-2);
- utf1 = x->value.str;
- utf2 = y->value.str;
-
- while ((*utf1 != 0) && (*utf2 != 0)) {
- if (IS_WSP_SPACE_CH(*utf2) || IS_WSP_REPLACE_CH(*utf2)) {
- if (! (IS_WSP_SPACE_CH(*utf1) || IS_WSP_REPLACE_CH(*utf1))) {
- if ((*utf1 - 0x20) < 0)
+
+ while ((*x != 0) && (*y != 0)) {
+ if IS_WSP_BLANK_CH(*y) {
+ if (! IS_WSP_BLANK_CH(*x)) {
+ if ((*x - 0x20) < 0)
return(-1);
else
return(1);
}
} else {
- if (IS_WSP_SPACE_CH(*utf1) || IS_WSP_REPLACE_CH(*utf1)) {
- if ((0x20 - *utf2) < 0)
+ if IS_WSP_BLANK_CH(*x) {
+ if ((0x20 - *y) < 0)
return(-1);
else
return(1);
}
- tmp = *utf1 - *utf2;
+ tmp = *x - *y;
if (tmp < 0)
return(-1);
if (tmp > 0)
return(1);
}
- utf1++;
- utf2++;
+ x++;
+ y++;
}
- if (*utf1 != 0)
+ if (*x != 0)
return(1);
- if (*utf2 != 0)
+ if (*y != 0)
return(-1);
return(0);
}
@@ -4020,42 +4002,36 @@ xmlSchemaCompareReplacedStrings(xmlSchemaValPtr x, xmlSchemaValPtr y)
* case of error
*/
static int
-xmlSchemaCompareNormStrings(xmlSchemaValPtr x, xmlSchemaValPtr y) {
- const xmlChar *utf1;
- const xmlChar *utf2;
+xmlSchemaCompareNormStrings(const xmlChar *x,
+ const xmlChar *y) {
int tmp;
-
- if ((x == NULL) || (y == NULL))
- return(-2);
- utf1 = x->value.str;
- utf2 = y->value.str;
- while (IS_BLANK_CH(*utf1)) utf1++;
- while (IS_BLANK_CH(*utf2)) utf2++;
- while ((*utf1 != 0) && (*utf2 != 0)) {
- if (IS_BLANK_CH(*utf1)) {
- if (!IS_BLANK_CH(*utf2)) {
- tmp = *utf1 - *utf2;
+ while (IS_BLANK_CH(*x)) x++;
+ while (IS_BLANK_CH(*y)) y++;
+ while ((*x != 0) && (*y != 0)) {
+ if (IS_BLANK_CH(*x)) {
+ if (!IS_BLANK_CH(*y)) {
+ tmp = *x - *y;
return(tmp);
}
- while (IS_BLANK_CH(*utf1)) utf1++;
- while (IS_BLANK_CH(*utf2)) utf2++;
+ while (IS_BLANK_CH(*x)) x++;
+ while (IS_BLANK_CH(*y)) y++;
} else {
- tmp = *utf1++ - *utf2++;
+ tmp = *x++ - *y++;
if (tmp < 0)
return(-1);
if (tmp > 0)
return(1);
}
}
- if (*utf1 != 0) {
- while (IS_BLANK_CH(*utf1)) utf1++;
- if (*utf1 != 0)
+ if (*x != 0) {
+ while (IS_BLANK_CH(*x)) x++;
+ if (*x != 0)
return(1);
}
- if (*utf2 != 0) {
- while (IS_BLANK_CH(*utf2)) utf2++;
- if (*utf2 != 0)
+ if (*y != 0) {
+ while (IS_BLANK_CH(*y)) y++;
+ if (*y != 0)
return(-1);
}
return(0);
@@ -4137,8 +4113,10 @@ xmlSchemaCompareFloats(xmlSchemaValPtr x, xmlSchemaValPtr y) {
/**
* xmlSchemaCompareValues:
* @x: a first value
+ * @xvalue: the first value as a string (optional)
* @xwtsp: the whitespace type
* @y: a second value
+ * @xvalue: the second value as a string (optional)
* @ywtsp: the whitespace type
*
* Compare 2 values
@@ -4147,14 +4125,16 @@ xmlSchemaCompareFloats(xmlSchemaValPtr x, xmlSchemaValPtr y) {
* case of error
*/
static int
-xmlSchemaCompareValuesInternal(xmlSchemaValPtr x,
+xmlSchemaCompareValuesInternal(xmlSchemaValType xtype,
+ xmlSchemaValPtr x,
+ const xmlChar *xvalue,
xmlSchemaWhitespaceValueType xws,
+ xmlSchemaValType ytype,
xmlSchemaValPtr y,
- xmlSchemaWhitespaceValueType yws) {
- if ((x == NULL) || (y == NULL))
- return(-2);
-
- switch (x->type) {
+ const xmlChar *yvalue,
+ xmlSchemaWhitespaceValueType yws)
+{
+ switch (xtype) {
case XML_SCHEMAS_UNKNOWN:
case XML_SCHEMAS_ANYTYPE:
return(-2);
@@ -4172,26 +4152,30 @@ xmlSchemaCompareValuesInternal(xmlSchemaValPtr x,
case XML_SCHEMAS_BYTE:
case XML_SCHEMAS_UBYTE:
case XML_SCHEMAS_DECIMAL:
- if (y->type == x->type)
+ if ((x == NULL) || (y == NULL))
+ return(-2);
+ if (ytype == xtype)
return(xmlSchemaCompareDecimals(x, y));
- if ((y->type == XML_SCHEMAS_DECIMAL) ||
- (y->type == XML_SCHEMAS_INTEGER) ||
- (y->type == XML_SCHEMAS_NPINTEGER) ||
- (y->type == XML_SCHEMAS_NINTEGER) ||
- (y->type == XML_SCHEMAS_NNINTEGER) ||
- (y->type == XML_SCHEMAS_PINTEGER) ||
- (y->type == XML_SCHEMAS_INT) ||
- (y->type == XML_SCHEMAS_UINT) ||
- (y->type == XML_SCHEMAS_LONG) ||
- (y->type == XML_SCHEMAS_ULONG) ||
- (y->type == XML_SCHEMAS_SHORT) ||
- (y->type == XML_SCHEMAS_USHORT) ||
- (y->type == XML_SCHEMAS_BYTE) ||
- (y->type == XML_SCHEMAS_UBYTE))
+ if ((ytype == XML_SCHEMAS_DECIMAL) ||
+ (ytype == XML_SCHEMAS_INTEGER) ||
+ (ytype == XML_SCHEMAS_NPINTEGER) ||
+ (ytype == XML_SCHEMAS_NINTEGER) ||
+ (ytype == XML_SCHEMAS_NNINTEGER) ||
+ (ytype == XML_SCHEMAS_PINTEGER) ||
+ (ytype == XML_SCHEMAS_INT) ||
+ (ytype == XML_SCHEMAS_UINT) ||
+ (ytype == XML_SCHEMAS_LONG) ||
+ (ytype == XML_SCHEMAS_ULONG) ||
+ (ytype == XML_SCHEMAS_SHORT) ||
+ (ytype == XML_SCHEMAS_USHORT) ||
+ (ytype == XML_SCHEMAS_BYTE) ||
+ (ytype == XML_SCHEMAS_UBYTE))
return(xmlSchemaCompareDecimals(x, y));
return(-2);
case XML_SCHEMAS_DURATION:
- if (y->type == XML_SCHEMAS_DURATION)
+ if ((x == NULL) || (y == NULL))
+ return(-2);
+ if (ytype == XML_SCHEMAS_DURATION)
return(xmlSchemaCompareDurations(x, y));
return(-2);
case XML_SCHEMAS_TIME:
@@ -4202,14 +4186,16 @@ xmlSchemaCompareValuesInternal(xmlSchemaValPtr x,
case XML_SCHEMAS_GYEARMONTH:
case XML_SCHEMAS_DATE:
case XML_SCHEMAS_DATETIME:
- if ((y->type == XML_SCHEMAS_DATETIME) ||
- (y->type == XML_SCHEMAS_TIME) ||
- (y->type == XML_SCHEMAS_GDAY) ||
- (y->type == XML_SCHEMAS_GMONTH) ||
- (y->type == XML_SCHEMAS_GMONTHDAY) ||
- (y->type == XML_SCHEMAS_GYEAR) ||
- (y->type == XML_SCHEMAS_DATE) ||
- (y->type == XML_SCHEMAS_GYEARMONTH))
+ if ((x == NULL) || (y == NULL))
+ return(-2);
+ if ((ytype == XML_SCHEMAS_DATETIME) ||
+ (ytype == XML_SCHEMAS_TIME) ||
+ (ytype == XML_SCHEMAS_GDAY) ||
+ (ytype == XML_SCHEMAS_GMONTH) ||
+ (ytype == XML_SCHEMAS_GMONTHDAY) ||
+ (ytype == XML_SCHEMAS_GYEAR) ||
+ (ytype == XML_SCHEMAS_DATE) ||
+ (ytype == XML_SCHEMAS_GYEARMONTH))
return (xmlSchemaCompareDates(x, y));
return (-2);
/*
@@ -4229,64 +4215,80 @@ xmlSchemaCompareValuesInternal(xmlSchemaValPtr x,
case XML_SCHEMAS_ENTITY:
case XML_SCHEMAS_NOTATION:
case XML_SCHEMAS_ANYURI:
+ {
+ const xmlChar *xv, *yv;
+
+ if (x == NULL)
+ xv = xvalue;
+ else
+ xv = x->value.str;
+ if (y == NULL)
+ yv = yvalue;
+ else
+ yv = y->value.str;
/*
* TODO: Compare those against QName.
*/
- if (y->type == XML_SCHEMAS_QNAME) {
+ if (ytype == XML_SCHEMAS_QNAME) {
TODO
+ if (y == NULL)
+ return(-2);
return (-2);
}
- if ((y->type == XML_SCHEMAS_ANYSIMPLETYPE) ||
- (y->type == XML_SCHEMAS_STRING) ||
- (y->type == XML_SCHEMAS_NORMSTRING) ||
- (y->type == XML_SCHEMAS_TOKEN) ||
- (y->type == XML_SCHEMAS_LANGUAGE) ||
- (y->type == XML_SCHEMAS_NMTOKEN) ||
- (y->type == XML_SCHEMAS_NAME) ||
- (y->type == XML_SCHEMAS_NCNAME) ||
- (y->type == XML_SCHEMAS_ID) ||
- (y->type == XML_SCHEMAS_IDREF) ||
- (y->type == XML_SCHEMAS_ENTITY) ||
- (y->type == XML_SCHEMAS_NOTATION) ||
- (y->type == XML_SCHEMAS_ANYURI)) {
+ if ((ytype == XML_SCHEMAS_ANYSIMPLETYPE) ||
+ (ytype == XML_SCHEMAS_STRING) ||
+ (ytype == XML_SCHEMAS_NORMSTRING) ||
+ (ytype == XML_SCHEMAS_TOKEN) ||
+ (ytype == XML_SCHEMAS_LANGUAGE) ||
+ (ytype == XML_SCHEMAS_NMTOKEN) ||
+ (ytype == XML_SCHEMAS_NAME) ||
+ (ytype == XML_SCHEMAS_NCNAME) ||
+ (ytype == XML_SCHEMAS_ID) ||
+ (ytype == XML_SCHEMAS_IDREF) ||
+ (ytype == XML_SCHEMAS_ENTITY) ||
+ (ytype == XML_SCHEMAS_NOTATION) ||
+ (ytype == XML_SCHEMAS_ANYURI)) {
if (xws == XML_SCHEMA_WHITESPACE_PRESERVE) {
if (yws == XML_SCHEMA_WHITESPACE_PRESERVE) {
/* TODO: What about x < y or x > y. */
- if (xmlStrEqual(x->value.str, y->value.str))
+ if (xmlStrEqual(xv, yv))
return (0);
else
return (2);
} else if (yws == XML_SCHEMA_WHITESPACE_REPLACE)
- return (xmlSchemaComparePreserveReplaceStrings(x, y, 0));
+ return (xmlSchemaComparePreserveReplaceStrings(xv, yv, 0));
else if (yws == XML_SCHEMA_WHITESPACE_COLLAPSE)
- return (xmlSchemaComparePreserveCollapseStrings(x, y, 0));
+ return (xmlSchemaComparePreserveCollapseStrings(xv, yv, 0));
} else if (xws == XML_SCHEMA_WHITESPACE_REPLACE) {
if (yws == XML_SCHEMA_WHITESPACE_PRESERVE)
- return (xmlSchemaComparePreserveReplaceStrings(y, x, 1));
+ return (xmlSchemaComparePreserveReplaceStrings(yv, xv, 1));
if (yws == XML_SCHEMA_WHITESPACE_REPLACE)
- return (xmlSchemaCompareReplacedStrings(x, y));
+ return (xmlSchemaCompareReplacedStrings(xv, yv));
if (yws == XML_SCHEMA_WHITESPACE_COLLAPSE)
- return (xmlSchemaCompareReplaceCollapseStrings(x, y, 0));
+ return (xmlSchemaCompareReplaceCollapseStrings(xv, yv, 0));
} else if (xws == XML_SCHEMA_WHITESPACE_COLLAPSE) {
if (yws == XML_SCHEMA_WHITESPACE_PRESERVE)
- return (xmlSchemaComparePreserveCollapseStrings(y, x, 1));
+ return (xmlSchemaComparePreserveCollapseStrings(yv, xv, 1));
if (yws == XML_SCHEMA_WHITESPACE_REPLACE)
- return (xmlSchemaCompareReplaceCollapseStrings(y, x, 1));
+ return (xmlSchemaCompareReplaceCollapseStrings(yv, xv, 1));
if (yws == XML_SCHEMA_WHITESPACE_COLLAPSE)
- return (xmlSchemaCompareNormStrings(x, y));
+ return (xmlSchemaCompareNormStrings(xv, yv));
} else
return (-2);
}
return (-2);
+ }
case XML_SCHEMAS_QNAME:
- if (y->type == XML_SCHEMAS_QNAME) {
+ if ((x == NULL) || (y == NULL))
+ return(-2);
+ if (ytype == XML_SCHEMAS_QNAME) {
if ((xmlStrEqual(x->value.qname.name, y->value.qname.name)) &&
(xmlStrEqual(x->value.qname.uri, y->value.qname.uri)))
return(0);
@@ -4295,12 +4297,16 @@ xmlSchemaCompareValuesInternal(xmlSchemaValPtr x,
return (-2);
case XML_SCHEMAS_FLOAT:
case XML_SCHEMAS_DOUBLE:
- if ((y->type == XML_SCHEMAS_FLOAT) ||
- (y->type == XML_SCHEMAS_DOUBLE))
+ if ((x == NULL) || (y == NULL))
+ return(-2);
+ if ((ytype == XML_SCHEMAS_FLOAT) ||
+ (ytype == XML_SCHEMAS_DOUBLE))
return (xmlSchemaCompareFloats(x, y));
return (-2);
case XML_SCHEMAS_BOOLEAN:
- if (y->type == XML_SCHEMAS_BOOLEAN) {
+ if ((x == NULL) || (y == NULL))
+ return(-2);
+ if (ytype == XML_SCHEMAS_BOOLEAN) {
if (x->value.b == y->value.b)
return(0);
if (x->value.b == 0)
@@ -4309,7 +4315,9 @@ xmlSchemaCompareValuesInternal(xmlSchemaValPtr x,
}
return (-2);
case XML_SCHEMAS_HEXBINARY:
- if (y->type == XML_SCHEMAS_HEXBINARY) {
+ if ((x == NULL) || (y == NULL))
+ return(-2);
+ if (ytype == XML_SCHEMAS_HEXBINARY) {
if (x->value.hex.total == y->value.hex.total) {
int ret = xmlStrcmp(x->value.hex.str, y->value.hex.str);
if (ret > 0)
@@ -4324,7 +4332,9 @@ xmlSchemaCompareValuesInternal(xmlSchemaValPtr x,
}
return (-2);
case XML_SCHEMAS_BASE64BINARY:
- if (y->type == XML_SCHEMAS_BASE64BINARY) {
+ if ((x == NULL) || (y == NULL))
+ return(-2);
+ if (ytype == XML_SCHEMAS_BASE64BINARY) {
if (x->value.base64.total == y->value.base64.total) {
int ret = xmlStrcmp(x->value.base64.str,
y->value.base64.str);
@@ -4378,7 +4388,8 @@ xmlSchemaCompareValues(xmlSchemaValPtr x, xmlSchemaValPtr y) {
else
yws = XML_SCHEMA_WHITESPACE_COLLAPSE;
- return(xmlSchemaCompareValuesInternal(x, xws, y, yws));
+ return(xmlSchemaCompareValuesInternal(x->type, x, NULL, xws, y->type,
+ y, NULL, yws));
}
/**
@@ -4395,10 +4406,40 @@ xmlSchemaCompareValues(xmlSchemaValPtr x, xmlSchemaValPtr y) {
*/
int
xmlSchemaCompareValuesWhtsp(xmlSchemaValPtr x,
- xmlSchemaWhitespaceValueType xws,
- xmlSchemaValPtr y,
- xmlSchemaWhitespaceValueType yws) {
- return(xmlSchemaCompareValuesInternal(x, xws, y, yws));
+ xmlSchemaWhitespaceValueType xws,
+ xmlSchemaValPtr y,
+ xmlSchemaWhitespaceValueType yws)
+{
+ if ((x == NULL) || (y == NULL))
+ return(-2);
+ return(xmlSchemaCompareValuesInternal(x->type, x, NULL, xws, y->type,
+ y, NULL, yws));
+}
+
+/**
+ * xmlSchemaCompareValuesWhtspExt:
+ * @x: a first value
+ * @xws: the whitespace value of x
+ * @y: a second value
+ * @yws: the whitespace value of y
+ *
+ * Compare 2 values
+ *
+ * Returns -1 if x < y, 0 if x == y, 1 if x > y, 2 if x <> y, and -2 in
+ * case of error
+ */
+static int
+xmlSchemaCompareValuesWhtspExt(xmlSchemaValType xtype,
+ xmlSchemaValPtr x,
+ const xmlChar *xvalue,
+ xmlSchemaWhitespaceValueType xws,
+ xmlSchemaValType ytype,
+ xmlSchemaValPtr y,
+ const xmlChar *yvalue,
+ xmlSchemaWhitespaceValueType yws)
+{
+ return(xmlSchemaCompareValuesInternal(xtype, x, xvalue, xws, ytype, y,
+ yvalue, yws));
}
/**
@@ -4492,19 +4533,19 @@ xmlSchemaValidateListSimpleTypeFacet(xmlSchemaFacetPtr facet,
*/
if (facet->type == XML_SCHEMA_FACET_LENGTH) {
if (actualLen != facet->val->value.decimal.lo) {
- if (expectedLen != 0)
+ if (expectedLen != NULL)
*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) {
- if (expectedLen != 0)
+ if (expectedLen != NULL)
*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) {
- if (expectedLen != 0)
+ if (expectedLen != NULL)
*expectedLen = facet->val->value.decimal.lo;
return (XML_SCHEMAV_CVC_MAXLENGTH_VALID);
}
@@ -4524,6 +4565,7 @@ xmlSchemaValidateListSimpleTypeFacet(xmlSchemaFacetPtr facet,
* @facet: the facet to check
* @value: the lexical repr. of the value to be validated
* @val: the precomputed value
+ * @ws: the whitespace type of the value
* @length: the actual length of the value
*
* Checka a value against a "length", "minLength" and "maxLength"
@@ -4532,16 +4574,17 @@ xmlSchemaValidateListSimpleTypeFacet(xmlSchemaFacetPtr facet,
* Returns 0 if the value is valid, a positive error code
* otherwise and -1 in case of an internal or API error.
*/
-int
-xmlSchemaValidateLengthFacet(xmlSchemaTypePtr type,
- xmlSchemaFacetPtr facet,
- const xmlChar *value,
- xmlSchemaValPtr val,
- unsigned long *length)
+static int
+xmlSchemaValidateLengthFacetInternal(xmlSchemaFacetPtr facet,
+ xmlSchemaTypeType valType,
+ const xmlChar *value,
+ xmlSchemaValPtr val,
+ unsigned long *length,
+ xmlSchemaWhitespaceValueType ws)
{
unsigned int len = 0;
- if ((length == NULL) || (facet == NULL) || (type == NULL))
+ if ((length == NULL) || (facet == NULL))
return (-1);
*length = 0;
if ((facet->type != XML_SCHEMA_FACET_LENGTH) &&
@@ -4549,6 +4592,10 @@ xmlSchemaValidateLengthFacet(xmlSchemaTypePtr type,
(facet->type != XML_SCHEMA_FACET_MINLENGTH))
return (-1);
+ /*
+ * TODO: length, maxLength and minLength must be of type
+ * nonNegativeInteger only. Check if decimal is used somehow.
+ */
if ((facet->val == NULL) ||
((facet->val->type != XML_SCHEMAS_DECIMAL) &&
(facet->val->type != XML_SCHEMAS_NNINTEGER)) ||
@@ -4560,30 +4607,52 @@ xmlSchemaValidateLengthFacet(xmlSchemaTypePtr type,
else if ((val != NULL) && (val->type == XML_SCHEMAS_BASE64BINARY))
len = val->value.base64.total;
else {
- switch (type->builtInType) {
- case XML_SCHEMAS_IDREF:
+ switch (valType) {
+ case XML_SCHEMAS_STRING:
case XML_SCHEMAS_NORMSTRING:
+ if (ws == XML_SCHEMA_WHITESPACE_UNKNOWN) {
+ /*
+ * This is to ensure API compatibility with the old
+ * xmlSchemaValidateLengthFacet(). Anyway, this was and
+ * is not the correct handling.
+ * TODO: Get rid of this case somehow.
+ */
+ if (valType == XML_SCHEMAS_STRING)
+ len = xmlUTF8Strlen(value);
+ else
+ len = xmlSchemaNormLen(value);
+ } else if (value != NULL) {
+ if (ws == XML_SCHEMA_WHITESPACE_COLLAPSE)
+ len = xmlSchemaNormLen(value);
+ else
+ /*
+ * Should be OK for "preserve" as well.
+ */
+ len = xmlUTF8Strlen(value);
+ }
+ break;
+ case XML_SCHEMAS_IDREF:
case XML_SCHEMAS_TOKEN:
case XML_SCHEMAS_LANGUAGE:
case XML_SCHEMAS_NMTOKEN:
case XML_SCHEMAS_NAME:
case XML_SCHEMAS_NCNAME:
case XML_SCHEMAS_ID:
- 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);
+ len = xmlSchemaNormLen(value);
break;
default:
TODO
}
}
*length = (unsigned long) len;
+ /*
+ * TODO: Return the whole expected value, i.e. "lo", "mi" and "hi".
+ */
if (facet->type == XML_SCHEMA_FACET_LENGTH) {
if (len != facet->val->value.decimal.lo)
return(XML_SCHEMAV_CVC_LENGTH_VALID);
@@ -4599,74 +4668,128 @@ xmlSchemaValidateLengthFacet(xmlSchemaTypePtr type,
}
/**
- * xmlSchemaValidateFacet:
- * @base: the base type
+ * xmlSchemaValidateLengthFacet:
+ * @type: the built-in type
+ * @facet: the facet to check
+ * @value: the lexical repr. of the value to be validated
+ * @val: the precomputed value
+ * @length: the actual length of the value
+ *
+ * Checka a value against a "length", "minLength" and "maxLength"
+ * facet; sets @length to the computed length of @value.
+ *
+ * Returns 0 if the value is valid, a positive error code
+ * otherwise and -1 in case of an internal or API error.
+ */
+int
+xmlSchemaValidateLengthFacet(xmlSchemaTypePtr type,
+ xmlSchemaFacetPtr facet,
+ const xmlChar *value,
+ xmlSchemaValPtr val,
+ unsigned long *length)
+{
+ if (type == NULL)
+ return(-1);
+ return (xmlSchemaValidateLengthFacetInternal(facet,
+ type->builtInType, value, val, length,
+ XML_SCHEMA_WHITESPACE_UNKNOWN));
+}
+
+/**
+ * xmlSchemaValidateLengthFacetWhtsp:
+ * @facet: the facet to check
+ * @valType: the built-in type
+ * @value: the lexical repr. of the value to be validated
+ * @val: the precomputed value
+ * @ws: the whitespace type of the value
+ * @length: the actual length of the value
+ *
+ * Checka a value against a "length", "minLength" and "maxLength"
+ * facet; sets @length to the computed length of @value.
+ *
+ * Returns 0 if the value is valid, a positive error code
+ * otherwise and -1 in case of an internal or API error.
+ */
+int
+xmlSchemaValidateLengthFacetWhtsp(xmlSchemaFacetPtr facet,
+ xmlSchemaValType valType,
+ const xmlChar *value,
+ xmlSchemaValPtr val,
+ unsigned long *length,
+ xmlSchemaWhitespaceValueType ws)
+{
+ return (xmlSchemaValidateLengthFacetInternal(facet, valType, value, val,
+ length, ws));
+}
+
+/**
+ * xmlSchemaValidateFacetInternal:
* @facet: the facet to check
+ * @fws: the whitespace type of the facet's value
+ * @valType: the built-in type of the value
* @value: the lexical repr of the value to validate
* @val: the precomputed value
+ * @ws: the whitespace type of the value
*
* Check a value against a facet condition
*
* Returns 0 if the element is schemas valid, a positive error code
* number otherwise and -1 in case of internal or API error.
*/
-int
-xmlSchemaValidateFacet(xmlSchemaTypePtr base ATTRIBUTE_UNUSED,
- xmlSchemaFacetPtr facet,
- const xmlChar *value, xmlSchemaValPtr val)
+static int
+xmlSchemaValidateFacetInternal(xmlSchemaFacetPtr facet,
+ xmlSchemaWhitespaceValueType fws,
+ xmlSchemaValType valType,
+ const xmlChar *value,
+ xmlSchemaValPtr val,
+ xmlSchemaWhitespaceValueType ws)
{
int ret;
- if ((facet == NULL) || (value == NULL))
- return(-1);
+ if (facet == NULL)
+ return(-1);
+
switch (facet->type) {
case XML_SCHEMA_FACET_PATTERN:
+ /*
+ * NOTE that for patterns, the @value needs to be the normalized
+ * value, *not* the lexical initial value or the canonical value.
+ */
+ if (value == NULL)
+ return(-1);
ret = xmlRegexpExec(facet->regexp, value);
if (ret == 1)
return(0);
- if (ret == 0) {
+ if (ret == 0)
return(XML_SCHEMAV_CVC_PATTERN_VALID);
- }
return(ret);
case XML_SCHEMA_FACET_MAXEXCLUSIVE:
ret = xmlSchemaCompareValues(val, facet->val);
- if (ret == -2) {
- /* TODO error code */
+ if (ret == -2)
return(-1);
- }
if (ret == -1)
return(0);
- /* error code */
return(XML_SCHEMAV_CVC_MAXEXCLUSIVE_VALID);
case XML_SCHEMA_FACET_MAXINCLUSIVE:
ret = xmlSchemaCompareValues(val, facet->val);
- if (ret == -2) {
- /* TODO error code */
+ if (ret == -2)
return(-1);
- }
if ((ret == -1) || (ret == 0))
return(0);
- /* error code */
return(XML_SCHEMAV_CVC_MAXINCLUSIVE_VALID);
case XML_SCHEMA_FACET_MINEXCLUSIVE:
ret = xmlSchemaCompareValues(val, facet->val);
- if (ret == -2) {
- /* TODO error code */
+ if (ret == -2)
return(-1);
- }
if (ret == 1)
return(0);
- /* error code */
return(XML_SCHEMAV_CVC_MINEXCLUSIVE_VALID);
case XML_SCHEMA_FACET_MININCLUSIVE:
ret = xmlSchemaCompareValues(val, facet->val);
- if (ret == -2) {
- /* TODO error code */
+ if (ret == -2)
return(-1);
- }
if ((ret == 1) || (ret == 0))
return(0);
- /* error code */
return(XML_SCHEMAV_CVC_MININCLUSIVE_VALID);
case XML_SCHEMA_FACET_WHITESPACE:
/* TODO whitespaces */
@@ -4677,15 +4800,42 @@ xmlSchemaValidateFacet(xmlSchemaTypePtr base ATTRIBUTE_UNUSED,
*/
return(0);
case XML_SCHEMA_FACET_ENUMERATION:
- if ((facet->value != NULL) &&
- (xmlStrEqual(facet->value, value)))
- return(0);
+ if (ws == XML_SCHEMA_WHITESPACE_UNKNOWN) {
+ /*
+ * This is to ensure API compatibility with the old
+ * xmlSchemaValidateFacet().
+ * TODO: Get rid of this case.
+ */
+ if ((facet->value != NULL) &&
+ (xmlStrEqual(facet->value, value)))
+ return(0);
+ } else {
+ ret = xmlSchemaCompareValuesWhtspExt(facet->val->type,
+ facet->val, facet->value, fws, valType, val,
+ value, ws);
+ if (ret == -2)
+ return(-1);
+ if (ret == 0)
+ return(0);
+ }
return(XML_SCHEMAV_CVC_ENUMERATION_VALID);
case XML_SCHEMA_FACET_LENGTH:
+ /*
+ * SPEC (1.3) "if {primitive type definition} is QName or NOTATION,
+ * then any {value} is facet-valid."
+ */
+ if ((valType == XML_SCHEMAS_QNAME) ||
+ (valType == XML_SCHEMAS_NOTATION))
+ return (0);
+ /* No break on purpose. */
case XML_SCHEMA_FACET_MAXLENGTH:
case XML_SCHEMA_FACET_MINLENGTH: {
unsigned int len = 0;
+ /*
+ * TODO: length, maxLength and minLength must be of type
+ * nonNegativeInteger only. Check if decimal is used somehow.
+ */
if ((facet->val == NULL) ||
((facet->val->type != XML_SCHEMAS_DECIMAL) &&
(facet->val->type != XML_SCHEMAS_NNINTEGER)) ||
@@ -4697,25 +4847,41 @@ xmlSchemaValidateFacet(xmlSchemaTypePtr base ATTRIBUTE_UNUSED,
else if ((val != NULL) && (val->type == XML_SCHEMAS_BASE64BINARY))
len = val->value.base64.total;
else {
- switch (base->builtInType) {
- case XML_SCHEMAS_IDREF:
- case XML_SCHEMAS_NORMSTRING:
+ switch (valType) {
+ case XML_SCHEMAS_STRING:
+ case XML_SCHEMAS_NORMSTRING:
+ if (ws == XML_SCHEMA_WHITESPACE_UNKNOWN) {
+ /*
+ * This is to ensure API compatibility with the old
+ * xmlSchemaValidateFacet(). Anyway, this was and
+ * is not the correct handling.
+ * TODO: Get rid of this case somehow.
+ */
+ if (valType == XML_SCHEMAS_STRING)
+ len = xmlUTF8Strlen(value);
+ else
+ len = xmlSchemaNormLen(value);
+ } else if (value != NULL) {
+ if (ws == XML_SCHEMA_WHITESPACE_COLLAPSE)
+ len = xmlSchemaNormLen(value);
+ else
+ /*
+ * Should be OK for "preserve" as well.
+ */
+ len = xmlUTF8Strlen(value);
+ }
+ break;
+ case XML_SCHEMAS_IDREF:
case XML_SCHEMAS_TOKEN:
case XML_SCHEMAS_LANGUAGE:
case XML_SCHEMAS_NMTOKEN:
case XML_SCHEMAS_NAME:
case XML_SCHEMAS_NCNAME:
case XML_SCHEMAS_ID:
- 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;
+ if (value != NULL)
+ len = xmlSchemaNormLen(value);
+ break;
default:
TODO
}
@@ -4775,15 +4941,80 @@ xmlSchemaValidateFacet(xmlSchemaTypePtr base ATTRIBUTE_UNUSED,
}
/**
+ * xmlSchemaValidateFacet:
+ * @base: the base type
+ * @facet: the facet to check
+ * @value: the lexical repr of the value to validate
+ * @val: the precomputed value
+ *
+ * Check a value against a facet condition
+ *
+ * Returns 0 if the element is schemas valid, a positive error code
+ * number otherwise and -1 in case of internal or API error.
+ */
+int
+xmlSchemaValidateFacet(xmlSchemaTypePtr base,
+ xmlSchemaFacetPtr facet,
+ const xmlChar *value,
+ xmlSchemaValPtr val)
+{
+ /*
+ * This tries to ensure API compatibility regarding the old
+ * xmlSchemaValidateFacet() and the new xmlSchemaValidateFacetInternal() and
+ * xmlSchemaValidateFacetWhtsp().
+ */
+ if (val != NULL)
+ return(xmlSchemaValidateFacetInternal(facet,
+ XML_SCHEMA_WHITESPACE_UNKNOWN, val->type, value, val,
+ XML_SCHEMA_WHITESPACE_UNKNOWN));
+ else if (base != NULL)
+ return(xmlSchemaValidateFacetInternal(facet,
+ XML_SCHEMA_WHITESPACE_UNKNOWN, base->builtInType, value, val,
+ XML_SCHEMA_WHITESPACE_UNKNOWN));
+ return(-1);
+}
+
+/**
+ * xmlSchemaValidateFacetWhtsp:
+ * @facet: the facet to check
+ * @fws: the whitespace type of the facet's value
+ * @valType: the built-in type of the value
+ * @value: the lexical (or normalized for pattern) repr of the value to validate
+ * @val: the precomputed value
+ * @ws: the whitespace type of the value
+ *
+ * Check a value against a facet condition. This takes value normalization
+ * according to the specified whitespace types into account.
+ * Note that @value needs to be the *normalized* value if the facet
+ * is of type "pattern".
+ *
+ * Returns 0 if the element is schemas valid, a positive error code
+ * number otherwise and -1 in case of internal or API error.
+ */
+int
+xmlSchemaValidateFacetWhtsp(xmlSchemaFacetPtr facet,
+ xmlSchemaWhitespaceValueType fws,
+ xmlSchemaValType valType,
+ const xmlChar *value,
+ xmlSchemaValPtr val,
+ xmlSchemaWhitespaceValueType ws)
+{
+ return(xmlSchemaValidateFacetInternal(facet, fws, valType,
+ value, val, ws));
+}
+
+/**
* xmlSchemaGetCanonValue:
* @val: the precomputed value
* @retValue: the returned value
*
- * Get a the cononical representation of the value.
+ * Get a the cononical lexical representation of the value.
* The caller has to free the returned retValue.
+ * WARNING: Some value types are not supported yet, resulting
+ * in a @retValue of "???".
*
* Returns 0 if the value could be built and -1 in case of
- * API errors or if the value type is not supported yet.
+ * API errors.
*/
int
xmlSchemaGetCanonValue(xmlSchemaValPtr val, const xmlChar **retValue)
@@ -4792,32 +5023,82 @@ xmlSchemaGetCanonValue(xmlSchemaValPtr val, const xmlChar **retValue)
return (-1);
*retValue = NULL;
switch (val->type) {
- case XML_SCHEMAS_STRING:
+ case XML_SCHEMAS_STRING:
+ if (val->value.str == NULL)
+ *retValue = BAD_CAST xmlStrdup(BAD_CAST "");
+ else
+ *retValue =
+ BAD_CAST xmlStrdup((const xmlChar *) val->value.str);
+ break;
case XML_SCHEMAS_NORMSTRING:
- /*
+ if (val->value.str == NULL)
+ *retValue = BAD_CAST xmlStrdup(BAD_CAST "");
+ else {
+ *retValue = xmlSchemaWhiteSpaceReplace(
+ (const xmlChar *) val->value.str);
+ if ((*retValue) == NULL)
+ *retValue = BAD_CAST xmlStrdup(
+ (const xmlChar *) val->value.str);
+ }
+ break;
case XML_SCHEMAS_TOKEN:
case XML_SCHEMAS_LANGUAGE:
case XML_SCHEMAS_NMTOKEN:
- case XML_SCHEMAS_NAME:
- case XML_SCHEMAS_QNAME:
+ case XML_SCHEMAS_NAME:
case XML_SCHEMAS_NCNAME:
case XML_SCHEMAS_ID:
case XML_SCHEMAS_IDREF:
case XML_SCHEMAS_ENTITY:
case XML_SCHEMAS_NOTATION:
- case XML_SCHEMAS_ANYURI:
- */
+ case XML_SCHEMAS_ANYURI:
if (val->value.str == NULL)
- *retValue = NULL;
- else
- /* TODO: This is not yet correct for non-normalized values. */
+ return (-1);
+ *retValue =
+ BAD_CAST xmlSchemaCollapseString(BAD_CAST val->value.str);
+ if (*retValue == NULL)
*retValue =
BAD_CAST xmlStrdup((const xmlChar *) val->value.str);
- return (0);
+ break;
+ case XML_SCHEMAS_QNAME:
+ /*
+ * TODO: What exactly to do with QNames?
+ */
+ if (val->value.qname.uri == NULL) {
+ *retValue = BAD_CAST xmlStrdup(BAD_CAST val->value.qname.name);
+ return (0);
+ } else {
+ *retValue = BAD_CAST xmlStrdup(BAD_CAST "{");
+ *retValue = BAD_CAST xmlStrcat((xmlChar *) (*retValue),
+ BAD_CAST val->value.qname.uri);
+ *retValue = BAD_CAST xmlStrcat((xmlChar *) (*retValue),
+ BAD_CAST "}");
+ *retValue = BAD_CAST xmlStrcat((xmlChar *) (*retValue),
+ BAD_CAST val->value.qname.uri);
+ }
+ break;
default:
- return (-1);
+ *retValue = BAD_CAST xmlStrdup(BAD_CAST "???");
+ break;
}
- return (-1);
+ return (0);
+}
+
+/**
+ * xmlSchemaGetValType:
+ * @val: a schemas value
+ *
+ * Accessor for the type of a value
+ *
+ * Returns the xmlSchemaValType of the value
+ */
+xmlSchemaValType
+xmlSchemaGetValType(xmlSchemaValPtr val)
+{
+ if (val == NULL)
+ return(XML_SCHEMAS_UNKNOWN);
+ return (val->type);
}
+#define bottom_xmlschemastypes
+#include "elfgcchack.h"
#endif /* LIBXML_SCHEMAS_ENABLED */
diff --git a/xmlstring.c b/xmlstring.c
index 929f422..d73c49c 100644
--- a/xmlstring.c
+++ b/xmlstring.c
@@ -975,3 +975,6 @@ xmlUTF8Strsub(const xmlChar *utf, int start, int len) {
return(xmlUTF8Strndup(utf, len));
}
+
+#define bottom_xmlstring
+#include "elfgcchack.h"
diff --git a/xmlunicode.c b/xmlunicode.c
index 9ef7b77..af91f47 100644
--- a/xmlunicode.c
+++ b/xmlunicode.c
@@ -3171,4 +3171,6 @@ xmlUCSIsCat(int code, const char *cat) {
}
+#define bottom_xmlunicode
+#include "elfgcchack.h"
#endif /* LIBXML_UNICODE_ENABLED */
diff --git a/xmlwriter.c b/xmlwriter.c
index 76d7549..5e537ea 100644
--- a/xmlwriter.c
+++ b/xmlwriter.c
@@ -4606,4 +4606,6 @@ xmlTextWriterHandleStateDependencies(xmlTextWriterPtr writer,
return sum;
}
+#define bottom_xmlwriter
+#include "elfgcchack.h"
#endif
diff --git a/xpath.c b/xpath.c
index 9eb0b48..7967861 100644
--- a/xpath.c
+++ b/xpath.c
@@ -11753,3 +11753,5 @@ xmlXPathRegisterAllFunctions(xmlXPathContextPtr ctxt)
}
#endif /* LIBXML_XPATH_ENABLED */
+#define bottom_xpath
+#include "elfgcchack.h"
diff --git a/xpointer.c b/xpointer.c
index add590b..84c80c3 100644
--- a/xpointer.c
+++ b/xpointer.c
@@ -2997,6 +2997,7 @@ xmlXPtrEvalRangePredicate(xmlXPathParserContextPtr ctxt) {
SKIP_BLANKS;
}
-#else
+#define bottom_xpointer
+#include "elfgcchack.h"
#endif
diff --git a/xstc/Makefile.am b/xstc/Makefile.am
index e7e128b..6927abb 100644
--- a/xstc/Makefile.am
+++ b/xstc/Makefile.am
@@ -56,6 +56,13 @@ $(TESTDIRS):
$(TAR) -xzf $(TARBALL) $(TESTDIRS) ; \
echo "done" ; \
fi);
+ -@(if [ -x fixup-tests.py ] ; then \
+ chmod -R u+w msxsdtest; \
+ echo "## Microsoft tests fixups"; \
+ PYTHONPATH="../python:../python/.libs:..:../libs:$$PYTHONPATH" ;\
+ export PYTHONPATH; \
+ LD_LIBRARY_PATH="$(top_builddir)/.libs:$$LD_LIBRARY_PATH" ; \
+ $(PYTHON) fixup-tests.py ; fi)
#
# The actual test run if present. PYTHONPATH is updated to make sure
diff --git a/xstc/Makefile.in b/xstc/Makefile.in
index 26fd694..147be28 100644
--- a/xstc/Makefile.in
+++ b/xstc/Makefile.in
@@ -471,6 +471,13 @@ $(TESTDIRS):
$(TAR) -xzf $(TARBALL) $(TESTDIRS) ; \
echo "done" ; \
fi);
+ -@(if [ -x fixup-tests.py ] ; then \
+ chmod -R u+w msxsdtest; \
+ echo "## Microsoft tests fixups"; \
+ PYTHONPATH="../python:../python/.libs:..:../libs:$$PYTHONPATH" ;\
+ export PYTHONPATH; \
+ LD_LIBRARY_PATH="$(top_builddir)/.libs:$$LD_LIBRARY_PATH" ; \
+ $(PYTHON) fixup-tests.py ; fi)
#
# The actual test run if present. PYTHONPATH is updated to make sure