blob: c6b17a131ba5bb44306df9b12066215afbead2b4 [file] [log] [blame]
* Summary: the core parser module
* Description: Interfaces, constants and types related to the XML parser
*
* Copy: See Copyright for the status of this software.
*
* Author: Patrick Monnerat <pm@datasphere.ch>, DATASPHERE S.A.
/if not defined(XML_PARSER_H__)
/define XML_PARSER_H__
/include "libxmlrpg/xmlversion"
/include "libxmlrpg/xmlTypesC"
/include "libxmlrpg/tree"
/include "libxmlrpg/dict"
/include "libxmlrpg/hash"
/include "libxmlrpg/valid"
/include "libxmlrpg/entities"
/include "libxmlrpg/xmlerror"
/include "libxmlrpg/xmlstring"
* XML_DEFAULT_VERSION:
*
* The default version of XML used: 1.0
d XML_DEFAULT_VERSION...
d c '1.0'
* xmlParserInput:
*
* An xmlParserInput is an input flow for the XML processor.
* Each entity parsed is associated an xmlParserInput (except the
* few predefined ones). This is the case both for internal entities
* - in which case the flow is already completely in memory - or
* external entities - in which case we use the buf structure for
* progressive reading and I18N conversions to the internal UTF-8 format.
* xmlParserInputDeallocate:
* @str: the string to deallocate
*
* Callback for freeing some parser input allocations.
d xmlParserInputDeallocate...
d s * based(######typedef######)
d procptr
* Input buffer
d xmlParserInput ds based(xmlParserInputPtr)
d align qualified
d buf like(xmlParserInputBufferPtr) UTF-8 encoded buffer
d filename * const char *
d directory * const char *
d base * const char *
d cur * const char *
d end * const char *
d length like(xmlCint) Length if known
d line like(xmlCint) Current line
d col like(xmlCint) Current column
*
* NOTE: consumed is only tested for equality in the parser code,
* so even if there is an overflow this should not give troubles
* for parsing very large instances.
*
d consumed like(xmlCulong) # consumed xmlChars
d free like(xmlParserInputDeallocate) base deallocator
d encoding * const xmlChar *
d version * const xmlChar *
d standalone like(xmlCint) Standalone entity ?
d id like(xmlCint) Entity unique ID
* xmlParserNodeInfo:
*
* The parser can be asked to collect Node information, i.e. at what
* place in the file they were detected.
* NOTE: This is off by default and not very well tested.
d xmlParserNodeInfoPtr...
d s * based(######typedef######)
d xmlParserNodeInfo...
d ds based(xmlParserNodeInfoPtr)
d align qualified
d node like(xmlNodePtr) const
* Position & line # that text that created the node begins & ends on
d begin_pos like(xmlCulong)
d begin_line like(xmlCulong)
d end_pos like(xmlCulong)
d end_line like(xmlCulong)
d xmlParserNodeInfoSeqPtr...
d s * based(######typedef######)
d xmlParserNodeInfoSeq...
d ds based(xmlParserNodeInfoSeqPtr)
d align qualified
d maximum like(xmlCulong)
d length like(xmlCulong)
d buffer like(xmlParserNodeInfoPtr)
* xmlParserInputState:
*
* The parser is now working also as a state based parser.
* The recursive one use the state info for entities processing.
d xmlParserInputState...
d s based(######typedef######)
d like(xmlCenum)
d XML_PARSER_EOF... Nothing to parse
d c -1
d XML_PARSER_START... Nothing parsed
d c 0
d XML_PARSER_MISC... Misc* b4 int subset
d c 1
d XML_PARSER_PI c 2 In proc instr
d XML_PARSER_DTD... In some DTD content
d c 3
d XML_PARSER_PROLOG... Misc* after int sbst
d c 4
d XML_PARSER_COMMENT... Within a comment
d c 5
d XML_PARSER_START_TAG... Within a start tag
d c 6
d XML_PARSER_CONTENT... Within the content
d c 7
d XML_PARSER_CDATA_SECTION... Within a CDATA
d c 8
d XML_PARSER_END_TAG... Within a closing tag
d c 9
d XML_PARSER_ENTITY_DECL... In an entity decl
d c 10
d XML_PARSER_ENTITY_VALUE... In entity decl value
d c 11
d XML_PARSER_ATTRIBUTE_VALUE... In attribute value
d c 12
d XML_PARSER_SYSTEM_LITERAL... In a SYSTEM value
d c 13
d XML_PARSER_EPILOG... Last end tag Misc*
d c 14
d XML_PARSER_IGNORE... In IGNORED section
d c 15
d XML_PARSER_PUBLIC_LITERAL... In a PUBLIC value
d c 16
* XML_DETECT_IDS:
*
* Bit in the loadsubset context field to tell to do ID/REFs lookups.
* Use it to initialize xmlLoadExtDtdDefaultValue.
d XML_DETECT_IDS c 2
* XML_COMPLETE_ATTRS:
*
* Bit in the loadsubset context field to tell to do complete the
* elements attributes lists with the ones defaulted from the DTDs.
* Use it to initialize xmlLoadExtDtdDefaultValue.
d XML_COMPLETE_ATTRS...
d c 4
* XML_SKIP_IDS:
*
* Bit in the loadsubset context field to tell to not do ID/REFs
* registration.
* Used to initialize xmlLoadExtDtdDefaultValue in some special cases.
d XML_SKIP_IDS c 8
* xmlParserMode:
*
* A parser can operate in various modes
d xmlParserMode s based(######typedef######)
d like(xmlCenum)
d XML_PARSE_UNKNOWN...
d c 0
d XML_PARSE_DOM...
d c 1
d XML_PARSE_SAX...
d c 2
d XML_PARSE_PUSH_DOM...
d c 3
d XML_PARSE_PUSH_SAX...
d c 4
d XML_PARSE_READER...
d c 5
* xmlParserCtxt:
*
* The parser context.
* NOTE This doesn't completely define the parser state, the (current ?)
* design of the parser uses recursive function calls since this allow
* and easy mapping from the production rules of the specification
* to the actual code. The drawback is that the actual function call
* also reflect the parser state. However most of the parsing routines
* takes as the only argument the parser context pointer, so migrating
* to a state based parser for progressive parsing shouldn't be too
* hard.
d xmlParserCtxt ds based(xmlParserCtxtPtr)
d align qualified
d sax like(xmlSAXHandlerPtr) The SAX handler
d userData * SAX only-4 DOM build
d myDoc like(xmlDocPtr) Document being built
d wellFormed like(xmlCint) Well formed doc ?
d replaceEntities... Replace entities ?
d like(xmlCint)
d version * const xmlChar *
d encoding * const xmlChar *
d standalone like(xmlCint) Standalone document
d html like(xmlCint) HTML state/type
*
* Input stream stack
*
d input like(xmlParserInputPtr) Current input stream
d inputNr like(xmlCint) # current in streams
d inputMax like(xmlCint) Max # of in streams
d inputTab * xmlParserInputPtr *
*
* Node analysis stack only used for DOM building
*
d node like(xmlNodePtr) Current parsed node
d nodeNr like(xmlCint) Parsing stack depth
d nodeMax like(xmlCint) Max stack depth
d nodeTab * xmlNodePtr *
*
d record_info like(xmlCint) Keep node info ?
d node_seq likeds(xmlParserNodeInfoSeq) Parsed nodes info
*
d errNo like(xmlCint) Error code
*
d hasExternalSubset...
d like(xmlCint)
d hasPErefs like(xmlCint)
d external like(xmlCint) Parsing ext. entity?
*
d valid like(xmlCint) Valid document ?
d validate like(xmlCint) Try to validate ?
d vctxt likeds(xmlValidCtxt) Validity context
*
d instate like(xmlParserInputState) Current input type
d token like(xmlCint) Next look-ahead char
*
d directory * char *
*
* Node name stack
*
d name * const xmlChar *
d nameNr like(xmlCint) Parsing stack depth
d nameMax like(xmlCint) Max stack depth
d nameTab * const xmlChar * *
*
d nbChars like(xmlClong) # xmlChars processed
d checkIndex like(xmlClong) 4 progressive parse
d keepBlanks like(xmlCint) Ugly but ...
d disableSAX like(xmlCint) Disable SAX cllbacks
d inSubset like(xmlCint) In int 1/ext 2 sbset
d intSubName * const xmlChar *
d extSubURI * const xmlChar *
d extSubSytem * const xmlChar *
*
* xml:space values
*
d space * int *
d spaceNr like(xmlCint) Parsing stack depth
d spaceMax like(xmlCint) Max stack depth
d spaceTab * int *
*
d depth like(xmlCint) To detect loops
d entity like(xmlParserInputPtr) To check boundaries
d charset like(xmlCint) In-memory content
d nodelen like(xmlCint) Speed up parsing
d nodemem like(xmlCint) Speed up parsing
d pedantic like(xmlCint) Enb. pedantic warng
d #private * void *
*
d loadsubset like(xmlCint) Load ext. subset ?
d linenumbers like(xmlCint) Set line numbers ?
d catalogs * void *
d recovery like(xmlCint) Run in recovery mode
d progressive like(xmlCint) Progressive parsing?
d dict like(xmlDictPtr) Parser dictionary
d atts * const xmlChar *
d maxatts like(xmlCint) Above array size
d docdict like(xmlCint) Use dictionary ?
*
* pre-interned strings
*
d str_xml * const xmlChar *
d str_xmlns * const xmlChar *
d str_xml_ms * const xmlChar *
*
* Everything below is used only by the new SAX mode
*
d sax2 like(xmlCint) New SAX mode ?
d nsNr like(xmlCint) # inherited nmspaces
d nsMax like(xmlCint) Array size
d nsTab * const xmlChar *
d attallocs * int *
d pushTab * void *
d attsDefault like(xmlHashTablePtr) Defaulted attrs
d attsSpecial like(xmlHashTablePtr) non-CDATA attrs
d nsWellFormed like(xmlCint) Doc namespace OK ?
d options like(xmlCint) Extra options
*
* Those fields are needed only for treaming parsing so far
*
d dictNames like(xmlCint) Dict names in tree ?
d freeElemsNr like(xmlCint) # free element nodes
d freeElems like(xmlNodePtr) Free elem nodes list
d freeAttrsNr like(xmlCint) # free attr. nodes
d freeAttrs like(xmlAttrPtr) Free attr noes list
*
* the complete error information for the last error.
*
d lastError likeds(xmlError)
d parseMode like(xmlParserMode) The parser mode
d nbentities like(xmlCulong) # entity references
d sizeentities like(xmlCulong) Parsed entities size
*
* for use by HTML non-recursive parser
*
d nodeInfo like(xmlParserNodeInfoPtr) Current NodeInfo
d nodeInfoNr like(xmlCint) Parsing stack depth
d nodeInfoMax like(xmlCint) Max stack depth
d nodeInfoTab * xmlParserNodeInfo *
*
d input_id like(xmlCint) Label inputs ?
d sizeentcopy like(xmlCulong) Entity copy volume
* xmlSAXLocator:
*
* A SAX Locator.
d xmlSAXLocator ds based(xmlSAXLocatorPtr)
d align qualified
d getPublicId * procptr
d getSystemId * procptr
d getLineNumber * procptr
d getColumnNumber...
d * procptr
* xmlSAXHandler:
*
* A SAX handler is bunch of callbacks called by the parser when
* processing of the input generate data or structure information.
* resolveEntitySAXFunc:
* @ctx: the user data (XML parser context)
* @publicId: The public ID of the entity
* @systemId: The system ID of the entity
*
* Callback:
* The entity loader, to control the loading of external entities,
* the application can either:
* - override this resolveEntity() callback in the SAX block
* - or better use the xmlSetExternalEntityLoader() function to
* set up it's own entity resolution routine
*
* Returns the xmlParserInputPtr if inlined or NULL for DOM behaviour.
d resolveEntitySAXFunc...
d s * based(######typedef######)
d procptr
* internalSubsetSAXFunc:
* @ctx: the user data (XML parser context)
* @name: the root element name
* @ExternalID: the external ID
* @SystemID: the SYSTEM ID (e.g. filename or URL)
*
* Callback on internal subset declaration.
d internalSubsetSAXFunc...
d s * based(######typedef######)
d procptr
* externalSubsetSAXFunc:
* @ctx: the user data (XML parser context)
* @name: the root element name
* @ExternalID: the external ID
* @SystemID: the SYSTEM ID (e.g. filename or URL)
*
* Callback on external subset declaration.
d externalSubsetSAXFunc...
d s * based(######typedef######)
d procptr
* getEntitySAXFunc:
* @ctx: the user data (XML parser context)
* @name: The entity name
*
* Get an entity by name.
*
* Returns the xmlEntityPtr if found.
d getEntitySAXFunc...
d s * based(######typedef######)
d procptr
* getParameterEntitySAXFunc:
* @ctx: the user data (XML parser context)
* @name: The entity name
*
* Get a parameter entity by name.
*
* Returns the xmlEntityPtr if found.
d getParameterEntitySAXFunc...
d s * based(######typedef######)
d procptr
* entityDeclSAXFunc:
* @ctx: the user data (XML parser context)
* @name: the entity name
* @type: the entity type
* @publicId: The public ID of the entity
* @systemId: The system ID of the entity
* @content: the entity value (without processing).
*
* An entity definition has been parsed.
d entityDeclSAXFunc...
d s * based(######typedef######)
d procptr
* notationDeclSAXFunc:
* @ctx: the user data (XML parser context)
* @name: The name of the notation
* @publicId: The public ID of the entity
* @systemId: The system ID of the entity
*
* What to do when a notation declaration has been parsed.
d notationDeclSAXFunc...
d s * based(######typedef######)
d procptr
* attributeDeclSAXFunc:
* @ctx: the user data (XML parser context)
* @elem: the name of the element
* @fullname: the attribute name
* @type: the attribute type
* @def: the type of default value
* @defaultValue: the attribute default value
* @tree: the tree of enumerated value set
*
* An attribute definition has been parsed.
d attributeDeclSAXFunc...
d s * based(######typedef######)
d procptr
* elementDeclSAXFunc:
* @ctx: the user data (XML parser context)
* @name: the element name
* @type: the element type
* @content: the element value tree
*
* An element definition has been parsed.
d elementDeclSAXFunc...
d s * based(######typedef######)
d procptr
* unparsedEntityDeclSAXFunc:
* @ctx: the user data (XML parser context)
* @name: The name of the entity
* @publicId: The public ID of the entity
* @systemId: The system ID of the entity
* @notationName: the name of the notation
*
* What to do when an unparsed entity declaration is parsed.
d unparsedEntityDeclSAXFunc...
d s * based(######typedef######)
d procptr
* setDocumentLocatorSAXFunc:
* @ctx: the user data (XML parser context)
* @loc: A SAX Locator
*
* Receive the document locator at startup, actually xmlDefaultSAXLocator.
* Everything is available on the context, so this is useless in our case.
d setDocumentLocatorSAXFunc...
d s * based(######typedef######)
d procptr
* startDocumentSAXFunc:
* @ctx: the user data (XML parser context)
*
* Called when the document start being processed.
d startDocumentSAXFunc...
d s * based(######typedef######)
d procptr
* endDocumentSAXFunc:
* @ctx: the user data (XML parser context)
*
* Called when the document end has been detected.
d endDocumentSAXFunc...
d s * based(######typedef######)
d procptr
* startElementSAXFunc:
* @ctx: the user data (XML parser context)
* @name: The element name, including namespace prefix
* @atts: An array of name/value attributes pairs, NULL terminated
*
* Called when an opening tag has been processed.
d startElementSAXFunc...
d s * based(######typedef######)
d procptr
* endElementSAXFunc:
* @ctx: the user data (XML parser context)
* @name: The element name
*
* Called when the end of an element has been detected.
d endElementSAXFunc...
d s * based(######typedef######)
d procptr
* attributeSAXFunc:
* @ctx: the user data (XML parser context)
* @name: The attribute name, including namespace prefix
* @value: The attribute value
*
* Handle an attribute that has been read by the parser.
* The default handling is to convert the attribute into an
* DOM subtree and past it in a new xmlAttr element added to
* the element.
d attributeSAXFunc...
d s * based(######typedef######)
d procptr
* referenceSAXFunc:
* @ctx: the user data (XML parser context)
* @name: The entity name
*
* Called when an entity reference is detected.
d referenceSAXFunc...
d s * based(######typedef######)
d procptr
* charactersSAXFunc:
* @ctx: the user data (XML parser context)
* @ch: a xmlChar string
* @len: the number of xmlChar
*
* Receiving some chars from the parser.
d charactersSAXFunc...
d s * based(######typedef######)
d procptr
* ignorableWhitespaceSAXFunc:
* @ctx: the user data (XML parser context)
* @ch: a xmlChar string
* @len: the number of xmlChar
*
* Receiving some ignorable whitespaces from the parser.
* UNUSED: by default the DOM building will use characters.
d ignorableWhitespaceSAXFunc...
d s * based(######typedef######)
d procptr
* processingInstructionSAXFunc:
* @ctx: the user data (XML parser context)
* @target: the target name
* @data: the PI data's
*
* A processing instruction has been parsed.
d processingInstructionSAXFunc...
d s * based(######typedef######)
d procptr
* commentSAXFunc:
* @ctx: the user data (XML parser context)
* @value: the comment content
*
* A comment has been parsed.
d commentSAXFunc...
d s * based(######typedef######)
d procptr
* cdataBlockSAXFunc:
* @ctx: the user data (XML parser context)
* @value: The pcdata content
* @len: the block length
*
* Called when a pcdata block has been parsed.
d cdataBlockSAXFunc...
d s * based(######typedef######)
d procptr
* warningSAXFunc:
* @ctx: an XML parser context
* @msg: the message to display/transmit
* @...: extra parameters for the message display
*
* Display and format a warning messages, callback.
d warningSAXFunc...
d s * based(######typedef######)
d procptr
* errorSAXFunc:
* @ctx: an XML parser context
* @msg: the message to display/transmit
* @...: extra parameters for the message display
*
* Display and format an error messages, callback.
d errorSAXFunc...
d s * based(######typedef######)
d procptr
* fatalErrorSAXFunc:
* @ctx: an XML parser context
* @msg: the message to display/transmit
* @...: extra parameters for the message display
*
* Display and format fatal error messages, callback.
* Note: so far fatalError() SAX callbacks are not used, error()
* get all the callbacks for errors.
d fatalErrorSAXFunc...
d s * based(######typedef######)
d procptr
* isStandaloneSAXFunc:
* @ctx: the user data (XML parser context)
*
* Is this document tagged standalone?
*
* Returns 1 if true
d isStandaloneSAXFunc...
d s * based(######typedef######)
d procptr
* hasInternalSubsetSAXFunc:
* @ctx: the user data (XML parser context)
*
* Does this document has an internal subset.
*
* Returns 1 if true
d hasInternalSubsetSAXFunc...
d s * based(######typedef######)
d procptr
* hasExternalSubsetSAXFunc:
* @ctx: the user data (XML parser context)
*
* Does this document has an external subset?
*
* Returns 1 if true
d hasExternalSubsetSAXFunc...
d s * based(######typedef######)
d procptr
************************************************************************
* *
* The SAX version 2 API extensions *
* *
************************************************************************
* XML_SAX2_MAGIC:
*
* Special constant found in SAX2 blocks initialized fields
d XML_SAX2_MAGIC c X'DEEDBEAF'
* startElementNsSAX2Func:
* @ctx: the user data (XML parser context)
* @localname: the local name of the element
* @prefix: the element namespace prefix if available
* @URI: the element namespace name if available
* @nb_namespaces: number of namespace definitions on that node
* @namespaces: pointer to the array of prefix/URI pairs namespace
* definitions
* @nb_attributes: the number of attributes on that node
* @nb_defaulted: the number of defaulted attributes. The defaulted
* ones are at the end of the array
* @attributes: pointer to the array of
* (localname/prefix/URI/value/end) attribute values.
*
* SAX2 callback when an element start has been detected by the parser.
* It provides the namespace information for the element, as well as
* the new namespace declarations on the element.
d startElementNsSAX2Func...
d s * based(######typedef######)
d procptr
* endElementNsSAX2Func:
* @ctx: the user data (XML parser context)
* @localname: the local name of the element
* @prefix: the element namespace prefix if available
* @URI: the element namespace name if available
*
* SAX2 callback when an element end has been detected by the parser.
* It provides the namespace information for the element.
d endElementNsSAX2Func...
d s * based(######typedef######)
d procptr
d xmlSAXHandler ds based(xmlSAXHandlerPtr)
d align qualified
d internalSubset...
d like(internalSubsetSAXFunc)
d isStandalone like(isStandaloneSAXFunc)
d hasInternalSubset...
d like(hasInternalSubsetSAXFunc)
d hasExternalSubset...
d like(hasExternalSubsetSAXFunc)
d resolveEntity like(resolveEntitySAXFunc)
d getEntity like(getEntitySAXFunc)
d entityDecl like(entityDeclSAXFunc)
d notationDecl like(notationDeclSAXFunc)
d attributeDecl like(attributeDeclSAXFunc)
d elementDecl like(elementDeclSAXFunc)
d unparsedEntityDecl...
d like(unparsedEntityDeclSAXFunc)
d setDocumentLocator...
d like(setDocumentLocatorSAXFunc)
d startDocument like(startDocumentSAXFunc)
d endDocument like(endDocumentSAXFunc)
d startElement like(startElementSAXFunc)
d endElement like(endElementSAXFunc)
d reference like(referenceSAXFunc)
d characters like(charactersSAXFunc)
d ignorableWhitespace...
d like(ignorableWhitespaceSAXFunc)
d processingInstruction...
d like(processingInstructionSAXFunc)
d comment like(commentSAXFunc)
d warning like(warningSAXFunc)
d error like(errorSAXFunc)
d fatalError like(fatalErrorSAXFunc)
d getParameterEntity...
d like(getParameterEntitySAXFunc)
d cdataBlock like(cdataBlockSAXFunc)
d externalSubset...
d like(externalSubsetSAXFunc)
d initialized like(xmlCuint)
*
* The following fields are extensions available only on version 2
*
d #private * void *
d startElementNs...
d like(startElementNsSAX2Func)
d endELementNs like(endElementNsSAX2Func)
d serror like(xmlStructuredErrorFunc)
* SAX Version 1
d xmlSAXHandlerV1Ptr...
d s * based(######typedef######)
d xmlSAXHandlerV1...
d ds based(xmlSAXHandlerV1Ptr)
d align qualified
d internalSubset...
d like(internalSubsetSAXFunc)
d isStandalone like(isStandaloneSAXFunc)
d hasInternalSubset...
d like(hasInternalSubsetSAXFunc)
d hasExternalSubset...
d like(hasExternalSubsetSAXFunc)
d resolveEntity like(resolveEntitySAXFunc)
d getEntity like(getEntitySAXFunc)
d entityDecl like(entityDeclSAXFunc)
d notationDecl like(notationDeclSAXFunc)
d attributeDecl like(attributeDeclSAXFunc)
d elementDecl like(elementDeclSAXFunc)
d unparsedEntityDecl...
d like(unparsedEntityDeclSAXFunc)
d setDocumentLocator...
d like(setDocumentLocatorSAXFunc)
d startDocument like(startDocumentSAXFunc)
d endDocument like(endDocumentSAXFunc)
d startElement like(startElementSAXFunc)
d endElement like(endElementSAXFunc)
d reference like(referenceSAXFunc)
d characters like(charactersSAXFunc)
d ignorableWhitespace...
d like(ignorableWhitespaceSAXFunc)
d processingInstruction...
d like(processingInstructionSAXFunc)
d comment like(commentSAXFunc)
d warning like(warningSAXFunc)
d error like(errorSAXFunc)
d fatalError like(fatalErrorSAXFunc)
d getParameterEntity...
d like(getParameterEntitySAXFunc)
d cdataBlock like(cdataBlockSAXFunc)
d externalSubset...
d like(externalSubsetSAXFunc)
d initialized like(xmlCuint)
* xmlExternalEntityLoader:
* @URL: The System ID of the resource requested
* @ID: The Public ID of the resource requested
* @context: the XML parser context
*
* External entity loaders types.
*
* Returns the entity input parser.
d xmlExternalEntityLoader...
d s * based(######typedef######)
d procptr
/include "libxmlrpg/encoding"
/include "libxmlrpg/xmlIO"
/include "libxmlrpg/globals"
* Init/Cleanup
d xmlInitParser pr extproc('xmlInitParser')
d xmlCleanupParser...
d pr extproc('xmlCleanupParser')
* Input functions
d xmlParserInputRead...
d pr extproc('xmlParserInputRead')
d like(xmlCint)
d in value like(xmlParserInputPtr)
d len value like(xmlCint)
d xmlParserInputGrow...
d pr extproc('xmlParserInputGrow')
d like(xmlCint)
d in value like(xmlParserInputPtr)
d len value like(xmlCint)
* Basic parsing Interfaces
/if defined(LIBXML_SAX1_ENABLED)
d xmlParseDoc pr extproc('xmlParseDoc')
d like(xmlDocPtr)
d cur * value options(*string) const xmlChar *
d xmlParseFile pr extproc('xmlParseFile')
d like(xmlDocPtr)
d filename * value options(*string) const char *
d xmlParseMemory pr extproc('xmlParseMemory')
d like(xmlDocPtr)
d buffer * value options(*string) const char *
d size value like(xmlCint)
/endif LIBXML_SAX1_ENABLED
d xmlSubstituteEntitiesDefault...
d pr extproc(
d 'xmlSubstituteEntitiesDefault')
d like(xmlCint)
d val value like(xmlCint)
d xmlKeepBlanksDefault...
d pr extproc('xmlKeepBlanksDefault')
d like(xmlCint)
d val value like(xmlCint)
d xmlStopParser pr extproc('xmlStopParser')
d ctxt value like(xmlParserCtxtPtr)
d xmlPedanticParserDefault...
d pr extproc('xmlPedanticParserDefault')
d like(xmlCint)
d val value like(xmlCint)
d xmlLineNumbersDefault...
d pr extproc('xmlLineNumbersDefault')
d like(xmlCint)
d val value like(xmlCint)
/if defined(LIBXML_SAX1_ENABLED)
* Recovery mode
d xmlRecoverDoc pr extproc('xmlRecoverDoc')
d like(xmlDocPtr)
d cur * value options(*string) const xmlChar *
d xmlRecoverMemory...
d pr extproc('xmlRecoverMemory')
d like(xmlDocPtr)
d buffer * value options(*string) const char *
d size value like(xmlCint)
d xmlRecoverFile pr extproc('xmlRecoverFile')
d like(xmlDocPtr)
d filename * value options(*string) const char *
/endif LIBXML_SAX1_ENABLED
* Less common routines and SAX interfaces
d xmlParseDocument...
d pr extproc('xmlParseDocument')
d like(xmlCint)
d ctxt value like(xmlParserCtxtPtr)
d xmlParseExtParsedEnt...
d pr extproc('xmlParseExtParsedEnt')
d like(xmlCint)
d ctxt value like(xmlParserCtxtPtr)
/if defined(LIBXML_SAX1_ENABLED)
d xmlSAXUserParseFile...
d pr extproc('xmlSAXUserParseFile')
d like(xmlCint)
d sax value like(xmlSAXHandlerPtr)
d user_data * value void *
d filename * value options(*string) const char *
d xmlSAXUserParseMemory...
d pr extproc('xmlSAXUserParseMemory')
d like(xmlCint)
d sax value like(xmlSAXHandlerPtr)
d user_data * value void *
d buffer * value options(*string) const char *
d size value like(xmlCint)
d xmlSAXParseDoc pr extproc('xmlSAXParseDoc')
d like(xmlDocPtr)
d sax value like(xmlSAXHandlerPtr)
d cur * value options(*string) const xmlChar *
d recovery value like(xmlCint)
d xmlSAXParseMemory...
d pr extproc('xmlSAXParseMemory')
d like(xmlDocPtr)
d sax value like(xmlSAXHandlerPtr)
d buffer * value options(*string) const char *
d size value like(xmlCint)
d recovery value like(xmlCint)
d xmlSAXParseMemoryWithData...
d pr extproc('xmlSAXParseMemoryWithData')
d like(xmlDocPtr)
d sax value like(xmlSAXHandlerPtr)
d buffer * value options(*string) const char *
d size value like(xmlCint)
d recovery value like(xmlCint)
d data * value void *
d xmlSAXParseFile...
d pr extproc('xmlSAXParseFile')
d like(xmlDocPtr)
d sax value like(xmlSAXHandlerPtr)
d filename * value options(*string) const char *
d recovery value like(xmlCint)
d xmlSAXParseFileWithData...
d pr extproc('xmlSAXParseFileWithData')
d like(xmlDocPtr)
d sax value like(xmlSAXHandlerPtr)
d filename * value options(*string) const char *
d recovery value like(xmlCint)
d data * value void *
d xmlSAXParseEntity...
d pr extproc('xmlSAXParseEntity')
d like(xmlDocPtr)
d sax value like(xmlSAXHandlerPtr)
d filename * value options(*string) const char *
d xmlParseEntity...
d pr extproc('xmlParseEntity')
d like(xmlDocPtr)
d filename * value options(*string) const char *
/endif LIBXML_SAX1_ENABLED
/if defined(LIBXML_VALID_ENABLED)
d xmlSAXParseDTD pr extproc('xmlSAXParseDTD')
d like(xmlDtdPtr)
d sax value like(xmlSAXHandlerPtr)
d ExternalID * value options(*string) const xmlChar *
d SystemID * value options(*string) const xmlChar *
d xmlParseDTD pr extproc('xmlParseDTD')
d like(xmlDtdPtr)
d ExternalID * value options(*string) const xmlChar *
d SystemID * value options(*string) const xmlChar *
d xmlIOParseDTD pr extproc('xmlIOParseDTD')
d like(xmlDtdPtr)
d sax value like(xmlSAXHandlerPtr)
d input value like(xmlParserInputBufferPtr)
d enc value like(xmlCharEncoding)
/endif LIBXML_VALID_ENABLED
/if defined(LIBXML_SAX1_ENABLED)
d xmlParseBalancedChunkMemory...
d pr extproc(
d 'xmlParseBalancedChunkMemory')
d like(xmlCint)
d doc value like(xmlDocPtr)
d sax value like(xmlSAXHandlerPtr)
d user_data * value void *
d depth value like(xmlCint)
d user_data * value void *
d string * value options(*string) const xmlChar *
d lst * value xmlNodePtr *
/endif LIBXML_SAX1_ENABLED
d xmlParseInNodeContext...
d pr extproc('xmlParseInNodeContext')
d like(xmlParserErrors)
d node value like(xmlNodePtr)
d data * value options(*string) const char *
d datalen value like(xmlCint)
d options value like(xmlCint)
d lst * value xmlNodePtr *
/if defined(LIBXML_SAX1_ENABLED)
d xmlParseBalancedChunkMemoryRecover...
d pr extproc(
d 'xmlParseBalancedChunkMemoryRecover')
d like(xmlCint)
d doc value like(xmlDocPtr)
d sax value like(xmlSAXHandlerPtr)
d user_data * value void *
d depth value like(xmlCint)
d string * value options(*string) const xmlChar *
d lst * value xmlNodePtr *
d recover value like(xmlCint)
d xmlParseExternalEntity...
d pr extproc('xmlParseExternalEntity')
d like(xmlCint)
d doc value like(xmlDocPtr)
d sax value like(xmlSAXHandlerPtr)
d user_data * value void *
d depth value like(xmlCint)
d URL * value options(*string) const xmlChar *
d ID * value options(*string) const xmlChar *
d lst * value xmlNodePtr *
/endif LIBXML_SAX1_ENABLED
d xmlParseCtxtExternalEntity...
d pr extproc('xmlParseCtxtExternalEntity')
d like(xmlCint)
d sax value like(xmlSAXHandlerPtr)
d URL * value options(*string) const xmlChar *
d ID * value options(*string) const xmlChar *
d lst * value xmlNodePtr *
* Parser contexts handling.
d xmlNewParserCtxt...
d pr extproc('xmlNewParserCtxt')
d like(xmlParserCtxtPtr)
d xmlInitParserCtxt...
d pr extproc('xmlInitParserCtxt')
d like(xmlCint)
d ctxt value like(xmlParserCtxtPtr)
d xmlClearParserCtxt...
d pr extproc('xmlClearParserCtxt')
d ctxt value like(xmlParserCtxtPtr)
d xmlFreeParserCtxt...
d pr extproc('xmlFreeParserCtxt')
d ctxt value like(xmlParserCtxtPtr)
/if defined(LIBXML_SAX1_ENABLED)
d xmlSetupParserForBuffer...
d pr extproc('xmlSetupParserForBuffer')
d ctxt value like(xmlParserCtxtPtr)
d buffer * value options(*string) const xmlChar *
d filename * value options(*string) const char *
/endif LIBXML_SAX1_ENABLED
d xmlCreateDocParserCtxt...
d pr extproc('xmlCreateDocParserCtxt')
d like(xmlParserCtxtPtr)
d cur * value options(*string) const xmlChar *
/if defined(LIBXML_LEGACY_ENABLED)
* Reading/setting optional parsing features.
d xmlGetFeaturesList...
d pr extproc('xmlGetFeaturesList')
d like(xmlCint)
d len like(xmlCint)
d result * const char *(*)
d xmlGetFeature pr extproc('xmlGetFeature')
d like(xmlCint)
d ctxt value like(xmlParserCtxtPtr)
d name * value options(*string) const char *
d result * value void *
d xmlSetFeature pr extproc('xmlSetFeature')
d like(xmlCint)
d ctxt value like(xmlParserCtxtPtr)
d name * value options(*string) const char *
d result * value void *
/endif LIBXML_LEGACY_ENABLD
/if defined(LIBXML_PUSH_ENABLED)
* Interfaces for the Push mode.
d xmlCreatePushParserCtxt...
d pr extproc('xmlCreatePushParserCtxt')
d like(xmlParserCtxtPtr)
d sax value like(xmlSAXHandlerPtr)
d user_data * value void *
d chunk * value options(*string) const char *
d size value like(xmlCint)
d filename * value options(*string) const char *
d xmlParseChunk pr extproc('xmlParseChunk')
d like(xmlCint)
d ctxt value like(xmlParserCtxtPtr)
d chunk * value options(*string) const char *
d size value like(xmlCint)
d terminate value like(xmlCint)
/endif LIBXML_PUSH_ENABLED
* Special I/O mode.
d xmlCreateIOParserCtxt...
d pr extproc('xmlCreateIOParserCtxt')
d like(xmlParserCtxtPtr)
d sax value like(xmlSAXHandlerPtr)
d user_data * value void *
d ioread value like(xmlInputReadCallback)
d ioclose value like(xmlInputCloseCallback)
d ioctx * value void *
d enc value like(xmlCharEncoding)
d xmlNewIOInputStream...
d pr extproc('xmlNewIOInputStream')
d like(xmlParserInputPtr)
d ctxt value like(xmlParserCtxtPtr)
d input value like(xmlParserInputBufferPtr)
d enc value like(xmlCharEncoding)
* Node infos.
d xmlParserFindNodeInfo...
d pr * extproc('xmlParserFindNodeInfo') xmlParserNodeInfo *
d ctxt value like(xmlParserCtxtPtr)
d node value like(xmlNodePtr) const
d xmlInitNodeInfoSeq...
d pr extproc('xmlInitNodeInfoSeq')
d seq value like(xmlParserNodeInfoSeqPtr)
d xmlClearNodeInfoSeq...
d pr extproc('xmlClearNodeInfoSeq')
d seq value like(xmlParserNodeInfoSeqPtr)
d xmlParserFindNodeInfoIndex...
d pr extproc('xmlParserFindNodeInfoIndex')
d like(xmlCulong)
d seq value like(xmlParserNodeInfoSeqPtr)
d node value like(xmlNodePtr) const
d xmlParserAddNodeInfo...
d pr extproc('xmlParserAddNodeInfo')
d ctxt value like(xmlParserCtxtPtr)
d info value like(xmlParserNodeInfoPtr) const
* External entities handling actually implemented in xmlIO.
d xmlSetExternalEntityLoader...
d pr extproc('xmlSetExternalEntityLoader')
d f value like(xmlExternalEntityLoader)
d xmlGetExternalEntityLoader...
d pr extproc('xmlGetExternalEntityLoader')
d like(xmlExternalEntityLoader)
d xmlLoadExternalEntity...
d pr extproc('xmlLoadExternalEntity')
d like(xmlParserInputPtr)
d URL * value options(*string) const char *
d ID * value options(*string) const char *
d ctxt value like(xmlParserCtxtPtr)
* Index lookup, actually implemented in the encoding module
d xmlByteConsumed...
d pr extproc('xmlByteConsumed')
d like(xmlClong)
d ctxt value like(xmlParserCtxtPtr)
* New set of simpler/more flexible APIs
* xmlParserOption:
*
* This is the set of XML parser options that can be passed down
* to the xmlReadDoc() and similar calls.
d xmlParserOption...
d s based(######typedef######)
d like(xmlCenum)
d XML_PARSE_RECOVER... Recover on errors
d c X'00000001'
d XML_PARSE_NOENT... Substitute entities
d c X'00000002'
d XML_PARSE_DTDLOAD... Load external subset
d c X'00000004'
d XML_PARSE_DTDATTR... Default DTD attrs
d c X'00000008'
d XML_PARSE_DTDVALID... Validate with DTD
d c X'00000010'
d XML_PARSE_NOERROR... Suppress err reports
d c X'00000020'
d XML_PARSE_NOWARNING... Suppr warn reports
d c X'00000040'
d XML_PARSE_PEDANTIC... Pedantic err report
d c X'00000080'
d XML_PARSE_NOBLANKS... Remove blank nodes
d c X'00000100'
d XML_PARSE_SAX1... Use SAX1 internally
d c X'00000200'
d XML_PARSE_XINCLUDE... Impl XInclude subst
d c X'00000400'
d XML_PARSE_NONET... Forbid netwrk access
d c X'00000800'
d XML_PARSE_NODICT... No contxt dict reuse
d c X'00001000'
d XML_PARSE_NSCLEAN... Rmv redndnt ns decls
d c X'00002000'
d XML_PARSE_NOCDATA... CDATA as text nodes
d c X'00004000'
d XML_PARSE_NOXINCNODE... No XINCL START/END
d c X'00008000'
d XML_PARSE_COMPACT... Compact text nodes
d c X'00010000'
d XML_PARSE_OLD10... B4 upd5 compatible
d c X'00020000'
d XML_PARSE_NOBASEFIX... No XINC xml:base fix
d c X'00040000'
d XML_PARSE_HUGE... No parsing limit
d c X'00080000'
d XML_PARSE_OLDSAX... Use SAX2 b4 2.7.0
d c X'00100000'
d XML_PARSE_IGNORE_ENC... No int doc code hint
d c X'00200000'
d XML_PARSE_BIG_LINES... Big line#-->PSVI fld
d c X'00400000'
d xmlCtxtReset pr extproc('xmlCtxtReset')
d ctxt value like(xmlParserCtxtPtr)
d xmlCtxtResetPush...
d pr extproc('xmlCtxtResetPush')
d like(xmlCint)
d ctxt value like(xmlParserCtxtPtr)
d chunk * value options(*string) const char *
d size value like(xmlCint)
d filename * value options(*string) const char *
d encoding * value options(*string) const char *
d xmlCtxtUseOptions...
d pr extproc('xmlCtxtUseOptions')
d like(xmlCint)
d ctxt value like(xmlParserCtxtPtr)
d options value like(xmlCint)
d xmlReadDoc pr extproc('xmlReadDoc')
d like(xmlDocPtr)
d cur * value options(*string) const xmlChar *
d URL * value options(*string) const char *
d encoding * value options(*string) const char *
d options value like(xmlCint)
d xmlReadFile pr extproc('xmlReadFile')
d like(xmlDocPtr)
d URL * value options(*string) const char *
d encoding * value options(*string) const char *
d options value like(xmlCint)
d xmlReadMemory pr extproc('xmlReadMemory')
d like(xmlDocPtr)
d buffer * value options(*string) const char *
d size value like(xmlCint)
d URL * value options(*string) const char *
d encoding * value options(*string) const char *
d options value like(xmlCint)
d xmlReadFd pr extproc('xmlReadFd')
d like(xmlDocPtr)
d fd value like(xmlCint)
d URL * value options(*string) const char *
d encoding * value options(*string) const char *
d options value like(xmlCint)
d xmlReadIO pr extproc('xmlReadIO')
d like(xmlDocPtr)
d ioread value like(xmlInputReadCallback)
d ioclose value like(xmlInputCloseCallback)
d ioctx * value void *
d URL * value options(*string) const char *
d encoding * value options(*string) const char *
d options value like(xmlCint)
d xmlCtxtReadDoc pr extproc('xmlCtxtReadDoc')
d like(xmlDocPtr)
d ctxt value like(xmlParserCtxtPtr)
d cur * value options(*string) const xmlChar *
d URL * value options(*string) const char *
d encoding * value options(*string) const char *
d options value like(xmlCint)
d xmlCtxtReadFile...
d pr extproc('xmlCtxtReadFile')
d like(xmlDocPtr)
d ctxt value like(xmlParserCtxtPtr)
d filename * value options(*string) const char *
d encoding * value options(*string) const char *
d options value like(xmlCint)
d xmlCtxtReadMemory...
d pr extproc('xmlCtxtReadMemory')
d like(xmlDocPtr)
d ctxt value like(xmlParserCtxtPtr)
d buffer * value options(*string) const char *
d size value like(xmlCint)
d URL * value options(*string) const char *
d encoding * value options(*string) const char *
d options value like(xmlCint)
d xmlCtxtReadFd pr extproc('xmlCtxtReadFd')
d like(xmlDocPtr)
d ctxt value like(xmlParserCtxtPtr)
d fd value like(xmlCint)
d URL * value options(*string) const char *
d encoding * value options(*string) const char *
d options value like(xmlCint)
d xmlCtxtReadIO pr extproc('xmlCtxtReadIO')
d like(xmlDocPtr)
d ctxt value like(xmlParserCtxtPtr)
d ioread value like(xmlInputReadCallback)
d ioclose value like(xmlInputCloseCallback)
d ioctx * value void *
d URL * value options(*string) const char *
d encoding * value options(*string) const char *
d options value like(xmlCint)
* Library wide options
* xmlFeature:
*
* Used to examine the existence of features that can be enabled
* or disabled at compile-time.
* They used to be called XML_FEATURE_xxx but this clashed with Expat
d xmlFeature s based(######typedef######)
d like(xmlCenum)
d XML_WITH_THREAD...
d c 1
d XML_WITH_TREE c 2
d XML_WITH_OUTPUT...
d c 3
d XML_WITH_PUSH c 4
d XML_WITH_READER...
d c 5
d XML_WITH_PATTERN...
d c 6
d XML_WITH_WRITER...
d c 7
d XML_WITH_SAX1 c 8
d XML_WITH_FTP c 9
d XML_WITH_HTTP c 10
d XML_WITH_VALID...
d c 11
d XML_WITH_HTML c 12
d XML_WITH_LEGACY...
d c 13
d XML_WITH_C14N c 14
d XML_WITH_CATALOG...
d c 15
d XML_WITH_XPATH...
d c 16
d XML_WITH_XPTR c 17
d XML_WITH_XINCLUDE...
d c 18
d XML_WITH_ICONV...
d c 19
d XML_WITH_ISO8859X...
d c 20
d XML_WITH_UNICODE...
d c 21
d XML_WITH_REGEXP...
d c 22
d XML_WITH_AUTOMATA...
d c 23
d XML_WITH_EXPR c 24
d XML_WITH_SCHEMAS...
d c 25
d XML_WITH_SCHEMATRON...
d c 26
d XML_WITH_MODULES...
d c 27
d XML_WITH_DEBUG...
d c 28
d XML_WITH_DEBUG_MEM...
d c 29
d XML_WITH_DEBUG_RUN...
d c 30
d XML_WITH_ZLIB c 31
d XML_WITH_ICU c 32
d XML_WITH_LZMA c 33
d XML_WITH_NONE c 99999
d xmlHasFeature pr extproc('xmlHasFeature')
d like(xmlCint)
d feature value like(xmlFeature)
/endif XML_PARSER_H__