### ----------------------------------------------------
### -- LibXSLT
### -- Licenses: Artistic-2.0
### -- Authors: David Warring
### -- File: etc/libxslt-api.xml
### ----------------------------------------------------
### -- Chunk 3 of 8
Ptr' file='xsltInternals' type='xsltDecimalFormat *'/>
    <struct name='xsltDocument' file='xsltInternals' type='struct _xsltDocument'>
      <field name='next' type='struct _xsltDocument *' info=' documents are kept in a chained list'/>
      <field name='main' type='int' info=' is this the main document'/>
      <field name='doc' type='xmlDocPtr' info=' the parsed document'/>
      <field name='keys' type='void *' info=' key tables storage'/>
      <field name='includes' type='struct _xsltDocument *' info=' subsidiary includes'/>
      <field name='preproc' type='int' info=' pre-processing already done'/>
      <field name='nbKeysComputed' type='int' info=''/>
    </struct>
    <typedef name='xsltDocumentPtr' file='xsltInternals' type='xsltDocument *'/>
    <struct name='xsltEffectiveNs' file='xsltInternals' type='struct _xsltEffectiveNs'>
      <field name='nextInStore' type='xsltEffectiveNsPtr' info=' storage next'/>
      <field name='next' type='xsltEffectiveNsPtr' info=' next item in the list'/>
      <field name='prefix' type='const xmlChar *' info=''/>
      <field name='nsName' type='const xmlChar *' info='* Indicates if eclared on the literal result element; dunno if really
* needed.
*'/>
      <field name='holdByElem' type='int' info=''/>
    </struct>
    <typedef name='xsltEffectiveNsPtr' file='xsltInternals' type='xsltEffectiveNs *'/>
    <struct name='xsltElemPreComp' file='xsltInternals' type='struct _xsltElemPreComp'>
      <field name='next' type='xsltElemPreCompPtr' info=' next item in the global chained
list held by xsltStylesheet.'/>
      <field name='type' type='xsltStyleType' info=' type of the element'/>
      <field name='func' type='xsltTransformFunction' info=' handling function'/>
      <field name='inst' type='xmlNodePtr' info=' the node in the stylesheet&apos;s tree
corresponding to this item end of common part'/>
      <field name='free' type='xsltElemPreCompDeallocator' info=' the deallocator'/>
    </struct>
    <typedef name='xsltElemPreCompPtr' file='xsltInternals' type='xsltElemPreComp *'/>
    <typedef name='xsltErrorSeverityType' file='xsltInternals' type='enum'/>
    <struct name='xsltFormatNumberInfo' file='numbersInternals' type='struct _xsltFormatNumberInfo'>
      <field name='integer_hash' type='int' info=' Number of &apos;#&apos; in integer part'/>
      <field name='integer_digits' type='int' info=' Number of &apos;0&apos; in integer part'/>
      <field name='frac_digits' type='int' info=' Number of &apos;0&apos; in fractional part'/>
      <field name='frac_hash' type='int' info=' Number of &apos;#&apos; in fractional part'/>
      <field name='group' type='int' info=' Number of chars per display &apos;group&apos;'/>
      <field name='multiplier' type='int' info=' Scaling for percent or permille'/>
      <field name='add_decimal' type='char' info=' Flag for whether decimal point appears in pattern'/>
      <field name='is_multiplier_set' type='char' info=' Flag to catch multiple occurences of percent/permille'/>
      <field name='is_negative_pattern' type='char' info=' Flag for processing -ve prefix/suffix'/>
    </struct>
    <typedef name='xsltFormatNumberInfoPtr' file='numbersInternals' type='xsltFormatNumberInfo *'/>
    <struct name='xsltKeyDef' file='xsltInternals' type='struct _xsltKeyDef'>
      <field name='next' type='struct _xsltKeyDef *' info=''/>
      <field name='inst' type='xmlNodePtr' info=''/>
      <field name='name' type='xmlChar *' info=''/>
      <field name='nameURI' type='xmlChar *' info=''/>
      <field name='match' type='xmlChar *' info=''/>
      <field name='use' type='xmlChar *' info=''/>
      <field name='comp' type='xmlXPathCompExprPtr' info=''/>
      <field name='usecomp' type='xmlXPathCompExprPtr' info=''/>
      <field name='nsList' type='xmlNsPtr *' info=' the namespaces in scope'/>
      <field name='nsNr' type='int' info=' the number of namespaces in scope'/>
    </struct>
    <typedef name='xsltKeyDefPtr' file='xsltInternals' type='xsltKeyDef *'/>
    <struct name='xsltKeyTable' file='xsltInternals' type='struct _xsltKeyTable'>
      <field name='next' type='struct _xsltKeyTable *' info=''/>
      <field name='name' type='xmlChar *' info=''/>
      <field name='nameURI' type='xmlChar *' info=''/>
      <field name='keys' type='xmlHashTablePtr' info=''/>
    </struct>
    <typedef name='xsltKeyTablePtr' file='xsltInternals' type='xsltKeyTable *'/>
    <typedef name='xsltLoadType' file='documents' type='enum'/>
    <typedef name='xsltLocale' file='xsltlocale' type='void *'/>
    <typedef name='xsltLocaleChar' file='xsltlocale' type='xmlChar'/>
    <struct name='xsltNsAlias' file='xsltInternals' type='struct _xsltNsAlias'>
      <field name='next' type='xsltNsAliasPtr' info=' next in the list'/>
      <field name='literalNs' type='xmlNsPtr' info=''/>
      <field name='targetNs' type='xmlNsPtr' info=''/>
      <field name='docOfTargetNs' type='xmlDocPtr' info=''/>
    </struct>
    <typedef name='xsltNsAliasPtr' file='xsltInternals' type='xsltNsAlias *'/>
    <struct name='xsltNsList' file='xsltInternals' type='struct _xsltNsList'>
      <field name='next' type='xsltNsListPtr' info=' next in the list'/>
      <field name='ns' type='xmlNsPtr' info=''/>
    </struct>
    <struct name='xsltNsListContainer' file='xsltInternals' type='struct _xsltNsListContainer'>
      <field name='list' type='xmlNsPtr *' info=''/>
      <field name='totalNumber' type='int' info=''/>
      <field name='xpathNumber' type='int' info=''/>
    </struct>
    <typedef name='xsltNsListContainerPtr' file='xsltInternals' type='xsltNsListContainer *'/>
    <typedef name='xsltNsListPtr' file='xsltInternals' type='xsltNsList *'/>
    <struct name='xsltNsMap' file='xsltInternals' type='struct _xsltNsMap'>
      <field name='next' type='xsltNsMapPtr' info=' next in the list'/>
      <field name='doc' type='xmlDocPtr' info=''/>
      <field name='elem' type='xmlNodePtr' info=' the element holding the ns-decl'/>
      <field name='ns' type='xmlNsPtr' info=' the xmlNs structure holding the XML namespace name'/>
      <field name='origNsName' type='const xmlChar *' info=' the original XML namespace name'/>
      <field name='newNsName' type='const xmlChar *' info=' the mapped XML namespace name'/>
    </struct>
    <typedef name='xsltNsMapPtr' file='xsltInternals' type='xsltNsMap *'/>
    <struct name='xsltNumberData' file='numbersInternals' type='struct _xsltNumberData'>
      <field name='level' type='const xmlChar *' info=''/>
      <field name='count' type='const xmlChar *' info=''/>
      <field name='from' type='const xmlChar *' info=''/>
      <field name='value' type='const xmlChar *' info=''/>
      <field name='format' type='const xmlChar *' info=''/>
      <field name='has_format' type='int' info=''/>
      <field name='digitsPerGroup' type='int' info=''/>
      <field name='groupingCharacter' type='int' info=''/>
      <field name='groupingCharacterLen' type='int' info=''/>
      <field name='doc' type='xmlDocPtr' info=''/>
      <field name='node' type='xmlNodePtr' info=''/>
      <field name='countPat' type='struct _xsltCompMatch *' info=''/>
      <field name='fromPat' type='struct _xsltCompMatch *' info='* accelerators
*'/>
    </struct>
    <typedef name='xsltNumberDataPtr' file='numbersInternals' type='xsltNumberData *'/>
    <typedef name='xsltOutputType' file='xsltInternals' type='enum'/>
    <struct name='xsltPointerList' file='xsltInternals' type='struct _xsltPointerList'>
      <field name='items' type='void **' info=''/>
      <field name='number' type='int' info=''/>
      <field name='size' type='int' info=''/>
    </struct>
    <typedef name='xsltPointerListPtr' file='xsltInternals' type='xsltPointerList *'/>
    <struct name='xsltPrincipalStylesheetData' file='xsltInternals' type='struct _xsltPrincipalStylesheetData'>
      <field name='namespaceDict' type='xmlDictPtr' info='* Global list of in-scope namespaces.
*'/>
      <field name='inScopeNamespaces' type='xsltPointerListPtr' info='* Global list of information for [xsl:]excluded-result-prefixes.
*'/>
      <field name='exclResultNamespaces' type='xsltPointerListPtr' info='* Global list of information for [xsl:]extension-element-prefixes.
*'/>
      <field name='extElemNamespaces' type='xsltPointerListPtr' info=''/>
      <field name='effectiveNs' type='xsltEffectiveNsPtr' info='* Namespace name map to get rid of string comparison of namespace names.
*'/>
      <field name='nsMap' type='xsltNsMapPtr' info=''/>
    </struct>
    <typedef name='xsltPrincipalStylesheetDataPtr' file='xsltInternals' type='xsltPrincipalStylesheetData *'/>
    <struct name='xsltRuntimeExtra' file='xsltInternals' type='struct _xsltRuntimeExtra'>
      <field name='info' type='void *' info=' pointer to the extra data'/>
      <field name='deallocate' type='xmlFreeFunc' info=' pointer to the deallocation routine'/>
    </struct>
    <typedef name='xsltRuntimeExtraPtr' file='xsltInternals' type='xsltRuntimeExtra *'/>
    <typedef name='xsltSecurityOption' file='security' type='enum'/>
    <struct name='xsltSecurityPrefs' file='security' type='struct _xsltSecurityPrefs'/>
    <typedef name='xsltSecurityPrefsPtr' file='security' type='xsltSecurityPrefs *'/>
    <struct name='xsltStackElem' file='xsltInternals' type='struct _xsltStackElem'>
      <field name='next' type='struct _xsltStackElem *' info=' chained list'/>
      <field name='comp' type='xsltStylePreCompPtr' info=' the compiled form'/>
      <field name='computed' type='int' info=' was the evaluation done'/>
      <field name='name' type='const xmlChar *' info=' the local part of the name QName'/>
      <field name='nameURI' type='const xmlChar *' info=' the URI part of the name QName'/>
      <field name='select' type='const xmlChar *' info=' the eval string'/>
      <field name='tree' type='xmlNodePtr' info=' the sequence constructor if no eval
string or the location'/>
      <field name='value' type='xmlXPathObjectPtr' info=' The value if computed'/>
      <field name='fragment' type='xmlDocPtr' info=' The Result Tree Fragments (needed for XSLT 1.0)
which are bound to the variable&apos;s lifetime.'/>
      <field name='level' type='int' info=' the depth in the tree;
-1 if persistent (e.g. a given xsl:with-param)'/>
      <field name='context' type='xsltTransformContextPtr' info=' The transformation context; needed to cache
the variables'/>
      <field name='flags' type='int' info=''/>
    </struct>
    <typedef name='xsltStackElemPtr' file='xsltInternals' type='xsltStackElem *'/>
    <struct name='xsltStyleBasicEmptyItem' file='xsltInternals' type='struct _xsltStyleBasicEmptyItem'>
    </struct>
    <typedef name='xsltStyleBasicEmptyItemPtr' file='xsltInternals' type='xsltStyleBasicEmptyItem *'/>
    <struct name='xsltStyleBasicExpressionItem' file='xsltInternals' type='struct _xsltStyleBasicExpressionItem'>
      <field name='select' type='const xmlChar *' info=' TODO: Change this to &quot;expression&quot;.'/>
      <field name='comp' type='xmlXPathCompExprPtr' info=' TODO: Change this to compExpr.'/>
    </struct>
    <typedef name='xsltStyleBasicExpressionItemPtr' file='xsltInternals' type='xsltStyleBasicExpressionItem *'/>
    <struct name='xsltStyleBasicItemVariable' file='xsltInternals' type='struct _xsltStyleBasicItemVariable'>
      <field name='select' type='const xmlChar *' info=''/>
      <field name='comp' type='xmlXPathCompExprPtr' info=''/>
      <field name='name' type='const xmlChar *' info=''/>
      <field name='has_name' type='int' info=''/>
      <field name='ns' type='const xmlChar *' info=''/>
      <field name='has_ns' type='int' info=''/>
    </struct>
    <typedef name='xsltStyleBasicItemVariablePtr' file='xsltInternals' type='xsltStyleBasicItemVariable *'/>
    <typedef name='xsltStyleItemApplyImports' file='xsltInternals' type='xsltStyleBasicEmptyItem'/>
    <typedef name='xsltStyleItemApplyImportsPtr' file='xsltInternals' type='xsltStyleItemApplyImports *'/>
    <struct name='xsltStyleItemApplyTemplates' file='xsltInternals' type='struct _xsltStyleItemApplyTemplates'>
      <field name='mode' type='const xmlChar *' info=' apply-templates'/>
      <field name='modeURI' type='const xmlChar *' info=' apply-templates'/>
      <field name='select' type='const xmlChar *' info=' sort, copy-of, value-of, apply-templates'/>
      <field name='comp' type='xmlXPathCompExprPtr' info=' a precompiled XPath expression TODO: with-params'/>
    </struct>
    <typedef name='xsltStyleItemApplyTemplatesPtr' file='xsltInternals' type='xsltStyleItemApplyTemplates *'/>
    <struct name='xsltStyleItemAttribute' file='xsltInternals' type='struct _xsltStyleItemAttribute'>
      <field name='name' type='const xmlChar *' info=''/>
      <field name='has_name' type='int' info=''/>
      <field name='ns' type='const xmlChar *' info=''/>
      <field name='nsPrefix' type='const xmlChar *' info=''/>
      <field name='has_ns' type='int' info=''/>
    </struct>
    <typedef name='xsltStyleItemAttributePtr' file='xsltInternals' type='xsltStyleItemAttribute *'/>
    <struct name='xsltStyleItemCallTemplate' file='xsltInternals' type='struct _xsltStyleItemCallTemplate'>
      <field name='templ' type='xsltTemplatePtr' info=' call-template'/>
      <field name='name' type='const xmlChar *' info=' element, attribute, pi'/>
      <field name='has_name' type='int' info=' element, attribute, pi'/>
      <field name='ns' type='const xmlChar *' info=' element'/>
      <field name='has_ns' type='int' info=' element TODO: with-params'/>
    </struct>
    <typedef name='xsltStyleItemCallTemplatePtr' file='xsltInternals' type='xsltStyleItemCallTemplate *'/>
    <typedef name='xsltStyleItemChoose' file='xsltInternals' type='xsltStyleBasicEmptyItem'/>
    <typedef name='xsltStyleItemChoosePtr' file='xsltInternals' type='xsltStyleItemChoose *'/>
    <typedef name='xsltStyleItemComment' file='xsltInternals' type='xsltStyleBasicEmptyItem'/>
    <typedef name='xsltStyleItemCommentPtr' file='xsltInternals' type='xsltStyleItemComment *'/>
    <struct name='xsltStyleItemCopy' file='xsltInternals' type='struct _xsltStyleItemCopy'>
      <field name='use' type='const xmlChar *' info=' copy, element'/>
      <field name='has_use' type='int' info=' copy, element'/>
    </struct>
    <typedef name='xsltStyleItemCopyOf' file='xsltInternals' type='xsltStyleBasicExpressionItem'/>
    <typedef name='xsltStyleItemCopyOfPtr' file='xsltInternals' type='xsltStyleItemCopyOf *'/>
    <typedef name='xsltStyleItemCopyPtr' file='xsltInternals' type='xsltStyleItemCopy *'/>
    <struct name='xsltStyleItemDocument' file='xsltInternals' type='struct _xsltStyleItemDocument'>
      <field name='ver11' type='int' info=' assigned: in xsltDocumentComp;
read: nowhere;
TODO: Check if we need.'/>
      <field name='filename' type='const xmlChar *' info=' document URL'/>
      <field name='has_filename' type='int' info=''/>
    </struct>
    <typedef name='xsltStyleItemDocumentPtr' file='xsltInternals' type='xsltStyleItemDocument *'/>
    <struct name='xsltStyleItemElement' file='xsltInternals' type='struct _xsltStyleItemElement'>
      <field name='use' type='const xmlChar *' info=''/>
      <field name='has_use' type='int' info=''/>
      <field name='name' type='const xmlChar *' info=''/>
      <field name='has_name' type='int' info=''/>
      <field name='ns' type='const xmlChar *' info=''/>
      <field name='nsPrefix' type='const xmlChar *' info=''/>
      <field name='has_ns' type='int' info=''/>
    </struct>
    <typedef name='xsltStyleItemElementPtr' file='xsltInternals' type='xsltStyleItemElement *'/>
    <struct name='xsltStyleItemExtElement' file='xsltInternals' type='struct _xsltStyleItemExtElement'>
      <field name='item' type='xsltElemPreCompPtr' info=''/>
    </struct>
    <typedef name='xsltStyleItemExtElementPtr' file='xsltInternals' type='xsltStyleItemExtElement *'/>
    <typedef name='xsltStyleItemFallback' file='xsltInternals' type='xsltStyleBasicEmptyItem'/>
    <typedef name='xsltStyleItemFallbackPtr' file='xsltInternals' type='xsltStyleItemFallback *'/>
    <typedef name='xsltStyleItemForEach' file='xsltInternals' type='xsltStyleBasicExpressionItem'/>
    <typedef name='xsltStyleItemForEachPtr' file='xsltInternals' type='xsltStyleItemForEach *'/>
    <struct name='xsltStyleItemIf' file='xsltInternals' type='struct _xsltStyleItemIf'>
      <field name='test' type='const xmlChar *' info=' if'/>
      <field name='comp' type='xmlXPathCompExprPtr' info=' a precompiled XPath expression'/>
    </struct>
    <typedef name='xsltStyleItemIfPtr' file='xsltInternals' type='xsltStyleItemIf *'/>
    <struct name='xsltStyleItemInclude' file='xsltInternals' type='struct _xsltStyleItemInclude'>
      <field name='include' type='xsltDocumentPtr' info=''/>
    </struct>
    <typedef name='xsltStyleItemIncludePtr' file='xsltInternals' type='xsltStyleItemInclude *'/>
    <struct name='xsltStyleItemLRElementInfo' file='xsltInternals' type='struct _xsltStyleItemLRElementInfo'>
      <field name='effectiveNs' type='xsltEffectiveNsPtr' info=''/>
    </struct>
    <typedef name='xsltStyleItemLRElementInfoPtr' file='xsltInternals' type='xsltStyleItemLRElementInfo *'/>
    <struct name='xsltStyleItemMessage' file='xsltInternals' type='struct _xsltStyleItemMessage'>
      <field name='terminate' type='int' info=''/>
    </struct>
    <typedef name='xsltStyleItemMessagePtr' file='xsltInternals' type='xsltStyleItemMessage *'/>
    <struct name='xsltStyleItemNumber' file='xsltInternals' type='struct _xsltStyleItemNumber'>
      <field name='numdata' type='xsltNumberData' info=' number'/>
    </struct>
    <typedef name='xsltStyleItemNumberPtr' file='xsltInternals' type='xsltStyleItemNumber *'/>
    <struct name='xsltStyleItemOtherwise' file='xsltInternals' type='struct _xsltStyleItemOtherwise'>
    </struct>
    <typedef name='xsltStyleItemOtherwisePtr' file='xsltInternals' type='xsltStyleItemOtherwise *'/>
    <struct name='xsltStyleItemPI' file='xsltInternals' type='struct _xsltStyleItemPI'>
      <field name='name' type='const xmlChar *' info=''/>
      <field name='has_name' type='int' info=''/>
    </struct>
    <typedef name='xsltStyleItemPIPtr' file='xsltInternals' type='xsltStyleItemPI *'/>
    <struct name='xsltStyleItemParam' file='xsltInternals' type='struct _xsltStyleItemParam'>
      <field name='select' type='const xmlChar *' info=''/>
      <field name='comp' type='xmlXPathCompExprPtr' info=''/>
      <field name='name' type='const xmlChar *' info=''/>
      <field name='has_name' type='int' info=''/>
      <field name='ns' type='const xmlChar *' info=''/>
      <field name='has_ns' type='int' info=''/>
    </struct>
    <typedef name='xsltStyleItemParamPtr' file='xsltInternals' type='xsltStyleItemParam *'/>
    <struct name='xsltStyleItemSort' file='xsltInternals' type='struct _xsltStyleItemSort'>
      <field name='stype' type='const xmlChar *' info=' sort'/>
      <field name='has_stype' type='int' info=' sort'/>
      <field name='number' type='int' info=' sort'/>
      <field name='order' type='const xmlChar *' info=' sort'/>
      <field name='has_order' type='int' info=' sort'/>
      <field name='descending' type='int' info=' sort'/>
      <field name='lang' type='const xmlChar *' info=' sort'/>
      <field name='has_lang' type='int' info=' sort'/>
      <field name='locale' type='xsltLocale' info=' sort'/>
      <field name='case_order' type='const xmlChar *' info=' sort'/>
      <field name='lower_first' type='int' info=' sort'/>
      <field name='use' type='const xmlChar *' info=''/>
      <field name='has_use' type='int' info=''/>
      <field name='select' type='const xmlChar *' info=' sort, copy-of, value-of, apply-templates'/>
      <field name='comp' type='xmlXPathCompExprPtr' info=' a precompiled XPath expression'/>
    </struct>
    <typedef name='xsltStyleItemSortPtr' file='xsltInternals' type='xsltStyleItemSort *'/>
    <struct name='xsltStyleItemText' file='xsltInternals' type='struct _xsltStyleItemText'>
      <field name='noescape' type='int' info=' text'/>
    </struct>
    <typedef name='xsltStyleItemTextPtr' file='xsltInternals' type='xsltStyleItemText *'/>
    <struct name='xsltStyleItemUknown' file='xsltInternals' type='struct _xsltStyleItemUknown'>
    </struct>
    <typedef name='xsltStyleItemUknownPtr' file='xsltInternals' type='xsltStyleItemUknown *'/>
    <struct name='xsltStyleItemValueOf' file='xsltInternals' type='struct _xsltStyleItemValueOf'>
      <field name='select' type='const xmlChar *' info=''/>
      <field name='comp' type='xmlXPathCompExprPtr' info=' a precompiled XPath expression'/>
      <field name='noescape' type='int' info=''/>
    </struct>
    <typedef name='xsltStyleItemValueOfPtr' file='xsltInternals' type='xsltStyleItemValueOf *'/>
    <typedef name='xsltStyleItemVariable' file='xsltInternals' type='xsltStyleBasicItemVariable'/>
    <typedef name='xsltStyleItemVariablePtr' file='xsltInternals' type='xsltStyleItemVariable *'/>
    <struct name='xsltStyleItemWhen' file='xsltInternals' type='struct _xsltStyleItemWhen'>
      <field name='test' type='const xmlChar *' info=''/>
      <field name='comp' type='xmlXPathCompExprPtr' info=''/>
    </struct>
    <typedef name='xsltStyleItemWhenPtr' file='xsltInternals' type='xsltStyleItemWhen *'/>
    <typedef name='xsltStyleItemWithParam' file='xsltInternals' type='xsltStyleBasicItemVariable'/>
    <typedef name='xsltStyleItemWithParamPtr' file='xsltInternals' type='xsltStyleItemWithParam *'/>
    <struct name='xsltStylePreComp' file='xsltInternals' type='struct _xsltStylePreComp'>
      <field name='next' type='xsltElemPreCompPtr' info=' chained list'/>
      <field name='type' type='xsltStyleType' info=' type of the element'/>
      <field name='func' type='xsltTransformFunction' info=' handling function'/>
      <field name='inst' type='xmlNodePtr' info='* Pre computed values.
*'/>
      <field name='stype' type='const xmlChar *' info=' sort'/>
      <field name='has_stype' type='int' info=' sort'/>
      <field name='number' type='int' info=' sort'/>
      <field name='order' type='const xmlChar *' info=' sort'/>
      <field name='has_order' type='int' info=' sort'/>
      <field name='descending' type='int' info=' sort'/>
      <field name='lang' type='const xmlChar *' info=' sort'/>
      <field name='has_lang' type='int' info=' sort'/>
      <field name='locale' type='xsltLocale' info=' sort'/>
      <field name='case_order' type='const xmlChar *' info=' sort'/>
      <field name='lower_first' type='int' info=' sort'/>
      <field name='use' type='const xmlChar *' info=' copy, element'/>
      <field name='has_use' type='int' info=' copy, element'/>
      <field name='noescape' type='int' info=' text'/>
      <field name='name' type='const xmlChar *' info=' element, attribute, pi'/>
      <field name='has_name' type='int' info=' element, attribute, pi'/>
      <field name='ns' type='const xmlChar *' info=' element'/>
      <field name='has_ns' type='int' info=' element'/>
      <field name='mode' type='const xmlChar *' info=' apply-templates'/>
      <field name='modeURI' type='const xmlChar *' info=' apply-templates'/>
      <field name='test' type='const xmlChar *' info=' if'/>
      <field name='templ' type='xsltTemplatePtr' info=' call-template'/>
      <field name='select' type='const xmlChar *' info=' sort, copy-of, value-of, apply-templates'/>
      <field name='ver11' type='int' info=' document'/>
      <field name='filename' type='const xmlChar *' info=' document URL'/>
      <field name='has_filename' type='int' info=' document'/>
      <field name='numdata' type='xsltNumberData' info=' number'/>
      <field name='comp' type='xmlXPathCompExprPtr' info=' a precompiled XPath expression'/>
      <field name='nsList' type='xmlNsPtr *' info=' the namespaces in scope'/>
      <field name='nsNr' type='int' info=' the number of namespaces in scope'/>
    </struct>
    <typedef name='xsltStylePreCompPtr' file='xsltInternals' type='xsltStylePreComp *'/>
    <typedef name='xsltStyleType' file='xsltInternals' type='enum'/>
    <struct name='xsltStylesheet' file='xsltInternals' type='struct _xsltStylesheet'>
      <field name='parent' type='struct _xsltStylesheet *' info=''/>
      <field name='next' type='struct _xsltStylesheet *' info=''/>
      <field name='imports' type='struct _xsltStylesheet *' info=''/>
      <field name='docList' type='xsltDocumentPtr' info='* General data on the style sheet document.
*'/>
      <field name='doc' type='xmlDocPtr' info=' the parsed XML stylesheet'/>
      <field name='stripSpaces' type='xmlHashTablePtr' info=' the hash table of the strip-space and
preserve space elements'/>
      <field name='stripAll' type='int' info=' strip-space * (1) preserve-space * (-1)'/>
      <field name='cdataSection' type='xmlHashTablePtr' info='* Global variable or parameters.
*'/>
      <field name='variables' type='xsltStackElemPtr' info='* Template descriptions.
*'/>
      <field name='templates' type='xsltTemplatePtr' info=' the ordered list of templates'/>
      <field name='templatesHash' type='void *' info=' hash table or wherever compiled templates
information is stored'/>
      <field name='rootMatch' type='void *' info=' template based on /'/>
      <field name='keyMatch' type='void *' info=' template based on key()'/>
      <field name='elemMatch' type='void *' info=' template based on *'/>
      <field name='attrMatch' type='void *' info=' template based on @*'/>
      <field name='parentMatch' type='void *' info=' template based on ..'/>
      <field name='textMatch' type='void *' info=' template based on text()'/>
      <field name='piMatch' type='void *' info=' template based on processing-instruction()'/>
      <field name='commentMatch' type='void *' info='* Namespace aliases.
* NOTE: Not used in the refactored code.
*'/>
      <field name='nsAliases' type='xmlHashTablePtr' info='* Attribute sets.
*'/>
      <field name='attributeSets' type='xmlHashTablePtr' info='* Namespaces.
* TODO: Eliminate this.
*'/>
      <field name='nsHash' type='xmlHashTablePtr' info=' the set of namespaces in use:
ATTENTION: This is used for
execution of XPath expressions; unfortunately
it restricts the stylesheet to have distinct
prefixes.
TODO: We need to get rid of this.
*'/>
      <field name='nsDefs' type='void *' info='* Key definitions.
*'/>
      <field name='keys' type='void *' info='* Output related stuff.
*'/>
      <field name='method' type='xmlChar *' info=' the output method'/>
      <field name='methodURI' type='xmlChar *' info=' associated namespace if any'/>
      <field name='version' type='xmlChar *' info=' version string'/>
      <field name='encoding' type='xmlChar *' info=' encoding string'/>
      <field name='omitXmlDeclaration' type='int' info='* Number formatting.
*'/>
      <field name='decimalFormat' type='xsltDecimalFormatPtr' info=''/>
      <field name='standalone' type='int' info=' standalone = &quot;yes&quot; | &quot;no&quot;'/>
      <field name='doctypePublic' type='xmlChar *' info=' doctype-public string'/>
      <field name='doctypeSystem' type='xmlChar *' info=' doctype-system string'/>
      <field name='indent' type='int' info=' should output being indented'/>
      <field name='mediaType' type='xmlChar *' info='* Precomputed blocks.
*'/>
      <field name='preComps' type='xsltElemPreCompPtr' info=' list of precomputed blocks'/>
      <field name='warnings' type='int' info=' number of warnings found at compilation'/>
      <field name='errors' type='int' info=' number of errors found at compilation'/>
      <field name='exclPrefix' type='xmlChar *' info=' last excluded prefixes'/>
      <field name='exclPrefixTab' type='xmlChar **' info=' array of excluded prefixes'/>
      <field name='exclPrefixNr' type='int' info=' number of excluded prefixes in scope'/>
      <field name='exclPrefixMax' type='int' info=' size of the array'/>
      <field name='_private' type='void *' info='* Extensions.
*'/>
      <field name='extInfos' type='xmlHashTablePtr' info=' the extension data'/>
      <field name='extrasNr' type='int' info='* For keeping track of nested includes
*'/>
      <field name='includes' type='xsltDocumentPtr' info='* dictionary: shared between stylesheet, context and documents.
*'/>
      <field name='dict' type='xmlDictPtr' info='* precompiled attribute value templates.
*'/>
      <field name='attVTs' type='void *' info='* if namespace-alias has an alias for the default stylesheet prefix
* NOTE: Not used in the refactored code.
*'/>
      <field name='defaultAlias' type='const xmlChar *' info='* bypass pre-processing (already done) (used in imports)
*'/>
      <field name='nopreproc' type='int' info='* all document text strings were internalized
*'/>
      <field name='internalized' type='int' info='* Literal Result Element as Stylesheet c.f. section 2.3
*'/>
      <field name='literal_result' type='int' info='* The principal stylesheet
*