From 35a201cc8ef0c3f5b2df88d2e528aabee1048348 Mon Sep 17 00:00:00 2001 From: Wojtek Kosior Date: Fri, 30 Apr 2021 18:47:09 +0200 Subject: Initial/Final commit --- libxml2-2.9.10/os400/libxmlrpg/parser.rpgle | 1436 +++++++++++++++++++++++++++ 1 file changed, 1436 insertions(+) create mode 100644 libxml2-2.9.10/os400/libxmlrpg/parser.rpgle (limited to 'libxml2-2.9.10/os400/libxmlrpg/parser.rpgle') diff --git a/libxml2-2.9.10/os400/libxmlrpg/parser.rpgle b/libxml2-2.9.10/os400/libxmlrpg/parser.rpgle new file mode 100644 index 0000000..fa48d4f --- /dev/null +++ b/libxml2-2.9.10/os400/libxmlrpg/parser.rpgle @@ -0,0 +1,1436 @@ + * 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 , 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__ -- cgit v1.2.3