### ----------------------------------------------------
### -- LibXML
### -- Licenses: Artistic-2.0
### -- Authors: David Warring
### -- File: etc/libxml2-api.xml
### ----------------------------------------------------
### -- Chunk 20 of 44
arg name='name' type='const xmlChar *' info='The name of the entity'/>
      <arg name='publicId' type='const xmlChar *' info='The public ID of the entity'/>
      <arg name='systemId' type='const xmlChar *' info='The system ID of the entity'/>
      <arg name='notationName' type='const xmlChar *' info='the name of the notation'/>
    </functype>
    <function name='valuePop' file='xpathInternals' module='xpath'>
      <cond>defined(LIBXML_XPATH_ENABLED)</cond>
      <info>Pops the top XPath object from the value stack</info>
      <return type='xmlXPathObjectPtr' info='the XPath object just removed'/>
      <arg name='ctxt' type='xmlXPathParserContextPtr' info='an XPath evaluation context'/>
    </function>
    <function name='valuePush' file='xpathInternals' module='xpath'>
      <cond>defined(LIBXML_XPATH_ENABLED)</cond>
      <info>Pushes a new XPath object on top of the value stack</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' module='parser'>
      <info>Display and format a warning messages, callback.</info>
      <return type='void'/>
      <arg name='ctx' type='void *' info='an XML parser context'/>
      <arg name='msg' type='const char *' info='the message to display/transmit'/>
      <arg name='...' type='...' info='extra parameters for the message display'/>
    </functype>
    <functype name='xlinkExtendedLinkFunk' file='xlink' module='xlink'>
      <cond>defined(LIBXML_XPTR_ENABLED)</cond>
      <info>This is the prototype for a extended link detection callback.</info>
      <return type='void'/>
      <arg name='ctx' type='void *' info='user data pointer'/>
      <arg name='node' type='xmlNodePtr' info='the node carrying the link'/>
      <arg name='nbLocators' type='int' info='the number of locators detected on the link'/>
      <arg name='hrefs' type='const xlinkHRef *' info='pointer to the array of locator hrefs'/>
      <arg name='roles' type='const xlinkRole *' info='pointer to the array of locator roles'/>
      <arg name='nbArcs' type='int' info='the number of arcs detected on the link'/>
      <arg name='from' type='const xlinkRole *' info='pointer to the array of source roles found on the arcs'/>
      <arg name='to' type='const xlinkRole *' info='pointer to the array of target roles found on the arcs'/>
      <arg name='show' type='xlinkShow *' info='array of values for the show attributes found on the arcs'/>
      <arg name='actuate' type='xlinkActuate *' info='array of values for the actuate attributes found on the arcs'/>
      <arg name='nbTitles' type='int' info='the number of titles detected on the link'/>
      <arg name='titles' type='const xlinkTitle *' info=''/>
      <arg name='langs' type='const xmlChar **' info='array of xml:lang values for the titles'/>
    </functype>
    <functype name='xlinkExtendedLinkSetFunk' file='xlink' module='xlink'>
      <cond>defined(LIBXML_XPTR_ENABLED)</cond>
      <info>This is the prototype for a extended link set detection callback.</info>
      <return type='void'/>
      <arg name='ctx' type='void *' info='user data pointer'/>
      <arg name='node' type='xmlNodePtr' info='the node carrying the link'/>
      <arg name='nbLocators' type='int' info='the number of locators detected on the link'/>
      <arg name='hrefs' type='const xlinkHRef *' info='pointer to the array of locator hrefs'/>
      <arg name='roles' type='const xlinkRole *' info='pointer to the array of locator roles'/>
      <arg name='nbTitles' type='int' info='the number of titles detected on the link'/>
      <arg name='titles' type='const xlinkTitle *' info=''/>
      <arg name='langs' type='const xmlChar **' info='array of xml:lang values for the titles'/>
    </functype>
    <function name='xlinkGetDefaultDetect' file='xlink' module='xlink'>
      <cond>defined(LIBXML_XPTR_ENABLED)</cond>
      <info>Get the default xlink detection routine</info>
      <return type='xlinkNodeDetectFunc' info='the current function or NULL;'/>
    </function>
    <function name='xlinkGetDefaultHandler' file='xlink' module='xlink'>
      <cond>defined(LIBXML_XPTR_ENABLED)</cond>
      <info>Get the default xlink handler.</info>
      <return type='xlinkHandlerPtr' info='the current xlinkHandlerPtr value.'/>
    </function>
    <function name='xlinkIsLink' file='xlink' module='xlink'>
      <cond>defined(LIBXML_XPTR_ENABLED)</cond>
      <info>Check whether the given node carries the attributes needed to be a link element (or is one of the linking elements issued from the (X)HTML DtDs). This routine don&apos;t try to do full checking of the link validity but tries to detect and return the appropriate link type.</info>
      <return type='xlinkType' info='the xlinkType of the node (XLINK_TYPE_NONE if there is no link detected.'/>
      <arg name='doc' type='xmlDocPtr' info='the document containing the node'/>
      <arg name='node' type='xmlNodePtr' info='the node pointer itself'/>
    </function>
    <functype name='xlinkNodeDetectFunc' file='xlink' module='xlink'>
      <cond>defined(LIBXML_XPTR_ENABLED)</cond>
      <info>This is the prototype for the link detection routine. It calls the default link detection callbacks upon link detection.</info>
      <return type='void'/>
      <arg name='ctx' type='void *' info='user data pointer'/>
      <arg name='node' type='xmlNodePtr' info='the node to check'/>
    </functype>
    <function name='xlinkSetDefaultDetect' file='xlink' module='xlink'>
      <cond>defined(LIBXML_XPTR_ENABLED)</cond>
      <info>Set the default xlink detection routine</info>
      <return type='void'/>
      <arg name='func' type='xlinkNodeDetectFunc' info='pointer to the new detection routine.'/>
    </function>
    <function name='xlinkSetDefaultHandler' file='xlink' module='xlink'>
      <cond>defined(LIBXML_XPTR_ENABLED)</cond>
      <info>Set the default xlink handlers</info>
      <return type='void'/>
      <arg name='handler' type='xlinkHandlerPtr' info='the new value for the xlink handler block'/>
    </function>
    <functype name='xlinkSimpleLinkFunk' file='xlink' module='xlink'>
      <cond>defined(LIBXML_XPTR_ENABLED)</cond>
      <info>This is the prototype for a simple link detection callback.</info>
      <return type='void'/>
      <arg name='ctx' type='void *' info='user data pointer'/>
      <arg name='node' type='xmlNodePtr' info='the node carrying the link'/>
      <arg name='href' type='const xlinkHRef' info='the target of the link'/>
      <arg name='role' type='const xlinkRole' info='the role string'/>
      <arg name='title' type='const xlinkTitle' info='the link title'/>
    </functype>
    <function name='xmlACatalogAdd' file='catalog' module='catalog'>
      <cond>defined(LIBXML_CATALOG_ENABLED)</cond>
      <info>Add an entry in the catalog, it may overwrite existing but different entries.</info>
      <return type='int' info='0 if successful, -1 otherwise'/>
      <arg name='catal' type='xmlCatalogPtr' info='a Catalog'/>
      <arg name='type' type='const xmlChar *' info='the type of record to add to the catalog'/>
      <arg name='orig' type='const xmlChar *' info='the system, public or prefix to match'/>
      <arg name='replace' type='const xmlChar *' info='the replacement value for the match'/>
    </function>
    <function name='xmlACatalogDump' file='catalog' module='catalog'>
      <cond>defined(LIBXML_CATALOG_ENABLED) &amp;&amp; defined(LIBXML_OUTPUT_ENABLED)</cond>
      <info>Dump the given catalog to the given file.</info>
      <return type='void'/>
      <arg name='catal' type='xmlCatalogPtr' info='a Catalog'/>
      <arg name='out' type='FILE *' info='the file.'/>
    </function>
    <function name='xmlACatalogRemove' file='catalog' module='catalog'>
      <cond>defined(LIBXML_CATALOG_ENABLED)</cond>
      <info>Remove an entry from the catalog</info>
      <return type='int' info='the number of entries removed if successful, -1 otherwise'/>
      <arg name='catal' type='xmlCatalogPtr' info='a Catalog'/>
      <arg name='value' type='const xmlChar *' info='the value to remove'/>
    </function>
    <function name='xmlACatalogResolve' file='catalog' module='catalog'>
      <cond>defined(LIBXML_CATALOG_ENABLED)</cond>
      <info>Do a complete resolution lookup of an External Identifier</info>
      <return type='xmlChar *' info='the URI of the resource or NULL if not found, it must be freed by the caller.'/>
      <arg name='catal' type='xmlCatalogPtr' info='a Catalog'/>
      <arg name='pubID' type='const xmlChar *' info='the public ID string'/>
      <arg name='sysID' type='const xmlChar *' info='the system ID string'/>
    </function>
    <function name='xmlACatalogResolvePublic' file='catalog' module='catalog'>
      <cond>defined(LIBXML_CATALOG_ENABLED)</cond>
      <info>Try to lookup the catalog local reference associated to a public ID in that catalog</info>
      <return type='xmlChar *' info='the local resource if found or NULL otherwise, the value returned must be freed by the caller.'/>
      <arg name='catal' type='xmlCatalogPtr' info='a Catalog'/>
      <arg name='pubID' type='const xmlChar *' info='the public ID string'/>
    </function>
    <function name='xmlACatalogResolveSystem' file='catalog' module='catalog'>
      <cond>defined(LIBXML_CATALOG_ENABLED)</cond>
      <info>Try to lookup the catalog resource for a system ID</info>
      <return type='xmlChar *' info='the resource if found or NULL otherwise, the value returned must be freed by the caller.'/>
      <arg name='catal' type='xmlCatalogPtr' info='a Catalog'/>
      <arg name='sysID' type='const xmlChar *' info='the system ID string'/>
    </function>
    <function name='xmlACatalogResolveURI' file='catalog' module='catalog'>
      <cond>defined(LIBXML_CATALOG_ENABLED)</cond>
      <info>Do a complete resolution lookup of an URI</info>
      <return type='xmlChar *' info='the URI of the resource or NULL if not found, it must be freed by the caller.'/>
      <arg name='catal' type='xmlCatalogPtr' info='a Catalog'/>
      <arg name='URI' type='const xmlChar *' info='the URI'/>
    </function>
    <function name='xmlAddAttributeDecl' file='valid' module='valid'>
      <info>Register a new attribute declaration Note that @tree becomes the ownership of the DTD</info>
      <return type='xmlAttributePtr' info='NULL if not new, otherwise the attribute decl'/>
      <arg name='ctxt' type='xmlValidCtxtPtr' info='the validation context'/>
      <arg name='dtd' type='xmlDtdPtr' info='pointer to the DTD'/>
      <arg name='elem' type='const xmlChar *' info='the element name'/>
      <arg name='name' type='const xmlChar *' info='the attribute name'/>
      <arg name='ns' type='const xmlChar *' info='the attribute namespace prefix'/>
      <arg name='type' type='xmlAttributeType' info='the attribute type'/>
      <arg name='def' type='xmlAttributeDefault' info='the attribute default type'/>
      <arg name='defaultValue' type='const xmlChar *' info='the attribute default value'/>
      <arg name='tree' type='xmlEnumerationPtr' info='if it&apos;s an enumeration, the associated list'/>
    </function>
    <function name='xmlAddChild' file='tree' module='tree'>
      <info>Add a new node to @parent, at the end of the child (or property) list merging adjacent TEXT nodes (in which case @cur is freed) If the new node is ATTRIBUTE, it is added into properties instead of children. If there is an attribute with equal name, it is first destroyed.</info>
      <return type='xmlNodePtr' info='the child or NULL in case of error.'/>
      <arg name='parent' type='xmlNodePtr' info='the parent node'/>
      <arg name='cur' type='xmlNodePtr' info='the child node'/>
    </function>
    <function name='xmlAddChildList' file='tree' module='tree'>
      <info>Add a list of node at the end of the child list of the parent merging adjacent TEXT nodes (@cur may be freed)</info>
      <return type='xmlNodePtr' info='the last child or NULL in case of error.'/>
      <arg name='parent' type='xmlNodePtr' info='the parent node'/>
      <arg name='cur' type='xmlNodePtr' info='the first node in the list'/>
    </function>
    <function name='xmlAddDocEntity' file='entities' module='entities'>
      <info>Register a new entity for this document.</info>
      <return type='xmlEntityPtr' info='a pointer to the entity or NULL in case of error'/>
      <arg name='doc' type='xmlDocPtr' info='the document'/>
      <arg name='name' type='const xmlChar *' info='the entity name'/>
      <arg name='type' type='int' info='the entity type XML_xxx_yyy_ENTITY'/>
      <arg name='ExternalID' type='const xmlChar *' info='the entity external ID if available'/>
      <arg name='SystemID' type='const xmlChar *' info='the entity system ID if available'/>
      <arg name='content' type='const xmlChar *' info='the entity content'/>
    </function>
    <function name='xmlAddDtdEntity' file='entities' module='entities'>
      <info>Register a new entity for this document DTD external subset.</info>
      <return type='xmlEntityPtr' info='a pointer to the entity or NULL in case of error'/>
      <arg name='doc' type='xmlDocPtr' info='the document'/>
      <arg name='name' type='const xmlChar *' info='the entity name'/>
      <arg name='type' type='int' info='the entity type XML_xxx_yyy_ENTITY'/>
      <arg name='ExternalID' type='const xmlChar *' info='the entity external ID if available'/>
      <arg name='SystemID' type='const xmlChar *' info='the entity system ID if available'/>
      <arg name='content' type='const xmlChar *' info='the entity content'/>
    </function>
    <function name='xmlAddElementDecl' file='valid' module='valid'>
      <info>Register a new element declaration</info>
      <return type='xmlElementPtr' info='NULL if not, otherwise the entity'/>
      <arg name='ctxt' type='xmlValidCtxtPtr' info='the validation context'/>
      <arg name='dtd' type='xmlDtdPtr' info='pointer to the DTD'/>
      <arg name='name' type='const xmlChar *' info='the entity name'/>
      <arg name='type' type='xmlElementTypeVal' info='the element type'/>
      <arg name='content' type='xmlElementContentPtr' info='the element content tree or NULL'/>
    </function>
    <function name='xmlAddEncodingAlias' file='encoding' module='encoding'>
      <info>Registers an alias @alias for an encoding named @name. Existing alias will be overwritten.</info>
      <return type='int' info='0 in case of success, -1 in case of error'/>
      <arg name='name' type='const char *' info='the encoding name as parsed, in UTF-8 format (ASCII actually)'/>
      <arg name='alias' type='const char *' info='the alias name as parsed, in UTF-8 format (ASCII actually)'/>
    </function>
    <function name='xmlAddID' file='valid' module='valid'>
      <info>Register a new id declaration</info>
      <return type='xmlIDPtr' info='NULL if not, otherwise the new xmlIDPtr'/>
      <arg name='ctxt' type='xmlValidCtxtPtr' info='the validation context'/>
      <arg name='doc' type='xmlDocPtr' info='pointer to the document'/>
      <arg name='value' type='const xmlChar *' info='the value name'/>
      <arg name='attr' type='xmlAttrPtr' info='the attribute holding the ID'/>
    </function>
    <function name='xmlAddNextSibling' file='tree' module='tree'>
      <info>Add a new node @elem as the next sibling of @cur If the new node was already inserted in a document it is first unlinked from its existing context. As a result of text merging @elem may be freed. If the new node is ATTRIBUTE, it is added into properties instead of children. If there is an attribute with equal name, it is first destroyed.</info>
      <return type='xmlNodePtr' info='the new node or NULL in case of error.'/>
      <arg name='cur' type='xmlNodePtr' info='the child node'/>
      <arg name='elem' type='xmlNodePtr' info='the new node'/>
    </function>
    <function name='xmlAddNotationDecl' file='valid' module='valid'>
      <info>Register a new notation declaration</info>
      <return type='xmlNotationPtr' info='NULL if not, otherwise the entity'/>
      <arg name='ctxt' type='xmlValidCtxtPtr' info='the validation context'/>
      <arg name='dtd' type='xmlDtdPtr' info='pointer to the DTD'/>
      <arg name='name' type='const xmlChar *' info='the entity name'/>
      <arg name='PublicID' type='const xmlChar *' info='the public identifier or NULL'/>
      <arg name='SystemID' type='const xmlChar *' info='the system identifier or NULL'/>
    </function>
    <function name='xmlAddPrevSibling' file='tree' module='tree'>
      <cond>defined(LIBXML_TREE_ENABLED) || defined(LIBXML_HTML_ENABLED) || defined(LIBXML_SCHEMAS_ENABLED) || defined(LIBXML_XINCLUDE_ENABLED)</cond>
      <info>Add a new node @elem as the previous sibling of @cur merging adjacent TEXT nodes (@elem may be freed) If the new node was already inserted in a document it is first unlinked from its existing context. If the new node is ATTRIBUTE, it is added into properties instead of children. If there is an attribute with equal name, it is first destroyed.</info>
      <return type='xmlNodePtr' info='the new node or NULL in case of error.'/>
      <arg name='cur' type='xmlNodePtr' info='the child node'/>
      <arg name='elem' type='xmlNodePtr' info='the new node'/>
    </function>
    <function name='xmlAddRef' file='valid' module='valid'>
      <info>Register a new ref declaration</info>
      <return type='xmlRefPtr' info='NULL if not, otherwise the new xmlRefPtr'/>
      <arg name='ctxt' type='xmlValidCtxtPtr' info='the validation context'/>
      <arg name='doc' type='xmlDocPtr' info='pointer to the document'/>
      <arg name='value' type='const xmlChar *' info='the value name'/>
      <arg name='attr' type='xmlAttrPtr' info='the attribute holding the Ref'/>
    </function>
    <function name='xmlAddSibling' file='tree' module='tree'>
      <info>Add a new element @elem to the list of siblings of @cur merging adjacent TEXT nodes (@elem may be freed) If the new element was already inserted in a document it is first unlinked from its existing context.</info>
      <return type='xmlNodePtr' info='the new element or NULL in case of error.'/>
      <arg name='cur' type='xmlNodePtr' info='the child node'/>
      <arg name='elem' type='xmlNodePtr' info='the new node'/>
    </function>
    <function name='xmlAllocOutputBuffer' file='xmlIO' module='xmlIO'>
      <cond>defined(LIBXML_OUTPUT_ENABLED)</cond>
      <info>Create a buffered parser output</info>
      <return type='xmlOutputBufferPtr' info='the new parser output or NULL'/>
      <arg name='encoder' type='xmlCharEncodingHandlerPtr' info='the encoding converter or NULL'/>
    </function>
    <function name='xmlAllocParserInputBuffer' file='xmlIO' module='xmlIO'>
      <info>Create a buffered parser input for progressive parsing</info>
      <return type='xmlParserInputBufferPtr' info='the new parser input or NULL'/>
      <arg name='enc' type='xmlCharEncoding' info='the charset encoding if known'/>
    </function>
    <function name='xmlAttrSerializeTxtContent' file='tree' module='xmlsave'>
      <cond>defined(LIBXML_OUTPUT_ENABLED)</cond>
      <info>Serialize text attribute values to an xml simple buffer</info>
      <return type='void'/>
      <arg name='buf' type='xmlBufferPtr' info='the XML buffer output'/>
      <arg name='doc' type='xmlDocPtr' info='the document'/>
      <arg name='attr' type='xmlAttrPtr' info='the attribute node'/>
      <arg name='string' type='const xmlChar *' info='the text content'/>
    </function>
    <function name='xmlAutomataCompile' file='xmlautomata' module='xmlregexp'>
      <cond>defined(LIBXML_REGEXP_ENABLED) &amp;&amp; defined(LIBXML_AUTOMATA_ENABLED)</cond>
      <info>Compile the automata into a Reg Exp ready for being executed. The automata should be free after this point.</info>
      <return type='xmlRegexpPtr' info='the compiled regexp or NULL in case of error'/>
      <arg name='am' type='xmlAutomataPtr' info='an automata'/>
    </function>
    <function name='xmlAutomataGetInitState' file='xmlautomata' module='xmlregexp'>
      <cond>defined(LIBXML_REGEXP_ENABLED) &amp;&amp; defined(LIBXML_AUTOMATA_ENABLED)</cond>
      <info>Initial state lookup</info>
      <return type='xmlAutomataStatePtr' info='the initial state of the automata'/>
      <arg name='am' type='xmlAutomataPtr' info='an automata'/>
    </function>
    <function name='xmlAutomataIsDeterminist' file='xmlautomata' module='xmlregexp'>
      <cond>defined(LIBXML_REGEXP_ENABLED) &amp;&amp; defined(LIBXML_AUTOMATA_ENABLED)</cond>
      <info>Checks if an automata is determinist.</info>
      <return type='int' info='1 if true, 0 if not, and -1 in case of error'/>
      <arg name='am' type='xmlAutomataPtr' info='an automata'/>
    </function>
    <function name='xmlAutomataNewAllTrans' file='xmlautomata' module='xmlregexp'>
      <cond>defined(LIBXML_REGEXP_ENABLED) &amp;&amp; defined(LIBXML_AUTOMATA_ENABLED)</cond>
      <info>If @to is NULL, this creates first a new target state in the automata and then adds a an ALL transition from the @from state to the target state. That transition is an epsilon transition allowed only when all transitions from the @from node have been activated.</info>
      <return type='xmlAutomataStatePtr' info='the target state or NULL in case of error'/>
      <arg name='am' type='xmlAutomataPtr' info='an automata'/>
      <arg name='from' type='xmlAutomataStatePtr' info='the starting point of the transition'/>
      <arg name='to' type='xmlAutomataStatePtr' info='the target point of the transition or NULL'/>
      <arg name='lax' type='int' info='allow to transition if not all all transitions have been activated'/>
    </function>
    <function name='xmlAutomataNewCountTrans' file='xmlautomata' module='xmlregexp'>
      <cond>defined(LIBXML_REGEXP_ENABLED) &amp;&amp; defined(LIBXML_AUTOMATA_ENABLED)</cond>
      <info>If @to is NULL, this creates first a new target state in the automata and then adds a transition from the @from state to the target state activated by a succession of input of value @token and whose number is between @min and @max</info>
      <return type='xmlAutomataStatePtr' info='the target state or NULL in case of error'/>
      <arg name='am' type='xmlAutomataPtr' info='an automata'/>
      <arg name='from' type='xmlAutomataStatePtr' info='the starting point of the transition'/>
      <arg name='to' type='xmlAutomataStatePtr' info='the target point of the transition or NULL'/>
      <arg name='token' type='const xmlChar *' info='the input string associated to that transition'/>
      <arg name='min' type='int' info='the minimum successive occurences of token'/>
      <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' module='xmlregexp'>
      <cond>defined(LIBXML_REGEXP_ENABLED) &amp;&amp; defined(LIBXML_AUTOMATA_ENABLED)</cond>
      <info>If @to is NULL, this creates first a new target state in the automata and then adds a transition from the @from state to the target state activated by a succession of input of value @token and @token2 and whose number is between @min and @max</info>
      <return type='xmlAutomataStatePtr' info='the target state or NULL in case of error'/>
      <arg name='am' type='xmlAutomataPtr' info='an automata'/>
      <arg name='from' type='xmlAutomataStatePtr' info='the starting point of the transition'/>
      <arg name='to' type='xmlAutomataStatePtr' info='the target point of the transition or NULL'/>
      <arg name='token' type='const xmlChar *' info='the input string associated to that transition'/>
      <arg name='token2' type='const xmlChar *' info='the second input string associated to that transition'/>
      <arg name='min' type='int' info='the minimum successive occurences of token'/>
      <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' module='xmlregexp'>
      <cond>defined(LIBXML_REGEXP_ENABLED) &amp;&amp; defined(LIBXML_AUTOMATA_ENABLED)</cond>
      <info>If @to is NULL, this creates first a new target state in the automata and then adds an epsilon transition from the @from state to the target state which will increment the counter provided</info>
      <return type='xmlAutomataStatePtr' info='the target state or NULL in case of error'/>
      <arg name='am' type='xmlAutomataPtr' info='an automata'/>
      <arg name='from' type='xmlAutomataStatePtr' info='the starting point of the transition'/>
      <arg name='to' type='xmlAutomataStatePtr' info='the target point of the transition or NULL'/>
      <arg name='counter' type='int' info='the counter associated to that transition'/>
    </function>
    <function name='xmlAutomataNewCounter' file='xmlautomata' module='xmlregexp'>
      <cond>defined(LIBXML_REGEXP_ENABLED) &amp;&amp; defined(LIBXML_AUTOMATA_ENABLED)</cond>
      <info>Create a new counter</info>
      <return type='int' info='the counter number or -1 in case of error'/>
      <arg name='am' type='xmlAutomataPtr' info='an automata'/>
      <arg name='min' type='int' info='the minimal value on the counter'/>
      <arg name='max' type='int' info='the maximal value on the counter'/>
    </function>
    <function name='xmlAutomataNewCounterTrans' file='xmlautomata' module='xmlregexp'>
      <cond>defined(LIBXML_REGEXP_ENABLED) &amp;&amp; defined(LIBXML_AUTOMATA_ENABLED)</cond>
      <info>If @to is NULL, this creates first a new target state in the automata and then adds an epsilon transition from the @from state to the target state which will be allowed only if the counter is within the right range.</info>
      <return type='xmlAutomataStatePtr' info='the target state or NULL in case of error'/>
      <arg name='am' type='xmlAutomataPtr' info='an automata'/>
      <arg name='from' type='xmlAutomataStatePtr' info='the starting point of the transition'/>
      <arg name='to' type='xmlAutomataStatePtr' info='the target point of the transition or NULL'/>
      <arg name='counter' type='int' info='the counter associated to that transition'/>
    </function>
    <function name='xmlAutomataNewEpsilon' file='xmlautomata' module='xmlregexp'>
      <cond>defined(LIBXML_REGEXP_ENABLED) &amp;&amp; defined(LIBXML_AUTOMATA_ENABLED)</cond>
      <info>If @to is NULL, this creates first a new target state in the automata and then adds an epsilon transition from the @from state to the target state</info>
      <return type='xmlAutomataStatePtr' info='the target state or NULL in case of error'/>
      <arg name='am' type='xmlAutomataPtr' info='an automata'/>
      <arg name='from' type='xmlAutomataStatePtr' info='the starting point of the transition'/>
      <arg name='to' type='xmlAutomataStatePtr' info='the target point of the transition or NULL'/>
    </function>
    <function name='xmlAutomataNewNegTrans' file='xmlautomata' module='xmlregexp'>
      <cond>defined(LIBXML_REGEXP_ENABLED) &amp;&amp; defined(LIBXML_AUTOMATA_ENABLED)</cond>
      <info>If @to is NULL, this creates first a new target state in the automata and then adds a transition from the @from state to the target state activated by any value except (@token,@token2) Note that if @token2 is not NULL, then (X, NULL) won&apos;t match to follow # the semantic of XSD ##other</info>
      <return type='xmlAutomataStatePtr' info='the target state or NULL in case of error'/>
      <arg name='am' type='xmlAutomataPtr' info='an automata'/>
      <arg name='from' type='xmlAutomataStatePtr' info='the starting point of the transition'/>
      <arg name='to' type='xmlAutomataStatePtr' info='the target point of the transition or NULL'/>
      <arg name='token' type='const xmlChar *' info='the first input string associated to that transition'/>
      <arg name='token2' type='const xmlChar *' info='the second input string associated to that transition'/>
      <arg name='data' type='void *' info='data passed to the callback function if the transition is activated'/>
    </function>
    <function name='xmlAutomataNewOnceTrans' file='xmlautomata' module='xmlregexp'>
      <cond>defined(LIBXML_REGEXP_ENABLED) &amp;&amp; defined(LIBXML_AUTOMATA_ENABLED)</cond>
      <info>If @to is NULL, this creates first a new target state in the automata and then adds a transition from the @from state to the target state activated by a succession of input of value @token and whose number is between @min and @max, moreover that transition can only be crossed once.</info>
      <return type='xmlAutomataStatePtr' info='the target state or NULL in case of error'/>
      <arg name='am' type='xmlAutomataPtr' info='an automata'/>
      <arg name='from' type='xmlAutomataStatePtr' info='the starting point of the transition'/>
      <arg name='to' type='xmlAutomataStatePtr' info='the target point of the transition or NULL'/>
      <arg name='token' type='const xmlChar *' info='the input string associated to that transition'/>
      <arg name='min' type='int' info='the minimum successive occurences of token'/>
      <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' module='xmlregexp'>
      <cond>defined(LIBXML_REGEXP_ENABLED) &amp;&amp; defined(LIBXML_AUTOMATA_ENABLED)</cond>
      <info>If @to is NULL, this creates first a new target state in the automata and then adds a transition from the @from state to the target state activated by a succession of input of value @token and @token2 and whose number is between @min and @max, moreover that transition can only be crossed once.</info>
      <return type='xmlAutomataStatePtr' info='the target state or NULL in case of error'/>
      <arg name='am' type='xmlAutomataPtr' info='an automata'/>
      <arg name='from' type='xmlAutomataStatePtr' info='the starting point of the transition'/>
      <arg name='to' type='xmlAutomataStatePtr' info='the target point of the transition or NULL'/>
      <arg name='token' type='const xmlChar *' info='the input string associated to that transition'/>
      <arg name='token2' type='const xmlChar *' info='the second input string associated to that transition'/>
      <arg name='min' type='int' info='the minimum successive occurences of token'/>
      <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' 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>
   