### ----------------------------------------------------
### -- LibXML
### -- Licenses: Artistic-2.0
### -- Authors: David Warring
### -- File: etc/libxml2-api.xml
### ----------------------------------------------------
### -- Chunk 33 of 44
 by default if found at compile-time. It use the given SAX function block to handle the parsing callback. If sax is NULL, fallback to the default DOM tree building routines.  User data (void *) is stored within the parser context in the context&apos;s _private member, so it is available nearly everywhere in libxml</info>
      <return type='xmlDocPtr' info='the resulting document tree'/>
      <arg name='sax' type='xmlSAXHandlerPtr' info='the SAX handler block'/>
      <arg name='filename' type='const char *' info='the filename'/>
      <arg name='recovery' type='int' info='work in recovery mode, i.e. tries to read no Well Formed documents'/>
      <arg name='data' type='void *' info='the userdata'/>
    </function>
    <function name='xmlSAXParseMemory' file='parser' module='parser'>
      <cond>defined(LIBXML_SAX1_ENABLED)</cond>
      <info>parse an XML in-memory block and use the given SAX function block to handle the parsing callback. If sax is NULL, fallback to the default DOM tree building routines.</info>
      <return type='xmlDocPtr' info='the resulting document tree'/>
      <arg name='sax' type='xmlSAXHandlerPtr' info='the SAX handler block'/>
      <arg name='buffer' type='const char *' info='an pointer to a char array'/>
      <arg name='size' type='int' info='the size of the array'/>
      <arg name='recovery' type='int' info='work in recovery mode, i.e. tries to read not Well Formed documents'/>
    </function>
    <function name='xmlSAXParseMemoryWithData' file='parser' module='parser'>
      <cond>defined(LIBXML_SAX1_ENABLED)</cond>
      <info>parse an XML in-memory block and use the given SAX function block to handle the parsing callback. If sax is NULL, fallback to the default DOM tree building routines.  User data (void *) is stored within the parser context in the context&apos;s _private member, so it is available nearly everywhere in libxml</info>
      <return type='xmlDocPtr' info='the resulting document tree'/>
      <arg name='sax' type='xmlSAXHandlerPtr' info='the SAX handler block'/>
      <arg name='buffer' type='const char *' info='an pointer to a char array'/>
      <arg name='size' type='int' info='the size of the array'/>
      <arg name='recovery' type='int' info='work in recovery mode, i.e. tries to read no Well Formed documents'/>
      <arg name='data' type='void *' info='the userdata'/>
    </function>
    <function name='xmlSAXUserParseFile' file='parser' module='parser'>
      <cond>defined(LIBXML_SAX1_ENABLED)</cond>
      <info>parse an XML file and call the given SAX handler routines. Automatic support for ZLIB/Compress compressed document is provided</info>
      <return type='int' info='0 in case of success or a error number otherwise'/>
      <arg name='sax' type='xmlSAXHandlerPtr' info='a SAX handler'/>
      <arg name='user_data' type='void *' info='The user data returned on SAX callbacks'/>
      <arg name='filename' type='const char *' info='a file name'/>
    </function>
    <function name='xmlSAXUserParseMemory' file='parser' module='parser'>
      <cond>defined(LIBXML_SAX1_ENABLED)</cond>
      <info>A better SAX parsing routine. parse an XML in-memory buffer and call the given SAX handler routines.</info>
      <return type='int' info='0 in case of success or a error number otherwise'/>
      <arg name='sax' type='xmlSAXHandlerPtr' info='a SAX handler'/>
      <arg name='user_data' type='void *' info='The user data returned on SAX callbacks'/>
      <arg name='buffer' type='const char *' info='an in-memory XML document input'/>
      <arg name='size' type='int' info='the length of the XML document in bytes'/>
    </function>
    <function name='xmlSAXVersion' file='SAX2' module='SAX2'>
      <info>Initialize the default XML SAX handler according to the version</info>
      <return type='int' info='0 in case of success and -1 in case of error.'/>
      <arg name='hdlr' type='xmlSAXHandler *' info='the SAX handler'/>
      <arg name='version' type='int' info='the version, 1 or 2'/>
    </function>
    <function name='xmlSaveClose' file='xmlsave' module='xmlsave'>
      <cond>defined(LIBXML_OUTPUT_ENABLED)</cond>
      <info>Close a document saving context, i.e. make sure that all bytes have been output and free the associated data.</info>
      <return type='int' info='the number of byte written or -1 in case of error.'/>
      <arg name='ctxt' type='xmlSaveCtxtPtr' info='a document saving context'/>
    </function>
    <function name='xmlSaveDoc' file='xmlsave' module='xmlsave'>
      <cond>defined(LIBXML_OUTPUT_ENABLED)</cond>
      <info>Save a full document to a saving context TODO: The function is not fully implemented yet as it does not return the byte count but 0 instead</info>
      <return type='long' info='the number of byte written or -1 in case of error'/>
      <arg name='ctxt' type='xmlSaveCtxtPtr' info='a document saving context'/>
      <arg name='doc' type='xmlDocPtr' info='a document'/>
    </function>
    <function name='xmlSaveFile' file='tree' module='xmlsave'>
      <cond>defined(LIBXML_OUTPUT_ENABLED)</cond>
      <info>Dump an XML document to a file. Will use compression if compiled in and enabled. If @filename is &quot;-&quot; the stdout file is used.</info>
      <return type='int' info='the number of bytes written or -1 in case of failure.'/>
      <arg name='filename' type='const char *' info='the filename (or URL)'/>
      <arg name='cur' type='xmlDocPtr' info='the document'/>
    </function>
    <function name='xmlSaveFileEnc' file='tree' module='xmlsave'>
      <cond>defined(LIBXML_OUTPUT_ENABLED)</cond>
      <info>Dump an XML document, converting it to the given encoding</info>
      <return type='int' info='the number of bytes written or -1 in case of failure.'/>
      <arg name='filename' type='const char *' info='the filename (or URL)'/>
      <arg name='cur' type='xmlDocPtr' info='the document'/>
      <arg name='encoding' type='const char *' info='the name of an encoding (or NULL)'/>
    </function>
    <function name='xmlSaveFileTo' file='tree' module='xmlsave'>
      <cond>defined(LIBXML_OUTPUT_ENABLED)</cond>
      <info>Dump an XML document to an I/O buffer. Warning ! This call xmlOutputBufferClose() on buf which is not available after this call.</info>
      <return type='int' info='the number of bytes written or -1 in case of failure.'/>
      <arg name='buf' type='xmlOutputBufferPtr' info='an output I/O buffer'/>
      <arg name='cur' type='xmlDocPtr' info='the document'/>
      <arg name='encoding' type='const char *' info='the encoding if any assuming the I/O layer handles the trancoding'/>
    </function>
    <function name='xmlSaveFlush' file='xmlsave' module='xmlsave'>
      <cond>defined(LIBXML_OUTPUT_ENABLED)</cond>
      <info>Flush a document saving context, i.e. make sure that all bytes have been output.</info>
      <return type='int' info='the number of byte written or -1 in case of error.'/>
      <arg name='ctxt' type='xmlSaveCtxtPtr' info='a document saving context'/>
    </function>
    <function name='xmlSaveFormatFile' file='tree' module='xmlsave'>
      <cond>defined(LIBXML_OUTPUT_ENABLED)</cond>
      <info>Dump an XML document to a file. Will use compression if compiled in and enabled. If @filename is &quot;-&quot; the stdout file is used. If @format is set then the document will be indented on output. Note that @format = 1 provide node indenting only if xmlIndentTreeOutput = 1 or xmlKeepBlanksDefault(0) was called</info>
      <return type='int' info='the number of bytes written or -1 in case of failure.'/>
      <arg name='filename' type='const char *' info='the filename (or URL)'/>
      <arg name='cur' type='xmlDocPtr' info='the document'/>
      <arg name='format' type='int' info='should formatting spaces been added'/>
    </function>
    <function name='xmlSaveFormatFileEnc' file='tree' module='xmlsave'>
      <cond>defined(LIBXML_OUTPUT_ENABLED)</cond>
      <info>Dump an XML document to a file or an URL.</info>
      <return type='int' info='the number of bytes written or -1 in case of error. Note that @format = 1 provide node indenting only if xmlIndentTreeOutput = 1 or xmlKeepBlanksDefault(0) was called'/>
      <arg name='filename' type='const char *' info='the filename or URL to output'/>
      <arg name='cur' type='xmlDocPtr' info='the document being saved'/>
      <arg name='encoding' type='const char *' info='the name of the encoding to use or NULL.'/>
      <arg name='format' type='int' info='should formatting spaces be added.'/>
    </function>
    <function name='xmlSaveFormatFileTo' file='tree' module='xmlsave'>
      <cond>defined(LIBXML_OUTPUT_ENABLED)</cond>
      <info>Dump an XML document to an I/O buffer. Warning ! This call xmlOutputBufferClose() on buf which is not available after this call.</info>
      <return type='int' info='the number of bytes written or -1 in case of failure.'/>
      <arg name='buf' type='xmlOutputBufferPtr' info='an output I/O buffer'/>
      <arg name='cur' type='xmlDocPtr' info='the document'/>
      <arg name='encoding' type='const char *' info='the encoding if any assuming the I/O layer handles the trancoding'/>
      <arg name='format' type='int' info='should formatting spaces been added'/>
    </function>
    <function name='xmlSaveSetAttrEscape' file='xmlsave' module='xmlsave'>
      <cond>defined(LIBXML_OUTPUT_ENABLED)</cond>
      <info>Set a custom escaping function to be used for text in attribute content</info>
      <return type='int' info='0 if successful or -1 in case of error.'/>
      <arg name='ctxt' type='xmlSaveCtxtPtr' info='a document saving context'/>
      <arg name='escape' type='xmlCharEncodingOutputFunc' info='the escaping function'/>
    </function>
    <function name='xmlSaveSetEscape' file='xmlsave' module='xmlsave'>
      <cond>defined(LIBXML_OUTPUT_ENABLED)</cond>
      <info>Set a custom escaping function to be used for text in element content</info>
      <return type='int' info='0 if successful or -1 in case of error.'/>
      <arg name='ctxt' type='xmlSaveCtxtPtr' info='a document saving context'/>
      <arg name='escape' type='xmlCharEncodingOutputFunc' info='the escaping function'/>
    </function>
    <function name='xmlSaveToBuffer' file='xmlsave' module='xmlsave'>
      <cond>defined(LIBXML_OUTPUT_ENABLED)</cond>
      <info>Create a document saving context serializing to a buffer with the encoding and the options given</info>
      <return type='xmlSaveCtxtPtr' info='a new serialization context or NULL in case of error.'/>
      <arg name='buffer' type='xmlBufferPtr' info='a buffer'/>
      <arg name='encoding' type='const char *' info='the encoding name to use or NULL'/>
      <arg name='options' type='int' info='a set of xmlSaveOptions'/>
    </function>
    <function name='xmlSaveToFd' file='xmlsave' module='xmlsave'>
      <cond>defined(LIBXML_OUTPUT_ENABLED)</cond>
      <info>Create a document saving context serializing to a file descriptor with the encoding and the options given.</info>
      <return type='xmlSaveCtxtPtr' info='a new serialization context or NULL in case of error.'/>
      <arg name='fd' type='int' info='a file descriptor number'/>
      <arg name='encoding' type='const char *' info='the encoding name to use or NULL'/>
      <arg name='options' type='int' info='a set of xmlSaveOptions'/>
    </function>
    <function name='xmlSaveToFilename' file='xmlsave' module='xmlsave'>
      <cond>defined(LIBXML_OUTPUT_ENABLED)</cond>
      <info>Create a document saving context serializing to a filename or possibly to an URL (but this is less reliable) with the encoding and the options given.</info>
      <return type='xmlSaveCtxtPtr' info='a new serialization context or NULL in case of error.'/>
      <arg name='filename' type='const char *' info='a file name or an URL'/>
      <arg name='encoding' type='const char *' info='the encoding name to use or NULL'/>
      <arg name='options' type='int' info='a set of xmlSaveOptions'/>
    </function>
    <function name='xmlSaveToIO' file='xmlsave' module='xmlsave'>
      <cond>defined(LIBXML_OUTPUT_ENABLED)</cond>
      <info>Create a document saving context serializing to a file descriptor with the encoding and the options given</info>
      <return type='xmlSaveCtxtPtr' info='a new serialization context or NULL in case of error.'/>
      <arg name='iowrite' type='xmlOutputWriteCallback' info='an I/O write function'/>
      <arg name='ioclose' type='xmlOutputCloseCallback' info='an I/O close function'/>
      <arg name='ioctx' type='void *' info='an I/O handler'/>
      <arg name='encoding' type='const char *' info='the encoding name to use or NULL'/>
      <arg name='options' type='int' info='a set of xmlSaveOptions'/>
    </function>
    <function name='xmlSaveTree' file='xmlsave' module='xmlsave'>
      <cond>defined(LIBXML_OUTPUT_ENABLED)</cond>
      <info>Save a subtree starting at the node parameter to a saving context TODO: The function is not fully implemented yet as it does not return the byte count but 0 instead</info>
      <return type='long' info='the number of byte written or -1 in case of error'/>
      <arg name='ctxt' type='xmlSaveCtxtPtr' info='a document saving context'/>
      <arg name='node' type='xmlNodePtr' info='the top node of the subtree to save'/>
    </function>
    <function name='xmlSaveUri' file='uri' module='uri'>
      <info>Save the URI as an escaped string</info>
      <return type='xmlChar *' info='a new string (to be deallocated by caller)'/>
      <arg name='uri' type='xmlURIPtr' info='pointer to an xmlURI'/>
    </function>
    <function name='xmlScanName' file='parserInternals' module='legacy'>
      <cond>defined(LIBXML_LEGACY_ENABLED)</cond>
      <info>Trickery: parse an XML name but without consuming the input flow Needed for rollback cases. Used only when parsing entities references.  TODO: seems deprecated now, only used in the default part of xmlParserHandleReference  [4] NameChar ::= Letter | Digit | &apos;.&apos; | &apos;-&apos; | &apos;_&apos; | &apos;:&apos; | CombiningChar | Extender  [5] Name ::= (Letter | &apos;_&apos; | &apos;:&apos;) (NameChar)*  [6] Names ::= Name (S Name)*</info>
      <return type='xmlChar *' info='the Name parsed or NULL'/>
      <arg name='ctxt' type='xmlParserCtxtPtr' info='an XML parser context'/>
    </function>
    <function name='xmlSchemaCheckFacet' file='xmlschemastypes' module='xmlschemas'>
      <cond>defined(LIBXML_SCHEMAS_ENABLED)</cond>
      <info>Checks and computes the values of facets.</info>
      <return type='int' info='0 if valid, a positive error code if not valid and -1 in case of an internal or API error.'/>
      <arg name='facet' type='xmlSchemaFacetPtr' info='the facet'/>
      <arg name='typeDecl' type='xmlSchemaTypePtr' info='the schema type definition'/>
      <arg name='pctxt' type='xmlSchemaParserCtxtPtr' info='the schema parser context or NULL'/>
      <arg name='name' type='const xmlChar *' info='the optional name of the type'/>
    </function>
    <function name='xmlSchemaCleanupTypes' file='xmlschemastypes' module='xmlschemastypes'>
      <cond>defined(LIBXML_SCHEMAS_ENABLED)</cond>
      <info>Cleanup the default XML Schemas type library</info>
      <return type='void'/>
    </function>
    <function name='xmlSchemaCollapseString' file='xmlschemastypes' module='xmlschemastypes'>
      <cond>defined(LIBXML_SCHEMAS_ENABLED)</cond>
      <info>Removes and normalize white spaces in the string</info>
      <return type='xmlChar *' info='the new string or NULL if no change was required.'/>
      <arg name='value' type='const xmlChar *' info='a value'/>
    </function>
    <function name='xmlSchemaCompareValues' file='xmlschemastypes' module='xmlschemastypes'>
      <cond>defined(LIBXML_SCHEMAS_ENABLED)</cond>
      <info>Compare 2 values</info>
      <return type='int' info='-1 if x &lt; y, 0 if x == y, 1 if x &gt; y, 2 if x &lt;&gt; y, and -2 in case of error'/>
      <arg name='x' type='xmlSchemaValPtr' info='a first value'/>
      <arg name='y' type='xmlSchemaValPtr' info='a second value'/>
    </function>
    <function name='xmlSchemaCompareValuesWhtsp' file='xmlschemastypes' module='xmlschemastypes'>
      <cond>defined(LIBXML_SCHEMAS_ENABLED)</cond>
      <info>Compare 2 values</info>
      <return type='int' info='-1 if x &lt; y, 0 if x == y, 1 if x &gt; y, 2 if x &lt;&gt; y, and -2 in case of error'/>
      <arg name='x' type='xmlSchemaValPtr' info='a first value'/>
      <arg name='xws' type='xmlSchemaWhitespaceValueType' info='the whitespace value of x'/>
      <arg name='y' type='xmlSchemaValPtr' info='a second value'/>
      <arg name='yws' type='xmlSchemaWhitespaceValueType' info='the whitespace value of y'/>
    </function>
    <function name='xmlSchemaCopyValue' file='xmlschemastypes' module='xmlschemastypes'>
      <cond>defined(LIBXML_SCHEMAS_ENABLED)</cond>
      <info>Copies the precomputed value. This duplicates any string within.</info>
      <return type='xmlSchemaValPtr' info='the copy or NULL if a copy for a data-type is not implemented.'/>
      <arg name='val' type='xmlSchemaValPtr' info='the precomputed value to be copied'/>
    </function>
    <function name='xmlSchemaDump' file='xmlschemas' module='xmlschemas'>
      <cond>defined(LIBXML_SCHEMAS_ENABLED) &amp;&amp; defined(LIBXML_OUTPUT_ENABLED)</cond>
      <info>Dump a Schema structure.</info>
      <return type='void'/>
      <arg name='output' type='FILE *' info='the file output'/>
      <arg name='schema' type='xmlSchemaPtr' info='a schema structure'/>
    </function>
    <function name='xmlSchemaFree' file='xmlschemas' module='xmlschemas'>
      <cond>defined(LIBXML_SCHEMAS_ENABLED)</cond>
      <info>Deallocate a Schema structure.</info>
      <return type='void'/>
      <arg name='schema' type='xmlSchemaPtr' info='a schema structure'/>
    </function>
    <function name='xmlSchemaFreeFacet' file='xmlschemastypes' module='xmlschemas'>
      <cond>defined(LIBXML_SCHEMAS_ENABLED)</cond>
      <info>Deallocate a Schema Facet structure.</info>
      <return type='void'/>
      <arg name='facet' type='xmlSchemaFacetPtr' info='a schema facet structure'/>
    </function>
    <function name='xmlSchemaFreeParserCtxt' file='xmlschemas' module='xmlschemas'>
      <cond>defined(LIBXML_SCHEMAS_ENABLED)</cond>
      <info>Free the resources associated to the schema parser context</info>
      <return type='void'/>
      <arg name='ctxt' type='xmlSchemaParserCtxtPtr' info='the schema parser context'/>
    </function>
    <function name='xmlSchemaFreeType' file='schemasInternals' module='xmlschemas'>
      <cond>defined(LIBXML_SCHEMAS_ENABLED)</cond>
      <info>Deallocate a Schema Type structure.</info>
      <return type='void'/>
      <arg name='type' type='xmlSchemaTypePtr' info='a schema type structure'/>
    </function>
    <function name='xmlSchemaFreeValidCtxt' file='xmlschemas' module='xmlschemas'>
      <cond>defined(LIBXML_SCHEMAS_ENABLED)</cond>
      <info>Free the resources associated to the schema validation context</info>
      <return type='void'/>
      <arg name='ctxt' type='xmlSchemaValidCtxtPtr' info='the schema validation context'/>
    </function>
    <function name='xmlSchemaFreeValue' file='xmlschemastypes' module='xmlschemastypes'>
      <cond>defined(LIBXML_SCHEMAS_ENABLED)</cond>
      <info>Cleanup the default XML Schemas type library</info>
      <return type='void'/>
      <arg name='value' type='xmlSchemaValPtr' info='the value to free'/>
    </function>
    <function name='xmlSchemaFreeWildcard' file='schemasInternals' module='xmlschemas'>
      <cond>defined(LIBXML_SCHEMAS_ENABLED)</cond>
      <info>Deallocates a wildcard structure.</info>
      <return type='void'/>
      <arg name='wildcard' type='xmlSchemaWildcardPtr' info='a wildcard structure'/>
    </function>
    <function name='xmlSchemaGetBuiltInListSimpleTypeItemType' file='xmlschemastypes' module='xmlschemastypes'>
      <cond>defined(LIBXML_SCHEMAS_ENABLED)</cond>
      <info>Lookup function</info>
      <return type='xmlSchemaTypePtr' info='the item type of @type as defined by the built-in datatype hierarchy of XML Schema Part 2: Datatypes, or NULL in case of an error.'/>
      <arg name='type' type='xmlSchemaTypePtr' info='the built-in simple type.'/>
    </function>
    <function name='xmlSchemaGetBuiltInType' file='xmlschemastypes' module='xmlschemastypes'>
      <cond>defined(LIBXML_SCHEMAS_ENABLED)</cond>
      <info>Gives you the type struct for a built-in type by its type id.</info>
      <return type='xmlSchemaTypePtr' info='the type if found, NULL otherwise.'/>
      <arg name='type' type='xmlSchemaValType' info='the type of the built in type'/>
    </function>
    <function name='xmlSchemaGetCanonValue' file='xmlschemastypes' module='xmlschemastypes'>
      <cond>defined(LIBXML_SCHEMAS_ENABLED)</cond>
      <info>Get the canonical lexical representation of the value. The caller has to FREE the returned retValue.  WARNING: Some value types are not supported yet, resulting in a @retValue of &quot;???&quot;.  TODO: XML Schema 1.0 does not define canonical representations for: duration, gYearMonth, gYear, gMonthDay, gMonth, gDay, anyURI, QName, NOTATION. This will be fixed in XML Schema 1.1.</info>
      <return type='int' info='0 if the value could be built, 1 if the value type is not supported yet and -1 in case of API errors.'/>
      <arg name='val' type='xmlSchemaValPtr' info='the precomputed value'/>
      <arg name='retValue' type='const xmlChar **' info='the returned value'/>
    </function>
    <function name='xmlSchemaGetCanonValueWhtsp' file='xmlschemastypes' module='xmlschemastypes'>
      <cond>defined(LIBXML_SCHEMAS_ENABLED)</cond>
      <info>Get the canonical representation of the value. The caller has to free the returned @retValue.</info>
      <return type='int' info='0 if the value could be built, 1 if the value type is not supported yet and -1 in case of API errors.'/>
      <arg name='val' type='xmlSchemaValPtr' info='the precomputed value'/>
      <arg name='retValue' type='const xmlChar **' info='the returned value'/>
      <arg name='ws' type='xmlSchemaWhitespaceValueType' info='the whitespace type of the value'/>
    </function>
    <function name='xmlSchemaGetFacetValueAsULong' file='xmlschemastypes' module='xmlschemastypes'>
      <cond>defined(LIBXML_SCHEMAS_ENABLED)</cond>
      <info>Extract the value of a facet</info>
      <return type='unsigned long' info='the value as a long'/>
      <arg name='facet' type='xmlSchemaFacetPtr' info='an schemas type facet'/>
    </function>
    <function name='xmlSchemaGetParserErrors' file='xmlschemas' module='xmlschemas'>
      <cond>defined(LIBXML_SCHEMAS_ENABLED)</cond>
      <info>Get the callback information used to handle errors for a parser context</info>
      <return type='int' info='-1 in case of failure, 0 otherwise'/>
      <arg name='ctxt' type='xmlSchemaParserCtxtPtr' info='a XMl-Schema parser context'/>
      <arg name='err' type='xmlSchemaValidityErrorFunc *' info='the error callback result'/>
      <arg name='warn' type='xmlSchemaValidityWarningFunc *' info='the warning callback result'/>
      <arg name='ctx' type='void **' info='contextual data for the callbacks result'/>
    </function>
    <function name='xmlSchemaGetPredefinedType' file='xmlschemastypes' module='xmlschemastypes'>
      <cond>defined(LIBXML_SCHEMAS_ENABLED)</cond>
      <info>Lookup a type in the default XML Schemas type library</info>
      <return type='xmlSchemaTypePtr' info='the type if found, NULL otherwise'/>
      <arg name='name' type='const xmlChar *' info='the type name'/>
      <arg name='ns' type='const xmlChar *' info='the URI of the namespace usually &quot;http://www.w3.org/2001/XMLSchema&quot;'/>
    </function>
    <function name='xmlSchemaGetValType' file='xmlschemastypes' module='xmlschemastypes'>
      <cond>defined(LIBXML_SCHEMAS_ENABLED)</cond>
      <info>Accessor for the type of a value</info>
      <return type='xmlSchemaValType' info='the xmlSchemaValType of the value'/>
      <arg name='val' type='xmlSchemaValPtr' info='a schemas value'/>
    </function>
    <function name='xmlSchemaGetValidErrors' file='xmlschemas' module='xmlschemas'>
      <cond>defined(LIBXML_SCHEMAS_ENABLED)</cond>
      <info>Get the error and warning callback informations</info>
      <return type='int' info='-1 in case of error and 0 otherwise'/>
      <arg name='ctxt' type='xmlSchemaValidCtxtPtr' info='a XML-Schema validation context'/>
      <arg name='err' type='xmlSchemaValidityErrorFunc *' info='the error function result'/>
      <arg name='warn' type='xmlSchemaValidityWarningFunc *' info='the warning function result'/>
      <arg name='ctx' type='void **' info='the functions context result'/>
    </function>
    <function name='xmlSchemaInitTypes' file='xmlschemastypes' module='xmlschemastypes'>
      <cond>defined(LIBXML_SCHEMAS_ENABLED)</cond>
      <info>Initialize the default XML Schemas type library</info>
      <return type='void'/>
    </function>
    <function name='xmlSchemaIsBuiltInTypeFacet' file='xmlschemastypes' module='xmlschemastypes'>
      <cond>defined(LIBXML_SCHEMAS_ENABLED)</cond>
      <info>Evaluates if a specific facet can be used in conjunction with a type.</info>
      <return type='int' info='1 if the facet can be used with the given built-in type, 0 otherwise and -1 in case the type is not a built-in type.'/>
      <arg name='type' type='xmlSchemaTypePtr' info='the built-in type'/>
      <arg name='facetType' type='int' info='the facet type'/>
    </function>
    <function name='xmlSchemaIsValid' file='xmlschemas' module='xmlschemas'>
      <cond>defined(LIBXML_SCHEMAS_ENABLED)</cond>
      <info>Check if any error was detected during validation.</info>
      <return type='int' info='1 if valid so far, 0 if errors were detected, and -1 in case of internal error.'/>
      <arg name='ctxt' type='xmlSchemaValidCtxtPtr' info='the schema validation context'/>
    </function>
    <function name='xmlSchemaNewDocParserCtxt' file='xmlschemas' module='xmlschemas'>
      <cond>defined(LIBXML_SCHEMAS_ENABLED)</cond>
      <info>Create an XML Schemas parse context for that document. NB. The document may be modified during the parsing process.</info>
      <return type='xmlSchemaParserCtxtPtr' info='the parser context or NULL in case of error'/>
      <arg name='doc' type='xmlDocPtr' info='a preparsed document tree'/>
    </function>
    <function name='xmlSchemaNewFacet' file='xmlschemastypes' module='xmlschemas'>
      <cond>defined(LIBXML_SCHEMAS_ENABLED)</cond>
      <info>Allocate a new Facet structure.</info>
      <return type='xmlSchemaFacetPtr' info='the newly allocated structure or NULL in case or error'/>
    </function>
    <function name='xmlSchemaNewMemParserCtxt' file='xmlschemas' module='xmlschemas'>
      <cond>defined(LIBXML_SCHEMAS_ENABLED)</cond>
      <info>Create an XML Schemas parse context for that memory buffer expected to contain an XML Schemas file.</info>
      <return type='xmlSchemaParserCtxtPtr' info='the parser context or NULL in case of error'/>
      <arg name='buffer' type='const char *' info='a pointer to a char array containing the schemas'/>
      <arg name='size' type='int' info='the size of the array'/>
    </function>
    <function name='xmlSchemaNewNOTATIONValue' file='xmlschemastypes' module='xmlschemastypes'>
      <cond>defined(LIBXML_SCHEMAS_ENABLED)</cond>
      <info>Allocate a new NOTATION value. The given values are consumed and freed with the struct.</info>
      <return type='xmlSchemaValPtr' info='a pointer to the new value or NULL in case of error'/>
      <arg name='name' type='const xmlChar *' info='the notation name'/>
      <arg name='ns' type='const xmlChar *' info='the notation namespace name or NULL'/>
    </function>
    <function name='xmlSchemaNewParserCtxt' file='xmlschemas' module='xmlschemas'>
      <cond>defined(LIBXML_SCHEMAS_ENABLED)</cond>
      <info>Create an XML Schemas parse context for that file/resource expected to contain an XML Schemas file.</info>
      <return type='xmlSchemaParserCtxtPtr' info='the parser context or NULL in case of error'/>
      <arg name='URL' type='const char *' info='the location of the schema'/>
    </function>
    <function name='xmlSchemaNewQNameValue' file='xmlschemastypes' module='xmlschemastypes'>
      <cond>defined(LIBXML_SCHEMAS_ENABLED)</cond>
      <info>Allocate a new QName value. The given values are consumed and freed with the struct.</info>
      <return type='xmlSchemaValPtr' info='a pointer to the new value or NULL in case of an error.'/>
      <arg name='namespaceName' type='const xmlChar *' info='the namespace name'/>
      <arg name='localName' type='const xmlChar *' info='the local name'/>
    </function>
    <function name='xmlSchemaNewStringValue' file='xmlschemastypes' module='xmlschemastypes'>
      <cond>defined(LIBXML_SCHEMAS_ENABLED)</cond>
      <info>Allocate a new simple type value. The type can be of XML_SCHEMAS_STRING. WARNING: This one is intended to be expanded for other string based types. We need this for anySimpleType as well. The given value is consumed and freed with the struct.</info>
      <return type='xmlSchemaValPtr' info='a pointer to the new value or NULL in case of error'/>
      <arg name='type' type='xmlSchemaValType' info='the value type'/>
      <arg name='value' type='const xmlChar *' info='the value'/>
    </function>
    <function name='xmlSchemaNewValidCtxt' file='xmlschemas' module='xmlschemas'>
      <cond>defined(LIBXML_SCHEMAS_ENABLED)</cond>
      <info>Create an XML Schemas validation context based on the given schema.</info>
      <return type='xmlSchemaValidCtxtPtr' info='the validation context or NULL in case of error'/>
      <arg name='schema' type='xmlSchemaPtr' info='a precompiled XML Schemas'/>
    </function>
    <function name='xmlSchemaParse' file='xmlschemas' module='xmlschemas'>
      <cond>defined(LIBXML_SCHEMAS_ENABLED)</cond>
      <info>parse a schema definition resource and build an internal XML Shema struture which can be used to validate instances.</info>
      <return type='xmlSchemaPtr' info='the internal XML Schema structure built from the resource or NULL in case of error'/>
      <arg name='ctxt' type='xmlSchemaParserCtxtPtr' info='a schema validation context'/>
    </function>
    <function name='xmlSchemaSAXPlug' file='xmlschemas' module='xmlschemas'>
      <cond>defined(LIBXML_SCHEMAS_ENABLED)</cond>
      <info>Plug a SAX based validation layer in a SAX parsing event flow. The original @saxptr and @dataptr data are replaced by new pointers but the calls to the original will be maintained.</info>
      <return type='xmlSchemaSAXPlugPtr' info='a pointer to a data structure needed to unplug the validation layer or NULL in case of errors.'/>
      <arg name='ctxt' type='xmlSchemaValidCtxtPtr