* 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 informations, 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 informations 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 informations. * 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 informations 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 informations 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 existance 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__