### ----------------------------------------------------
### -- LibXML
### -- Licenses: Artistic-2.0
### -- Authors: David Warring
### -- File: etc/libxml2-api.xml
### ----------------------------------------------------
### -- Chunk 40 of 44
ates' file='xmlunicode' module='xmlunicode'>
      <cond>defined(LIBXML_UNICODE_ENABLED)</cond>
      <info>Check whether the character is part of LowSurrogates UCS Block</info>
      <return type='int' info='1 if true 0 otherwise'/>
      <arg name='code' type='int' info='UCS code point'/>
    </function>
    <function name='xmlUCSIsMalayalam' file='xmlunicode' module='xmlunicode'>
      <cond>defined(LIBXML_UNICODE_ENABLED)</cond>
      <info>Check whether the character is part of Malayalam UCS Block</info>
      <return type='int' info='1 if true 0 otherwise'/>
      <arg name='code' type='int' info='UCS code point'/>
    </function>
    <function name='xmlUCSIsMathematicalAlphanumericSymbols' file='xmlunicode' module='xmlunicode'>
      <cond>defined(LIBXML_UNICODE_ENABLED)</cond>
      <info>Check whether the character is part of MathematicalAlphanumericSymbols UCS Block</info>
      <return type='int' info='1 if true 0 otherwise'/>
      <arg name='code' type='int' info='UCS code point'/>
    </function>
    <function name='xmlUCSIsMathematicalOperators' file='xmlunicode' module='xmlunicode'>
      <cond>defined(LIBXML_UNICODE_ENABLED)</cond>
      <info>Check whether the character is part of MathematicalOperators UCS Block</info>
      <return type='int' info='1 if true 0 otherwise'/>
      <arg name='code' type='int' info='UCS code point'/>
    </function>
    <function name='xmlUCSIsMiscellaneousMathematicalSymbolsA' file='xmlunicode' module='xmlunicode'>
      <cond>defined(LIBXML_UNICODE_ENABLED)</cond>
      <info>Check whether the character is part of MiscellaneousMathematicalSymbols-A UCS Block</info>
      <return type='int' info='1 if true 0 otherwise'/>
      <arg name='code' type='int' info='UCS code point'/>
    </function>
    <function name='xmlUCSIsMiscellaneousMathematicalSymbolsB' file='xmlunicode' module='xmlunicode'>
      <cond>defined(LIBXML_UNICODE_ENABLED)</cond>
      <info>Check whether the character is part of MiscellaneousMathematicalSymbols-B UCS Block</info>
      <return type='int' info='1 if true 0 otherwise'/>
      <arg name='code' type='int' info='UCS code point'/>
    </function>
    <function name='xmlUCSIsMiscellaneousSymbols' file='xmlunicode' module='xmlunicode'>
      <cond>defined(LIBXML_UNICODE_ENABLED)</cond>
      <info>Check whether the character is part of MiscellaneousSymbols UCS Block</info>
      <return type='int' info='1 if true 0 otherwise'/>
      <arg name='code' type='int' info='UCS code point'/>
    </function>
    <function name='xmlUCSIsMiscellaneousSymbolsandArrows' file='xmlunicode' module='xmlunicode'>
      <cond>defined(LIBXML_UNICODE_ENABLED)</cond>
      <info>Check whether the character is part of MiscellaneousSymbolsandArrows UCS Block</info>
      <return type='int' info='1 if true 0 otherwise'/>
      <arg name='code' type='int' info='UCS code point'/>
    </function>
    <function name='xmlUCSIsMiscellaneousTechnical' file='xmlunicode' module='xmlunicode'>
      <cond>defined(LIBXML_UNICODE_ENABLED)</cond>
      <info>Check whether the character is part of MiscellaneousTechnical UCS Block</info>
      <return type='int' info='1 if true 0 otherwise'/>
      <arg name='code' type='int' info='UCS code point'/>
    </function>
    <function name='xmlUCSIsMongolian' file='xmlunicode' module='xmlunicode'>
      <cond>defined(LIBXML_UNICODE_ENABLED)</cond>
      <info>Check whether the character is part of Mongolian UCS Block</info>
      <return type='int' info='1 if true 0 otherwise'/>
      <arg name='code' type='int' info='UCS code point'/>
    </function>
    <function name='xmlUCSIsMusicalSymbols' file='xmlunicode' module='xmlunicode'>
      <cond>defined(LIBXML_UNICODE_ENABLED)</cond>
      <info>Check whether the character is part of MusicalSymbols UCS Block</info>
      <return type='int' info='1 if true 0 otherwise'/>
      <arg name='code' type='int' info='UCS code point'/>
    </function>
    <function name='xmlUCSIsMyanmar' file='xmlunicode' module='xmlunicode'>
      <cond>defined(LIBXML_UNICODE_ENABLED)</cond>
      <info>Check whether the character is part of Myanmar UCS Block</info>
      <return type='int' info='1 if true 0 otherwise'/>
      <arg name='code' type='int' info='UCS code point'/>
    </function>
    <function name='xmlUCSIsNumberForms' file='xmlunicode' module='xmlunicode'>
      <cond>defined(LIBXML_UNICODE_ENABLED)</cond>
      <info>Check whether the character is part of NumberForms UCS Block</info>
      <return type='int' info='1 if true 0 otherwise'/>
      <arg name='code' type='int' info='UCS code point'/>
    </function>
    <function name='xmlUCSIsOgham' file='xmlunicode' module='xmlunicode'>
      <cond>defined(LIBXML_UNICODE_ENABLED)</cond>
      <info>Check whether the character is part of Ogham UCS Block</info>
      <return type='int' info='1 if true 0 otherwise'/>
      <arg name='code' type='int' info='UCS code point'/>
    </function>
    <function name='xmlUCSIsOldItalic' file='xmlunicode' module='xmlunicode'>
      <cond>defined(LIBXML_UNICODE_ENABLED)</cond>
      <info>Check whether the character is part of OldItalic UCS Block</info>
      <return type='int' info='1 if true 0 otherwise'/>
      <arg name='code' type='int' info='UCS code point'/>
    </function>
    <function name='xmlUCSIsOpticalCharacterRecognition' file='xmlunicode' module='xmlunicode'>
      <cond>defined(LIBXML_UNICODE_ENABLED)</cond>
      <info>Check whether the character is part of OpticalCharacterRecognition UCS Block</info>
      <return type='int' info='1 if true 0 otherwise'/>
      <arg name='code' type='int' info='UCS code point'/>
    </function>
    <function name='xmlUCSIsOriya' file='xmlunicode' module='xmlunicode'>
      <cond>defined(LIBXML_UNICODE_ENABLED)</cond>
      <info>Check whether the character is part of Oriya UCS Block</info>
      <return type='int' info='1 if true 0 otherwise'/>
      <arg name='code' type='int' info='UCS code point'/>
    </function>
    <function name='xmlUCSIsOsmanya' file='xmlunicode' module='xmlunicode'>
      <cond>defined(LIBXML_UNICODE_ENABLED)</cond>
      <info>Check whether the character is part of Osmanya UCS Block</info>
      <return type='int' info='1 if true 0 otherwise'/>
      <arg name='code' type='int' info='UCS code point'/>
    </function>
    <function name='xmlUCSIsPhoneticExtensions' file='xmlunicode' module='xmlunicode'>
      <cond>defined(LIBXML_UNICODE_ENABLED)</cond>
      <info>Check whether the character is part of PhoneticExtensions UCS Block</info>
      <return type='int' info='1 if true 0 otherwise'/>
      <arg name='code' type='int' info='UCS code point'/>
    </function>
    <function name='xmlUCSIsPrivateUse' file='xmlunicode' module='xmlunicode'>
      <cond>defined(LIBXML_UNICODE_ENABLED)</cond>
      <info>Check whether the character is part of PrivateUse UCS Block</info>
      <return type='int' info='1 if true 0 otherwise'/>
      <arg name='code' type='int' info='UCS code point'/>
    </function>
    <function name='xmlUCSIsPrivateUseArea' file='xmlunicode' module='xmlunicode'>
      <cond>defined(LIBXML_UNICODE_ENABLED)</cond>
      <info>Check whether the character is part of PrivateUseArea UCS Block</info>
      <return type='int' info='1 if true 0 otherwise'/>
      <arg name='code' type='int' info='UCS code point'/>
    </function>
    <function name='xmlUCSIsRunic' file='xmlunicode' module='xmlunicode'>
      <cond>defined(LIBXML_UNICODE_ENABLED)</cond>
      <info>Check whether the character is part of Runic UCS Block</info>
      <return type='int' info='1 if true 0 otherwise'/>
      <arg name='code' type='int' info='UCS code point'/>
    </function>
    <function name='xmlUCSIsShavian' file='xmlunicode' module='xmlunicode'>
      <cond>defined(LIBXML_UNICODE_ENABLED)</cond>
      <info>Check whether the character is part of Shavian UCS Block</info>
      <return type='int' info='1 if true 0 otherwise'/>
      <arg name='code' type='int' info='UCS code point'/>
    </function>
    <function name='xmlUCSIsSinhala' file='xmlunicode' module='xmlunicode'>
      <cond>defined(LIBXML_UNICODE_ENABLED)</cond>
      <info>Check whether the character is part of Sinhala UCS Block</info>
      <return type='int' info='1 if true 0 otherwise'/>
      <arg name='code' type='int' info='UCS code point'/>
    </function>
    <function name='xmlUCSIsSmallFormVariants' file='xmlunicode' module='xmlunicode'>
      <cond>defined(LIBXML_UNICODE_ENABLED)</cond>
      <info>Check whether the character is part of SmallFormVariants UCS Block</info>
      <return type='int' info='1 if true 0 otherwise'/>
      <arg name='code' type='int' info='UCS code point'/>
    </function>
    <function name='xmlUCSIsSpacingModifierLetters' file='xmlunicode' module='xmlunicode'>
      <cond>defined(LIBXML_UNICODE_ENABLED)</cond>
      <info>Check whether the character is part of SpacingModifierLetters UCS Block</info>
      <return type='int' info='1 if true 0 otherwise'/>
      <arg name='code' type='int' info='UCS code point'/>
    </function>
    <function name='xmlUCSIsSpecials' file='xmlunicode' module='xmlunicode'>
      <cond>defined(LIBXML_UNICODE_ENABLED)</cond>
      <info>Check whether the character is part of Specials UCS Block</info>
      <return type='int' info='1 if true 0 otherwise'/>
      <arg name='code' type='int' info='UCS code point'/>
    </function>
    <function name='xmlUCSIsSuperscriptsandSubscripts' file='xmlunicode' module='xmlunicode'>
      <cond>defined(LIBXML_UNICODE_ENABLED)</cond>
      <info>Check whether the character is part of SuperscriptsandSubscripts UCS Block</info>
      <return type='int' info='1 if true 0 otherwise'/>
      <arg name='code' type='int' info='UCS code point'/>
    </function>
    <function name='xmlUCSIsSupplementalArrowsA' file='xmlunicode' module='xmlunicode'>
      <cond>defined(LIBXML_UNICODE_ENABLED)</cond>
      <info>Check whether the character is part of SupplementalArrows-A UCS Block</info>
      <return type='int' info='1 if true 0 otherwise'/>
      <arg name='code' type='int' info='UCS code point'/>
    </function>
    <function name='xmlUCSIsSupplementalArrowsB' file='xmlunicode' module='xmlunicode'>
      <cond>defined(LIBXML_UNICODE_ENABLED)</cond>
      <info>Check whether the character is part of SupplementalArrows-B UCS Block</info>
      <return type='int' info='1 if true 0 otherwise'/>
      <arg name='code' type='int' info='UCS code point'/>
    </function>
    <function name='xmlUCSIsSupplementalMathematicalOperators' file='xmlunicode' module='xmlunicode'>
      <cond>defined(LIBXML_UNICODE_ENABLED)</cond>
      <info>Check whether the character is part of SupplementalMathematicalOperators UCS Block</info>
      <return type='int' info='1 if true 0 otherwise'/>
      <arg name='code' type='int' info='UCS code point'/>
    </function>
    <function name='xmlUCSIsSupplementaryPrivateUseAreaA' file='xmlunicode' module='xmlunicode'>
      <cond>defined(LIBXML_UNICODE_ENABLED)</cond>
      <info>Check whether the character is part of SupplementaryPrivateUseArea-A UCS Block</info>
      <return type='int' info='1 if true 0 otherwise'/>
      <arg name='code' type='int' info='UCS code point'/>
    </function>
    <function name='xmlUCSIsSupplementaryPrivateUseAreaB' file='xmlunicode' module='xmlunicode'>
      <cond>defined(LIBXML_UNICODE_ENABLED)</cond>
      <info>Check whether the character is part of SupplementaryPrivateUseArea-B UCS Block</info>
      <return type='int' info='1 if true 0 otherwise'/>
      <arg name='code' type='int' info='UCS code point'/>
    </function>
    <function name='xmlUCSIsSyriac' file='xmlunicode' module='xmlunicode'>
      <cond>defined(LIBXML_UNICODE_ENABLED)</cond>
      <info>Check whether the character is part of Syriac UCS Block</info>
      <return type='int' info='1 if true 0 otherwise'/>
      <arg name='code' type='int' info='UCS code point'/>
    </function>
    <function name='xmlUCSIsTagalog' file='xmlunicode' module='xmlunicode'>
      <cond>defined(LIBXML_UNICODE_ENABLED)</cond>
      <info>Check whether the character is part of Tagalog UCS Block</info>
      <return type='int' info='1 if true 0 otherwise'/>
      <arg name='code' type='int' info='UCS code point'/>
    </function>
    <function name='xmlUCSIsTagbanwa' file='xmlunicode' module='xmlunicode'>
      <cond>defined(LIBXML_UNICODE_ENABLED)</cond>
      <info>Check whether the character is part of Tagbanwa UCS Block</info>
      <return type='int' info='1 if true 0 otherwise'/>
      <arg name='code' type='int' info='UCS code point'/>
    </function>
    <function name='xmlUCSIsTags' file='xmlunicode' module='xmlunicode'>
      <cond>defined(LIBXML_UNICODE_ENABLED)</cond>
      <info>Check whether the character is part of Tags UCS Block</info>
      <return type='int' info='1 if true 0 otherwise'/>
      <arg name='code' type='int' info='UCS code point'/>
    </function>
    <function name='xmlUCSIsTaiLe' file='xmlunicode' module='xmlunicode'>
      <cond>defined(LIBXML_UNICODE_ENABLED)</cond>
      <info>Check whether the character is part of TaiLe UCS Block</info>
      <return type='int' info='1 if true 0 otherwise'/>
      <arg name='code' type='int' info='UCS code point'/>
    </function>
    <function name='xmlUCSIsTaiXuanJingSymbols' file='xmlunicode' module='xmlunicode'>
      <cond>defined(LIBXML_UNICODE_ENABLED)</cond>
      <info>Check whether the character is part of TaiXuanJingSymbols UCS Block</info>
      <return type='int' info='1 if true 0 otherwise'/>
      <arg name='code' type='int' info='UCS code point'/>
    </function>
    <function name='xmlUCSIsTamil' file='xmlunicode' module='xmlunicode'>
      <cond>defined(LIBXML_UNICODE_ENABLED)</cond>
      <info>Check whether the character is part of Tamil UCS Block</info>
      <return type='int' info='1 if true 0 otherwise'/>
      <arg name='code' type='int' info='UCS code point'/>
    </function>
    <function name='xmlUCSIsTelugu' file='xmlunicode' module='xmlunicode'>
      <cond>defined(LIBXML_UNICODE_ENABLED)</cond>
      <info>Check whether the character is part of Telugu UCS Block</info>
      <return type='int' info='1 if true 0 otherwise'/>
      <arg name='code' type='int' info='UCS code point'/>
    </function>
    <function name='xmlUCSIsThaana' file='xmlunicode' module='xmlunicode'>
      <cond>defined(LIBXML_UNICODE_ENABLED)</cond>
      <info>Check whether the character is part of Thaana UCS Block</info>
      <return type='int' info='1 if true 0 otherwise'/>
      <arg name='code' type='int' info='UCS code point'/>
    </function>
    <function name='xmlUCSIsThai' file='xmlunicode' module='xmlunicode'>
      <cond>defined(LIBXML_UNICODE_ENABLED)</cond>
      <info>Check whether the character is part of Thai UCS Block</info>
      <return type='int' info='1 if true 0 otherwise'/>
      <arg name='code' type='int' info='UCS code point'/>
    </function>
    <function name='xmlUCSIsTibetan' file='xmlunicode' module='xmlunicode'>
      <cond>defined(LIBXML_UNICODE_ENABLED)</cond>
      <info>Check whether the character is part of Tibetan UCS Block</info>
      <return type='int' info='1 if true 0 otherwise'/>
      <arg name='code' type='int' info='UCS code point'/>
    </function>
    <function name='xmlUCSIsUgaritic' file='xmlunicode' module='xmlunicode'>
      <cond>defined(LIBXML_UNICODE_ENABLED)</cond>
      <info>Check whether the character is part of Ugaritic UCS Block</info>
      <return type='int' info='1 if true 0 otherwise'/>
      <arg name='code' type='int' info='UCS code point'/>
    </function>
    <function name='xmlUCSIsUnifiedCanadianAboriginalSyllabics' file='xmlunicode' module='xmlunicode'>
      <cond>defined(LIBXML_UNICODE_ENABLED)</cond>
      <info>Check whether the character is part of UnifiedCanadianAboriginalSyllabics UCS Block</info>
      <return type='int' info='1 if true 0 otherwise'/>
      <arg name='code' type='int' info='UCS code point'/>
    </function>
    <function name='xmlUCSIsVariationSelectors' file='xmlunicode' module='xmlunicode'>
      <cond>defined(LIBXML_UNICODE_ENABLED)</cond>
      <info>Check whether the character is part of VariationSelectors UCS Block</info>
      <return type='int' info='1 if true 0 otherwise'/>
      <arg name='code' type='int' info='UCS code point'/>
    </function>
    <function name='xmlUCSIsVariationSelectorsSupplement' file='xmlunicode' module='xmlunicode'>
      <cond>defined(LIBXML_UNICODE_ENABLED)</cond>
      <info>Check whether the character is part of VariationSelectorsSupplement UCS Block</info>
      <return type='int' info='1 if true 0 otherwise'/>
      <arg name='code' type='int' info='UCS code point'/>
    </function>
    <function name='xmlUCSIsYiRadicals' file='xmlunicode' module='xmlunicode'>
      <cond>defined(LIBXML_UNICODE_ENABLED)</cond>
      <info>Check whether the character is part of YiRadicals UCS Block</info>
      <return type='int' info='1 if true 0 otherwise'/>
      <arg name='code' type='int' info='UCS code point'/>
    </function>
    <function name='xmlUCSIsYiSyllables' file='xmlunicode' module='xmlunicode'>
      <cond>defined(LIBXML_UNICODE_ENABLED)</cond>
      <info>Check whether the character is part of YiSyllables UCS Block</info>
      <return type='int' info='1 if true 0 otherwise'/>
      <arg name='code' type='int' info='UCS code point'/>
    </function>
    <function name='xmlUCSIsYijingHexagramSymbols' file='xmlunicode' module='xmlunicode'>
      <cond>defined(LIBXML_UNICODE_ENABLED)</cond>
      <info>Check whether the character is part of YijingHexagramSymbols UCS Block</info>
      <return type='int' info='1 if true 0 otherwise'/>
      <arg name='code' type='int' info='UCS code point'/>
    </function>
    <function name='xmlURIEscape' file='uri' module='uri'>
      <info>Escaping routine, does not do validity checks ! It will try to escape the chars needing this, but this is heuristic based it&apos;s impossible to be sure.</info>
      <return type='xmlChar *' info='an copy of the string, but escaped  25 May 2001 Uses xmlParseURI and xmlURIEscapeStr to try to escape correctly according to RFC2396. - Carl Douglas'/>
      <arg name='str' type='const xmlChar *' info='the string of the URI to escape'/>
    </function>
    <function name='xmlURIEscapeStr' file='uri' module='uri'>
      <info>This routine escapes a string to hex, ignoring reserved characters (a-z) and the characters in the exception list.</info>
      <return type='xmlChar *' info='a new escaped string or NULL in case of error.'/>
      <arg name='str' type='const xmlChar *' info='string to escape'/>
      <arg name='list' type='const xmlChar *' info='exception list string of chars not to escape'/>
    </function>
    <function name='xmlURIUnescapeString' file='uri' module='uri'>
      <info>Unescaping routine, but does not check that the string is an URI. The output is a direct unsigned char translation of %XX values (no encoding) Note that the length of the result can only be smaller or same size as the input string.</info>
      <return type='char *' info='a copy of the string, but unescaped, will return NULL only in case of error'/>
      <arg name='str' type='const char *' info='the string to unescape'/>
      <arg name='len' type='int' info='the length in bytes to unescape (or &lt;= 0 to indicate full string)'/>
      <arg name='target' type='char *' info='optional destination buffer'/>
    </function>
    <function name='xmlUTF8Charcmp' file='xmlstring' module='xmlstring'>
      <info>compares the two UCS4 values</info>
      <return type='int' info='result of the compare as with xmlStrncmp'/>
      <arg name='utf1' type='const xmlChar *' info='pointer to first UTF8 char'/>
      <arg name='utf2' type='const xmlChar *' info='pointer to second UTF8 char'/>
    </function>
    <function name='xmlUTF8Size' file='xmlstring' module='xmlstring'>
      <info>calculates the internal size of a UTF8 character</info>
      <return type='int' info='the numbers of bytes in the character, -1 on format error'/>
      <arg name='utf' type='const xmlChar *' info='pointer to the UTF8 character'/>
    </function>
    <function name='xmlUTF8Strlen' file='xmlstring' module='xmlstring'>
      <info>compute the length of an UTF8 string, it doesn&apos;t do a full UTF8 checking of the content of the string.</info>
      <return type='int' info='the number of characters in the string or -1 in case of error'/>
      <arg name='utf' type='const xmlChar *' info='a sequence of UTF-8 encoded bytes'/>
    </function>
    <function name='xmlUTF8Strloc' file='xmlstring' module='xmlstring'>
      <info>a function to provide the relative location of a UTF8 char</info>
      <return type='int' info='the relative character position of the desired char or -1 if not found'/>
      <arg name='utf' type='const xmlChar *' info='the input UTF8 *'/>
      <arg name='utfchar' type='const xmlChar *' info='the UTF8 character to be found'/>
    </function>
    <function name='xmlUTF8Strndup' file='xmlstring' module='xmlstring'>
      <info>a strndup for array of UTF8&apos;s</info>
      <return type='xmlChar *' info='a new UTF8 * or NULL'/>
      <arg name='utf' type='const xmlChar *' info='the input UTF8 *'/>
      <arg name='len' type='int' info='the len of @utf (in chars)'/>
    </function>
    <function name='xmlUTF8Strpos' file='xmlstring' module='xmlstring'>
      <info>a function to provide the equivalent of fetching a character from a string array</info>
      <return type='const xmlChar *' info='a pointer to the UTF8 character or NULL'/>
      <arg name='utf' type='const xmlChar *' info='the input UTF8 *'/>
      <arg name='pos' type='int' info='the position of the desired UTF8 char (in chars)'/>
    </function>
    <function name='xmlUTF8Strsize' file='xmlstring' module='xmlstring'>
      <info>storage size of an UTF8 string the behaviour is not guaranteed if the input string is not UTF-8</info>
      <return type='int' info='the storage size of the first &apos;len&apos; characters of ARRAY'/>
      <arg name='utf' type='const xmlChar *' info='a sequence of UTF-8 encoded bytes'/>
      <arg name='len' type='int' info='the number of characters in the array'/>
    </function>
    <function name='xmlUTF8Strsub' file='xmlstring' module='xmlstring'>
      <info>Create a substring from a given UTF-8 string Note:  positions are given in units of UTF-8 chars</info>
      <return type='xmlChar *' info='a pointer to a newly created string or NULL if any problem'/>
      <arg name='utf' type='const xmlChar *' info='a sequence of UTF-8 encoded bytes'/>
      <arg name='start' type='int' info='relative pos of first char'/>
      <arg name='len' type='int' info='total number to copy'/>
    </function>
    <function name='xmlUnlinkNode' file='tree' module='tree'>
      <info>Unlink a node from it&apos;s current context, the node is not freed If one need to free the node, use xmlFreeNode() routine after the unlink to discard it. Note that namespace nodes can&apos;t be unlinked as they do not have pointer to their parent.</info>
      <return type='void'/>
      <arg name='cur' type='xmlNodePtr' info='the node'/>
    </function>
    <function name='xmlUnlockLibrary' file='threads' module='threads'>
      <info>xmlUnlockLibrary() is used to release a re-entrant lock on the libxml2 library.</info>
      <return type='void'/>
    </function>
    <function name='xmlUnsetNsProp' file='tree' module='tree'>
      <cond>defined(LIBXML_TREE_ENABLED) || defined(LIBXML_SCHEMAS_ENABLED)</cond>
      <info>Remove an attribute carried by a node.</info>
      <return type='int' info='0 if successful, -1 if not found'/>
      <arg name='node' type='xmlNodePtr' info='the node'/>
      <arg name='ns' type='xmlNsPtr' info='the namespace definition'/>
      <arg name='name' type='const xmlChar *' info='the attribute name'/>
    </function>
    <function name='xmlUnsetProp' file='tree' module='tree'>
      <cond>defined(LIBXML_TREE_ENABLED) || defined(LIBXML_SCHEMAS_ENABLED)</cond>
      <info>Remove an attribute carried by a node. This handles only attributes in no namespace.</info>
      <return type='int' info='0 if successful, -1 if not found'/>
      <arg name='node' type='xmlNodePtr' info='the node'/>
      <arg name='name' type='const xmlChar *' info='the attribute name'/>
    </function>
    <function name='xmlValidBuildContentModel' file='valid' module='valid'>
      <cond>defined(LIBXML_VALID_ENABLED) &amp;&amp; defined(LIBXML_REGEXP_ENABLED)</cond>
      <info>(Re)Build the automata associated to the content model of this element</info>
      <return type='int' info='1 in case of success, 0 in case of error'/>
      <arg name='ctxt' type='xmlValidCtxtPtr' info='a validation context'/>
      <arg name='elem' type='xmlElementPtr' info='an element declaration node'/>
    </function>
    <function name='xmlValidCtxtNormalizeAttributeValue' file='valid' module='valid'>
      <cond>defined(LIBXML_VALID_ENABLED)</cond>
      <info>Does the validation related extra step of the normalization of attribute values:  If the declared value is not CDATA, then the XML processor must further process the normalized attribute value by discarding any leading and trailing space (#x20) characters, and by replacing sequences of space (#x20) characters by single space (#x20) character.  Also  check VC: Standalone Document Declaration in P32, and update ctxt-&gt;valid accordingly</info>
      <return type='xmlChar *' info='a new normalized string if normalization is needed, NULL otherwise the caller must free the returned value.'/>
      <arg name='ctxt' type='xmlValidCtxtPtr' info='the validation context or NULL'/>
      <arg name='doc' type='xmlDocPtr' info='the document'/>
      <arg name='elem' type='xmlNodePtr' info='the parent'/>
      <arg name='name' type='const xmlChar *' info='the attribute name'/>
      <arg name='value' type='const xmlChar *' info='the attribute value'/>
    </function>
    <function name='xmlValidGetPotentialChildren' file='valid' module='valid'>
      <cond>defined(LIBXML_VALID_ENABLED)</cond>
      <info>Build/extend a list of  potential children allowed by the content tree</info>
      <return type='int' info='the number of element in the list, or -1 in case of error.'/>
      <arg name='ctree' type='xmlElementContent *' info='an element content tree'/>
      <arg name='names' type='const xmlChar **' info='an array to store the list of child names'/>
      <arg name='len' type='int *' info='a pointer to the number of element in the list'/>
      <arg name='max' type='int' info='the size of the array'/>
    </function>
    <function name='xmlValidGetValidElements' file='valid' module='valid'>
      <cond>defined(LIBXML_VALID_ENABLED)</cond>
      <info>This function returns the list of authorized children to insert within an existing tree while respecting the validity constraints forced by the Dtd. The insertion point is defined using @prev and @next in the following ways: to insert before &apos;node&apos;: xmlValidGetValidElements(node-&gt;prev, node, ... to insert next &apos;node&apos;: xmlValidGetValidElements(node, node-&gt;next, ... to replace &apos;node&apos;: xmlValidGetValidElements(node-&gt;prev, node-&gt;next, ... to prepend a child to &apos;node&apos;: xmlValidGetValidElements(NULL, node-&gt;childs, to append a child to &apos;node&apos;: xmlValidGetValidElements(node-&gt;last, NULL, ...  pointers to the element names are inserted at the beginning of the array and do not need to be freed.</info>
      <return type='int' info='the number of element in the list, or -1 in case of error. If the function returns the value @max the caller is invited to grow the receiving array and retry.'/>
      <arg name='prev' type='xmlNode *' info='an element to insert after'/>
      <arg name='next' type='xmlNode *' info='an element to insert next'/>
      <arg name='names' type='const xmlChar **' info='an array to store the list of child names'/>
      <arg name='max' type='int' info='the size of the array'/>
    </function>
    <function name='xmlValidNormalizeAttributeValue' file='valid' module='valid'>
      <cond>defined(LIBXML_VALID_ENABLED)</cond>
      <info>Does the validation related extra step of the normalization of attribute values:  If the declared value is not CDATA, then the XML processor must further process the normalized attribute value by discarding any leading and trailing space (#x20) characters, and by replacing sequences of space (#x20) characters by single space (#x20) character.</info>
      <return type='xmlChar *' info='a new normalized string if normalization is needed, NULL otherwise the caller must free the returned value.'/>
      <arg name='doc' type='xmlDocPtr' info='the document'/>
      <arg name='elem' type='xmlNodePtr' info='the parent'/>
      <arg name='name' type='const xmlChar *' info='the attribute name'/>
      <arg name='value' type='const xmlChar *' info='the attribute value'/>
    </function>
    <function name='xmlValidateAttributeDecl' file='valid' module='valid'>
      <cond>defined(LIBXML_VALID_ENABLED)</cond>
      <info>Try to validate a single attribute definition basically it does the following checks as described by the XML-1.0 recommendation: - [ VC: Attribute Default Legal ] - [ VC: Enumeration ] - [ VC: ID Attribute Default ]  The ID/IDREF uniqueness and matching are done separately</info>
      <return type='int' info='1 if valid or 0 otherwise'/>
      <arg name='ctxt' type='xmlValidCtxtPtr' info='the validation context'/>
      <arg name='doc' type='xmlDocPtr' info='a document instance'/>
      <arg name='attr' type='xmlAttributePtr' info='an attribute definition'/>
    </function>
    <function name='xmlValidateAttributeValue' file='valid' module='valid'>
      <cond>defined(LIBXML_VALID_ENABLED)</cond>
      <info>Validate that the given attribute value match  the proper production  [ VC: ID ] Values of type ID must match the Name production....  [ VC: IDREF ] Values of type IDREF must match the Name production, and values of type IDREFS must match Names ...  [ VC: Entity Name ] Values of type ENTITY must match the Name production, values of type ENTITIES must match Names ...  [ VC: Name Token ] Values of type NMTOKEN must match the Nmtoken production; values of type NMTOKENS must match Nmtokens.</info>
      <return type='int' info='1 if valid or 0 otherwise'/>
      <arg name='type' type='xmlAttributeType' info='an attribute type'/>
      <arg name='value' type='const xmlChar *' info='an attribute value'/>
    </function>
    <function name='xmlValidateDocument' file='valid' module='valid'>
      <cond>defined(LIBXML_VALID_ENABLED)</cond>
      <info>Try to validate the document instance  basically it does the all the checks described by