diff options
Diffstat (limited to 'os400/libxmlrpg')
49 files changed, 17595 insertions, 0 deletions
diff --git a/os400/libxmlrpg/DOCBparser.rpgle b/os400/libxmlrpg/DOCBparser.rpgle new file mode 100644 index 0000000..bf5aaa2 --- /dev/null +++ b/os400/libxmlrpg/DOCBparser.rpgle @@ -0,0 +1,116 @@ + * Summary: old DocBook SGML parser + * Description: interface for a DocBook SGML non-verifying parser + * This code is DEPRECATED, and should not be used anymore. + * + * Copy: See Copyright for the status of this software. + * + * Author: Patrick Monnerat <pm@datasphere.ch>, DATASPHERE S.A. + + /if not defined(DOCB_PARSER_H__) + /define DOCB_PARSER_H__ + + /include "libxmlrpg/xmlversion" + + /if defined(LIBXML_DOCB_ENABLED) + + /include "libxmlrpg/parser" + /include "libxmlrpg/parserInternals" + + * Most of the back-end structures from XML and SGML are shared. + + d docbParserCtxtPtr... + d s based(######typedef######) + d like(xmlParserCtxtPtr) + + d docbParserCtxt ds based(docbParserCtxtPtr) + d likeds(xmlParserCtxt) + + d docbSAXHandlerPtr... + d s based(######typedef######) + d like(xmlSAXHandlerPtr) + + d docbSAXHandler ds based(docbSAXHandlerPtr) + d likeds(xmlSAXHandler) + + d docbParserInputPtr... + d s based(######typedef######) + d like(xmlParserInputPtr) + + d docbParserInput... + d ds based(docbParserInputPtr) + d likeds(xmlParserInput) + + d docbDocPtr s based(######typedef######) + d like(xmlDocPtr) + + * There is only few public functions. + + d docbEncodeEntities... + d pr 10i 0 extproc('docbEncodeEntities') + d out * value options(*string) unsigned char * + d outlen * value int * + d in * value options(*string) const unsigned char + d * + d inlen * value int * + d quoteChar 10i 0 value + + d docbSAXParseDoc... + d pr extproc('docbSAXParseDoc') + d like(docbDocPtr) + d cur * value options(*string) xmlChar * + d encoding * value options(*string) const char * + d sax value like(docbSAXHandlerPtr) + d userData * value void * + + d docbParseDoc pr extproc('docbParseDoc') + d like(docbDocPtr) + d cur * value options(*string) xmlChar * + d encoding * value options(*string) const char * + + d docbSAXParseFile... + d pr extproc('docbSAXParseFile') + d like(docbDocPtr) + d filename * value options(*string) const char * + d encoding * value options(*string) const char * + d sax value like(docbSAXHandlerPtr) + d userData * value void * + + d docbParseFile pr extproc('docbParseFile') + d like(docbDocPtr) + d filename * value options(*string) const char * + d encoding * value options(*string) const char * + + * Interfaces for the Push mode. + + d docbFreeParserCtxt... + d pr extproc('docbFreeParserCtxt') + d ctxt value like(docbParserCtxtPtr) + + d docbCreatePushParserCtxt... + d pr extproc('docbCreatePushParserCtxt') + d like(docbParserCtxtPtr) + d sax value like(docbSAXHandlerPtr) + d user_data * value void * + d chunk * value options(*string) const char * + d size 10i 0 value + d filename * value options(*string) const char * + d enc value like(xmlCharEncoding) + + d docbParseChunk pr 10i 0 extproc('docbParseChunk') + d ctxt value like(docbParserCtxtPtr) + d chunk * value options(*string) const char * + d size 10i 0 value + d terminate 10i 0 value + + d docbCreateFileParserCtxt... + d pr extproc('docbCreateFileParserCtxt') + d like(docbParserCtxtPtr) + d filename * value options(*string) const char * + d encoding * value options(*string) const char * + + d docbParseDocument... + d pr 10i 0 extproc('docbParseDocument') + d ctxt value like(docbParserCtxtPtr) + + /endif LIBXML_DOCB_ENABLED + /endif DOCB_PARSER_H__ diff --git a/os400/libxmlrpg/HTMLparser.rpgle b/os400/libxmlrpg/HTMLparser.rpgle new file mode 100644 index 0000000..7b4a626 --- /dev/null +++ b/os400/libxmlrpg/HTMLparser.rpgle @@ -0,0 +1,403 @@ + * Summary: interface for an HTML 4.0 non-verifying parser + * Description: this module implements an HTML 4.0 non-verifying parser + * with API compatible with the XML parser ones. It should + * be able to parse "real world" HTML, even if severely + * broken from a specification point of view. + * + * Copy: See Copyright for the status of this software. + * + * Author: Patrick Monnerat <pm@datasphere.ch>, DATASPHERE S.A. + + /if not defined(HTML_PARSER_H__) + /define HTML_PARSER_H__ + + /include "libxmlrpg/xmlversion" + /include "libxmlrpg/parser" + + /if defined(LIBXML_HTML_ENABLED) + + * Most of the back-end structures from XML and HTML are shared. + + d htmlParserCtxtPtr... + d s based(######typedef######) + d like(xmlParserCtxtPtr) + + d htmlParserCtxt ds based(htmlParserCtxtPtr) + d likeds(xmlParserCtxt) + + d htmlParserNodeInfoPtr... + d s based(######typedef######) + d like(xmlParserNodeInfoPtr) + + d htmlParserNodeInfo... + d ds based(htmlParserNodeInfoPtr) + d likeds(xmlParserNodeInfo) + + d htmlSAXHandlerPtr... + d s based(######typedef######) + d like(xmlSAXHandlerPtr) + + d htmlSAXHandler ds based(htmlSAXHandlerPtr) + d likeds(xmlSAXHandler) + + d htmlParserInputPtr... + d s based(######typedef######) + d like(xmlParserInputPtr) + + d htmlParserInput... + d ds based(htmlParserInputPtr) + d likeds(xmlParserInput) + + d htmlDocPtr s based(######typedef######) + d like(xmlDocPtr) + + d htmlNodePtr s based(######typedef######) + d like(xmlNodePtr) + + * Internal description of an HTML element, representing HTML 4.01 + * and XHTML 1.0 (which share the same structure). + + d htmlElemDescPtr... + d s * based(######typedef######) + + d htmlElemDesc ds based(htmlElemDescPtr) + d align qualified + d name * const char * + d startTag 3u 0 Start tag implied ? + d endTag 3u 0 End tag implied ? + d saveEndTag 3u 0 Save end tag ? + d empty 3u 0 Empty element ? + d depr 3u 0 Deprecated element ? + d dtd 3u 0 Loose DTD/Frameset + d isinline 3u 0 Block 0/inline elem? + d desc * const char * + * + * New fields encapsulating HTML structure + * + * Bugs: + * This is a very limited representation. It fails to tell us when + * an element *requires* subelements (we only have whether they're + * allowed or not), and it doesn't tell us where CDATA and PCDATA + * are allowed. Some element relationships are not fully represented: + * these are flagged with the word MODIFIER + * + d subelts * const char * * + d defaultsubelt * const char * + d attrs_opt * const char * * + d attrs_depr * const char * * + d attrs_req * const char * * + + * Internal description of an HTML entity. + + d htmlEntityDescPtr... + d s * based(######typedef######) + + d htmlEntityDesc... + d ds based(htmlEntityDescPtr) + d align qualified + d value 10u 0 Unicode char value + d name * const char * + d desc * const char * + + * There is only few public functions. + + d htmlTagLookup pr extproc('htmlTagLookup') + d like(htmlElemDescPtr) const + d tag * value options(*string) const xmlChar * + + d htmlEntityLookup... + d pr extproc('htmlEntityLookup') + d like(htmlEntityDescPtr) const + d name * value options(*string) const xmlChar * + + d htmlEntityValueLookup... + d pr extproc('htmlEntityValueLookup') + d like(htmlEntityDescPtr) const + d value 10u 0 value + + d htmlIsAutoClosed... + d pr 10i 0 extproc('htmlIsAutoClosed') + d doc value like(htmlDocPtr) + d elem value like(htmlNodePtr) + + d htmlAutoCloseTag... + d pr 10i 0 extproc('htmlAutoCloseTag') + d doc value like(htmlDocPtr) + d name * value options(*string) const xmlChar * + d elem value like(htmlNodePtr) + + d htmlParseEntityRef... + d pr extproc('htmlParseEntityRef') + d like(htmlEntityDescPtr) const + d ctxt value like(htmlParserCtxtPtr) + d str * const xmlChar *(*) + + d htmlParseCharRef... + d pr 10i 0 extproc('htmlParseCharRef') + d ctxt value like(htmlParserCtxtPtr) + + d htmlParseElement... + d pr extproc('htmlParseElement') + d ctxt value like(htmlParserCtxtPtr) + + d htmlNewParserCtxt... + d pr extproc('htmlNewParserCtxt') + d like(htmlParserCtxtPtr) + + d htmlCreateMemoryParserCtxt... + d pr extproc('htmlCreateMemoryParserCtxt') + d like(htmlParserCtxtPtr) + d buffer * value options(*string) const char * + d size 10i 0 value + + d htmlParseDocument... + d pr 10i 0 extproc('htmlParseDocument') + d ctxt value like(htmlParserCtxtPtr) + + d htmlSAXParseDoc... + d pr extproc('htmlSAXParseDoc') + d like(htmlDocPtr) + d cur * value options(*string) xmlChar * + d encoding * value options(*string) const char * + d sax value like(htmlSAXHandlerPtr) + d userData * value void * + + d htmlParseDoc pr extproc('htmlParseDoc') + d like(htmlDocPtr) + d cur * value options(*string) xmlChar * + d encoding * value options(*string) const char * + + d htmlSAXParseFile... + d pr extproc('htmlSAXParseFile') + d like(htmlDocPtr) + d filename * value options(*string) const char * + d encoding * value options(*string) const char * + d sax value like(htmlSAXHandlerPtr) + d userData * value void * + + d htmlParseFile pr extproc('htmlParseFile') + d like(htmlDocPtr) + d filename * value options(*string) const char * + d encoding * value options(*string) const char * + + d UTF8ToHtml pr 10i 0 extproc('UTF8ToHtml') + d out 65535 options(*varsize) unsigned char [] + d outlen 10i 0 + d in * value options(*string) const unsigned char* + d inlen 10i 0 + + d htmlEncodeEntities... + d pr 10i 0 extproc('htmlEncodeEntities') + d out 65535 options(*varsize) unsigned char [] + d outlen 10i 0 + d in * value options(*string) const unsigned char* + d inlen 10i 0 + d quoteChar 10i 0 value + + d htmlIsScriptAttribute... + d pr 10i 0 extproc('htmlIsScriptAttribute') + d name * value options(*string) const xmlChar * + + d htmlHandleOmittedElem... + d pr 10i 0 extproc('htmlHandleOmittedElem') + d val 10i 0 value + + /if defined(LIBXML_PUSH_ENABLED) + + * Interfaces for the Push mode. + + d htmlCreatePushParserCtxt... + d pr extproc('htmlCreatePushParserCtxt') + d like(htmlParserCtxtPtr) + d sax value like(htmlSAXHandlerPtr) + d user_data * value void * + d chunk * value options(*string) const char * + d size 10i 0 value + d filename * value options(*string) const char * + d enc value like(xmlCharEncoding) + + d htmlParseChunk pr 10i 0 extproc('htmlParseChunk') + d ctxt value like(htmlParserCtxtPtr) + d chunk * value options(*string) const char * + d size 10i 0 value + d terminate 10i 0 value + /endif LIBXML_PUSH_ENABLED + + d htmlFreeParserCtxt... + d pr extproc('htmlFreeParserCtxt') + d ctxt value like(htmlParserCtxtPtr) + + * 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 htmlParserOption... + d s 10i 0 based(######typedef######) enum + d HTML_PARSE_RECOVER... Relaxed parsing + d c X'00000001' + d HTML_PARSE_NODEFDTD... No default doctype + d c X'00000004' + d HTML_PARSE_NOERROR... No error reports + d c X'00000020' + d HTML_PARSE_NOWARNING... No warning reports + d c X'00000040' + d HTML_PARSE_PEDANTIC... Pedantic err reports + d c X'00000080' + d HTML_PARSE_NOBLANKS... Remove blank nodes + d c X'00000100' + d HTML_PARSE_NONET... Forbid net access + d c X'00000800' + d HTML_PARSE_NOIMPLIED... No implied html/body + d c X'00002000' + d HTML_PARSE_COMPACT... compact small txtnod + d c X'00010000' + d HTML_PARSE_IGNORE_ENC... Ignore encoding hint + d c X'00200000' + + d htmlCtxtReset pr extproc('htmlCtxtReset') + d ctxt value like(htmlParserCtxtPtr) + + d htmlCtxtUseOptions... + d pr 10i 0 extproc('htmlCtxtUseOptions') + d ctxt value like(htmlParserCtxtPtr) + d options 10i 0 value + + d htmlReadDoc pr extproc('htmlReadDoc') + d like(htmlDocPtr) + d cur * value options(*string) const xmlChar * + d URL * value options(*string) const char * + d encoding * value options(*string) const char * + d options 10i 0 value + + d htmlReadFile pr extproc('htmlReadFile') + d like(htmlDocPtr) + d URL * value options(*string) const char * + d encoding * value options(*string) const char * + d options 10i 0 value + + d htmlReadMemory pr extproc('htmlReadMemory') + d like(htmlDocPtr) + d buffer * value options(*string) const char * + d size 10i 0 value + d URL * value options(*string) const char * + d encoding * value options(*string) const char * + d options 10i 0 value + + d htmlReadFd pr extproc('htmlReadFd') + d like(htmlDocPtr) + d fd 10i 0 value + d URL * value options(*string) const char * + d encoding * value options(*string) const char * + d options 10i 0 value + + d htmlReadIO pr extproc('htmlReadIO') + d like(htmlDocPtr) + 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 10i 0 value + + d htmlCtxtReadDoc... + d pr extproc('htmlCtxtReadDoc') + d like(htmlDocPtr) + 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 10i 0 value + + d htmlCtxtReadFile... + d pr extproc('htmlCtxtReadFile') + d like(htmlDocPtr) + d ctxt value like(xmlParserCtxtPtr) + d filename * value options(*string) const char * + d encoding * value options(*string) const char * + d options 10i 0 value + + d htmlCtxtReadMemory... + d pr extproc('htmlCtxtReadMemory') + d like(htmlDocPtr) + d ctxt value like(xmlParserCtxtPtr) + d buffer * value options(*string) const char * + d size 10i 0 value + d URL * value options(*string) const char * + d encoding * value options(*string) const char * + d options 10i 0 value + + d htmlCtxtReadFd pr extproc('htmlCtxtReadFd') + d like(htmlDocPtr) + d ctxt value like(xmlParserCtxtPtr) + d fd 10i 0 value + d URL * value options(*string) const char * + d encoding * value options(*string) const char * + d options 10i 0 value + + d htmlCtxtReadIO pr extproc('htmlCtxtReadIO') + d like(htmlDocPtr) + 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 10i 0 value + + * Further knowledge of HTML structure + + d htmlStatus s 10i 0 based(######typedef######) enum + d HTML_NA c X'0000' No check at all + d HTML_INVALID c X'0001' + d HTML_DEPRECATED... + d c X'0002' + d HTML_VALID c X'0004' + d HTML_REQUIRED c X'000C' HTML_VALID ored-in + + * Using htmlElemDesc rather than name here, to emphasise the fact + * that otherwise there's a lookup overhead + + d htmlAttrAllowed... + d pr extproc('htmlAttrAllowed') + d like(htmlStatus) + d #param1 value like(htmlElemDescPtr) const + d #param2 * value options(*string) const xmlChar * + d #param3 10i 0 value + + d htmlElementAllowedHere... + d pr 10i 0 extproc('htmlElementAllowedHere') + d #param1 value like(htmlElemDescPtr) const + d #param2 * value options(*string) const xmlChar * + + d htmlElementStatusHere... + d pr extproc('htmlElementStatusHere') + d like(htmlStatus) + d #param1 value like(htmlElemDescPtr) const + d #param2 value like(htmlElemDescPtr) const + + d htmlNodeStatus pr extproc('htmlNodeStatus') + d like(htmlStatus) + d #param1 value like(htmlNodePtr) + d #param2 10i 0 value + + * C macros implemented as procedures for ILE/RPG support. + + d htmlDefaultSubelement... + d pr * extproc('__htmlDefaultSubelement') const char * + d elt * value const htmlElemDesc * + + d htmlElementAllowedHereDesc... + d pr 10i 0 extproc( + d '__htmlElementAllowedHereDesc') + d parent * value const htmlElemDesc * + d elt * value const htmlElemDesc * + + d htmlRequiredAttrs... + d pr * extproc('__htmlRequiredAttrs') const char * * + d elt * value const htmlElemDesc * + + /endif LIBXML_HTML_ENABLED + /endif HTML_PARSER_H__ diff --git a/os400/libxmlrpg/HTMLtree.rpgle b/os400/libxmlrpg/HTMLtree.rpgle new file mode 100644 index 0000000..82a11ca --- /dev/null +++ b/os400/libxmlrpg/HTMLtree.rpgle @@ -0,0 +1,166 @@ + * Summary: specific APIs to process HTML tree, especially serialization + * Description: this module implements a few function needed to process + * tree in an HTML specific way. + * + * Copy: See Copyright for the status of this software. + * + * Author: Patrick Monnerat <pm@datasphere.ch>, DATASPHERE S.A. + + /if not defined(HTML_TREE_H__) + /define HTML_TREE_H__ + + /include "libxmlrpg/xmlversion" + /include "libxmlrpg/tree" + /include "libxmlrpg/HTMLparser" + + /if defined(LIBXML_HTML_ENABLED) + + * HTML_TEXT_NODE: + * + * Macro. A text node in a HTML document is really implemented + * the same way as a text node in an XML document. + + d HTML_TEXT_NODE c 3 + + * HTML_ENTITY_REF_NODE: + * + * Macro. An entity reference in a HTML document is really implemented + * the same way as an entity reference in an XML document. + + d HTML_ENTITY_REF_NODE... + d c 5 + + * HTML_COMMENT_NODE: + * + * Macro. A comment in a HTML document is really implemented + * the same way as a comment in an XML document. + + d HTML_COMMENT_NODE... + d c 8 + + * HTML_PRESERVE_NODE: + * + * Macro. A preserved node in a HTML document is really implemented + * the same way as a CDATA section in an XML document. + + d HTML_PRESERVE_NODE... + d c 4 + + * HTML_PI_NODE: + * + * Macro. A processing instruction in a HTML document is really implemented + * the same way as a processing instruction in an XML document. + + d HTML_PI_NODE c 7 + + d htmlNewDoc pr extproc('htmlNewDoc') + d like(htmlDocPtr) + d URI * value options(*string) const xmlChar * + d ExternalID * value options(*string) const xmlChar * + + d htmlNewDocNoDtD... + d pr extproc('htmlNewDocNoDtD') + d like(htmlDocPtr) + d URI * value options(*string) const xmlChar * + d ExternalID * value options(*string) const xmlChar * + + d htmlGetMetaEncoding... + d pr * extproc('htmlGetMetaEncoding') const xmlChar * + d doc value like(htmlDocPtr) + + d htmlSetMetaEncoding... + d pr 10i 0 extproc('htmlSetMetaEncoding') + d doc value like(htmlDocPtr) + d encoding * value options(*string) const xmlChar * + + /if defined(LIBXML_OUTPUT_ENABLED) + d htmlDocDumpMemory... + d pr extproc('htmlDocDumpMemory') + d cur value like(xmlDocPtr) + d mem * value xmlChar * * + d size 10i 0 + + d htmlDocDumpMemoryFormat... + d pr extproc('htmlDocDumpMemoryFormat') + d cur value like(xmlDocPtr) + d mem * value xmlChar * * + d size 10i 0 + d format 10i 0 value + + d htmlDocDump pr 10i 0 extproc('htmlDocDump') + d f * value FILE * + d cur value like(xmlDocPtr) + + d htmlSaveFile pr 10i 0 extproc('htmlSaveFile') + d filename * value options(*string) const char * + d cur value like(xmlDocPtr) + + d htmlNodeDump pr 10i 0 extproc('htmlNodeDump') + d buf value like(xmlBufferPtr) + d doc value like(xmlDocPtr) + d cur value like(xmlNodePtr) + + d htmlNodeDumpFile... + d pr extproc('htmlNodeDumpFile') + d out * value FILE * + d doc value like(xmlDocPtr) + d cur value like(xmlNodePtr) + + d htmlNodeDumpFileFormat... + d pr 10i 0 extproc('htmlNodeDumpFileFormat') + d out * value FILE * + d doc value like(xmlDocPtr) + d cur value like(xmlNodePtr) + d encoding * value options(*string) const char * + d format 10i 0 value + + d htmlSaveFileEnc... + d pr 10i 0 extproc('htmlSaveFileEnc') + d filename * value options(*string) const char * + d cur value like(xmlDocPtr) + d encoding * value options(*string) const char * + + d htmlSaveFileFormat... + d pr 10i 0 extproc('htmlSaveFileFormat') + d filename * value options(*string) const char * + d cur value like(xmlDocPtr) + d encoding * value options(*string) const char * + d format 10i 0 value + + d htmlNodeDumpFormatOutput... + d pr extproc('htmlNodeDumpFormatOutput') + d buf value like(xmlOutputBufferPtr) + d doc value like(xmlDocPtr) + d cur value like(xmlNodePtr) + d encoding * value options(*string) const char * + d format 10i 0 value + + d htmlDocContentDumpOutput... + d pr extproc('htmlDocContentDumpOutput') + d buf value like(xmlOutputBufferPtr) + d cur value like(xmlDocPtr) + d encoding * value options(*string) const char * + + d htmlDocContentDumpFormatOutput... + d pr extproc( + d 'htmlDocContentDumpFormatOutput') + d buf value like(xmlOutputBufferPtr) + d cur value like(xmlDocPtr) + d encoding * value options(*string) const char * + d format 10i 0 value + + d htmlNodeDumpOutput... + d pr extproc('htmlNodeDumpOutput') + d buf value like(xmlOutputBufferPtr) + d doc value like(xmlDocPtr) + d cur value like(xmlNodePtr) + d encoding * value options(*string) const char * + + /endif LIBXML_OUTPUT_ENABLD + + d htmlIsBooleanAttr... + d pr 10i 0 extproc('htmlIsBooleanAttr') + d name * value options(*string) const xmlChar * + + /endif LIBXML_HTML_ENABLED + /endif HTML_TREE_H__ diff --git a/os400/libxmlrpg/SAX.rpgle b/os400/libxmlrpg/SAX.rpgle new file mode 100644 index 0000000..18f851d --- /dev/null +++ b/os400/libxmlrpg/SAX.rpgle @@ -0,0 +1,207 @@ + * Summary: Old SAX version 1 handler, deprecated + * Description: DEPRECATED set of SAX version 1 interfaces used to + * build the DOM tree. + * + * Copy: See Copyright for the status of this software. + * + * Author: Patrick Monnerat <pm@datasphere.ch>, DATASPHERE S.A. + + /if not defined(XML_SAX_H__) + /define XML_SAX_H__ + + /include "libxmlrpg/xmlversion" + /include "libxmlrpg/parser" + /include "libxmlrpg/xlink" + + /if defined(LIBXML_LEGACY_ENABLED) + + d getPublicId pr * extproc('getPublicId') const xmlChar * + d ctx * value void * + + d getSystemId pr * extproc('getSystemId') const xmlChar * + d ctx * value void * + + d setDocumentLocator... + d pr extproc('setDocumentLocator') + d ctx * value void * + d loc value like(xmlSAXLocatorPtr) + + d getLineNumber pr 10i 0 extproc('getLineNumber') + d ctx * value void * + + d getColumnNumber... + d pr 10i 0 extproc('getColumnNumber') + d ctx * value void * + + d isStandalone pr 10i 0 extproc('isStandalone') + d ctx * value void * + + d hasInternalSubset... + d pr 10i 0 extproc('hasInternalSubset') + d ctx * value void * + + d hasExternalSubset... + d pr 10i 0 extproc('hasExternalSubset') + d ctx * value void * + + d internalSubset pr extproc('internalSubset') + d ctx * value void * + d name * value options(*string) const xmlChar * + d ExternalID * value options(*string) const xmlChar * + d SystemID * value options(*string) const xmlChar * + + d externalSubset pr extproc('externalSubset') + d ctx * value void * + d name * value options(*string) const xmlChar * + d ExternalID * value options(*string) const xmlChar * + d SystemID * value options(*string) const xmlChar * + + d getEntity pr extproc('getEntity') + d like(xmlEntityPtr) + d ctx * value void * + d name * value options(*string) const xmlChar * + + d getParameterEntity... + d pr extproc('getParameterEntity') + d like(xmlEntityPtr) + d ctx * value void * + d name * value options(*string) const xmlChar * + + d resolveEntity pr extproc('resolveEntity') + d like(xmlParserInputPtr) + d ctx * value void * + d publicId * value options(*string) const xmlChar * + d systemId * value options(*string) const xmlChar * + + d entityDecl pr extproc('entityDecl') + d ctx * value void * + d name * value options(*string) const xmlChar * + d type 10i 0 value + d publicId * value options(*string) const xmlChar * + d systemId * value options(*string) const xmlChar * + d content * value options(*string) xmlChar * + + d attributeDecl pr extproc('attributeDecl') + d ctx * value void * + d elem * value options(*string) const xmlChar * + d fullname * value options(*string) const xmlChar * + d type 10i 0 value + d def 10i 0 value + d defaultValue * value options(*string) const xmlChar * + d tree value like(xmlEnumerationPtr) + + d elementDecl pr extproc('elementDecl') + d ctx * value void * + d name * value options(*string) const xmlChar * + d type 10i 0 value + d content value like(xmlElementContentPtr) + + d notationDecl pr extproc('notationDecl') + d ctx * value void * + d name * value options(*string) const xmlChar * + d publicId * value options(*string) const xmlChar * + d systemId * value options(*string) const xmlChar * + + d unparsedEntityDecl... + d pr extproc('unparsedEntityDecl') + d ctx * value void * + d name * value options(*string) const xmlChar * + d publicId * value options(*string) const xmlChar * + d systemId * value options(*string) const xmlChar * + d notationName * value options(*string) const xmlChar * + + d startDocument pr extproc('startDocument') + d ctx * value void * + + d endDocument pr extproc('endDocument') + d ctx * value void * + + d attribute pr extproc('attribute') + d ctx * value void * + d fullname * value options(*string) const xmlChar * + d value * value options(*string) const xmlChar * + + d startElement pr extproc('startElement') + d ctx * value void * + d fullname * value options(*string) const xmlChar * + d atts * const xmlChar *(*) + + d endElement pr extproc('endElement') + d ctx * value void * + d name * value options(*string) const xmlChar * + + d reference pr extproc('reference') + d ctx * value void * + d name * value options(*string) const xmlChar * + + d characters pr extproc('characters') + d ctx * value void * + d ch * value options(*string) const xmlChar * + d len 10i 0 value + + d ignorableWhitespace... + d pr extproc('ignorableWhitespace') + d ctx * value void * + d ch * value options(*string) const xmlChar * + d len 10i 0 value + + d processingInstruction... + d pr extproc('processingInstruction') + d ctx * value void * + d target * value options(*string) const xmlChar * + d data * value options(*string) const xmlChar * + + d globalNamespace... + d pr extproc('globalNamespace') + d ctx * value void * + d href * value options(*string) const xmlChar * + d prefix * value options(*string) const xmlChar * + + d setNamespace pr extproc('setNamespace') + d ctx * value void * + d name * value options(*string) const xmlChar * + + d getNamespace pr extproc('getNamespace') + d like(xmlNsPtr) + d ctx * value void * + + d checkNamespace pr 10i 0 extproc('checkNamespace') + d ctx * value void * + d nameSpace * value options(*string) xmlChar * + + d namespaceDecl pr extproc('namespaceDecl') + d ctx * value void * + d href * value options(*string) const xmlChar * + d prefix * value options(*string) const xmlChar * + + d comment pr extproc('comment') + d ctx * value void * + d value * value options(*string) const xmlChar * + + d cdataBlock pr extproc('cdataBlock') + d ctx * value void * + d value * value options(*string) const xmlChar * + d len 10i 0 value + + /if defined(LIBXML_SAX1_ENABLED) + d initxmlDefaultSAXHandler... + d pr extproc('initxmlDefaultSAXHandler') + d hdlr like(xmlSAXHandlerV1) + d warning 10i 0 value + + /if defined(LIBXML_HTML_ENABLED) + d inithtmlDefaultSAXHandler... + d pr extproc('inithtmlDefaultSAXHandler') + d hdlr like(xmlSAXHandlerV1) + /endif + + /if defined(LIBXML_DOCB_ENABLED) + d initdocbDefaultSAXHandler... + d pr extproc('initdocbDefaultSAXHandler') + d hdlr like(xmlSAXHandlerV1) + /endif + /endif LIBXML_SAX1_ENABLED + + /endif LIBXML_LEGACY_ENABLD + + /endif XML_SAX_H__ diff --git a/os400/libxmlrpg/SAX2.rpgle b/os400/libxmlrpg/SAX2.rpgle new file mode 100644 index 0000000..c9ab9d1 --- /dev/null +++ b/os400/libxmlrpg/SAX2.rpgle @@ -0,0 +1,248 @@ + * Summary: SAX2 parser interface used to build the DOM tree + * Description: those are the default SAX2 interfaces used by + * the library when building DOM tree. + * + * Copy: See Copyright for the status of this software. + * + * Author: Patrick Monnerat <pm@datasphere.ch>, DATASPHERE S.A. + + /if not defined(XML_SAX2_H__) + /define XML_SAX2_H__ + + /include "libxmlrpg/xmlversion" + /include "libxmlrpg/parser" + /include "libxmlrpg/xlink" + + d xmlSAX2GetPublicId... + d pr * extproc('xmlSAX2getPublicId') const xmlChar * + d ctx * value void * + + d xmlSAX2GetSystemId... + d pr * extproc('xmlSAX2getSystemId') const xmlChar * + d ctx * value void * + + d xmlSAX2SetDocumentLocator... + d pr extproc('xmlSAX2SetDocumentLocator') + d ctx * value void * + d loc value like(xmlSAXLocatorPtr) + + d xmlSAX2GetLineNumber... + d pr 10i 0 extproc('xmlSAX2GetLineNumber') + d ctx * value void * + + d xmlSAX2GetColumnNumber... + d pr 10i 0 extproc('xmlSAX2GetColumnNumber') + d ctx * value void * + + d xmlSAX2IsStandalone... + d pr 10i 0 extproc('xmlSAX2IsStandalone') + d ctx * value void * + + d xmlSAX2HasInternalSubset... + d pr 10i 0 extproc('xmlSAX2HasInternalSubset') + d ctx * value void * + + d xmlSAX2HasExternalSubset... + d pr 10i 0 extproc('xmlSAX2HasExternalSubset') + d ctx * value void * + + d xmlSAX2InternalSubset... + d pr extproc('xmlSAX2InternalSubset') + d ctx * value void * + d name * value options(*string) const xmlChar * + d ExternalID * value options(*string) const xmlChar * + d SystemID * value options(*string) const xmlChar * + + d xmlSAX2ExternalSubset... + d pr extproc('xmlSAX2ExternalSubset') + d ctx * value void * + d name * value options(*string) const xmlChar * + d ExternalID * value options(*string) const xmlChar * + d SystemID * value options(*string) const xmlChar * + + d xmlSAX2GetEntity... + d pr extproc('xmlSAX2GetEntity') + d like(xmlEntityPtr) + d ctx * value void * + d name * value options(*string) const xmlChar * + + d xmlSAX2GetParameterEntity... + d pr extproc('xmlSAX2GetParameterEntity') + d like(xmlEntityPtr) + d ctx * value void * + d name * value options(*string) const xmlChar * + + d xmlSAX2ResolveEntity... + d pr extproc('xmlSAX2ResolveEntity') + d like(xmlParserInputPtr) + d ctx * value void * + d publicId * value options(*string) const xmlChar * + d systemId * value options(*string) const xmlChar * + + d xmlSAX2EntityDecl... + d pr extproc('xmlSAX2EntityDecl') + d ctx * value void * + d name * value options(*string) const xmlChar * + d type 10i 0 value + d publicId * value options(*string) const xmlChar * + d systemId * value options(*string) const xmlChar * + d content * value options(*string) xmlChar * + + d xmlSAX2AttributeDecl... + d pr extproc('xmlSAX2AttributeDecl') + d ctx * value void * + d elem * value options(*string) const xmlChar * + d fullname * value options(*string) const xmlChar * + d type 10i 0 value + d def 10i 0 value + d defaultValue * value options(*string) const xmlChar * + d tree value like(xmlEnumerationPtr) + + d xmlSAX2ElementDecl... + d pr extproc('xmlSAX2ElementDecl') + d ctx * value void * + d name * value options(*string) const xmlChar * + d type 10i 0 value + d content value like(xmlElementContentPtr) + + d xmlSAX2NotationDecl... + d pr extproc('xmlSAX2NotationDecl') + d ctx * value void * + d name * value options(*string) const xmlChar * + d publicId * value options(*string) const xmlChar * + d systemId * value options(*string) const xmlChar * + + d xmlSAX2UnparsedEntityDecl... + d pr extproc('xmlSAX2UnparsedEntityDecl') + d ctx * value void * + d name * value options(*string) const xmlChar * + d publicId * value options(*string) const xmlChar * + d systemId * value options(*string) const xmlChar * + d notationName * value options(*string) xmlChar * + + d xmlSAX2StartDocument... + d pr extproc('xmlSAX2StartDocument') + d ctx * value void * + + d xmlSAX2EndDocument... + d pr extproc('xmlSAX2EndDocument') + d ctx * value void * + + /undefine XML_TESTVAL + /if defined(LIBXML_SAX1_ENABLED) + /define XML_TESTVAL + /elseif defined(LIBXML_HTML_ENABLED) + /define XML_TESTVAL + /elseif defined(LIBXML_WRITER_ENABLED) + /define XML_TESTVAL + /elseif defined(LIBXML_DOCB_ENABLED) + /endif + /if defined(XML_TESTVAL) + d xmlSAX2StartElement... + d pr extproc('xmlSAX2StartElement') + d ctx * value void * + d fullname * value options(*string) const xmlChar * + d atts * const xmlChar *(*) + + d xmlSAX2EndElement... + d pr extproc('xmlSAX2EndElement') + d ctx * value void * + d name * value options(*string) const xmlChar * + + /undefine XML_TESTVAL + /endif + + d xmlSAX2StartElementNs... + d pr extproc('xmlSAX2StartElementNs') + d ctx * value void * + d localname * value options(*string) const xmlChar * + d prefix * value options(*string) const xmlChar * + d URI * value options(*string) const xmlChar * + d nb_namespaces 10i 0 value + d namespaces * value const xmlChar *(*) + d nb_attributes 10i 0 value + d nb_defaulted 10i 0 value + d attributes * const xmlChar *(*) + + d xmlSAX2EndElementNs... + d pr extproc('xmlSAX2EndElementNs') + d ctx * value void * + d localname * value options(*string) const xmlChar * + d prefix * value options(*string) const xmlChar * + d URI * value options(*string) const xmlChar * + + d xmlSAX2Reference... + d pr extproc('xmlSAX2Reference') + d ctx * value void * + d name * value options(*string) const xmlChar * + + d xmlSAX2Characters... + d pr extproc('xmlSAX2Characters') + d ctx * value void * + d ch * value options(*string) const xmlChar * + d len 10i 0 value + + d xmlSAX2IgnorableWhitespace... + d pr extproc('xmlSAX2IgnorableWhitespace') + d ctx * value void * + d ch * value options(*string) const xmlChar * + d len 10i 0 value + + d xmlSAX2ProcessingInstruction... + d pr extproc( + d 'xmlSAX2ProcessingInstruction') + d ctx * value void * + d target * value options(*string) const xmlChar * + d data * value options(*string) const xmlChar * + + d xmlSAX2Comment... + d pr extproc('xmlSAX2Comment') + d ctx * value void * + d value * value options(*string) const xmlChar * + + d xmlSAX2CDataBlock... + d pr extproc('xmlSAX2CDataBlock') + d ctx * value void * + d value * value options(*string) const xmlChar * + d len 10i 0 value + + /if defined(LIBXML_SAX1_ENABLED) + d xmlSAXDefaultVersion... + d pr 10i 0 extproc('xmlSAXDefaultVersion') + d version 10i 0 value + /endif LIBXML_SAX1_ENABLED + + d xmlSAXVersion pr 10i 0 extproc('xmlSAXVersion') + d hdlr like(xmlSAXHandler) + d version 10i 0 value + + d xmlSAX2InitDefaultSAXHandler... + d pr extproc( + d 'xmlSAX2InitDefaultSAXHandler') + d hdlr like(xmlSAXHandler) + d warning 10i 0 value + + /if defined(LIBXML_HTML_ENABLED) + d xmlSAX2InitHtmlDefaultSAXHandler... + d pr extproc( + d 'xmlSAX2InitHtmlDefaultSAXHandler') + d hdlr like(xmlSAXHandler) + + d htmlDefaultSAXHandlerInit... + d pr extproc('htmlDefaultSAXHandlerInit') + /endif + + /if defined(LIBXML_DOCB_ENABLED) + d xmlSAX2InitDocbDefaultSAXHandler... + d pr extproc( + d 'xmlSAX2InitDocbDefaultSAXHandler') + d hdlr like(xmlSAXHandler) + + d docbDefaultSAXHandlerInit... + d pr extproc('docbDefaultSAXHandlerInit') + /endif + + d xmlDefaultSAXHandlerInit... + d pr extproc('xmlDefaultSAXHandlerInit') + + /endif XML_SAX2_H__ diff --git a/os400/libxmlrpg/c14n.rpgle b/os400/libxmlrpg/c14n.rpgle new file mode 100644 index 0000000..b64efb2 --- /dev/null +++ b/os400/libxmlrpg/c14n.rpgle @@ -0,0 +1,119 @@ + * Summary: Provide Canonical XML and Exclusive XML Canonicalization + * Description: the c14n modules provides a + * + * "Canonical XML" implementation + * http://www.w3.org/TR/xml-c14n + * + * and an + * + * "Exclusive XML Canonicalization" implementation + * http://www.w3.org/TR/xml-exc-c14n + * + * Copy: See Copyright for the status of this software. + * + * Author: Patrick Monnerat <pm@datasphere.ch>, DATASPHERE S.A. + + /if not defined(XML_C14N_H__) + /define XML_C14N_H__ + + /include "libxmlrpg/xmlversion" + + /if defined(LIBXML_C14N_ENABLED) + /if defined(LIBXML_OUTPUT_ENABLED) + + /include "libxmlrpg/tree" + /include "libxmlrpg/xpath" + + * XML Canonicazation + * http://www.w3.org/TR/xml-c14n + * + * Exclusive XML Canonicazation + * http://www.w3.org/TR/xml-exc-c14n + * + * Canonical form of an XML document could be created if and only if + * a) default attributes (if any) are added to all nodes + * b) all character and parsed entity references are resolved + * In order to achive this in libxml2 the document MUST be loaded with + * following global setings: + * + * xmlLoadExtDtdDefaultValue = XML_DETECT_IDS ã XML_COMPLETE_ATTRS; + * xmlSubstituteEntitiesDefault(1); + * + * or corresponding parser context setting: + * xmlParserCtxtPtr ctxt; + * + * ... + * ctxt->loadsubset = XML_DETECT_IDS ã XML_COMPLETE_ATTRS; + * ctxt->replaceEntities = 1; + * ... + + * xmlC14NMode: + * + * Predefined values for C14N modes + + d xmlBufferAllocationScheme... + d xmlC14NMode s 10i 0 based(######typedef######) enum + d XML_C14N_1_0 c 0 Original C14N 1.0 + d XML_C14N_EXCLUSIVE_1_0... Exclusive C14N 1.0 + d c 1 + d XML_C14N_1_1 c 2 C14N 1.1 spec + + d xmlC14NDocSaveTo... + d pr 10i 0 extproc('xmlC14NDocSaveTo') + d doc value like(xmlDocPtr) + d nodes value like(xmlNodeSetPtr) + d mode 10i 0 value + d inclusive_ns_prefixes... + d * xmlChar *(*) + d with_comments 10i 0 value + d buf value like(xmlOutputBufferPtr) + + d xmlC14NDocDumpMemory... + d pr 10i 0 extproc('xmlC14NDocDumpMemory') + d doc value like(xmlDocPtr) + d nodes value like(xmlNodeSetPtr) + d mode 10i 0 value + d inclusive_ns_prefixes... + d * xmlChar *(*) + d with_comments 10i 0 value + d doc_txt_ptr * xmlChar *(*) + + d xmlC14NDocSave pr 10i 0 extproc('xmlC14NDocSave') + d doc value like(xmlDocPtr) + d nodes value like(xmlNodeSetPtr) + d mode 10i 0 value + d inclusive_ns_prefixes... + d * xmlChar *(*) + d with_comments 10i 0 value + d filename * value options(*string) const char * + d compression 10i 0 value + + * This is the core C14N function + + * xmlC14NIsVisibleCallback: + * @user_data: user data + * @node: the curent node + * @parent: the parent node + * + * Signature for a C14N callback on visible nodes + * + * Returns 1 if the node should be included + + d xmlC14NIsVisibleCallback... + d s * based(######typedef######) + d procptr + + d xmlC14NExecute pr 10i 0 extproc('xmlC14NExecute') + d doc value like(xmlDocPtr) + d is_visible_callback... + d value like(xmlC14NIsVisibleCallback) + d user_data * value void * + d mode 10i 0 value + d inclusive_ns_prefixes... + d * xmlChar *(*) + d with_comments 10i 0 value + d buf value like(xmlOutputBufferPtr) + + /endif LIBXML_OUTPUT_ENABLD + /endif LIBXML_C14N_ENABLED + /endif XML_C14N_H__ diff --git a/os400/libxmlrpg/catalog.rpgle b/os400/libxmlrpg/catalog.rpgle new file mode 100644 index 0000000..52baf4e --- /dev/null +++ b/os400/libxmlrpg/catalog.rpgle @@ -0,0 +1,235 @@ + * Summary: interfaces to the Catalog handling system + * Description: the catalog module implements the support for + * XML Catalogs and SGML catalogs + * + * SGML Open Technical Resolution TR9401:1997. + * http://www.jclark.com/sp/catalog.htm + * + * XML Catalogs Working Draft 06 August 2001 + * http://www.oasis-open.org/committees/entity/spec-2001-08-06.html + * + * Copy: See Copyright for the status of this software. + * + * Author: Patrick Monnerat <pm@datasphere.ch>, DATASPHERE S.A. + + /if not defined(XML_CATALOG_H__) + /define XML_CATALOG_H__ + + /include "libxmlrpg/xmlversion" + /include "libxmlrpg/xmlstring" + /include "libxmlrpg/tree" + + /if defined(LIBXML_CATALOG_ENABLED) + + * XML_CATALOGS_NAMESPACE: + * + * The namespace for the XML Catalogs elements. + + d XML_CATALOGS_NAMESPACE... + d c 'urn:oasis:names:+ + d tc:entity:xmlns:xml:catalog' + + * XML_CATALOG_PI: + * + * The specific XML Catalog Processing Instuction name. + + d XML_CATALOG_PI c 'oasis-xml-catalog' + + * The API is voluntarily limited to general cataloging. + + d xmlCatalogPrefer... + d s 10u 0 based(######typedef######) enum type + d XML_CATA_PREFER_NONE... + d c 0 + d XML_CATA_PREFER_PUBLIC... + d c 1 + d XML_CATA_PREFER_SYSTEM... + d c 2 + + d xmlCatalogAllow... + d s 10u 0 based(######typedef######) enum type + d XML_CATA_ALLOW_NONE... + d c 0 + d XML_CATA_ALLOW_GLOBAL... + d c 1 + d XML_CATA_ALLOW_DOCUMENT... + d c 2 + d XML_CATA_ALLOW_ALL... + d c 3 + + d xmlCatalogPtr s * based(######typedef######) + + * Operations on a given catalog. + + d xmlNewCatalog pr extproc('xmlNewCatalog') + d like(xmlCatalogPtr) + d sgml 10i 0 value + + d xmlLoadACatalog... + d pr extproc('xmlLoadACatalog') + d like(xmlCatalogPtr) + d filename * value options(*string) const char * + + d xmlLoadSGMLSuperCatalog... + d pr extproc('xmlLoadSGMLSuperCatalog') + d like(xmlCatalogPtr) + d filename * value options(*string) const char * + + d xmlConvertSGMLCatalog... + d pr 10i 0 extproc('xmlConvertSGMLCatalog') + d catal value like(xmlCatalogPtr) + + d xmlACatalogAdd pr 10i 0 extproc('xmlACatalogAdd') + d catal value like(xmlCatalogPtr) + d type * value options(*string) const xmlChar * + d orig * value options(*string) const xmlChar * + d replace * value options(*string) const xmlChar * + + d xmlACatalogRemove... + d pr 10i 0 extproc('xmlACatalogRemove') + d catal value like(xmlCatalogPtr) + d value * value options(*string) const xmlChar * + + d xmlACatalogResolve... + d pr * extproc('xmlACatalogResolve') xmlChar * + d catal value like(xmlCatalogPtr) + d pubID * value options(*string) const xmlChar * + d sysID * value options(*string) const xmlChar * + + d xmlACatalogResolveSystem... + d pr * extproc('xmlACatalogResolveSystem') xmlChar * + d catal value like(xmlCatalogPtr) + d sysID * value options(*string) const xmlChar * + + d xmlACatalogResolvePublic... + d pr * extproc('xmlACatalogResolvePublic') xmlChar * + d catal value like(xmlCatalogPtr) + d pubID * value options(*string) const xmlChar * + + d xmlACatalogResolveURI... + d pr * extproc('xmlACatalogResolveURI') xmlChar * + d catal value like(xmlCatalogPtr) + d URI * value options(*string) const xmlChar * + + /if defined(LIBXML_OUTPUT_ENABLED) + d xmlACatalogDump... + d pr extproc('xmlACatalogDump') + d catal value like(xmlCatalogPtr) + d out * value FILE * + /endif LIBXML_OUTPUT_ENABLD + + d xmlFreeCatalog pr extproc('xmlFreeCatalog') + d catal value like(xmlCatalogPtr) + + d xmlCatalogIsEmpty... + d pr 10i 0 extproc('xmlCatalogIsEmpty') + d catal value like(xmlCatalogPtr) + + * Global operations. + + d xmlInitializeCatalog... + d pr extproc('xmlInitializeCatalog') + + d xmlLoadCatalog pr 10i 0 extproc('xmlLoadCatalog') + d filename * value options(*string) const char * + + d xmlLoadCatalogs... + d pr extproc('xmlLoadCatalogs') + d paths * value options(*string) const char * + + d xmlCatalogCleanup... + d pr extproc('xmlCatalogCleanup') + + /if defined(LIBXML_OUTPUT_ENABLED) + d xmlCatalogDump pr extproc('xmlCatalogDump') + d out * value FILE * + /endif LIBXML_OUTPUT_ENABLD + + d xmlCatalogResolve... + d pr * extproc('xmlCatalogResolve') xmlChar * + d pubID * value options(*string) const xmlChar * + d sysID * value options(*string) const xmlChar * + + d xmlCatalogResolveSystem... + d pr * extproc('xmlCatalogResolveSystem') xmlChar * + d sysID * value options(*string) const xmlChar * + + d xmlCatalogResolvePublic... + d pr * extproc('xmlCatalogResolvePublic') xmlChar * + d pubID * value options(*string) const xmlChar * + + d xmlCatalogResolveURI... + d pr * extproc('xmlCatalogResolveURI') xmlChar * + d URI * value options(*string) const xmlChar * + + d xmlCatalogAdd pr 10i 0 extproc('xmlCatalogAdd') + d type * value options(*string) const xmlChar * + d orig * value options(*string) const xmlChar * + d replace * value options(*string) const xmlChar * + + d xmlCatalogRemove... + d pr 10i 0 extproc('xmlCatalogRemove') + d value * value options(*string) const xmlChar * + + d xmlParseCatalogFile... + d pr extproc('xmlParseCatalogFile') + d like(xmlDocPtr) + d filename * value options(*string) const char * + + d xmlCatalogConvert... + d pr 10i 0 extproc('xmlCatalogConvert') + + * Strictly minimal interfaces for per-document catalogs used + * by the parser. + + d xmlCatalogFreeLocal... + d pr extproc('xmlCatalogFreeLocal') + d catalogs * value void * + + d xmlCatalogAddLocal... + d pr * extproc('xmlCatalogAddLocal') void * + d catalogs * value void * + d URL * value options(*string) const xmlChar * + + d xmlCatalogLocalResolve... + d pr * extproc('xmlCatalogLocalResolve') xmlChar * + d catalogs * value void * + d pubID * value options(*string) const xmlChar * + d sysID * value options(*string) const xmlChar * + + d xmlCatalogLocalResolveURI... + d pr * extproc('xmlCatalogLocalResolveURI') xmlChar * + d catalogs * value void * + d URI * value options(*string) const xmlChar * + + * Preference settings. + + d xmlCatalogSetDebug... + d pr 10i 0 extproc('xmlCatalogSetDebug') + d level 10i 0 value + + d xmlCatalogSetDefaultPrefer... + d pr extproc('xmlCatalogSetDefaultPrefer') + d like(xmlCatalogPrefer) + d prefer value like(xmlCatalogPrefer) + + d xmlCatalogSetDefaults... + d pr extproc('xmlCatalogSetDefaults') + d allow value like(xmlCatalogAllow) + + d xmlCatalogGetDefaults... + d pr extproc('xmlCatalogGetDefaults') + d like(xmlCatalogAllow) + + * DEPRECATED interfaces + + d xmlCatalogGetSystem... + d pr * extproc('xmlCatalogGetSystem') const xmlChar * + d sysID * value options(*string) const xmlChar * + + d xmlCatalogGetPublic... + d pr * extproc('xmlCatalogGetPublic') const xmlChar * + d pubID * value options(*string) const xmlChar * + + /endif LIBXML_CATALOG_ENBLD + /endif XML_CATALOG_H__ diff --git a/os400/libxmlrpg/chvalid.rpgle b/os400/libxmlrpg/chvalid.rpgle new file mode 100644 index 0000000..33393f6 --- /dev/null +++ b/os400/libxmlrpg/chvalid.rpgle @@ -0,0 +1,97 @@ + * Summary: Unicode character range checking + * Description: this module exports interfaces for the character + * range validation APIs + * + * Copy: See Copyright for the status of this software. + * + * Author: Patrick Monnerat <pm@datasphere.ch>, DATASPHERE S.A. + + /if not defined(XML_CHVALID_H__) + /define XML_CHVALID_H__ + + /include "libxmlrpg/xmlversion" + /include "libxmlrpg/xmlstring" + + * Define our typedefs and structures + + d xmlChSRangePtr s * based(######typedef######) + + d xmlChSRange ds based(xmlChSRangePtr) + d align qualified + d low 5u 0 + d high 5u 0 + + d xmlChLRangePtr s * based(######typedef######) + + d xmlChLRange ds based(xmlChLRangePtr) + d align qualified + d low 10u 0 + d high 10u 0 + + d xmlChRangeGroupPtr... + d s * based(######typedef######) + + d xmlChRangeGroup... + d ds based(xmlChRangeGroupPtr) + d align qualified + d nbShortRange 10i 0 + d nbLongRange 10i 0 + d shortRange like(xmlChSRangePtr) + d longRange like(xmlChLRangePtr) + + * Range checking routine + + d xmlCharInRange pr 10i 0 extproc('xmlCharInRange') + d val 10u 0 value + d group like(xmlChRangeGroupPtr) const + + d xmlIsBaseCharGroup... + d ds import('xmlIsBaseCharGroup') + d likeds(xmlChRangeGroup) const + + d xmlIsCharGroup... + d ds import('xmlIsCharGroup') + d likeds(xmlChRangeGroup) const + + d xmlIsCombiningGroup... + d ds import('xmlIsCombiningGroup') + d likeds(xmlChRangeGroup) const + + d xmlIsDigitGroup... + d ds import('xmlIsDigitGroup') + d likeds(xmlChRangeGroup) const + + d xmlIsExtenderGroup... + d ds import('xmlIsExtenderGroup') + d likeds(xmlChRangeGroup) const + + d xmlIsIdeographicGroup... + d ds import('xmlIsIdeographicGroup') + d likeds(xmlChRangeGroup) const + + d xmlIsBaseChar pr 10i 0 extproc('xmlIsBaseChar') + d ch 10u 0 value + + d xmlIsBlank pr 10i 0 extproc('xmlIsBlank') + d ch 10u 0 value + + d xmlIsChar pr 10i 0 extproc('xmlIsChar') + d ch 10u 0 value + + d xmlIsCombining pr 10i 0 extproc('xmlIsCombining') + d ch 10u 0 value + + d xmlIsDigit pr 10i 0 extproc('xmlIsDigit') + d ch 10u 0 value + + d xmlIsExtender pr 10i 0 extproc('xmlIsExtender') + d ch 10u 0 value + + d xmlIsIdeographic... + d pr 10i 0 extproc('xmlIsIdeographic') + d ch 10u 0 value + + d xmlIsPubidChar pr 10i 0 extproc('xmlIsPubidChar') + d ch 10u 0 value + + /endif XML_CHVALID_H__ diff --git a/os400/libxmlrpg/debugXML.rpgle b/os400/libxmlrpg/debugXML.rpgle new file mode 100644 index 0000000..5005a2d --- /dev/null +++ b/os400/libxmlrpg/debugXML.rpgle @@ -0,0 +1,241 @@ + * Summary: Tree debugging APIs + * Description: Interfaces to a set of routines used for debugging the tree + * produced by the XML parser. + * + * Copy: See Copyright for the status of this software. + * + * Author: Patrick Monnerat <pm@datasphere.ch>, DATASPHERE S.A. + + /if not defined(DEBUG_XML__) + /define DEBUG_XML__ + + /include "libxmlrpg/xmlversion" + /include "libxmlrpg/tree" + + /if defined(LIBXML_DEBUG_ENABLED) + + /include "libxmlrpg/xpath" + + * The standard Dump routines. + + d xmlDebugDumpString... + d pr extproc('xmlDebugDumpString') + d output * value FILE * + d str * value options(*string) const xmlChar * + + d xmlDebugDumpAttr... + d pr extproc('xmlDebugDumpAttr') + d output * value FILE * + d attr value like(xmlAttrPtr) + d depth 10i 0 value + + d xmlDebugDumpAttrList... + d pr extproc('xmlDebugDumpAttrList') + d output * value FILE * + d attr value like(xmlAttrPtr) + d depth 10i 0 value + + d xmlDebugDumpOneNode... + d pr extproc('xmlDebugDumpOneNode') + d output * value FILE * + d node value like(xmlNodePtr) + d depth 10i 0 value + + d xmlDebugDumpNode... + d pr extproc('xmlDebugDumpNode') + d output * value FILE * + d node value like(xmlNodePtr) + d depth 10i 0 value + + d xmlDebugDumpNodeList... + d pr extproc('xmlDebugDumpNodeList') + d output * value FILE * + d node value like(xmlNodePtr) + d depth 10i 0 value + + d xmlDebugDumpDocumentHead... + d pr extproc('xmlDebugDumpDocumentHead') + d output * value FILE * + d doc value like(xmlDocPtr) + + d xmlDebugDumpDocument... + d pr extproc('xmlDebugDumpDocument') + d output * value FILE * + d doc value like(xmlDocPtr) + + d xmlDebugDumpDTD... + d pr extproc('xmlDebugDumpDTD') + d output * value FILE * + d dtd value like(xmlDtdPtr) + + d xmlDebugDumpEntities... + d pr extproc('xmlDebugDumpEntities') + d output * value FILE * + d doc value like(xmlDocPtr) + + **************************************************************** + * * + * Checking routines * + * * + **************************************************************** + + d xmlDebugCheckDocument... + d pr 10i 0 extproc('xmlDebugCheckDocument') + d output * value FILE * + d doc value like(xmlDocPtr) + + **************************************************************** + * * + * XML shell helpers * + * * + **************************************************************** + + d xmlLsOneNode pr extproc('xmlLsOneNode') + d output * value FILE * + d node value like(xmlNodePtr) + + d xmlLsCountNode pr 10i 0 extproc('xmlLsCountNode') + d node value like(xmlNodePtr) + + d xmlBoolToText pr * extproc('xmlBoolToText') const char * + d boolval 10i 0 value + + **************************************************************** + * * + * The XML shell related structures and functions * + * * + **************************************************************** + + /if defined(LIBXML_XPATH_ENABLED) + + * xmlShellReadlineFunc: + * @prompt: a string prompt + * + * This is a generic signature for the XML shell input function. + * + * Returns a string which will be freed by the Shell. + + d xmlShellReadlineFunc... + d s * based(######typedef######) + d procptr + + * xmlShellCtxt: + * + * A debugging shell context. + * TODO: add the defined function tables. + + d xmlShellCtxtPtr... + d s * based(######typedef######) + + d xmlSchellCtxt ds based(xmlShellCtxtPtr) + d align qualified + d filename * char * + d doc like(xmlDocPtr) + d node like(xmlNodePtr) + d pctxt like(xmlXPathContextPtr) + d loaded 10i 0 + d output * FILE * + d input like(xmlShellReadlineFunc) + + * xmlShellCmd: + * @ctxt: a shell context + * @arg: a string argument + * @node: a first node + * @node2: a second node + * + * This is a generic signature for the XML shell functions. + * + * Returns an int, negative returns indicating errors. + + d xmlShellCmd s * based(######typedef######) + d procptr + + d xmlShellPrintXPathError... + d pr extproc('xmlShellPrintXPathError') + d errorType 10i 0 value + d arg * value options(*string) const char * + + d xmlShellPrintXPathResult... + d pr extproc('xmlShellPrintXPathResult') + d list value like(xmlXPathObjectPtr) + + d xmlShellList pr 10i 0 extproc('xmlShellList') + d ctxt value like(xmlShellCtxtPtr) + d arg * value options(*string) char * + d node value like(xmlNodePtr) + d node2 value like(xmlNodePtr) + + d xmlShellBase pr 10i 0 extproc('xmlShellBase') + d ctxt value like(xmlShellCtxtPtr) + d arg * value options(*string) char * + d node value like(xmlNodePtr) + d node2 value like(xmlNodePtr) + + d xmlShellDir pr 10i 0 extproc('xmlShellDir') + d ctxt value like(xmlShellCtxtPtr) + d arg * value options(*string) char * + d node value like(xmlNodePtr) + d node2 value like(xmlNodePtr) + + d xmlShellLoad pr 10i 0 extproc('xmlShellLoad') + d ctxt value like(xmlShellCtxtPtr) + d filename * value options(*string) char * + d node value like(xmlNodePtr) + d node2 value like(xmlNodePtr) + + /if defined(LIBXML_OUTPUT_ENABLED) + d xmlShellPrintNode... + d pr extproc('xmlShellPrintNode') + d node value like(xmlNodePtr) + + d xmlShellCat pr 10i 0 extproc('xmlShellCat') + d ctxt value like(xmlShellCtxtPtr) + d arg * value options(*string) char * + d node value like(xmlNodePtr) + d node2 value like(xmlNodePtr) + + d xmlShellWrite pr 10i 0 extproc('xmlShellWrite') + d ctxt value like(xmlShellCtxtPtr) + d filename * value options(*string) char * + d node value like(xmlNodePtr) + d node2 value like(xmlNodePtr) + + d xmlShellSave pr 10i 0 extproc('xmlShellSave') + d ctxt value like(xmlShellCtxtPtr) + d filename * value options(*string) char * + d node value like(xmlNodePtr) + d node2 value like(xmlNodePtr) + /endif LIBXML_OUTPUT_ENABLD + + /if defined(LIBXML_VALID_ENABLED) + d xmlShellValidate... + d pr 10i 0 extproc('xmlShellValidate') + d ctxt value like(xmlShellCtxtPtr) + d dtd * value options(*string) char * + d node value like(xmlNodePtr) + d node2 value like(xmlNodePtr) + /endif LIBXML_VALID_ENABLED + + d xmlShellDu pr 10i 0 extproc('xmlShellDu') + d ctxt value like(xmlShellCtxtPtr) + d arg * value options(*string) char * + d tree value like(xmlNodePtr) + d node2 value like(xmlNodePtr) + + d xmlShellPwd pr 10i 0 extproc('xmlShellPwd') + d ctxt value like(xmlShellCtxtPtr) + d buffer * value options(*string) char * + d node value like(xmlNodePtr) + d node2 value like(xmlNodePtr) + + * The Shell interface. + + d xmlShell pr extproc('xmlShell') + d doc value like(xmlDocPtr) + d filename * value options(*string) char * + d input value like(xmlShellReadlineFunc) + d output * value FILE * + + /endif LIBXML_XPATH_ENABLED + /endif LIBXML_DEBUG_ENABLED + /endif DEBUG_XML__ diff --git a/os400/libxmlrpg/dict.rpgle b/os400/libxmlrpg/dict.rpgle new file mode 100644 index 0000000..cd36f50 --- /dev/null +++ b/os400/libxmlrpg/dict.rpgle @@ -0,0 +1,78 @@ + * Summary: string dictionary + * Description: dictionary of reusable strings, just used to avoid + * allocation and freeing operations. + * + * Copy: See Copyright for the status of this software. + * + * Author: Patrick Monnerat <pm@datasphere.ch>, DATASPHERE S.A. + + /if not defined(XML_DICT_H__) + /define XML_DICT_H__ + + /include "libxmlrpg/xmlversion" + /include "libxmlrpg/tree" + + * The dictionary. + + d xmlDictPtr s * based(######typedef######) + + * Initializer + + d xmlInitializeDict... + d pr 10i 0 extproc('xmlInitializeDict') + + * Constructor and destructor. + + d xmlDictCreate pr extproc('xmlDictCreate') + d like(xmlDictPtr) + + d xmlDictSetLimit... + d pr 10u 0 extproc('xmlDictSetLimit') size_t + d dict value like(xmlDictPtr) + d limit 10u 0 value size_t + + d xmlDictGetUsage... + d pr 10u 0 extproc('xmlDictGetUsage') size_t + d dict value like(xmlDictPtr) + + d xmlDictCreateSub... + d pr extproc('xmlDictCreateSub') + d like(xmlDictPtr) + d sub value like(xmlDictPtr) + + d xmlDictReference... + d pr 10i 0 extproc('xmlDictGetReference') + d dict value like(xmlDictPtr) + + d xmlDictFree pr extproc('xmlDictFree') + d dict value like(xmlDictPtr) + + * Lookup of entry in the dictionary. + + d xmlDictLookup pr * extproc('xmlDictLookup') const xmlChar * + d dict value like(xmlDictPtr) + d name * value options(*string) const xmlChar * + d len 10i 0 value + + d xmlDictExists pr * extproc('xmlDictExists') const xmlChar * + d dict value like(xmlDictPtr) + d name * value options(*string) const xmlChar * + d len 10i 0 value + + d xmlDictQLookup pr * extproc('xmlDictQLookup') const xmlChar * + d dict value like(xmlDictPtr) + d name * value options(*string) const xmlChar * + d name * value options(*string) const xmlChar * + + d xmlDictOwns pr 10i 0 extproc('xmlDictOwns') + d dict value like(xmlDictPtr) + d str * value options(*string) const xmlChar * + + d xmlDictSize pr 10i 0 extproc('xmlDictSize') + d dict value like(xmlDictPtr) + + * Cleanup function + + d xmlDictCleanup pr extproc('xmlDictCleanup') + + /endif ! XML_DICT_H__ diff --git a/os400/libxmlrpg/encoding.rpgle b/os400/libxmlrpg/encoding.rpgle new file mode 100644 index 0000000..80970fb --- /dev/null +++ b/os400/libxmlrpg/encoding.rpgle @@ -0,0 +1,274 @@ + * Summary: interface for the encoding conversion functions + * Description: interface for the encoding conversion functions needed for + * XML basic encoding and iconv() support. + * + * Related specs are + * rfc2044 (UTF-8 and UTF-16) F. Yergeau Alis Technologies + * [ISO-10646] UTF-8 and UTF-16 in Annexes + * [ISO-8859-1] ISO Latin-1 characters codes. + * [UNICODE] The Unicode Consortium, "The Unicode Standard -- + * Worldwide Character Encoding -- Version 1.0", Addison- + * Wesley, Volume 1, 1991, Volume 2, 1992. UTF-8 is + * described in Unicode Technical Report #4. + * [US-ASCII] Coded Character Set--7-bit American Standard Code for + * Information Interchange, ANSI X3.4-1986. + * + * Copy: See Copyright for the status of this software. + * + * Author: Patrick Monnerat <pm@datasphere.ch>, DATASPHERE S.A. + + /if not defined(XML_CHAR_ENCODING_H__) + /define XML_CHAR_ENCODING_H__ + + /include "libxmlrpg/xmlversion" + + * xmlCharEncoding: + * + * Predefined values for some standard encodings. + * Libxml does not do beforehand translation on UTF8 and ISOLatinX. + * It also supports ASCII, ISO-8859-1, and UTF16 (LE and BE) by default. + * + * Anything else would have to be translated to UTF8 before being + * given to the parser itself. The BOM for UTF16 and the encoding + * declaration are looked at and a converter is looked for at that + * point. If not found the parser stops here as asked by the XML REC. A + * converter can be registered by the user + * xmlRegisterCharEncodingHandler but the current form doesn't allow + * stateful transcoding (a serious problem agreed !). If iconv has been + * found it will be used automatically and allow stateful transcoding, + * the simplest is then to be sure to enable iconv and to provide iconv + * libs for the encoding support needed. + * + * Note that the generic "UTF-16" is not a predefined value. Instead, only + * the specific UTF-16LE and UTF-16BE are present. + + d xmlCharEncoding... + d s 10i 0 based(######typedef######) enum + d XML_CHAR_ENCODING_ERROR... No encoding detected + d c -1 + d XML_CHAR_ENCODING_NONE... No encoding detected + d c 0 + d XML_CHAR_ENCODING_UTF8... UTF-8 + d c 1 + d XML_CHAR_ENCODING_UTF16LE... UTF-16 little endian + d c 2 + d XML_CHAR_ENCODING_UTF16BE... UTF-16 big endian + d c 3 + d XML_CHAR_ENCODING_UCS4LE... UCS-4 little endian + d c 4 + d XML_CHAR_ENCODING_UCS4BE... UCS-4 big endian + d c 5 + d XML_CHAR_ENCODING_EBCDIC... EBCDIC uh! + d c 6 + d XML_CHAR_ENCODING_UCS4_2143... UCS-4 unusual order + d c 7 + d XML_CHAR_ENCODING_UCS4_3412... UCS-4 unusual order + d c 8 + d XML_CHAR_ENCODING_UCS2... UCS-2 + d c 9 + d XML_CHAR_ENCODING_8859_1... ISO-8859-1 ISOLatin1 + d c 10 + d XML_CHAR_ENCODING_8859_2... ISO-8859-2 ISOLatin2 + d c 11 + d XML_CHAR_ENCODING_8859_3... ISO-8859-3 + d c 12 + d XML_CHAR_ENCODING_8859_4... ISO-8859-4 + d c 13 + d XML_CHAR_ENCODING_8859_5... ISO-8859-5 + d c 14 + d XML_CHAR_ENCODING_8859_6... ISO-8859-6 + d c 15 + d XML_CHAR_ENCODING_8859_7... ISO-8859-7 + d c 16 + d XML_CHAR_ENCODING_8859_8... ISO-8859-8 + d c 17 + d XML_CHAR_ENCODING_8859_9... ISO-8859-9 + d c 18 + d XML_CHAR_ENCODING_2022_JP... ISO-2022-JP + d c 19 + d XML_CHAR_ENCODING_SHIFT_JIS... Shift_JIS + d c 20 + d XML_CHAR_ENCODING_EUC_JP... EUC-JP + d c 21 + d XML_CHAR_ENCODING_ASCII... Pure ASCII + d c 22 + + * xmlCharEncodingInputFunc: + * @out: a pointer to an array of bytes to store the UTF-8 result + * @outlen: the length of @out + * @in: a pointer to an array of chars in the original encoding + * @inlen: the length of @in + * + * Take a block of chars in the original encoding and try to convert + * it to an UTF-8 block of chars out. + * + * Returns the number of bytes written, -1 if lack of space, or -2 + * if the transcoding failed. + * The value of @inlen after return is the number of octets consumed + * if the return value is positive, else unpredictiable. + * The value of @outlen after return is the number of octets consumed. + + d xmlCharEncodingInputFunc... + d s * based(######typedef######) + d procptr + + * xmlCharEncodingOutputFunc: + * @out: a pointer to an array of bytes to store the result + * @outlen: the length of @out + * @in: a pointer to an array of UTF-8 chars + * @inlen: the length of @in + * + * Take a block of UTF-8 chars in and try to convert it to another + * encoding. + * Note: a first call designed to produce heading info is called with + * in = NULL. If stateful this should also initialize the encoder state. + * + * Returns the number of bytes written, -1 if lack of space, or -2 + * if the transcoding failed. + * The value of @inlen after return is the number of octets consumed + * if the return value is positive, else unpredictiable. + * The value of @outlen after return is the number of octets produced. + + d xmlCharEncodingOutputFunc... + d s * based(######typedef######) + d procptr + + * Block defining the handlers for non UTF-8 encodings. + * If iconv is supported, there are two extra fields. + + /if defined(LIBXML_ICU_ENABLED) + d uconv_t ds based(######typedef######) + d align qualified + d uconv * UConverter * + d utf8 * UConverter * + /endif + + d xmlCharEncodingHandlerPtr... + d s * based(######typedef######) + + d xmlCharEncodingHandler... + d ds based(xmlCharEncodingHandlerPtr) + d align qualified + d name * char * + d input like(xmlCharEncodingInputFunc) + d output like(xmlCharEncodingOutputFunc) + * + /if defined(LIBXML_ICONV_ENABLED) + d iconv_in * iconv_t + d iconv_out * iconv_t + /endif LIBXML_ICONV_ENABLED + * + /if defined(LIBXML_ICU_ENABLED) + d uconv_in * uconv_t * + d uconv_out * uconv_t * + /endif LIBXML_ICU_ENABLED + + /include "libxmlrpg/tree" + + * Interfaces for encoding handlers. + + d xmlInitCharEncodingHandlers... + d pr extproc( + d 'xmlInitCharEncodingHandlers') + + d xmlCleanupCharEncodingHandlers... + d pr extproc( + d 'xmlCleanupCharEncodingHandlers') + + d xmlRegisterCharEncodingHandler... + d pr extproc( + d 'xmlRegisterCharEncodingHandler') + d handler value like(xmlCharEncodingHandlerPtr) + + d xmlGetCharEncodingHandler... + d pr extproc('xmlGetCharEncodingHandler') + d like(xmlCharEncodingHandlerPtr) + d enc value like(xmlCharEncoding) + + d xmlFindCharEncodingHandler... + d pr extproc('xmlFindCharEncodingHandler') + d like(xmlCharEncodingHandlerPtr) + d name * value options(*string) const char * + + d xmlNewCharEncodingHandler... + d pr extproc('xmlNewCharEncodingHandler') + d like(xmlCharEncodingHandlerPtr) + d name * value options(*string) const char * + d input value like(xmlCharEncodingInputFunc) + d output value like(xmlCharEncodingOutputFunc) + + * Interfaces for encoding names and aliases. + + d xmlAddEncodingAlias... + d pr 10i 0 extproc('xmlAddEncodingAlias') + d name * value options(*string) const char * + d alias * value options(*string) const char * + + d xmlDelEncodingAlias... + d pr 10i 0 extproc('xmlDelEncodingAlias') + d alias * value options(*string) const char * + + d xmlGetEncodingAlias... + d pr * extproc('xmlGetEncodingAlias') const char * + d alias * value options(*string) const char * + + d xmlCleanupEncodingAliases... + d pr extproc('xmlCleanupEncodingAliases') + + d xmlParseCharEncoding... + d pr extproc('xmlParseCharEncoding') + d like(xmlCharEncoding) + d name * value options(*string) const char * + + d xmlGetCharEncodingName... + d pr * extproc('xmlGetCharEncodingName') const char * + d enc value like(xmlCharEncoding) + + * Interfaces directly used by the parsers. + + d xmlDetectCharEncoding... + d pr extproc('xmlDetectCharEncoding') + d like(xmlCharEncoding) + d in * value options(*string) const unsigned char* + d len 10i 0 value + + d xmlCharEncOutFunc... + d pr 10i 0 extproc('xmlCharEncOutFunc') + d handler like(xmlCharEncodingHandler) + d out value like(xmlBufferPtr) + d in value like(xmlBufferPtr) + + d xmlCharEncInFunc... + d pr 10i 0 extproc('xmlCharEncInFunc') + d handler like(xmlCharEncodingHandler) + d out value like(xmlBufferPtr) + d in value like(xmlBufferPtr) + + d xmlCharEncFirstLine... + d pr 10i 0 extproc('xmlCharEncFirstLine') + d handler like(xmlCharEncodingHandler) + d out value like(xmlBufferPtr) + d in value like(xmlBufferPtr) + + d xmlCharEncCloseFunc... + d pr 10i 0 extproc('xmlCharEncCloseFunc') + d handler like(xmlCharEncodingHandler) + + * Export a few useful functions + + /if defined(LIBXML_OUTPUT_ENABLED) + d UTF8Toisolat1 pr 10i 0 extproc('UTF8Toisolat1') + d out 65535 options(*varsize) unsigned char (*) + d outlen 10i 0 + d in * value options(*string) const unsigned char* + d inlen 10i 0 + + /endif LIBXML_OUTPUT_ENABLD + + d isolat1ToUTF8 pr 10i 0 extproc('isolat1ToUTF8') + d out 65535 options(*varsize) unsigned char (*) + d outlen 10i 0 + d in * value options(*string) const unsigned char* + d inlen 10i 0 + + /endif XML_CHAR_ENCODING_H diff --git a/os400/libxmlrpg/entities.rpgle b/os400/libxmlrpg/entities.rpgle new file mode 100644 index 0000000..8d97915 --- /dev/null +++ b/os400/libxmlrpg/entities.rpgle @@ -0,0 +1,174 @@ + * Summary: interface for the XML entities handling + * Description: this module provides some of the entity API needed + * for the parser and applications. + * + * Copy: See Copyright for the status of this software. + * + * Author: Patrick Monnerat <pm@datasphere.ch>, DATASPHERE S.A. + + /if not defined(XML_ENTITIES_H__) + /define XML_ENTITIES_H__ + + /include "libxmlrpg/xmlversion" + /include "libxmlrpg/tree" + + * The different valid entity types. + + d xmlEntityType s 10i 0 based(######typedef######) enum + d XML_INTERNAL_GENERAL_ENTITY... + d c 1 + d XML_EXTERNAL_GENERAL_PARSED_ENTITY... + d c 2 + d XML_EXTERNAL_GENERAL_UNPARSED_ENTITY... + d c 3 + d XML_INTERNAL_PARAMETER_ENTITY... + d c 4 + d XML_EXTERNAL_PARAMETER_ENTITY... + d c 5 + d XML_INTERNAL_PREDEFINED_ENTITY... + d c 6 + + * An unit of storage for an entity, contains the string, the value + * and the linkind data needed for the linking in the hash table. + + d xmlEntity ds based(xmlEntityPtr) + d align qualified + d #private * void * + d type like(xmlElementType) XML_ENTITY_DECL + d name * const xmlChar * + d children like(xmlNodePtr) First child link + d last like(xmlNodePtr) Last child link + d parent like(xmlDtdPtr) -> DTD + d next like(xmlNodePtr) next sibling link + d prev like(xmlNodePtr) prev sibling link + d doc like(xmlDocPtr) containing document + d orig * xmlChar * + d content * xmlChar * + d length 10i 0 content length + d etype like(xmlEntityType) The entity type + d ExternalID * const xmlChar * + d SystemlID * const xmlChar * + d nexte like(xmlEntityPtr) unused + d URI * const xmlChar * + d owner 10i 0 Owns children ? + d checked 10i 0 Content checked ? + + * All entities are stored in an hash table. + * There is 2 separate hash tables for global and parameter entities. + + d xmlEntitiesTablePtr... + d s * based(######typedef######) + + * External functions: + + /if defined(LIBXML_LEGACY_ENABLED) + d xmlInitializePredefinedEntities... + d pr extproc( + d 'xmlInitializePredefinedEntities') + /endif LIBXML_LEGACY_ENABLD + + d xmlNewEntity pr extproc('xmlNewEntity') + d like(xmlEntityPtr) + d doc value like(xmlDocPtr) + d name * value options(*string) const xmlChar * + d type 10i 0 value + d ExternalID * value options(*string) const xmlChar * + d SystemID * value options(*string) const xmlChar * + d content * value options(*string) const xmlChar * + + d xmlAddDocEntity... + d pr extproc('xmlAddDocEntity') + d like(xmlEntityPtr) + d doc value like(xmlDocPtr) + d name * value options(*string) const xmlChar * + d type 10i 0 value + d ExternalID * value options(*string) const xmlChar * + d SystemID * value options(*string) const xmlChar * + d content * value options(*string) const xmlChar * + + d xmlAddDtdEntity... + d pr extproc('xmlAddDtdEntity') + d like(xmlEntityPtr) + d doc value like(xmlDocPtr) + d name * value options(*string) const xmlChar * + d type 10i 0 value + d ExternalID * value options(*string) const xmlChar * + d SystemID * value options(*string) const xmlChar * + d content * value options(*string) const xmlChar * + + d xmlGetPredefinedEntity... + d pr extproc('xmlGetPredefinedEntity') + d like(xmlEntityPtr) + d name * value options(*string) const xmlChar * + + d xmlGetDocEntity... + d pr extproc('xmlGetDocEntity') + d like(xmlEntityPtr) + d doc value like(xmlDocPtr) + d name * value options(*string) const xmlChar * + + d xmlGetDtdEntity... + d pr extproc('xmlGetDtdEntity') + d like(xmlEntityPtr) + d doc value like(xmlDocPtr) + d name * value options(*string) const xmlChar * + + d xmlGetParameterEntity... + d pr extproc('xmlGetParameterEntity') + d like(xmlEntityPtr) + d doc value like(xmlDocPtr) + d name * value options(*string) const xmlChar * + + + /if defined(LIBXML_LEGACY_ENABLED) + d xmlEncodeEntities... + d pr * extproc('xmlEncodeEntities') xmlChar * + d doc value like(xmlDocPtr) + d input * value options(*string) const xmlChar * + /endif LIBXML_LEGACY_ENABLD + + d xmlEncodeEntitiesReentrant... + d pr * extproc( xmlChar * + d 'xmlEncodeEntitiesReentrant') + d doc value like(xmlDocPtr) + d input * value options(*string) const xmlChar * +XMLPU + d xmlEncodeSpecialChars... + d pr * extproc('xmlSpecialChars') xmlChar * + d doc value like(xmlDocPtr) + d input * value options(*string) const xmlChar * +XMLPU + d xmlCreateEntitiesTable... + d pr extproc('xmlCreateEntitiesTable') + d like(xmlEntitiesTablePtr) + + /if defined(LIBXML_TREE_ENABLED) + d xmlCopyEntitiesTable... + d pr extproc('xmlCopyEntitiesTable') + d like(xmlEntitiesTablePtr) + d table value like(xmlEntitiesTablePtr) + /endif LIBXML_TREE_ENABLED + + d xmlFreeEntitiesTable... + d pr extproc('xmlFreeEntitiesTable') + d table value like(xmlEntitiesTablePtr) +XMLPU + /if defined(LIBXML_OUTPUT_ENABLED) + d xmlDumpEntitiesTable... + d pr extproc('xmlDumpEntitiesTable') + d buf value like(xmlBufferPtr) + d table value like(xmlEntitiesTablePtr) +XMLPU + d xmlDumpEntityDecl... + d pr extproc('xmlDumpEntityDecl') + d buf value like(xmlBufferPtr) + d ent value like(xmlEntityPtr) + /endif LIBXML_OUTPUT_ENABLD + + /if defined(LIBXML_LEGACY_ENABLED) + d xmlCleanupPredefinedEntities... + d pr extproc( +XMLPUd 'xmlCleanupPredefinedEntities') + /endif LIBXML_LEGACY_ENABLD + + /endif XML_ENTITIES_H__ diff --git a/os400/libxmlrpg/globals.rpgle b/os400/libxmlrpg/globals.rpgle new file mode 100644 index 0000000..80dadca --- /dev/null +++ b/os400/libxmlrpg/globals.rpgle @@ -0,0 +1,557 @@ + * Summary: interface for all global variables of the library + * Description: all the global variables and thread handling for + * those variables is handled by this module. + * + * The bottom of this file is automatically generated by build_glob.py + * based on the description file global.data + * + * Copy: See Copyright for the status of this software. + * + * Author: Patrick Monnerat <pm@datasphere.ch>, DATASPHERE S.A. + + /if not defined(XML_GLOBALS_H) + /define XML_GLOBALS_H + + /include "libxmlrpg/xmlversion" + /include "libxmlrpg/parser" + /include "libxmlrpg/xmlerror" + /include "libxmlrpg/SAX" + /include "libxmlrpg/SAX2" + /include "libxmlrpg/xmlmemory" + + d xmlInitGlobals pr extproc('xmlInitGlobals') + + d xmlCleanupGlobals... + d pr extproc('xmlCleanupGlobals') + + * xmlParserInputBufferCreateFilenameFunc: + * @URI: the URI to read from + * @enc: the requested source encoding + * + * Signature for the function doing the lookup for a suitable input method + * corresponding to an URI. + * + * Returns the new xmlParserInputBufferPtr in case of success or NULL if no + * method was found. + + d xmlParserInputBufferCreateFilenameFunc... + d s * based(######typedef######) + d procptr + + * xmlOutputBufferCreateFilenameFunc: + * @URI: the URI to write to + * @enc: the requested target encoding + * + * Signature for the function doing the lookup for a suitable output method + * corresponding to an URI. + * + * Returns the new xmlOutputBufferPtr in case of success or NULL if no + * method was found. + + d xmlOutputBufferCreateFilenameFunc... + d s * based(######typedef######) + d procptr + + d xmlParserInputBufferCreateFilenameDefault... + d pr extproc('xmlParserInputBufferCreate+ + d FilenameDefault') + d like(xmlParserInputBuffer... + d CreateFilenameFunc) + d func value like(xmlParserInputBuffer... + d CreateFilenameFunc) + + d xmlOutputBufferCreateFilenameDefault... + d pr extproc('xmlOutputBufferCreate+ + d FilenameDefault') + d like(xmlOutputBuffer... + d CreateFilenameFunc) + d func value like(xmlOutputBuffer... + d CreateFilenameFunc) + + * xmlRegisterNodeFunc: + * @node: the current node + * + * Signature for the registration callback of a created node + + d xmlRegisterNodeFunc... + d s * based(######typedef######) + d procptr + + * xmlDeregisterNodeFunc: + * @node: the current node + * + * Signature for the deregistration callback of a discarded node + + d xmlDeregisterNodeFunc... + d s * based(######typedef######) + d procptr + + d xmlGlobalStatePtr... + d s * based(######typedef######) + + d xmlGlobalState ds based(xmlGlobalStatePtr) + d align qualified + d xmlParserVersion... + d * const char * + d xmlDefaultSAXLocator... + d like(xmlSAXLocator) + d xmlDefaultSAXHandler... + d like(xmlSAXHandlerV1) + d docbDefaultSAXHandler... + d like(xmlSAXHandlerV1) + d htmlDefaultSAXHandler... + d like(xmlSAXHandlerV1) + d xmlFree like(xmlFreeFunc) + d xmlMalloc like(xmlMallocFunc) + d xmlMemStrdup like(xmlStrdupFunc) + d xmlRealloc like(xmlReallocFunc) + d xmlGenericError... + d like(xmlGenericErrorFunc) + d xmlStructuredError... + d like(xmlStructuredErrorFunc) + d xmlGenericErrorContext... + d * void * + d oldXMLWDcompatibility... + d 10i 0 + d xmlBufferAllocScheme... + d like(xmlBufferAllocationScheme) + d xmlDefaultBufferSize... + d 10i 0 + d xmlSubstituteEntitiesDefaultValue... + d 10i 0 + d xmlDoValidityCheckingDefaultValue... + d 10i 0 + d xmlGetWarningsDefaultValue... + d 10i 0 + d xmlKeepBlanksDefaultValue... + d 10i 0 + d xmlLineNumbersDefaultValue... + d 10i 0 + d xmlLoadExtDtdDefaultValue... + d 10i 0 + d xmlParserDebugEntities... + d 10i 0 + d xmlPedanticParserDefaultValue... + d 10i 0 + d xmlSaveNoEmptyTags... + d 10i 0 + d xmlIndentTreeOutput... + d 10i 0 + d xmlTreeIndentString... + d * const char * + d xmlRegisterNodeDefaultValue... + d like(xmlRegisterNodeFunc) + d xmlDeregisterNodeDefaultValue... + d like(xmlDeregisterNodeFunc) + d xmlMallocAtomic... + d like(xmlMallocFunc) + d xmlLastError like(xmlError) + d xmlParserInputBufferCreateFilenameValue... + d like(xmlParserInputBuffer... + d CreateFilenameFunc) + d xmlOutputBufferCreateFilenameValue... + d like(xmlOutputBuffer... + d CreateFilenameFunc) + d xmlStructuredErrorContext... + d * void * + + /include "libxmlrpg/threads" + + d xmlInitializeGlobalState... + d pr extproc('xmlInitializeGlobalState') + d qs value like(xmlGlobalStatePtr) + + d xmlThrDefSetGenericErrorFunc... + d pr extproc( + d 'xmlThrDefSetGenericErrorFunc') + d ctx * value void * + d handler value like(xmlGenericErrorFunc) + + d xmlThrDefSetStructuredErrorFunc... + d pr extproc( + d 'xmlThrDefSetStructuredErrorFunc') + d ctx * value void * + d handler value like(xmlStructuredErrorFunc) + + d xmlRegisterNodeDefault... + d pr extproc('xmlRegisterNodeDefault') + d like(xmlRegisterNodeFunc) + d func value like(xmlRegisterNodeFunc) + + d xmlThrDefRegisterNodeDefault... + d pr extproc( + d 'xmlThrDefRegisterNodeDefault') + d like(xmlRegisterNodeFunc) + d func value like(xmlRegisterNodeFunc) + + d xmlDeregisterNodeDefault... + d pr extproc('xmlDeregisterNodeDefault') + d like(xmlDeregisterNodeFunc) + d func value like(xmlDeregisterNodeFunc) + + d xmlThrDefDeregisterNodeDefault... + d pr extproc( + d 'xmlThrDefDeregisterNodeDefault') + d like(xmlDeregisterNodeFunc) + d func value like(xmlDeregisterNodeFunc) + + d xmlThrDefOutputBufferCreateFilenameDefault... + d pr extproc('xmlThrDefOutputBuffer+ + d CreateFilenameDefault') + d like(xmlOutputBuffer... + d CreateFilenameFunc) + d func value like(xmlOutputBuffer... + d CreateFilenameFunc) + + d xmlThrDefParserInputBufferCreateFilenameDefault... + d pr extproc('xmlThrDefParserInputBuffer+ + d CreateFilenameDefault') + d like(xmlParserInputBuffer... + d CreateFilenameFunc) + d func value like(xmlParserInputBuffer... + d CreateFilenameFunc) + + /if defined(LIBXML_DOCB_ENABLED) + d get_docbDefaultSAXHandler... + d pr extproc( + d '__get_docbDefaultSAXHandler') + d like(xmlSAXHandlerV1) + + d set_docbDefaultSAXHandler... + d pr extproc( + d '__set_docbDefaultSAXHandler') + d value value like(xmlSAXHandlerV1) + /endif + + /if defined(LIBXML_HTML_ENABLED) + d get_htmlDefaultSAXHandler... + d pr extproc( + d '__get_htmlDefaultSAXHandler') + d like(xmlSAXHandlerV1) + + d set_htmlDefaultSAXHandler... + d pr extproc( + d '__set_htmlDefaultSAXHandler') + d value value like(xmlSAXHandlerV1) + /endif + + d get_xmlLastError... + d pr extproc('__get_xmlLastError') + d like(xmlError) + + d set_xmlLastError... + d pr extproc('__set_xmlLastError') + d value value like(xmlError) + + d get_oldXMLWDcompatibility... + d pr 10i 0 extproc( + d '__get_oldXMLWDcompatibility') + + d set_oldXMLWDcompatibility... + d pr extproc( + d '__set_oldXMLWDcompatibility') + d value 10i 0 value + + d get_xmlBufferAllocScheme... + d pr extproc('__get_xmlBufferAllocScheme') + d like(xmlBufferAllocationScheme) + + d set_xmlBufferAllocScheme... + d pr extproc('__set_xmlBufferAllocScheme') + d value value like(xmlBufferAllocationScheme) + + d xmlThrDefBufferAllocScheme... + d pr extproc('xmlThrDefBufferAllocScheme') + d like(xmlBufferAllocationScheme) + d v value like(xmlBufferAllocationScheme) + + d get_xmlDefaultBufferSize... + d pr 10i 0 extproc('__get_xmlDefaultBufferSize') + + d set_xmlDefaultBufferSize... + d pr extproc('__set_xmlDefaultBufferSize') + d value 10i 0 value + + d xmlThrDefDefaultBufferSize... + d pr 10i 0 extproc('xmlThrDefDefaultBufferSize') + d v 10i 0 value + + d get_xmlDefaultSAXHandler... + d pr extproc('__get_xmlDefaultSAXHandler') + d like(xmlSAXHandlerV1) + + d set_xmlDefaultSAXHandler... + d pr extproc('__set_xmlDefaultSAXHandler') + d value value like(xmlSAXHandlerV1) + + d get_xmlDefaultSAXLocator... + d pr extproc('__get_xmlDefaultSAXLocator') + d like(xmlSAXLocator) + + d set_xmlDefaultSAXLocator... + d pr extproc('__set_xmlDefaultSAXLocator') + d value value like(xmlSAXLocator) + + d get_xmlDoValidityCheckingDefaultValue... + d pr 10i 0 extproc('__get_xmlDoValidity+ + d CheckingDefaultValue') + + d set_xmlDoValidityCheckingDefaultValue... + d pr extproc('__set_xmlDoValidity+ + d CheckingDefaultValue') + d value 10i 0 value + + d xmlThrDefDoValidityCheckingDefaultValue... + d pr 10i 0 extproc('xmlThrDefDoValidity+ + d CheckingDefaultValue') + d v 10i 0 value + + d get_xmlGenericError... + d pr extproc('__get_xmlGenericError') + d like(xmlGenericErrorFunc) + + d set_xmlGenericError... + d pr extproc('__set_xmlGenericError') + d func value like(xmlGenericErrorFunc) + + d get_xmlStructuredError... + d pr extproc('__get_xmlStructuredError') + d like(xmlStructuredErrorFunc) + + d set_xmlStructuredError... + d pr extproc('__set_xmlStructuredError') + d func value like(xmlStructuredErrorFunc) + + d xmlStructuredError... + d pr extproc('__call_xmlStructuredError') + d userData * value options(*string) void * + d error value like(xmlErrorPtr) + + d get_xmlGenericErrorContext... + d pr extproc( + d '__get_xmlGenericErrorContext') + d * void * + + d set_xmlGenericErrorContext... + d pr extproc( + d '__set_xmlGenericErrorContext') + d value * value options(*string) void * + + d get_xmlStructuredErrorContext... + d pr extproc( + d '__get_xmlStructuredErrorContext') + d * void * + + d set_xmlStructuredErrorContext... + d pr extproc( + d '__set_xmlStructuredErrorContext') + d value * value options(*string) void * + + d get_xmlGetWarningsDefaultValue... + d pr 10i 0 extproc( + d '__get_xmlGetWarningsDefaultValue') + + d set_xmlGetWarningsDefaultValue... + d pr extproc( + d '__set_xmlGetWarningsDefaultValue') + d value 10i 0 value + + d xmlThrDefGetWarningsDefaultValue... + d pr 10i 0 extproc( + d 'xmlThrDefGetWarningsDefaultValue') + d v 10i 0 value + + d get_xmlIndentTreeOutput... + d pr 10i 0 extproc('__get_xmlIndentTreeOutput') + + d set_xmlIndentTreeOutput... + d pr extproc('__set_xmlIndentTreeOutput') + d value 10i 0 value + + d xmlThrDefIndentTreeOutput... + d pr 10i 0 extproc('xmlThrDefIndentTreeOutput') + d v 10i 0 value + + d get_xmlTreeIndentString... + d pr * extproc('__get_xmlTreeIndentString') const char * + + d set_xmlTreeIndentString... + d pr extproc('__set_xmlTreeIndentString') + d value * value options(*string) const char * + + d xmlThrDefTreeIndentString... + d pr * extproc('xmlThrDefTreeIndentString') const char * + d v * value options(*string) const char * + + d get_xmlKeepBlanksDefaultValue... + d pr 10i 0 extproc( + d '__get_xmlKeepBlanksDefaultValue') + + d set_xmlKeepBlanksDefaultValue... + d pr extproc( + d '__set_xmlKeepBlanksDefaultValue') + d value 10i 0 value + + d xmlThrDefKeepBlanksDefaultValue... + d pr 10i 0 extproc( + d 'xmlThrDefKeepBlanksDefaultValue') + d v 10i 0 value + + d get_xmlLineNumbersDefaultValue... + d pr 10i 0 extproc( + d '__get_xmlLineNumbersDefaultValue') + + d set_xmlLineNumbersDefaultValue... + d pr extproc( + d '__set_xmlLineNumbersDefaultValue') + d value 10i 0 value + + d xmlThrDefLineNumbersDefaultValue... + d pr 10i 0 extproc( + d 'xmlThrDefLineNumbersDefaultValue') + d v 10i 0 value + + d get_xmlLoadExtDtdDefaultValue... + d pr 10i 0 extproc( + d '__get_xmlLoadExtDtdDefaultValue') + + d set_xmlLoadExtDtdDefaultValue... + d pr extproc( + d '__set_xmlLoadExtDtdDefaultValue') + d value 10i 0 value + + d xmlThrDefLoadExtDtdDefaultValue... + d pr 10i 0 extproc( + d 'xmlThrDefLoadExtDtdDefaultValue') + d v 10i 0 value + + d get_xmlParserDebugEntities... + d pr 10i 0 extproc( + d '__get_xmlParserDebugEntities') + + d set_xmlParserDebugEntities... + d pr extproc( + d '__set_xmlParserDebugEntities') + d value 10i 0 value + + d xmlThrDefParserDebugEntities... + d pr 10i 0 extproc( + d 'xmlThrDefParserDebugEntities') + d v 10i 0 value + + d get_xmlParserVersion... + d pr * extproc('__get_xmlParserVersion') const char * + + d set_xmlParserVersion... + d pr extproc('__set_xmlParserVersion') + d value * value options(*string) const char * + + d get_xmlPedanticParserDefaultValue... + d pr 10i 0 extproc('__get_xmlPedantic+ + d ParserDefaultValue') + + d set_xmlPedanticParserDefaultValue... + d pr extproc('__set_xmlPedantic+ + d ParserDefaultValue') + d value 10i 0 value + + d xmlThrDefPedanticParserDefaultValue... + d pr 10i 0 extproc('xmlThrDefPedantic+ + d ParserDefaultValue') + d v 10i 0 value + + d get_xmlSaveNoEmptyTags... + d pr 10i 0 extproc('__get_xmlSaveNoEmptyTags') + + d set_xmlSaveNoEmptyTags... + d pr extproc('__set_xmlSaveNoEmptyTags') + d value 10i 0 value + + d xmlThrDefSaveNoEmptyTags... + d pr 10i 0 extproc('xmlThrDefSaveNoEmptyTags') + d v 10i 0 value + + d get_xmlSubstituteEntitiesDefaultValue... + d pr 10i 0 extproc('__get_xmlSubstitute+ + d EntitiesDefaultValue') + + d set_xmlSubstituteEntitiesDefaultValue... + d pr extproc('__set_xmlSubstitute+ + d EntitiesDefaultValue') + d value 10i 0 value + + d xmlThrDefSubstituteEntitiesDefaultValue... + d pr 10i 0 extproc('xmlThrDefSubstitute+ + d EntitiesDefaultValue') + d v 10i 0 value + + d get_xmlRegisterNodeDefaultValue... + d pr extproc('__get_xmlRegisterNode+ + d DefaultValue') + d like(xmlRegisterNodeFunc) + + d set_xmlRegisterNodeDefaultValue... + d pr extproc('__set_xmlRegisterNode+ + d DefaultValue') + d value value like(xmlRegisterNodeFunc) + + d xmlRegisterNodeDefaultValue... + d pr extproc('__call_xmlRegisterNode+ + d DefaultValue') + d node value like(xmlNodePtr) + + d get_xmlDeregisterNodeDefaultValue... + d pr extproc('__get_xmlDeregisterNode+ + d DefaultValue') + d like(xmlDeregisterNodeFunc) + + d set_xmlDeregisterNodeDefaultValue... + d pr extproc('__set_xmlDeregisterNode+ + d DefaultValue') + d value value like(xmlDeregisterNodeFunc) + + d xmlDeregisterNodeDefaultValue... + d pr extproc('__call_xmlDeregisterNode+ + d DefaultValue') + d node value like(xmlNodePtr) + + d get_xmlParserInputBufferCreateFilenameValue... + d pr extproc('__get_xmlParserInputBuffer+ + d CreateFilenameValue') + d like(xmlParserInputBuffer... + d CreateFilenameFunc) + + d set_xmlParserInputBufferCreateFilenameValue... + d pr extproc('__set_xmlParserInputBuffer+ + d CreateFilenameValue') + d value value like(xmlParserInputBuffer... + d CreateFilenameFunc) + + d xmlParserInputBufferCreateFilenameValue... + d pr extproc('__call_xmlParserInputBuffer+ + d CreateFilenameValue') + d like(xmlParserInputBufferPtr) + d URI * value options(*string) const char * + d enc value like(xmlCharEncoding) + + d get_xmlOutputBufferCreateFilenameValue... + d pr extproc('__get_xmlOutputBuffer+ + d CreateFilenameValue') + d like( + d xmlOutputBufferCreateFilenameFunc) + + d set_xmlOutputBufferCreateFilenameValue... + d pr extproc('__set_xmlOutputBuffer+ + d CreateFilenameValue') + d value value like( + d xmlOutputBufferCreateFilenameFunc) + + d xmlOutputBufferCreateFilenameValue... + d pr extproc('__call_xmlOutputBuffer+ + d CreateFilenameValue') + d like(xmlOutputBufferPtr) + d URI * value options(*string) const char * + d encoder value like(xmlCharEncodingHandlerPtr) + d compression 10i 0 value + + /endif XML_GLOBALS_H diff --git a/os400/libxmlrpg/hash.rpgle b/os400/libxmlrpg/hash.rpgle new file mode 100644 index 0000000..867f98f --- /dev/null +++ b/os400/libxmlrpg/hash.rpgle @@ -0,0 +1,231 @@ + * Summary: Chained hash tables + * Description: This module implements the hash table support used in + * various places in the library. + * + * Copy: See Copyright for the status of this software. + * + * Author: Patrick Monnerat <pm@datasphere.ch>, DATASPHERE S.A. + + /if not defined(XML_HASH_H__) + /define XML_HASH_H__ + + * The hash table. + + d xmlHashTablePtr... + d s * based(######typedef######) + + /include "libxmlrpg/xmlversion" + /include "libxmlrpg/parser" + /include "libxmlrpg/dict" + + * function types: + + * xmlHashDeallocator: + * @payload: the data in the hash + * @name: the name associated + * + * Callback to free data from a hash. + + d xmlHashDeallocator... + d s * based(######typedef######) + d procptr + + * xmlHashCopier: + * @payload: the data in the hash + * @name: the name associated + * + * Callback to copy data from a hash. + * + * Returns a copy of the data or NULL in case of error. + + d xmlHashCopier s * based(######typedef######) + d procptr + + * xmlHashScanner: + * @payload: the data in the hash + * @data: extra scannner data + * @name: the name associated + * + * Callback when scanning data in a hash with the simple scanner. + + d xmlHashScanner s * based(######typedef######) + d procptr + + * xmlHashScannerFull: + * @payload: the data in the hash + * @data: extra scannner data + * @name: the name associated + * @name2: the second name associated + * @name3: the third name associated + * + * Callback when scanning data in a hash with the full scanner. + + d xmlHashScannerFull... + d s * based(######typedef######) + d procptr + + * Constructor and destructor. + + d xmlHashCreate pr extproc('xmlHashCreate') + d like(xmlHashTablePtr) + d size 10i 0 value + + d xmlHashCreateDict... + d pr extproc('xmlHashCreateDict') + d like(xmlHashTablePtr) + d size 10i 0 value + d dict value like(xmlDictPtr) + + d xmlHashFree pr extproc('xmlHashFree') + d table value like(xmlHashTablePtr) + d f value like(xmlHashDeallocator) + + * Add a new entry to the hash table. + + d xmlHashAddEntry... + d pr 10i 0 extproc('xmlHashAddEntry') + d table value like(xmlHashTablePtr) + d name * value options(*string) const xmlChar * + d userdata * value options(*string) void * + + d xmlHashUpdateEntry... + d pr 10i 0 extproc('xmlHashUpdateEntry') + d table value like(xmlHashTablePtr) + d name * value options(*string) const xmlChar * + d userdata * value options(*string) void * + d f value like(xmlHashDeallocator) + + d xmlHashAddEntry2... + d pr 10i 0 extproc('xmlHashAddEntry2') + d table value like(xmlHashTablePtr) + d name * value options(*string) const xmlChar * + d name2 * value options(*string) const xmlChar * + d userdata * value options(*string) void * + + d xmlHashUpdateEntry2... + d pr 10i 0 extproc('xmlHashUpdateEntry2') + d table value like(xmlHashTablePtr) + d name * value options(*string) const xmlChar * + d name2 * value options(*string) const xmlChar * + d userdata * value options(*string) void * + d f value like(xmlHashDeallocator) + + d xmlHashAddEntry3... + d pr 10i 0 extproc('xmlHashAddEntry3') + d table value like(xmlHashTablePtr) + d name * value options(*string) const xmlChar * + d name2 * value options(*string) const xmlChar * + d name3 * value options(*string) const xmlChar * + d userdata * value options(*string) void * + + d xmlHashUpdateEntry3... + d pr 10i 0 extproc('xmlHashUpdateEntry3') + d table value like(xmlHashTablePtr) + d name * value options(*string) const xmlChar * + d name2 * value options(*string) const xmlChar * + d name3 * value options(*string) const xmlChar * + d userdata * value options(*string) void * + d f value like(xmlHashDeallocator) + + * Remove an entry from the hash table. + + d xmlHashRemoveEntry... + d pr 10i 0 extproc('xmlHashRemoveEntry') + d table value like(xmlHashTablePtr) + d name * value options(*string) const xmlChar * + d f value like(xmlHashDeallocator) + + d xmlHashRemoveEntry2... + d pr 10i 0 extproc('xmlHashRemoveEntry2') + d table value like(xmlHashTablePtr) + d name * value options(*string) const xmlChar * + d name2 * value options(*string) const xmlChar * + d f value like(xmlHashDeallocator) + + d xmlHashRemoveEntry3... + d pr 10i 0 extproc('xmlHashRemoveEntry3') + d table value like(xmlHashTablePtr) + d name * value options(*string) const xmlChar * + d name2 * value options(*string) const xmlChar * + d name3 * value options(*string) const xmlChar * + d f value like(xmlHashDeallocator) + + * Retrieve the userdata. + + d xmlHashLookup pr * extproc('xmlHashLookup') void * + d table value like(xmlHashTablePtr) + d name * value options(*string) const xmlChar * + + d xmlHashLookup2 pr * extproc('xmlHashLookup2') void * + d table value like(xmlHashTablePtr) + d name * value options(*string) const xmlChar * + d name2 * value options(*string) const xmlChar * + + d xmlHashLookup3 pr * extproc('xmlHashLookup3') void * + d table value like(xmlHashTablePtr) + d name * value options(*string) const xmlChar * + d name2 * value options(*string) const xmlChar * + d name3 * value options(*string) const xmlChar * + + d xmlHashQLookup pr * extproc('xmlHashQLookup') void * + d table value like(xmlHashTablePtr) + d name * value options(*string) const xmlChar * + d prefix * value options(*string) const xmlChar * + + d xmlHashQLookup2... + d pr * extproc('xmlHashQLookup2') void * + d table value like(xmlHashTablePtr) + d name * value options(*string) const xmlChar * + d prefix * value options(*string) const xmlChar * + d name2 * value options(*string) const xmlChar * + d prefix2 * value options(*string) const xmlChar * + + d xmlHashQLookup3... + d pr * extproc('xmlHashQLookup3') void * + d table value like(xmlHashTablePtr) + d name * value options(*string) const xmlChar * + d prefix * value options(*string) const xmlChar * + d name2 * value options(*string) const xmlChar * + d prefix2 * value options(*string) const xmlChar * + d name3 * value options(*string) const xmlChar * + d prefix3 * value options(*string) const xmlChar * + + * Helpers. + + d xmlHashCopy pr extproc('xmlHashCopy') + d like(xmlHashTablePtr) + d table value like(xmlHashTablePtr) + d f value like(xmlHashCopier) + + d xmlHashSize pr 10i 0 extproc('xmlHashSize') + d table value like(xmlHashTablePtr) + + d xmlHashScan pr extproc('xmlHashScan') + d table value like(xmlHashTablePtr) + d f value like(xmlHashScanner) + d data * value options(*string) void * + + d xmlHashScan3 pr extproc('xmlHashScan3') + d table value like(xmlHashTablePtr) + d name * value options(*string) const xmlChar * + d name2 * value options(*string) const xmlChar * + d name3 * value options(*string) const xmlChar * + d f value like(xmlHashScanner) + d data * value options(*string) void * + + d xmlHashScanFull... + d pr extproc('xmlHashScanFull') + d table value like(xmlHashTablePtr) + d f value like(xmlHashScannerFull) + d data * value options(*string) void * + + d xmlHashScanFull3... + d pr extproc('xmlHashScanFull3') + d table value like(xmlHashTablePtr) + d name * value options(*string) const xmlChar * + d name2 * value options(*string) const xmlChar * + d name3 * value options(*string) const xmlChar * + d f value like(xmlHashScannerFull) + d data * value options(*string) void * + + /endif XML_HASH_H__ diff --git a/os400/libxmlrpg/list.rpgle b/os400/libxmlrpg/list.rpgle new file mode 100644 index 0000000..c62fcbd --- /dev/null +++ b/os400/libxmlrpg/list.rpgle @@ -0,0 +1,168 @@ + * Summary: lists interfaces + * Description: this module implement the list support used in + * various place in the library. + * + * Copy: See Copyright for the status of this software. + * + * Author: Patrick Monnerat <pm@datasphere.ch>, DATASPHERE S.A. + + /if not defined(XML_LINK_INCLUDE__) + /define XML_LINK_INCLUDE__ + + /include "libxmlrpg/xmlversion" + + d xmlLinkPtr s * based(######typedef######) + + d xmlListPtr s * based(######typedef######) + + * xmlListDeallocator: + * @lk: the data to deallocate + * + * Callback function used to free data from a list. + + d xmlListDeallocator... + d s * based(######typedef######) + d procptr + + * xmlListDataCompare: + * @data0: the first data + * @data1: the second data + * + * Callback function used to compare 2 data. + * + * Returns 0 is equality, -1 or 1 otherwise depending on the ordering. + + d xmlListDataCompare... + d s * based(######typedef######) + d procptr + + * xmlListWalker: + * @data: the data found in the list + * @user: extra user provided data to the walker + * + * Callback function used when walking a list with xmlListWalk(). + * + * Returns 0 to stop walking the list, 1 otherwise. + + d xmlListWalker s * based(######typedef######) + d procptr + + * Creation/Deletion + + d xmlListCreate pr extproc('xmlListCreate') + d like(xmlListPtr) + d deallocator value like(xmlListDeallocator) + d compare value like(xmlListDataCompare) + + d xmlListDelete pr extproc('xmlListDelete') + d l value like(xmlListPtr) + + * Basic Operators + + d xmlListSearch pr * extproc('xmlListSearch') void * + d l value like(xmlListPtr) + d data * value void * + + d xmlListReverseSearch... + d pr * extproc('xmlListReverseSearch') void * + d l value like(xmlListPtr) + d data * value void * + + d xmlListInsert pr 10i 0 extproc('xmlListInsert') + d l value like(xmlListPtr) + d data * value void * + + d xmlListAppend pr 10i 0 extproc('xmlListAppend') + d l value like(xmlListPtr) + d data * value void * + + d xmlListRemoveFirst... + d pr 10i 0 extproc('xmlListRemoveFirst') + d l value like(xmlListPtr) + d data * value void * + + d xmlListRemoveLast... + d pr 10i 0 extproc('xmlListRemoveLast') + d l value like(xmlListPtr) + d data * value void * + + d xmlListRemoveAll... + d pr 10i 0 extproc('xmlListRemoveAll') + d l value like(xmlListPtr) + d data * value void * + + d xmlListClear pr extproc('xmlListClear') + d l value like(xmlListPtr) + + d xmlListEmpty pr 10i 0 extproc('xmlListEmpty') + d l value like(xmlListPtr) + + d xmlListFront pr extproc('xmlListFront') + d like(xmlLinkPtr) + d l value like(xmlListPtr) + + d xmlListEnd pr extproc('xmlListEnd') + d like(xmlLinkPtr) + d l value like(xmlListPtr) + + d xmlListSize pr 10i 0 extproc('xmlListSize') + d l value like(xmlListPtr) + + d xmlListPopFront... + d pr extproc('xmlListPopFront') + d l value like(xmlListPtr) + + d xmlListPopBack... + d pr extproc('xmlListPopBack') + d l value like(xmlListPtr) + + d xmlListPushFront... + d pr 10i 0 extproc('xmlListPushFront') + d l value like(xmlListPtr) + d data * value void * + + d xmlListPushBack... + d pr 10i 0 extproc('xmlListPushBack') + d l value like(xmlListPtr) + d data * value void * + + * Advanced Operators + + d xmlListReverse pr extproc('xmlListReverse') + d l value like(xmlListPtr) + + d xmlListSort pr extproc('xmlListSort') + d l value like(xmlListPtr) + + d xmlListWalk pr extproc('xmlListWalk') + d l value like(xmlListPtr) + d walker value like(xmlListWalker) + d user * value const void * + + d xmlListReverseWalk... + d pr extproc('xmlListReverseWalk') + d l value like(xmlListPtr) + d walker value like(xmlListWalker) + d user * value const void * + + d xmlListMerge pr extproc('xmlListMerge') + d l1 value like(xmlListPtr) + d l2 value like(xmlListPtr) + + d xmlListDup pr extproc('xmlListDup') + d like(xmlListPtr) + d old value like(xmlListPtr) + + d xmlListCopy pr 10i 0 extproc('xmlListCopy') + d cur value like(xmlListPtr) + d old value like(xmlListPtr) const + + * Link operators + + d xmlListGetData pr * extproc('xmlListGetData') void * + d lk value like(xmlLinkPtr) + + * xmlListUnique() + * xmlListSwap + + /endif XML_LINK_INCLUDE__ diff --git a/os400/libxmlrpg/nanoftp.rpgle b/os400/libxmlrpg/nanoftp.rpgle new file mode 100644 index 0000000..0637562 --- /dev/null +++ b/os400/libxmlrpg/nanoftp.rpgle @@ -0,0 +1,156 @@ + * Summary: minimal FTP implementation + * Description: minimal FTP implementation allowing to fetch resources + * like external subset. + * + * Copy: See Copyright for the status of this software. + * + * Author: Patrick Monnerat <pm@datasphere.ch>, DATASPHERE S.A. + + /if not defined(NANO_FTP_H__) + /define NANO_FTP_H__ + + /include /libxmlrpg/xmlversion" + + /if defined(LIBXML_FTP_ENABLED) + + d INVALID_SOCKET c -1 + + * ftpListCallback: + * @userData: user provided data for the callback + * @filename: the file name (including "->" when links are shown) + * @attrib: the attribute string + * @owner: the owner string + * @group: the group string + * @size: the file size + * @links: the link count + * @year: the year + * @month: the month + * @day: the day + * @hour: the hour + * @minute: the minute + * + * A callback for the xmlNanoFTPList command. + * Note that only one of year and day:minute are specified. + + d ftpListCallback... + d s * based(######typedef######) + d procptr + + * ftpDataCallback: + * @userData: the user provided context + * @data: the data received + * @len: its size in bytes + * + * A callback for the xmlNanoFTPGet command. + + d ftpDataCallback... + d s * based(######typedef######) + d procptr + + * Init + + d xmlNanoFTPInit pr extproc('xmlNanoFTPInit') + + d xmlNanoFTPCleanup... + d pr extproc('xmlNanoFTPCleanup') + + * Creating/freeing contexts. + + d xmlNanoFTPNewCtxt... + d pr * extproc('xmlNanoFTPNewCtxt') void * + d URL * value options(*string) const char * + + d xmlNanoFTPFreeCtxt... + d pr extproc('xmlNanoFTPFreeCtxt') + d ctx * value void * + + d xmlNanoFTPConnectTo... + d pr * extproc('xmlNanoFTPConnectTo') void * + d server * value options(*string) const char * + d port 10i 0 value + + * Opening/closing session connections. + + d xmlNanoFTPOpen pr * extproc('xmlNanoFTPOpen') void * + d URL * value options(*string) const char * + + d xmlNanoFTPConnect... + d pr 10i 0 extproc('xmlNanoFTPConnect') + d ctx * value void * + + d xmlNanoFTPClose... + d pr 10i 0 extproc('xmlNanoFTPClose') + d ctx * value void * + + d xmlNanoFTPQuit pr 10i 0 extproc('xmlNanoFTPQuit') + d ctx * value void * + + d xmlNanoFTPScanProxy... + d pr extproc('xmlNanoFTPScanProxy') + d URL * value options(*string) const char * + + d xmlNanoFTPProxy... + d pr extproc('xmlNanoFTPProxy') + d host * value options(*string) const char * + d port 10i 0 value + d user * value options(*string) const char * + d passwd * value options(*string) const char * + d type 10i 0 value + + d xmlNanoFTPUpdateURL... + d pr 10i 0 extproc('xmlNanoFTPUpdateURL') + d ctx * value void * + d URL * value options(*string) const char * + + * Rather internal commands. + + d xmlNanoFTPGetResponse... + d pr 10i 0 extproc('xmlNanoFTPGetResponse') + d ctx * value void * + + d xmlNanoFTPCheckResponse... + d pr 10i 0 extproc('xmlNanoFTPCheckResponse') + d ctx * value void * + + * CD/DIR/GET handlers. + + d xmlNanoFTPCwd pr 10i 0 extproc('xmlNanoFTPCwd') + d ctx * value void * + d directory * value options(*string) const char * + + d xmlNanoFTPDele pr 10i 0 extproc('xmlNanoFTPDele') + d ctx * value void * + d file * value options(*string) const char * + + d xmlNanoFTPGetConnection... + d pr 10i 0 extproc('xmlNanoFTPGetConnection') Socket descriptor + d ctx * value void * + + d xmlNanoFTPCloseConnection... + d pr 10i 0 extproc('xmlNanoFTPCloseConnection') + d ctx * value void * + + d xmlNanoFTPList pr 10i 0 extproc('xmlNanoFTPList') + d ctx * value void * + d callback value like(ftpListCallback) + d userData * value void * + d filename * value options(*string) const char * + + d xmlNanoFTPGetSocket... + d pr 10i 0 extproc('xmlNanoFTPGetSocket') Socket descriptor + d ctx * value void * + d filename * value options(*string) const char * + + d xmlNanoFTPGet pr 10i 0 extproc('xmlNanoFTPGet') + d ctx * value void * + d callback value like(ftpDataCallback) + d userData * value void * + d filename * value options(*string) const char * + + d xmlNanoFTPRead pr 10i 0 extproc('xmlNanoFTPRead') + d ctx * value void * + d dest * value void * + d len 10i 0 value + + /endif LIBXML_FTP_ENABLED + /endif NANO_FTP_H__ diff --git a/os400/libxmlrpg/nanohttp.rpgle b/os400/libxmlrpg/nanohttp.rpgle new file mode 100644 index 0000000..4a076d2 --- /dev/null +++ b/os400/libxmlrpg/nanohttp.rpgle @@ -0,0 +1,103 @@ + * Summary: minimal HTTP implementation + * Description: minimal HTTP implementation allowing to fetch resources + * like external subset. + * + * Copy: See Copyright for the status of this software. + * + * Author: Patrick Monnerat <pm@datasphere.ch>, DATASPHERE S.A. + + /if not defined(NANO_HTTP_H__) + /define NANO_HTTP_H__ + + /include "libxmlrpg/xmlversion" + + /if defined(LIBXML_HTTP_ENABLED) + + d xmlNanoHTTPInit... + d pr extproc('xmlNanoHTTPInit') + + d xmlNanoHTTPCleanup... + d pr extproc('xmlNanoHTTPCleanup') + + d xmlNanoHTTPScanProxy... + d pr extproc('xmlNanoHTTPScanProxy') + d URL * value options(*string) const char * + + d xmlNanoHTTPFetch... + d pr 10i 0 extproc('xmlNanoHTTPFetch') + d URL * value options(*string) const char * + d filename * value options(*string) const char * + + d xmlNanoHTTPMethod... + d pr * extproc('xmlNanoHTTPMethod') void * + d URL * value options(*string) const char * + d method * value options(*string) const char * + d input * value options(*string) const char * + d contentType * value char * * + d headers * value options(*string) const char * + d ilen 10i 0 value + + d xmlNanoHTTPMethodRedir... + d pr * extproc('xmlNanoHTTPMethodRedir') void * + d URL * value options(*string) const char * + d method * value options(*string) const char * + d input * value options(*string) const char * + d contentType * value char * * + d redir * value char * * + d headers * value options(*string) const char * + d ilen 10i 0 value + + d xmlNanoHTTPOpen... + d pr * extproc('xmlNanoHTTPOpen') void * + d URL * value options(*string) const char * + d contentType * char *(*) + + d xmlNanoHTTPOpenRedir... + d pr * extproc('xmlNanoHTTPOpenRedir') void * + d URL * value options(*string) const char * + d contentType * value char * * + d redir * value char * * + + d xmlNanoHTTPReturnCode... + d pr 10i 0 extproc('xmlNanoHTTPReturnCode') + d ctx * value void * + + d xmlNanoHTTPAuthHeader... + d pr * extproc('xmlNanoHTTPAuthHeader') const char * + d ctx * value void * + + d xmlNanoHTTPRedir... + d pr * extproc('xmlNanoHTTPRedir') const char * + d ctx * value void * + + d xmlNanoHTTPContentLength... + d pr 10i 0 extproc('xmlNanoHTTPContentLength') + d ctx * value void * + + d xmlNanoHTTPEncoding... + d pr * extproc('xmlNanoHTTPEncoding') const char * + d ctx * value void * + + d xmlNanoHTTPMimeType... + d pr * extproc('xmlNanoHTTPMimeType') const char * + d ctx * value void * + + d xmlNanoHTTPRead... + d pr 10i 0 extproc('xmlNanoHTTPRead') + d ctx * value void * + d dest * value void * + d len 10i 0 value + + /if defined(LIBXML_OUTPUT_ENABLED) + d xmlNanoHTTPSave... + d pr 10i 0 extproc('xmlNanoHTTPSave') + d ctxt * value void * + d filename * value options(*string) const char * + /endif LIBXML_OUTPUT_ENABLD + + d xmlNanoHTTPClose... + d pr extproc('xmlNanoHTTPClose') + d ctx * value void * + + /endif LIBXML_HTTP_ENABLED + /endif NANO_HTTP_H__ diff --git a/os400/libxmlrpg/parser.rpgle b/os400/libxmlrpg/parser.rpgle new file mode 100644 index 0000000..7f29e31 --- /dev/null +++ b/os400/libxmlrpg/parser.rpgle @@ -0,0 +1,1407 @@ + * 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/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 10i 0 Length if known + d line 10i 0 Current line + d col 10i 0 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 20u 0 # consumed xmlChars + d free like(xmlParserInputDeallocate) base deallocator + d encoding * const xmlChar * + d version * const xmlChar * + d standalone 10i 0 Standalone entity ? + d id 10i 0 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 20u 0 + d begin_line 20u 0 + d end_pos 20u 0 + d end_line 20u 0 + + d xmlParserNodeInfoSeqPtr... + d s * based(######typedef######) + + d xmlParserNodeInfoSeq... + d ds based(xmlParserNodeInfoSeqPtr) + d align qualified + d maximum 20u 0 + d length 20u 0 + 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 10i 0 based(######typedef######) enum + 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 10i 0 based(######typedef######) enum + 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 10i 0 Well formed doc ? + d replaceEntities... Replace entities ? + d 10i 0 + d version * const xmlChar * + d encoding * const xmlChar * + d standalone 10i 0 Standalone document + d html 10i 0 HTML state/type + * + * Input stream stack + * + d input like(xmlParserInputPtr) Current input stream + d inputNr 10i 0 # current in streams + d inputMax 10i 0 Max # of in streams + d inputTab * xmlParserInputPtr * + * + * Node analysis stack only used for DOM building + * + d node like(xmlNodePtr) Current parsed node + d nodeNr 10i 0 Parsing stack depth + d nodeMax 10i 0 Max stack depth + d nodeTab * xmlNodePtr * + * + d record_info 10i 0 Keep node info ? + d node_seq like(xmlParserNodeInfoSeq) Parsed nodes info + * + d errNo 10i 0 Error code + * + d hasExternalSubset... + d 10i 0 + d hashPErefs 10i 0 + d external 10i 0 Parsing ext. entity? + * + d valid 10i 0 Valid document ? + d validate 10i 0 Try to validate ? + d vctxt like(xmlValidCtxt) Validity context + * + d instate like(xmlParserInputState) Current input type + d token 10i 0 Next look-ahead char + * + d directory * char * + * + * Node name stack + * + d name * const xmlChar * + d nameNr 10i 0 Parsing stack depth + d nameMax 10i 0 Max stack depth + d nameTab * const xmlChar * * + * + d nbChars 20i 0 # xmlChars processed + d checkIndex 20i 0 4 progressive parse + d keepBlanks 10i 0 Ugly but ... + d disableSAX 10i 0 Disable SAX cllbacks + d inSubset 10i 0 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 10i 0 Parsing stack depth + d spaceMax 10i 0 Max stack depth + d spaceTab * int * + * + d depth 10i 0 To detect loops + d entity like(xmlParserInputPtr) To check boundaries + d charset 10i 0 In-memory content + d nodelen 10i 0 Speed up parsing + d nodemem 10i 0 Speed up parsing + d pedantic 10i 0 Enb. pedantic warng + d #private * void * + * + d loadsubset 10i 0 Load ext. subset ? + d linenumbers 10i 0 Set line numbers ? + d catalogs * void * + d recovery 10i 0 Run in recovery mode + d progressive 10i 0 Progressive parsing? + d dict like(xmlDictPtr) Parser dictionary + d atts * const xmlChar * + d maxatts 10i 0 Above array size + d docdict 10i 0 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 10i 0 New SAX mode ? + d nsNr 10i 0 # inherited nmspaces + d nsMax 10i 0 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 10i 0 Doc namespace OK ? + d options 10i 0 Extra options + * + * Those fields are needed only for treaming parsing so far + * + d dictNames 10i 0 Dict names in tree ? + d freeElemsNr 10i 0 # free element nodes + d freeElems like(xmlNodePtr) Free elem nodes list + d freeAttrsNr 10i 0 # free attr. nodes + d freeAttrs like(xmlAttrPtr) Free attr noes list + * + * the complete error informations for the last error. + * + d lastError like(xmlError) + d parseMode like(xmlParserMode) The parser mode + d nbentities 20u 0 # entity references + d sizeentities 20u 0 Parsed entities size + * + * for use by HTML non-recursive parser + * + d nodeInfo like(xmlParserNodeInfo) Current NodeInfo + d nodeInfoNr 10i 0 Parsing stack depth + d nodeInfoMax 10i 0 Max stack depth + d nodeInfoTab * xmlParserNodeInfo * + * + d input_id 10i 0 Label inputs ? + d sizeentcopy 20u 0 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 10u 0 + * + * 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 10u 0 + + * 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 10i 0 extproc('xmlParserInputRead') + d in value like(xmlParserInputPtr) + d len 10i 0 value + + d xmlParserInputGrow... + d pr 10i 0 extproc('xmlParserInputGrow') + d in value like(xmlParserInputPtr) + d len 10i 0 value + + * 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 10i 0 value + /endif LIBXML_SAX1_ENABLED + + d xmlSubstituteEntitiesDefault... + d pr 10i 0 extproc( + d 'xmlSubstituteEntitiesDefault') + d val 10i 0 value + + d xmlKeepBlanksDefault... + d pr 10i 0 extproc('xmlKeepBlanksDefault') + d val 10i 0 value + + d xmlStopParser pr extproc('xmlStopParser') + d ctxt value like(xmlParserCtxtPtr) + + d xmlPedanticParserDefault... + d pr 10i 0 extproc('xmlPedanticParserDefault') + d val 10i 0 value + + d xmlLineNumbersDefault... + d pr 10i 0 extproc('xmlLineNumbersDefault') + d val 10i 0 value + + /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 10i 0 value + + 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 10i 0 extproc('xmlParseDocument') + d ctxt value like(xmlParserCtxtPtr) + + d xmlParseExtParsedEnt... + d pr 10i 0 extproc('xmlParseExtParsedEnt') + d ctxt value like(xmlParserCtxtPtr) + + /if defined(LIBXML_SAX1_ENABLED) + d xmlSAXUserParseFile... + d pr 10i 0 extproc('xmlSAXUserParseFile') + d sax value like(xmlSAXHandlerPtr) + d user_data * value void * + d filename * value options(*string) const char * + + d xmlSAXUserParseMemory... + d pr 10i 0 extproc('xmlSAXUserParseMemory') + d sax value like(xmlSAXHandlerPtr) + d user_data * value void * + d buffer * value options(*string) const char * + d size 10i 0 value + + d xmlSAXParseDoc pr extproc('xmlSAXParseDoc') + d like(xmlDocPtr) + d sax value like(xmlSAXHandlerPtr) + d cur * value options(*string) const xmlChar * + d recovery 10i 0 value + + d xmlSAXParseMemory... + d pr extproc('xmlSAXParseMemory') + d like(xmlDocPtr) + d sax value like(xmlSAXHandlerPtr) + d buffer * value options(*string) const char * + d size 10i 0 value + d recovery 10i 0 value + + d xmlSAXParseMemoryWithData... + d pr extproc('xmlSAXParseMemoryWithData') + d like(xmlDocPtr) + d sax value like(xmlSAXHandlerPtr) + d buffer * value options(*string) const char * + d size 10i 0 value + d recovery 10i 0 value + 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 10i 0 value + + d xmlSAXParseFileWithData... + d pr extproc('xmlSAXParseFileWithData') + d like(xmlDocPtr) + d sax value like(xmlSAXHandlerPtr) + d filename * value options(*string) const char * + d recovery 10i 0 value + 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 10i 0 extproc( + d 'xmlParseBalancedChunkMemory') + d doc value like(xmlDocPtr) + d sax value like(xmlSAXHandlerPtr) + d user_data * value void * + d depth 10i 0 value + 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 10i 0 value + d options 10i 0 value + d lst * value xmlNodePtr * + + /if defined(LIBXML_SAX1_ENABLED) + d xmlParseBalancedChunkMemoryRecover... + d pr 10i 0 extproc( + d 'xmlParseBalancedChunkMemoryRecover') + d doc value like(xmlDocPtr) + d sax value like(xmlSAXHandlerPtr) + d user_data * value void * + d depth 10i 0 value + d string * value options(*string) const xmlChar * + d lst * value xmlNodePtr * + d recover 10i 0 value + + d xmlParseExternalEntity... + d pr 10i 0 extproc('xmlParseExternalEntity') + d doc value like(xmlDocPtr) + d sax value like(xmlSAXHandlerPtr) + d user_data * value void * + d depth 10i 0 value + 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 10i 0 extproc('xmlParseCtxtExternalEntity') + 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 10i 0 extproc('xmlInitParserCtxt') + 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 10i 0 extproc('xmlGetFeaturesList') + d len 10i 0 + d result * const char *(*) + + d xmlGetFeature pr 10i 0 extproc('xmlGetFeature') + d ctxt value like(xmlParserCtxtPtr) + d name * value options(*string) const char * + d result * value void * + + d xmlSetFeature pr 10i 0 extproc('xmlSetFeature') + 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 10i 0 value + d filename * value options(*string) const char * + + d xmlParseChunk pr 10i 0 extproc('xmlParseChunk') + d ctxt value like(xmlParserCtxtPtr) + d chunk * value options(*string) const char * + d size 10i 0 value + d terminate 10i 0 value + /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 20u 0 extproc('xmlParserFindNodeInfoIndex') + 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 20i 0 extproc('xmlByteConsumed') + 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 10i 0 based(######typedef######) enum + 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 10i 0 extproc('xmlCtxtResetPush') + d ctxt value like(xmlParserCtxtPtr) + d chunk * value options(*string) const char * + d size 10i 0 value + d filename * value options(*string) const char * + d encoding * value options(*string) const char * + + d xmlCtxtUseOptions... + d pr 10i 0 extproc('xmlCtxtUseOptions') + d ctxt value like(xmlParserCtxtPtr) + d options 10i 0 value + + 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 10i 0 value + + d xmlReadFile pr extproc('xmlReadFile') + d like(xmlDocPtr) + d URL * value options(*string) const char * + d encoding * value options(*string) const char * + d options 10i 0 value + + d xmlReadMemory pr extproc('xmlReadMemory') + d like(xmlDocPtr) + d buffer * value options(*string) const char * + d size 10i 0 value + d URL * value options(*string) const char * + d encoding * value options(*string) const char * + d options 10i 0 value + + d xmlReadFd pr extproc('xmlReadFd') + d like(xmlDocPtr) + d fd 10i 0 value + d URL * value options(*string) const char * + d encoding * value options(*string) const char * + d options 10i 0 value + + 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 10i 0 value + + 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 10i 0 value + + 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 10i 0 value + + d xmlCtxtReadMemory... + d pr extproc('xmlCtxtReadMemory') + d like(xmlDocPtr) + d ctxt value like(xmlParserCtxtPtr) + d buffer * value options(*string) const char * + d size 10i 0 value + d URL * value options(*string) const char * + d encoding * value options(*string) const char * + d options 10i 0 value + + d xmlCtxtReadFd pr extproc('xmlCtxtReadFd') + d like(xmlDocPtr) + d ctxt value like(xmlParserCtxtPtr) + d fd 10i 0 value + d URL * value options(*string) const char * + d encoding * value options(*string) const char * + d options 10i 0 value + + 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 10i 0 value + + * 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 10i 0 based(######typedef######) enum + 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 10i 0 extproc('xmlHasFeature') + d feature value like(xmlFeature) + + /endif XML_PARSER_H__ diff --git a/os400/libxmlrpg/parserInternals.rpgle b/os400/libxmlrpg/parserInternals.rpgle new file mode 100644 index 0000000..6942b7d --- /dev/null +++ b/os400/libxmlrpg/parserInternals.rpgle @@ -0,0 +1,575 @@ + * Summary: internals routines and limits exported by the parser. + * Description: this module exports a number of internal parsing routines + * they are not really all intended for applications but + * can prove useful doing low level processing. + * + * Copy: See Copyright for the status of this software. + * + * Author: Patrick Monnerat <pm@datasphere.ch>, DATASPHERE S.A. + + /if not defined(XML_PARSER_INTERNALS_H__) + /define XML_PARSER_INTERNALS_H__ + + /include "libxmlrpg/xmlversion" + /include "libxmlrpg/parser" + /include "libxmlrpg/HTMLparser" + /include "libxmlrpg/chvalid" + + * xmlParserMaxDepth: + * + * arbitrary depth limit for the XML documents that we allow to + * process. This is not a limitation of the parser but a safety + * boundary feature, use XML_PARSE_HUGE option to override it. + + d xmlParserMaxDepth... + d s 10u 0 import('xmlParserMaxDepth') + + * XML_MAX_TEXT_LENGTH: + * + * Maximum size allowed for a single text node when building a tree. + * This is not a limitation of the parser but a safety boundary feature, + * use XML_PARSE_HUGE option to override it. + * Introduced in 2.9.0 + + d XML_MAX_TEXT_LENGTH... + d c 10000000 + + * XML_MAX_NAME_LENGTH: + * + * Maximum size allowed for a markup identitier + * This is not a limitation of the parser but a safety boundary feature, + * use XML_PARSE_HUGE option to override it. + * Note that with the use of parsing dictionaries overriding the limit + * may result in more runtime memory usage in face of "unfriendly' content + * Introduced in 2.9.0 + + d XML_MAX_NAME_LENGTH... + d c 50000 + + * XML_MAX_DICTIONARY_LIMIT: + * + * Maximum size allowed by the parser for a dictionary by default + * This is not a limitation of the parser but a safety boundary feature, + * use XML_PARSE_HUGE option to override it. + * Introduced in 2.9.0 + + d XML_MAX_DICTIONARY_LIMIT... + d c 10000000 + + * XML_MAX_LOOKUP_LIMIT: + * + * Maximum size allowed by the parser for ahead lookup + * This is an upper boundary enforced by the parser to avoid bad + * behaviour on "unfriendly' content + * Introduced in 2.9.0 + + d XML_MAX_LOOKUP_LIMIT... + d c 10000000 + + * XML_MAX_NAMELEN: + * + * Identifiers can be longer, but this will be more costly + * at runtime. + + d XML_MAX_NAMELEN... + d c 100 + + * INPUT_CHUNK: + * + * The parser tries to always have that amount of input ready. + * One of the point is providing context when reporting errors. + + d INPUT_CHUNK c 250 + + * Global variables used for predefined strings. + + d xmlStringText s 4 import('xmlStringText') \0 in 5th byte + + d xmlStringTextNoenc... + d s 9 import('xmlStringTextNoenc') \0 in 10th byte + + d xmlStringComment... + d s 7 import('xmlStringTextComment') \0 in 8th byte + + * Function to finish the work of the macros where needed. + + d xmlIsLetter pr 10i 0 extproc('xmlIsLetter') + d c 10i 0 value + + * Parser context. + + d xmlCreateFileParserCtxt... + d pr extproc('xmlCreateFileParserCtxt') + d like(xmlParserCtxtPtr) + d filename * value options(*string) const char * + + d xmlCreateURLParserCtxt... + d pr extproc('xmlCreateURLParserCtxt') + d like(xmlParserCtxtPtr) + d filename * value options(*string) const char * + d options 10i 0 value + + d xmlCreateMemoryParserCtxt... + d pr extproc('xmlCreateMemoryParserCtxt') + d like(xmlParserCtxtPtr) + d buffer * value options(*string) const char * + d size 10i 0 value + + d xmlCreateEntityParserCtxt... + d pr extproc('xmlCreateEntityParserCtxt') + d like(xmlParserCtxtPtr) + d URL * value options(*string) const xmlChar * + d ID * value options(*string) const xmlChar * + d base * value options(*string) const xmlChar * + + d xmlSwitchEncoding... + d pr 10i 0 extproc('xmlSwitchEncoding') + d ctxt value like(xmlParserCtxtPtr) + d enc value like(xmlCharEncoding) + + d xmlSwitchToEncoding... + d pr 10i 0 extproc('xmlSwitchToEncoding') + d ctxt value like(xmlParserCtxtPtr) + d handler value like(xmlCharEncodingHandlerPtr) + + d xmlSwitchInputEncoding... + d pr 10i 0 extproc('xmlSwitchInputEncoding') + d ctxt value like(xmlParserCtxtPtr) + d input value like(xmlParserInputPtr) + d handler value like(xmlCharEncodingHandlerPtr) + + * Input Streams. + + d xmlNewStringInputStream... + d pr extproc('xmlNewStringInputStream') + d like(xmlParserInputPtr) + d ctxt value like(xmlParserCtxtPtr) + d buffer * value options(*string) const xmlChar * + + d xmlNewEntityInputStream... + d pr extproc('xmlNewEntityInputStream') + d like(xmlParserInputPtr) + d ctxt value like(xmlParserCtxtPtr) + d entity value like(xmlEntityPtr) + + d xmlPushInput pr 10i 0 extproc('xmlPushInput') + d ctxt value like(xmlParserCtxtPtr) + d input value like(xmlParserInputPtr) + + d xmlPopInput pr extproc('xmlPopInput') + d like(xmlChar) + d ctxt value like(xmlParserCtxtPtr) + + d xmlFreeInputStream... + d pr extproc('xmlFreeInputStream') + d input value like(xmlParserInputPtr) + + d xmlNewInputFromFile... + d pr extproc('xmlNewInputFromFile') + d like(xmlParserInputPtr) + d ctxt value like(xmlParserCtxtPtr) + d filename * value options(*string) const char * + + d xmlNewInputStream... + d pr extproc('xmlNewInputStream') + d like(xmlParserInputPtr) + d ctxt value like(xmlParserCtxtPtr) + + * Namespaces. + + d xmlSplitQName pr * extproc('xmlSplitQName') xmlChar * + d ctxt value like(xmlParserCtxtPtr) + d name * value options(*string) const xmlChar * + d prefix * xmlChar *(*) + + * Generic production rules. + + d xmlParseName pr * extproc('xmlParseName') const xmlChar * + d ctxt value like(xmlParserCtxtPtr) + + d xmlParseNmtoken... + d pr * extproc('xmlParseNmtoken') xmlChar * + d ctxt value like(xmlParserCtxtPtr) + + d xmlParseEntityValue... + d pr * extproc('xmlParseEntityValue') xmlChar * + d ctxt value like(xmlParserCtxtPtr) + d orig * xmlChar *(*) + + d xmlParseAttValue... + d pr * extproc('xmlParseAttValue') xmlChar * + d ctxt value like(xmlParserCtxtPtr) + + d xmlParseSystemLiteral... + d pr * extproc('xmlParseSystemLiteral') xmlChar * + d ctxt value like(xmlParserCtxtPtr) + + d xmlParsePubidLiteral... + d pr * extproc('xmlParsePubidLiteral') xmlChar * + d ctxt value like(xmlParserCtxtPtr) + + d xmlParseCharData... + d pr extproc('xmlParseCharData') + d ctxt value like(xmlParserCtxtPtr) + d cdata 10i 0 value + + d xmlParseExternalID... + d pr * extproc('xmlParseExternalID') xmlChar * + d ctxt value like(xmlParserCtxtPtr) + d publicID * xmlChar *(*) + d strict 10i 0 value + + d xmlParseComment... + d pr extproc('xmlParseComment') + d ctxt value like(xmlParserCtxtPtr) + + d xmlParsePITarget... + d pr * extproc('xmlParsePITarget') const xmlChar * + d ctxt value like(xmlParserCtxtPtr) + + d xmlParsePI pr extproc('xmlParsePI') + d ctxt value like(xmlParserCtxtPtr) + + d xmlParseNotationDecl... + d pr extproc('xmlParseNotationDecl') + d ctxt value like(xmlParserCtxtPtr) + + d xmlParseEntityDecl... + d pr extproc('xmlParseEntityDecl') + d ctxt value like(xmlParserCtxtPtr) + + d xmlParseDefaultDecl... + d pr 10i 0 extproc('xmlParseDefaultDecl') + d ctxt value like(xmlParserCtxtPtr) + d value * xmlChar *(*) + + d xmlParseNotationType... + d pr extproc('xmlParseNotationType') + d like(xmlEnumerationPtr) + d ctxt value like(xmlParserCtxtPtr) + + d xmlParseEnumerationType... + d pr extproc('xmlParseEnumerationType') + d like(xmlEnumerationPtr) + d ctxt value like(xmlParserCtxtPtr) + + d xmlParseEnumeratedType... + d pr 10i 0 extproc('xmlParseEnumeratedType') + d ctxt value like(xmlParserCtxtPtr) + d tree * value xmlEnumerationPtr * + + d xmlParseAttributeType... + d pr 10i 0 extproc('xmlParseAttributeType') + d ctxt value like(xmlParserCtxtPtr) + d tree * value xmlEnumerationPtr * + + d xmlParseAttributeListDecl... + d pr extproc('xmlParseAttributeListDecl') + d ctxt value like(xmlParserCtxtPtr) + + d xmlParseElementMixedContentDecl... + d pr extproc( + d 'xmlParseElementMixedContentDecl') + d like(xmlElementContentPtr) + d ctxt value like(xmlParserCtxtPtr) + d inputchk 10i 0 value + + d xmlParseElementChildrenContentDecl... + d pr extproc( + d 'xmlParseElementChildrenContentDecl') + d like(xmlElementContentPtr) + d ctxt value like(xmlParserCtxtPtr) + d inputchk 10i 0 value + + d xmlParseElementContentDecl... + d pr 10i 0 extproc('xmlParseElementContentDecl') + d ctxt value like(xmlParserCtxtPtr) + d name * value options(*string) const xmlChar * + d result * value xmlElementContentPtr + d * + + d xmlParseElementDecl... + d pr 10i 0 extproc('xmlParseElementDecl') + d ctxt value like(xmlParserCtxtPtr) + + d xmlParseMarkupDecl... + d pr extproc('xmlParseMarkupDecl') + d ctxt value like(xmlParserCtxtPtr) + + d xmlParseCharRef... + d pr 10i 0 extproc('xmlParseCharRef') + d ctxt value like(xmlParserCtxtPtr) + + d xmlParseEntityRef... + d pr extproc('xmlParseEntityRef') + d like(xmlEntityPtr) + d ctxt value like(xmlParserCtxtPtr) + + d xmlParseReference... + d pr extproc('xmlParseReference') + d ctxt value like(xmlParserCtxtPtr) + + d xmlParsePEReference... + d pr extproc('xmlParsePEReference') + d ctxt value like(xmlParserCtxtPtr) + + d xmlParseDocTypeDecl... + d pr extproc('xmlParseDocTypeDecl') + d ctxt value like(xmlParserCtxtPtr) + + /if defined(LIBXML_SAX1_ENABLED) + d xmlParseAttribute... + d pr * extproc('xmlParseAttribute') const xmlChar * + d ctxt value like(xmlParserCtxtPtr) + d value * xmlChar *(*) + + d xmlParseStartTag... + d pr * extproc('xmlParseStartTag') const xmlChar * + d ctxt value like(xmlParserCtxtPtr) + + d xmlParseEndTag pr extproc('xmlParseEndTag') + d ctxt value like(xmlParserCtxtPtr) + /endif LIBXML_SAX1_ENABLED + + d xmlParseCDSect pr extproc('xmlParseCDSect') + d ctxt value like(xmlParserCtxtPtr) + + d xmlParseContent... + d pr extproc('xmlParseContent') + d ctxt value like(xmlParserCtxtPtr) + + d xmlParseElement... + d pr extproc('xmlParseElement') + d ctxt value like(xmlParserCtxtPtr) + + d xmlParseVersionNum... + d pr * extproc('xmlParseVersionNum') xmlChar * + d ctxt value like(xmlParserCtxtPtr) + + d xmlParseVersionInfo... + d pr * extproc('xmlParseVersionInfo') xmlChar * + d ctxt value like(xmlParserCtxtPtr) + + d xmlParseEncName... + d pr * extproc('xmlParseEncName') xmlChar * + d ctxt value like(xmlParserCtxtPtr) + + d xmlParseEncodingDecl... + d pr * extproc('xmlParseEncodingDecl') const xmlChar * + d ctxt value like(xmlParserCtxtPtr) + + d xmlParseSDDecl pr 10i 0 extproc('xmlParseSDDecl') + d ctxt value like(xmlParserCtxtPtr) + + d xmlParseXMLDecl... + d pr extproc('xmlParseXMLDecl') + d ctxt value like(xmlParserCtxtPtr) + + d xmlParseTextDecl... + d pr extproc('xmlParseTextDecl') + d ctxt value like(xmlParserCtxtPtr) + + d xmlParseMisc pr extproc('xmlParseMisc') + d ctxt value like(xmlParserCtxtPtr) + + d xmlParseExternalSubset... + d pr extproc('xmlParseExternalSubset') + d ctxt value like(xmlParserCtxtPtr) + d ExternalID * value options(*string) const xmlChar * + d SystemID * value options(*string) const xmlChar * + + * XML_SUBSTITUTE_NONE: + * + * If no entities need to be substituted. + + d XML_SUBSTITUTE_NONE... + d c 0 + + * XML_SUBSTITUTE_REF: + * + * Whether general entities need to be substituted. + + d XML_SUBSTITUTE_REF... + d c 1 + + * XML_SUBSTITUTE_PEREF: + * + * Whether parameter entities need to be substituted. + + d XML_SUBSTITUTE_PEREF... + d c 2 + + * XML_SUBSTITUTE_BOTH: + * + * Both general and parameter entities need to be substituted. + + d XML_SUBSTITUTE_BOTH... + d c 3 + + d xmlStringDecodeEntities... + d pr * extproc('xmlStringDecodeEntities') xmlChar * + d ctxt value like(xmlParserCtxtPtr) + d str * value options(*string) const xmlChar * + d what 10i 0 value + d end value like(xmlChar) + d end2 value like(xmlChar) + d end3 value like(xmlChar) + + d xmlStringLenDecodeEntities... + d pr * extproc('xmlStringLenDecodeEntities')xmlChar * + d ctxt value like(xmlParserCtxtPtr) + d str * value options(*string) const xmlChar * + d len 10i 0 value + d what 10i 0 value + d end value like(xmlChar) + d end2 value like(xmlChar) + d end3 value like(xmlChar) + + * Generated by MACROS on top of parser.c c.f. PUSH_AND_POP. + + d nodePush pr 10i 0 extproc('nodePush') + d ctxt value like(xmlParserCtxtPtr) + d value value like(xmlNodePtr) + + d nodePop pr extproc('nodePop') + d like(xmlNodePtr) + d ctxt value like(xmlParserCtxtPtr) + + d inputPush pr 10i 0 extproc('inputPush') + d ctxt value like(xmlParserCtxtPtr) + d value value like(xmlParserInputPtr) + + d inputPop pr extproc('inputPop') + d like(xmlParserInputPtr) + d ctxt value like(xmlParserCtxtPtr) + + d namePop pr * extproc('namePop') const xmlChar * + d ctxt value like(xmlParserCtxtPtr) + + d namePush pr 10i 0 extproc('namePush') + d ctxt value like(xmlParserCtxtPtr) + d value * value options(*string) const xmlChar * + + * other commodities shared between parser.c and parserInternals. + + d xmlSkipBlankChars... + d pr 10i 0 extproc('xmlSkipBlankChars') + d ctxt value like(xmlParserCtxtPtr) + + d xmlStringCurrentChar... + d pr 10i 0 extproc('xmlStringCurrentChar') + d ctxt value like(xmlParserCtxtPtr) + d cur * value options(*string) const xmlChar * + d len * value int * + + d xmlParserHandlePEReference... + d pr extproc('xmlParserHandlePEReference') + d ctxt value like(xmlParserCtxtPtr) + + d xmlCheckLanguageID... + d pr 10i 0 extproc('xmlCheckLanguageID') + d lang * value options(*string) const xmlChar * + + * Really core function shared with HTML parser. + + d xmlCurrentChar pr 10i 0 extproc('xmlCurrentChar') + d ctxt value like(xmlParserCtxtPtr) + d len * value int * + + d xmlCopyCharMultiByte... + d pr 10i 0 extproc('xmlCopyCharMultiByte') + d out * value options(*string) xmlChar * + d val 10i 0 value + + d xmlCopyChar pr 10i 0 extproc('xmlCopyChar') + d len 10i 0 value + d out * value options(*string) xmlChar * + d val 10i 0 value + + d xmlNextChar pr extproc('xmlNextChar') + d ctxt value like(xmlParserCtxtPtr) + + d xmlParserInputShrink... + d pr extproc('xmlParserInputShrink') + d in value like(xmlParserInputPtr) + + /if defined(LIBXML_HTML_ENABLED) + + * Actually comes from the HTML parser but launched from the init stuff. + + d htmlInitAutoClose... + d pr extproc('htmlInitAutoClose') + + d htmlCreateFileParserCtxt... + d pr extproc('htmlCreateFileParserCtxt') + d like(htmlParserCtxtPtr) + d filename * value options(*string) const char * + d encoding * value options(*string) const char * + /endif + + * Specific function to keep track of entities references + * and used by the XSLT debugger. + + /if defined(LIBXML_LEGACY_ENABLED) + * xmlEntityReferenceFunc: + * @ent: the entity + * @firstNode: the fist node in the chunk + * @lastNode: the last nod in the chunk + * + * Callback function used when one needs to be able to track back the + * provenance of a chunk of nodes inherited from an entity replacement. + + d xmlEntityReferenceFunc... + d s * based(######typedef######) + d procptr + + d xmlSetEntityReferenceFunc... + d pr extproc('xmlSetEntityReferenceFunc') + d func value like(xmlEntityReferenceFunc) + + d xmlParseQuotedString... + d pr * extproc('xmlParseQuotedString') xmlChar * + d ctxt value like(xmlParserCtxtPtr) + + d xmlParseNamespace... + d pr extproc('xmlParseNamespace') + d ctxt value like(xmlParserCtxtPtr) + + d xmlNamespaceParseNSDef... + d pr * extproc('xmlNamespaceParseNSDef') xmlChar * + d ctxt value like(xmlParserCtxtPtr) + + d xmlScanName pr * extproc('xmlScanName') xmlChar * + d ctxt value like(xmlParserCtxtPtr) + + d xmlNamespaceParseNCName... + d pr * extproc('xmlNamespaceParseNCName') xmlChar * + d ctxt value like(xmlParserCtxtPtr) + + d xmlParserHandleReference... + d pr extproc('xmlParserHandleReference') + d ctxt value like(xmlParserCtxtPtr) + + d xmlNamespaceParseQName... + d pr * extproc('xmlNamespaceParseQName') xmlChar * + d ctxt value like(xmlParserCtxtPtr) + d prefix * xmlChar *(*) + + * Entities + + d xmlDecodeEntities... + d pr * extproc('xmlDecodeEntities') xmlChar * + d ctxt value like(xmlParserCtxtPtr) + d len 10i 0 value + d what 10i 0 value + d end value like(xmlChar) + d end2 value like(xmlChar) + d end3 value like(xmlChar) + + d xmlHandleEntity... + d pr extproc('xmlHandleEntity') + d ctxt value like(xmlParserCtxtPtr) + d entity value like(xmlEntityPtr) + /endif LIBXML_LEGACY_ENABLD + + /endif diff --git a/os400/libxmlrpg/pattern.rpgle b/os400/libxmlrpg/pattern.rpgle new file mode 100644 index 0000000..2e881e5 --- /dev/null +++ b/os400/libxmlrpg/pattern.rpgle @@ -0,0 +1,117 @@ + * Summary: pattern expression handling + * Description: allows to compile and test pattern expressions for nodes + * either in a tree or based on a parser state. + * + * Copy: See Copyright for the status of this software. + * + * Author: Patrick Monnerat <pm@datasphere.ch>, DATASPHERE S.A. + + /if not defined(XML_PATTERN_H__) + /define XML_PATTERN_H__ + + /include "libxmlrpg/xmlversion" + /include "libxmlrpg/tree" + /include "libxmlrpg/dict" + + /if defined(LIBXML_PATTERN_ENABLED) + + * xmlPattern: + * + * A compiled (XPath based) pattern to select nodes + + d xmlPatternPtr... + d s * based(######typedef######) + + * xmlPatternFlags: + * + * This is the set of options affecting the behaviour of pattern + * matching with this module + + d xmlPatternFlags... + d s 10i 0 based(######typedef######) enum + d XML_PATTERN_DEFAULT... Simple pattern match + d c X'0000' + d XML_PATTERN_XPATH... Std XPath pattern + d c X'0001' + d XML_PATTERN_XSSEL... Schm sel XPth subset + d c X'0002' + d XML_PATTERN_XSFIELD... Schm fld XPth subset + d c X'0004' + + d xmlFreePattern pr extproc('xmlFreePattern') + d comp value like(xmlPatternPtr) + + d xmlFreePatternList... + d pr extproc('xmlFreePatternList') + d comp value like(xmlPatternPtr) + + d xmlPatterncompile... + d pr extproc('xmlPatterncompile') + d like(xmlPatternPtr) + d pattern * value options(*string) const xmlChar * + d dict * value xmlDict * + d flags 10i 0 value + d namespaces * const xmlChar *(*) + + d xmlPatternMatch... + d pr 10i 0 extproc('xmlPatternMatch') + d comp value like(xmlPatternPtr) + d node value like(xmlNodePtr) + + * streaming interfaces + + d xmlStreamCtxtPtr... + d s * based(######typedef######) + + d xmlPatternStreamable... + d pr 10i 0 extproc('xmlPatternStreamable') + d comp value like(xmlPatternPtr) + + d xmlPatternMaxDepth... + d pr 10i 0 extproc('xmlPatternMaxDepth') + d comp value like(xmlPatternPtr) + + d xmlPatternMinDepth... + d pr 10i 0 extproc('xmlPatternMinDepth') + d comp value like(xmlPatternPtr) + + d xmlPatternFromRoot... + d pr 10i 0 extproc('xmlPatternFromRoot') + d comp value like(xmlPatternPtr) + + d xmlPatternGetStreamCtxt... + d pr extproc('xmlPatternGetStreamCtxt') + d like(xmlStreamCtxtPtr) + d comp value like(xmlPatternPtr) + + d xmlFreeStreamCtxt... + d pr extproc('xmlFreeStreamCtxt') + d stream value like(xmlStreamCtxtPtr) + + d xmlStreamPushNode... + d pr 10i 0 extproc('xmlStreamPushNode') + d stream value like(xmlStreamCtxtPtr) + d name * value options(*string) const xmlChar * + d ns * value options(*string) const xmlChar * + d nodeType 10i 0 value + + d xmlStreamPush pr 10i 0 extproc('xmlStreamPush') + d stream value like(xmlStreamCtxtPtr) + d name * value options(*string) const xmlChar * + d ns * value options(*string) const xmlChar * + + d xmlStreamPushAttr... + d pr 10i 0 extproc('xmlStreamPushAttr') + d stream value like(xmlStreamCtxtPtr) + d name * value options(*string) const xmlChar * + d ns * value options(*string) const xmlChar * + + d xmlStreamPop pr 10i 0 extproc('xmlStreamPop') + d stream value like(xmlStreamCtxtPtr) + + d xmlStreamWantsAnyNode... + d pr 10i 0 extproc('xmlStreamWantsAnyNode') + d stream value like(xmlStreamCtxtPtr) + + /endif LIBXML_PATTERN_ENBLD + /endif XML_PATTERN_H__ diff --git a/os400/libxmlrpg/relaxng.rpgle b/os400/libxmlrpg/relaxng.rpgle new file mode 100644 index 0000000..af662aa --- /dev/null +++ b/os400/libxmlrpg/relaxng.rpgle @@ -0,0 +1,297 @@ + * Summary: implementation of the Relax-NG validation + * Description: implementation of the Relax-NG validation + * + * Copy: See Copyright for the status of this software. + * + * Author: Patrick Monnerat <pm@datasphere.ch>, DATASPHERE S.A. + + /if not defined(XML_RELAX_NG__) + /define XML_RELAX_NG__ + + /include "libxmlrpg/xmlversion" + /include "libxmlrpg/hash" + /include "libxmlrpg/xmlstring" + + /if defined(LIBXML_SCHEMAS_ENABLED) + + d xmlRelaxNGPtr s * based(######typedef######) + + * xmlRelaxNGValidityErrorFunc: + * @ctx: the validation context + * @msg: the message + * @...: extra arguments + * + * Signature of an error callback from a Relax-NG validation + + d xmlRelaxNGValidityErrorFunc... + d s * based(######typedef######) + d procptr + + * xmlRelaxNGValidityWarningFunc: + * @ctx: the validation context + * @msg: the message + * @...: extra arguments + * + * Signature of a warning callback from a Relax-NG validation + + d xmlRelaxNGValidityWarningFunc... + d s * based(######typedef######) + d procptr + + * A schemas validation context + + d xmlRelaxNGParserCtxtPtr... + d s * based(######typedef######) + + d xmlRelaxNGValidCtxtPtr... + d s * based(######typedef######) + + * xmlRelaxNGValidErr: + * + * List of possible Relax NG validation errors + + d xmlRelaxNGValidErr... + d s 10i 0 based(######typedef######) enum + d XML_RELAXNG_OK... + d c 0 + d XML_RELAXNG_ERR_MEMORY... + d c 1 + d XML_RELAXNG_ERR_TYPE... + d c 2 + d XML_RELAXNG_ERR_TYPEVAL... + d c 3 + d XML_RELAXNG_ERR_DUPID... + d c 4 + d XML_RELAXNG_ERR_TYPECMP... + d c 5 + d XML_RELAXNG_ERR_NOSTATE... + d c 6 + d XML_RELAXNG_ERR_NODEFINE... + d c 7 + d XML_RELAXNG_ERR_LISTEXTRA... + d c 8 + d XML_RELAXNG_ERR_LISTEMPTY... + d c 9 + d XML_RELAXNG_ERR_INTERNODATA... + d c 10 + d XML_RELAXNG_ERR_INTERSEQ... + d c 11 + d XML_RELAXNG_ERR_INTEREXTRA... + d c 12 + d XML_RELAXNG_ERR_ELEMNAME... + d c 13 + d XML_RELAXNG_ERR_ATTRNAME... + d c 14 + d XML_RELAXNG_ERR_ELEMNONS... + d c 15 + d XML_RELAXNG_ERR_ATTRNONS... + d c 16 + d XML_RELAXNG_ERR_ELEMWRONGNS... + d c 17 + d XML_RELAXNG_ERR_ATTRWRONGNS... + d c 18 + d XML_RELAXNG_ERR_ELEMEXTRANS... + d c 19 + d XML_RELAXNG_ERR_ATTREXTRANS... + d c 20 + d XML_RELAXNG_ERR_ELEMNOTEMPTY... + d c 21 + d XML_RELAXNG_ERR_NOELEM... + d c 22 + d XML_RELAXNG_ERR_NOTELEM... + d c 23 + d XML_RELAXNG_ERR_ATTRVALID... + d c 24 + d XML_RELAXNG_ERR_CONTENTVALID... + d c 25 + d XML_RELAXNG_ERR_EXTRACONTENT... + d c 26 + d XML_RELAXNG_ERR_INVALIDATTR... + d c 27 + d XML_RELAXNG_ERR_DATAELEM... + d c 28 + d XML_RELAXNG_ERR_VALELEM... + d c 29 + d XML_RELAXNG_ERR_LISTELEM... + d c 30 + d XML_RELAXNG_ERR_DATATYPE... + d c 31 + d XML_RELAXNG_ERR_VALUE... + d c 32 + d XML_RELAXNG_ERR_LIST... + d c 33 + d XML_RELAXNG_ERR_NOGRAMMAR... + d c 34 + d XML_RELAXNG_ERR_EXTRADATA... + d c 35 + d XML_RELAXNG_ERR_LACKDATA... + d c 36 + d XML_RELAXNG_ERR_INTERNAL... + d c 37 + d XML_RELAXNG_ERR_ELEMWRONG... + d c 38 + d XML_RELAXNG_ERR_TEXTWRONG... + d c 39 + + * xmlRelaxNGParserFlags: + * + * List of possible Relax NG Parser flags + + d xmlRelaxNGParserFlag... + d s 10i 0 based(######typedef######) enum + d XML_RELAXNGP_NONE... + d c 0 + d XML_RELAXNGP_FREE_DOC... + d c 1 + d XML_RELAXNGP_CRNG... + d c 2 + + d xmlRelaxNGInitTypes... + d pr 10i 0 extproc('xmlRelaxNGInitTypes') + + d xmlRelaxNGCleanupTypes... + d pr extproc('xmlRelaxNGCleanupTypes') + + + * Interfaces for parsing. + + d xmlRelaxNGNewParserCtxt... + d pr extproc('xmlRelaxNGNewParserCtxt') + d like(xmlRelaxNGParserCtxtPtr) + d URL * value options(*string) const char * + + d xmlRelaxNGNewMemParserCtxt... + d pr extproc('xmlRelaxNGNewMemParserCtxt') + d like(xmlRelaxNGParserCtxtPtr) + d buffer * value options(*string) const char * + d size 10i 0 value + + d xmlRelaxNGNewDocParserCtxt... + d pr extproc('xmlRelaxNGNewDocParserCtxt') + d like(xmlRelaxNGParserCtxtPtr) + d doc value like(xmlDocPtr) + + d xmlRelaxParserSetFlag... + d pr 10i 0 extproc('xmlRelaxParserSetFlag') + d ctxt value like(xmlRelaxNGParserCtxtPtr) + d flag 10i 0 value + + d xmlRelaxNGFreeParserCtxt... + d pr extproc('xmlRelaxNGFreeParserCtxt') + d ctxt value like(xmlRelaxNGParserCtxtPtr) + + d xmlRelaxNGSetParserErrors... + d pr extproc('xmlRelaxNGSetParserErrors') + d ctxt value like(xmlRelaxNGParserCtxtPtr) + d err value + d like(xmlRelaxNGValidityErrorFunc) + d warn value + d like(xmlRelaxNGValidityWarningFunc) + d ctx * value void * + + d xmlRelaxNGGetParserErrors... + d pr 10i 0 extproc('xmlRelaxNGGetParserErrors') + d ctxt value like(xmlRelaxNGParserCtxtPtr) + d err like(xmlRelaxNGValidityErrorFunc) + d warn like(xmlRelaxNGValidityWarningFunc) + d ctx * void *(*) + + d xmlRelaxNGSetParserStructuredErrors... + d pr extproc( + d 'xmlRelaxNGSetParserStructuredErrors' + d ) + d ctxt value like(xmlRelaxNGParserCtxtPtr) + d serror value like(xmlStructuredErrorFunc) + d ctx * value void * + + d xmlRelaxNGParse... + d pr extproc('xmlRelaxNGParse') + d like(xmlRelaxNGPtr) + d ctxt value like(xmlRelaxNGParserCtxtPtr) + + d xmlRelaxNGFree pr extproc('xmlRelaxNGFree') + d schema value like(xmlRelaxNGPtr) + + + /if defined(LIBXML_OUTPUT_ENABLED) + d xmlRelaxNGDump pr extproc('xmlRelaxNGDump') + d output * value FILE * + d schema value like(xmlRelaxNGPtr) + + d xmlRelaxNGDumpTree... + d pr extproc('xmlRelaxNGDumpTree') + d output * value FILE * + d schema value like(xmlRelaxNGPtr) + /endif LIBXML_OUTPUT_ENABLD + + * Interfaces for validating + + d xmlRelaxNGSetValidErrors... + d pr extproc('xmlRelaxNGSetValidErrors') + d ctxt value like(xmlRelaxNGValidCtxtPtr) + d err value + d like(xmlRelaxNGValidityErrorFunc) + d warn value + d like(xmlRelaxNGValidityWarningFunc) + d ctx * value void * + + d xmlRelaxNGGetValidErrors... + d pr 10i 0 extproc('xmlRelaxNGGetValidErrors') + d ctxt value like(xmlRelaxNGValidCtxtPtr) + d err like(xmlRelaxNGValidityErrorFunc) + d warn like(xmlRelaxNGValidityWarningFunc) + d ctx * value void * * + + d xmlRelaxNGSetValidStructuredErrors... + d pr extproc( + d 'xmlRelaxNGSetValidStructuredErrors') + d ctxt value like(xmlRelaxNGValidCtxtPtr) + d serror value like(xmlStructuredErrorFunc) + d ctx * value void * + + d xmlRelaxNGNewValidCtxt... + d pr extproc('xmlRelaxNGNewValidCtxt') + d like(xmlRelaxNGValidCtxtPtr) + d schema value like(xmlRelaxNGPtr) + + d xmlRelaxNGFreeValidCtxt... + d pr extproc('xmlRelaxNGFreeValidCtxt') + d ctxt value like(xmlRelaxNGValidCtxtPtr) + + d xmlRelaxNGValidateDoc... + d pr 10i 0 extproc('xmlRelaxNGValidateDoc') + d ctxt value like(xmlRelaxNGValidCtxtPtr) + d doc value like(xmlDocPtr) + + * Interfaces for progressive validation when possible + + d xmlRelaxNGValidatePushElement... + d pr 10i 0 extproc( + d 'xmlRelaxNGValidatePushElement') + d ctxt value like(xmlRelaxNGValidCtxtPtr) + d doc value like(xmlDocPtr) + d elem value like(xmlNodePtr) + + d xmlRelaxNGValidatePushCData... + d pr 10i 0 extproc( + d 'xmlRelaxNGValidatePushCData') + d ctxt value like(xmlRelaxNGValidCtxtPtr) + d data * value options(*string) const xmlChar * + d len 10i 0 value + + d xmlRelaxNGValidatePopElement... + d pr 10i 0 extproc( + d 'xmlRelaxNGValidatePopElement') + d ctxt value like(xmlRelaxNGValidCtxtPtr) + d doc value like(xmlDocPtr) + d elem value like(xmlNodePtr) + + d xmlRelaxNGValidateFullElement... + d pr 10i 0 extproc( + d 'xmlRelaxNGValidateFullElement') + d ctxt value like(xmlRelaxNGValidCtxtPtr) + d doc value like(xmlDocPtr) + d elem value like(xmlNodePtr) + + /endif LIBXML_SCHEMAS_ENBLD + /endif XML_RELAX_NG__ diff --git a/os400/libxmlrpg/schemasInternals.rpgle b/os400/libxmlrpg/schemasInternals.rpgle new file mode 100644 index 0000000..edeea5b --- /dev/null +++ b/os400/libxmlrpg/schemasInternals.rpgle @@ -0,0 +1,1137 @@ + * Summary: internal interfaces for XML Schemas + * Description: internal interfaces for the XML Schemas handling + * and schema validity checking + * The Schemas development is a Work In Progress. + * Some of those interfaces are not garanteed to be API or + * ABI stable ! + * + * Copy: See Copyright for the status of this software. + * + * Author: Patrick Monnerat <pm@datasphere.ch>, DATASPHERE S.A. + + /if not defined(XML_SCHEMA_INTERNALS_H__) + /define XML_SCHEMA_INTERNALS_H__ + + /include "libxmlrpg/xmlversion" + + /if defined(LIBXML_SCHEMAS_ENABLED) + /include "libxmlrpg/xmlregexp" + /include "libxmlrpg/hash" + /include "libxmlrpg/dict" + + d xmlSchemaValType... + d s 10i 0 based(######typedef######) enum + d XML_SCHEMAS_UNKNOWN... + d c 0 + d XML_SCHEMAS_STRING... + d c 1 + d XML_SCHEMAS_NORMSTRING... + d c 2 + d XML_SCHEMAS_DECIMAL... + d c 3 + d XML_SCHEMAS_TIME... + d c 4 + d XML_SCHEMAS_GDAY... + d c 5 + d XML_SCHEMAS_GMONTH... + d c 6 + d XML_SCHEMAS_GMONTHDAY... + d c 7 + d XML_SCHEMAS_GYEAR... + d c 8 + d XML_SCHEMAS_GYEARMONTH... + d c 9 + d XML_SCHEMAS_DATE... + d c 10 + d XML_SCHEMAS_DATETIME... + d c 11 + d XML_SCHEMAS_DURATION... + d c 12 + d XML_SCHEMAS_FLOAT... + d c 13 + d XML_SCHEMAS_DOUBLE... + d c 14 + d XML_SCHEMAS_BOOLEAN... + d c 15 + d XML_SCHEMAS_TOKEN... + d c 16 + d XML_SCHEMAS_LANGUAGE... + d c 17 + d XML_SCHEMAS_NMTOKEN... + d c 18 + d XML_SCHEMAS_NMTOKENS... + d c 19 + d XML_SCHEMAS_NAME... + d c 20 + d XML_SCHEMAS_QNAME... + d c 21 + d XML_SCHEMAS_NCNAME... + d c 22 + d XML_SCHEMAS_ID... + d c 23 + d XML_SCHEMAS_IDREF... + d c 24 + d XML_SCHEMAS_IDREFS... + d c 25 + d XML_SCHEMAS_ENTITY... + d c 26 + d XML_SCHEMAS_ENTITIES... + d c 27 + d XML_SCHEMAS_NOTATION... + d c 28 + d XML_SCHEMAS_ANYURI... + d c 29 + d XML_SCHEMAS_INTEGER... + d c 30 + d XML_SCHEMAS_NPINTEGER... + d c 31 + d XML_SCHEMAS_NINTEGER... + d c 32 + d XML_SCHEMAS_NNINTEGER... + d c 33 + d XML_SCHEMAS_PINTEGER... + d c 34 + d XML_SCHEMAS_INT... + d c 35 + d XML_SCHEMAS_UINT... + d c 36 + d XML_SCHEMAS_LONG... + d c 37 + d XML_SCHEMAS_ULONG... + d c 38 + d XML_SCHEMAS_SHORT... + d c 39 + d XML_SCHEMAS_USHORT... + d c 40 + d XML_SCHEMAS_BYTE... + d c 41 + d XML_SCHEMAS_UBYTE... + d c 42 + d XML_SCHEMAS_HEXBINARY... + d c 43 + d XML_SCHEMAS_BASE64BINARY... + d c 44 + d XML_SCHEMAS_ANYTYPE... + d c 45 + d XML_SCHEMAS_ANYSIMPLETYPE... + d c 46 + + * XML Schemas defines multiple type of types. + + d xmlSchemaTypeType... + d s 10i 0 based(######typedef######) enum + d XML_SCHEMA_TYPE_BASIC... A builtin datatype + d c 1 + d XML_SCHEMA_TYPE_ANY... + d c 2 + d XML_SCHEMA_TYPE_FACET... + d c 3 + d XML_SCHEMA_TYPE_SIMPLE... + d c 4 + d XML_SCHEMA_TYPE_COMPLEX... + d c 5 + d XML_SCHEMA_TYPE_SEQUENCE... + d c 6 + d XML_SCHEMA_TYPE_CHOICE... + d c 7 + d XML_SCHEMA_TYPE_ALL... + d c 8 + d XML_SCHEMA_TYPE_SIMPLE_CONTENT... + d c 9 + d XML_SCHEMA_TYPE_COMPLEX_CONTENT... + d c 10 + d XML_SCHEMA_TYPE_UR... + d c 11 + d XML_SCHEMA_TYPE_RESTRICTION... + d c 12 + d XML_SCHEMA_TYPE_EXTENSION... + d c 13 + d XML_SCHEMA_TYPE_ELEMENT... + d c 14 + d XML_SCHEMA_TYPE_ATTRIBUTE... + d c 15 + d XML_SCHEMA_TYPE_ATTRIBUTEGROUP... + d c 16 + d XML_SCHEMA_TYPE_GROUP... + d c 17 + d XML_SCHEMA_TYPE_NOTATION... + d c 18 + d XML_SCHEMA_TYPE_LIST... + d c 19 + d XML_SCHEMA_TYPE_UNION... + d c 20 + d XML_SCHEMA_TYPE_ANY_ATTRIBUTE... + d c 21 + d XML_SCHEMA_TYPE_IDC_UNIQUE... + d c 22 + d XML_SCHEMA_TYPE_IDC_KEY... + d c 23 + d XML_SCHEMA_TYPE_IDC_KEYREF... + d c 24 + d XML_SCHEMA_TYPE_PARTICLE... + d c 25 + d XML_SCHEMA_TYPE_ATTRIBUTE_USE... + d c 26 + d XML_SCHEMA_FACET_MININCLUSIVE... + d c 1000 + d XML_SCHEMA_FACET_MINEXCLUSIVE... + d c 1001 + d XML_SCHEMA_FACET_MAXINCLUSIVE... + d c 1002 + d XML_SCHEMA_FACET_MAXEXCLUSIVE... + d c 1003 + d XML_SCHEMA_FACET_TOTALDIGITS... + d c 1004 + d XML_SCHEMA_FACET_FRACTIONDIGITS... + d c 1005 + d XML_SCHEMA_FACET_PATTERN... + d c 1006 + d XML_SCHEMA_FACET_ENUMERATION... + d c 1007 + d XML_SCHEMA_FACET_WHITESPACE... + d c 1008 + d XML_SCHEMA_FACET_LENGTH... + d c 1009 + d XML_SCHEMA_FACET_MAXLENGTH... + d c 1010 + d XML_SCHEMA_FACET_MINLENGTH... + d c 1011 + d XML_SCHEMA_EXTRA_QNAMEREF... + d c 2000 + d XML_SCHEMA_EXTRA_ATTR_USE_PROHIB... + d c 2001 + + d xmlSchemaContentType... + d s 10i 0 based(######typedef######) enum + d XML_SCHEMA_CONTENT_UNKNOWN... + d c 0 + d XML_SCHEMA_CONTENT_EMPTY... + d c 1 + d XML_SCHEMA_CONTENT_ELEMENTS... + d c 2 + d XML_SCHEMA_CONTENT_MIXED... + d c 3 + d XML_SCHEMA_CONTENT_SIMPLE... + d c 4 + d XML_SCHEMA_CONTENT_MIXED_OR_ELEMENTS... Obsolete + d c 5 + d XML_SCHEMA_CONTENT_BASIC... + d c 6 + d XML_SCHEMA_CONTENT_ANY... + d c 7 + + d xmlSchemaValPtr... + d s * based(######typedef######) + + d xmlSchemaTypePtr... + d s * based(######typedef######) + + d xmlSchemaFacetPtr... + d s * based(######typedef######) + + * Annotation + + d xmlSchemaAnnotPtr... + d s * based(######typedef######) + + d xmlSchemaAnnot ds based(xmlSchemaAnnotPtr) + d align qualified + d next like(xmlSchemaAnnotPtr) + d content like(xmlNodePtr) The annotation + + * XML_SCHEMAS_ANYATTR_SKIP: + * + * Skip unknown attribute from validation + * Obsolete, not used anymore. + + d XML_SCHEMAS_ANYATTR_SKIP... + d c 1 + + * XML_SCHEMAS_ANYATTR_LAX: + * + * Ignore validation non definition on attributes + * Obsolete, not used anymore. + + d XML_SCHEMAS_ANYATTR_LAX... + d c 2 + + * XML_SCHEMAS_ANYATTR_STRICT: + * + * Apply strict validation rules on attributes + * Obsolete, not used anymore. + + d XML_SCHEMAS_ANYATTR_STRICT... + d c 3 + + * XML_SCHEMAS_ANY_SKIP: + * + * Skip unknown attribute from validation + + d XML_SCHEMAS_ANY_SKIP... + d c 1 + + * XML_SCHEMAS_ANY_LAX: + * + * Used by wildcards. + * Validate if type found, don't worry if not found + + d XML_SCHEMAS_ANY_LAX... + d c 2 + + * XML_SCHEMAS_ANY_STRICT: + * + * Used by wildcards. + * Apply strict validation rules + + d XML_SCHEMAS_ANY_STRICT... + d c 3 + + * XML_SCHEMAS_ATTR_USE_PROHIBITED: + * + * Used by wildcards. + * The attribute is prohibited. + + d XML_SCHEMAS_ATTR_USE_PROHIBITED... + d c 0 + + * XML_SCHEMAS_ATTR_USE_REQUIRED: + * + * The attribute is required. + + d XML_SCHEMAS_ATTR_USE_REQUIRED... + d c 1 + + * XML_SCHEMAS_ATTR_USE_OPTIONAL: + * + * The attribute is optional. + + d XML_SCHEMAS_ATTR_USE_OPTIONAL... + d c 2 + + * XML_SCHEMAS_ATTR_GLOBAL: + * + * allow elements in no namespace + + d XML_SCHEMAS_ATTR_GLOBAL... + d c X'0001' + + * XML_SCHEMAS_ATTR_NSDEFAULT: + * + * allow elements in no namespace + + d XML_SCHEMAS_ATTR_NSDEFAULT... + d c X'0080' + + * XML_SCHEMAS_ATTR_INTERNAL_RESOLVED: + * + * this is set when the "type" and "ref" references + * have been resolved. + + d XML_SCHEMAS_ATTR_INTERNAL_RESOLVED... + d c X'0100' + + * XML_SCHEMAS_ATTR_FIXED: + * + * the attribute has a fixed value + + d XML_SCHEMAS_ATTR_FIXED... + d c X'0200' + + * xmlSchemaAttribute: + * An attribute definition. + + d xmlSchemaAttributePtr... + d s * based(######typedef######) + + d xmlSchemaAttribute... + d ds based(xmlSchemaAttributePtr) + d align qualified + d type like(xmlSchemaTypeType) + d next like(xmlSchemaAttributePtr) Next attribute + d name * const xmlChar * + d id * const xmlChar * + d ref * const xmlChar * + d refNs * const xmlChar * + d typeName * const xmlChar * + d typeNs * const xmlChar * + d annot like(xmlSchemaAnnotPtr) + * + d base like(xmlSchemaTypePtr) Deprecated + d occurs 10i 0 Deprecated + d defValue * const xmlChar * + d subtypes like(xmlSchemaTypePtr) The type definition + d node like(xmlNodePtr) + d targetNamespace... const xmlChar * + d * + d flags 10i 0 + d refPrefix * const xmlChar * + d defVal like(xmlSchemaValPtr) Compiled constraint + d refDecl like(xmlSchemaAttributePtr) Deprecated + + * xmlSchemaAttributeLink: + * Used to build a list of attribute uses on complexType definitions. + * WARNING: Deprecated; not used. + + d xmlSchemaAttributeLinkPtr... + d s * based(######typedef######) + + d xmlSchemaAttributeLink... + d ds based(xmlSchemaAttributeLinkPtr) + d align qualified + d next like(xmlSchemaAttributeLinkPtr) The next link + d attr like(xmlSchemaAttributePtr) The linked attribute + + * XML_SCHEMAS_WILDCARD_COMPLETE: + * + * If the wildcard is complete. + + d XML_SCHEMAS_WILDCARD_COMPLETE... + d c X'0001' + + * xmlSchemaCharValueLink: + * Used to build a list of namespaces on wildcards. + + d xmlSchemaWildcardNsPtr... + d s * based(######typedef######) + + d xmlSchemaWildcardNs... + d ds based(xmlSchemaWildcardNsPtr) + d align qualified + d next like(xmlSchemaWildcardNsPtr) The next link + d value * const xmlChar * + + * xmlSchemaWildcard. + * A wildcard. + + d xmlSchemaWildcardPtr... + d s * based(######typedef######) + + d xmlSchemaWildcard... + d ds based(xmlSchemaWildcardPtr) + d align qualified + d type like(xmlSchemaTypeType) Kind of type + d id * const xmlChar * + d annot like(xmlSchemaAnnotPtr) + d node like(xmlNodePtr) + d minOccurs 10i 0 Deprecated; not used + d maxOccurs 10i 0 Deprecated; not used + d processContents... + d 10i 0 + d any 10i 0 Ns constraint ##any? + d nsSet like(xmlSchemaWildcardNsPtr) Allowed namspce list + d negNsSet like(xmlSchemaWildcardNsPtr) Negated namespace + d flags 10i 0 Deprecated; not used + + * XML_SCHEMAS_ATTRGROUP_WILDCARD_BUILDED: + * + * The attribute wildcard has been already builded. + + d XML_SCHEMAS_ATTRGROUP_WILDCARD_BUILDED... + d c X'0001' + + * XML_SCHEMAS_ATTRGROUP_GLOBAL: + * + * The attribute wildcard has been already builded. + + d XML_SCHEMAS_ATTRGROUP_GLOBAL... + d c X'0002' + + * XML_SCHEMAS_ATTRGROUP_MARKED: + * + * Marks the attr group as marked; used for circular checks. + + d XML_SCHEMAS_ATTRGROUP_MARKED... + d c X'0004' + + * XML_SCHEMAS_ATTRGROUP_REDEFINED: + * + * The attr group was redefined. + + d XML_SCHEMAS_ATTRGROUP_REDEFINED... + d c X'0008' + + * XML_SCHEMAS_ATTRGROUP_HAS_REFS: + * + * Whether this attr. group contains attr. group references. + + d XML_SCHEMAS_ATTRGROUP_HAS_REFS... + d c X'0010' + + * An attribute group definition. + * + * xmlSchemaAttribute and xmlSchemaAttributeGroup start of structures + * must be kept similar + + d xmlSchemaAttributeGroupPtr... + d s * based(######typedef######) + + d xmlSchemaAttributeGroup... + d ds based(xmlSchemaAttributeGroupPtr) + d align qualified + d type like(xmlSchemaTypeType) Kind of type + d next like(xmlSchemaAttributePtr) Next attribute + d name * const xmlChar * + d id * const xmlChar * + d ref * const xmlChar * + d refNs * const xmlChar * + d annot like(xmlSchemaAnnotPtr) + * + d attributes like(xmlSchemaAttributePtr) Deprecated; not used + d node like(xmlNodePtr) + d flags 10i 0 + d attributeWildcard... + d like(xmlSchemaWildcardPtr) + d refPrefix * const xmlChar * + d refItem like(xmlSchemaAttributeGroupPtr) Deprecated; not used + d targetNamespace... + d * const xmlChar * + d attrUses * void * + + * xmlSchemaTypeLink: + * Used to build a list of types (e.g. member types of + * simpleType with variety "union"). + + d xmlSchemaTypeLinkPtr... + d s * based(######typedef######) + + d xmlSchemaTypeLink... + d ds based(xmlSchemaTypeLinkPtr) + d align qualified + d next like(xmlSchemaTypeLinkPtr) Next type link + d type like(xmlSchemaTypePtr) Linked type + + * xmlSchemaFacetLink: + * Used to build a list of facets. + + d xmlSchemaFacetLinkPtr... + d s * based(######typedef######) + + d xmlSchemaFacetLink... + d ds based(xmlSchemaFacetLinkPtr) + d align qualified + d next like(xmlSchemaFacetLinkPtr) Next facet link + d facet like(xmlSchemaFacetPtr) Linked facet + + * XML_SCHEMAS_TYPE_MIXED: + * + * the element content type is mixed + + d XML_SCHEMAS_TYPE_MIXED... + d c X'00000001' + + * XML_SCHEMAS_TYPE_DERIVATION_METHOD_EXTENSION: + * + * the simple or complex type has a derivation method of "extension". + + d XML_SCHEMAS_TYPE_DERIVATION_METHOD_EXTENSION... + d c X'00000002' + + * XML_SCHEMAS_TYPE_DERIVATION_METHOD_RESTRICTION: + * + * the simple or complex type has a derivation method of "restriction". + + d XML_SCHEMAS_TYPE_DERIVATION_METHOD_RESTRICTION... + d c X'00000004' + + * XML_SCHEMAS_TYPE_GLOBAL: + * + * the type is global + + d XML_SCHEMAS_TYPE_GLOBAL... + d c X'00000008' + + * XML_SCHEMAS_TYPE_OWNED_ATTR_WILDCARD: + * + * the complexType owns an attribute wildcard, i.e. + * it can be freed by the complexType + + d XML_SCHEMAS_TYPE_OWNED_ATTR_WILDCARD... Obsolete. + d c X'00000010' + + * XML_SCHEMAS_TYPE_VARIETY_ABSENT: + * + * the simpleType has a variety of "absent". + * TODO: Actually not necessary :-/, since if + * none of the variety flags occur then it's + * automatically absent. + + d XML_SCHEMAS_TYPE_VARIETY_ABSENT... + d c X'00000020' + + * XML_SCHEMAS_TYPE_VARIETY_LIST: + * + * the simpleType has a variety of "list". + + d XML_SCHEMAS_TYPE_VARIETY_LIST... + d c X'00000040' + + * XML_SCHEMAS_TYPE_VARIETY_UNION: + * + * the simpleType has a variety of "union". + + d XML_SCHEMAS_TYPE_VARIETY_UNION... + d c X'00000080' + + * XML_SCHEMAS_TYPE_VARIETY_ATOMIC: + * + * the simpleType has a variety of "union". + + d XML_SCHEMAS_TYPE_VARIETY_ATOMIC... + d c X'00000100' + + * XML_SCHEMAS_TYPE_FINAL_EXTENSION: + * + * the complexType has a final of "extension". + + d XML_SCHEMAS_TYPE_FINAL_EXTENSION... + d c X'00000200' + + * XML_SCHEMAS_TYPE_FINAL_RESTRICTION: + * + * the simpleType/complexType has a final of "restriction". + + d XML_SCHEMAS_TYPE_FINAL_RESTRICTION... + d c X'00000400' + + * XML_SCHEMAS_TYPE_FINAL_LIST: + * + * the simpleType has a final of "list". + + d XML_SCHEMAS_TYPE_FINAL_LIST... + d c X'00000800' + + * XML_SCHEMAS_TYPE_FINAL_UNION: + * + * the simpleType has a final of "union". + + d XML_SCHEMAS_TYPE_FINAL_UNION... + d c X'00001000' + + * XML_SCHEMAS_TYPE_FINAL_DEFAULT: + * + * the simpleType has a final of "default". + + d XML_SCHEMAS_TYPE_FINAL_DEFAULT... + d c X'00002000' + + * XML_SCHEMAS_TYPE_BUILTIN_PRIMITIVE: + * + * Marks the item as a builtin primitive. + + d XML_SCHEMAS_TYPE_BUILTIN_PRIMITIVE... + d c X'00004000' + + * XML_SCHEMAS_TYPE_MARKED: + * + * Marks the item as marked; used for circular checks. + + d XML_SCHEMAS_TYPE_MARKED... + d c X'00010000' + + * XML_SCHEMAS_TYPE_BLOCK_DEFAULT: + * + * the complexType did not specify 'block' so use the default of the + * <schema> item. + + d XML_SCHEMAS_TYPE_BLOCK_DEFAULT... + d c X'00020000' + + * XML_SCHEMAS_TYPE_BLOCK_EXTENSION: + * + * the complexType has a 'block' of "extension". + + d XML_SCHEMAS_TYPE_BLOCK_EXTENSION... + d c X'00040000' + + * XML_SCHEMAS_TYPE_BLOCK_RESTRICTION: + * + * the complexType has a 'block' of "restriction". + + d XML_SCHEMAS_TYPE_BLOCK_RESTRICTION... + d c X'00080000' + + * XML_SCHEMAS_TYPE_ABSTRACT: + * + * the simple/complexType is abstract. + + d XML_SCHEMAS_TYPE_ABSTRACT... + d c X'00100000' + + * XML_SCHEMAS_TYPE_FACETSNEEDVALUE: + * + * indicates if the facets need a computed value + + d XML_SCHEMAS_TYPE_FACETSNEEDVALUE... + d c X'00200000' + + * XML_SCHEMAS_TYPE_INTERNAL_RESOLVED: + * + * indicates that the type was typefixed + + d XML_SCHEMAS_TYPE_INTERNAL_RESOLVED... + d c X'00400000' + + * XML_SCHEMAS_TYPE_INTERNAL_INVALID: + * + * indicates that the type is invalid + + d XML_SCHEMAS_TYPE_INTERNAL_INVALID... + d c X'00800000' + + * XML_SCHEMAS_TYPE_WHITESPACE_PRESERVE: + * + * a whitespace-facet value of "preserve" + + d XML_SCHEMAS_TYPE_WHITESPACE_PRESERVE... + d c X'01000000' + + * XML_SCHEMAS_TYPE_WHITESPACE_REPLACE: + * + * a whitespace-facet value of "replace" + + d XML_SCHEMAS_TYPE_WHITESPACE_REPLACE... + d c X'02000000' + + * XML_SCHEMAS_TYPE_WHITESPACE_COLLAPSE: + * + * a whitespace-facet value of "collapse" + + d XML_SCHEMAS_TYPE_WHITESPACE_COLLAPSE... + d c X'04000000' + + * XML_SCHEMAS_TYPE_HAS_FACETS: + * + * has facets + + d XML_SCHEMAS_TYPE_HAS_FACETS... + d c X'08000000' + + * XML_SCHEMAS_TYPE_NORMVALUENEEDED: + * + * indicates if the facets (pattern) need a normalized value + + d XML_SCHEMAS_TYPE_NORMVALUENEEDED... + d c X'10000000' + + * XML_SCHEMAS_TYPE_FIXUP_1: + * + * First stage of fixup was done. + + d XML_SCHEMAS_TYPE_FIXUP_1... + d c X'20000000' + + * XML_SCHEMAS_TYPE_REDEFINED: + * + * The type was redefined. + + d XML_SCHEMAS_TYPE_REDEFINED... + d c X'40000000' + + /if defined(DISABLED) + * XML_SCHEMAS_TYPE_REDEFINING: + * + * The type redefines an other type. + + d XML_SCHEMAS_TYPE_REDEFINING... + d c X'80000000' + /endif + + * _xmlSchemaType: + * + * Schemas type definition. + + d xmlSchemaType... + d ds based(xmlSchemaTypePtr) + d align qualified + d type like(xmlSchemaTypeType) Kind of type + d next like(xmlSchemaTypePtr) Next type + d name * const xmlChar * + d id * const xmlChar * + d ref * const xmlChar * + d refNs * const xmlChar * + d annot like(xmlSchemaAnnotPtr) + d subtypes like(xmlSchemaTypePtr) + d attributes like(xmlSchemaAttributePtr) Deprecated; not used + d node like(xmlNodePtr) + d minOccurs 10i 0 Deprecated; not used + d maxOccurs 10i 0 Deprecated; not used + * + d flags 10i 0 + d contentType like(xmlSchemaContentType) + d base * const xmlChar * + d baseNs * const xmlChar * + d baseType like(xmlSchemaTypePtr) Base type component + d facets like(xmlSchemaFacetPtr) Local facets + d redef like(xmlSchemaTypePtr) Deprecated; not used + d recurse 10i 0 Obsolete + d attributeUses like(xmlSchemaAttributeLinkPtr) Deprecated; not used + d attributeWildcard... + d like(xmlSchemaWildcardPtr) + d builtInType 10i 0 Built-in types type + d memberTypes like(xmlSchemaTypeLinkPtr) Union member-types + d facetSet like(xmlSchemaFacetLinkPtr) All facets + d refPrefix * const xmlChar * + d contentTypeDef... + d like(xmlSchemaTypePtr) + d contModel like(xmlRegexpPtr) Content model autom. + d targetNamespace... + d * const xmlChar * + d attrUses * void * + + * xmlSchemaElement: + * An element definition. + * + * xmlSchemaType, xmlSchemaFacet and xmlSchemaElement start of + * structures must be kept similar + + * XML_SCHEMAS_ELEM_NILLABLE: + * + * the element is nillable + + d XML_SCHEMAS_ELEM_NILLABLE... + d c X'00000001' + + * XML_SCHEMAS_ELEM_GLOBAL: + * + * the element is global + + d XML_SCHEMAS_ELEM_GLOBAL... + d c X'00000002' + + * XML_SCHEMAS_ELEM_DEFAULT: + * + * the element has a default value + + d XML_SCHEMAS_ELEM_DEFAULT... + d c X'00000004' + + * XML_SCHEMAS_ELEM_FIXED: + * + * the element has a fixed value + + d XML_SCHEMAS_ELEM_FIXED... + d c X'00000008' + + * XML_SCHEMAS_ELEM_ABSTRACT: + * + * the element is abstract + + d XML_SCHEMAS_ELEM_ABSTRACT... + d c X'00000010' + + * XML_SCHEMAS_ELEM_TOPLEVEL: + * + * the element is top level + * obsolete: use XML_SCHEMAS_ELEM_GLOBAL instead + + d XML_SCHEMAS_ELEM_TOPLEVEL... + d c X'00000020' + + * XML_SCHEMAS_ELEM_REF: + * + * the element is a reference to a type + + d XML_SCHEMAS_ELEM_REF... + d c X'00000040' + + * XML_SCHEMAS_ELEM_NSDEFAULT: + * + * allow elements in no namespace + * Obsolete, not used anymore. + + d XML_SCHEMAS_ELEM_NSDEFAULT... + d c X'00000080' + + * XML_SCHEMAS_ELEM_INTERNAL_RESOLVED: + * + * this is set when "type", "ref", "substitutionGroup" + * references have been resolved. + + d XML_SCHEMAS_ELEM_INTERNAL_RESOLVED... + d c X'00000100' + + * XML_SCHEMAS_ELEM_CIRCULAR: + * + * a helper flag for the search of circular references. + + d XML_SCHEMAS_ELEM_CIRCULAR... + d c X'00000200' + + * XML_SCHEMAS_ELEM_BLOCK_ABSENT: + * + * the "block" attribute is absent + + d XML_SCHEMAS_ELEM_BLOCK_ABSENT... + d c X'00000400' + + * XML_SCHEMAS_ELEM_BLOCK_EXTENSION: + * + * disallowed substitutions are absent + + d XML_SCHEMAS_ELEM_BLOCK_EXTENSION... + d c X'00000800' + + * XML_SCHEMAS_ELEM_BLOCK_RESTRICTION: + * + * disallowed substitutions: "restriction" + + d XML_SCHEMAS_ELEM_BLOCK_RESTRICTION... + d c X'00001000' + + * XML_SCHEMAS_ELEM_BLOCK_SUBSTITUTION: + * + * disallowed substitutions: "substituion" + + d XML_SCHEMAS_ELEM_BLOCK_SUBSTITUTION... + d c X'00002000' + + * XML_SCHEMAS_ELEM_FINAL_ABSENT: + * + * substitution group exclusions are absent + + d XML_SCHEMAS_ELEM_FINAL_ABSENT... + d c X'00004000' + + * XML_SCHEMAS_ELEM_FINAL_EXTENSION: + * + * substitution group exclusions: "extension" + + d XML_SCHEMAS_ELEM_FINAL_EXTENSION... + d c X'00008000' + + * XML_SCHEMAS_ELEM_FINAL_RESTRICTION: + * + * substitution group exclusions: "restriction" + + d XML_SCHEMAS_ELEM_FINAL_RESTRICTION... + d c X'00010000' + + * XML_SCHEMAS_ELEM_SUBST_GROUP_HEAD: + * + * the declaration is a substitution group head + + d XML_SCHEMAS_ELEM_SUBST_GROUP_HEAD... + d c X'00020000' + + * XML_SCHEMAS_ELEM_INTERNAL_CHECKED: + * + * this is set when the elem decl has been checked against + * all constraints + + d XML_SCHEMAS_ELEM_INTERNAL_CHECKED... + d c X'00040000' + + d xmlSchemaElementPtr... + d s * based(######typedef######) + + d xmlSchemaElement... + d ds based(xmlSchemaElementPtr) + d align qualified + d type like(xmlSchemaTypeType) Kind of type + d next like(xmlSchemaElementPtr) Not used ? + d name * const xmlChar * + d id * const xmlChar * + d ref * const xmlChar * + d refNs * const xmlChar * + d annot like(xmlSchemaAnnotPtr) + d subtypes like(xmlSchemaTypePtr) + d attributes like(xmlSchemaAttributePtr) Deprecated; not used + d node like(xmlNodePtr) + d minOccurs 10i 0 Deprecated; not used + d maxOccurs 10i 0 Deprecated; not used + * + d flags 10i 0 + d targetNamespace... + d * const xmlChar * + d namedType * const xmlChar * + d namedTypeNs * const xmlChar * + d substGroup * const xmlChar * + d substGroupNs * const xmlChar * + d scope * const xmlChar * + d value * const xmlChar * + d refDecl like(xmlSchemaElementPtr) + d contModel like(xmlRegexpPtr) + d contentType like(xmlSchemaContentType) + d refPrefix * const xmlChar * + d devVal like(xmlSchemaValPtr) Comp val constraint + d idcs * void * + + * XML_SCHEMAS_FACET_UNKNOWN: + * + * unknown facet handling + + d XML_SCHEMAS_FACET_UNKNOWN... + d c 0 + + * XML_SCHEMAS_FACET_PRESERVE: + * + * preserve the type of the facet + + d XML_SCHEMAS_FACET_PRESERVE... + d c 1 + + * XML_SCHEMAS_FACET_REPLACE: + * + * replace the type of the facet + + d XML_SCHEMAS_FACET_REPLACE... + d c 2 + + * XML_SCHEMAS_FACET_COLLAPSE: + * + * collapse the types of the facet + + d XML_SCHEMAS_FACET_COLLAPSE... + d c 3 + + * A facet definition. + + d xmlSchemaFacet... + d ds based(xmlSchemaFacetPtr) + d align qualified + d type like(xmlSchemaTypeType) Kind of type + d next like(xmlSchemaFacetPtr) Next type in seq. + d value * const xmlChar * + d id * const xmlChar * + d annot like(xmlSchemaAnnotPtr) + d node like(xmlNodePtr) + d fixed 10i 0 _FACET_PRESERVE, etc + d whitespace 10i 0 + d val like(xmlSchemaValPtr) Compiled value + d regexp like(xmlRegexpPtr) Regexp for patterns + + * A notation definition. + + d xmlSchemaNotationPtr... + d s * based(######typedef######) + + d xmlSchemaNotation... + d ds based(xmlSchemaNotationPtr) + d align qualified + d type like(xmlSchemaTypeType) Kind of type + d name * const xmlChar * + d annot like(xmlSchemaAnnotPtr) + d identifier * const xmlChar * + d targetNamespace... + d * const xmlChar * + + * TODO: Actually all those flags used for the schema should sit + * on the schema parser context, since they are used only + * during parsing an XML schema document, and not available + * on the component level as per spec. + + * XML_SCHEMAS_QUALIF_ELEM: + * + * Reflects elementFormDefault == qualified in + * an XML schema document. + + d XML_SCHEMAS_QUALIF_ELEM... + d c X'00000001' + + * XML_SCHEMAS_QUALIF_ATTR: + * + * Reflects attributeFormDefault == qualified in + * an XML schema document. + + d XML_SCHEMAS_QUALIF_ATTR... + d c X'00000002' + + * XML_SCHEMAS_FINAL_DEFAULT_EXTENSION: + * + * the schema has "extension" in the set of finalDefault. + + d XML_SCHEMAS_FINAL_DEFAULT_EXTENSION... + d c X'00000004' + + * XML_SCHEMAS_FINAL_DEFAULT_RESTRICTION: + * + * the schema has "restriction" in the set of finalDefault. + + d XML_SCHEMAS_FINAL_DEFAULT_RESTRICTION... + d c X'00000008' + + * XML_SCHEMAS_FINAL_DEFAULT_LIST: + * + * the cshema has "list" in the set of finalDefault. + + d XML_SCHEMAS_FINAL_DEFAULT_LIST... + d c X'00000010' + + * XML_SCHEMAS_FINAL_DEFAULT_UNION: + * + * the schema has "union" in the set of finalDefault. + + d XML_SCHEMAS_FINAL_DEFAULT_UNION... + d c X'00000020' + + * XML_SCHEMAS_BLOCK_DEFAULT_EXTENSION: + * + * the schema has "extension" in the set of blockDefault. + + d XML_SCHEMAS_BLOCK_DEFAULT_EXTENSION... + d c X'00000040' + + * XML_SCHEMAS_BLOCK_DEFAULT_RESTRICTION: + * + * the schema has "restriction" in the set of blockDefault. + + d XML_SCHEMAS_BLOCK_DEFAULT_RESTRICTION... + d c X'00000080' + + * XML_SCHEMAS_BLOCK_DEFAULT_SUBSTITUTION: + * + * the schema has "substitution" in the set of blockDefault. + + d XML_SCHEMAS_BLOCK_DEFAULT_SUBSTITUTION... + d c X'00000100' + + * XML_SCHEMAS_INCLUDING_CONVERT_NS: + * + * the schema is currently including an other schema with + * no target namespace. + + d XML_SCHEMAS_INCLUDING_CONVERT_NS... + d c X'00000200' + + * _xmlSchema: + * + * A Schemas definition + + d xmlSchema ds based(xmlSchemaPtr) + d align qualified + d name * const xmlChar * + d targetNamespace... + d * const xmlChar * + d version * const xmlChar * + d id * const xmlChar * + d doc like(xmlDocPtr) + d annot like(xmlSchemaAnnotPtr) + d flags 10i 0 + * + d typeDecl like(xmlHashTablePtr) + d attrDecl like(xmlHashTablePtr) + d attrGrpDecl like(xmlHashTablePtr) + d elemDecl like(xmlHashTablePtr) + d notaDecl like(xmlHashTablePtr) + d schemasImports... + d like(xmlHashTablePtr) + * + d #private * void * + d groupDecl like(xmlHashTablePtr) + d dict like(xmlDictPtr) + d includes * void * + d preserve 10i 0 Do not free doc ? + d counter 10i 0 For name uniqueness + d idcDef like(xmlHashTablePtr) All id-constr. defs + d volatiles * void * + + d xmlSchemaFreeType... + d pr extproc('xmlSchemaFreeType') + d type value like(xmlSchemaTypePtr) + + d xmlSchemaFreeWildcard... + d pr extproc('xmlSchemaFreeWildcard') + d wildcard value like(xmlSchemaWildcardPtr) + + /endif LIBXML_SCHEMAS_ENBLD + /endif SCHEMA_INTERNALS_H__ diff --git a/os400/libxmlrpg/schematron.rpgle b/os400/libxmlrpg/schematron.rpgle new file mode 100644 index 0000000..ff8ea62 --- /dev/null +++ b/os400/libxmlrpg/schematron.rpgle @@ -0,0 +1,195 @@ + * Summary: XML Schemastron implementation + * Description: interface to the XML Schematron validity checking. + * + * Copy: See Copyright for the status of this software. + * + * Author: Patrick Monnerat <pm@datasphere.ch>, DATASPHERE S.A. + + /if not defined(XML_SCHEMATRON_H__) + /define XML_SCHEMATRON_H__ + + /include "libxmlrpg/xmlversion" + + /if defined(LIBXML_SCHEMATRON_ENABLED) + + /include "libxmlrpg/tree" + + d xmlSchematronValidOptions... + d s 10i 0 based(######typedef######) enum + d XML_SCHEMATRON_OUT_QUIET... Quiet no report + d c X'0001' + d XML_SCHEMATRON_OUT_TEXT... Build textual report + d c X'0002' + d XML_SCHEMATRON_OUT_XML... Output SVRL + d c X'0004' + d XML_SCHEMATRON_OUT_ERROR... Output to error func + d c X'0008' + d XML_SCHEMATRON_OUT_FILE... Output to file descr + d c X'0100' + d XML_SCHEMATRON_OUT_BUFFER... Output to a buffer + d c X'0200' + d XML_SCHEMATRON_OUT_IO... Output to I/O mech + d c X'0400' + + * The schemas related types are kept internal + + d xmlSchematronPtr... + d s * based(######typedef######) + + * xmlSchematronValidityErrorFunc: + * @ctx: the validation context + * @msg: the message + * @...: extra arguments + * + * Signature of an error callback from a Schematron validation + + d xmlSchematronValidityErrorFunc... + d s * based(######typedef######) + d procptr + + * xmlSchematronValidityWarningFunc: + * @ctx: the validation context + * @msg: the message + * @...: extra arguments + * + * Signature of a warning callback from a Schematron validation + + d xmlSchematronValidityWarningFunc... + d s * based(######typedef######) + d procptr + + * A schemas validation context + + d xmlSchematronParserCtxtPtr... + d s * based(######typedef######) + + d xmlSchematronValidCtxtPtr... + d s * based(######typedef######) + + * Interfaces for parsing. + + d xmlSchematronNewParserCtxt... + d pr extproc('xmlSchematronNewParserCtxt') + d like(xmlSchematronParserCtxtPtr) + d URL * value options(*string) const char * + + d xmlSchematronNewMemParserCtxt... + d pr extproc( + d 'xmlSchematronNewMemParserCtxt') + d like(xmlSchematronParserCtxtPtr) + d buffer * value options(*string) const char * + d size 10i 0 value + + d xmlSchematronNewDocParserCtxt... + d pr extproc( + d 'xmlSchematronNewDocParserCtxt') + d like(xmlSchematronParserCtxtPtr) + d doc value like(xmlDocPtr) + + d xmlSchematronFreeParserCtxt... + d pr extproc( + d 'xmlSchematronFreeParserCtxt') + d ctxt value + d like(xmlSchematronParserCtxtPtr) + + /if defined(DISABLED) + d xmlSchematronSetParserErrors... + d pr extproc( + d 'xmlSchematronSetParserErrors') + d ctxt value + d like(xmlSchematronParserCtxtPtr) + d err value + d like(xmlSchematronValidityErrorFunc) + d warn value like( + d xmlSchematronValidityWarningFunc) + d ctx * value void * + + d xmlSchematronGetParserErrors... + d pr 10i 0 extproc( + d 'xmlSchematronGetParserErrors') + d ctxt value + d like(xmlSchematronParserCtxtPtr) + d err like(xmlSchematronValidityErrorFunc) + d warn like( + d xmlSchematronValidityWarningFunc) + d ctx * void *(*) + + d xmlSchematronIsValid... + d pr 10i 0 extproc('xmlSchematronIsValid') + d ctxt value like(xmlSchematronValidCtxtPtr) + /endif + + d xmlSchematronParse... + d pr extproc('xmlSchematronParse') + d like(xmlSchematronPtr) + d ctxt value + d like(xmlSchematronParserCtxtPtr) + + d xmlSchematronFree... + d pr extproc('xmlSchematronFree') + d schema value like(xmlSchematronPtr) + + * Interfaces for validating + + d xmlSchematronSetValidStructuredErrors... + d pr extproc('xmlSchematronSetValidStruct- + d uredErrors') + d ctxt value like(xmlSchematronValidCtxtPtr) + d serror value like(xmlStructuredErrorFunc) + d ctx * value void * + + /if defined(DISABLED) + d xmlSchematronSetValidErrors... + d pr extproc( + d 'xmlSchematronSetValidErrors') + d ctxt value like(xmlSchematronValidCtxtPtr) + d err value + d like(xmlSchematronValidityErrorFunc) + d warn value like( + d xmlSchematronValidityWarningFunc) + d ctx * value void * + + d xmlSchematronGetValidErrors... + d pr 10i 0 extproc( + d 'xmlSchematronGetValidErrors') + d ctxt value like(xmlSchematronValidCtxtPtr) + d err like(xmlSchematronValidityErrorFunc) + d warn like( + d xmlSchematronValidityWarningFunc) + d ctx * void *(*) + + d xmlSchematronSetValidOptions... + d pr 10i 0 extproc( + d 'xmlSchematronSetValidOptions') + d ctxt value like(xmlSchematronValidCtxtPtr) + d options 10i 0 value + + d xmlSchematronValidCtxtGetOptions... + d pr 10i 0 extproc( + d 'xmlSchematronValidCtxtGetOptions') + d ctxt value like(xmlSchematronValidCtxtPtr) + + d xmlSchematronValidateOneElement... + d pr 10i 0 extproc( + d 'xmlSchematronValidateOneElement') + d ctxt value like(xmlSchematronValidCtxtPtr) + d elem value like(xmlNodePtr) + /endif + + d xmlSchematronNewValidCtxt... + d pr extproc('xmlSchematronNewValidCtxt') + d like(xmlSchematronValidCtxtPtr) + d schema value like(xmlSchematronPtr) + d options 10i 0 value + + d xmlSchematronFreeValidCtxt... + d pr extproc('xmlSchematronFreeValidCtxt') + d ctxt value like(xmlSchematronValidCtxtPtr) + + d xmlSchematronValidateDoc... + d pr 10i 0 extproc('xmlSchematronValidateDoc') + d ctxt value like(xmlSchematronValidCtxtPtr) + d instance value like(xmlDocPtr) + + /endif _SCHEMATRON_ENABLED + /endif XML_SCHEMATRON_H__ diff --git a/os400/libxmlrpg/threads.rpgle b/os400/libxmlrpg/threads.rpgle new file mode 100644 index 0000000..07d4278 --- /dev/null +++ b/os400/libxmlrpg/threads.rpgle @@ -0,0 +1,70 @@ + * Summary: interfaces for thread handling + * Description: set of generic threading related routines + * should work with pthreads, Windows native or TLS threads + * + * Copy: See Copyright for the status of this software. + * + * Author: Patrick Monnerat <pm@datasphere.ch>, DATASPHERE S.A. + + /if not defined(XML_THREADS_H__) + /define XML_THREADS_H__ + + /include "libxmlrpg/xmlversion" + + * xmlMutex are a simple mutual exception locks. + + d xmlMutexPtr s * based(######typedef######) + + * xmlRMutex are reentrant mutual exception locks. + + d xmlRMutexPtr s * based(######typedef######) + + /include "libxmlrpg/globals" + + d xmlNewMutex pr extproc('xmlNewMutex') + d like(xmlMutexPtr) + + d xmlMutexLock pr extproc('xmlMutexLock') + d tok value like(xmlMutexPtr) + + d xmlMutexUnlock pr extproc('xmlMutexUnlock') + d tok value like(xmlMutexPtr) + + d xmlFreeMutex pr extproc('xmlFreeMutex') + d tok value like(xmlMutexPtr) + + d xmlNewRMutex pr extproc('xmlNewRMutex') + d like(xmlRMutexPtr) + + d xmlRMutexLock pr extproc('xmlRMutexLock') + d tok value like(xmlRMutexPtr) + + d xmlRMutexUnlock... + d pr extproc('xmlRMutexUnlock') + d tok value like(xmlRMutexPtr) + + d xmlFreeRMutex pr extproc('xmlFreeRMutex') + d tok value like(xmlRMutexPtr) + + * Library wide APIs. + + d xmlInitThreads pr extproc('xmlInitThreads') + + d xmlLockLibrary pr extproc('xmlLockLibrary') + + d xmlUnlockLibrary... + d pr extproc('xmlUnlockLibrary') + + d xmlGetThreadId pr 10i 0 extproc('xmlGetThreadId') + + d xmlIsMainThread... + d pr 10i 0 extproc('xmlIsMainThread') + + d xmlCleanupThreads... + d pr extproc('xmlCleanupThreads') + + d xmlGetGlobalState... + d pr extproc('xmlGetGlobalState') + d like(xmlGlobalStatePtr) + + /endif XML_THREADS_H__ diff --git a/os400/libxmlrpg/transcode.rpgle b/os400/libxmlrpg/transcode.rpgle new file mode 100644 index 0000000..b96e4e8 --- /dev/null +++ b/os400/libxmlrpg/transcode.rpgle @@ -0,0 +1,71 @@ + * Supplementary character code conversion functions for + * EBCDIC environments. + * + * Copy: See Copyright for the status of this software. + * + * Author: Patrick Monnerat <pm@datasphere.ch>, DATASPHERE S.A. + + /if not defined(TRANSCODE_H__) + /define TRANSCODE_H__ + + /include "libxmlrpg/dict" + /include "libxmlrpg/xmlstdarg" + + d xmlZapDict pr extproc('xmlZapDict') + d dict like(xmlDictPtr) + + d xmlTranscodeResult... + d pr * extproc('xmlTranscodeResult') const char * + d s * value options(*string) const xmlChar * + d encoding * value options(*string) const char * + d dict like(xmlDictPtr) options(*omit) + d freeproc * value procptr + + d xmlTranscodeString... + d pr * extproc('xmlTranscodeString') const xmlChar * + d s * value options(*string) const char * + d encoding * value options(*string) const char * + d dict like(xmlDictPtr) options(*omit) + + d xmlTranscodeWString... + d pr * extproc('xmlTranscodeWString') const xmlChar * + d s * value options(*string) const char * + d encoding * value options(*string) const char * + d dict like(xmlDictPtr) options(*omit) + + d xmlTranscodeHString... + d pr * extproc('xmlTranscodeHString') const xmlChar * + d s * value options(*string) const char * + d encoding * value options(*string) const char * + d dict like(xmlDictPtr) options(*omit) + + /if not defined(XML_NO_SHORT_NAMES) + d xmlTR pr * extproc('xmlTranscodeResult') const char * + d s * value options(*string) const xmlChar * + d encoding * value options(*string) const char * + d dict like(xmlDictPtr) options(*omit) + d freeproc * value procptr + + d xmlTS pr * extproc('xmlTranscodeString') const xmlChar * + d s * value options(*string) const char * + d encoding * value options(*string) const char * + d dict like(xmlDictPtr) options(*omit) + + d xmlTW pr * extproc('xmlTranscodeWString') const xmlChar * + d s * value options(*string) const char * + d encoding * value options(*string) const char * + d dict like(xmlDictPtr) options(*omit) + + d xmlTH pr * extproc('xmlTranscodeHString') const xmlChar * + d s * value options(*string) const char * + d encoding * value options(*string) const char * + d dict like(xmlDictPtr) options(*omit) + /endif + + d xmlVasprintf pr * extproc('xmlVasprintf') + d dict like(xmlDictPtr) options(*omit) + d encoding * value options(*string) const char * + d fmt * value options(*string) const xmlChar * + d args likeds(xmlVaList) + + /endif diff --git a/os400/libxmlrpg/tree.rpgle b/os400/libxmlrpg/tree.rpgle new file mode 100644 index 0000000..8b4981a --- /dev/null +++ b/os400/libxmlrpg/tree.rpgle @@ -0,0 +1,1628 @@ + * Summary: interfaces for tree manipulation + * Description: this module describes the structures found in an tree + * resulting from an XML or HTML parsing, as well as the API + * provided for various processing on that tree + * + * Copy: See Copyright for the status of this software. + * + * Author: Patrick Monnerat <pm@datasphere.ch>, DATASPHERE S.A. + + /if not defined(XML_TREE_H__) + /define XML_TREE_H__ + + /include "libxmlrpg/xmlversion" + /include "libxmlrpg/xmlstring" + + + * Some of the basic types pointer to structures: + + * xmlIO.h + + d xmlParserInputBufferPtr... + d s * based(######typedef######) + + d xmlOutputBufferPtr... + d s * based(######typedef######) + + * parser.h + + d xmlParserInputPtr... + d s * based(######typedef######) + + d xmlParserCtxtPtr... + d s * based(######typedef######) + + d xmlSAXLocatorPtr... + d s * based(######typedef######) + + d xmlSAXHandlerPtr... + d s * based(######typedef######) + + * entities.h + + d xmlEntityPtr s * based(######typedef######) + + + * BASE_BUFFER_SIZE: + * + * default buffer size 4000. + + d BASE_BUFFER_SIZE... + d c 4096 + + * LIBXML_NAMESPACE_DICT: + * + * Defines experimental behaviour: + * 1) xmlNs gets an additional field @context (a xmlDoc) + * 2) when creating a tree, xmlNs->href is stored in the dict of xmlDoc. + + /if defined(DO_NOT_COMPILE) + /define LIBXML_NAMESPACE_DICT + /endif + + * xmlBufferAllocationScheme: + * + * A buffer allocation scheme can be defined to either match exactly the + * need or double it's allocated size each time it is found too small. + + d xmlBufferAllocationScheme... + d s 10i 0 based(######typedef######) enum + d XML_BUFFER_ALLOC_DOUBLEIT... + d c 0 + d XML_BUFFER_ALLOC_EXACT... + d c 1 + d XML_BUFFER_ALLOC_IMMUTABLE... + d c 2 + d XML_BUFFER_ALLOC_IO... + d c 3 + d XML_BUFFER_ALLOC_HYBRID... + d c 4 + + * xmlBuffer: + * + * A buffer structure, this old construct is limited to 2GB and + * is being deprecated, use API with xmlBuf instead + + d xmlBufferPtr s * based(######typedef######) + + d xmlBuffer ds based(xmlBufferPtr) + d align qualified + d content * xmlChar * + d use 10u 0 The buffer size used + d size 10u 0 The buffer size + d alloc like(xmlBufferAllocationScheme) The realloc method + d contentIO * xmlChar * + + * xmlBufPtr: + * + * A pointer to a buffer structure, the actual structure internals are not + * public + + d xmlBufPtr s * based(######typedef######) + + * A few public routines for xmlBuf. As those are expected to be used + * mostly internally the bulk of the routines are internal in buf.h + + d xmlBufContent pr * extproc('xmlBufContent') xmlChar * + d buf value like(xmlBufPtr) const + + d xmlBufEnd pr * extproc('xmlBufEnd') xmlChar * + d buf value like(xmlBufPtr) const + + d xmlBufUse pr 10u 0 extproc('xmlBufUse') size_t + d buf value like(xmlBufPtr) const + + d xmlBufShrink pr 10u 0 extproc('xmlBufShrink') size_t + d buf value like(xmlBufPtr) + d len 10u 0 value size_t + + * LIBXML2_NEW_BUFFER: + * + * Macro used to express that the API use the new buffers for + * xmlParserInputBuffer and xmlOutputBuffer. The change was + * introduced in 2.9.0. + + /define LIBXML2_NEW_BUFFER + + * XML_XML_NAMESPACE: + * + * This is the namespace for the special xml: prefix predefined in the + * XML Namespace specification. + + d XML_XML_NAMESPACE... + d c 'http://www.w3.org/XML/1998/+ + d namespace' + + * XML_XML_ID: + * + * This is the name for the special xml:id attribute + + d XML_XML_ID c 'xml:id' + + * The different element types carried by an XML tree. + * + * NOTE: This is synchronized with DOM Level1 values + * See http://www.w3.org/TR/REC-DOM-Level-1/ + * + * Actually this had diverged a bit, and now XML_DOCUMENT_TYPE_NODE should + * be deprecated to use an XML_DTD_NODE. + + d xmlElementType s 10i 0 based(######typedef######) enum + d XML_ELEMENT_NODE... + d c 1 + d XML_ATTRIBUTE_NODE... + d c 2 + d XML_TEXT_NODE c 3 + d XML_CDATA_SECTION_NODE... + d c 4 + d XML_ENTITY_REF_NODE... + d c 5 + d XML_ENTITY_NODE... + d c 6 + d XML_PI_NODE c 7 + d XML_COMMENT_NODE... + d c 8 + d XML_DOCUMENT_NODE... + d c 9 + d XML_DOCUMENT_TYPE_NODE... + d c 10 + d XML_DOCUMENT_FRAG_NODE... + d c 11 + d XML_NOTATION_NODE... + d c 12 + d XML_HTML_DOCUMENT_NODE... + d c 13 + d XML_DTD_NODE c 14 + d XML_ELEMENT_DECL... + d c 15 + d XML_ATTRIBUTE_DECL... + d c 16 + d XML_ENTITY_DECL... + d c 17 + d XML_NAMESPACE_DECL... + d c 18 + d XML_LOCAL_NAMESPACE... + d c 18 Alias + d XML_XINCLUDE_START... + d c 19 + d XML_XINCLUDE_END... + d c 20 + /if defined(LIBXML_DOCB_ENABLED) + d XML_DOCB_DOCUMENT_NODE... + d c 21 + /endif + + * xmlNotation: + * + * A DTD Notation definition. + + d xmlNotationPtr s * based(######typedef######) + + d xmlNotation ds based(xmlNotationPtr) + d align qualified + d name * const xmlChar * + d PublicID * const xmlChar * + d SystemID * const xmlChar * + + * xmlAttributeType: + * + * A DTD Attribute type definition. + + d xmlAttributeType... + d s 10i 0 based(######typedef######) enum + d XML_ATTRIBUTE_CDATA... + d c 1 + d XML_ATTRIBUTE_ID... + d c 2 + d XML_ATTRIBUTE_IDREF... + d c 3 + d XML_ATTRIBUTE_IDREFS... + d c 4 + d XML_ATTRIBUTE_ENTITY... + d c 5 + d XML_ATTRIBUTE_ENTITIES... + d c 6 + d XML_ATTRIBUTE_NMTOKEN... + d c 7 + d XML_ATTRIBUTE_NMTOKENS... + d c 8 + d XML_ATTRIBUTE_ENUMERATION... + d c 9 + d XML_ATTRIBUTE_NOTATION... + d c 10 + + * xmlAttributeDefault: + * + * A DTD Attribute default definition. + + d xmlAttributeDefault... + d s 10i 0 based(######typedef######) enum + d XML_ATTRIBUTE_NONE... + d c 1 + d XML_ATTRIBUTE_REQUIRED... + d c 2 + d XML_ATTRIBUTE_IMPLIED... + d c 3 + d XML_ATTRIBUTE_FIXED... + d c 4 + + * xmlEnumeration: + * + * List structure used when there is an enumeration in DTDs. + + d xmlEnumerationPtr... + d s * based(######typedef######) + + d xmlEnumeration ds based(xmlEnumerationPtr) + d align qualified + d next like(xmlEnumerationPtr) Next one + d name * const xmlChar * + + * Forward pointer declarations. + + d xmlNodePtr s * based(######typedef######) + d xmlDocPtr s * based(######typedef######) + d xmlDtdPtr s * based(######typedef######) + + * xmlAttribute: + * + * An Attribute declaration in a DTD. + + d xmlAttributePtr... + d s * based(######typedef######) + + d xmlAttribute ds based(xmlAttributePtr) + d align qualified + d #private * Application data + d type like(xmlElementType) XML_ATTRIBUTE_DECL + d name * const xmlChar * + d children like(xmlNodePtr) NULL + d last like(xmlNodePtr) NULL + d parent like(xmlDtdPtr) -> DTD + d next like(xmlNodePtr) next sibling link + d prev like(xmlNodePtr) previous sibling lnk + d doc like(xmlDocPtr) The containing doc + d nexth like(xmlAttributePtr) Next in hash table + d atype like(xmlAttributeType) The attribute type + d def like(xmlAttributeDefault) The default + d defaultValue * or const xmlChar * + d tree like(xmlEnumerationPtr) or enum tree + d prefix * const xmlChar * + d elem * const xmlChar * + + * xmlElementContentType: + * + * Possible definitions of element content types. + + d xmlElementContentType... + d s 10i 0 based(######typedef######) enum + d XML_ELEMENT_CONTENT_PCDATA... + d c 1 + d XML_ELEMENT_CONTENT_ELEMENT... + d c 2 + d XML_ELEMENT_CONTENT_SEQ... + d c 3 + d XML_ELEMENT_CONTENT_OR... + d c 4 + + * xmlElementContentOccur: + * + * Possible definitions of element content occurrences. + + d xmlElementContentOccur... + d s 10i 0 based(######typedef######) enum + d XML_ELEMENT_CONTENT_ONCE... + d c 1 + d XML_ELEMENT_CONTENT_OPT... + d c 2 + d XML_ELEMENT_CONTENT_MULT... + d c 3 + d XML_ELEMENT_CONTENT_PLUS... + d c 4 + + * xmlElementContent: + * + * An XML Element content as stored after parsing an element definition + * in a DTD. + + d xmlElementContentPtr... + d s * based(######typedef######) + + d xmlElementContent... + d ds based(xmlElementContentPtr) + d align qualified + d type like(xmlElementContentType) + d ocur like(xmlElementContentOccur) + d name * const xmlChar * + d c1 like(xmlElementContentPtr) First child + d c2 like(xmlElementContentPtr) Second child + d parent like(xmlElementContentPtr) Parent + d prefix * const xmlChar * + + * xmlElementTypeVal: + * + * The different possibilities for an element content type. + + d xmlElementTypeVal... + d s 10i 0 based(######typedef######) enum + d XML_ELEMENT_TYPE_UNDEFINED... + d c 0 + d XML_ELEMENT_TYPE_EMPTY... + d c 1 + d XML_ELEMENT_TYPE_ANY... + d c 2 + d XML_ELEMENT_TYPE_MIXED... + d c 3 + d XML_ELEMENT_TYPE_ELEMENT... + d c 4 + + /include "libxmlrpg/xmlregexp" + + * xmlElement: + * + * An XML Element declaration from a DTD. + + d xmlElementPtr s * based(######typedef######) + + d xmlElement ds based(xmlElementPtr) + d align qualified + d #private * Application data + d type like(xmlElementType) XML_ELEMENT_DECL + d name * const xmlChar * + d children like(xmlNodePtr) NULL + d last like(xmlNodePtr) NULL + d parent like(xmlDtdPtr) -> DTD + d next like(xmlNodePtr) next sibling link + d prev like(xmlNodePtr) previous sibling lnk + d doc like(xmlDocPtr) The containing doc + d etype like(xmlElementTypeVal) The type + d content like(xmlElementContentPtr) Allowed elem content + d attributes like(xmlAttributePtr) Declared attributes + d prefix * const xmlChar * + /if defined(LIBXML_REGEXP_ENABLED) + d contModel like(xmlRegexpPtr) Validating regexp + /else + d contModel * + /endif + + * XML_LOCAL_NAMESPACE: + * + * A namespace declaration node. + + * xmlNs: + * + * An XML namespace. + * Note that prefix == NULL is valid, it defines the default namespace + * within the subtree (until overridden). + * + * xmlNsType is unified with xmlElementType. + + d xmlNsType s based(######typedef######) enum + d like(xmlElementType) + + d xmlNsPtr s * based(######typedef######) + + d xmlNs ds based(xmlNsPtr) + d align qualified + d next like(xmlNsPtr) next Ns link + d type like(xmlNsType) Global or local + d href * const xmlChar * + d prefix * const xmlChar * + d #private * Application data + d context like(xmlDocPtr) normally an xmlDoc + + * xmlDtd: + * + * An XML DTD, as defined by <!DOCTYPE ... There is actually one for + * the internal subset and for the external subset. + + d xmlDtd ds based(xmlDtdPtr) + d align qualified + d #private * Application data + d type like(xmlElementType) XML_DTD_NODE + d name * const xmlChar * + d children like(xmlNodePtr) Property link value + d last like(xmlNodePtr) Last child link + d parent like(xmlDocPtr) Child->parent link + d next like(xmlNodePtr) next sibling link + d prev like(xmlNodePtr) previous sibling lnk + d doc like(xmlDocPtr) The containing doc + d notations * notations hash table + d elements * elements hash table + d entities * entities hash table + d ExternalID * const xmlChar * + d SystemID * const xmlChar * + d pentities * param. ent. h table + + * xmlAttr: + * + * An attribute on an XML node. + + d xmlAttrPtr s * based(######typedef######) + + d xmlAttr ds based(xmlAttrPtr) + d align qualified + d #private * Application data + d type like(xmlElementType) XML_ATTRIBUTE_NODE + d name * const xmlChar * + d children like(xmlNodePtr) Property link value + d last like(xmlNodePtr) NULL + d parent like(xmlNodePtr) Child->parent link + d next like(xmlAttrPtr) next sibling link + d prev like(xmlAttrPtr) previous sibling lnk + d doc like(xmlDocPtr) The containing doc + d ns like(xmlNsPtr) Associated namespace + d atype like(xmlAttributeType) For validation + d psvi * Type/PSVI info + + * xmlID: + * + * An XML ID instance. + + d xmlIdPtr s * based(######typedef######) + + d xmlID ds based(xmlIdPtr) + d align qualified + d next like(xmlIdPtr) Next ID + d attr like(xmlAttrPtr) Attribute holding it + d name * const xmlChar * + d lineno 10i 0 Line # if not avail + d doc like(xmlDocPtr) Doc holding ID + + * xmlRef: + * + * An XML IDREF instance. + + d xmlRefPtr s * based(######typedef######) + + d xmlRef ds based(xmlRefPtr) + d align qualified + d next like(xmlRefPtr) Next Ref + d value * const xmlChar * + d attr like(xmlAttrPtr) Attribute holding it + d name * const xmlChar * + d lineno 10i 0 Line # if not avail + + * xmlNode: + * + * A node in an XML tree. + + d xmlNode ds based(xmlNodePtr) + d align qualified + d #private * Application data + d type like(xmlElementType) + d name * const xmlChar * + d children like(xmlNodePtr) Parent->children lnk + d last like(xmlNodePtr) Last child link + d parent like(xmlNodePtr) Child->parent link + d next like(xmlNodePtr) next sibling link + d prev like(xmlNodePtr) previous sibling lnk + d doc like(xmlDocPtr) The containing doc + d ns like(xmlNsPtr) Associated namespace + d content * xmlChar * + d properties like(xmlAttrPtr) Properties list + d nsDef like(xmlNsPtr) Node ns definitions + d psvi * Type/PSVI info + d line 5u 0 Line number + d extra 5u 0 Data for XPath/XSLT + + * xmlDocProperty + * + * Set of properties of the document as found by the parser + * Some of them are linked to similary named xmlParserOption + + d xmlDocProperties... + d s 10i 0 based(######typedef######) enum + d XML_DOC_WELLFORMED... + d c X'00000001' + d XML_DOC_NSVALID... + d c X'00000002' + d XML_DOC_OLD10 c X'00000004' + d XML_DOC_DTDVALID... + d c X'00000008' + d XML_DOC_XINCLUDE... + d c X'00000010' + d XML_DOC_USERBUILT... + d c X'00000020' + d XML_DOC_INTERNAL... + d c X'00000030' + d XML_DOC_HTML c X'00000080' + + * xmlDoc: + * + * An XML document. + + d xmlDoc ds based(xmlDocPtr) + d align qualified + d #private * Application data + d type like(xmlElementType) XML_DOCUMENT_NODE + d name * const xmlChar * + d children like(xmlNodePtr) The document tree + d last like(xmlNodePtr) Last child link + d parent like(xmlNodePtr) Child->parent link + d next like(xmlNodePtr) next sibling link + d prev like(xmlNodePtr) previous sibling lnk + d doc like(xmlDocPtr) Reference to itself + d compression 10i 0 zlib compression lev + d standalone 10i 0 + d intSubset like(xmlDtdPtr) Internal subset + d extSubset like(xmlDtdPtr) External subset + d oldns like(xmlNsPtr) Global namespace + d version * const xmlChar * + d encoding * const xmlChar * + d ids * IDs hash table + d refs * IDREFs hash table + d URL * const xmlChar * + d charset 10i 0 In-memory encoding + d dict * xmlDictPtr for names + d psvi * Type/PSVI ino + d parseFlags 10i 0 xmlParserOption's + d properties 10i 0 xmlDocProperties + + * xmlDOMWrapAcquireNsFunction: + * @ctxt: a DOM wrapper context + * @node: the context node (element or attribute) + * @nsName: the requested namespace name + * @nsPrefix: the requested namespace prefix + * + * A function called to acquire namespaces (xmlNs) from the wrapper. + * + * Returns an xmlNsPtr or NULL in case of an error. + + d xmlDOMWrapAcquireNsFunction... + d s * based(######typedef######) + d procptr + + * xmlDOMWrapCtxt: + * + * Context for DOM wrapper-operations. + + d xmlDOMWrapCtxtPtr... + d s * based(######typedef######) + + d xmlDOMWrapCtxt... + d ds based(xmlDOMWrapCtxtPtr) + d align qualified + d #private * void * + d type 10i 0 + d namespaceMap * void * + d getNsForNodeFunc... + d like(xmlDOMWrapAcquireNsFunction) + + + * Variables. + + * Some helper functions + + /undefine XML_TESTVAL + /if defined(LIBXML_TREE_ENABLED) + /define XML_TESTVAL + /elseif defined(LIBXML_XPATH_ENABLED) + /define XML_TESTVAL + /elseif defined(LIBXML_SCHEMAS_ENABLED) + /define XML_TESTVAL + /elseif defined(LIBXML_DEBUG_ENABLED) + /define XML_TESTVAL + /elseif defined(LIBXML_HTML_ENABLED) + /define XML_TESTVAL + /elseif defined(LIBXML_SAX1_ENABLED) + /define XML_TESTVAL + /elseif defined(LIBXML_HTML_ENABLED) + /define XML_TESTVAL + /elseif defined(LIBXML_WRITER_ENABLED) + /define XML_TESTVAL + /elseif defined(LIBXML_DOCB_ENABLED) + /define XML_TESTVAL + /endif + /if defined(XML_TESTVAL) + d xmlValidateNCName... + d pr 10i 0 extproc('xmlValidateNCName') + d value * value options(*string) const xmlChar * + d space 10i 0 value + + /undefine XML_TESTVAL + /endif + + /if defined(LIBXML_TREE_ENABLED) + /define XML_TESTVAL + /elseif defined(LIBXML_SCHEMAS_ENABLED) + /define XML_TESTVAL + /endif + /if defined(XML_TESTVAL) + d xmlValidateQName... + d pr 10i 0 extproc('xmlValidateQName') + d value * value options(*string) const xmlChar * + d space 10i 0 value + + d xmlValidateName... + d pr 10i 0 extproc('xmlValidateName') + d value * value options(*string) const xmlChar * + d space 10i 0 value + + d xmlValidateNMToken... + d pr 10i 0 extproc('xmlValidateNMToken') + d value * value options(*string) const xmlChar * + d space 10i 0 value + + /undefine XML_TESTVAL + /endif + + d xmlBuildQName pr * extproc('xmlBuildQName') xmlChar * + d ncname * value options(*string) const xmlChar * + d prefix * value options(*string) const xmlChar * + d memory 65535 options(*varsize: *omit) xmlChar[] + d len 10i 0 value memory length + + d xmlSplitQName2 pr * extproc('xmlSplitQName2') xmlChar * + d name * value options(*string) const xmlChar * + d prefix * xmlChar * + + d xmlSplitQName3 pr * extproc('xmlSplitQName3') const xmlChar * + d name * value options(*string) const xmlChar * + d len 10i 0 + + * Handling Buffers, the old ones see @xmlBuf for the new ones. + + d xmlSetBufferAllocationScheme... + d pr extproc( + d 'xmlSetBufferAllocationScheme') + d scheme value + d like(xmlBufferAllocationScheme) + + d xmlGetBufferAllocationScheme... + d pr extproc( + d 'xmlGetBufferAllocationScheme') + d like(xmlBufferAllocationScheme) + + d xmlBufferCreate... + d pr extproc('xmlBufferCreate') + d like(xmlBufferPtr) + + d xmlBufferCreateSize... + d pr extproc('xmlBufferCreateSize') + d like(xmlBufferPtr) + d size 10u 0 value size_t + + d xmlBufferCreateStatic... + d pr extproc('xmlBufferCreateStatic') + d like(xmlBufferPtr) + d mem * value + d size 10u 0 value size_t + + d xmlBufferResize... + d pr 10i 0 extproc('xmlBufferResize') + d buf value like(xmlBufferPtr) + d size 10u 0 value size_t + + d xmlBufferFree pr extproc('xmlBufferFree') + d buf value like(xmlBufferPtr) + + d xmlBufferDump pr 10i 0 extproc('xmlBufferDump') + d file * value FILE * + d buf value like(xmlBufferPtr) + + d xmlBufferAdd pr 10i 0 extproc('xmlBufferAdd') + d buf value like(xmlBufferPtr) + d str * value options(*string) const xmlChar * + d len 10i 0 value str length + + d xmlBufferAddHead... + d pr 10i 0 extproc('xmlBufferAddHead') + d buf value like(xmlBufferPtr) + d str * value options(*string) const xmlChar * + d len 10i 0 value str length + + d xmlBufferCat pr 10i 0 extproc('xmlBufferCat') + d buf value like(xmlBufferPtr) + d str * value options(*string) const xmlChar * + + d xmlBufferCCat pr 10i 0 extproc('xmlBufferCCat') + d buf value like(xmlBufferPtr) + d str * value options(*string) const char * + + d xmlBufferShrink... + d pr 10i 0 extproc('xmlBufferShrink') + d buf value like(xmlBufferPtr) + d len 10u 0 value str length + + d xmlBufferGrow pr 10i 0 extproc('xmlBufferGrow') + d buf value like(xmlBufferPtr) + d len 10u 0 value str length + + d xmlBufferEmpty pr extproc('xmlBufferEmpty') + d buf value like(xmlBufferPtr) + + d xmlBufferContent... + d pr * extproc('xmlBufferContent') const xmlChar * + d buf value like(xmlBufferPtr) + + d xmlBufferDetach... + d pr * extproc('xmlBufferDetach') xmlChar * + d buf value like(xmlBufferPtr) + + d xmlBufferSetAllocationScheme... + d pr extproc( + d 'xmlBufferSetAllocationScheme') + d buf value like(xmlBufferPtr) + d scheme value + d like(xmlBufferAllocationScheme) + + d xmlBufferLength... + d pr 10i 0 extproc('xmlBufferLength') + d buf value like(xmlBufferPtr) + + * Creating/freeing new structures. + + d xmlCreateIntSubset... + d pr extproc('xmlCreateIntSubset') + d like(xmlDtdPtr) + d doc value like(xmlDocPtr) + d name * value options(*string) const xmlChar * + d ExternalID * value options(*string) const xmlChar * + d SystemlID * value options(*string) const xmlChar * + + d xmlNewDtd pr extproc('xmlNewDtd') + d like(xmlDtdPtr) + d doc value like(xmlDocPtr) + d name * value options(*string) const xmlChar * + d ExternalID * value options(*string) const xmlChar * + d SystemlID * value options(*string) const xmlChar * + + d xmlGetIntSubset... + d pr extproc('xmlGetIntSubset') + d like(xmlDtdPtr) + d doc value like(xmlDocPtr) + + d xmlFreeDtd pr extproc('xmlFreeDtd') + d cur value like(xmlDtdPtr) + + /if defined(LIBXML_LEGACY_ENABLED) + d xmlNewGlobalNs pr extproc('xmlNewGlobalNs') + d like(xmlNsPtr) + d doc value like(xmlDocPtr) + d href * value options(*string) const xmlChar * + d prefix * value options(*string) const xmlChar * + /endif LIBXML_LEGACY_ENABLD + + d xmlNewNs pr extproc('xmlNewNs') + d like(xmlNsPtr) + d node value like(xmlNodePtr) + d href * value options(*string) const xmlChar * + d prefix * value options(*string) const xmlChar * + + d xmlFreeNs pr extproc('xmlFreeNs') + d cur value like(xmlNsPtr) + + d xmlFreeNsList pr extproc('xmlFreeNsList') + d cur value like(xmlNsPtr) + + d xmlNewDoc pr extproc('xmlNewDoc') + d like(xmlDocPtr) + d version * value options(*string) const xmlChar * + + d xmlFreeDoc pr extproc('xmlFreeDoc') + d cur value like(xmlDocPtr) + + d xmlNewDocProp pr extproc('xmlNewDocProp') + d like(xmlAttrPtr) + d name * value options(*string) const xmlChar * + d value * value options(*string) const xmlChar * + + /if defined(LIBXML_TREE_ENABLED) + /define XML_TESTVAL + /elseif defined(LIBXML_HTML_ENABLED) + /define XML_TESTVAL + /elseif defined(LIBXML_SCHEMAS_ENABLED) + /define XML_TESTVAL + /endif + /if defined(XML_TESTVAL) + d xmlNewProp pr extproc('xmlNewProp') + d like(xmlAttrPtr) + d node value like(xmlNodePtr) + d name * value options(*string) const xmlChar * + d value * value options(*string) const xmlChar * + + /undefine XML_TESTVAL + /endif + + d xmlNewNsProp pr extproc('xmlNewNsProp') + d like(xmlAttrPtr) + d node value like(xmlNodePtr) + d ns value like(xmlNsPtr) + d name * value options(*string) const xmlChar * + d value * value options(*string) const xmlChar * + + d xmlNewNsPropEatName... + d pr extproc('xmlNewNsPropEatName') + d like(xmlAttrPtr) + d node value like(xmlNodePtr) + d ns value like(xmlNsPtr) + d name * value xmlChar * + d value * value options(*string) const xmlChar * + + d xmlFreePropList... + d pr extproc('xmlFreePropList') + d cur value like(xmlAttrPtr) + + d xmlFreeProp pr extproc('xmlFreeProp') + d cur value like(xmlAttrPtr) + + d xmlCopyProp pr extproc('xmlCopyProp') + d like(xmlAttrPtr) + d target value like(xmlNodePtr) + d cur value like(xmlAttrPtr) + + d xmlCopyPropList... + d pr extproc('xmlCopyPropList') + d like(xmlAttrPtr) + d target value like(xmlNodePtr) + d cur value like(xmlAttrPtr) + + /if defined(LIBXML_TREE_ENABLED) + d xmlCopyDtd pr extproc('xmlCopyDtd') + d like(xmlDtdPtr) + d dtd value like(xmlDtdPtr) + /endif LIBXML_TREE_ENABLED + + /if defined(LIBXML_TREE_ENABLED) + /define XML_TESTVAL + /elseif defined(LIBXML_SCHEMAS_ENABLED) + /define XML_TESTVAL + /endif + /if defined(XML_TESTVAL) + d xmlCopyDoc pr extproc('xmlCopyDoc') + d like(xmlDocPtr) + d doc value like(xmlDocPtr) + d recursive 10i 0 value + + /undefine XML_TESTVAL + /endif + + * Creating new nodes. + + d xmlNewDocNode pr extproc('xmlNewDocNode') + d like(xmlNodePtr) + d doc value like(xmlDocPtr) + d ns value like(xmlNsPtr) + d name * value options(*string) const xmlChar * + d content * value options(*string) const xmlChar * + + d xmlNewDocNodeEatName... + d pr extproc('xmlNewDocNodeEatName') + d like(xmlNodePtr) + d doc value like(xmlDocPtr) + d ns value like(xmlNsPtr) + d name * value xmlChar * + d content * value options(*string) const xmlChar * + + d xmlNewNode pr extproc('xmlNewNode') + d like(xmlNodePtr) + d ns value like(xmlNsPtr) + d name * value options(*string) const xmlChar * + + d xmlNewNodeEatName... + d pr extproc('xmlNewNodeEatName') + d like(xmlNodePtr) + d ns value like(xmlNsPtr) + d name * value xmlChar * + + /if defined(LIBXML_TREE_ENABLED) + /define XML_TESTVAL + /elseif defined(LIBXML_SCHEMAS_ENABLED) + /define XML_TESTVAL + /endif + /if defined(XML_TESTVAL) + d xmlNewChild pr extproc('xmlNewChild') + d like(xmlNodePtr) + d parent value like(xmlNodePtr) + d ns value like(xmlNsPtr) + d name * value options(*string) const xmlChar * + d content * value options(*string) const xmlChar * + + /undefine XML_TESTVAL + /endif + + d xmlNewDocText pr extproc('xmlNewDocText') + d like(xmlNodePtr) + d doc value like(xmlDocPtr) + d content * value options(*string) const xmlChar * + + d xmlNewText pr extproc('xmlNewText') + d like(xmlNodePtr) + d content * value options(*string) const xmlChar * + + d xmlNewDocPI pr extproc('xmlNewDocPI') + d like(xmlNodePtr) + d doc value like(xmlDocPtr) + d name * value options(*string) const xmlChar * + d content * value options(*string) const xmlChar * + + d xmlNewPI pr extproc('xmlNewPI') + d like(xmlNodePtr) + d name * value options(*string) const xmlChar * + d content * value options(*string) const xmlChar * + + d xmlNewDocTextLen... + d pr extproc('xmlNewDocTextLen') + d like(xmlNodePtr) + d doc value like(xmlDocPtr) + d content * value options(*string) const xmlChar * + d len 10i 0 value + + d xmlNewTextLen pr extproc('xmlNewTextLen') + d like(xmlNodePtr) + d content * value options(*string) const xmlChar * + d len 10i 0 value + + d xmlNewDocComment... + d pr extproc('xmlNewDocComment') + d like(xmlNodePtr) + d doc value like(xmlDocPtr) + d content * value options(*string) const xmlChar * + + d xmlNewComment pr extproc('xmlNewComment') + d like(xmlNodePtr) + d content * value options(*string) const xmlChar * + + d xmlNewCDataBlock... + d pr extproc('xmlNewCDataBlock') + d like(xmlNodePtr) + d doc value like(xmlDocPtr) + d content * value options(*string) const xmlChar * + d len 10i 0 value + + d xmlNewCharRef pr extproc('xmlNewCharRef') + d like(xmlNodePtr) + d doc value like(xmlDocPtr) + d name * value options(*string) const xmlChar * + + d xmlNewReference... + d pr extproc('xmlNewReference') + d like(xmlNodePtr) + d doc value like(xmlDocPtr) + d name * value options(*string) const xmlChar * + + d xmlCopyNode pr extproc('xmlCopyNode') + d like(xmlNodePtr) + d node value like(xmlNodePtr) + d recursive 10i 0 value + + d xmlDocCopyNode pr extproc('xmlDocCopyNode') + d like(xmlNodePtr) + d node value like(xmlNodePtr) + d doc value like(xmlDocPtr) + d recursive 10i 0 value + + d xmlDocCopyNodeList... + d pr extproc('xmlDocCopyNodeList') + d like(xmlNodePtr) + d doc value like(xmlDocPtr) + d node value like(xmlNodePtr) + + d xmlCopyNodeList... + d pr extproc('xmlCopyNodeList') + d like(xmlNodePtr) + d node value like(xmlNodePtr) + + /if defined(LIBXML_TREE_ENABLED) + d xmlNewTextChild... + d pr extproc('xmlNewTextChild') + d like(xmlNodePtr) + d parent value like(xmlNodePtr) + d ns value like(xmlNsPtr) + d name * value options(*string) const xmlChar * + d content * value options(*string) const xmlChar * + + d xmlNewDocRawNode... + d pr extproc('xmlNewDocRawNode') + d like(xmlNodePtr) + d doc value like(xmlDocPtr) + d ns value like(xmlNsPtr) + d name * value options(*string) const xmlChar * + d content * value options(*string) const xmlChar * + + d xmlNewDocFragment... + d pr extproc('xmlNewDocFragment') + d like(xmlNodePtr) + d doc value like(xmlDocPtr) + /endif LIBXML_TREE_ENABLED + + * Navigating. + + d xmlNewDocFragment... + d xmlGetLineNo pr 20i 0 extproc('xmlGetLineNo') + d node value like(xmlNodePtr) + + /if defined(LIBXML_TREE_ENABLED) + /define XML_TESTVAL + /elseif defined(LIBXML_DEBUG_ENABLED) + /define XML_TESTVAL + /endif + /if defined(XML_TESTVAL) + d xmlGetNodePath pr * extproc('xmlGetNodePath') xmlChar * + d node value like(xmlNodePtr) + + /undefine XML_TESTVAL + /endif + + d xmlDocGetRootElement... + d pr extproc('xmlDocGetRootElement') + d like(xmlNodePtr) + d doc value like(xmlDocPtr) + + d xmlGetLastChild... + d pr extproc('xmlGetLastChild') + d like(xmlNodePtr) + d parent value like(xmlNodePtr) + + d xmlNodeIsText pr 10i 0 extproc('xmlNodeIsText') + d node value like(xmlNodePtr) + + d xmlIsBlankNode pr 10i 0 extproc('xmlIsBlankNode') + d node value like(xmlNodePtr) + + * Changing the structure. + + /if defined(LIBXML_TREE_ENABLED) + /define XML_TESTVAL + /elseif defined(LIBXML_WRITER_ENABLED) + /define XML_TESTVAL + /endif + /if defined(XML_TESTVAL) + d xmlDocSetRootElement... + d pr extproc('xmlDocSetRootElement') + d like(xmlNodePtr) + d doc value like(xmlDocPtr) + d root value like(xmlNodePtr) + + /undefine XML_TESTVAL + /endif + + /if defined(LIBXML_TREE_ENABLED) + d xmlNodeSetName pr extproc('xmlNodeSetName') + d node value like(xmlNodePtr) + d name * value options(*string) const xmlChar * + /endif LIBXML_TREE_ENABLED + + d xmlAddChild pr extproc('xmlAddChild') + d like(xmlNodePtr) + d parent value like(xmlNodePtr) + d cur value like(xmlNodePtr) + + d xmlAddChildList... + d pr extproc('xmlAddChildList') + d like(xmlNodePtr) + d parent value like(xmlNodePtr) + d cur value like(xmlNodePtr) + + /if defined(LIBXML_TREE_ENABLED) + /define XML_TESTVAL + /elseif defined(LIBXML_WRITER_ENABLED) + /define XML_TESTVAL + /endif + /if defined(XML_TESTVAL) + d xmlReplaceNode pr extproc('xmlReplaceNode') + d like(xmlNodePtr) + d old value like(xmlNodePtr) + d cur value like(xmlNodePtr) + + /undefine XML_TESTVAL + /endif + + /if defined(LIBXML_TREE_ENABLED) + /define XML_TESTVAL + /elseif defined(LIBXML_HTML_ENABLED) + /define XML_TESTVAL + /elseif defined(LIBXML_SCHEMAS_ENABLED) + /define XML_TESTVAL + /endif + /if defined(XML_TESTVAL) + d xmlAddPrevSibling... + d pr extproc('xmlAddPrevSibling') + d like(xmlNodePtr) + d cur value like(xmlNodePtr) + d elem value like(xmlNodePtr) + + /undefine XML_TESTVAL + /endif + + d xmlAddSibling pr extproc('xmlAddSibling') + d like(xmlNodePtr) + d cur value like(xmlNodePtr) + d elem value like(xmlNodePtr) + + d xmlAddNextSibling... + d pr extproc('xmlAddNextSibling') + d like(xmlNodePtr) + d cur value like(xmlNodePtr) + d elem value like(xmlNodePtr) + + d xmlUnlinkNode pr extproc('xmlUnlinkNode') + d cur value like(xmlNodePtr) + + d xmlTextMerge pr extproc('xmlTextMerge') + d like(xmlNodePtr) + d first value like(xmlNodePtr) + d second value like(xmlNodePtr) + + d xmlTextConcat pr 10i 0 extproc('xmlTextConcat') + d node value like(xmlNodePtr) + d content * value options(*string) const xmlChar * + d len 10i 0 value + + d xmlFreeNodeList... + d pr extproc('xmlFreeNodeList') + d cur value like(xmlNodePtr) + + d xmlFreeNode pr extproc('xmlFreeNode') + d cur value like(xmlNodePtr) + + d xmlSetTreeDoc pr extproc('xmlSetTreeDoc') + d tree value like(xmlNodePtr) + d doc value like(xmlDocPtr) + + d xmlSetListDoc pr extproc('xmlSetListDoc') + d list value like(xmlNodePtr) + d doc value like(xmlDocPtr) + + * Namespaces. + + d xmlSearchNs pr extproc('xmlSearchNs') + d like(xmlNsPtr) + d doc value like(xmlDocPtr) + d node value like(xmlNodePtr) + d nameSpace * value options(*string) const xmlChar * + + d xmlSearchNsByHref... + d pr extproc('xmlSearchNsByHref') + d like(xmlNsPtr) + d doc value like(xmlDocPtr) + d node value like(xmlNodePtr) + d href * value options(*string) const xmlChar * + + /if defined(LIBXML_TREE_ENABLED) + /define XML_TESTVAL + /elseif defined(LIBXML_XPATH_ENABLED) + /define XML_TESTVAL + /elseif defined(LIBXML_SCHEMAS_ENABLED) + /define XML_TESTVAL + /endif + /if defined(XML_TESTVAL) + d xmlGetNsList pr * extproc('xmlGetNsList') xmlNsPtr * + d doc value like(xmlDocPtr) + d node value like(xmlNodePtr) + + /undefine XML_TESTVAL + /endif + + d xmlSetNs pr extproc('xmlSetNs') + d node value like(xmlNodePtr) + d ns value like(xmlNsPtr) + + d xmlCopyNamespace... + d pr extproc('xmlCopyNamespace') + d like(xmlNsPtr) + d cur value like(xmlNsPtr) + + d xmlCopyNamespaceList... + d pr extproc('xmlCopyNamespaceList') + d like(xmlNsPtr) + d cur value like(xmlNsPtr) + + * Changing the content. + + /if defined(LIBXML_TREE_ENABLED) + /define XML_TESTVAL + /elseif defined(LIBXML_XINCLUDE_ENABLED) + /define XML_TESTVAL + /elseif defined(LIBXML_SCHEMAS_ENABLED) + /define XML_TESTVAL + /elseif defined(LIBXML_HTML_ENABLED) + /define XML_TESTVAL + /endif + /if defined(XML_TESTVAL) + d xmlSetProp pr extproc('xmlSetProp') + d like(xmlAttrPtr) + d node value like(xmlNodePtr) + d name * value options(*string) const xmlChar * + d value * value options(*string) const xmlChar * + + d xmlSetNsProp pr extproc('xmlSetNsProp') + d like(xmlAttrPtr) + d node value like(xmlNodePtr) + d ns value like(xmlNsPtr) + d name * value options(*string) const xmlChar * + d value * value options(*string) const xmlChar * + + /undefine XML_TESTVAL + /endif + + d xmlGetNoNsProp pr * extproc('xmlGetNoNsProp') xmlChar * + d node value like(xmlNodePtr) + d name * value options(*string) const xmlChar * + + d xmlGetProp pr * extproc('xmlGetProp') xmlChar * + d node value like(xmlNodePtr) + d name * value options(*string) const xmlChar * + + d xmlHasProp pr extproc('xmlHasProp') + d like(xmlAttrPtr) + d node value like(xmlNodePtr) + d name * value options(*string) const xmlChar * + + d xmlHasNsProp pr extproc('xmlHasNsProp') + d like(xmlAttrPtr) + d node value like(xmlNodePtr) + d name * value options(*string) const xmlChar * + d nameSpace * value options(*string) const xmlChar * + + d xmlGetNsProp pr * extproc('xmlGetNsProp') xmlChar * + d node value like(xmlNodePtr) + d name * value options(*string) const xmlChar * + d nameSpace * value options(*string) const xmlChar * + + d xmlStringGetNodeList... + d pr extproc('xmlStringGetNodeList') + d like(xmlNodePtr) + d doc value like(xmlDocPtr) + d value * value options(*string) const xmlChar * + + d xmlStringLenGetNodeList... + d pr extproc('xmlStringLenGetNodeList') + d like(xmlNodePtr) + d doc value like(xmlDocPtr) + d value * value options(*string) const xmlChar * + d len 10i 0 value + + d xmlNodeListGetString... + d pr * extproc('xmlNodeListGetString') xmlChar * + d doc value like(xmlDocPtr) + d list value like(xmlNodePtr) + d inLine 10i 0 value + + /if defined(LIBXML_TREE_ENABLED) + d xmlNodeListGetRawString... + d pr * extproc('xmlNodeListGetRawString') xmlChar * + d doc value like(xmlDocPtr) + d list value like(xmlNodePtr) + d inLine 10i 0 value + /endif LIBXML_TREE_ENABLED + + d xmlNodeSetContent... + d pr extproc('xmlNodeSetContent') + d cur value like(xmlNodePtr) + d content * value options(*string) const xmlChar * + + /if defined(LIBXML_TREE_ENABLED) + d xmlNodeSetContentLen... + d pr extproc('xmlNodeSetContentLen') + d cur value like(xmlNodePtr) + d content * value options(*string) const xmlChar * + d len 10i 0 value + /endif LIBXML_TREE_ENABLED + + d xmlNodeAddContent... + d pr extproc('xmlNodeAddContent') + d cur value like(xmlNodePtr) + d content * value options(*string) const xmlChar * + + d xmlNodeAddContentLen... + d pr extproc('xmlNodeAddContentLen') + d cur value like(xmlNodePtr) + d content * value options(*string) const xmlChar * + d len 10i 0 value + + d xmlNodeGetContent... + d pr * extproc('xmlNodeGetContent') xmlChar * + d cur value like(xmlNodePtr) + + d xmlNodeBufGetContent... + d pr 10i 0 extproc('xmlNodeBufGetContent') + d buffer value like(xmlBufferPtr) + d cur value like(xmlNodePtr) + + d xmlBufGetNodeContent... + d pr 10i 0 extproc('xmlBufGetNodeContent') + d buf value like(xmlBufPtr) + d cur value like(xmlNodePtr) + + d xmlNodeGetLang pr * extproc('xmlNodeGetLang') xmlChar * + d cur value like(xmlNodePtr) + + d xmlNodeGetSpacePreserve... + d pr 10i 0 extproc('xmlNodeGetSpacePreserve') + d cur value like(xmlNodePtr) + + /if defined(LIBXML_TREE_ENABLED) + d xmlNodeSetLang pr extproc('xmlNodeSetLang') + d cur value like(xmlNodePtr) + d lang * value options(*string) const xmlChar * + + d xmlNodeSetSpacePreserve... + d pr extproc('xmlNodeSetSpacePreserve') + d cur value like(xmlNodePtr) + d val 10i 0 value + /endif LIBXML_TREE_ENABLED + + d xmlNodeGetBase pr * extproc('xmlNodeGetBase') xmlChar * + d doc value like(xmlDocPtr) + d cur value like(xmlNodePtr) + + /if defined(LIBXML_TREE_ENABLED) + /define XML_TESTVAL + /elseif defined(LIBXML_XINCLUDE_ENABLED) + /define XML_TESTVAL + /endif + /if defined(XML_TESTVAL) + d xmlNodeSetBase pr extproc('xmlNodeSetBase') + d node value like(xmlNodePtr) + d uri * value options(*string) const xmlChar * + + /undefine XML_TESTVAL + /endif + + * Removing content. + + d xmlRemoveProp pr 10i 0 extproc('xmlRemoveProp') + d cur value like(xmlAttrPtr) + + /if defined(LIBXML_TREE_ENABLED) + /define XML_TESTVAL + /elseif defined(LIBXML_SCHEMAS_ENABLED) + /define XML_TESTVAL + /endif + /if defined(XML_TESTVAL) + d xmlUnsetNsProp pr 10i 0 extproc('xmlUnsetNsProp') + d node value like(xmlNodePtr) + d ns value like(xmlNsPtr) + d name * value options(*string) const xmlChar * + + d xmlUnsetProp pr 10i 0 extproc('xmlUnsetProp') + d node value like(xmlNodePtr) + d name * value options(*string) const xmlChar * + + /undefine XML_TESTVAL + /endif + + * Internal, don't use. + + d xmlBufferWriteCharacter... Warning: renamed + d pr extproc('xmlBufferWriteCHAR') + d buf value like(xmlBufferPtr) + d string * value options(*string) const xmlChar * + + d xmlBufferWriteChar... + d pr extproc('xmlBufferWriteChar') + d buf value like(xmlBufferPtr) + d string * value options(*string) const xmlChar * + + d xmlBufferWriteQuotedString... + d pr extproc('xmlBufferWriteQuotedString') + d buf value like(xmlBufferPtr) + d string * value options(*string) const xmlChar * + + /if defined(LIBXML_OUTPUT_ENABLED) + d xmlAttrSerializeTxtContent... + d pr extproc('xmlAttrSerializeTxtContent') + d buf value like(xmlBufferPtr) + d attr value like(xmlAttrPtr) + d string * value options(*string) const xmlChar * + /endif LIBXML_OUTPUT_ENABLD + + /if defined(LIBXML_TREE_ENABLED) + + * Namespace handling. + + d xmlReconciliateNs... + d pr 10i 0 extproc('xmlReconciliateNs') + d doc value like(xmlDocPtr) + d tree value like(xmlNodePtr) + /endif + + /if defined(LIBXML_OUTPUT_ENABLED) + + * Saving. + + d xmlDocDumpFormatMemory... + d pr extproc('xmlDocDumpFormatMemory') + d cur value like(xmlDocPtr) + d mem * xmlChar * (*) + d size 10i 0 + d format 10i 0 value + + d xmlDocDumpMemory... + d pr extproc('xmlDocDumpMemory') + d cur value like(xmlDocPtr) + d mem * xmlChar * (*) + d size 10i 0 + + d xmlDocDumpMemoryEnc... + d pr extproc('xmlDocDumpMemoryEnc') + d out_doc value like(xmlDocPtr) + d doc_txt_ptr * xmlChar * (*) + d doc_txt_len 10i 0 + d txt_encoding * value options(*string) const char * + + d xmlDocDumpFormatMemoryEnc... + d pr extproc('xmlDocDumpFormatMemoryEnc') + d out_doc value like(xmlDocPtr) + d doc_txt_ptr * xmlChar * (*) + d doc_txt_len 10i 0 + d txt_encoding * value options(*string) const char * + d format 10i 0 value + + d xmlDocFormatDump... + d pr 10i 0 extproc('xmlDocFormatDump') + d f * value FILE * + d cur value like(xmlDocPtr) + d format 10i 0 value + + d xmlDocDump pr 10i 0 extproc('xmlDocDump') + d f * value FILE * + d cur value like(xmlDocPtr) + + d xmlElemDump pr extproc('xmlElemDump') + d f * value FILE * + d doc value like(xmlDocPtr) + d cur value like(xmlNodePtr) + + d xmlSaveFile pr 10i 0 extproc('xmlSaveFile') + d filename * value options(*string) const char * + d cur value like(xmlDocPtr) + + d xmlSaveFormatFile... + d pr 10i 0 extproc('xmlSaveFormatFile') + d filename * value options(*string) const char * + d cur value like(xmlDocPtr) + d format 10i 0 value + + d xmlBufNodeDump pr 10u 0 extproc('xmlBufNodeDump') size_t + d buf value like(xmlBufPtr) + d doc value like(xmlDocPtr) + d cur value like(xmlNodePtr) + d level 10i 0 value + d format 10i 0 value + + d xmlNodeDump pr 10i 0 extproc('xmlNodeDump') + d buf value like(xmlBufferPtr) + d doc value like(xmlDocPtr) + d cur value like(xmlNodePtr) + d level 10i 0 value + d format 10i 0 value + + d xmlSaveFileTo pr 10i 0 extproc('xmlSaveFileTo') + d buf value like(xmlOutputBufferPtr) + d cur value like(xmlDocPtr) + d encoding * value options(*string) const char * + + d xmlSaveFormatFileTo... + d pr 10i 0 extproc('xmlSaveFormatFileTo') + d buf value like(xmlOutputBufferPtr) + d cur value like(xmlDocPtr) + d encoding * value options(*string) const char * + d format 10i 0 value + + d xmlNodeDumpOutput... + d pr extproc('xmlNodeDumpOutput') + d buf value like(xmlOutputBufferPtr) + d doc value like(xmlDocPtr) + d cur value like(xmlNodePtr) + d level 10i 0 value + d format 10i 0 value + d encoding * value options(*string) const char * + + d xmlSaveFormatFileEnc... + d pr 10i 0 extproc('xmlSaveFormatFileEnc') + d filename * value options(*string) const char * + d cur value like(xmlDocPtr) + d encoding * value options(*string) const char * + d format 10i 0 value + + d xmlSaveFileEnc pr 10i 0 extproc('xmlSaveFileEnc') + d filename * value options(*string) const char * + d cur value like(xmlDocPtr) + d encoding * value options(*string) const char * + /endif LIBXML_OUTPUT_ENABLD + + * XHTML + + d xmlIsXHTML pr 10i 0 extproc('xmlIsXHTML') + d systemID * value options(*string) const xmlChar * + d publicID * value options(*string) const xmlChar * + + * Compression. + + d xmlGetDocCompressMode... + d pr 10i 0 extproc('xmlGetDocCompressMode') + d doc value like(xmlDocPtr) + + d xmlSetDocCompressMode... + d pr extproc('xmlSetDocCompressMode') + d doc value like(xmlDocPtr) + d mode 10i 0 value + + d xmlGetCompressMode... + d pr 10i 0 extproc('xmlGetCompressMode') + + d xmlSetCompressMode... + d pr extproc('xmlSetCompressMode') + d mode 10i 0 value + + * DOM-wrapper helper functions. + + d xmlDOMWrapNewCtxt... + d pr extproc('xmlDOMWrapNewCtxt') + d like(xmlDOMWrapCtxtPtr) + + d xmlDOMWrapFreeCtxt... + d pr extproc('xmlDOMWrapFreeCtxt') + d ctxt value like(xmlDOMWrapCtxtPtr) + + d xmlDOMWrapReconcileNamespaces... + d pr 10i 0 extproc( + d 'xmlDOMWrapReconcileNamespaces') + d ctxt value like(xmlDOMWrapCtxtPtr) + d elem value like(xmlNodePtr) + d options 10i 0 value + + d xmlDOMWrapAdoptNode... + d pr 10i 0 extproc('xmlDOMWrapAdoptNode') + d ctxt value like(xmlDOMWrapCtxtPtr) + d sourceDoc value like(xmlDocPtr) + d node value like(xmlNodePtr) + d destDoc value like(xmlDocPtr) + d destParent value like(xmlNodePtr) + d options 10i 0 value + + d xmlDOMWrapRemoveNode... + d pr 10i 0 extproc('xmlDOMWrapRemoveNode') + d ctxt value like(xmlDOMWrapCtxtPtr) + d doc value like(xmlDocPtr) + d node value like(xmlNodePtr) + d options 10i 0 value + + d xmlDOMWrapCloneNode... + d pr 10i 0 extproc('xmlDOMWrapCloneNode') + d ctxt value like(xmlDOMWrapCtxtPtr) + d sourceDoc value like(xmlDocPtr) + d node value like(xmlNodePtr) + d clonedNode like(xmlNodePtr) + d destDoc value like(xmlDocPtr) + d destParent value like(xmlNodePtr) + d options 10i 0 value + + /if defined(LIBXML_TREE_ENABLED) + + * 5 interfaces from DOM ElementTraversal, but different in entities + * traversal. + + d xmlChildElementCount... + d pr 20u 0 extproc('xmlChildElementCount') + d parent value like(xmlNodePtr) + + d xmlNextElementSibling... + d pr extproc('xmlNextElementSibling') + d like(xmlNodePtr) + d node value like(xmlNodePtr) + + d xmlFirstElementChild... + d pr extproc('xmlFirstElementChild') + d like(xmlNodePtr) + d parent value like(xmlNodePtr) + + d xmlLastElementChild... + d pr extproc('xmlLastElementChild') + d like(xmlNodePtr) + d parent value like(xmlNodePtr) + + d xmlPreviousElementSibling... + d pr extproc('xmlPreviousElementSibling') + d like(xmlNodePtr) + d node value like(xmlNodePtr) + /endif + + /if not defined(XML_PARSER_H__) + /include "libxmlrpg/xmlmemory" + /endif + + /endif XML_TREE_H__ diff --git a/os400/libxmlrpg/uri.rpgle b/os400/libxmlrpg/uri.rpgle new file mode 100644 index 0000000..9a23d80 --- /dev/null +++ b/os400/libxmlrpg/uri.rpgle @@ -0,0 +1,100 @@ + * Summary: library of generic URI related routines + * Description: library of generic URI related routines + * Implements RFC 2396 + * + * Copy: See Copyright for the status of this software. + * + * Author: Patrick Monnerat <pm@datasphere.ch>, DATASPHERE S.A. + + /if not defined(XML_URI_H__) + /define XML_URI_H__ + + /include "libxmlrpg/xmlversion" + /include "libxmlrpg/tree" + + * xmlURI: + * + * A parsed URI reference. This is a struct containing the various fields + * as described in RFC 2396 but separated for further processing. + * + * Note: query is a deprecated field which is incorrectly unescaped. + * query_raw takes precedence over query if the former is set. + * See: http://mail.gnome.org/archives/xml/2007-April/thread.html#00127 + + d xmlURIPtr s * based(######typedef######) + + d xmlURI ds based(xmlURIPtr) + d align qualified + d scheme * char * + d opaque * char * + d authority * char * + d server * char * + d user * char * + d port 10i 0 + d path * char * + d query * char * + d fragment * char * + d cleanup 10i 0 + d query_raw * char * + + d xmlCreateURI pr extproc('xmlCreateURI') + d like(xmlURIPtr) + + d xmlBuildURI pr * extproc('xmlBuildURI') xmlChar * + d URI * value options(*string) const xmlChar * + d base * value options(*string) const xmlChar * + + d xmlBuildRelativeURI... + d pr * extproc('xmlBuildRelativeURI') xmlChar * + d URI * value options(*string) const xmlChar * + d base * value options(*string) const xmlChar * + + d xmlParseURI pr extproc('xmlParseURI') + d like(xmlURIPtr) + d str * value options(*string) const char * + + d xmlParseURIRaw pr extproc('xmlParseURIRaw') + d like(xmlURIPtr) + d str * value options(*string) const char * + d raw 10i 0 value + + d xmlParseURIReference... + d pr 10i 0 extproc('xmlParseURIReference') + d uri value like(xmlURIPtr) + d str * value options(*string) const char * + + d xmlSaveUri pr * extproc('xmlSaveUri') xmlChar * + d uri value like(xmlURIPtr) + + d xmlPrintURI pr extproc('xmlPrintURI') + d stream * value FILE * + d uri value like(xmlURIPtr) + + d xmlURIEscapeStr... + d pr * extproc('xmlURIEscapeStr') xmlChar * + d str * value options(*string) const xmlChar * + d list * value options(*string) const xmlChar * + + d xmlURIUnescapeString... + d pr * extproc('xmlURIUnescapeString') char * + d str * value options(*string) const char * + d len 10i 0 value + d target * value options(*string) char * + + d xmlNormalizeURIPath... + d pr 10i 0 extproc('xmlNormalizeURIPath') + d path * value options(*string) char * + + d xmlURIEscape pr * extproc('xmlURIEscape') xmlChar * + d str * value options(*string) const xmlChar * + + d xmlFreeURI pr extproc('xmlFreeURI') + d uri value like(xmlURIPtr) + + d xmlCanonicPath pr * extproc('xmlCanonicPath') xmlChar * + d path * value options(*string) const xmlChar * + + d xmlPathToURI pr * extproc('xmlPathToURI') xmlChar * + d path * value options(*string) const xmlChar * + + /endif XML_URI_H__ diff --git a/os400/libxmlrpg/valid.rpgle b/os400/libxmlrpg/valid.rpgle new file mode 100644 index 0000000..722b89d --- /dev/null +++ b/os400/libxmlrpg/valid.rpgle @@ -0,0 +1,575 @@ + * Summary: The DTD validation + * Description: API for the DTD handling and the validity checking + * + * Copy: See Copyright for the status of this software. + * + * Author: Patrick Monnerat <pm@datasphere.ch>, DATASPHERE S.A. + + /if not defined(XML_VALID_H__) + /define XML_VALID_H__ + + /include "libxmlrpg/xmlversion" + /include "libxmlrpg/xmlerror" + /include "libxmlrpg/tree" + /include "libxmlrpg/list" + /include "libxmlrpg/xmlautomata" + /include "libxmlrpg/xmlregexp" + + * Validation state added for non-determinist content model. + + d xmlValidStatePtr... + d s * based(######typedef######) + + * xmlValidityErrorFunc: + * @ctx: usually an xmlValidCtxtPtr to a validity error context, + * but comes from ctxt->userData (which normally contains such + * a pointer); ctxt->userData can be changed by the user. + * @msg: the string to format *printf like vararg + * @...: remaining arguments to the format + * + * Callback called when a validity error is found. This is a message + * oriented function similar to an *printf function. + + d xmlValidityErrorFunc... + d s * based(######typedef######) + d procptr + + * xmlValidityWarningFunc: + * @ctx: usually an xmlValidCtxtPtr to a validity error context, + * but comes from ctxt->userData (which normally contains such + * a pointer); ctxt->userData can be changed by the user. + * @msg: the string to format *printf like vararg + * @...: remaining arguments to the format + * + * Callback called when a validity warning is found. This is a message + * oriented function similar to an *printf function. + + d xmlValidityWarningFunc... + d s * based(######typedef######) + d procptr + + * xmlValidCtxt: + * An xmlValidCtxt is used for error reporting when validating. + + d xmlValidCtxtPtr... + d s * based(######typedef######) + + d xmlValidCtxt ds based(xmlValidCtxtPtr) + d align qualified + d userdata * void * + d error like(xmlValidityErrorFunc) Error callback + d warning like(xmlValidityWarningFunc) Warning callback + * + * Node analysis stack used when validating within entities + * + d node like(xmlNodePtr) Current parsed Node + d nodeNr 10i 0 Parsing stack depth + d nodeMax 10i 0 Max stack depth + d nodeTab * xmlNodePtr * + * + d finishDtd 10u 0 Finish validtng DTD? + d doc like(xmlDocPtr) The document + d valid 10i 0 Temp check result + * + * state state used for non-determinist content validation + * + d vstate * xmlValidState * + d vstateNr 10i 0 Validat. stack depth + d vstateMax 10i 0 Max stack depth + d vstateTab * xmlValidState * + * + /if defined(LIBXML_REGEXP_ENABLED) + d am like(xmlAutomataPtr) The automata + d state like(xmlAutomataStatePtr) Automata build state + /else + d am * + d state * + /endif + + * ALL notation declarations are stored in a table. + * There is one table per DTD. + + d xmlNotationTablePtr... + d s * based(######typedef######) + + * ALL element declarations are stored in a table. + * There is one table per DTD. + + d xmlElementTablePtr... + d s * based(######typedef######) + + * ALL attribute declarations are stored in a table. + * There is one table per DTD. + + d xmlAttributeTablePtr... + d s * based(######typedef######) + + * ALL IDs attributes are stored in a table. + * There is one table per document. + + d xmlIDTablePtr s * based(######typedef######) + + * ALL Refs attributes are stored in a table. + * There is one table per document. + + d xmlRefTablePtr s * based(######typedef######) + + * Notation + + d xmlAddNotationDecl... + d pr extproc('xmlAddNotationDecl') + d like(xmlNotationPtr) + d ctxt value like(xmlValidCtxtPtr) + d dtd value like(xmlDtdPtr) + d name * value options(*string) const xmlChar * + d PublicID * value options(*string) const xmlChar * + d SystemID * value options(*string) const xmlChar * + + /if defined(LIBXML_TREE_ENABLED) + d xmlCopyNotationTable... + d pr extproc('xmlCopyNotationTable') + d like(xmlNotationPtr) + d table value like(xmlNotationTablePtr) + /endif LIBXML_TREE_ENABLED + + d xmlFreeNotationTable... + d pr extproc('xmlFreeNotationTable') + d table value like(xmlNotationTablePtr) + + /if defined(LIBXML_OUTPUT_ENABLED) + d xmlDumpNotationDecl... + d pr extproc('xmlDumpNotationDecl') + d buf value like(xmlBufferPtr) + d nota value like(xmlNotationPtr) + + d xmlDumpNotationTable... + d pr extproc('xmlDumpNotationTable') + d buf value like(xmlBufferPtr) + d table value like(xmlNotationTablePtr) + /endif LIBXML_OUTPUT_ENABLD + + * Element Content + * the non Doc version are being deprecated + + d xmlNewElementContent... + d pr extproc('xmlNewElementContent') + d like(xmlElementContentPtr) + d name * value const xmlChar * + d type value like(xmlElementContentType) + + d xmlCopyElementContent... + d pr extproc('xmlCopyElementContent') + d like(xmlElementContentPtr) + d content value like(xmlElementContentPtr) + + d xmlFreeElementContent... + d pr extproc('xmlFreeElementContent') + d cur value like(xmlElementContentPtr) + + * the new versions with doc argument + + d xmlNewDocElementContent... + d pr extproc('xmlNewDocElementContent') + d like(xmlElementContentPtr) + d doc value like(xmlDocPtr) + d name * value const xmlChar * + d type value like(xmlElementContentType) + + d xmlCopyDocElementContent... + d pr extproc('xmlCopyDocElementContent') + d like(xmlElementContentPtr) + d doc value like(xmlDocPtr) + d content value like(xmlElementContentPtr) + + d xmlFreeDocElementContent... + d pr extproc('xmlFreeDocElementContent') + d doc value like(xmlDocPtr) + d cur value like(xmlElementContentPtr) + + d xmlSnprintfElementContent... + d pr extproc('xmlSnprintfElementContent') + d buf 65535 options(*varsize) + d size 10i 0 value + d content value like(xmlElementContentPtr) + d englob 10i 0 value + + /if defined(LIBXML_OUTPUT_ENABLED) + * DEPRECATED + d xmlSprintfElementContent... + d pr extproc('xmlSprintfElementContent') + d buf 65535 options(*varsize) + d content value like(xmlElementContentPtr) + d englob 10i 0 value + /endif LIBXML_OUTPUT_ENABLD + + * DEPRECATED + + * Element + + d xmlAddElementDecl... + d pr extproc('xmlAddElementDecl') + d like(xmlElementPtr) + d ctxt value like(xmlValidCtxtPtr) + d dtd value like(xmlDtdPtr) + d name * value options(*string) const xmlChar * + d type value like(xmlElementTypeVal) + d content value like(xmlElementContentPtr) + + /if defined(LIBXML_TREE_ENABLED) + d xmlCopyElementTable... + d pr extproc('xmlCopyElementTable') + d like(xmlElementTablePtr) + d table value like(xmlElementTablePtr) + /endif LIBXML_TREE_ENABLED + + d xmlFreeElementTable... + d pr extproc('xmlFreeElementTable') + d table value like(xmlElementTablePtr) + + /if defined(LIBXML_OUTPUT_ENABLED) + d xmlDumpElementTable... + d pr extproc('xmlDumpElementTable') + d buf value like(xmlBufferPtr) + d table value like(xmlElementTablePtr) + + d xmlDumpElementDecl... + d pr extproc('xmlDumpElementDecl') + d buf value like(xmlBufferPtr) + d elem value like(xmlElementPtr) + /endif LIBXML_OUTPUT_ENABLD + + * Enumeration + + d xmlCreateEnumeration... + d pr extproc('xmlCreateEnumeration') + d like(xmlEnumerationPtr) + d name * value options(*string) const xmlChar * + + d xmlFreeEnumeration... + d pr extproc('xmlFreeEnumeration') + d cur value like(xmlEnumerationPtr) + + /if defined(LIBXML_TREE_ENABLED) + d xmlCopyEnumeration... + d pr extproc('xmlCopyEnumeration') + d like(xmlEnumerationPtr) + d cur value like(xmlEnumerationPtr) + /endif LIBXML_TREE_ENABLED + + * Attribute + + d xmlAddAttributeDecl... + d pr extproc('xmlAddAttributeDecl') + d like(xmlAttributePtr) + d ctxt value like(xmlValidCtxtPtr) + d dtd value like(xmlDtdPtr) + d elem * value options(*string) const xmlChar * + d name * value options(*string) const xmlChar * + d ns * value options(*string) const xmlChar * + d type value like(xmlAttributeType) + d def value like(xmlAttributeDefault) + d defaultValue * value options(*string) const xmlChar * + d tree value like(xmlEnumerationPtr) + + /if defined(LIBXML_TREE_ENABLED) + d xmlCopyAttributeTable... + d pr extproc('xmlCopyAttributeTable') + d like(xmlAttributeTablePtr) + d table value like(xmlAttributeTablePtr) + /endif LIBXML_TREE_ENABLED + + d xmlFreeAttributeTable... + d pr extproc('xmlFreeAttributeTable') + d table value like(xmlAttributeTablePtr) + + /if defined(LIBXML_OUTPUT_ENABLED) + d xmlDumpAttributeTable... + d pr extproc('xmlDumpAttributeTable') + d buf value like(xmlBufferPtr) + d table value like(xmlAttributeTablePtr) + + d xmlDumpAttributeDecl... + d pr extproc('xmlDumpAttributeDecl') + d buf value like(xmlBufferPtr) + d attr value like(xmlAttributePtr) + /endif LIBXML_OUTPUT_ENABLD + + * IDs + + d xmlAddID pr extproc('xmlAddID') + d like(xmlIDPtr) + d ctxt value like(xmlValidCtxtPtr) + d doc value like(xmlDocPtr) + d value * value options(*string) const xmlChar * + d attr value like(xmlAttrPtr) + + d xmlFreeIdTable pr extproc('xmlFreeIDTable') + d table value like(xmlIDTablePtr) + + d xmlGetID pr extproc('xmlGetID') + d like(xmlAttrPtr) + d doc value like(xmlDocPtr) + d ID * value options(*string) const xmlChar * + + d xmlIsID pr 10i 0 extproc('xmlIsID') + d doc value like(xmlDocPtr) + d node value like(xmlNodePtr) + d attr value like(xmlAttrPtr) + + d xmlRemoveID pr 10i 0 extproc('xmlRemoveID') + d doc value like(xmlDocPtr) + d attr value like(xmlAttrPtr) + + * IDREFs + + d xmlAddRef pr extproc('xmlAddRef') + d like(xmlRefPtr) + d ctxt value like(xmlValidCtxtPtr) + d doc value like(xmlDocPtr) + d value * value options(*string) const xmlChar * + d attr value like(xmlAttrPtr) + + d xmlFreeRefTable... + d pr extproc('xmlFreeRefTable') + d table value like(xmlRefTablePtr) + + d xmlIsRef pr 10i 0 extproc('xmlIsRef') + d doc value like(xmlDocPtr) + d node value like(xmlNodePtr) + d attr value like(xmlAttrPtr) + + d xmlRemoveRef pr 10i 0 extproc('xmlRemoveRef') + d doc value like(xmlDocPtr) + d attr value like(xmlAttrPtr) + + d xmlGetRefs pr extproc('xmlGetRefs') + d like(xmlListPtr) + d doc value like(xmlDocPtr) + d ID * value options(*string) const xmlChar * + + * The public function calls related to validity checking. + + /if defined(LIBXML_VALID_ENABLED) + * Allocate/Release Validation Contexts + + d xmlNewValidCtxt... + d pr extproc('xmlNewValidCtxt') + d like(xmlValidCtxtPtr) + + d xmlFreeValidCtxt... + d pr extproc('xmlFreeValidCtxt') + d ctxt value like(xmlValidCtxtPtr) + + d xmlValidateRoot... + d pr 10i 0 extproc('xmlValidateRoot') + d ctxt value like(xmlValidCtxtPtr) + d doc value like(xmlDocPtr) + + d xmlValidateElementDecl... + d pr 10i 0 extproc('xmlValidateElementDecl') + d ctxt value like(xmlValidCtxtPtr) + d doc value like(xmlDocPtr) + d elem value like(xmlElementPtr) + + d xmlValidNormalizeAttributeValue... + d pr * extproc( xmlChar * + d 'xmlValidNormalizeAttributeValue') + d doc value like(xmlDocPtr) + d elem value like(xmlNodePtr) + d name * value options(*string) const xmlChar * + d value * value options(*string) const xmlChar * + + d xmlValidCtxtNormalizeAttributeValue... + d pr * extproc('xmlValidCtxt+ xmlChar * + d NormalizeAttributeValue') + d ctxt value like(xmlValidCtxtPtr) + d doc value like(xmlDocPtr) + d elem value like(xmlNodePtr) + d name * value options(*string) const xmlChar * + d value * value options(*string) const xmlChar * + + d xmlValidateAttributeDecl... + d pr 10i 0 extproc('xmlValidateAttributeDecl') + d ctxt value like(xmlValidCtxtPtr) + d doc value like(xmlDocPtr) + d attr value like(xmlAttributePtr) + + d xmlValidateAttributeValue... + d pr 10i 0 extproc('xmlValidateAttributeValue') + d type value like(xmlAttributeType) + d value * value options(*string) const xmlChar * + + d xmlValidateNotationDecl... + d pr 10i 0 extproc('xmlValidateNotationDecl') + d ctxt value like(xmlValidCtxtPtr) + d doc value like(xmlDocPtr) + d nota value like(xmlNotationPtr) + + d xmlValidateDtd pr 10i 0 extproc('xmlValidateDtd') + d ctxt value like(xmlValidCtxtPtr) + d doc value like(xmlDocPtr) + d dtd value like(xmlDtdPtr) + + d xmlValidateDtdFinal... + d pr 10i 0 extproc('xmlValidateDtdFinal') + d ctxt value like(xmlValidCtxtPtr) + d doc value like(xmlDocPtr) + + d xmlValidateDocument... + d pr 10i 0 extproc('xmlValidateDocument') + d ctxt value like(xmlValidCtxtPtr) + d doc value like(xmlDocPtr) + + d xmlValidateElement... + d pr 10i 0 extproc('xmlValidateElement') + d ctxt value like(xmlValidCtxtPtr) + d doc value like(xmlDocPtr) + d elem value like(xmlNodePtr) + + d xmlValidateOneElement... + d pr 10i 0 extproc('xmlValidateOneElement') + d ctxt value like(xmlValidCtxtPtr) + d doc value like(xmlDocPtr) + d elem value like(xmlNodePtr) + + d xmlValidateOneAttribute... + d pr 10i 0 extproc('xmlValidateOneAttribute') + d ctxt value like(xmlValidCtxtPtr) + d doc value like(xmlDocPtr) + d elem value like(xmlNodePtr) + d attr value like(xmlAttrPtr) + d value * value options(*string) const xmlChar * + + d xmlValidateOneNamespace... + d pr 10i 0 extproc('xmlValidateOneNamespace') + d ctxt value like(xmlValidCtxtPtr) + d doc value like(xmlDocPtr) + d elem value like(xmlNodePtr) + d prefix * value options(*string) const xmlChar * + d ns value like(xmlNsPtr) + d value * value options(*string) const xmlChar * + + d xmlValidateDocumentFinal... + d pr 10i 0 extproc('xmlValidateDocumentFinal') + d ctxt value like(xmlValidCtxtPtr) + d doc value like(xmlDocPtr) + /endif LIBXML_VALID_ENABLED + + /undefine XML_TESTVAL + /if defined(LIBXML_VALID_ENABLED) + /define XML_TESTVAL + /elseif defined(LIBXML_SCHEMAS_ENABLED) + /define XML_TESTVAL + /endif + /if defined(XML_TESTVAL) + d xmlValidateNotationUse... + d pr 10i 0 extproc('xmlValidateNotationUse') + d ctxt value like(xmlValidCtxtPtr) + d doc value like(xmlDocPtr) + d notationName * value options(*string) const xmlChar * + + /undefine XML_TESTVAL + /endif + + d xmlIsMixedElement... + d pr 10i 0 extproc('xmlIsMixedElement') + d doc value like(xmlDocPtr) + d name * value options(*string) const xmlChar * + + d xmlGetDtdAttrDesc... + d pr extproc('xmlGetDtdAttrDesc') + d like(xmlAttributePtr) + d dtd value like(xmlDtdPtr) + d elem * value options(*string) const xmlChar * + d name * value options(*string) const xmlChar * + + d xmlGetDtdQAttrDesc... + d pr extproc('xmlGetDtdQAttrDesc') + d like(xmlAttributePtr) + d dtd value like(xmlDtdPtr) + d elem * value options(*string) const xmlChar * + d name * value options(*string) const xmlChar * + d prefix * value options(*string) const xmlChar * + + d xmlGetDtdNotationDesc... + d pr extproc('xmlGetDtdNotationDesc') + d like(xmlNotationPtr) + d dtd value like(xmlDtdPtr) + d name * value options(*string) const xmlChar * + + d xmlGetDtdQElementDesc... + d pr extproc('xmlGetDtdQElementDesc') + d like(xmlElementPtr) + d dtd value like(xmlDtdPtr) + d name * value options(*string) const xmlChar * + d prefix * value options(*string) const xmlChar * + + d xmlGetDtdElementDesc... + d pr extproc('xmlGetDtdElementDesc') + d like(xmlElementPtr) + d dtd value like(xmlDtdPtr) + d name * value options(*string) const xmlChar * + + /if defined(LIBXML_VALID_ENABLED) + d xmlValidGetPotentialChildren... + d pr 10i 0 extproc( + d 'xmlValidGetPotentialChildren') + d ctree * value xmlElementContent * + d names * const xmlChar *(*) + d len 10i 0 + d max 10i 0 value + + d xmlValidGetValidElements... + d pr 10i 0 extproc('xmlValidGetValidElements') + d prev like(xmlNodePtr) + d next like(xmlNodePtr) + d names * const xmlChar *(*) + d max 10i 0 value + + d xmlValidateNameValue... + d pr 10i 0 extproc('xmlValidateNameValue') + d value * value options(*string) const xmlChar * + + d xmlValidateNamesValue... + d pr 10i 0 extproc('xmlValidateNamesValue') + d value * value options(*string) const xmlChar * + + d xmlValidateNmtokenValue... + d pr 10i 0 extproc('xmlValidateNmtokenValue') + d value * value options(*string) const xmlChar * + + d xmlValidateNmtokensValue... + d pr 10i 0 extproc('xmlValidateNmtokensValue') + d value * value options(*string) const xmlChar * + + /if defined(LIBXML_REGEXP_ENABLED) + * Validation based on the regexp support + + d xmlValidBuildContentModel... + d pr 10i 0 extproc('xmlValidBuildContentModel') + d ctxt value like(xmlValidCtxtPtr) + d elem value like(xmlElementPtr) + + d xmlValidatePushElement... + d pr 10i 0 extproc('xmlValidatePushElement') + d ctxt value like(xmlValidCtxtPtr) + d doc value like(xmlDocPtr) + d elem value like(xmlNodePtr) + d qname * value options(*string) const xmlChar * + + d xmlValidatePushCData... + d pr 10i 0 extproc('xmlValidatePushCData') + d ctxt value like(xmlValidCtxtPtr) + d data * value options(*string) const xmlChar * + d len 10i 0 value + + d xmlValidatePopElement... + d pr 10i 0 extproc('xmlValidatePopElement') + d ctxt value like(xmlValidCtxtPtr) + d doc value like(xmlDocPtr) + d elem value like(xmlNodePtr) + d qname * value options(*string) const xmlChar * + + /endif LIBXML_REGEXP_ENABLD + /endif LIBXML_VALID_ENABLED + /endif XML_VALID_H__ diff --git a/os400/libxmlrpg/xinclude.rpgle b/os400/libxmlrpg/xinclude.rpgle new file mode 100644 index 0000000..c0b68ff --- /dev/null +++ b/os400/libxmlrpg/xinclude.rpgle @@ -0,0 +1,147 @@ + * Summary: implementation of XInclude + * Description: API to handle XInclude processing, + * implements the + * World Wide Web Consortium Last Call Working Draft 10 November 2003 + * http://www.w3.org/TR/2003/WD-xinclude-20031110 + * + * Copy: See Copyright for the status of this software. + * + * Author: Patrick Monnerat <pm@datasphere.ch>, DATASPHERE S.A. + + /if not defined(XML_XINCLUDE_H__) + /define XML_XINCLUDE_H__ + + /include "libxmlrpg/xmlversion" + /include "libxmlrpg/tree" + + /if defined(LIBXML_XINCLUDE_ENABLED) + + * XINCLUDE_NS: + * + * Macro defining the Xinclude namespace: http://www.w3.org/2003/XInclude + + d XINCLUDE_NS c 'http://www.w3.org/2003/XInclude' + + + * XINCLUDE_OLD_NS: + * + * Define the draft Xinclude namespace: http://www.w3.org/2001/XInclude + + d XINCLUDE_OLD_NS... + d c 'http://www.w3.org/2001/XInclude' + + * XINCLUDE_NODE: + * + * Macro defining "include" + + d XINCLUDE_NODE c 'include' + + * XINCLUDE_FALLBACK: + * + * Macro defining "fallback" + + d XINCLUDE_FALLBACK... + d c 'fallback' + + * XINCLUDE_HREF: + * + * Macro defining "href" + + d XINCLUDE_HREF c 'href' + + * XINCLUDE_PARSE: + * + * Macro defining "parse" + + d XINCLUDE_PARSE c 'parse' + + * XINCLUDE_PARSE_XML: + * + * Macro defining "xml" + + d XINCLUDE_PARSE_XML... + d c 'xml' + + * XINCLUDE_PARSE_TEXT: + * + * Macro defining "text" + + d XINCLUDE_PARSE_TEXT... + d c 'text' + + * XINCLUDE_PARSE_ENCODING: + * + * Macro defining "encoding" + + d XINCLUDE_PARSE_ENCODING... + d c 'encoding' + + * XINCLUDE_PARSE_XPOINTER: + * + * Macro defining "xpointer" + + d XINCLUDE_PARSE_XPOINTER... + d c 'xpointer' + + d xmlXIncludeCtxtPtr... + d s * based(######typedef######) + + * standalone processing + + d xmlXIncludeProcess... + d pr 10i 0 extproc('xmlXIncludeProcess') + d doc value like(xmlDocPtr) + + d xmlXIncludeProcessFlags... + d pr 10i 0 extproc('xmlXIncludeProcessFlags') + d doc value like(xmlDocPtr) + d flags 10i 0 value + + d xmlXIncludeProcessFlagsData... + d pr 10i 0 extproc( + d 'xmlXIncludeProcessFlagsData') + d doc value like(xmlDocPtr) + d flags 10i 0 value + d data * value void * + + d xmlXIncludeProcessTreeFlagsData... + d pr 10i 0 extproc( + d 'xmlXIncludeProcessTreeFlagsData') + d tree value like(xmlNodePtr) + d flags 10i 0 value + d data * value void * + + d xmlXIncludeProcessTree... + d pr 10i 0 extproc('xmlXIncludeProcessTree') + d tree value like(xmlNodePtr) + + d xmlXIncludeProcessTreeFlags... + d pr 10i 0 extproc( + d 'xmlXIncludeProcessTreeFlags') + d tree value like(xmlNodePtr) + d flags 10i 0 value + + + * contextual processing + + d xmlXIncludeNewContext... + d pr extproc('xmlXIncludeNewContext') + d like(xmlXIncludeCtxtPtr) + d doc value like(xmlDocPtr) + + d xmlXIncludeSetFlags... + d pr 10i 0 extproc('xmlXIncludeSetFlags') + d ctxt value like(xmlXIncludeCtxtPtr) + d flags 10i 0 value + + d xmlXIncludeFreeContext... + d pr extproc('xmlXIncludeFreeContext') + d ctxt value like(xmlXIncludeCtxtPtr) + + d xmlXIncludeProcessNode... + d pr 10i 0 extproc('xmlXIncludeProcessNode') + d ctxt value like(xmlXIncludeCtxtPtr) + d tree value like(xmlNodePtr) + + /endif XINCLUDE_ENABLED + /endif XML_XINCLUDE_H__ diff --git a/os400/libxmlrpg/xlink.rpgle b/os400/libxmlrpg/xlink.rpgle new file mode 100644 index 0000000..964e605 --- /dev/null +++ b/os400/libxmlrpg/xlink.rpgle @@ -0,0 +1,164 @@ + * Summary: unfinished XLink detection module + * Description: unfinished XLink detection module + * + * Copy: See Copyright for the status of this software. + * + * Author: Patrick Monnerat <pm@datasphere.ch>, DATASPHERE S.A. + + /if not defined(XML_XLINK_H__) + /define XML_XLINK_H__ + + /include "libxmlrpg/xmlversion" + /include "libxmlrpg/tree" + + /if defined(LIBXML_XPTR_ENABLED) + + * Various defines for the various Link properties. + * + * NOTE: the link detection layer will try to resolve QName expansion + * of namespaces. If "foo" is the prefix for "http://foo.com/" + * then the link detection layer will expand role="foo:myrole" + * to "http://foo.com/:myrole". + * NOTE: the link detection layer will expand URI-Refences found on + * href attributes by using the base mechanism if found. + + d xlinkRef s * based(######typedef######) xmlChar * + d xlinkRole s * based(######typedef######) xmlChar * + d xlinkTitle s * based(######typedef######) xmlChar * + + d xlinkType s 10i 0 based(######typedef######) enum + d XLINK_TYPE_NONE... + d c 0 + d XLINK_TYPE_SIMPLE... + d c 1 + d XLINK_TYPE_EXTENDED... + d c 2 + d XLINK_TYPE_EXTENDED_SET... + d c 3 + + d xlinkShow s 10i 0 based(######typedef######) enum + d XLINK_SHOW_NONE... + d c 0 + d XLINK_SHOW_NEW... + d c 1 + d XLINK_SHOW_EMBED... + d c 2 + d XLINK_SHOW_REPLACE... + d c 3 + + d xlinkActuate s 10i 0 based(######typedef######) enum + d XLINK_ACTUATE_NONE... + d c 0 + d XLINK_ACTUATE_AUTO... + d c 1 + d XLINK_ACTUATE_ONREQUEST... + d c 2 + + * xlinkNodeDetectFunc: + * @ctx: user data pointer + * @node: the node to check + * + * This is the prototype for the link detection routine. + * It calls the default link detection callbacks upon link detection. + + d xlinkNodeDetectFunc... + d s * based(######typedef######) + d procptr + + * The link detection module interact with the upper layers using + * a set of callback registered at parsing time. + + * xlinkSimpleLinkFunk: + * @ctx: user data pointer + * @node: the node carrying the link + * @href: the target of the link + * @role: the role string + * @title: the link title + * + * This is the prototype for a simple link detection callback. + + d xlinkSimpleLinkFunk... + d s * based(######typedef######) + d procptr + + * xlinkExtendedLinkFunk: + * @ctx: user data pointer + * @node: the node carrying the link + * @nbLocators: the number of locators detected on the link + * @hrefs: pointer to the array of locator hrefs + * @roles: pointer to the array of locator roles + * @nbArcs: the number of arcs detected on the link + * @from: pointer to the array of source roles found on the arcs + * @to: pointer to the array of target roles found on the arcs + * @show: array of values for the show attributes found on the arcs + * @actuate: array of values for the actuate attributes found on the arcs + * @nbTitles: the number of titles detected on the link + * @title: array of titles detected on the link + * @langs: array of xml:lang values for the titles + * + * This is the prototype for a extended link detection callback. + + d xlinkExtendedLinkFunk... + d s * based(######typedef######) + d procptr + + * xlinkExtendedLinkSetFunk: + * @ctx: user data pointer + * @node: the node carrying the link + * @nbLocators: the number of locators detected on the link + * @hrefs: pointer to the array of locator hrefs + * @roles: pointer to the array of locator roles + * @nbTitles: the number of titles detected on the link + * @title: array of titles detected on the link + * @langs: array of xml:lang values for the titles + * + * This is the prototype for a extended link set detection callback. + + d xlinkExtendedLinkSetFunk... + d s * based(######typedef######) + d procptr + + * This is the structure containing a set of Links detection callbacks. + * + * There is no default xlink callbacks, if one want to get link + * recognition activated, those call backs must be provided before parsing. + + d xlinkHandlerPtr... + d s * based(######typedef######) xmlChar * + + d xlinkHandler ds based(xlinkHandlerPtr) + d align qualified + d simple like(xlinkSimpleLinkFunk) + d extended like(xlinkExtendedLinkFunk) + d set like(xlinkExtendedLinkSetFunk) + + * The default detection routine, can be overridden, they call the default + * detection callbacks. + + d xlinkGetDefaultDetect... + d pr extproc('xlinkGetDefaultDetect') + d like(xlinkNodeDetectFunc) + + d xlinkSetDefaultDetect... + d pr extproc('xlinkSetDefaultDetect') + d func value like(xlinkNodeDetectFunc) + + * Routines to set/get the default handlers. + + d xlinkGetDefaultHandler... + d pr extproc('xlinkGetDefaultHandler') + d like(xlinkHandlerPtr) + + d xlinkSetDefaultHandler... + d pr extproc('xlinkSetDefaultHandler') + d handler value like(xlinkHandlerPtr) + + * Link detection module itself. + + d xlinkIsLink pr extproc('xlinkIsLink') + d like(xlinkType) + d doc value like(xmlDocPtr) + d node value like(xmlNodePtr) + + /endif LIBXML_XPTR_ENABLED + /endif XML_XLINK_H__ diff --git a/os400/libxmlrpg/xmlIO.rpgle b/os400/libxmlrpg/xmlIO.rpgle new file mode 100644 index 0000000..72911bc --- /dev/null +++ b/os400/libxmlrpg/xmlIO.rpgle @@ -0,0 +1,441 @@ + * Summary: interface for the I/O interfaces used by the parser + * Description: interface for the I/O interfaces used by the parser + * + * Copy: See Copyright for the status of this software. + * + * Author: Patrick Monnerat <pm@datasphere.ch>, DATASPHERE S.A. + + /if not defined(XML_IO_H__) + /define XML_IO_H__ + + /include "libxmlrpg/xmlversion" + + * Those are the functions and datatypes for the parser input + * I/O structures. + + * xmlInputMatchCallback: + * @filename: the filename or URI + * + * Callback used in the I/O Input API to detect if the current handler + * can provide input fonctionnalities for this resource. + * + * Returns 1 if yes and 0 if another Input module should be used + + d xmlInputMatchCallback... + d s * based(######typedef######) + d procptr + + * xmlInputOpenCallback: + * @filename: the filename or URI + * + * Callback used in the I/O Input API to open the resource + * + * Returns an Input context or NULL in case or error + + d xmlInputOpenCallback... + d s * based(######typedef######) + d procptr + + * xmlInputReadCallback: + * @context: an Input context + * @buffer: the buffer to store data read + * @len: the length of the buffer in bytes + * + * Callback used in the I/O Input API to read the resource + * + * Returns the number of bytes read or -1 in case of error + + d xmlInputReadCallback... + d s * based(######typedef######) + d procptr + + * xmlInputCloseCallback: + * @context: an Input context + * + * Callback used in the I/O Input API to close the resource + * + * Returns 0 or -1 in case of error + + d xmlInputCloseCallback... + d s * based(######typedef######) + d procptr + + /if defined(LIBXML_OUTPUT_ENABLED) + + * Those are the functions and datatypes for the library output + * I/O structures. + + * xmlOutputMatchCallback: + * @filename: the filename or URI + * + * Callback used in the I/O Output API to detect if the current handler + * can provide output fonctionnalities for this resource. + * + * Returns 1 if yes and 0 if another Output module should be used + + d xmlOutputMatchCallback... + d s * based(######typedef######) + d procptr + + * xmlOutputOpenCallback: + * @filename: the filename or URI + * + * Callback used in the I/O Output API to open the resource + * + * Returns an Output context or NULL in case or error + + d xmlOutputOpenCallback... + d s * based(######typedef######) + d procptr + + * xmlOutputWriteCallback: + * @context: an Output context + * @buffer: the buffer of data to write + * @len: the length of the buffer in bytes + * + * Callback used in the I/O Output API to write to the resource + * + * Returns the number of bytes written or -1 in case of error + + d xmlOutputWriteCallback... + d s * based(######typedef######) + d procptr + + * xmlOutputCloseCallback: + * @context: an Output context + * + * Callback used in the I/O Output API to close the resource + * + * Returns 0 or -1 in case of error + + d xmlOutputCloseCallback... + d s * based(######typedef######) + d procptr + /endif LIBXML_OUTPUT_ENABLD + + /include "libxmlrpg/globals" + /include "libxmlrpg/tree" + /include "libxmlrpg/parser" + /include "libxmlrpg/encoding" + + d xmlParserInputBuffer... + d ds based(xmlParserInputBufferPtr) + d align qualified + d context * void * + d readcallback like(xmlInputReadCallback) + d closecallback like(xmlInputCloseCallback) + * + d encoder like(xmlCharEncodingHandlerPtr) Conversions --> UTF8 + * + d buffer like(xmlBufPtr) UTF-8 local buffer + d raw like(xmlBufPtr) Raw input buffer + d compressed 10i 0 + d error 10i 0 + d rawconsumed 20u 0 + + /if defined(LIBXML_OUTPUT_ENABLED) + d xmlOutputBuffer... + d ds based(xmlOutputBufferPtr) + d align qualified + d context * void * + d writecallback like(xmlOutputWriteCallback) + d closecallback like(xmlOutputCloseCallback) + * + d encoder like(xmlCharEncodingHandlerPtr) Conversions --> UTF8 + * + d buffer like(xmlBufPtr) UTF-8/ISOLatin local + d conv like(xmlBufPtr) Buffer for output + d written 10i 0 Total # byte written + d error 10i 0 + /endif LIBXML_OUTPUT_ENABLD + + * Interfaces for input + + d xmlCleanupInputCallbacks... + d pr extproc('xmlCleanupInputCallbacks') + + d xmlPopInputCallbacks... + d pr 10i 0 extproc('xmlPopInputCallbacks') + + d xmlRegisterDefaultInputCallbacks... + d pr extproc( + d 'xmlRegisterDefaultInputCallbacks') + + d xmlAllocParserInputBuffer... + d pr extproc('xmlAllocParserInputBuffer') + d like(xmlParserInputBufferPtr) + d enc value like(xmlCharEncoding) + + d xmlParserInputBufferCreateFilename... + d pr extproc( + d 'xmlParserInputBufferCreateFilename') + d like(xmlParserInputBufferPtr) + d URI * value options(*string) const char * + d enc value like(xmlCharEncoding) + + d xmlParserInputBufferCreateFile... + d pr extproc( + d 'xmlParserInputBufferCreateFile') + d like(xmlParserInputBufferPtr) + d file * value FILE * + d enc value like(xmlCharEncoding) + + d xmlParserInputBufferCreateFd... + d pr extproc( + d 'xmlParserInputBufferCreateFd') + d like(xmlParserInputBufferPtr) + d fd 10i 0 value + d enc value like(xmlCharEncoding) + + d xmlParserInputBufferCreateMem... + d pr extproc( + d 'xmlParserInputBufferCreateMem') + d like(xmlParserInputBufferPtr) + d mem * value options(*string) const char * + d size 10i 0 value + d enc value like(xmlCharEncoding) + + d xmlParserInputBufferCreateStatic... + d pr extproc( + d 'xmlParserInputBufferCreateStatic') + d like(xmlParserInputBufferPtr) + d mem * value options(*string) const char * + d size 10i 0 value + d enc value like(xmlCharEncoding) + + d xmlParserInputBufferCreateIO... + d pr extproc( + d 'xmlParserInputBufferCreateIO') + d like(xmlParserInputBufferPtr) + d ioread value like(xmlInputReadCallback) + d ioclose value like(xmlInputCloseCallback) + d ioctx * value void * + d enc value like(xmlCharEncoding) + + d xmlParserInputBufferRead... + d pr 10i 0 extproc('xmlParserInputBufferRead') + d in value like(xmlParserInputBufferPtr) + d len 10i 0 value + + d xmlParserInputBufferGrow... + d pr 10i 0 extproc('xmlParserInputBufferGrow') + d in value like(xmlParserInputBufferPtr) + d len 10i 0 value + + d xmlParserInputBufferPush... + d pr 10i 0 extproc('xmlParserInputBufferPush') + d in value like(xmlParserInputBufferPtr) + d len 10i 0 value + d buf * value options(*string) const char * + + d xmlFreeParserInputBuffer... + d pr extproc('xmlFreeParserInputBuffer') + d in value like(xmlParserInputBufferPtr) + + d xmlParserGetDirectory... + d pr * extproc('xmlParserGetDirectory') char * + d filename * value options(*string) const char * + + d xmlRegisterInputCallbacks... + d pr 10i 0 extproc('xmlRegisterInputCallbacks') + d matchFunc value like(xmlInputMatchCallback) + d openFunc value like(xmlInputOpenCallback) + d readFunc value like(xmlInputReadCallback) + d closeFunc value like(xmlInputCloseCallback) + + /if defined(LIBXML_OUTPUT_ENABLED) + + * Interfaces for output + + d xmlCleanupOutputCallbacks... + d pr extproc('xmlCleanupOutputCallbacks') + + d xmlRegisterDefaultOutputCallbacks... + d pr extproc( + d 'xmlRegisterDefaultOuputCallbacks') + + d xmlAllocOutputBuffer... + d pr extproc('xmlAllocOutputBuffer') + d like(xmlOutputBufferPtr) + d encoder value + d like(xmlCharEncodingHandlerPtr) + + d xmlOutputBufferCreateFilename... + d pr extproc( + d 'xmlOutputBufferCreateFilename') + d like(xmlOutputBufferPtr) + d URI * value options(*string) const char * + d encoder value + d like(xmlCharEncodingHandlerPtr) + d compression 10i 0 value + + d xmlOutputBufferCreateFile... + d pr extproc('xmlOutputBufferCreateFile') + d like(xmlOutputBufferPtr) + d file * value FILE * + d encoder value + d like(xmlCharEncodingHandlerPtr) + + d xmlOutputBufferCreateBuffer... + d pr extproc( + d 'xmlOutputBufferCreateBuffer') + d like(xmlOutputBufferPtr) + d buffer value like(xmlBufferPtr) + d encoder value + d like(xmlCharEncodingHandlerPtr) + + d xmlOutputBufferCreateFd... + d pr extproc('xmlOutputBufferCreateFd') + d like(xmlOutputBufferPtr) + d fd 10i 0 value + d encoder value + d like(xmlCharEncodingHandlerPtr) + + d xmlOutputBufferCreateIO... + d pr extproc('xmlOutputBufferCreateIO') + d like(xmlOutputBufferPtr) + d iowrite value like(xmlOutputWriteCallback) + d ioclose value like(xmlOutputCloseCallback) + d ioctx * value void * + d encoder value + d like(xmlCharEncodingHandlerPtr) + + * Couple of APIs to get the output without digging into the buffers + + d xmlOutputBufferGetContent... + d pr * extproc('xmlOutputBufferGetContent') const xmlChar * + d out value like(xmlOutputBufferPtr) + + d xmlOutputBufferGetSize... + d pr 10u 0 extproc('xmlOutputBufferGetSize') size_t + d out value like(xmlOutputBufferPtr) + + d xmlOutputBufferWrite... + d pr 10i 0 extproc('xmlOutputBufferWrite') + d out value like(xmlOutputBufferPtr) + d len 10i 0 value + d buf * value options(*string) const char * + + d xmlOutputBufferWriteString... + d pr 10i 0 extproc('xmlOutputBufferWriteString') + d out value like(xmlOutputBufferPtr) + d str * value options(*string) const char * + + d xmlOutputBufferWriteEscape... + d pr 10i 0 extproc('xmlOutputBufferWriteEscape') + d out value like(xmlOutputBufferPtr) + d str * value options(*string) const xmlChar * + d escaping value like(xmlCharEncodingOutputFunc) + + d xmlOutputBufferFlush... + d pr 10i 0 extproc('xmlOutputBufferFlush') + d out value like(xmlOutputBufferPtr) + + d xmlOutputBufferClose... + d pr 10i 0 extproc('xmlOutputBufferClose') + d out value like(xmlOutputBufferPtr) + + d xmlRegisterOutputCallbacks... + d pr 10i 0 extproc('xmlRegisterOutputCallbacks') + d matchFunc value like(xmlOutputMatchCallback) + d openFunc value like(xmlOutputOpenCallback) + d writeFunc value like(xmlOutputWriteCallback) + d closeFunc value like(xmlOutputCloseCallback) + + /if defined(LIBXML_HTTP_ENABLED) + + * This function only exists if HTTP support built into the library + + d xmlRegisterHTTPPostCallbacks... + d pr extproc( + d 'xmlRegisterHTTPPostCallbacks') + + /endif LIBXML_HTTP_ENABLED + /endif LIBXML_OUTPUT_ENABLD + + d xmlCheckHTTPInput... + d pr extproc('xmlCheckHTTPInput') + d like(xmlParserInputPtr) + d ctxt value like(xmlParserCtxtPtr) + d ret value like(xmlParserInputPtr) + + * A predefined entity loader disabling network accesses + + d xmlNoNetExternalEntityLoader... + d pr extproc( + d 'xmlNoNetExternalEntityLoader') + d like(xmlParserInputPtr) + d URL * value options(*string) const char * + d ID * value options(*string) const char * + d ctxt value like(xmlParserCtxtPtr) + + * xmlNormalizeWindowsPath is obsolete, don't use it. + * Check xmlCanonicPath in uri.h for a better alternative. + + d xmlNormalizeWindowsPath... + d pr * extproc('xmlNormalizeWindowsPath') xmlChar * + d path * value options(*string) const xmlChar * + + d xmlCheckFilename... + d pr 10i 0 extproc('xmlCheckFilename') + d path * value options(*string) const char * + + * Default 'file://' protocol callbacks + + d xmlFileMatch pr 10i 0 extproc('xmlFileMatch') + d filename * value options(*string) const char * + + d xmlFileOpen pr * extproc('xmlFileOpen') void * + d filename * value options(*string) const char * + + d xmlFileRead pr 10i 0 extproc('xmlFileRead') + d context * value void * + d buffer 65535 options(*varsize) + d len 10i 0 value + + d xmlFileClose pr 10i 0 extproc('xmlFileClose') + d context * value void * + + * Default 'http://' protocol callbacks + + /if defined(LIBXML_HTTP_ENABLED) + d xmlIOHTTPMatch pr 10i 0 extproc('xmlIOHTTPMatch') + d filename * value options(*string) const char * + + d xmlIOHTTPOpen pr * extproc('xmlIOHTTPOpen') void * + d filename * value options(*string) const char * + + /if defined(LIBXML_OUTPUT_ENABLED) + d xmlIOHTTPOpenW pr * extproc('xmlIOHTTPOpenW') void * + d post_uri * value options(*string) const char * + d compression 10i 0 value + /endif LIBXML_OUTPUT_ENABLD + + d xmlIOHTTPRead pr 10i 0 extproc('xmlIOHTTPRead') + d context * value void * + d buffer 65535 options(*varsize) + d len 10i 0 value + + d xmlIOHTTPClose pr 10i 0 extproc('xmlIOHTTPClose') + d context * value void * + /endif LIBXML_HTTP_ENABLED + + * Default 'ftp://' protocol callbacks + + /if defined(LIBXML_FTP_ENABLED) + d xmlIOFTPMatch pr 10i 0 extproc('xmlIOFTPMatch') + d filename * value options(*string) const char * + + d xmlIOFTPOpen pr * extproc('xmlIOFTPOpen') void * + d filename * value options(*string) const char * + + d xmlIOFTPRead pr 10i 0 extproc('xmlIOFTPRead') + d context * value void * + d buffer 65535 options(*varsize) + d len 10i 0 value + + d xmlIOFTPClose pr 10i 0 extproc('xmlIOFTPClose') + d context * value void * + /endif LIBXML_FTP_ENABLED + + /endif XML_IO_H__ diff --git a/os400/libxmlrpg/xmlautomata.rpgle b/os400/libxmlrpg/xmlautomata.rpgle new file mode 100644 index 0000000..4979725 --- /dev/null +++ b/os400/libxmlrpg/xmlautomata.rpgle @@ -0,0 +1,179 @@ + * Summary: API to build regexp automata + * Description: the API to build regexp automata + * + * Copy: See Copyright for the status of this software. + * + * Author: Patrick Monnerat <pm@datasphere.ch>, DATASPHERE S.A. + + /if not defined(XML_AUTOMATA_H__) + /define XML_AUTOMATA_H__ + + /include "libxmlrpg/xmlversion" + /include "libxmlrpg/tree" + + /if defined(LIBXML_REGEXP_ENABLED) + /if defined(LIBXML_AUTOMATA_ENABLED) + + /include "libxmlrpg/xmlregexp" + + * xmlAutomataPtr: + * + * A libxml automata description, It can be compiled into a regexp + + d xmlAutomataPtr s * based(######typedef######) + + * xmlAutomataStatePtr: + * + * A state int the automata description, + + d xmlAutomataStatePtr... + d s * based(######typedef######) + + * Building API + + d xmlNewAutomata pr extproc('xmlNewAutomata') + d like(xmlAutomataPtr) + + d xmlFreeAutomata... + d pr extproc('xmlFreeAutomata') + d am value like(xmlAutomataPtr) + + d xmlAutomataGetInitState... + d pr extproc('xmlAutomataGetInitState') + d like(xmlAutomataStatePtr) + d am value like(xmlAutomataPtr) + + d xmlAutomataSetFinalState... + d pr 10i 0 extproc('xmlAutomataSetFinalState') + d am value like(xmlAutomataPtr) + d state value like(xmlAutomataStatePtr) + + d xmlAutomataNewState... + d pr extproc('xmlAutomataNewState') + d like(xmlAutomataStatePtr) + d am value like(xmlAutomataPtr) + + d xmlAutomataNewTransition... + d pr extproc('xmlAutomataNewTransition') + d like(xmlAutomataStatePtr) + d am value like(xmlAutomataPtr) + d from value like(xmlAutomataStatePtr) + d to value like(xmlAutomataStatePtr) + d token * value options(*string) const xmlChar * + d data * value options(*string) void * + + d xmlAutomataNewTransition2... + d pr extproc('xmlAutomataNewTransition2') + d like(xmlAutomataStatePtr) + d am value like(xmlAutomataPtr) + d from value like(xmlAutomataStatePtr) + d to value like(xmlAutomataStatePtr) + d token * value options(*string) const xmlChar * + d token2 * value options(*string) const xmlChar * + d data * value options(*string) void * + + d xmlAutomataNewNegTrans... + d pr extproc('xmlAutomataNewNegTrans') + d like(xmlAutomataStatePtr) + d am value like(xmlAutomataPtr) + d from value like(xmlAutomataStatePtr) + d to value like(xmlAutomataStatePtr) + d token * value options(*string) const xmlChar * + d token2 * value options(*string) const xmlChar * + d data * value options(*string) void * + + d xmlAutomataNewCountTrans... + d pr extproc('xmlAutomataNewCountTrans') + d like(xmlAutomataStatePtr) + d am value like(xmlAutomataPtr) + d from value like(xmlAutomataStatePtr) + d to value like(xmlAutomataStatePtr) + d token * value options(*string) const xmlChar * + d min 10i 0 value + d max 10i 0 value + d data * value options(*string) void * + + d xmlAutomataNewCountTrans2... + d pr extproc('xmlAutomataNewCountTrans2') + d like(xmlAutomataStatePtr) + d am value like(xmlAutomataPtr) + d from value like(xmlAutomataStatePtr) + d to value like(xmlAutomataStatePtr) + d token * value options(*string) const xmlChar * + d token2 * value options(*string) const xmlChar * + d min 10i 0 value + d max 10i 0 value + d data * value options(*string) void * + + d xmlAutomataNewOnceTrans... + d pr extproc('xmlAutomataNewOnceTrans') + d like(xmlAutomataStatePtr) + d am value like(xmlAutomataPtr) + d from value like(xmlAutomataStatePtr) + d to value like(xmlAutomataStatePtr) + d token * value options(*string) const xmlChar * + d min 10i 0 value + d max 10i 0 value + d data * value options(*string) void * + + d xmlAutomataNewOnceTrans2... + d pr extproc('xmlAutomataNewOnceTrans2') + d like(xmlAutomataStatePtr) + d am value like(xmlAutomataPtr) + d from value like(xmlAutomataStatePtr) + d to value like(xmlAutomataStatePtr) + d token * value options(*string) const xmlChar * + d token2 * value options(*string) const xmlChar * + d min 10i 0 value + d max 10i 0 value + d data * value options(*string) void * + + d xmlAutomataNewAllTrans... + d pr extproc('xmlAutomataNewAllTrans') + d like(xmlAutomataStatePtr) + d am value like(xmlAutomataPtr) + d from value like(xmlAutomataStatePtr) + d to value like(xmlAutomataStatePtr) + d lax 10i 0 value + + d xmlAutomataNewEpsilon... + d pr extproc('xmlAutomataNewEpsilon') + d like(xmlAutomataStatePtr) + d am value like(xmlAutomataPtr) + d from value like(xmlAutomataStatePtr) + d to value like(xmlAutomataStatePtr) + + d xmlAutomataNewCountedTrans... + d pr extproc('xmlAutomataNewCountedTrans') + d like(xmlAutomataStatePtr) + d am value like(xmlAutomataPtr) + d from value like(xmlAutomataStatePtr) + d to value like(xmlAutomataStatePtr) + d counter 10i 0 value + + d xmlAutomataNewCounterTrans... + d pr extproc('xmlAutomataNewCounterTrans') + d like(xmlAutomataStatePtr) + d am value like(xmlAutomataPtr) + d from value like(xmlAutomataStatePtr) + d to value like(xmlAutomataStatePtr) + d counter 10i 0 value + + d xmlAutomataNewCounter... + d pr 10i 0 extproc('xmlAutomataNewCounter') + d am value like(xmlAutomataPtr) + d min 10i 0 value + d max 10i 0 value + + d xmlAutomataCompile... + d pr extproc('xmlAutomataCompile') + d like(xmlRegexpPtr) + d am value like(xmlAutomataPtr) + + d xmlAutomataIsDeterminist... + d pr 10i 0 extproc('xmlAutomataIsDeterminist') + d am value like(xmlAutomataPtr) + + /endif AUTOMATA_ENABLED + /endif LIBXML_REGEXP_ENABLD + /endif XML_AUTOMATA_H__ diff --git a/os400/libxmlrpg/xmlerror.rpgle b/os400/libxmlrpg/xmlerror.rpgle new file mode 100644 index 0000000..b77caad --- /dev/null +++ b/os400/libxmlrpg/xmlerror.rpgle @@ -0,0 +1,1681 @@ + * Summary: error handling + * Description: the API used to report errors + * + * Copy: See Copyright for the status of this software. + * + * Author: Patrick Monnerat <pm@datasphere.ch>, DATASPHERE S.A. + + /include "libxmlrpg/parser" + + /if not defined(XML_ERROR_H__) + /define XML_ERROR_H__ + + * xmlErrorLevel: + * + * Indicates the level of an error + + d xmlErrorLevel s 10i 0 based(######typedef######) enum + d XML_ERR_NONE c 0 + d XML_ERR_WARNING... A simple warning + d c 1 + d XML_ERR_ERROR c 2 A recoverable error + d XML_ERR_FATAL c 3 A fatal error + + * xmlErrorDomain: + * + * Indicates where an error may have come from + + d xmlErrorDomain s 10i 0 based(######typedef######) enum + d XML_FROM_NONE c 0 + d XML_FROM_PARSER... XML parser + d c 1 + d XML_FROM_TREE c 2 Tree module + d XML_FROM_NAMESPACE... XML Namespace module + d c 3 + d XML_FROM_DTD c 4 DTD validation + d XML_FROM_HTML c 5 HTML parser + d XML_FROM_MEMORY... Memory allocator + d c 6 + d XML_FROM_OUTPUT... serialization code + d c 7 + d XML_FROM_IO c 8 Input/Output stack + d XML_FROM_FTP c 9 FTP module + d XML_FROM_HTTP c 10 HTTP module + d XML_FROM_XINCLUDE... XInclude processing + d c 11 + d XML_FROM_XPATH... XPath module + d c 12 + d XML_FROM_XPOINTER... XPointer module + d c 13 + d XML_FROM_REGEXP... Regexp module + d c 14 + d XML_FROM_DATATYPE... W3C XML Schm Dtatype + d c 15 + d XML_FROM_SCHEMASP... W3C XML Schm parser + d c 16 + d XML_FROM_SCHEMASV... W3C XML Schm valid. + d c 17 + d XML_FROM_RELAXNGP... Relax-NG parser + d c 18 + d XML_FROM_RELAXNGV... Relax-NG validator + d c 19 + d XML_FROM_CATALOG... Catalog module + d c 20 + d XML_FROM_C14N c 21 Canonicalization + d XML_FROM_XSLT c 22 Engine from libxslt + d XML_FROM_VALID... DTD valid. w/ ctxt + d c 23 + d XML_FROM_CHECK... Error check module + d c 24 + d XML_FROM_WRITER... xmlwriter module + d c 25 + d XML_FROM_MODULE... Dyn. loaded module + d c 26 + d XML_FROM_I18N c 27 Mod hdlg char conv + d XML_FROM_SCHEMATRONV... Schematron valid + d c 28 + d XML_FROM_BUFFER... Buffers module + d c 29 + d XML_FROM_URI c 30 URI module + + * xmlError: + * + * An XML Error instance. + + d xmlErrorPtr s * based(######typedef######) + + d xmlError ds based(xmlErrorPtr) + d align qualified + d domain 10i 0 Libpart raising err + d code 10i 0 Error code + d message * char * + d level like(xmlErrorLevel) Error severity + d file * File name + d line 10i 0 Line number + d str1 * char * + d str2 * char * + d str3 * char * + d int1 10i 0 Extra number info + d int2 10i 0 Error column + d ctxt * void * + d node * void * + + * xmlParserError: + * + * This is an error that the XML (or HTML) parser can generate + + d xmlParserErrors... + d s 10i 0 based(######typedef######) enum + d XML_ERR_OK c 0 + d XML_ERR_INTERNAL_ERROR... + d c 1 + d XML_ERR_NO_MEMORY... + d c 2 + d XML_ERR_DOCUMENT_START... + d c 3 + d XML_ERR_DOCUMENT_EMPTY... + d c 4 + d XML_ERR_DOCUMENT_END... + d c 5 + d XML_ERR_INVALID_HEX_CHARREF... + d c 6 + d XML_ERR_INVALID_DEC_CHARREF... + d c 7 + d XML_ERR_INVALID_CHARREF... + d c 8 + d XML_ERR_INVALID_CHAR... + d c 9 + d XML_ERR_CHARREF_AT_EOF... + d c 10 + d XML_ERR_CHARREF_IN_PROLOG... + d c 11 + d XML_ERR_CHARREF_IN_EPILOG... + d c 12 + d XML_ERR_CHARREF_IN_DTD... + d c 13 + d XML_ERR_ENTITYREF_AT_EOF... + d c 14 + d XML_ERR_ENTITYREF_IN_PROLOG... + d c 15 + d XML_ERR_ENTITYREF_IN_EPILOG... + d c 16 + d XML_ERR_ENTITYREF_IN_DTD... + d c 17 + d XML_ERR_PEREF_AT_EOF... + d c 18 + d XML_ERR_PEREF_IN_PROLOG... + d c 19 + d XML_ERR_PEREF_IN_EPILOG... + d c 20 + d XML_ERR_PEREF_IN_INT_SUBSET... + d c 21 + d XML_ERR_ENTITYREF_NO_NAME... + d c 22 + d XML_ERR_ENTITYREF_SEMICOL_MISSING... + d c 23 + d XML_ERR_PEREF_NO_NAME... + d c 24 + d XML_ERR_PEREF_SEMICOL_MISSING... + d c 25 + d XML_ERR_UNDECLARED_ENTITY... + d c 26 + d XML_WAR_UNDECLARED_ENTITY... + d c 27 + d XML_ERR_UNPARSED_ENTITY... + d c 28 + d XML_ERR_ENTITY_IS_EXTERNAL... + d c 29 + d XML_ERR_ENTITY_IS_PARAMETER... + d c 30 + d XML_ERR_UNKNOWN_ENCODING... + d c 31 + d XML_ERR_UNSUPPORTED_ENCODING... + d c 32 + d XML_ERR_STRING_NOT_STARTED... + d c 33 + d XML_ERR_STRING_NOT_CLOSED... + d c 34 + d XML_ERR_NS_DECL_ERROR... + d c 35 + d XML_ERR_ENTITY_NOT_STARTED... + d c 36 + d XML_ERR_ENTITY_NOT_FINISHED... + d c 37 + d XML_ERR_LT_IN_ATTRIBUTE... + d c 38 + d XML_ERR_ATTRIBUTE_NOT_STARTED... + d c 39 + d XML_ERR_ATTRIBUTE_NOT_FINISHED... + d c 40 + d XML_ERR_ATTRIBUTE_WITHOUT_VALUE... + d c 41 + d XML_ERR_ATTRIBUTE_REDEFINED... + d c 42 + d XML_ERR_LITERAL_NOT_STARTED... + d c 43 + d XML_ERR_LITERAL_NOT_FINISHED... + d c 44 + d XML_ERR_COMMENT_NOT_FINISHED... + d c 45 + d XML_ERR_PI_NOT_STARTED... + d c 46 + d XML_ERR_PI_NOT_FINISHED... + d c 47 + d XML_ERR_NOTATION_NOT_STARTED... + d c 48 + d XML_ERR_NOTATION_NOT_FINISHED... + d c 49 + d XML_ERR_ATTLIST_NOT_STARTED... + d c 50 + d XML_ERR_ATTLIST_NOT_FINISHED... + d c 51 + d XML_ERR_MIXED_NOT_STARTED... + d c 52 + d XML_ERR_MIXED_NOT_FINISHED... + d c 53 + d XML_ERR_ELEMCONTENT_NOT_STARTED... + d c 54 + d XML_ERR_ELEMCONTENT_NOT_FINISHED... + d c 55 + d XML_ERR_XMLDECL_NOT_STARTED... + d c 56 + d XML_ERR_XMLDECL_NOT_FINISHED... + d c 57 + d XML_ERR_CONDSEC_NOT_STARTED... + d c 58 + d XML_ERR_CONDSEC_NOT_FINISHED... + d c 59 + d XML_ERR_EXT_SUBSET_NOT_FINISHED... + d c 60 + d XML_ERR_DOCTYPE_NOT_FINISHED... + d c 61 + d XML_ERR_MISPLACED_CDATA_END... + d c 62 + d XML_ERR_CDATA_NOT_FINISHED... + d c 63 + d XML_ERR_RESERVED_XML_NAME... + d c 64 + d XML_ERR_SPACE_REQUIRED... + d c 65 + d XML_ERR_SEPARATOR_REQUIRED... + d c 66 + d XML_ERR_NMTOKEN_REQUIRED... + d c 67 + d XML_ERR_NAME_REQUIRED... + d c 68 + d XML_ERR_PCDATA_REQUIRED... + d c 69 + d XML_ERR_URI_REQUIRED... + d c 70 + d XML_ERR_PUBID_REQUIRED... + d c 71 + d XML_ERR_LT_REQUIRED... + d c 72 + d XML_ERR_GT_REQUIRED... + d c 73 + d XML_ERR_LTSLASH_REQUIRED... + d c 74 + d XML_ERR_EQUAL_REQUIRED... + d c 75 + d XML_ERR_TAG_NAME_MISMATCH... + d c 76 + d XML_ERR_TAG_NOT_FINISHED... + d c 77 + d XML_ERR_STANDALONE_VALUE... + d c 78 + d XML_ERR_ENCODING_NAME... + d c 79 + d XML_ERR_HYPHEN_IN_COMMENT... + d c 80 + d XML_ERR_INVALID_ENCODING... + d c 81 + d XML_ERR_EXT_ENTITY_STANDALONE... + d c 82 + d XML_ERR_CONDSEC_INVALID... + d c 83 + d XML_ERR_VALUE_REQUIRED... + d c 84 + d XML_ERR_NOT_WELL_BALANCED... + d c 85 + d XML_ERR_EXTRA_CONTENT... + d c 86 + d XML_ERR_ENTITY_CHAR_ERROR... + d c 87 + d XML_ERR_ENTITY_PE_INTERNAL... + d c 88 + d XML_ERR_ENTITY_LOOP... + d c 89 + d XML_ERR_ENTITY_BOUNDARY... + d c 90 + d XML_ERR_INVALID_URI... + d c 91 + d XML_ERR_URI_FRAGMENT... + d c 92 + d XML_WAR_CATALOG_PI... + d c 93 + d XML_ERR_NO_DTD... + d c 94 + d XML_ERR_CONDSEC_INVALID_KEYWORD... + d c 95 + d XML_ERR_VERSION_MISSING... + d c 96 + d XML_WAR_UNKNOWN_VERSION... + d c 97 + d XML_WAR_LANG_VALUE... + d c 98 + d XML_WAR_NS_URI... + d c 99 + d XML_WAR_NS_URI_RELATIVE... + d c 100 + d XML_ERR_MISSING_ENCODING... + d c 101 + d XML_WAR_SPACE_VALUE... + d c 102 + d XML_ERR_NOT_STANDALONE... + d c 103 + d XML_ERR_ENTITY_PROCESSING... + d c 104 + d XML_ERR_NOTATION_PROCESSING... + d c 105 + d XML_WAR_NS_COLUMN... + d c 106 + d XML_WAR_ENTITY_REDEFINED... + d c 107 + d XML_ERR_UNKNOWN_VERSION... + d c 108 + d XML_ERR_VERSION_MISMATCH... + d c 109 + d XML_ERR_NAME_TOO_LONG... + d c 110 + d XML_ERR_USER_STOP... + d c 111 + d XML_NS_ERR_XML_NAMESPACE... + d c 200 + d XML_NS_ERR_UNDEFINED_NAMESPACE... + d c 201 + d XML_NS_ERR_QNAME... + d c 202 + d XML_NS_ERR_ATTRIBUTE_REDEFINED... + d c 203 + d XML_NS_ERR_EMPTY... + d c 204 + d XML_NS_ERR_COLON... + d c 205 + d XML_DTD_ATTRIBUTE_DEFAULT... + d c 500 + d XML_DTD_ATTRIBUTE_REDEFINED... + d c 501 + d XML_DTD_ATTRIBUTE_VALUE... + d c 502 + d XML_DTD_CONTENT_ERROR... + d c 503 + d XML_DTD_CONTENT_MODEL... + d c 504 + d XML_DTD_CONTENT_NOT_DETERMINIST... + d c 505 + d XML_DTD_DIFFERENT_PREFIX... + d c 506 + d XML_DTD_ELEM_DEFAULT_NAMESPACE... + d c 507 + d XML_DTD_ELEM_NAMESPACE... + d c 508 + d XML_DTD_ELEM_REDEFINED... + d c 509 + d XML_DTD_EMPTY_NOTATION... + d c 510 + d XML_DTD_ENTITY_TYPE... + d c 511 + d XML_DTD_ID_FIXED... + d c 512 + d XML_DTD_ID_REDEFINED... + d c 513 + d XML_DTD_ID_SUBSET... + d c 514 + d XML_DTD_INVALID_CHILD... + d c 515 + d XML_DTD_INVALID_DEFAULT... + d c 516 + d XML_DTD_LOAD_ERROR... + d c 517 + d XML_DTD_MISSING_ATTRIBUTE... + d c 518 + d XML_DTD_MIXED_CORRUPT... + d c 519 + d XML_DTD_MULTIPLE_ID... + d c 520 + d XML_DTD_NO_DOC... + d c 521 + d XML_DTD_NO_DTD... + d c 522 + d XML_DTD_NO_ELEM_NAME... + d c 523 + d XML_DTD_NO_PREFIX... + d c 524 + d XML_DTD_NO_ROOT... + d c 525 + d XML_DTD_NOTATION_REDEFINED... + d c 526 + d XML_DTD_NOTATION_VALUE... + d c 527 + d XML_DTD_NOT_EMPTY... + d c 528 + d XML_DTD_NOT_PCDATA... + d c 529 + d XML_DTD_NOT_STANDALONE... + d c 530 + d XML_DTD_ROOT_NAME... + d c 531 + d XML_DTD_STANDALONE_WHITE_SPACE... + d c 532 + d XML_DTD_UNKNOWN_ATTRIBUTE... + d c 533 + d XML_DTD_UNKNOWN_ELEM... + d c 534 + d XML_DTD_UNKNOWN_ENTITY... + d c 535 + d XML_DTD_UNKNOWN_ID... + d c 536 + d XML_DTD_UNKNOWN_NOTATION... + d c 537 + d XML_DTD_STANDALONE_DEFAULTED... + d c 538 + d XML_DTD_XMLID_VALUE... + d c 539 + d XML_DTD_XMLID_TYPE... + d c 540 + d XML_DTD_DUP_TOKEN... + d c 541 + d XML_HTML_STRUCURE_ERROR... + d c 800 + d XML_HTML_UNKNOWN_TAG... + d c 801 + d XML_RNGP_ANYNAME_ATTR_ANCESTOR... + d c 1000 + d XML_RNGP_ATTR_CONFLICT... + d c 1001 + d XML_RNGP_ATTRIBUTE_CHILDREN... + d c 1002 + d XML_RNGP_ATTRIBUTE_CONTENT... + d c 1003 + d XML_RNGP_ATTRIBUTE_EMPTY... + d c 1004 + d XML_RNGP_ATTRIBUTE_NOOP... + d c 1005 + d XML_RNGP_CHOICE_CONTENT... + d c 1006 + d XML_RNGP_CHOICE_EMPTY... + d c 1007 + d XML_RNGP_CREATE_FAILURE... + d c 1008 + d XML_RNGP_DATA_CONTENT... + d c 1009 + d XML_RNGP_DEF_CHOICE_AND_INTERLEAVE... + d c 1010 + d XML_RNGP_DEFINE_CREATE_FAILED... + d c 1011 + d XML_RNGP_DEFINE_EMPTY... + d c 1012 + d XML_RNGP_DEFINE_MISSING... + d c 1013 + d XML_RNGP_DEFINE_NAME_MISSING... + d c 1014 + d XML_RNGP_ELEM_CONTENT_EMPTY... + d c 1015 + d XML_RNGP_ELEM_CONTENT_ERROR... + d c 1016 + d XML_RNGP_ELEMENT_EMPTY... + d c 1017 + d XML_RNGP_ELEMENT_CONTENT... + d c 1018 + d XML_RNGP_ELEMENT_NAME... + d c 1019 + d XML_RNGP_ELEMENT_NO_CONTENT... + d c 1020 + d XML_RNGP_ELEM_TEXT_CONFLICT... + d c 1021 + d XML_RNGP_EMPTY... + d c 1022 + d XML_RNGP_EMPTY_CONSTRUCT... + d c 1023 + d XML_RNGP_EMPTY_CONTENT... + d c 1024 + d XML_RNGP_EMPTY_NOT_EMPTY... + d c 1025 + d XML_RNGP_ERROR_TYPE_LIB... + d c 1026 + d XML_RNGP_EXCEPT_EMPTY... + d c 1027 + d XML_RNGP_EXCEPT_MISSING... + d c 1028 + d XML_RNGP_EXCEPT_MULTIPLE... + d c 1029 + d XML_RNGP_EXCEPT_NO_CONTENT... + d c 1030 + d XML_RNGP_EXTERNALREF_EMTPY... + d c 1031 + d XML_RNGP_EXTERNAL_REF_FAILURE... + d c 1032 + d XML_RNGP_EXTERNALREF_RECURSE... + d c 1033 + d XML_RNGP_FORBIDDEN_ATTRIBUTE... + d c 1034 + d XML_RNGP_FOREIGN_ELEMENT... + d c 1035 + d XML_RNGP_GRAMMAR_CONTENT... + d c 1036 + d XML_RNGP_GRAMMAR_EMPTY... + d c 1037 + d XML_RNGP_GRAMMAR_MISSING... + d c 1038 + d XML_RNGP_GRAMMAR_NO_START... + d c 1039 + d XML_RNGP_GROUP_ATTR_CONFLICT... + d c 1040 + d XML_RNGP_HREF_ERROR... + d c 1041 + d XML_RNGP_INCLUDE_EMPTY... + d c 1042 + d XML_RNGP_INCLUDE_FAILURE... + d c 1043 + d XML_RNGP_INCLUDE_RECURSE... + d c 1044 + d XML_RNGP_INTERLEAVE_ADD... + d c 1045 + d XML_RNGP_INTERLEAVE_CREATE_FAILED... + d c 1046 + d XML_RNGP_INTERLEAVE_EMPTY... + d c 1047 + d XML_RNGP_INTERLEAVE_NO_CONTENT... + d c 1048 + d XML_RNGP_INVALID_DEFINE_NAME... + d c 1049 + d XML_RNGP_INVALID_URI... + d c 1050 + d XML_RNGP_INVALID_VALUE... + d c 1051 + d XML_RNGP_MISSING_HREF... + d c 1052 + d XML_RNGP_NAME_MISSING... + d c 1053 + d XML_RNGP_NEED_COMBINE... + d c 1054 + d XML_RNGP_NOTALLOWED_NOT_EMPTY... + d c 1055 + d XML_RNGP_NSNAME_ATTR_ANCESTOR... + d c 1056 + d XML_RNGP_NSNAME_NO_NS... + d c 1057 + d XML_RNGP_PARAM_FORBIDDEN... + d c 1058 + d XML_RNGP_PARAM_NAME_MISSING... + d c 1059 + d XML_RNGP_PARENTREF_CREATE_FAILED... + d c 1060 + d XML_RNGP_PARENTREF_NAME_INVALID... + d c 1061 + d XML_RNGP_PARENTREF_NO_NAME... + d c 1062 + d XML_RNGP_PARENTREF_NO_PARENT... + d c 1063 + d XML_RNGP_PARENTREF_NOT_EMPTY... + d c 1064 + d XML_RNGP_PARSE_ERROR... + d c 1065 + d XML_RNGP_PAT_ANYNAME_EXCEPT_ANYNAME... + d c 1066 + d XML_RNGP_PAT_ATTR_ATTR... + d c 1067 + d XML_RNGP_PAT_ATTR_ELEM... + d c 1068 + d XML_RNGP_PAT_DATA_EXCEPT_ATTR... + d c 1069 + d XML_RNGP_PAT_DATA_EXCEPT_ELEM... + d c 1070 + d XML_RNGP_PAT_DATA_EXCEPT_EMPTY... + d c 1071 + d XML_RNGP_PAT_DATA_EXCEPT_GROUP... + d c 1072 + d XML_RNGP_PAT_DATA_EXCEPT_INTERLEAVE... + d c 1073 + d XML_RNGP_PAT_DATA_EXCEPT_LIST... + d c 1074 + d XML_RNGP_PAT_DATA_EXCEPT_ONEMORE... + d c 1075 + d XML_RNGP_PAT_DATA_EXCEPT_REF... + d c 1076 + d XML_RNGP_PAT_DATA_EXCEPT_TEXT... + d c 1077 + d XML_RNGP_PAT_LIST_ATTR... + d c 1078 + d XML_RNGP_PAT_LIST_ELEM... + d c 1079 + d XML_RNGP_PAT_LIST_INTERLEAVE... + d c 1080 + d XML_RNGP_PAT_LIST_LIST... + d c 1081 + d XML_RNGP_PAT_LIST_REF... + d c 1082 + d XML_RNGP_PAT_LIST_TEXT... + d c 1083 + d XML_RNGP_PAT_NSNAME_EXCEPT_ANYNAME... + d c 1084 + d XML_RNGP_PAT_NSNAME_EXCEPT_NSNAME... + d c 1085 + d XML_RNGP_PAT_ONEMORE_GROUP_ATTR... + d c 1086 + d XML_RNGP_PAT_ONEMORE_INTERLEAVE_ATTR... + d c 1087 + d XML_RNGP_PAT_START_ATTR... + d c 1088 + d XML_RNGP_PAT_START_DATA... + d c 1089 + d XML_RNGP_PAT_START_EMPTY... + d c 1090 + d XML_RNGP_PAT_START_GROUP... + d c 1091 + d XML_RNGP_PAT_START_INTERLEAVE... + d c 1092 + d XML_RNGP_PAT_START_LIST... + d c 1093 + d XML_RNGP_PAT_START_ONEMORE... + d c 1094 + d XML_RNGP_PAT_START_TEXT... + d c 1095 + d XML_RNGP_PAT_START_VALUE... + d c 1096 + d XML_RNGP_PREFIX_UNDEFINED... + d c 1097 + d XML_RNGP_REF_CREATE_FAILED... + d c 1098 + d XML_RNGP_REF_CYCLE... + d c 1099 + d XML_RNGP_REF_NAME_INVALID... + d c 1100 + d XML_RNGP_REF_NO_DEF... + d c 1101 + d XML_RNGP_REF_NO_NAME... + d c 1102 + d XML_RNGP_REF_NOT_EMPTY... + d c 1103 + d XML_RNGP_START_CHOICE_AND_INTERLEAVE... + d c 1104 + d XML_RNGP_START_CONTENT... + d c 1105 + d XML_RNGP_START_EMPTY... + d c 1106 + d XML_RNGP_START_MISSING... + d c 1107 + d XML_RNGP_TEXT_EXPECTED... + d c 1108 + d XML_RNGP_TEXT_HAS_CHILD... + d c 1109 + d XML_RNGP_TYPE_MISSING... + d c 1110 + d XML_RNGP_TYPE_NOT_FOUND... + d c 1111 + d XML_RNGP_TYPE_VALUE... + d c 1112 + d XML_RNGP_UNKNOWN_ATTRIBUTE... + d c 1113 + d XML_RNGP_UNKNOWN_COMBINE... + d c 1114 + d XML_RNGP_UNKNOWN_CONSTRUCT... + d c 1115 + d XML_RNGP_UNKNOWN_TYPE_LIB... + d c 1116 + d XML_RNGP_URI_FRAGMENT... + d c 1117 + d XML_RNGP_URI_NOT_ABSOLUTE... + d c 1118 + d XML_RNGP_VALUE_EMPTY... + d c 1119 + d XML_RNGP_VALUE_NO_CONTENT... + d c 1120 + d XML_RNGP_XMLNS_NAME... + d c 1121 + d XML_RNGP_XML_NS... + d c 1122 + d XML_XPATH_EXPRESSION_OK... + d c 1200 + d XML_XPATH_NUMBER_ERROR... + d c 1201 + d XML_XPATH_UNFINISHED_LITERAL_ERROR... + d c 1202 + d XML_XPATH_START_LITERAL_ERROR... + d c 1203 + d XML_XPATH_VARIABLE_REF_ERROR... + d c 1204 + d XML_XPATH_UNDEF_VARIABLE_ERROR... + d c 1205 + d XML_XPATH_INVALID_PREDICATE_ERROR... + d c 1206 + d XML_XPATH_EXPR_ERROR... + d c 1207 + d XML_XPATH_UNCLOSED_ERROR... + d c 1208 + d XML_XPATH_UNKNOWN_FUNC_ERROR... + d c 1209 + d XML_XPATH_INVALID_OPERAND... + d c 1210 + d XML_XPATH_INVALID_TYPE... + d c 1211 + d XML_XPATH_INVALID_ARITY... + d c 1212 + d XML_XPATH_INVALID_CTXT_SIZE... + d c 1213 + d XML_XPATH_INVALID_CTXT_POSITION... + d c 1214 + d XML_XPATH_MEMORY_ERROR... + d c 1215 + d XML_XPTR_SYNTAX_ERROR... + d c 1216 + d XML_XPTR_RESOURCE_ERROR... + d c 1217 + d XML_XPTR_SUB_RESOURCE_ERROR... + d c 1218 + d XML_XPATH_UNDEF_PREFIX_ERROR... + d c 1219 + d XML_XPATH_ENCODING_ERROR... + d c 1220 + d XML_XPATH_INVALID_CHAR_ERROR... + d c 1231 + d XML_TREE_INVALID_HEX... + d c 1300 + d XML_TREE_INVALID_DEC... + d c 1301 + d XML_TREE_UNTERMINATED_ENTITY... + d c 1302 + d XML_TREE_NOT_UTF8... + d c 1303 + d XML_SAVE_NOT_UTF8... + d c 1400 + d XML_SAVE_CHAR_INVALID... + d c 1401 + d XML_SAVE_NO_DOCTYPE... + d c 1402 + d XML_SAVE_UNKNOWN_ENCODING... + d c 1403 + d XML_REGEXP_COMPILE_ERROR... + d c 1403 + d XML_IO_UNKNOWN... + d c 1500 + d XML_IO_EACCES c 1501 + d XML_IO_EAGAIN c 1502 + d XML_IO_EBADF c 1503 + d XML_IO_EBADMSG... + d c 1504 + d XML_IO_EBUSY c 1505 + d XML_IO_ECANCELED... + d c 1506 + d XML_IO_ECHILD c 1507 + d XML_IO_EDEADLK... + d c 1508 + d XML_IO_EDOM c 1509 + d XML_IO_EEXIST c 1510 + d XML_IO_EFAULT c 1511 + d XML_IO_EFBIG c 1512 + d XML_IO_EINPROGRESS... + d c 1513 + d XML_IO_EINTR c 1514 + d XML_IO_EINVAL c 1515 + d XML_IO_EIO c 1516 + d XML_IO_EISDIR c 1517 + d XML_IO_EMFILE c 1518 + d XML_IO_EMLINK c 1519 + d XML_IO_EMSGSIZE... + d c 1520 + d XML_IO_ENAMETOOLONG... + d c 1521 + d XML_IO_ENFILE c 1522 + d XML_IO_ENODEV c 1523 + d XML_IO_ENOENT c 1524 + d XML_IO_ENOEXEC... + d c 1525 + d XML_IO_ENOLCK c 1526 + d XML_IO_ENOMEM c 1527 + d XML_IO_ENOSPC c 1528 + d XML_IO_ENOSYS c 1529 + d XML_IO_ENOTDIR... + d c 1530 + d XML_IO_ENOTEMPTY... + d c 1531 + d XML_IO_ENOTSUP... + d c 1532 + d XML_IO_ENOTTY c 1533 + d XML_IO_ENXIO c 1534 + d XML_IO_EPERM c 1535 + d XML_IO_EPIPE c 1536 + d XML_IO_ERANGE c 1537 + d XML_IO_EROFS c 1538 + d XML_IO_ESPIPE c 1539 + d XML_IO_ESRCH c 1540 + d XML_IO_ETIMEDOUT... + d c 1541 + d XML_IO_EXDEV c 1542 + d XML_IO_NETWORK_ATTEMPT... + d c 1543 + d XML_IO_ENCODER... + d c 1544 + d XML_IO_FLUSH c 1545 + d XML_IO_WRITE c 1546 + d XML_IO_NO_INPUT... + d c 1547 + d XML_IO_BUFFER_FULL... + d c 1548 + d XML_IO_LOAD_ERROR... + d c 1549 + d XML_IO_ENOTSOCK... + d c 1550 + d XML_IO_EISCONN... + d c 1551 + d XML_IO_ECONNREFUSED... + d c 1552 + d XML_IO_ENETUNREACH... + d c 1553 + d XML_IO_EADDRINUSE... + d c 1554 + d XML_IO_EALREADY... + d c 1555 + d XML_IO_EAFNOSUPPORT... + d c 1556 + d XML_XINCLUDE_RECURSION... + d c 1600 + d XML_XINCLUDE_PARSE_VALUE... + d c 1601 + d XML_XINCLUDE_ENTITY_DEF_MISMATCH... + d c 1602 + d XML_XINCLUDE_NO_HREF... + d c 1603 + d XML_XINCLUDE_NO_FALLBACK... + d c 1604 + d XML_XINCLUDE_HREF_URI... + d c 1605 + d XML_XINCLUDE_TEXT_FRAGMENT... + d c 1606 + d XML_XINCLUDE_TEXT_DOCUMENT... + d c 1607 + d XML_XINCLUDE_INVALID_CHAR... + d c 1608 + d XML_XINCLUDE_BUILD_FAILED... + d c 1609 + d XML_XINCLUDE_UNKNOWN_ENCODING... + d c 1610 + d XML_XINCLUDE_MULTIPLE_ROOT... + d c 1611 + d XML_XINCLUDE_XPTR_FAILED... + d c 1612 + d XML_XINCLUDE_XPTR_RESULT... + d c 1613 + d XML_XINCLUDE_INCLUDE_IN_INCLUDE... + d c 1614 + d XML_XINCLUDE_FALLBACKS_IN_INCLUDE... + d c 1615 + d XML_XINCLUDE_FALLBACK_NOT_IN_INCLUDE... + d c 1616 + d XML_XINCLUDE_DEPRECATED_NS... + d c 1617 + d XML_XINCLUDE_FRAGMENT_ID... + d c 1618 + d XML_CATALOG_MISSING_ATTR... + d c 1650 + d XML_CATALOG_ENTRY_BROKEN... + d c 1651 + d XML_CATALOG_PREFER_VALUE... + d c 1652 + d XML_CATALOG_NOT_CATALOG... + d c 1653 + d XML_CATALOG_RECURSION... + d c 1654 + d XML_SCHEMAP_PREFIX_UNDEFINED... + d c 1700 + d XML_SCHEMAP_ATTRFORMDEFAULT_VALUE... + d c 1701 + d XML_SCHEMAP_ATTRGRP_NONAME_NOREF... + d c 1702 + d XML_SCHEMAP_ATTR_NONAME_NOREF... + d c 1703 + d XML_SCHEMAP_COMPLEXTYPE_NONAME_NOREF... + d c 1704 + d XML_SCHEMAP_ELEMFORMDEFAULT_VALUE... + d c 1705 + d XML_SCHEMAP_ELEM_NONAME_NOREF... + d c 1706 + d XML_SCHEMAP_EXTENSION_NO_BASE... + d c 1707 + d XML_SCHEMAP_FACET_NO_VALUE... + d c 1708 + d XML_SCHEMAP_FAILED_BUILD_IMPORT... + d c 1709 + d XML_SCHEMAP_GROUP_NONAME_NOREF... + d c 1710 + d XML_SCHEMAP_IMPORT_NAMESPACE_NOT_URI... + d c 1711 + d XML_SCHEMAP_IMPORT_REDEFINE_NSNAME... + d c 1712 + d XML_SCHEMAP_IMPORT_SCHEMA_NOT_URI... + d c 1713 + d XML_SCHEMAP_INVALID_BOOLEAN... + d c 1714 + d XML_SCHEMAP_INVALID_ENUM... + d c 1715 + d XML_SCHEMAP_INVALID_FACET... + d c 1716 + d XML_SCHEMAP_INVALID_FACET_VALUE... + d c 1717 + d XML_SCHEMAP_INVALID_MAXOCCURS... + d c 1718 + d XML_SCHEMAP_INVALID_MINOCCURS... + d c 1719 + d XML_SCHEMAP_INVALID_REF_AND_SUBTYPE... + d c 1720 + d XML_SCHEMAP_INVALID_WHITE_SPACE... + d c 1721 + d XML_SCHEMAP_NOATTR_NOREF... + d c 1722 + d XML_SCHEMAP_NOTATION_NO_NAME... + d c 1723 + d XML_SCHEMAP_NOTYPE_NOREF... + d c 1724 + d XML_SCHEMAP_REF_AND_SUBTYPE... + d c 1725 + d XML_SCHEMAP_RESTRICTION_NONAME_NOREF... + d c 1726 + d XML_SCHEMAP_SIMPLETYPE_NONAME... + d c 1727 + d XML_SCHEMAP_TYPE_AND_SUBTYPE... + d c 1728 + d XML_SCHEMAP_UNKNOWN_ALL_CHILD... + d c 1729 + d XML_SCHEMAP_UNKNOWN_ANYATTRIBUTE_CHILD... + d c 1730 + d XML_SCHEMAP_UNKNOWN_ATTR_CHILD... + d c 1731 + d XML_SCHEMAP_UNKNOWN_ATTRGRP_CHILD... + d c 1732 + d XML_SCHEMAP_UNKNOWN_ATTRIBUTE_GROUP... + d c 1733 + d XML_SCHEMAP_UNKNOWN_BASE_TYPE... + d c 1734 + d XML_SCHEMAP_UNKNOWN_CHOICE_CHILD... + d c 1735 + d XML_SCHEMAP_UNKNOWN_COMPLEXCONTENT_CHILD... + d c 1736 + d XML_SCHEMAP_UNKNOWN_COMPLEXTYPE_CHILD... + d c 1737 + d XML_SCHEMAP_UNKNOWN_ELEM_CHILD... + d c 1738 + d XML_SCHEMAP_UNKNOWN_EXTENSION_CHILD... + d c 1739 + d XML_SCHEMAP_UNKNOWN_FACET_CHILD... + d c 1740 + d XML_SCHEMAP_UNKNOWN_FACET_TYPE... + d c 1741 + d XML_SCHEMAP_UNKNOWN_GROUP_CHILD... + d c 1742 + d XML_SCHEMAP_UNKNOWN_IMPORT_CHILD... + d c 1743 + d XML_SCHEMAP_UNKNOWN_LIST_CHILD... + d c 1744 + d XML_SCHEMAP_UNKNOWN_NOTATION_CHILD... + d c 1745 + d XML_SCHEMAP_UNKNOWN_PROCESSCONTENT_CHILD... + d c 1746 + d XML_SCHEMAP_UNKNOWN_REF... + d c 1747 + d XML_SCHEMAP_UNKNOWN_RESTRICTION_CHILD... + d c 1748 + d XML_SCHEMAP_UNKNOWN_SCHEMAS_CHILD... + d c 1749 + d XML_SCHEMAP_UNKNOWN_SEQUENCE_CHILD... + d c 1750 + d XML_SCHEMAP_UNKNOWN_SIMPLECONTENT_CHILD... + d c 1751 + d XML_SCHEMAP_UNKNOWN_SIMPLETYPE_CHILD... + d c 1752 + d XML_SCHEMAP_UNKNOWN_TYPE... + d c 1753 + d XML_SCHEMAP_UNKNOWN_UNION_CHILD... + d c 1754 + d XML_SCHEMAP_ELEM_DEFAULT_FIXED... + d c 1755 + d XML_SCHEMAP_REGEXP_INVALID... + d c 1756 + d XML_SCHEMAP_FAILED_LOAD... + d c 1757 + d XML_SCHEMAP_NOTHING_TO_PARSE... + d c 1758 + d XML_SCHEMAP_NOROOT... + d c 1759 + d XML_SCHEMAP_REDEFINED_GROUP... + d c 1760 + d XML_SCHEMAP_REDEFINED_TYPE... + d c 1761 + d XML_SCHEMAP_REDEFINED_ELEMENT... + d c 1762 + d XML_SCHEMAP_REDEFINED_ATTRGROUP... + d c 1763 + d XML_SCHEMAP_REDEFINED_ATTR... + d c 1764 + d XML_SCHEMAP_REDEFINED_NOTATION... + d c 1765 + d XML_SCHEMAP_FAILED_PARSE... + d c 1766 + d XML_SCHEMAP_UNKNOWN_PREFIX... + d c 1767 + d XML_SCHEMAP_DEF_AND_PREFIX... + d c 1768 + d XML_SCHEMAP_UNKNOWN_INCLUDE_CHILD... + d c 1769 + d XML_SCHEMAP_INCLUDE_SCHEMA_NOT_URI... + d c 1770 + d XML_SCHEMAP_INCLUDE_SCHEMA_NO_URI... + d c 1771 + d XML_SCHEMAP_NOT_SCHEMA... + d c 1772 + d XML_SCHEMAP_UNKNOWN_MEMBER_TYPE... + d c 1773 + d XML_SCHEMAP_INVALID_ATTR_USE... + d c 1774 + d XML_SCHEMAP_RECURSIVE... + d c 1775 + d XML_SCHEMAP_SUPERNUMEROUS_LIST_ITEM_TYPE... + d c 1776 + d XML_SCHEMAP_INVALID_ATTR_COMBINATION... + d c 1777 + d XML_SCHEMAP_INVALID_ATTR_INLINE_COMBINATION... + d c 1778 + d XML_SCHEMAP_MISSING_SIMPLETYPE_CHILD... + d c 1779 + d XML_SCHEMAP_INVALID_ATTR_NAME... + d c 1780 + d XML_SCHEMAP_REF_AND_CONTENT... + d c 1781 + d XML_SCHEMAP_CT_PROPS_CORRECT_1... + d c 1782 + d XML_SCHEMAP_CT_PROPS_CORRECT_2... + d c 1783 + d XML_SCHEMAP_CT_PROPS_CORRECT_3... + d c 1784 + d XML_SCHEMAP_CT_PROPS_CORRECT_4... + d c 1785 + d XML_SCHEMAP_CT_PROPS_CORRECT_5... + d c 1786 + d XML_SCHEMAP_DERIVATION_OK_RESTRICTION_1... + d c 1787 + d XML_SCHEMAP_DERIVATION_OK_RESTRICTION_2_1_1... + d c 1788 + d XML_SCHEMAP_DERIVATION_OK_RESTRICTION_2_1_2... + d c 1789 + d XML_SCHEMAP_DERIVATION_OK_RESTRICTION_2_2... + d c 1790 + d XML_SCHEMAP_DERIVATION_OK_RESTRICTION_3... + d c 1791 + d XML_SCHEMAP_WILDCARD_INVALID_NS_MEMBER... + d c 1792 + d XML_SCHEMAP_INTERSECTION_NOT_EXPRESSIBLE... + d c 1793 + d XML_SCHEMAP_UNION_NOT_EXPRESSIBLE... + d c 1794 + d XML_SCHEMAP_SRC_IMPORT_3_1... + d c 1795 + d XML_SCHEMAP_SRC_IMPORT_3_2... + d c 1796 + d XML_SCHEMAP_DERIVATION_OK_RESTRICTION_4_1... + d c 1797 + d XML_SCHEMAP_DERIVATION_OK_RESTRICTION_4_2... + d c 1798 + d XML_SCHEMAP_DERIVATION_OK_RESTRICTION_4_3... + d c 1799 + d XML_SCHEMAP_COS_CT_EXTENDS_1_3... + d c 1800 + d XML_SCHEMAV_NOROOT... + d c 1801 + d XML_SCHEMAV_UNDECLAREDELEM... + d c 1802 + d XML_SCHEMAV_NOTTOPLEVEL... + d c 1803 + d XML_SCHEMAV_MISSING... + d c 1804 + d XML_SCHEMAV_WRONGELEM... + d c 1805 + d XML_SCHEMAV_NOTYPE... + d c 1806 + d XML_SCHEMAV_NOROLLBACK... + d c 1807 + d XML_SCHEMAV_ISABSTRACT... + d c 1808 + d XML_SCHEMAV_NOTEMPTY... + d c 1809 + d XML_SCHEMAV_ELEMCONT... + d c 1810 + d XML_SCHEMAV_HAVEDEFAULT... + d c 1811 + d XML_SCHEMAV_NOTNILLABLE... + d c 1812 + d XML_SCHEMAV_EXTRACONTENT... + d c 1813 + d XML_SCHEMAV_INVALIDATTR... + d c 1814 + d XML_SCHEMAV_INVALIDELEM... + d c 1815 + d XML_SCHEMAV_NOTDETERMINIST... + d c 1816 + d XML_SCHEMAV_CONSTRUCT... + d c 1817 + d XML_SCHEMAV_INTERNAL... + d c 1818 + d XML_SCHEMAV_NOTSIMPLE... + d c 1819 + d XML_SCHEMAV_ATTRUNKNOWN... + d c 1820 + d XML_SCHEMAV_ATTRINVALID... + d c 1821 + d XML_SCHEMAV_VALUE... + d c 1822 + d XML_SCHEMAV_FACET... + d c 1823 + d XML_SCHEMAV_CVC_DATATYPE_VALID_1_2_1... + d c 1824 + d XML_SCHEMAV_CVC_DATATYPE_VALID_1_2_2... + d c 1825 + d XML_SCHEMAV_CVC_DATATYPE_VALID_1_2_3... + d c 1826 + d XML_SCHEMAV_CVC_TYPE_3_1_1... + d c 1827 + d XML_SCHEMAV_CVC_TYPE_3_1_2... + d c 1828 + d XML_SCHEMAV_CVC_FACET_VALID... + d c 1829 + d XML_SCHEMAV_CVC_LENGTH_VALID... + d c 1830 + d XML_SCHEMAV_CVC_MINLENGTH_VALID... + d c 1831 + d XML_SCHEMAV_CVC_MAXLENGTH_VALID... + d c 1832 + d XML_SCHEMAV_CVC_MININCLUSIVE_VALID... + d c 1833 + d XML_SCHEMAV_CVC_MAXINCLUSIVE_VALID... + d c 1834 + d XML_SCHEMAV_CVC_MINEXCLUSIVE_VALID... + d c 1835 + d XML_SCHEMAV_CVC_MAXEXCLUSIVE_VALID... + d c 1836 + d XML_SCHEMAV_CVC_TOTALDIGITS_VALID... + d c 1837 + d XML_SCHEMAV_CVC_FRACTIONDIGITS_VALID... + d c 1838 + d XML_SCHEMAV_CVC_PATTERN_VALID... + d c 1839 + d XML_SCHEMAV_CVC_ENUMERATION_VALID... + d c 1840 + d XML_SCHEMAV_CVC_COMPLEX_TYPE_2_1... + d c 1841 + d XML_SCHEMAV_CVC_COMPLEX_TYPE_2_2... + d c 1842 + d XML_SCHEMAV_CVC_COMPLEX_TYPE_2_3... + d c 1843 + d XML_SCHEMAV_CVC_COMPLEX_TYPE_2_4... + d c 1844 + d XML_SCHEMAV_CVC_ELT_1... + d c 1845 + d XML_SCHEMAV_CVC_ELT_2... + d c 1846 + d XML_SCHEMAV_CVC_ELT_3_1... + d c 1847 + d XML_SCHEMAV_CVC_ELT_3_2_1... + d c 1848 + d XML_SCHEMAV_CVC_ELT_3_2_2... + d c 1849 + d XML_SCHEMAV_CVC_ELT_4_1... + d c 1850 + d XML_SCHEMAV_CVC_ELT_4_2... + d c 1851 + d XML_SCHEMAV_CVC_ELT_4_3... + d c 1852 + d XML_SCHEMAV_CVC_ELT_5_1_1... + d c 1853 + d XML_SCHEMAV_CVC_ELT_5_1_2... + d c 1854 + d XML_SCHEMAV_CVC_ELT_5_2_1... + d c 1855 + d XML_SCHEMAV_CVC_ELT_5_2_2_1... + d c 1856 + d XML_SCHEMAV_CVC_ELT_5_2_2_2_1... + d c 1857 + d XML_SCHEMAV_CVC_ELT_5_2_2_2_2... + d c 1858 + d XML_SCHEMAV_CVC_ELT_6... + d c 1859 + d XML_SCHEMAV_CVC_ELT_7... + d c 1860 + d XML_SCHEMAV_CVC_ATTRIBUTE_1... + d c 1861 + d XML_SCHEMAV_CVC_ATTRIBUTE_2... + d c 1862 + d XML_SCHEMAV_CVC_ATTRIBUTE_3... + d c 1863 + d XML_SCHEMAV_CVC_ATTRIBUTE_4... + d c 1864 + d XML_SCHEMAV_CVC_COMPLEX_TYPE_3_1... + d c 1865 + d XML_SCHEMAV_CVC_COMPLEX_TYPE_3_2_1... + d c 1866 + d XML_SCHEMAV_CVC_COMPLEX_TYPE_3_2_2... + d c 1867 + d XML_SCHEMAV_CVC_COMPLEX_TYPE_4... + d c 1868 + d XML_SCHEMAV_CVC_COMPLEX_TYPE_5_1... + d c 1869 + d XML_SCHEMAV_CVC_COMPLEX_TYPE_5_2... + d c 1870 + d XML_SCHEMAV_ELEMENT_CONTENT... + d c 1871 + d XML_SCHEMAV_DOCUMENT_ELEMENT_MISSING... + d c 1872 + d XML_SCHEMAV_CVC_COMPLEX_TYPE_1... + d c 1873 + d XML_SCHEMAV_CVC_AU... + d c 1874 + d XML_SCHEMAV_CVC_TYPE_1... + d c 1875 + d XML_SCHEMAV_CVC_TYPE_2... + d c 1876 + d XML_SCHEMAV_CVC_IDC... + d c 1877 + d XML_SCHEMAV_CVC_WILDCARD... + d c 1878 + d XML_SCHEMAV_MISC... + d c 1879 + d XML_XPTR_UNKNOWN_SCHEME... + d c 1900 + d XML_XPTR_CHILDSEQ_START... + d c 1901 + d XML_XPTR_EVAL_FAILED... + d c 1902 + d XML_XPTR_EXTRA_OBJECTS... + d c 1903 + d XML_C14N_CREATE_CTXT... + d c 1950 + d XML_C14N_REQUIRES_UTF8... + d c 1951 + d XML_C14N_CREATE_STACK... + d c 1952 + d XML_C14N_INVALID_NODE... + d c 1953 + d XML_C14N_UNKNOW_NODE... + d c 1954 + d XML_C14N_RELATIVE_NAMESPACE... + d c 1955 + d XML_FTP_PASV_ANSWER... + d c 2000 + d XML_FTP_EPSV_ANSWER... + d c 2001 + d XML_FTP_ACCNT... + d c 2002 + d XML_FTP_URL_SYNTAX... + d c 2003 + d XML_HTTP_URL_SYNTAX... + d c 2020 + d XML_HTTP_USE_IP... + d c 2021 + d XML_HTTP_UNKNOWN_HOST... + d c 2022 + d XML_SCHEMAP_SRC_SIMPLE_TYPE_1... + d c 3000 + d XML_SCHEMAP_SRC_SIMPLE_TYPE_2... + d c 3001 + d XML_SCHEMAP_SRC_SIMPLE_TYPE_3... + d c 3002 + d XML_SCHEMAP_SRC_SIMPLE_TYPE_4... + d c 3003 + d XML_SCHEMAP_SRC_RESOLVE... + d c 3004 + d XML_SCHEMAP_SRC_RESTRICTION_BASE_OR_SIMPLETYPE... + d c 3005 + d XML_SCHEMAP_SRC_LIST_ITEMTYPE_OR_SIMPLETYPE... + d c 3006 + d XML_SCHEMAP_SRC_UNION_MEMBERTYPES_OR_SIMPLETYPES... + d c 3007 + d XML_SCHEMAP_ST_PROPS_CORRECT_1... + d c 3008 + d XML_SCHEMAP_ST_PROPS_CORRECT_2... + d c 3009 + d XML_SCHEMAP_ST_PROPS_CORRECT_3... + d c 3010 + d XML_SCHEMAP_COS_ST_RESTRICTS_1_1... + d c 3011 + d XML_SCHEMAP_COS_ST_RESTRICTS_1_2... + d c 3012 + d XML_SCHEMAP_COS_ST_RESTRICTS_1_3_1... + d c 3013 + d XML_SCHEMAP_COS_ST_RESTRICTS_1_3_2... + d c 3014 + d XML_SCHEMAP_COS_ST_RESTRICTS_2_1... + d c 3015 + d XML_SCHEMAP_COS_ST_RESTRICTS_2_3_1_1... + d c 3016 + d XML_SCHEMAP_COS_ST_RESTRICTS_2_3_1_2... + d c 3017 + d XML_SCHEMAP_COS_ST_RESTRICTS_2_3_2_1... + d c 3018 + d XML_SCHEMAP_COS_ST_RESTRICTS_2_3_2_2... + d c 3019 + d XML_SCHEMAP_COS_ST_RESTRICTS_2_3_2_3... + d c 3020 + d XML_SCHEMAP_COS_ST_RESTRICTS_2_3_2_4... + d c 3021 + d XML_SCHEMAP_COS_ST_RESTRICTS_2_3_2_5... + d c 3022 + d XML_SCHEMAP_COS_ST_RESTRICTS_3_1... + d c 3023 + d XML_SCHEMAP_COS_ST_RESTRICTS_3_3_1... + d c 3024 + d XML_SCHEMAP_COS_ST_RESTRICTS_3_3_1_2... + d c 3025 + d XML_SCHEMAP_COS_ST_RESTRICTS_3_3_2_2... + d c 3026 + d XML_SCHEMAP_COS_ST_RESTRICTS_3_3_2_1... + d c 3027 + d XML_SCHEMAP_COS_ST_RESTRICTS_3_3_2_3... + d c 3028 + d XML_SCHEMAP_COS_ST_RESTRICTS_3_3_2_4... + d c 3029 + d XML_SCHEMAP_COS_ST_RESTRICTS_3_3_2_5... + d c 3030 + d XML_SCHEMAP_COS_ST_DERIVED_OK_2_1... + d c 3031 + d XML_SCHEMAP_COS_ST_DERIVED_OK_2_2... + d c 3032 + d XML_SCHEMAP_S4S_ELEM_NOT_ALLOWED... + d c 3033 + d XML_SCHEMAP_S4S_ELEM_MISSING... + d c 3034 + d XML_SCHEMAP_S4S_ATTR_NOT_ALLOWED... + d c 3035 + d XML_SCHEMAP_S4S_ATTR_MISSING... + d c 3036 + d XML_SCHEMAP_S4S_ATTR_INVALID_VALUE... + d c 3037 + d XML_SCHEMAP_SRC_ELEMENT_1... + d c 3038 + d XML_SCHEMAP_SRC_ELEMENT_2_1... + d c 3039 + d XML_SCHEMAP_SRC_ELEMENT_2_2... + d c 3040 + d XML_SCHEMAP_SRC_ELEMENT_3... + d c 3041 + d XML_SCHEMAP_P_PROPS_CORRECT_1... + d c 3042 + d XML_SCHEMAP_P_PROPS_CORRECT_2_1... + d c 3043 + d XML_SCHEMAP_P_PROPS_CORRECT_2_2... + d c 3044 + d XML_SCHEMAP_E_PROPS_CORRECT_2... + d c 3045 + d XML_SCHEMAP_E_PROPS_CORRECT_3... + d c 3046 + d XML_SCHEMAP_E_PROPS_CORRECT_4... + d c 3047 + d XML_SCHEMAP_E_PROPS_CORRECT_5... + d c 3048 + d XML_SCHEMAP_E_PROPS_CORRECT_6... + d c 3049 + d XML_SCHEMAP_SRC_INCLUDE... + d c 3050 + d XML_SCHEMAP_SRC_ATTRIBUTE_1... + d c 3051 + d XML_SCHEMAP_SRC_ATTRIBUTE_2... + d c 3052 + d XML_SCHEMAP_SRC_ATTRIBUTE_3_1... + d c 3053 + d XML_SCHEMAP_SRC_ATTRIBUTE_3_2... + d c 3054 + d XML_SCHEMAP_SRC_ATTRIBUTE_4... + d c 3055 + d XML_SCHEMAP_NO_XMLNS... + d c 3056 + d XML_SCHEMAP_NO_XSI... + d c 3057 + d XML_SCHEMAP_COS_VALID_DEFAULT_1... + d c 3058 + d XML_SCHEMAP_COS_VALID_DEFAULT_2_1... + d c 3059 + d XML_SCHEMAP_COS_VALID_DEFAULT_2_2_1... + d c 3060 + d XML_SCHEMAP_COS_VALID_DEFAULT_2_2_2... + d c 3061 + d XML_SCHEMAP_CVC_SIMPLE_TYPE... + d c 3062 + d XML_SCHEMAP_COS_CT_EXTENDS_1_1... + d c 3063 + d XML_SCHEMAP_SRC_IMPORT_1_1... + d c 3064 + d XML_SCHEMAP_SRC_IMPORT_1_2... + d c 3065 + d XML_SCHEMAP_SRC_IMPORT_2... + d c 3066 + d XML_SCHEMAP_SRC_IMPORT_2_1... + d c 3067 + d XML_SCHEMAP_SRC_IMPORT_2_2... + d c 3068 + d XML_SCHEMAP_INTERNAL... Non W3C + d c 3069 + d XML_SCHEMAP_NOT_DETERMINISTIC... + d c 3070 + d XML_SCHEMAP_SRC_ATTRIBUTE_GROUP_1... + d c 3071 + d XML_SCHEMAP_SRC_ATTRIBUTE_GROUP_2... + d c 3072 + d XML_SCHEMAP_SRC_ATTRIBUTE_GROUP_3... + d c 3073 + d XML_SCHEMAP_MG_PROPS_CORRECT_1... + d c 3074 + d XML_SCHEMAP_MG_PROPS_CORRECT_2... + d c 3075 + d XML_SCHEMAP_SRC_CT_1... + d c 3076 + d XML_SCHEMAP_DERIVATION_OK_RESTRICTION_2_1_3... + d c 3077 + d XML_SCHEMAP_AU_PROPS_CORRECT_2... + d c 3078 + d XML_SCHEMAP_A_PROPS_CORRECT_2... + d c 3079 + d XML_SCHEMAP_C_PROPS_CORRECT... + d c 3080 + d XML_SCHEMAP_SRC_REDEFINE... + d c 3081 + d XML_SCHEMAP_SRC_IMPORT... + d c 3082 + d XML_SCHEMAP_WARN_SKIP_SCHEMA... + d c 3083 + d XML_SCHEMAP_WARN_UNLOCATED_SCHEMA... + d c 3084 + d XML_SCHEMAP_WARN_ATTR_REDECL_PROH... + d c 3085 + d XML_SCHEMAP_WARN_ATTR_POINTLESS_PROH... + d c 3086 + d XML_SCHEMAP_AG_PROPS_CORRECT... + d c 3087 + d XML_SCHEMAP_COS_CT_EXTENDS_1_2... + d c 3088 + d XML_SCHEMAP_AU_PROPS_CORRECT... + d c 3089 + d XML_SCHEMAP_A_PROPS_CORRECT_3... + d c 3090 + d XML_SCHEMAP_COS_ALL_LIMITED... + d c 3091 + d XML_SCHEMATRONV_ASSERT... + d c 4000 + d XML_SCHEMATRONV_REPORT... + d c 4001 + d XML_MODULE_OPEN... + d c 4900 + d XML_MODULE_CLOSE... + d c 4901 + d XML_CHECK_FOUND_ELEMENT... + d c 5000 + d XML_CHECK_FOUND_ATTRIBUTE... + d c 5001 + d XML_CHECK_FOUND_TEXT... + d c 5002 + d XML_CHECK_FOUND_CDATA... + d c 5003 + d XML_CHECK_FOUND_ENTITYREF... + d c 5004 + d XML_CHECK_FOUND_ENTITY... + d c 5005 + d XML_CHECK_FOUND_PI... + d c 5006 + d XML_CHECK_FOUND_COMMENT... + d c 5007 + d XML_CHECK_FOUND_DOCTYPE... + d c 5008 + d XML_CHECK_FOUND_FRAGMENT... + d c 5009 + d XML_CHECK_FOUND_NOTATION... + d c 5010 + d XML_CHECK_UNKNOWN_NODE... + d c 5011 + d XML_CHECK_ENTITY_TYPE... + d c 5012 + d XML_CHECK_NO_PARENT... + d c 5013 + d XML_CHECK_NO_DOC... + d c 5014 + d XML_CHECK_NO_NAME... + d c 5015 + d XML_CHECK_NO_ELEM... + d c 5016 + d XML_CHECK_WRONG_DOC... + d c 5017 + d XML_CHECK_NO_PREV... + d c 5018 + d XML_CHECK_WRONG_PREV... + d c 5019 + d XML_CHECK_NO_NEXT... + d c 5020 + d XML_CHECK_WRONG_NEXT... + d c 5021 + d XML_CHECK_NOT_DTD... + d c 5022 + d XML_CHECK_NOT_ATTR... + d c 5023 + d XML_CHECK_NOT_ATTR_DECL... + d c 5024 + d XML_CHECK_NOT_ELEM_DECL... + d c 5025 + d XML_CHECK_NOT_ENTITY_DECL... + d c 5026 + d XML_CHECK_NOT_NS_DECL... + d c 5027 + d XML_CHECK_NO_HREF... + d c 5028 + d XML_CHECK_WRONG_PARENT... + d c 5029 + d XML_CHECK_NS_SCOPE... + d c 5030 + d XML_CHECK_NS_ANCESTOR... + d c 5031 + d XML_CHECK_NOT_UTF8... + d c 5032 + d XML_CHECK_NO_DICT... + d c 5033 + d XML_CHECK_NOT_NCNAME... + d c 5034 + d XML_CHECK_OUTSIDE_DICT... + d c 5035 + d XML_CHECK_WRONG_NAME... + d c 5036 + d XML_CHECK_NAME_NOT_NULL... + d c 5037 + d XML_I18N_NO_NAME... + d c 6000 + d XML_I18N_NO_HANDLER... + d c 6001 + d XML_I18N_EXCESS_HANDLER... + d c 6002 + d XML_I18N_CONV_FAILED... + d c 6003 + d XML_I18N_NO_OUTPUT... + d c 6004 + d XML_BUF_OVERFLOW... + d c 7000 + + * xmlGenericErrorFunc: + * @ctx: a parsing context + * @msg: the message + * @...: the extra arguments of the varags to format the message + * + * Signature of the function to use when there is an error and + * no parsing or validity context available . + + d xmlGenericErrorFunc... + d s * based(######typedef######) + d procptr + + * xmlStructuredErrorFunc: + * @userData: user provided data for the error callback + * @error: the error being raised. + * + * Signature of the function to use when there is an error and + * the module handles the new error reporting mechanism. + + d xmlStructuredErrorFunc... + d s * based(######typedef######) + d procptr + + * Use the following function to reset the two global variables + * xmlGenericError and xmlGenericErrorContext. + + d xmlSetGenericErrorFunc... + d pr extproc('xmlSetGenericErrorFunc') + d ctx * value void * + d handler value like(xmlGenericErrorFunc) + + d initGenericErrorDefaultFunc... + d pr extproc( + d 'initGenericErrorDefaultFunc') + d handler like(xmlGenericErrorFunc) + + d xmlSetStructuredErrorFunc... + d pr extproc('xmlSetStructuredErrorFunc') + d ctx * value void * + d handler value like(xmlGenericErrorFunc) + + * Default message routines used by SAX and Valid context for error + * and warning reporting. + * + * These are vararg functions. + * The following prototypes support up to 8 pointer arguments. + * Other argument signature can be achieved by defining alternate + * prototypes redirected to the same function. + + d xmlParserError pr extproc('xmlParserError') + d ctx * value void * + d msg * value options(*string) const char * + d handler value like(xmlGenericErrorFunc) + d arg1 * value options(*string: *nopass) + d arg2 * value options(*string: *nopass) + d arg3 * value options(*string: *nopass) + d arg4 * value options(*string: *nopass) + d arg5 * value options(*string: *nopass) + d arg6 * value options(*string: *nopass) + d arg7 * value options(*string: *nopass) + d arg8 * value options(*string: *nopass) + + d xmlParserWarning... + d pr extproc('xmlParserWarning') + d ctx * value void * + d msg * value options(*string) const char * + d handler value like(xmlGenericErrorFunc) + d arg1 * value options(*string: *nopass) + d arg2 * value options(*string: *nopass) + d arg3 * value options(*string: *nopass) + d arg4 * value options(*string: *nopass) + d arg5 * value options(*string: *nopass) + d arg6 * value options(*string: *nopass) + d arg7 * value options(*string: *nopass) + d arg8 * value options(*string: *nopass) + + d xmlParserValidityError... + d pr extproc('xmlParserValidityError') + d ctx * value void * + d msg * value options(*string) const char * + d handler value like(xmlGenericErrorFunc) + d arg1 * value options(*string: *nopass) + d arg2 * value options(*string: *nopass) + d arg3 * value options(*string: *nopass) + d arg4 * value options(*string: *nopass) + d arg5 * value options(*string: *nopass) + d arg6 * value options(*string: *nopass) + d arg7 * value options(*string: *nopass) + d arg8 * value options(*string: *nopass) + + d xmlParserValidityWarning... + d pr extproc('xmlParserValidityWarning') + d ctx * value void * + d msg * value options(*string) const char * + d handler value like(xmlGenericErrorFunc) + d arg1 * value options(*string: *nopass) + d arg2 * value options(*string: *nopass) + d arg3 * value options(*string: *nopass) + d arg4 * value options(*string: *nopass) + d arg5 * value options(*string: *nopass) + d arg6 * value options(*string: *nopass) + d arg7 * value options(*string: *nopass) + d arg8 * value options(*string: *nopass) + + d xmlParserPrintFileInfo... + d pr extproc('xmlParserPrintFileInfo') + d input value like(xmlParserInputPtr) + + d xmlParserPrintFileContext... + d pr extproc('xmlParserPrintFileContext') + d input value like(xmlParserInputPtr) + + * Extended error information routines + + d xmlGetLastError... + d pr extproc('xmlGetLastError') + d like(xmlErrorPtr) + + d xmlResetLastError... + d pr extproc('xmlResetLastError') + + d xmlCtxtGetLastError... + d pr extproc('xmlCtxtGetLastError') + d like(xmlErrorPtr) + d ctx * value void * + + d xmlCtxtResetLastError... + d pr extproc('xmlCtxtResetLastError') + d ctx * value void * + + d xmlResetError pr extproc('xmlResetError') + d err value like(xmlErrorPtr) + + d xmlCopyError pr 10i 0 extproc('xmlCopyError') + d from value like(xmlErrorPtr) + d to value like(xmlErrorPtr) + + /endif XML_ERROR_H__ diff --git a/os400/libxmlrpg/xmlexports.rpgle b/os400/libxmlrpg/xmlexports.rpgle new file mode 100644 index 0000000..9a6fd10 --- /dev/null +++ b/os400/libxmlrpg/xmlexports.rpgle @@ -0,0 +1,15 @@ + * Summary: macros for marking symbols as exportable/importable. + * Description: macros for marking symbols as exportable/importable. + * + * Copy: See Copyright for the status of this software. + * + * Author: Patrick Monnerat <pm@datasphere.ch>, DATASPHERE S.A. + + /if not defined(XML_EXPORTS_H__) + /define XML_EXPORTS_H__ + + * The definition in the original C header file are not appliable to + * ILE/RPG. + * Therefore this file is intentionally empty. + + /endif XML_EXPORTS_H__ diff --git a/os400/libxmlrpg/xmlmemory.rpgle b/os400/libxmlrpg/xmlmemory.rpgle new file mode 100644 index 0000000..165eaca --- /dev/null +++ b/os400/libxmlrpg/xmlmemory.rpgle @@ -0,0 +1,239 @@ + * Summary: interface for the memory allocator + * Description: provides interfaces for the memory allocator, + * including debugging capabilities. + * + * Copy: See Copyright for the status of this software. + * + * Author: Patrick Monnerat <pm@datasphere.ch>, DATASPHERE S.A. + + /if not defined(DEBUG_MEMORY_ALLOC__) + /define DEBUG_MEMORY_ALLOC__ + + /include "libxmlrpg/xmlversion" + + * DEBUG_MEMORY: + * + * DEBUG_MEMORY replaces the allocator with a collect and debug + * shell to the libc allocator. + * DEBUG_MEMORY should only be activated when debugging + * libxml i.e. if libxml has been configured with --with-debug-mem too. + + * /define DEBUG_MEMORY_FREED + * /define DEBUG_MEMORY_LOCATION + + /if defined(DEBUG) + /if not defined(DEBUG_MEMORY) + /define DEBUG_MEMORY + /endif + /endif + + * DEBUG_MEMORY_LOCATION: + * + * DEBUG_MEMORY_LOCATION should be activated only when debugging + * libxml i.e. if libxml has been configured with --with-debug-mem too. + + /if defined(DEBUG_MEMORY_LOCATION) + /endif + + * The XML memory wrapper support 4 basic overloadable functions. + + * xmlFreeFunc: + * @mem: an already allocated block of memory + * + * Signature for a free() implementation. + + d xmlFreeFunc s * based(######typedef######) + d procptr + + * xmlMallocFunc: + * @size: the size requested in bytes + * + * Signature for a malloc() implementation. + * + * Returns a pointer to the newly allocated block or NULL in case of error. + + d xmlMallocFunc s * based(######typedef######) + d procptr + + * xmlReallocFunc: + * @mem: an already allocated block of memory + * @size: the new size requested in bytes + * + * Signature for a realloc() implementation. + * + * Returns a pointer to the newly reallocated block or NULL in case of error. + + d xmlReallocFunc s * based(######typedef######) + d procptr + + * xmlStrdupFunc: + * @str: a zero terminated string + * + * Signature for an strdup() implementation. + * + * Returns the copy of the string or NULL in case of error. + + d xmlStrdupFunc s * based(######typedef######) + d procptr + + * The 5 interfaces used for all memory handling within libxml. + * Since indirect calls are only supported via a based prototype, + * storage is accessed via functions. + + d get_xmlFree pr extproc('__get_xmlFree') + d like(xmlFreeFunc) + + d set_xmlFree pr extproc('__set_xmlFree') + d func value like(xmlFreeFunc) + + d xmlFree pr extproc('__call_xmlFree') + d mem * value void * + + d get_xmlMalloc pr extproc('__get_xmlMalloc') + d like(xmlMallocFunc) + + d set_xmlMalloc pr extproc('__set_xmlMalloc') + d func value like(xmlMallocFunc) + + d xmlMalloc pr * extproc('__call_xmlMalloc') void * + d size 10u 0 value size_t + + d get_xmlMallocAtomic... + d pr extproc('__get_xmlMallocAtomic') + d like(xmlMallocFunc) + + d set_xmlMallocAtomic... + d pr extproc('__set_xmlMallocAtomic') + d func value like(xmlMallocFunc) + + d xmlMallocAtomic... + d pr * extproc('__call_xmlMallocAtomic') void * + d size 10u 0 value size_t + + d get_xmlRealloc pr extproc('__get_xmlRealloc') + d like(xmlReallocFunc) + + d set_xmlRealloc pr extproc('__set_xmlRealloc') + d func value like(xmlReallocFunc) + + d xmlRealloc pr * extproc('__call_xmlRealloc') void * + d mem * value void * + d size 10u 0 value size_t + + d get_xmlMemStrdup... + d pr extproc('__get_xmlMemStrdup') + d like(xmlStrdupFunc) + + d set_xmlMemStrdup... + d pr extproc('__set_xmlMemstrdup') + d func value like(xmlStrdupFunc) + + d xmlMemStrdup pr * extproc('__call_xmlMemStrdup') void * + d str * value options(*string) const char * + + * The way to overload the existing functions. + * The xmlGc function have an extra entry for atomic block + * allocations useful for garbage collected memory allocators + + d xmlMemSetup pr 10i 0 extproc('xmlMemSetup') + d freeFunc value like(xmlFreeFunc) + d mallocFunc value like(xmlMallocFunc) + d reallocFunc value like(xmlReallocFunc) + d strdupFunc value like(xmlStrdupFunc) + + d xmlMemGet pr 10i 0 extproc('xmlMemGet') + d freeFunc like(xmlFreeFunc) + d mallocFunc like(xmlMallocFunc) + d reallocFunc like(xmlReallocFunc) + d strdupFunc like(xmlStrdupFunc) + + d xmlGcMemSetup pr 10i 0 extproc('xmlGcMemSetup') + d freeFunc value like(xmlFreeFunc) + d mallocFunc value like(xmlMallocFunc) + d mallocAtomicFunc... + d value like(xmlMallocFunc) + d reallocFunc value like(xmlReallocFunc) + d strdupFunc value like(xmlStrdupFunc) + + d xmlGcMemGet pr 10i 0 extproc('xmlGcMemGet') + d freeFunc like(xmlFreeFunc) + d mallocFunc like(xmlMallocFunc) + d mallocAtomicFunc... + d like(xmlMallocFunc) + d reallocFunc like(xmlReallocFunc) + d strdupFunc like(xmlStrdupFunc) + + * Initialization of the memory layer. + + d xmlInitMemory pr 10i 0 extproc('xmlInitMemory') + + * Cleanup of the memory layer. + + d xmlCleanupMemory... + d pr extproc('xmlCleanupMemory') + + * These are specific to the XML debug memory wrapper. + + d xmlMemUsed pr 10i 0 extproc('xmlMemUsed') + + d xmlMemBlocks pr 10i 0 extproc('xmlMemBlocks') + + d xmlMemDisplay pr extproc('xmlMemDisplay') + d fp * value FILE * + + d xmlMmDisplayLast... + d pr extproc('xmlMemDisplayLast') + d fp * value FILE * + d nbBytes 20i 0 value + + d xmlMemShow pr extproc('xmlMemShow') + d fp * value FILE * + d nr 10i 0 value + + d xmlMemoryDump pr extproc('xmlMemoryDump') + + d xmlMemMalloc pr * extproc('xmlMemMalloc') void * + d size 10u 0 value size_t + + d xmlMemRealloc pr * extproc('xmlMemRealloc') void * + d ptr * value void * + d size 10u 0 value size_t + + d xmlMemFree pr extproc('xmlMemFree') + d ptr * value void * + + d xmlMemoryStrdup... + d pr * extproc('xmlMemoryStrdup') char * + d str * value options(*string) const char * + + d xmlMallocLoc pr * extproc('xmlMallocLoc') void * + d size 10u 0 value size_t + d file * value options(*string) const char * + d line 10i 0 value + + d xmlReallocLoc pr * extproc('xmlReallocLoc') void * + d ptr * value void * + d size 10u 0 value size_t + d file * value options(*string) const char * + d line 10i 0 value + + d xmlMallocAtomicLoc... + d pr * extproc('xmlMallocAtomicLoc') void * + d size 10u 0 value size_t + d file * value options(*string) const char * + d line 10i 0 value + + d xmlMemStrdupLoc... + d pr * extproc('xmlMemStrdupLoc') char * + d str * value options(*string) const char * + d file * value options(*string) const char * + d line 10i 0 value + + /if not defined(XML_GLOBALS_H) + /if not defined(XML_THREADS_H__) + /include "libxmlrpg/threads" + /include "libxmlrpg/globals" + /endif + /endif + + /endif DEBUG_MEMORY_ALLOC__ diff --git a/os400/libxmlrpg/xmlmodule.rpgle b/os400/libxmlrpg/xmlmodule.rpgle new file mode 100644 index 0000000..09592a6 --- /dev/null +++ b/os400/libxmlrpg/xmlmodule.rpgle @@ -0,0 +1,51 @@ + * Summary: dynamic module loading + * Description: basic API for dynamic module loading, used by + * libexslt added in 2.6.17 + * + * Copy: See Copyright for the status of this software. + * + * Author: Patrick Monnerat <pm@datasphere.ch>, DATASPHERE S.A. + + /if not defined(XML_MODULE_H__) + /define XML_MODULE_H__ + + /include "libxmlrpg/xmlversion" + + /if defined(LIBXML_MODULES_ENABLED) + + * xmlModulePtr: + * + * A handle to a dynamically loaded module + + d xmlModulePtr s * based(######typedef######) + + * xmlModuleOption: + * + * enumeration of options that can be passed down to xmlModuleOpen() + + d xmlModuleOption... + d s 10i 0 based(######typedef######) enum + d XML_MODULE_LAZY... Lazy binding + d c 1 + d XML_MODULE_LOCAL... Local binding + d c 2 + + d xmlModuleOpen pr extproc('xmlModuleOpen') + d like(xmlModulePtr) + d filename * value options(*string) const char * + d options 10i 0 value + + d xmlModuleSymbol... + d pr 10i 0 extproc('xmlModuleSymbol') + d module value like(xmlModulePtr) + d name * value options(*string) const char * + d result * void *(*) + + d xmlModuleClose pr 10i 0 extproc('xmlModuleClose') + d module value like(xmlModulePtr) + + d xmlModuleFree pr 10i 0 extproc('xmlModuleFree') + d module value like(xmlModulePtr) + + /endif LIBXML_MODULES_ENBLD + /endif XML_MODULE_H__ diff --git a/os400/libxmlrpg/xmlreader.rpgle b/os400/libxmlrpg/xmlreader.rpgle new file mode 100644 index 0000000..eccd37c --- /dev/null +++ b/os400/libxmlrpg/xmlreader.rpgle @@ -0,0 +1,619 @@ + * Summary: the XMLReader implementation + * Description: API of the XML streaming API based on C# interfaces. + * + * Copy: See Copyright for the status of this software. + * + * Author: Patrick Monnerat <pm@datasphere.ch>, DATASPHERE S.A. + + /if not defined(XML_XMLREADER_H__) + /define XML_XMLREADER_H__ + + /include "libxmlrpg/xmlversion" + /include "libxmlrpg/tree" + /include "libxmlrpg/xmlIO" + + /if defined(LIBXML_SCHEMAS_ENABLED) + /include "libxmlrpg/relaxng" + /include "libxmlrpg/xmlschemas" + /endif + + * xmlParserSeverities: + * + * How severe an error callback is when the per-reader error callback API + * is used. + + d xmlParserSeverities... + d s 10i 0 based(######typedef######) enum + d XML_PARSER_SEVERITY_VALIDITY_WARNING... + d c 1 + d XML_PARSER_SEVERITY_VALIDITY_ERROR... + d c 2 + d XML_PARSER_SEVERITY_WARNING... + d c 3 + d XML_PARSER_SEVERITY_ERROR... + d c 4 + + /if defined(LIBXML_READER_ENABLED) + + * xmlTextReaderMode: + * + * Internal state values for the reader. + + d xmlTextReaderMode... + d s 10i 0 based(######typedef######) enum + d XML_TEXTREADER_MODE_INITIAL... + d c 0 + d XML_TEXTREADER_MODE_INTERACTIVE... + d c 1 + d XML_TEXTREADER_MODE_ERROR... + d c 2 + d XML_TEXTREADER_MODE_EOF... + d c 3 + d XML_TEXTREADER_MODE_CLOSED... + d c 4 + d XML_TEXTREADER_MODE_READING... + d c 5 + + * xmlParserProperties: + * + * Some common options to use with xmlTextReaderSetParserProp, but it + * is better to use xmlParserOption and the xmlReaderNewxxx and + * xmlReaderForxxx APIs now. + + d xmlParserProperties... + d s 10i 0 based(######typedef######) enum + d XML_PARSER_LOADDTD... + d c 1 + d XML_PARSER_DEFAULTATTRS... + d c 2 + d XML_PARSER_VALIDATE... + d c 3 + d XML_PARSER_SUBST_ENTITIES... + d c 4 + + * xmlReaderTypes: + * + * Predefined constants for the different types of nodes. + + d xmlReaderTypes s 10i 0 based(######typedef######) enum + d XML_READER_TYPE_NONE... + d c 0 + d XML_READER_TYPE_ELEMENT... + d c 1 + d XML_READER_TYPE_ATTRIBUTE... + d c 2 + d XML_READER_TYPE_TEXT... + d c 3 + d XML_READER_TYPE_CDATA... + d c 4 + d XML_READER_TYPE_ENTITY_REFERENCE... + d c 5 + d XML_READER_TYPE_ENTITY... + d c 6 + d XML_READER_TYPE_PROCESSING_INSTRUCTION... + d c 7 + d XML_READER_TYPE_COMMENT... + d c 8 + d XML_READER_TYPE_DOCUMENT... + d c 9 + d XML_READER_TYPE_DOCUMENT_TYPE... + d c 10 + d XML_READER_TYPE_DOCUMENT_FRAGMENT... + d c 11 + d XML_READER_TYPE_NOTATION... + d c 12 + d XML_READER_TYPE_WHITESPACE... + d c 13 + d XML_READER_TYPE_SIGNIFICANT_WHITESPACE... + d c 14 + d XML_READER_TYPE_END_ELEMENT... + d c 15 + d XML_READER_TYPE_END_ENTITY... + d c 16 + d XML_READER_TYPE_XML_DECLARATION... + d c 17 + + * xmlTextReaderPtr: + * + * Pointer to an xmlReader context. + + d xmlTextReaderPtr... + d s * based(######typedef######) + + * Constructors & Destructor + + d xmlNewTextReader... + d pr extproc('xmlNewTextReader') + d like(xmlTextReaderPtr) + d input value like(xmlParserInputBufferPtr) + d URI * value options(*string) const char * + + d xmlNewTextReaderFilename... + d pr extproc('xmlNewTextReaderFilename') + d like(xmlTextReaderPtr) + d URI * value options(*string) const char * + + d xmlFreeTextReader... + d pr extproc('xmlFreeTextReader') + d reader value like(xmlTextReaderPtr) + + d xmlTextReaderSetup... + d pr 10i 0 extproc('xmlTextReaderSetup') + d reader value like(xmlTextReaderPtr) + d input value like(xmlParserInputBufferPtr) + d URL * value options(*string) const char * + d encoding * value options(*string) const char * + d options 10i 0 value + + * Iterators + + d xmlTextReaderRead... + d pr 10i 0 extproc('xmlTextReaderRead') + d reader value like(xmlTextReaderPtr) + + /if defined(LIBXML_WRITER_ENABLED) + d xmlTextReaderReadInnerXml... + d pr * extproc('xmlTextReaderReadInnerXml') xmlChar * + d reader value like(xmlTextReaderPtr) + + d xmlTextReaderReadOuterXml... + d pr * extproc('xmlTextReaderReadOuterXml') xmlChar * + d reader value like(xmlTextReaderPtr) + /endif + + d xmlTextReaderReadString... + d pr * extproc('xmlTextReaderReadString') xmlChar * + d reader value like(xmlTextReaderPtr) + + d xmlTextReaderReadAttributeValue... + d pr 10i 0 extproc( + d 'xmlTextReaderReadAttributeValue') + d reader value like(xmlTextReaderPtr) + + * Attributes of the node + + d xmlTextReaderAttributeCount... + d pr 10i 0 extproc( + d 'xmlTextReaderAttributeCount') + d reader value like(xmlTextReaderPtr) + + d xmlTextReaderDepth... + d pr 10i 0 extproc('xmlTextReaderDepth') + d reader value like(xmlTextReaderPtr) + + d xmlTextReaderHasAttributes... + d pr 10i 0 extproc('xmlTextReaderHasAttributes') + d reader value like(xmlTextReaderPtr) + + d xmlTextReaderHasValue... + d pr 10i 0 extproc('xmlTextReaderHasValue') + d reader value like(xmlTextReaderPtr) + + d xmlTextReaderIsDefault... + d pr 10i 0 extproc('xmlTextReaderIsDefault') + d reader value like(xmlTextReaderPtr) + + d xmlTextReaderIsEmptyElement... + d pr 10i 0 extproc( + d 'xmlTextReaderIsEmptyElement') + d reader value like(xmlTextReaderPtr) + + d xmlTextReaderNodeType... + d pr 10i 0 extproc('xmlTextReaderNodeType') + d reader value like(xmlTextReaderPtr) + + d xmlTextReaderQuoteChar... + d pr 10i 0 extproc('xmlTextReaderQuoteChar') + d reader value like(xmlTextReaderPtr) + + d xmlTextReaderReadState... + d pr 10i 0 extproc('xmlTextReaderReadState') + d reader value like(xmlTextReaderPtr) + + d xmlTextReaderIsNamespaceDecl... + d pr 10i 0 extproc( + d 'xmlTextReaderIsNamespaceDecl') + d reader value like(xmlTextReaderPtr) + + d xmlTextReaderConstBaseUri... + d pr * extproc('xmlTextReaderConstBaseUri') const xmlChar * + d reader value like(xmlTextReaderPtr) + + d xmlTextReaderConstLocalName... + d pr * extproc( const xmlChar * + d 'xmlTextReaderConstLocalName') + d reader value like(xmlTextReaderPtr) + + d xmlTextReaderConstName... + d pr * extproc('xmlTextReaderConstName') const xmlChar * + d reader value like(xmlTextReaderPtr) + + d xmlTextReaderConstNamespaceUri... + d pr * extproc( const xmlChar * + d 'xmlTextReaderConstNamespaceUri') + d reader value like(xmlTextReaderPtr) + + d xmlTextReaderConstPrefix... + d pr * extproc('xmlTextReaderConstPrefix') const xmlChar * + d reader value like(xmlTextReaderPtr) + + d xmlTextReaderConstXmlLang... + d pr * extproc('xmlTextReaderConstXmlLang') const xmlChar * + d reader value like(xmlTextReaderPtr) + + d xmlTextReaderConstString... + d pr * extproc('xmlTextReaderConstString') const xmlChar * + d reader value like(xmlTextReaderPtr) + d str * value options(*string) const xmlChar * + + d xmlTextReaderConstValue... + d pr * extproc('xmlTextReaderConstValue') const xmlChar * + d reader value like(xmlTextReaderPtr) + + * use the Const version of the routine for + * better performance and simpler code + + d xmlTextReaderBaseUri... + d pr * extproc('xmlTextReaderBaseUri') xmlChar * + d reader value like(xmlTextReaderPtr) + + d xmlTextReaderLocalName... + d pr * extproc('xmlTextReaderLocalName') xmlChar * + d reader value like(xmlTextReaderPtr) + + d xmlTextReaderName... + d pr * extproc('xmlTextReaderName') xmlChar * + d reader value like(xmlTextReaderPtr) + + d xmlTextReaderNamespaceUri... + d pr * extproc('xmlTextReaderNamespaceUri') xmlChar * + d reader value like(xmlTextReaderPtr) + + d xmlTextReaderPrefix... + d pr * extproc('xmlTextReaderPrefix') xmlChar * + d reader value like(xmlTextReaderPtr) + + d xmlTextReaderXmlLang... + d pr * extproc('xmlTextReaderXmlLang') xmlChar * + d reader value like(xmlTextReaderPtr) + + d xmlTextReaderValue... + d pr * extproc('xmlTextReaderValue') xmlChar * + d reader value like(xmlTextReaderPtr) + + * Methods of the XmlTextReader + + d xmlTextReaderClose... + d pr 10i 0 extproc('xmlTextReaderClose') + d reader value like(xmlTextReaderPtr) + + d xmlTextReaderGetAttributeNo... + d pr * extproc( xmlChar * + d 'xmlTextReaderGetAttributeNo') + d reader value like(xmlTextReaderPtr) + d no 10i 0 value + + d xmlTextReaderGetAttribute... + d pr * extproc('xmlTextReaderGetAttribute') xmlChar * + d reader value like(xmlTextReaderPtr) + d name * value options(*string) const xmlChar * + + d xmlTextReaderGetAttributeNs... + d pr * extproc( xmlChar * + d 'xmlTextReaderGetAttributeNs') + d reader value like(xmlTextReaderPtr) + d localName * value options(*string) const xmlChar * + d namespaceURI * value options(*string) const xmlChar * + + d xmlTextReaderGetRemainder... + d pr extproc('xmlTextReaderGetRemainder') + d like(xmlParserInputBufferPtr) + d reader value like(xmlTextReaderPtr) + + d xmlTextReaderLookupNamespace... + d pr * extproc( xmlChar * + d 'xmlTextReaderLookupNamespace') + d reader value like(xmlTextReaderPtr) + d prefix * value options(*string) const xmlChar * + + d xmlTextReaderMoveToAttributeNo... + d pr 10i 0 extproc( + d 'xmlTextReaderMoveToAttributeNo') + d reader value like(xmlTextReaderPtr) + d no 10i 0 value + + d xmlTextReaderMoveToAttribute... + d pr 10i 0 extproc( + d 'xmlTextReaderMoveToAttribute') + d reader value like(xmlTextReaderPtr) + d name * value options(*string) const xmlChar * + + d xmlTextReaderMoveToAttributeNs... + d pr 10i 0 extproc( + d 'xmlTextReaderMoveToAttributeNs') + d reader value like(xmlTextReaderPtr) + d localName * value options(*string) const xmlChar * + d namespaceURI * value options(*string) const xmlChar * + + d xmlTextReaderMoveToFirstAttribute... + d pr 10i 0 extproc( + d 'xmlTextReaderMoveToFirstAttribute') + d reader value like(xmlTextReaderPtr) + + d xmlTextReaderMoveToNextAttribute... + d pr 10i 0 extproc( + d 'xmlTextReaderMoveToNextAttribute') + d reader value like(xmlTextReaderPtr) + + d xmlTextReaderMoveToElement... + d pr 10i 0 extproc('xmlTextReaderMoveToElement') + d reader value like(xmlTextReaderPtr) + + d xmlTextReaderNormalization... + d pr 10i 0 extproc('xmlTextReaderNormalization') + d reader value like(xmlTextReaderPtr) + + d xmlTextReaderConstEncoding... + d pr * extproc('xmlTextReaderConstEncoding')const xmlChar * + d reader value like(xmlTextReaderPtr) + + * Extensions + + d xmlTextReaderSetParserProp... + d pr 10i 0 extproc('xmlTextReaderSetParserProp') + d reader value like(xmlTextReaderPtr) + d prop 10i 0 value + d value 10i 0 value + + d xmlTextReaderGetParserProp... + d pr 10i 0 extproc('xmlTextReaderGetParserProp') + d reader value like(xmlTextReaderPtr) + d prop 10i 0 value + + d xmlTextReaderCurrentNode... + d pr extproc('xmlTextReaderCurrentNode') + d like(xmlNodePtr) + d reader value like(xmlTextReaderPtr) + + d xmlTextReaderGetParserLineNumber... + d pr 10i 0 extproc( + d 'xmlTextReaderGetParserLineNumber') + d reader value like(xmlTextReaderPtr) + + d xmlTextReaderGetParserColumnNumber... + d pr 10i 0 extproc( + d 'xmlTextReaderGetParserColumnNumber') + d reader value like(xmlTextReaderPtr) + + d xmlTextReaderPreserve... + d pr extproc('xmlTextReaderPreserve') + d like(xmlNodePtr) + d reader value like(xmlTextReaderPtr) + + /if defined(LIBXML_PATTERN_ENABLED) + d xmlTextReaderPreservePattern... + d pr 10i 0 extproc( + d 'xmlTextReaderPreservePattern') + d reader value like(xmlTextReaderPtr) + d pattern * value options(*string) const xmlChar * + d namespaces * const xmlChar *(*) + /endif LIBXML_PATTERN_ENBLD + + d xmlTextReaderCurrentDoc... + d pr extproc('xmlTextReaderCurrentDoc') + d like(xmlDocPtr) + d reader value like(xmlTextReaderPtr) + + d xmlTextReaderExpand... + d pr extproc('xmlTextReaderExpand') + d like(xmlNodePtr) + d reader value like(xmlTextReaderPtr) + + d xmlTextReaderNext... + d pr 10i 0 extproc('xmlTextReaderNext') + d reader value like(xmlTextReaderPtr) + + d xmlTextReaderNextSibling... + d pr 10i 0 extproc('xmlTextReaderNextSibling') + d reader value like(xmlTextReaderPtr) + + d xmlTextReaderIsValid... + d pr 10i 0 extproc('xmlTextReaderIsValid') + d reader value like(xmlTextReaderPtr) + + /if defined(LIBXML_SCHEMAS_ENABLED) + d xmlTextReaderRelaxNGValidate... + d pr 10i 0 extproc( + d 'xmlTextReaderRelaxNGValidate') + d reader value like(xmlTextReaderPtr) + d rng * value options(*string) const char * + + d xmlTextReaderRelaxNGValidateCtxt... + d pr 10i 0 extproc( + d 'xmlTextReaderRelaxNGValidateCtxt') + d reader value like(xmlTextReaderPtr) + d ctxt value like(xmlRelaxNGValidCtxtPtr) + d options 10i 0 value + + d xmlTextReaderRelaxNGSetSchema... + d pr 10i 0 extproc( + d 'xmlTextReaderRelaxNGSetSchema') + d reader value like(xmlTextReaderPtr) + d schema value like(xmlRelaxNGPtr) + + d xmlTextReaderSchemaValidate... + d pr 10i 0 extproc( + d 'xmlTextReaderSchemaValidate') + d reader value like(xmlTextReaderPtr) + d xsd * value options(*string) const char * + + d xmlTextReaderSchemaValidateCtxt... + d pr 10i 0 extproc( + d 'xmlTextReaderSchemaValidateCtxt') + d reader value like(xmlTextReaderPtr) + d ctxt value like(xmlSchemaValidCtxtPtr) + d options 10i 0 value + + d xmlTextReaderSetSchema... + d pr 10i 0 extproc('xmlTextReaderSetSchema') + d reader value like(xmlTextReaderPtr) + d schema value like(xmlSchemaPtr) + /endif + + d xmlTextReaderConstXmlVersion... + d pr * extproc( const xmlChar * + d 'xmlTextReaderConstXmlVersion') + d reader value like(xmlTextReaderPtr) + + d xmlTextReaderStandalone... + d pr 10i 0 extproc('xmlTextReaderStandalone') + d reader value like(xmlTextReaderPtr) + + * Index lookup + + d xmlTextReaderByteConsumed... + d pr 20i 0 extproc('xmlTextReaderByteConsumed') + d reader value like(xmlTextReaderPtr) + + * New more complete APIs for simpler creation and reuse of readers + + d xmlReaderWalker... + d pr extproc('xmlReaderWalker') + d like(xmlTextReaderPtr) + d doc value like(xmlDocPtr) + + d xmlReaderForDoc... + d pr extproc('xmlReaderForDoc') + d like(xmlTextReaderPtr) + d cur * value options(*string) const xmlChar * + d URL * value options(*string) const char * + d encoding * value options(*string) const char * + d options 10i 0 value + + d xmlReaderForFile... + d pr extproc('xmlReaderForFile') + d like(xmlTextReaderPtr) + d filename * value options(*string) const char * + d encoding * value options(*string) const char * + d options 10i 0 value + + d xmlReaderForMemory... + d pr extproc('xmlReaderForMemory') + d like(xmlTextReaderPtr) + d buffer * value options(*string) const char * + d size 10i 0 value + d URL * value options(*string) const char * + d encoding * value options(*string) const char * + d options 10i 0 value + + d xmlReaderForFd pr extproc('xmlReaderForFd') + d like(xmlTextReaderPtr) + d fd 10i 0 value + d URL * value options(*string) const char * + d encoding * value options(*string) const char * + d options 10i 0 value + + d xmlReaderForIO pr extproc('xmlReaderForIO') + d like(xmlTextReaderPtr) + 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 10i 0 value + + d xmlReaderNewWalker... + d pr 10i 0 extproc('xmlReaderNewWalker') + d reader value like(xmlTextReaderPtr) + d doc value like(xmlDocPtr) + + d xmlReaderNewDoc... + d pr 10i 0 extproc('xmlReaderNewDoc') + d reader value like(xmlTextReaderPtr) + d cur * value options(*string) const xmlChar * + d URL * value options(*string) const char * + d encoding * value options(*string) const char * + d options 10i 0 value + + d xmlReaderNewFile... + d pr 10i 0 extproc('xmlReaderNewFile') + d reader value like(xmlTextReaderPtr) + d filename * value options(*string) const char * + d encoding * value options(*string) const char * + d options 10i 0 value + + d xmlReaderNewMemory... + d pr 10i 0 extproc('xmlReaderNewMemory') + d reader value like(xmlTextReaderPtr) + d buffer * value options(*string) const char * + d size 10i 0 value + d URL * value options(*string) const char * + d encoding * value options(*string) const char * + d options 10i 0 value + + d xmlReaderNewFd pr 10i 0 extproc('xmlReaderNewFd') + d reader value like(xmlTextReaderPtr) + d fd 10i 0 value + d URL * value options(*string) const char * + d encoding * value options(*string) const char * + d options 10i 0 value + + d xmlReaderNewIO pr 10i 0 extproc('xmlReaderNewIO') + d reader value like(xmlTextReaderPtr) + 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 10i 0 value + + * Error handling extensions + + d xmlTextReaderLocatorPtr... + d s * based(######typedef######) void * + + * xmlTextReaderErrorFunc: + * @arg: the user argument + * @msg: the message + * @severity: the severity of the error + * @locator: a locator indicating where the error occured + * + * Signature of an error callback from a reader parser + + d xmlTextReaderErrorFunc... + d s * based(######typedef######) + d procptr + + d xmlTextReaderLocatorLineNumber... + d pr 10i 0 extproc( + d 'xmlTextReaderLocatorLineNumber') + d locator value like(xmlTextReaderLocatorPtr) + + d xmlTextReaderLocatorBaseURI... + d pr * extproc( xmlChar * + d 'xmlTextReaderLocatorBaseURI') + d locator value like(xmlTextReaderLocatorPtr) + + d xmlTextReaderSetErrorHandler... + d pr extproc( + d 'xmlTextReaderSetErrorHandler') + d reader value like(xmlTextReaderPtr) + d f value like(xmlTextReaderErrorFunc) + d arg * value void * + + d xmlTextReaderSetStructuredErrorHandler... + d pr extproc('xmlTextReaderSetStructuredE- + d rrorHandler') + d reader value like(xmlTextReaderPtr) + d f value like(xmlStructuredErrorFunc) + d arg * value void * + + d xmlTextReaderGetErrorHandler... + d pr extproc( + d 'xmlTextReaderGetErrorHandler') + d reader value like(xmlTextReaderPtr) + d f like(xmlTextReaderErrorFunc) + d arg * void *(*) + + /endif LIBXML_READER_ENABLD + /endif XML_XMLREADER_H__ diff --git a/os400/libxmlrpg/xmlregexp.rpgle b/os400/libxmlrpg/xmlregexp.rpgle new file mode 100644 index 0000000..65c2d07 --- /dev/null +++ b/os400/libxmlrpg/xmlregexp.rpgle @@ -0,0 +1,246 @@ + * Summary: regular expressions handling + * Description: basic API for libxml regular expressions handling used + * for XML Schemas and validation. + * + * Copy: See Copyright for the status of this software. + * + * Author: Patrick Monnerat <pm@datasphere.ch>, DATASPHERE S.A. + + /if not defined(XML_REGEXP_H__) + /define XML_REGEXP_H__ + + /include "libxmlrpg/xmlversion" + + /if defined(LIBXML_REGEXP_ENABLED) + + * xmlRegexpPtr: + * + * A libxml regular expression, they can actually be far more complex + * thank the POSIX regex expressions. + + d xmlRegexpPtr s * based(######typedef######) + + * xmlRegExecCtxtPtr: + * + * A libxml progressive regular expression evaluation context + + d xmlRegExecCtxtPtr... + d s * based(######typedef######) + + /include "libxmlrpg/tree" + /include "libxmlrpg/dict" + + * The POSIX like API + + d xmlRegexpCompile... + d pr extproc('xmlRegexpCompile') + d like(xmlRegexpPtr) + d regexp * value options(*string) const xmlChar * + + d xmlRegFreeRegexp... + d pr extproc('xmlRegFreeRegexp') + d regexp value like(xmlRegexpPtr) + + d xmlRegexpExec pr 10i 0 extproc('xmlRegexpExec') + d comp value like(xmlRegexpPtr) + d value * value options(*string) const xmlChar * + + d xmlRegexpPrint pr extproc('xmlRegexpPrint') + d output * value FILE * + d regexp value like(xmlRegexpPtr) + + d xmlRegexpIsDeterminist... + d pr 10i 0 extproc('xmlRegexpIsDeterminist') + d comp value like(xmlRegexpPtr) + + * xmlRegExecCallbacks: + * @exec: the regular expression context + * @token: the current token string + * @transdata: transition data + * @inputdata: input data + * + * Callback function when doing a transition in the automata + + d xmlRegExecCallbacks... + d s * based(######typedef######) + d procptr + + * The progressive API + + d xmlRegNewExecCtxt... + d pr extproc('xmlRegNewExecCtxt') + d like(xmlRegExecCtxtPtr) + d comp value like(xmlRegexpPtr) + d callback value like(xmlRegExecCallbacks) + d data * value void * + + d xmlRegFreeExecCtxt... + d pr extproc('xmlRegFreeExecCtxt') + d exec value like(xmlRegExecCtxtPtr) + + d xmlRegExecPushString... + d pr 10i 0 extproc('xmlRegExecPushString') + d exec value like(xmlRegExecCtxtPtr) + d value * value options(*string) const xmlChar * + d data * value void * + + d xmlRegExecPushString2... + d pr 10i 0 extproc('xmlRegExecPushString2') + d exec value like(xmlRegExecCtxtPtr) + d value * value options(*string) const xmlChar * + d value2 * value options(*string) const xmlChar * + d data * value void * + + d xmlRegExecNextValues... + d pr 10i 0 extproc('xmlRegExecNextValues') + d exec value like(xmlRegExecCtxtPtr) + d nbval 10i 0 + d nbneg 10i 0 + d values * xmlChar * (*) + d terminal 10i 0 + + d xmlRegExecErrInfo... + d pr 10i 0 extproc('xmlRegExecErrInfo') + d exec value like(xmlRegExecCtxtPtr) + d string * const xmlChar * (*) + d nbval 10i 0 + d nbneg 10i 0 + d values * xmlChar * (*) + d terminal 10i 0 + + /if defined(LIBXML_EXPR_ENABLED) + + * Formal regular expression handling + * Its goal is to do some formal work on content models + + * expressions are used within a context + + d xmlExpCtxtPtr s * based(######typedef######) + + d xmlExpFreeCtxt pr extproc('xmlExpFreeCtxt') + d ctxt value like(xmlExpCtxtPtr) + + d xmlExpNewCtxt pr extproc('xmlExpNewCtxt') + d like(xmlExpCtxtPtr) + d maxNodes 10i 0 value + d dict value like(xmlDictPtr) + + d xmlExpCtxtNbNodes... + d pr 10i 0 extproc('xmlExpCtxtNbNodes') + d ctxt value like(xmlExpCtxtPtr) + + d xmlExpCtxtNbCons... + d pr 10i 0 extproc('xmlExpCtxtNbCons') + d ctxt value like(xmlExpCtxtPtr) + + * Expressions are trees but the tree is opaque + + d xmlExpNodePtr s * based(######typedef######) + + d xmlExpNodeType s 10i 0 based(######typedef######) enum + d XML_EXP_EMPTY c 0 + d XML_EXP_FORBID... + d c 1 + d XML_EXP_ATOM c 2 + d XML_EXP_SEQ c 3 + d XML_EXP_OR c 4 + d XML_EXP_COUNT c 5 + + * 2 core expressions shared by all for the empty language set + * and for the set with just the empty token + + d forbiddenExp s import('forbiddenExp') + d like(xmlExpNodePtr) + + d emptyExp s import('emptyExp') + d like(xmlExpNodePtr) + + + * Expressions are reference counted internally + + d xmlExpFree pr extproc('xmlExpFree') + d expr value like(xmlExpNodePtr) + + d xmlExpRef pr extproc('xmlExpRef') + d expr value like(xmlExpNodePtr) + + * constructors can be either manual or from a string + + d xmlExpParse pr extproc('xmlExpParse') + d like(xmlExpNodePtr) + d ctxt value like(xmlExpCtxtPtr) + d expr * value options(*string) const char * + + d xmlExpNewAtom pr extproc('xmlExpNewAtom') + d like(xmlExpNodePtr) + d ctxt value like(xmlExpCtxtPtr) + d name * value options(*string) const xmlChar * + d len 10i 0 value + + d xmlExpNewOr pr extproc('xmlExpNewOr') + d like(xmlExpNodePtr) + d ctxt value like(xmlExpCtxtPtr) + d left value like(xmlExpNodePtr) + d right value like(xmlExpNodePtr) + + d xmlExpNewSeq pr extproc('xmlExpNewSeq') + d like(xmlExpNodePtr) + d ctxt value like(xmlExpCtxtPtr) + d left value like(xmlExpNodePtr) + d right value like(xmlExpNodePtr) + + d xmlExpNewRange pr extproc('xmlExpNewRange') + d like(xmlExpNodePtr) + d ctxt value like(xmlExpCtxtPtr) + d subset value like(xmlExpNodePtr) + d min 10i 0 value + d max 10i 0 value + + * The really interesting APIs + + d xmlExpIsNillable... + d pr 10i 0 extproc('xmlExpIsNillable') + d expr value like(xmlExpNodePtr) + + d xmlExpMaxToken pr 10i 0 extproc('xmlExpMaxToken') + d expr value like(xmlExpNodePtr) + + d xmlExpGetLanguage... + d pr 10i 0 extproc('xmlExpGetLanguage') + d ctxt value like(xmlExpCtxtPtr) + d expr value like(xmlExpNodePtr) + d langList * const xmlChar *(*) + d len 10i 0 value + + d xmlExpGetStart pr 10i 0 extproc('xmlExpGetStart') + d ctxt value like(xmlExpCtxtPtr) + d expr value like(xmlExpNodePtr) + d tokList * const xmlChar *(*) + d len 10i 0 value + + d xmlExpStringDerive... + d pr extproc('xmlExpStringDerive') + d like(xmlExpNodePtr) + d ctxt value like(xmlExpCtxtPtr) + d expr value like(xmlExpNodePtr) + d str * value options(*string) const xmlChar * + d len 10i 0 value + + d xmlExpExpDerive... + d pr extproc('xmlExpExpDerive') + d like(xmlExpNodePtr) + d ctxt value like(xmlExpCtxtPtr) + d expr value like(xmlExpNodePtr) + d sub value like(xmlExpNodePtr) + + d xmlExpSubsume pr 10i 0 extproc('xmlExpSubsume') + d ctxt value like(xmlExpCtxtPtr) + d expr value like(xmlExpNodePtr) + d sub value like(xmlExpNodePtr) + + d xmlExpDump pr extproc('xmlExpDump') + d buf value like(xmlBufferPtr) + d expr value like(xmlExpNodePtr) + /endif LIBXML_EXPR_ENABLED + /endif LIBXML_REGEXP_ENABLD + /endif XML_REGEXP_H__ diff --git a/os400/libxmlrpg/xmlsave.rpgle b/os400/libxmlrpg/xmlsave.rpgle new file mode 100644 index 0000000..efcb09f --- /dev/null +++ b/os400/libxmlrpg/xmlsave.rpgle @@ -0,0 +1,96 @@ + * Summary: the XML document serializer + * Description: API to save document or subtree of document + * + * Copy: See Copyright for the status of this software. + * + * Author: Patrick Monnerat <pm@datasphere.ch>, DATASPHERE S.A. + + /if not defined(XML_XMLSAVE_H__) + /define XML_XMLSAVE_H__ + + /include "libxmlrpg/xmlversion" + /include "libxmlrpg/tree" + /include "libxmlrpg/encoding" + /include "libxmlrpg/xmlIO" + + /if defined(LIBXML_OUTPUT_ENABLED) + + * xmlSaveOption: + * + * This is the set of XML save options that can be passed down + * to the xmlSaveToFd() and similar calls. + + d xmlSaveOption s 10i 0 based(######typedef######) enum + d XML_SAVE_FORMAT... Format save output + d c X'0001' + d XML_SAVE_NO_DECL... Drop xml declaration + d c X'0002' + d XML_SAVE_NO_EMPTY... No empty tags + d c X'0004' + d XML_SAVE_NO_XHTML... No XHTML1 specific + d c X'0008' + d XML_SAVE_XHTML... Frce XHTML1 specific + d c X'0010' + d XML_SAVE_AS_XML... Frce XML on HTML doc + d c X'0020' + d XML_SAVE_AS_HTML... Frce HTML on XML doc + d c X'0040' + d XML_SAVE_WSNONSIG... Fmt w/ non-sig space + d c X'0080' + + d xmlSaveCtxtPtr s * based(######typedef######) + + d xmlSaveToFd pr extproc('xmlSaveToFd') + d like(xmlSaveCtxtPtr) + d fd 10i 0 value + d encoding * value options(*string) const char * + d options 10i 0 value + + d xmlSaveToFilename... + d pr extproc('xmlSaveToFilename') + d like(xmlSaveCtxtPtr) + d filename * value options(*string) const char * + d encoding * value options(*string) const char * + d options 10i 0 value + + d xmlSaveToBuffer... + d pr extproc('xmlSaveToBuffer') + d like(xmlSaveCtxtPtr) + d buffer value like(xmlBufferPtr) + d encoding * value options(*string) const char * + d options 10i 0 value + + d xmlSaveToIO pr extproc('xmlSaveToIO') + d like(xmlSaveCtxtPtr) + d iowrite value like(xmlOutputWriteCallback) + d ioclose value like(xmlOutputCloseCallback) + d ioctx * value void * + d encoding * value options(*string) const char * + d options 10i 0 value + + d xmlSaveDoc pr 20i 0 extproc('xmlSaveDoc') + d ctxt value like(xmlSaveCtxtPtr) + d doc value like(xmlDocPtr) + + d xmlSaveTree pr 20i 0 extproc('xmlSaveTree') + d ctxt value like(xmlSaveCtxtPtr) + d node value like(xmlNodePtr) + + d xmlSaveFlush pr 10i 0 extproc('xmlSaveFlush') + d ctxt value like(xmlSaveCtxtPtr) + + d xmlSaveClose pr 10i 0 extproc('xmlSaveClose') + d ctxt value like(xmlSaveCtxtPtr) + + d xmlSaveSetEscape... + d pr 10i 0 extproc('xmlSaveSetEscape') + d ctxt value like(xmlSaveCtxtPtr) + d escape value like(xmlCharEncodingOutputFunc) + + d xmlSaveSetAttrEscape... + d pr 10i 0 extproc('xmlSaveSetAttrEscape') + d ctxt value like(xmlSaveCtxtPtr) + d escape value like(xmlCharEncodingOutputFunc) + + /endif LIBXML_OUTPUT_ENABLD + /endif XML_XMLSAVE_H__ diff --git a/os400/libxmlrpg/xmlschemas.rpgle b/os400/libxmlrpg/xmlschemas.rpgle new file mode 100644 index 0000000..865dd26 --- /dev/null +++ b/os400/libxmlrpg/xmlschemas.rpgle @@ -0,0 +1,318 @@ + * Summary: incomplete XML Schemas structure implementation + * Description: interface to the XML Schemas handling and schema validity + * checking, it is incomplete right now. + * + * Copy: See Copyright for the status of this software. + * + * Author: Patrick Monnerat <pm@datasphere.ch>, DATASPHERE S.A. + + /if not defined(XML_SCHEMA_H__) + /define XML_SCHEMA_H__ + + /include "libxmlrpg/xmlversion" + + /if defined(LIBXML_SCHEMAS_ENABLED) + + /include "libxmlrpg/tree" + + * This error codes are obsolete; not used any more. + + d xmlSchemaValidError... + d s 10i 0 based(######typedef######) enum + d XML_SCHEMAS_ERR_OK... + d c 0 + d XML_SCHEMAS_ERR_NOROOT... + d c 1 + d XML_SCHEMAS_ERR_UNDECLAREDELEM... + d c 2 + d XML_SCHEMAS_ERR_NOTTOPLEVEL... + d c 3 + d XML_SCHEMAS_ERR_MISSING... + d c 4 + d XML_SCHEMAS_ERR_WRONGELEM... + d c 5 + d XML_SCHEMAS_ERR_NOTYPE... + d c 6 + d XML_SCHEMAS_ERR_NOROLLBACK... + d c 7 + d XML_SCHEMAS_ERR_ISABSTRACT... + d c 8 + d XML_SCHEMAS_ERR_NOTEMPTY... + d c 9 + d XML_SCHEMAS_ERR_ELEMCONT... + d c 10 + d XML_SCHEMAS_ERR_HAVEDEFAULT... + d c 11 + d XML_SCHEMAS_ERR_NOTNILLABLE... + d c 12 + d XML_SCHEMAS_ERR_EXTRACONTENT... + d c 13 + d XML_SCHEMAS_ERR_INVALIDATTR... + d c 14 + d XML_SCHEMAS_ERR_INVALIDELEM... + d c 15 + d XML_SCHEMAS_ERR_NOTDETERMINIST... + d c 16 + d XML_SCHEMAS_ERR_CONSTRUCT... + d c 17 + d XML_SCHEMAS_ERR_INTERNAL... + d c 18 + d XML_SCHEMAS_ERR_NOTSIMPLE... + d c 19 + d XML_SCHEMAS_ERR_ATTRUNKNOWN... + d c 20 + d XML_SCHEMAS_ERR_ATTRINVALID... + d c 21 + d XML_SCHEMAS_ERR_VALUE... + d c 22 + d XML_SCHEMAS_ERR_FACET... + d c 23 + d XML_SCHEMAS_ERR_... + d c 24 + d XML_SCHEMAS_ERR_XXX... + d c 25 + + * ATTENTION: Change xmlSchemaSetValidOptions's check + * for invalid values, if adding to the validation + * options below. + + * xmlSchemaValidOption: + * + * This is the set of XML Schema validation options. + + d xmlSchemaValidOption... + d s 10i 0 based(######typedef######) enum + * + * Default/fixed: create an attribute node + * or an element's text node on the instance. + * + d XML_SCHEMA_VAL_VC_I_CREATE... + d c X'0001' + /if defined(DISABLED) + * + * assemble schemata using + * xsi:schemaLocation and + * xsi:noNamespaceSchemaLocation + * + d XML_SCHEMA_VAL_XSI_ASSEMBLE... + d c X'0002' + /endif + + * The schemas related types are kept internal + + d xmlSchemaPtr s * based(######typedef######) + + * xmlSchemaValidityErrorFunc: + * @ctx: the validation context + * @msg: the message + * @...: extra arguments + * + * Signature of an error callback from an XSD validation + + d xmlSchemaValidityErrorFunc... + d s * based(######typedef######) + d procptr + + * xmlSchemaValidityWarningFunc: + * @ctx: the validation context + * @msg: the message + * @...: extra arguments + * + * Signature of a warning callback from an XSD validation + + d xmlSchemaValidityWarningFunc... + d s * based(######typedef######) + d procptr + + * A schemas validation context + + d xmlSchemaParserCtxtPtr... + d s * based(######typedef######) + + d xmlSchemaValidCtxtPtr... + d s * based(######typedef######) + + * xmlSchemaValidityLocatorFunc: + * @ctx: user provided context + * @file: returned file information + * @line: returned line information + * + * A schemas validation locator, a callback called by the validator. + * This is used when file or node informations are not available + * to find out what file and line number are affected + * + * Returns: 0 in case of success and -1 in case of error + + d xmlSchemaValidityLocatorFunc... + d s * based(######typedef######) + d procptr + + * Interfaces for parsing. + + d xmlSchemaNewParserCtxt... + d pr extproc('xmlSchemaNewParserCtxt') + d like(xmlSchemaParserCtxtPtr) + d URL * value options(*string) const char * + + d xmlSchemaNewMemParserCtxt... + d pr extproc('xmlSchemaNewMemParserCtxt') + d like(xmlSchemaParserCtxtPtr) + d buffer * value options(*string) const char * + d size 10i 0 value + + d xmlSchemaNewDocParserCtxt... + d pr extproc('xmlSchemaNewDocParserCtxt') + d like(xmlSchemaParserCtxtPtr) + d doc value like(xmlDocPtr) + + d xmlSchemaFreeParserCtxt... + d pr extproc('xmlSchemaFreeParserCtxt') + d ctxt value like(xmlSchemaParserCtxtPtr) + + d xmlSchemaSetParserErrors... + d pr extproc('xmlSchemaSetParserErrors') + d ctxt value like(xmlSchemaParserCtxtPtr) + d err value + d like(xmlSchemaValidityErrorFunc) + d warn value + d like(xmlSchemaValidityWarningFunc) + d ctx * value void * + + d xmlSchemaSetParserStructuredErrors... + d pr extproc( + d 'xmlSchemaSetParserStructuredErrors') + d ctxt value like(xmlSchemaParserCtxtPtr) + d serror value like(xmlStructuredErrorFunc) + d ctx * value void * + + d xmlSchemaGetParserErrors... + d pr 10i 0 extproc('xmlSchemaGetParserErrors') + d ctxt value like(xmlSchemaParserCtxtPtr) + d err like(xmlSchemaValidityErrorFunc) + d warn like(xmlSchemaValidityWarningFunc) + d ctx * void *(*) + + d xmlSchemaIsValid... + d pr 10i 0 extproc('xmlSchemaIsValid') + d ctxt value like(xmlSchemaValidCtxtPtr) + + d xmlSchemaParse pr extproc('xmlSchemaParse') + d like(xmlSchemaPtr) + d ctxt value like(xmlSchemaParserCtxtPtr) + + d xmlSchemaFree pr extproc('xmlSchemaFree') + d schema value like(xmlSchemaPtr) + + /if defined(LIBXML_OUTPUT_ENABLED) + d xmlSchemaDump pr extproc('xmlSchemaDump') + d output * value FILE * + d schema value like(xmlSchemaPtr) + /endif LIBXML_OUTPUT_ENABLD + + * Interfaces for validating + + d xmlSchemaSetValidErrors... + d pr extproc('xmlSchemaSetValidErrors') + d ctxt value like(xmlSchemaValidCtxtPtr) + d err value + d like(xmlSchemaValidityErrorFunc) + d warn value + d like(xmlSchemaValidityWarningFunc) + d ctx * value void * + + d xmlSchemaSetValidStructuredErrors... + d pr extproc( + d 'xmlSchemaSetValidStructuredErrors') + d ctxt value like(xmlSchemaValidCtxtPtr) + d serror value like(xmlStructuredErrorFunc) + d ctx * value void * + + d xmlSchemaGetValidErrors... + d pr 10i 0 extproc('xmlSchemaGetValidErrors') + d ctxt value like(xmlSchemaValidCtxtPtr) + d err like(xmlSchemaValidityErrorFunc) + d warn like(xmlSchemaValidityWarningFunc) + d ctx * void *(*) + + d xmlSchemaSetValidOptions... + d pr 10i 0 extproc('xmlSchemaSetValidOptions') + d ctxt value like(xmlSchemaValidCtxtPtr) + d options 10i 0 value + + d xmlSchemaValidateSetFilename... + d pr extproc( + d 'xmlSchemaValidateSetFilename') + d vctxt value like(xmlSchemaValidCtxtPtr) + d filename * value options(*string) const char * + + d xmlSchemaValidCtxtGetOptions... + d pr 10i 0 extproc( + d 'xmlSchemaValidCtxtGetOptions') + d ctxt value like(xmlSchemaValidCtxtPtr) + + d xmlSchemaNewValidCtxt... + d pr extproc('xmlSchemaNewValidCtxt') + d like(xmlSchemaValidCtxtPtr) + d schema value like(xmlSchemaPtr) + + d xmlSchemaFreeValidCtxt... + d pr extproc('xmlSchemaFreeValidCtxt') + d ctxt value like(xmlSchemaValidCtxtPtr) + + d xmlSchemaValidateDoc... + d pr 10i 0 extproc('xmlSchemaValidateDoc') + d ctxt value like(xmlSchemaValidCtxtPtr) + d instance value like(xmlDocPtr) + + d xmlSchemaValidateOneElement... + d pr 10i 0 extproc( + d 'xmlSchemaValidateOneElement') + d ctxt value like(xmlSchemaValidCtxtPtr) + d elem value like(xmlNodePtr) + + d xmlSchemaValidateStream... + d pr 10i 0 extproc('xmlSchemaValidateStream') + d ctxt value like(xmlSchemaValidCtxtPtr) + d input value like(xmlParserInputBufferPtr) + d enc value like(xmlCharEncoding) + d sax value like(xmlSAXHandlerPtr) + d user_data * value void * + + d xmlSchemaValidateFile... + d pr 10i 0 extproc('xmlSchemaValidateFile') + d ctxt value like(xmlSchemaValidCtxtPtr) + d filename * value options(*string) const char * + d options 10i 0 value + + d xmlSchemaValidCtxtGetParserCtxt... + d pr extproc( + d 'xmlSchemaValidCtxtGetParserCtxt') + d like(xmlParserCtxtPtr) + d ctxt value like(xmlSchemaValidCtxtPtr) + + * Interface to insert Schemas SAX validation in a SAX stream + + d xmlSchemaSAXPlugPtr... + d s * based(######typedef######) + + d xmlSchemaSAXPlug... + d pr extproc('xmlSchemaSAXPlug') + d like(xmlSchemaSAXPlugPtr) + d ctxt value like(xmlSchemaValidCtxtPtr) + d sax like(xmlSAXHandlerPtr) + d user_data * void *(*) + + d xmlSchemaSAXUnplug... + d pr 10i 0 extproc('xmlSchemaSAXUnplug') + d plug value like(xmlSchemaSAXPlugPtr) + + d xmlSchemaValidateSetLocator... + d pr extproc( + d 'xmlSchemaValidateSetLocator') + d vctxt value like(xmlSchemaValidCtxtPtr) + d f value + d like(xmlSchemaValidityLocatorFunc) + d ctxt * value void * + + /endif LIBXML_SCHEMAS_ENBLD + /endif XML_SCHEMA_H__ diff --git a/os400/libxmlrpg/xmlschemastypes.rpgle b/os400/libxmlrpg/xmlschemastypes.rpgle new file mode 100644 index 0000000..6433c32 --- /dev/null +++ b/os400/libxmlrpg/xmlschemastypes.rpgle @@ -0,0 +1,235 @@ + * Summary: implementation of XML Schema Datatypes + * Description: module providing the XML Schema Datatypes implementation + * both definition and validity checking + * + * Copy: See Copyright for the status of this software. + * + * Author: Patrick Monnerat <pm@datasphere.ch>, DATASPHERE S.A. + + /if not defined(XML_SCHEMA_TYPES_H__) + /define XML_SCHEMA_TYPES_H__ + + /include "libxmlrpg/xmlversion" + + /if defined(LIBXML_SCHEMAS_ENABLED) + + /include "libxmlrpg/schemasInternals" + /include "libxmlrpg/xmlschemas" + + d xmlSchemaWhitespaceValueType... + d s 10i 0 based(######typedef######) enum + d XML_SCHEMA_WHITESPACE_UNKNOWN... + d c 0 + d XML_SCHEMA_WHITESPACE_PRESERVE... + d c 1 + d XML_SCHEMA_WHITESPACE_REPLACE... + d c 2 + d XML_SCHEMA_WHITESPACE_COLLAPSE... + d c 3 + + d xmlSchemaInitTypes... + d pr extproc('xmlSchemaInitTypes') + + d xmlSchemaCleanupTypes... + d pr extproc('xmlSchemaCleanupTypes') + + d xmlSchemaGetPredefinedType... + d pr extproc('xmlSchemaGetPredefinedType') + d like(xmlSchemaTypePtr) + d name * value options(*string) const xmlChar * + d ns * value options(*string) const xmlChar * + + d xmlSchemaValidatePredefinedType... + d pr 10i 0 extproc( + d 'xmlSchemaValidatePredefinedType') + d type value like(xmlSchemaTypePtr) + d value * value options(*string) const xmlChar * + d val * value xmlSchemaValPtr * + + d xmlSchemaValPredefTypeNode... + d pr 10i 0 extproc('xmlSchemaValPredefTypeNode') + d type value like(xmlSchemaTypePtr) + d value * value options(*string) const xmlChar * + d val * value xmlSchemaValPtr * + d node value like(xmlNodePtr) + + d xmlSchemaValidateFacet... + d pr 10i 0 extproc('xmlSchemaValidateFacet') + d base value like(xmlSchemaTypePtr) + d facet value like(xmlSchemaFacetPtr) + d value * value options(*string) const xmlChar * + d val value like(xmlSchemaValPtr) + + d xmlSchemaValidateFacetWhtsp... + d pr 10i 0 extproc( + d 'xmlSchemaValidateFacetWhtsp') + d facet value like(xmlSchemaFacetPtr) + d fws value + d like(xmlSchemaWhitespaceValueType) + d valType value like(xmlSchemaValType) + d value * value options(*string) const xmlChar * + d val value like(xmlSchemaValPtr) + d ws value + d like(xmlSchemaWhitespaceValueType) + + d xmlSchemaFreeValue... + d pr extproc('xmlSchemaFreeValue') + d val value like(xmlSchemaValPtr) + + d xmlSchemaNewFacet... + d pr extproc('xmlSchemaNewFacet') + d like(xmlSchemaFacetPtr) + + d xmlSchemaCheckFacet... + d pr 10i 0 extproc('xmlSchemaCheckFacet') + d facet value like(xmlSchemaFacetPtr) + d typeDecl value like(xmlSchemaTypePtr) + d ctxt value like(xmlSchemaParserCtxtPtr) + d name * value options(*string) const xmlChar * + + d xmlSchemaFreeFacet... + d pr extproc('xmlSchemaFreeFacet') + d facet value like(xmlSchemaFacetPtr) + + d xmlSchemaCompareValues... + d pr 10i 0 extproc('xmlSchemaCompareValues') + d x value like(xmlSchemaValPtr) + d y value like(xmlSchemaValPtr) + + d xmlSchemaGetBuiltInListSimpleTypeItemType... + d pr extproc('xmlSchemaGetBuiltInListSimp- + d leTypeItemType') + d like(xmlSchemaTypePtr) + d type value like(xmlSchemaTypePtr) + + d xmlSchemaValidateListSimpleTypeFacet... + d pr 10i 0 extproc('xmlSchemaValidateListSimple- + d TypeFacet') + d facet value like(xmlSchemaFacetPtr) + d value * value options(*string) const xmlChar * + d actualLen 20u 0 value + d expectedLen * value unsigned long * + + d xmlSchemaGetBuiltInType... + d pr extproc('xmlSchemaGetBuiltInType') + d like(xmlSchemaTypePtr) + d type value like(xmlSchemaValType) + + d xmlSchemaIsBuiltInTypeFacet... + d pr 10i 0 extproc( + d 'xmlSchemaIsBuiltInTypeFacet') + d type value like(xmlSchemaTypePtr) + d facetType 10i 0 value + + d xmlSchemaCollapseString... + d pr * extproc('xmlSchemaCollapseString') xmlChar * + d value * value options(*string) const xmlChar * + + d xmlSchemaWhiteSpaceReplace... + d pr * extproc('xmlSchemaWhiteSpaceReplace')xmlChar * + d value * value options(*string) const xmlChar * + + d xmlSchemaGetFacetValueAsULong... + d pr 20u 0 extproc( + d 'xmlSchemaGetFacetValueAsULong') + d facet value like(xmlSchemaFacetPtr) + + d xmlSchemaValidateLengthFacet... + d pr 10i 0 extproc( + d 'xmlSchemaValidateLengthFacet') + d type value like(xmlSchemaTypePtr) + d facet value like(xmlSchemaFacetPtr) + d value * value options(*string) const xmlChar * + d val value like(xmlSchemaValPtr) + d length 20u 0 + + d xmlSchemaValidateLengthFacetWhtsp... + d pr 10i 0 extproc( + d 'xmlSchemaValidateLengthFacetWhtsp') + d facet value like(xmlSchemaFacetPtr) + d valType value like(xmlSchemaValType) + d value * value options(*string) const xmlChar * + d val value like(xmlSchemaValPtr) + d length 20u 0 + d ws value + d like(xmlSchemaWhitespaceValueType) + + d xmlSchemaValPredefTypeNodeNoNorm... + d pr 10i 0 extproc( + d 'xmlSchemaValPredefTypeNodeNoNorm') + d type value like(xmlSchemaTypePtr) + d value * value options(*string) const xmlChar * + d val like(xmlSchemaValPtr) + d node value like(xmlNodePtr) + + d xmlSchemaGetCanonValue... + d pr 10i 0 extproc('xmlSchemaGetCanonValue') + d val value like(xmlSchemaValPtr) + d retValue * value const xmlChar * * + + d xmlSchemaGetCanonValueWhtsp... + d pr 10i 0 extproc( + d 'xmlSchemaGetCanonValueWhtsp') + d val value like(xmlSchemaValPtr) + d retValue * value const xmlChar * * + d ws value + d like(xmlSchemaWhitespaceValueType) + + d xmlSchemaValueAppend... + d pr 10i 0 extproc('xmlSchemaValueAppend') + d prev value like(xmlSchemaValPtr) + d cur value like(xmlSchemaValPtr) + + d xmlSchemaValueGetNext... + d pr extproc('xmlSchemaValueGetNext') + d like(xmlSchemaValPtr) + d cur value like(xmlSchemaValPtr) + + d xmlSchemaValueGetAsString... + d pr * extproc('xmlSchemaValueGetAsString') const xmlChar * + d val value like(xmlSchemaValPtr) + + d xmlSchemaValueGetAsBoolean... + d pr 10i 0 extproc('xmlSchemaValueGetAsBoolean') + d val value like(xmlSchemaValPtr) + + d xmlSchemaNewStringValue... + d pr extproc('xmlSchemaNewStringValue') + d like(xmlSchemaValPtr) + d type value like(xmlSchemaValType) + d value * value options(*string) const xmlChar * + + d xmlSchemaNewNOTATIONValue... + d pr extproc('xmlSchemaNewNOTATIONValue') + d like(xmlSchemaValPtr) + d name * value options(*string) const xmlChar * + d ns * value options(*string) const xmlChar * + + d xmlSchemaNewQNameValue... + d pr extproc('xmlSchemaNewQNameValue') + d like(xmlSchemaValPtr) + d namespaceName * value options(*string) const xmlChar * + d localName * value options(*string) const xmlChar * + + d xmlSchemaCompareValuesWhtsp... + d pr 10i 0 extproc( + d 'xmlSchemaCompareValuesWhtsp') + d x value like(xmlSchemaValPtr) + d xws value + d like(xmlSchemaWhitespaceValueType) + d y value like(xmlSchemaValPtr) + d yws value + d like(xmlSchemaWhitespaceValueType) + + d xmlSchemaCopyValue... + d pr extproc('xmlSchemaCopyValue') + d like(xmlSchemaValPtr) + d val value like(xmlSchemaValPtr) + + d xmlSchemaGetValType... + d pr extproc('xmlSchemaGetValType') + d like(xmlSchemaValType) + d val value like(xmlSchemaValPtr) + + /endif LIBXML_SCHEMAS_ENBLD + /endif XML_SCHEMA_TYPES_H__ diff --git a/os400/libxmlrpg/xmlstdarg.rpgle b/os400/libxmlrpg/xmlstdarg.rpgle new file mode 100644 index 0000000..4e6f121 --- /dev/null +++ b/os400/libxmlrpg/xmlstdarg.rpgle @@ -0,0 +1,34 @@ + * Summary: va_list support for ILE/RPG. + * + * Copy: See Copyright for the status of this software. + * + * Author: Patrick Monnerat <pm@datasphere.ch>, DATASPHERE S.A. + + /if not defined(XML_STDARG_H__) + /define XML_STDARG_H__ + + /include "libxmlrpg/xmlversion" + + * The va_list object. + + d xmlVaList ds based(######typedef######) + d align qualified + d current * + d next * + + * Procedures. + + d xmlVaStart pr extproc('__xmlVaStart') + d list like(xmlVaList) + d lastargaddr * value + d lastargsize 10u 0 value + + d xmlVaArg pr * extproc('__xmlVaArg') + d list like(xmlVaList) + d dest * value + d argsize 10i 0 value + + d xmlVaEnd pr extproc('__xmlVaEnd') + d list like(xmlVaList) + + /endif XML_STDARG_H__ diff --git a/os400/libxmlrpg/xmlstring.rpgle b/os400/libxmlrpg/xmlstring.rpgle new file mode 100644 index 0000000..41e9eb5 --- /dev/null +++ b/os400/libxmlrpg/xmlstring.rpgle @@ -0,0 +1,162 @@ + * Summary: set of routines to process strings + * Description: type and interfaces needed for the internal string + * handling of the library, especially UTF8 processing. + * + * Copy: See Copyright for the status of this software. + * + * Author: Patrick Monnerat <pm@datasphere.ch>, DATASPHERE S.A. + + /if not defined(XML_STRING_H__) + /define XML_STRING_H__ + + /include "libxmlrpg/xmlversion" + /include "libxmlrpg/xmlstdarg" + + * xmlChar: + * + * This is a basic byte in an UTF-8 encoded string. + * It's unsigned allowing to pinpoint case where char * are assigned + * to xmlChar * (possibly making serialization back impossible). + + d xmlChar s 3u 0 based(######typedef######) + + * xmlChar handling + + d xmlStrdup pr * extproc('xmlStrdup') xmlChar * + d cur * value options(*string) const xmlChar * + + d xmlStrndup pr * extproc('xmlStrndup') xmlChar * + d cur * value options(*string) const xmlChar * + d len 10i 0 value + + d xmlCharStrndup pr * extproc('xmlCharStrndup') xmlChar * + d cur * value options(*string) const char * + d len 10i 0 value + + d xmlCharStrdup pr * extproc('xmlCharStrdup') xmlChar * + d cur * value options(*string) const char * + + d xmlStrsub pr * extproc('xmlStrsub') const xmlChar * + d str * value options(*string) const xmlChar * + d start 10i 0 value + d len 10i 0 value + + d xmlStrchr pr * extproc('xmlStrchr') const xmlChar * + d str * value options(*string) const xmlChar * + d val value like(xmlChar) + + d xmlStrstr pr * extproc('xmlStrstr') const xmlChar * + d str * value options(*string) const xmlChar * + d val * value options(*string) const xmlChar * + + d xmlStrcasestr pr * extproc('xmlStrcasestr') const xmlChar * + d str * value options(*string) const xmlChar * + d val * value options(*string) const xmlChar * + + d xmlStrcmp pr 10i 0 extproc('xmlStrcmp') + d str1 * value options(*string) const xmlChar * + d str2 * value options(*string) const xmlChar * + + d xmlStrncmp pr 10i 0 extproc('xmlStrncmp') + d str1 * value options(*string) const xmlChar * + d str2 * value options(*string) const xmlChar * + d len 10i 0 value + + d xmlStrcasecmp pr 10i 0 extproc('xmlStrcasecmp') + d str1 * value options(*string) const xmlChar * + d str2 * value options(*string) const xmlChar * + + d xmlStrncasecmp pr 10i 0 extproc('xmlStrncasecmp') + d str1 * value options(*string) const xmlChar * + d str2 * value options(*string) const xmlChar * + d len 10i 0 value + + d xmlStrEqual pr 10i 0 extproc('xmlStrEqual') + d str1 * value options(*string) const xmlChar * + d str2 * value options(*string) const xmlChar * + + d xmlStrQEqual pr 10i 0 extproc('xmlStrQEqual') + d pref * value options(*string) const xmlChar * + d name * value options(*string) const xmlChar * + d stre * value options(*string) const xmlChar * + + d xmlStrlen pr 10i 0 extproc('xmlStrlen') + d str * value options(*string) const xmlChar * + + d xmlStrcat pr * extproc('xmlStrcat') xmlChar * + d cur * value options(*string) xmlChar * + d add * value options(*string) const xmlChar * + + d xmlStrncat pr * extproc('xmlStrncat') xmlChar * + d cur * value options(*string) xmlChar * + d add * value options(*string) const xmlChar * + d len 10i 0 value + + d xmlStrncatNew pr * extproc('xmlStrncatNew') xmlChar * + d str1 * value options(*string) const xmlChar * + d str2 * value options(*string) const xmlChar * + d len 10i 0 value + + * xmlStrPrintf() is a vararg function. + * The following prototype supports up to 8 pointer arguments. + * Other argument signature can be achieved by defining alternate + * prototypes redirected to the same function. + + d xmlStrPrintf pr 10i 0 extproc('xmlStrPrintf') + d buf * value options(*string) xmlChar * + d len 10i 0 value + d msg * value options(*string) const xmlChar * + d arg1 * value options(*string: *nopass) + d arg2 * value options(*string: *nopass) + d arg3 * value options(*string: *nopass) + d arg4 * value options(*string: *nopass) + d arg5 * value options(*string: *nopass) + d arg6 * value options(*string: *nopass) + d arg7 * value options(*string: *nopass) + d arg8 * value options(*string: *nopass) + + d xmlStrVPrintf pr 10i 0 extproc('xmlStrVPrintf') + d buf * value options(*string) xmlChar * + d len 10i 0 value + d msg * value options(*string) const xmlChar * + d ap likeds(xmlVaList) + + d xmlGetUTF8Char pr 10i 0 extproc('xmlGetUTF8Char') + d utf * value options(*string) const uns. char * + d len 10i 0 + + d xmlCheckUTF8 pr 10i 0 extproc('xmlCheckUTF8') + d utf * value options(*string) const uns. char * + + d xmlUTF8Strsize pr 10i 0 extproc('xmlUTF8Strsize') + d utf * value options(*string) const xmlChar * + d len 10i 0 value + + d xmlUTF8Strndup pr * extproc('xmlUTF8Strndup') xmlChar * + d utf * value options(*string) const xmlChar * + d len 10i 0 value + + d xmlUTF8Strpos pr * extproc('xmlUTF8Strpos') const xmlChar * + d utf * value options(*string) const xmlChar * + d pos 10i 0 value + + d xmlUTF8Strloc pr 10i 0 extproc('xmlUTF8Strloc') + d utf * value options(*string) const xmlChar * + d utfchar * value options(*string) const xmlChar * + + d xmlUTF8Strsub pr * extproc('xmlUTF8Strsub') xmlChar * + d utf * value options(*string) const xmlChar * + d start 10i 0 value + d len 10i 0 value + + d xmlUTF8Strlen pr 10i 0 extproc('xmlUTF8Strlen') + d utf * value options(*string) const xmlChar * + + d xmlUTF8Size pr 10i 0 extproc('xmlUTF8Size') + d utf * value options(*string) const xmlChar * + + d xmlUTF8Charcmp pr 10i 0 extproc('xmlUTF8Charcmp') + d utf1 * value options(*string) const xmlChar * + d utf2 * value options(*string) const xmlChar * + + /endif XML_STRING_H__ diff --git a/os400/libxmlrpg/xmlunicode.rpgle b/os400/libxmlrpg/xmlunicode.rpgle new file mode 100644 index 0000000..64f7abf --- /dev/null +++ b/os400/libxmlrpg/xmlunicode.rpgle @@ -0,0 +1,668 @@ + * Summary: Unicode character APIs + * Description: API for the Unicode character APIs + * + * Copy: See Copyright for the status of this software. + * + * Author: Patrick Monnerat <pm@datasphere.ch>, DATASPHERE S.A. + + /if not defined(XML_UNICODE_H__) + /define XML_UNICODE_H__ + + /include "libxmlrpg/xmlversion" + + /if defined(LIBXML_UNICODE_ENABLED) + + d xmlUCSIsAegeanNumbers... + d pr 10i 0 extproc('xmlUCSIsAegeanNumbers') + d code 10i 0 value + + d xmlUCSIsAlphabeticPresentationForms... + d pr 10i 0 extproc( + d 'xmlUCSIsAlphabeticPresentationForms' + d ) + d code 10i 0 value + + d xmlUCSIsArabic pr 10i 0 extproc('xmlUCSIsArabic') + d code 10i 0 value + + d xmlUCSIsArabicPresentationFormsA... + d pr 10i 0 extproc( + d 'xmlUCSIsArabicPresentationFormsA') + d code 10i 0 value + + d xmlUCSIsArabicPresentationFormsB... + d pr 10i 0 extproc( + d 'xmlUCSIsArabicPresentationFormsB') + d code 10i 0 value + + d xmlUCSIsArmenian... + d pr 10i 0 extproc('xmlUCSIsArmenian') + d code 10i 0 value + + d xmlUCSIsArrows pr 10i 0 extproc('xmlUCSIsArrows') + d code 10i 0 value + + d xmlUCSIsBasicLatin... + d pr 10i 0 extproc('xmlUCSIsBasicLatin') + d code 10i 0 value + + d xmlUCSIsBengali... + d pr 10i 0 extproc('xmlUCSIsBengali') + d code 10i 0 value + + d xmlUCSIsBlockElements... + d pr 10i 0 extproc('xmlUCSIsBlockElements') + d code 10i 0 value + + d xmlUCSIsBopomofo... + d pr 10i 0 extproc('xmlUCSIsBopomofo') + d code 10i 0 value + + d xmlUCSIsBopomofoExtended... + d pr 10i 0 extproc('xmlUCSIsBopomofoExtended') + d code 10i 0 value + + d xmlUCSIsBoxDrawing... + d pr 10i 0 extproc('xmlUCSIsBoxDrawing') + d code 10i 0 value + + d xmlUCSIsBraillePatterns... + d pr 10i 0 extproc('xmlUCSIsBraillePatterns') + d code 10i 0 value + + d xmlUCSIsBuhid pr 10i 0 extproc('xmlUCSIsBuhid') + d code 10i 0 value + + d xmlUCSIsByzantineMusicalSymbols... + d pr 10i 0 extproc( + d 'xmlUCSIsByzantineMusicalSymbols') + d code 10i 0 value + + d xmlUCSIsCJKCompatibility... + d pr 10i 0 extproc('xmlUCSIsCJKCompatibility') + d code 10i 0 value + + d xmlUCSIsCJKCompatibilityForms... + d pr 10i 0 extproc( + d 'xmlUCSIsCJKCompatibilityForms') + d code 10i 0 value + + d xmlUCSIsCJKCompatibilityIdeographs... + d pr 10i 0 extproc( + d 'xmlUCSIsCJKCompatibilityIdeographs') + d code 10i 0 value + + d xmlUCSIsCJKCompatibilityIdeographsSupplement... + d pr 10i 0 extproc('xmlUCSIsCJKCompatibilityIde- + d ographsSupplement') + d code 10i 0 value + + d xmlUCSIsCJKRadicalsSupplement... + d pr 10i 0 extproc( + d 'xmlUCSIsCJKRadicalsSupplement') + d code 10i 0 value + + d xmlUCSIsCJKSymbolsandPunctuation... + d pr 10i 0 extproc( + d 'xmlUCSIsCJKSymbolsandPunctuation') + d code 10i 0 value + + d xmlUCSIsCJKUnifiedIdeographs... + d pr 10i 0 extproc( + d 'xmlUCSIsCJKUnifiedIdeographs') + d code 10i 0 value + + d xmlUCSIsCJKUnifiedIdeographsExtensionA... + d pr 10i 0 extproc('xmlUCSIsCJKUnifiedIdeograph- + d sExtensionA') + d code 10i 0 value + + d xmlUCSIsCJKUnifiedIdeographsExtensionB... + d pr 10i 0 extproc('xmlUCSIsCJKUnifiedIdeograph- + d sExtensionB') + d code 10i 0 value + + d xmlUCSIsCherokee... + d pr 10i 0 extproc('xmlUCSIsCherokee') + d code 10i 0 value + + d xmlUCSIsCombiningDiacriticalMarks... + d pr 10i 0 extproc( + d 'xmlUCSIsCombiningDiacriticalMarks') + d code 10i 0 value + + d xmlUCSIsCombiningDiacriticalMarksforSymbols... + d pr 10i 0 extproc('xmlUCSIsCombiningDiacritica- + d lMarksforSymbols') + d code 10i 0 value + + d xmlUCSIsCombiningHalfMarks... + d pr 10i 0 extproc('xmlUCSIsCombiningHalfMarks') + d code 10i 0 value + + d xmlUCSIsCombiningMarksforSymbols... + d pr 10i 0 extproc( + d 'xmlUCSIsCombiningMarksforSymbols') + d code 10i 0 value + + d xmlUCSIsControlPictures... + d pr 10i 0 extproc('xmlUCSIsControlPictures') + d code 10i 0 value + + d xmlUCSIsCurrencySymbols... + d pr 10i 0 extproc('xmlUCSIsCurrencySymbols') + d code 10i 0 value + + d xmlUCSIsCypriotSyllabary... + d pr 10i 0 extproc('xmlUCSIsCypriotSyllabary') + d code 10i 0 value + + d xmlUCSIsCyrillic... + d pr 10i 0 extproc('xmlUCSIsCyrillic') + d code 10i 0 value + + d xmlUCSIsCyrillicSupplement... + d pr 10i 0 extproc('xmlUCSIsCyrillicSupplement') + d code 10i 0 value + + d xmlUCSIsDeseret... + d pr 10i 0 extproc('xmlUCSIsDeseret') + d code 10i 0 value + + d xmlUCSIsDevanagari... + d pr 10i 0 extproc('xmlUCSIsDevanagari') + d code 10i 0 value + + d xmlUCSIsDingbats... + d pr 10i 0 extproc('xmlUCSIsDingbats') + d code 10i 0 value + + d xmlUCSIsEnclosedAlphanumerics... + d pr 10i 0 extproc( + d 'xmlUCSIsEnclosedAlphanumerics') + d code 10i 0 value + + d xmlUCSIsEnclosedCJKLettersandMonths... + d pr 10i 0 extproc( + d 'xmlUCSIsEnclosedCJKLettersandMonths' + d ) + d code 10i 0 value + + d xmlUCSIsEthiopic... + d pr 10i 0 extproc('xmlUCSIsEthiopic') + d code 10i 0 value + + d xmlUCSIsGeneralPunctuation... + d pr 10i 0 extproc('xmlUCSIsGeneralPunctuation') + d code 10i 0 value + + d xmlUCSIsGeometricShapes... + d pr 10i 0 extproc('xmlUCSIsGeometricShapes') + d code 10i 0 value + + d xmlUCSIsGeorgian... + d pr 10i 0 extproc('xmlUCSIsGeorgian') + d code 10i 0 value + + d xmlUCSIsGothic pr 10i 0 extproc('xmlUCSIsGothic') + d code 10i 0 value + + d xmlUCSIsGreek pr 10i 0 extproc('xmlUCSIsGreek') + d code 10i 0 value + + d xmlUCSIsGreekExtended... + d pr 10i 0 extproc('xmlUCSIsGreekExtended') + d code 10i 0 value + + d xmlUCSIsGreekandCoptic... + d pr 10i 0 extproc('xmlUCSIsGreekandCoptic') + d code 10i 0 value + + d xmlUCSIsGujarati... + d pr 10i 0 extproc('xmlUCSIsGujarati') + d code 10i 0 value + + d xmlUCSIsGurmukhi... + d pr 10i 0 extproc('xmlUCSIsGurmukhi') + d code 10i 0 value + + d xmlUCSIsHalfwidthandFullwidthForms... + d pr 10i 0 extproc( + d 'xmlUCSIsHalfwidthandFullwidthForms') + d code 10i 0 value + + d xmlUCSIsHangulCompatibilityJamo... + d pr 10i 0 extproc( + d 'xmlUCSIsHangulCompatibilityJamo') + d code 10i 0 value + + d xmlUCSIsHangulJamo... + d pr 10i 0 extproc('xmlUCSIsHangulJamo') + d code 10i 0 value + + d xmlUCSIsHangulSyllables... + d pr 10i 0 extproc('xmlUCSIsHangulSyllables') + d code 10i 0 value + + d xmlUCSIsHanunoo... + d pr 10i 0 extproc('xmlUCSIsHanunoo') + d code 10i 0 value + + d xmlUCSIsHebrew pr 10i 0 extproc('xmlUCSIsHebrew') + d code 10i 0 value + + d xmlUCSIsHighPrivateUseSurrogates... + d pr 10i 0 extproc( + d 'xmlUCSIsHighPrivateUseSurrogates') + d code 10i 0 value + + d xmlUCSIsHighSurrogates... + d pr 10i 0 extproc('xmlUCSIsHighSurrogates') + d code 10i 0 value + + d xmlUCSIsHiragana... + d pr 10i 0 extproc('xmlUCSIsHiragana') + d code 10i 0 value + + d xmlUCSIsIPAExtensions... + d pr 10i 0 extproc('xmlUCSIsIPAExtensions') + d code 10i 0 value + + d xmlUCSIsIdeographicDescriptionCharacters... + d pr 10i 0 extproc('xmlUCSIsIdeographicDescript- + d ionCharacters') + d code 10i 0 value + + d xmlUCSIsKanbun pr 10i 0 extproc('xmlUCSIsKanbun') + d code 10i 0 value + + d xmlUCSIsKangxiRadicals... + d pr 10i 0 extproc('xmlUCSIsKangxiRadicals') + d code 10i 0 value + + d xmlUCSIsKannada... + d pr 10i 0 extproc('xmlUCSIsKannada') + d code 10i 0 value + + d xmlUCSIsKatakana... + d pr 10i 0 extproc('xmlUCSIsKatakana') + d code 10i 0 value + + d xmlUCSIsKatakanaPhoneticExtensions... + d pr 10i 0 extproc( + d 'xmlUCSIsKatakanaPhoneticExtensions') + d code 10i 0 value + + d xmlUCSIsKhmer pr 10i 0 extproc('xmlUCSIsKhmer') + d code 10i 0 value + + d xmlUCSIsKhmerSymbols... + d pr 10i 0 extproc('xmlUCSIsKhmerSymbols') + d code 10i 0 value + + d xmlUCSIsLao pr 10i 0 extproc('xmlUCSIsLao') + d code 10i 0 value + + d xmlUCSIsLatin1Supplement... + d pr 10i 0 extproc('xmlUCSIsLatin1Supplement') + d code 10i 0 value + + d xmlUCSIsLatinExtendedA... + d pr 10i 0 extproc('xmlUCSIsLatinExtendedA') + d code 10i 0 value + + d xmlUCSIsLatinExtendedB... + d pr 10i 0 extproc('xmlUCSIsLatinExtendedB') + d code 10i 0 value + + d xmlUCSIsLatinExtendedAdditional... + d pr 10i 0 extproc( + d 'xmlUCSIsLatinExtendedAdditional') + d code 10i 0 value + + d xmlUCSIsLetterlikeSymbols... + d pr 10i 0 extproc('xmlUCSIsLetterlikeSymbols') + d code 10i 0 value + + d xmlUCSIsLimbu pr 10i 0 extproc('xmlUCSIsLimbu') + d code 10i 0 value + + d xmlUCSIsLinearBIdeograms... + d pr 10i 0 extproc('xmlUCSIsLinearBIdeograms') + d code 10i 0 value + + d xmlUCSIsLinearBSyllabary... + d pr 10i 0 extproc('xmlUCSIsLinearBSyllabary') + d code 10i 0 value + + d xmlUCSIsLowSurrogates... + d pr 10i 0 extproc('xmlUCSIsLowSurrogates') + d code 10i 0 value + + d xmlUCSIsMalayalam... + d pr 10i 0 extproc('xmlUCSIsMalayalam') + d code 10i 0 value + + d xmlUCSIsMathematicalAlphanumericSymbols... + d pr 10i 0 extproc('xmlUCSIsMathematicalAlphanu- + d mericSymbols') + d code 10i 0 value + + d xmlUCSIsMathematicalOperators... + d pr 10i 0 extproc( + d 'xmlUCSIsMathematicalOperators') + d code 10i 0 value + + d xmlUCSIsMiscellaneousMathematicalSymbolsA... + d pr 10i 0 extproc('xmlUCSIsMiscellaneousMathem- + d aticalSymbolsA') + d code 10i 0 value + + d xmlUCSIsMiscellaneousMathematicalSymbolsB... + d pr 10i 0 extproc('xmlUCSIsMiscellaneousMathem- + d aticalSymbolsB') + d code 10i 0 value + + d xmlUCSIsMiscellaneousSymbols... + d pr 10i 0 extproc( + d 'xmlUCSIsMiscellaneousSymbols') + d code 10i 0 value + + d xmlUCSIsMiscellaneousSymbolsandArrows... + d pr 10i 0 extproc('xmlUCSIsMiscellaneousSymbol- + d sandArrows') + d code 10i 0 value + + d xmlUCSIsMiscellaneousTechnical... + d pr 10i 0 extproc( + d 'xmlUCSIsMiscellaneousTechnical') + d code 10i 0 value + + d xmlUCSIsMongolian... + d pr 10i 0 extproc('xmlUCSIsMongolian') + d code 10i 0 value + + d xmlUCSIsMusicalSymbols... + d pr 10i 0 extproc('xmlUCSIsMusicalSymbols') + d code 10i 0 value + + d xmlUCSIsMyanmar... + d pr 10i 0 extproc('xmlUCSIsMyanmar') + d code 10i 0 value + + d xmlUCSIsNumberForms... + d pr 10i 0 extproc('xmlUCSIsNumberForms') + d code 10i 0 value + + d xmlUCSIsOgham pr 10i 0 extproc('xmlUCSIsOgham') + d code 10i 0 value + + d xmlUCSIsOldItalic... + d pr 10i 0 extproc('xmlUCSIsOldItalic') + d code 10i 0 value + + d xmlUCSIsOpticalCharacterRecognition... + d pr 10i 0 extproc( + d 'xmlUCSIsOpticalCharacterRecognition' + d ) + d code 10i 0 value + + d xmlUCSIsOriya pr 10i 0 extproc('xmlUCSIsOriya') + d code 10i 0 value + + d xmlUCSIsOsmanya... + d pr 10i 0 extproc('xmlUCSIsOsmanya') + d code 10i 0 value + + d xmlUCSIsPhoneticExtensions... + d pr 10i 0 extproc('xmlUCSIsPhoneticExtensions') + d code 10i 0 value + + d xmlUCSIsPrivateUse... + d pr 10i 0 extproc('xmlUCSIsPrivateUse') + d code 10i 0 value + + d xmlUCSIsPrivateUseArea... + d pr 10i 0 extproc('xmlUCSIsPrivateUseArea') + d code 10i 0 value + + d xmlUCSIsRunic pr 10i 0 extproc('xmlUCSIsRunic') + d code 10i 0 value + + d xmlUCSIsShavian... + d pr 10i 0 extproc('xmlUCSIsShavian') + d code 10i 0 value + + d xmlUCSIsSinhala... + d pr 10i 0 extproc('xmlUCSIsSinhala') + d code 10i 0 value + + d xmlUCSIsSmallFormVariants... + d pr 10i 0 extproc('xmlUCSIsSmallFormVariants') + d code 10i 0 value + + d xmlUCSIsSpacingModifierLetters... + d pr 10i 0 extproc( + d 'xmlUCSIsSpacingModifierLetters') + d code 10i 0 value + + d xmlUCSIsSpecials... + d pr 10i 0 extproc('xmlUCSIsSpecials') + d code 10i 0 value + + d xmlUCSIsSuperscriptsandSubscripts... + d pr 10i 0 extproc( + d 'xmlUCSIsSuperscriptsandSubscripts') + d code 10i 0 value + + d xmlUCSIsSupplementalArrowsA... + d pr 10i 0 extproc( + d 'xmlUCSIsSupplementalArrowsA') + d code 10i 0 value + + d xmlUCSIsSupplementalArrowsB... + d pr 10i 0 extproc( + d 'xmlUCSIsSupplementalArrowsB') + d code 10i 0 value + + d xmlUCSIsSupplementalMathematicalOperators... + d pr 10i 0 extproc('xmlUCSIsSupplementalMathema- + d ticalOperators') + d code 10i 0 value + + d xmlUCSIsSupplementaryPrivateUseAreaA... + d pr 10i 0 extproc('xmlUCSIsSupplementaryPrivat- + d eUseAreaA') + d code 10i 0 value + + d xmlUCSIsSupplementaryPrivateUseAreaB... + d pr 10i 0 extproc('xmlUCSIsSupplementaryPrivat- + d eUseAreaB') + d code 10i 0 value + + d xmlUCSIsSyriac pr 10i 0 extproc('xmlUCSIsSyriac') + d code 10i 0 value + + d xmlUCSIsTagalog... + d pr 10i 0 extproc('xmlUCSIsTagalog') + d code 10i 0 value + + d xmlUCSIsTagbanwa... + d pr 10i 0 extproc('xmlUCSIsTagbanwa') + d code 10i 0 value + + d xmlUCSIsTags pr 10i 0 extproc('xmlUCSIsTags') + d code 10i 0 value + + d xmlUCSIsTaiLe pr 10i 0 extproc('xmlUCSIsTaiLe') + d code 10i 0 value + + d xmlUCSIsTaiXuanJingSymbols... + d pr 10i 0 extproc('xmlUCSIsTaiXuanJingSymbols') + d code 10i 0 value + + d xmlUCSIsTamil pr 10i 0 extproc('xmlUCSIsTamil') + d code 10i 0 value + + d xmlUCSIsTelugu pr 10i 0 extproc('xmlUCSIsTelugu') + d code 10i 0 value + + d xmlUCSIsThaana pr 10i 0 extproc('xmlUCSIsThaana') + d code 10i 0 value + + d xmlUCSIsThai pr 10i 0 extproc('xmlUCSIsThai') + d code 10i 0 value + + d xmlUCSIsTibetan... + d pr 10i 0 extproc('xmlUCSIsTibetan') + d code 10i 0 value + + d xmlUCSIsUgaritic... + d pr 10i 0 extproc('xmlUCSIsUgaritic') + d code 10i 0 value + + d xmlUCSIsUnifiedCanadianAboriginalSyllabics... + d pr 10i 0 extproc('xmlUCSIsUnifiedCanadianAbor- + d iginalSyllabics') + d code 10i 0 value + + d xmlUCSIsVariationSelectors... + d pr 10i 0 extproc('xmlUCSIsVariationSelectors') + d code 10i 0 value + + d xmlUCSIsVariationSelectorsSupplement... + d pr 10i 0 extproc('xmlUCSIsVariationSelectorsS- + d upplement') + d code 10i 0 value + + d xmlUCSIsYiRadicals... + d pr 10i 0 extproc('xmlUCSIsYiRadicals') + d code 10i 0 value + + d xmlUCSIsYiSyllables... + d pr 10i 0 extproc('xmlUCSIsYiSyllables') + d code 10i 0 value + + d xmlUCSIsYijingHexagramSymbols... + d pr 10i 0 extproc( + d 'xmlUCSIsYijingHexagramSymbols') + d code 10i 0 value + + d xmlUCSIsBlock pr 10i 0 extproc('xmlUCSIsBlock') + d code 10i 0 value + d block * value options(*string) const char * + + d xmlUCSIsCatC pr 10i 0 extproc('xmlUCSIsCatC') + d code 10i 0 value + + d xmlUCSIsCatCc pr 10i 0 extproc('xmlUCSIsCatCc') + d code 10i 0 value + + d xmlUCSIsCatCf pr 10i 0 extproc('xmlUCSIsCatCf') + d code 10i 0 value + + d xmlUCSIsCatCo pr 10i 0 extproc('xmlUCSIsCatCo') + d code 10i 0 value + + d xmlUCSIsCatCs pr 10i 0 extproc('xmlUCSIsCatCs') + d code 10i 0 value + + d xmlUCSIsCatL pr 10i 0 extproc('xmlUCSIsCatL') + d code 10i 0 value + + d xmlUCSIsCatLl pr 10i 0 extproc('xmlUCSIsCatLl') + d code 10i 0 value + + d xmlUCSIsCatLm pr 10i 0 extproc('xmlUCSIsCatLm') + d code 10i 0 value + + d xmlUCSIsCatLo pr 10i 0 extproc('xmlUCSIsCatLo') + d code 10i 0 value + + d xmlUCSIsCatLt pr 10i 0 extproc('xmlUCSIsCatLt') + d code 10i 0 value + + d xmlUCSIsCatLu pr 10i 0 extproc('xmlUCSIsCatLu') + d code 10i 0 value + + d xmlUCSIsCatM pr 10i 0 extproc('xmlUCSIsCatM') + d code 10i 0 value + + d xmlUCSIsCatMc pr 10i 0 extproc('xmlUCSIsCatMc') + d code 10i 0 value + + d xmlUCSIsCatMe pr 10i 0 extproc('xmlUCSIsCatMe') + d code 10i 0 value + + d xmlUCSIsCatMn pr 10i 0 extproc('xmlUCSIsCatMn') + d code 10i 0 value + + d xmlUCSIsCatN pr 10i 0 extproc('xmlUCSIsCatN') + d code 10i 0 value + + d xmlUCSIsCatNd pr 10i 0 extproc('xmlUCSIsCatNd') + d code 10i 0 value + + d xmlUCSIsCatNl pr 10i 0 extproc('xmlUCSIsCatNl') + d code 10i 0 value + + d xmlUCSIsCatNo pr 10i 0 extproc('xmlUCSIsCatNo') + d code 10i 0 value + + d xmlUCSIsCatP pr 10i 0 extproc('xmlUCSIsCatP') + d code 10i 0 value + + d xmlUCSIsCatPc pr 10i 0 extproc('xmlUCSIsCatPc') + d code 10i 0 value + + d xmlUCSIsCatPd pr 10i 0 extproc('xmlUCSIsCatPd') + d code 10i 0 value + + d xmlUCSIsCatPe pr 10i 0 extproc('xmlUCSIsCatPe') + d code 10i 0 value + + d xmlUCSIsCatPf pr 10i 0 extproc('xmlUCSIsCatPf') + d code 10i 0 value + + d xmlUCSIsCatPi pr 10i 0 extproc('xmlUCSIsCatPi') + d code 10i 0 value + + d xmlUCSIsCatPo pr 10i 0 extproc('xmlUCSIsCatPo') + d code 10i 0 value + + d xmlUCSIsCatPs pr 10i 0 extproc('xmlUCSIsCatPs') + d code 10i 0 value + + d xmlUCSIsCatS pr 10i 0 extproc('xmlUCSIsCatS') + d code 10i 0 value + + d xmlUCSIsCatSc pr 10i 0 extproc('xmlUCSIsCatSc') + d code 10i 0 value + + d xmlUCSIsCatSk pr 10i 0 extproc('xmlUCSIsCatSk') + d code 10i 0 value + + d xmlUCSIsCatSm pr 10i 0 extproc('xmlUCSIsCatSm') + d code 10i 0 value + + d xmlUCSIsCatSo pr 10i 0 extproc('xmlUCSIsCatSo') + d code 10i 0 value + + d xmlUCSIsCatZ pr 10i 0 extproc('xmlUCSIsCatZ') + d code 10i 0 value + + d xmlUCSIsCatZl pr 10i 0 extproc('xmlUCSIsCatZl') + d code 10i 0 value + + d xmlUCSIsCatZp pr 10i 0 extproc('xmlUCSIsCatZp') + d code 10i 0 value + + d xmlUCSIsCatZs pr 10i 0 extproc('xmlUCSIsCatZs') + d code 10i 0 value + + d xmlUCSIsCat pr 10i 0 extproc('xmlUCSIsCat') + d code 10i 0 value + d cat * value options(*string) const char * + + /endif LIBXML_UNICODE_ENBLD + /endif XML_UNICODE_H__ diff --git a/os400/libxmlrpg/xmlversion.rpgle.in b/os400/libxmlrpg/xmlversion.rpgle.in new file mode 100644 index 0000000..81676be --- /dev/null +++ b/os400/libxmlrpg/xmlversion.rpgle.in @@ -0,0 +1,352 @@ + * Summary: compile-time version informations + * Description: compile-time version informations for the XML library + * + * Copy: See Copyright for the status of this software. + * + * Author: Patrick Monnerat <pm@datasphere.ch>, DATASPHERE S.A. + + /if not defined(XML_VERSION_H__) + /define XML_VERSION_H__ + + /include "libxmlrpg/xmlexports" + + * use those to be sure nothing nasty will happen if + * your library and includes mismatch + + + d xmlCheckVersion... + d pr extproc('xmlCheckVersion') + d version 10i 0 value + + * LIBXML_DOTTED_VERSION: + * + * the version string like "1.2.3" + + d LIBXML_DOTTED_VERSION... + d c '@VERSION@' + + * LIBXML_VERSION: + * + * the version number: 1.2.3 value is 10203 + + d LIBXML_VERSION c @LIBXML_VERSION_NUMBER@ + + * LIBXML_VERSION_STRING: + * + * the version number string, 1.2.3 value is "10203" + + d LIBXML_VERSION_STRING... + d c '@LIBXML_VERSION_NUMBER@' + + * LIBXML_VERSION_EXTRA: + * + * extra version information, used to show a CVS compilation + + d LIBXML_VERSION_EXTRA... + d c '@LIBXML_VERSION_EXTRA@' + + * For conditional compilation + /define DEFINED_1 + /undefine DEFINED_0 + + /if defined(DEFINED_@WITH_TRIO@) + * WITH_TRIO: + * + * defined if the trio support need to be configured in + + /define WITH_TRIO + /else + * WITHOUT_TRIO: + * + * defined if the trio support should not be configured in + + /define WITHOUT_TRIO + /endif + + * LIBXML_THREAD_ENABLED: + * + * Whether the thread support is configured in + + /if defined(DEFINED_@WITH_THREADS@) + /define LIBXML_THREAD_ENABLED + /endif + + * LIBXML_THREAD_ALLOC_ENABLED: + * + * Whether the allocation hooks are per-thread + + /if defined(DEFINED_@WITH_THREAD_ALLOC@) + /define LIBXML_THREAD_ALLOC_ENABLED + /endif + + * LIBXML_TREE_ENABLED: + * + * Whether the DOM like tree manipulation API support is configured in + + /if defined(DEFINED_@WITH_TREE@) + /define LIBXML_TREE_ENABLED + /endif + + * LIBXML_OUTPUT_ENABLED: + * + * Whether the serialization/saving support is configured in + + /if defined(DEFINED_@WITH_OUTPUT@) + /define LIBXML_OUTPUT_ENABLED + /endif + + * LIBXML_PUSH_ENABLED: + * + * Whether the push parsing interfaces are configured in + + /if defined(DEFINED_@WITH_PUSH@) + /define LIBXML_PUSH_ENABLED + /endif + + * LIBXML_READER_ENABLED: + * + * Whether the xmlReader parsing interface is configured in + + /if defined(DEFINED_@WITH_READER@) + /define LIBXML_READER_ENABLED + /endif + + * LIBXML_PATTERN_ENABLED: + * + * Whether the xmlPattern node selection interface is configured in + + /if defined(DEFINED_@WITH_PATTERN@) + /define LIBXML_PATTERN_ENABLED + /endif + + * LIBXML_WRITER_ENABLED: + * + * Whether the xmlWriter saving interface is configured in + + /if defined(DEFINED_@WITH_WRITER@) + /define LIBXML_WRITER_ENABLED + /endif + + * LIBXML_SAX1_ENABLED: + * + * Whether the older SAX1 interface is configured in + + /if defined(DEFINED_@WITH_SAX1@) + /define LIBXML_SAX1_ENABLED + /endif + + * LIBXML_FTP_ENABLED: + * + * Whether the FTP support is configured in + + /if defined(DEFINED_@WITH_FTP@) + /define LIBXML_FTP_ENABLED + /endif + + * LIBXML_HTTP_ENABLED: + * + * Whether the HTTP support is configured in + + /if defined(DEFINED_@WITH_HTTP@) + /define LIBXML_HTTP_ENABLED + /endif + + * LIBXML_VALID_ENABLED: + * + * Whether the DTD validation support is configured in + + /if defined(DEFINED_@WITH_VALID@) + /define LIBXML_VALID_ENABLED + /endif + + * LIBXML_HTML_ENABLED: + * + * Whether the HTML support is configured in + + /if defined(DEFINED_@WITH_HTML@) + /define LIBXML_HTML_ENABLED + /endif + + * LIBXML_LEGACY_ENABLED: + * + * Whether the deprecated APIs are compiled in for compatibility + + /if defined(DEFINED_@WITH_LEGACY@) + /define LIBXML_LEGACY_ENABLED + /endif + + * LIBXML_C14N_ENABLED: + * + * Whether the Canonicalization support is configured in + + /if defined(DEFINED_@WITH_C14N@) + /define LIBXML_C14N_ENABLED + /endif + + * LIBXML_CATALOG_ENABLED: + * + * Whether the Catalog support is configured in + + /if defined(DEFINED_@WITH_CATALOG@) + /define LIBXML_CATALOG_ENABLED + /endif + + * LIBXML_DOCB_ENABLED: + * + * Whether the SGML Docbook support is configured in + + /if defined(DEFINED_@WITH_DOCB@) + /define LIBXML_DOCB_ENABLED + /endif + + * LIBXML_XPATH_ENABLED: + * + * Whether XPath is configured in + + /if defined(DEFINED_@WITH_XPATH@) + /define LIBXML_XPATH_ENABLED + /endif + + * LIBXML_XPTR_ENABLED: + * + * Whether XPointer is configured in + + /if defined(DEFINED_@WITH_XPTR@) + /define LIBXML_XPTR_ENABLED + /endif + + * LIBXML_XINCLUDE_ENABLED: + * + * Whether XInclude is configured in + + /if defined(DEFINED_@WITH_XINCLUDE@) + /define LIBXML_XINCLUDE_ENABLED + /endif + + * LIBXML_ICONV_ENABLED: + * + * Whether iconv support is available + + /if defined(DEFINED_@WITH_ICONV@) + /define LIBXML_ICONV_ENABLED + /endif + + * LIBXML_ICU_ENABLED: + * + * Whether icu support is available + + /if defined(DEFINED_@WITH_ICU@) + /define LIBXML_ICU_ENABLED + /endif + + * LIBXML_ISO8859X_ENABLED: + * + * Whether ISO-8859-* support is made available in case iconv is not + + /if defined(DEFINED_@WITH_ISO8859X@) + /define LIBXML_ISO8859X_ENABLED + /endif + + * LIBXML_DEBUG_ENABLED: + * + * Whether Debugging module is configured in + + /if defined(DEFINED_@WITH_DEBUG@) + /define LIBXML_DEBUG_ENABLED + /endif + + * DEBUG_MEMORY_LOCATION: + * + * Whether the memory debugging is configured in + + /if defined(DEFINED_@WITH_MEM_DEBUG@) + /define DEBUG_MEMORY_LOCATION + /endif + + * LIBXML_DEBUG_RUNTIME: + * + * Whether the runtime debugging is configured in + + /if defined(DEFINED_@WITH_RUN_DEBUG@) + /define LIBXML_DEBUG_RUNTIME + /endif + + * LIBXML_UNICODE_ENABLED: + * + * Whether the Unicode related interfaces are compiled in + + /if defined(DEFINED_@WITH_REGEXPS@) + /define LIBXML_UNICODE_ENABLED + /endif + + * LIBXML_REGEXP_ENABLED: + * + * Whether the regular expressions interfaces are compiled in + + /if defined(DEFINED_@WITH_REGEXPS@) + /define LIBXML_REGEXP_ENABLED + /endif + + * LIBXML_AUTOMATA_ENABLED: + * + * Whether the automata interfaces are compiled in + + /if defined(DEFINED_@WITH_REGEXPS@) + /define LIBXML_AUTOMATA_ENABLED + /endif + + * LIBXML_EXPR_ENABLED: + * + * Whether the formal expressions interfaces are compiled in + + /if defined(DEFINED_@WITH_SCHEMAS@) + /define LIBXML_EXPR_ENABLED + /endif + + * LIBXML_SCHEMAS_ENABLED: + * + * Whether the Schemas validation interfaces are compiled in + + /if defined(DEFINED_@WITH_SCHEMAS@) + /define LIBXML_SCHEMAS_ENABLED + /endif + + * LIBXML_SCHEMATRON_ENABLED: + * + * Whether the Schematron validation interfaces are compiled in + + /if defined(DEFINED_@WITH_SCHEMATRON@) + /define LIBXML_SCHEMATRON_ENABLED + /endif + + * LIBXML_MODULES_ENABLED: + * + * Whether the module interfaces are compiled in + + /if defined(DEFINED_@WITH_MODULES@) + /define LIBXML_MODULES_ENABLED + + * LIBXML_MODULE_EXTENSION: + * + * the string suffix used by dynamic modules (usually shared libraries) + + d LIBXML_MODULE_EXTENSION... + d c '.SRVPGM' + /endif + + * LIBXML_ZLIB_ENABLED: + * + * Whether the Zlib support is compiled in + + /if defined(DEFINED_@WITH_ZLIB@) + /define LIBXML_ZLIB_ENABLED + /endif + + * LIBXML_LZMA_ENABLED: + * + * Whether the Lzma support is compiled in + + /if defined(DEFINED_@WITH_LZMA@) + /define LIBXML_LZMA_ENABLED + /endif + /endif diff --git a/os400/libxmlrpg/xmlwriter.rpgle b/os400/libxmlrpg/xmlwriter.rpgle new file mode 100644 index 0000000..f2d3d30 --- /dev/null +++ b/os400/libxmlrpg/xmlwriter.rpgle @@ -0,0 +1,725 @@ + * Summary: text writing API for XML + * Description: text writing API for XML + * + * Copy: See Copyright for the status of this software. + * + * Author: Patrick Monnerat <pm@datasphere.ch>, DATASPHERE S.A. + + /if not defined(XML_XMLWRITER_H__) + /define XML_XMLWRITER_H__ + + /include "libxmlrpg/xmlversion" + + /if defined(LIBXML_WRITER_ENABLED) + + /include "libxmlrpg/xmlstdarg" + /include "libxmlrpg/xmlIO" + /include "libxmlrpg/list" + /include "libxmlrpg/xmlstring" + + d xmlTextWriterPtr... + d s * based(######typedef######) + + * Constructors & Destructor + + d xmlNewTextWriter... + d pr extproc('xmlNewTextWriter') + d like(xmlTextWriterPtr) + d out value like(xmlOutputBufferPtr) + + d xmlNewTextWriterFilename... + d pr extproc('xmlNewTextWriterFilename') + d like(xmlTextWriterPtr) + d uri * value options(*string) const char * + d compression 10i 0 value + + d xmlNewTextWriterMemory... + d pr extproc('xmlNewTextWriterMemory') + d like(xmlTextWriterPtr) + d buf value like(xmlBufferPtr) + d compression 10i 0 value + + d xmlNewTextWriterPushParser... + d pr extproc('xmlNewTextWriterPushParser') + d like(xmlTextWriterPtr) + d ctxt value like(xmlParserCtxtPtr) + d compression 10i 0 value + + d xmlNewTextWriterDoc... + d pr extproc('xmlNewTextWriterDoc') + d like(xmlTextWriterPtr) + d doc like(xmlDocPtr) + d compression 10i 0 value + + d xmlNewTextWriterTree... + d pr extproc('xmlNewTextWriterTree') + d like(xmlTextWriterPtr) + d doc value like(xmlDocPtr) + d node value like(xmlNodePtr) + d compression 10i 0 value + + d xmlFreeTextWriter... + d pr extproc('xmlFreeTextWriter') + d writer value like(xmlTextWriterPtr) + + * Functions + + * Document + + d xmlTextWriterStartDocument... + d pr 10i 0 extproc('xmlTextWriterStartDocument') + d writer value like(xmlTextWriterPtr) + d version * value options(*string) const char * + d encoding * value options(*string) const char * + d standalone * value options(*string) const char * + + d xmlTextWriterEndDocument... + d pr 10i 0 extproc('xmlTextWriterEndDocument') + d writer value like(xmlTextWriterPtr) + + * Comments + + d xmlTextWriterStartComment... + d pr 10i 0 extproc('xmlTextWriterStartComment') + d writer value like(xmlTextWriterPtr) + + d xmlTextWriterEndComment... + d pr 10i 0 extproc('xmlTextWriterEndComment') + d writer value like(xmlTextWriterPtr) + + d xmlTextWriterWriteFormatComment... + d pr 10i 0 extproc( + d 'xmlTextWriterWriteFormatComment') + d writer value like(xmlTextWriterPtr) + d format * value options(*string: *nopass) const char * + d #vararg1 * value options(*string: *nopass) void * + d #vararg2 * value options(*string: *nopass) void * + d #vararg3 * value options(*string: *nopass) void * + d #vararg4 * value options(*string: *nopass) void * + d #vararg5 * value options(*string: *nopass) void * + d #vararg6 * value options(*string: *nopass) void * + d #vararg7 * value options(*string: *nopass) void * + d #vararg8 * value options(*string: *nopass) void * + + d xmlTextWriterWriteVFormatComment... + d pr 10i 0 extproc( + d 'xmlTextWriterWriteVFormatComment') + d writer value like(xmlTextWriterPtr) + d format * value options(*string) const char * + d argptr likeds(xmlVaList) + + d xmlTextWriterWriteComment... + d pr 10i 0 extproc('xmlTextWriterWriteComment') + d writer value like(xmlTextWriterPtr) + d content * value options(*string) const xmlChar * + + * Elements + + d xmlTextWriterStartElement... + d pr 10i 0 extproc('xmlTextWriterStartElement') + d writer value like(xmlTextWriterPtr) + d name * value options(*string) const xmlChar * + + d xmlTextWriterStartElementNS... + d pr 10i 0 extproc( + d 'xmlTextWriterStartElementNS') + d writer value like(xmlTextWriterPtr) + d prefix * value options(*string) const xmlChar * + d name * value options(*string) const xmlChar * + d namespaceURI * value options(*string) const xmlChar * + + d xmlTextWriterEndElement... + d pr 10i 0 extproc('xmlTextWriterEndElement') + d writer value like(xmlTextWriterPtr) + + d xmlTextWriterFullEndElement... + d pr 10i 0 extproc( + d 'xmlTextWriterFullEndElement') + d writer value like(xmlTextWriterPtr) + + * Elements conveniency functions + + d xmlTextWriterWriteFormatElement... + d pr 10i 0 extproc( + d 'xmlTextWriterWriteFormatElement') + d writer value like(xmlTextWriterPtr) + d name * value options(*string) const xmlChar * + d format * value options(*string) const char * + d #vararg1 * value options(*string: *nopass) void * + d #vararg2 * value options(*string: *nopass) void * + d #vararg3 * value options(*string: *nopass) void * + d #vararg4 * value options(*string: *nopass) void * + d #vararg5 * value options(*string: *nopass) void * + d #vararg6 * value options(*string: *nopass) void * + d #vararg7 * value options(*string: *nopass) void * + d #vararg8 * value options(*string: *nopass) void * + + d xmlTextWriterWriteVFormatElement... + d pr 10i 0 extproc( + d 'xmlTextWriterWriteVFormatElement') + d writer value like(xmlTextWriterPtr) + d name * value options(*string) const xmlChar * + d format * value options(*string) const char * + d argptr likeds(xmlVaList) + + d xmlTextWriterWriteElement... + d pr 10i 0 extproc('xmlTextWriterWriteElement') + d writer value like(xmlTextWriterPtr) + d name * value options(*string) const xmlChar * + d content * value options(*string) const xmlChar * + + d xmlTextWriterWriteFormatElementNS... + d pr 10i 0 extproc( + d 'xmlTextWriterWriteFormatElementNS') + d writer value like(xmlTextWriterPtr) + d prefix * value options(*string) const xmlChar * + d name * value options(*string) const xmlChar * + d namespaceURI * value options(*string) const xmlChar * + d format * value options(*string) const char * + d #vararg1 * value options(*string: *nopass) void * + d #vararg2 * value options(*string: *nopass) void * + d #vararg3 * value options(*string: *nopass) void * + d #vararg4 * value options(*string: *nopass) void * + d #vararg5 * value options(*string: *nopass) void * + d #vararg6 * value options(*string: *nopass) void * + d #vararg7 * value options(*string: *nopass) void * + d #vararg8 * value options(*string: *nopass) void * + + d xmlTextWriterWriteVFormatElementNS... + d pr 10i 0 extproc( + d 'xmlTextWriterWriteVFormatElementNS') + d writer value like(xmlTextWriterPtr) + d prefix * value options(*string) const xmlChar * + d name * value options(*string) const xmlChar * + d namespaceURI * value options(*string) const xmlChar * + d format * value options(*string) const char * + d argptr likeds(xmlVaList) + + d xmlTextWriterWriteElementNS... + d pr 10i 0 extproc( + d 'xmlTextWriterWriteElementNS') + d writer value like(xmlTextWriterPtr) + d prefix * value options(*string) const xmlChar * + d name * value options(*string) const xmlChar * + d namespaceURI * value options(*string) const xmlChar * + d content * value options(*string) const xmlChar * + + * Text + + d xmlTextWriterWriteFormatRaw... + d pr 10i 0 extproc( + d 'xmlTextWriterWriteFormatRaw') + d writer value like(xmlTextWriterPtr) + d format * value options(*string) const char * + d #vararg1 * value options(*string: *nopass) void * + d #vararg2 * value options(*string: *nopass) void * + d #vararg3 * value options(*string: *nopass) void * + d #vararg4 * value options(*string: *nopass) void * + d #vararg5 * value options(*string: *nopass) void * + d #vararg6 * value options(*string: *nopass) void * + d #vararg7 * value options(*string: *nopass) void * + d #vararg8 * value options(*string: *nopass) void * + + d xmlTextWriterWriteVFormatRaw... + d pr 10i 0 extproc( + d 'xmlTextWriterWriteVFormatRaw') + d writer value like(xmlTextWriterPtr) + d format * value options(*string) const char * + d argptr likeds(xmlVaList) + + d xmlTextWriterWriteRawLen... + d pr 10i 0 extproc('xmlTextWriterWriteRawLen') + d writer value like(xmlTextWriterPtr) + d content * value options(*string) const xmlChar * + d len 10i 0 value + + d xmlTextWriterWriteRaw... + d pr 10i 0 extproc('xmlTextWriterWriteRaw') + d writer value like(xmlTextWriterPtr) + d content * value options(*string) const xmlChar * + + d xmlTextWriterWriteFormatString... + d pr 10i 0 extproc( + d 'xmlTextWriterWriteFormatString') + d writer value like(xmlTextWriterPtr) + d format * value options(*string) const char * + d #vararg1 * value options(*string: *nopass) void * + d #vararg2 * value options(*string: *nopass) void * + d #vararg3 * value options(*string: *nopass) void * + d #vararg4 * value options(*string: *nopass) void * + d #vararg5 * value options(*string: *nopass) void * + d #vararg6 * value options(*string: *nopass) void * + d #vararg7 * value options(*string: *nopass) void * + d #vararg8 * value options(*string: *nopass) void * + + d xmlTextWriterWriteVFormatString... + d pr 10i 0 extproc( + d 'xmlTextWriterWriteVFormatString') + d writer value like(xmlTextWriterPtr) + d format * value options(*string) const char * + d argptr likeds(xmlVaList) + + d xmlTextWriterWriteString... + d pr 10i 0 extproc('xmlTextWriterWriteString') + d writer value like(xmlTextWriterPtr) + d content * value options(*string) const xmlChar * + + d xmlTextWriterWriteBase64... + d pr 10i 0 extproc('xmlTextWriterWriteBase64') + d writer value like(xmlTextWriterPtr) + d data * value options(*string) const char * + d start 10i 0 value + d len 10i 0 value + + d xmlTextWriterWriteBinHex... + d pr 10i 0 extproc('xmlTextWriterWriteBinHex') + d writer value like(xmlTextWriterPtr) + d data * value options(*string) const char * + d start 10i 0 value + d len 10i 0 value + + * Attributes + + d xmlTextWriterStartAttribute... + d pr 10i 0 extproc( + d 'xmlTextWriterStartAttribute') + d writer value like(xmlTextWriterPtr) + d name * value options(*string) const xmlChar * + + d xmlTextWriterStartAttributeNS... + d pr 10i 0 extproc( + d 'xmlTextWriterStartAttributeNS') + d writer value like(xmlTextWriterPtr) + d prefix * value options(*string) const xmlChar * + d name * value options(*string) const xmlChar * + d namespaceURI * value options(*string) const xmlChar * + + d xmlTextWriterEndAttribute... + d pr 10i 0 extproc('xmlTextWriterEndAttribute') + d writer value like(xmlTextWriterPtr) + + * Attributes conveniency functions + + d xmlTextWriterWriteFormatAttribute... + d pr 10i 0 extproc( + d 'xmlTextWriterWriteFormatAttribute') + d writer value like(xmlTextWriterPtr) + d name * value options(*string) const xmlChar * + d format * value options(*string) const char * + d #vararg1 * value options(*string: *nopass) void * + d #vararg2 * value options(*string: *nopass) void * + d #vararg3 * value options(*string: *nopass) void * + d #vararg4 * value options(*string: *nopass) void * + d #vararg5 * value options(*string: *nopass) void * + d #vararg6 * value options(*string: *nopass) void * + d #vararg7 * value options(*string: *nopass) void * + d #vararg8 * value options(*string: *nopass) void * + + d xmlTextWriterWriteVFormatAttribute... + d pr 10i 0 extproc( + d 'xmlTextWriterWriteVFormatAttribute') + d writer value like(xmlTextWriterPtr) + d name * value options(*string) const xmlChar * + d format * value options(*string) const char * + d argptr likeds(xmlVaList) + + d xmlTextWriterWriteAttribute... + d pr 10i 0 extproc( + d 'xmlTextWriterWriteAttribute') + d writer value like(xmlTextWriterPtr) + d name * value options(*string) const xmlChar * + d content * value options(*string) const xmlChar * + + d xmlTextWriterWriteFormatAttributeNS... + d pr 10i 0 extproc( + d 'xmlTextWriterWriteFormatAttributeNS' + d ) + d writer value like(xmlTextWriterPtr) + d prefix * value options(*string) const xmlChar * + d name * value options(*string) const xmlChar * + d namespaceURI * value options(*string) const xmlChar * + d format * value options(*string) const char * + d #vararg1 * value options(*string: *nopass) void * + d #vararg2 * value options(*string: *nopass) void * + d #vararg3 * value options(*string: *nopass) void * + d #vararg4 * value options(*string: *nopass) void * + d #vararg5 * value options(*string: *nopass) void * + d #vararg6 * value options(*string: *nopass) void * + d #vararg7 * value options(*string: *nopass) void * + d #vararg8 * value options(*string: *nopass) void * + + d xmlTextWriterWriteVFormatAttributeNS... + d pr 10i 0 extproc('xmlTextWriterWriteVFormatAt- + d tributeNS') + d writer value like(xmlTextWriterPtr) + d prefix * value options(*string) const xmlChar * + d name * value options(*string) const xmlChar * + d namespaceURI * value options(*string) const xmlChar * + d format * value options(*string) const char * + d argptr likeds(xmlVaList) + + d xmlTextWriterWriteAttributeNS... + d pr 10i 0 extproc( + d 'xmlTextWriterWriteAttributeNS') + d writer value like(xmlTextWriterPtr) + d prefix * value options(*string) const xmlChar * + d name * value options(*string) const xmlChar * + d namespaceURI * value options(*string) const xmlChar * + d content * value options(*string) const xmlChar * + + * PI's + + d xmlTextWriterStartPI... + d pr 10i 0 extproc('xmlTextWriterStartPI') + d writer value like(xmlTextWriterPtr) + d target * value options(*string) const xmlChar * + + d xmlTextWriterEndPI... + d pr 10i 0 extproc('xmlTextWriterEndPI') + d writer value like(xmlTextWriterPtr) + + * PI conveniency functions + + d xmlTextWriterWriteFormatPI... + d pr 10i 0 extproc('xmlTextWriterWriteFormatPI') + d writer value like(xmlTextWriterPtr) + d target * value options(*string) const xmlChar * + d format * value options(*string) const char * + d #vararg1 * value options(*string: *nopass) void * + d #vararg2 * value options(*string: *nopass) void * + d #vararg3 * value options(*string: *nopass) void * + d #vararg4 * value options(*string: *nopass) void * + d #vararg5 * value options(*string: *nopass) void * + d #vararg6 * value options(*string: *nopass) void * + d #vararg7 * value options(*string: *nopass) void * + d #vararg8 * value options(*string: *nopass) void * + + d xmlTextWriterWriteVFormatPI... + d pr 10i 0 extproc( + d 'xmlTextWriterWriteVFormatPI') + d writer value like(xmlTextWriterPtr) + d target * value options(*string) const xmlChar * + d format * value options(*string) const char * + d argptr likeds(xmlVaList) + + d xmlTextWriterWritePI... + d pr 10i 0 extproc('xmlTextWriterWritePI') + d writer value like(xmlTextWriterPtr) + d target * value options(*string) const xmlChar * + d content * value options(*string) const xmlChar * + + * xmlTextWriterWriteProcessingInstruction: + * + * This macro maps to xmlTextWriterWritePI + + d xmlTextWriterWriteProcessingInstruction... + d pr 10i 0 extproc('xmlTextWriterWritePI') + d writer value like(xmlTextWriterPtr) + d target * value options(*string) const xmlChar * + d content * value options(*string) const xmlChar * + + * CDATA + + d xmlTextWriterStartCDATA... + d pr 10i 0 extproc('xmlTextWriterStartCDATA') + d writer value like(xmlTextWriterPtr) + + d xmlTextWriterEndCDATA... + d pr 10i 0 extproc('xmlTextWriterEndCDATA') + d writer value like(xmlTextWriterPtr) + + * CDATA conveniency functions + + d xmlTextWriterWriteFormatCDATA... + d pr 10i 0 extproc( + d 'xmlTextWriterWriteFormatCDATA') + d writer value like(xmlTextWriterPtr) + d format * value options(*string) const char * + d #vararg1 * value options(*string: *nopass) void * + d #vararg2 * value options(*string: *nopass) void * + d #vararg3 * value options(*string: *nopass) void * + d #vararg4 * value options(*string: *nopass) void * + d #vararg5 * value options(*string: *nopass) void * + d #vararg6 * value options(*string: *nopass) void * + d #vararg7 * value options(*string: *nopass) void * + d #vararg8 * value options(*string: *nopass) void * + + d xmlTextWriterWriteVFormatCDATA... + d pr 10i 0 extproc( + d 'xmlTextWriterWriteVFormatCDATA') + d writer value like(xmlTextWriterPtr) + d format * value options(*string) const char * + d argptr likeds(xmlVaList) + + d xmlTextWriterWriteCDATA... + d pr 10i 0 extproc('xmlTextWriterWriteCDATA') + d writer value like(xmlTextWriterPtr) + d content * value options(*string) const xmlChar * + + * DTD + + d xmlTextWriterStartDTD... + d pr 10i 0 extproc('xmlTextWriterStartDTD') + d writer value like(xmlTextWriterPtr) + d name * value options(*string) const xmlChar * + d pubid * value options(*string) const xmlChar * + d sysid * value options(*string) const xmlChar * + + d xmlTextWriterEndDTD... + d pr 10i 0 extproc('xmlTextWriterEndDTD') + d writer value like(xmlTextWriterPtr) + + * DTD conveniency functions + + d xmlTextWriterWriteFormatDTD... + d pr 10i 0 extproc( + d 'xmlTextWriterWriteFormatDTD') + d writer value like(xmlTextWriterPtr) + d name * value options(*string) const xmlChar * + d pubid * value options(*string) const xmlChar * + d sysid * value options(*string) const xmlChar * + d format * value options(*string) const char * + d #vararg1 * value options(*string: *nopass) void * + d #vararg2 * value options(*string: *nopass) void * + d #vararg3 * value options(*string: *nopass) void * + d #vararg4 * value options(*string: *nopass) void * + d #vararg5 * value options(*string: *nopass) void * + d #vararg6 * value options(*string: *nopass) void * + d #vararg7 * value options(*string: *nopass) void * + d #vararg8 * value options(*string: *nopass) void * + + d xmlTextWriterWriteVFormatDTD... + d pr 10i 0 extproc( + d 'xmlTextWriterWriteVFormatDTD') + d writer value like(xmlTextWriterPtr) + d name * value options(*string) const xmlChar * + d pubid * value options(*string) const xmlChar * + d sysid * value options(*string) const xmlChar * + d format * value options(*string) const char * + d argptr likeds(xmlVaList) + + d xmlTextWriterWriteDTD... + d pr 10i 0 extproc('xmlTextWriterWriteDTD') + d writer value like(xmlTextWriterPtr) + d name * value options(*string) const xmlChar * + d pubid * value options(*string) const xmlChar * + d sysid * value options(*string) const xmlChar * + d subset * value options(*string) const xmlChar * + + * xmlTextWriterWriteDocType: + * + * this macro maps to xmlTextWriterWriteDTD + + d xmlTextWriterWriteDocType... + d pr 10i 0 extproc('xmlTextWriterWriteDTD') + d writer value like(xmlTextWriterPtr) + d name * value options(*string) const xmlChar * + d pubid * value options(*string) const xmlChar * + d sysid * value options(*string) const xmlChar * + d subset * value options(*string) const xmlChar * + + * DTD element definition + + d xmlTextWriterStartDTDElement... + d pr 10i 0 extproc( + d 'xmlTextWriterStartDTDElement') + d writer value like(xmlTextWriterPtr) + d name * value options(*string) const xmlChar * + + d xmlTextWriterEndDTDElement... + d pr 10i 0 extproc('xmlTextWriterEndDTDElement') + d writer value like(xmlTextWriterPtr) + + * DTD element definition conveniency functions + + d xmlTextWriterWriteFormatDTDElement... + d pr 10i 0 extproc( + d 'xmlTextWriterWriteFormatDTDElement') + d writer value like(xmlTextWriterPtr) + d name * value options(*string) const xmlChar * + d format * value options(*string) const char * + d #vararg1 * value options(*string: *nopass) void * + d #vararg2 * value options(*string: *nopass) void * + d #vararg3 * value options(*string: *nopass) void * + d #vararg4 * value options(*string: *nopass) void * + d #vararg5 * value options(*string: *nopass) void * + d #vararg6 * value options(*string: *nopass) void * + d #vararg7 * value options(*string: *nopass) void * + d #vararg8 * value options(*string: *nopass) void * + + d xmlTextWriterWriteVFormatDTDElement... + d pr 10i 0 extproc( + d 'xmlTextWriterWriteVFormatDTDElement' + d ) + d writer value like(xmlTextWriterPtr) + d name * value options(*string) const xmlChar * + d format * value options(*string) const char * + d argptr likeds(xmlVaList) + + d xmlTextWriterWriteDTDElement... + d pr 10i 0 extproc( + d 'xmlTextWriterWriteDTDElement') + d writer value like(xmlTextWriterPtr) + d name * value options(*string) const xmlChar * + d content * value options(*string) const xmlChar * + + * DTD attribute list definition + + d xmlTextWriterStartDTDAttlist... + d pr 10i 0 extproc( + d 'xmlTextWriterStartDTDAttlist') + d writer value like(xmlTextWriterPtr) + d name * value options(*string) const xmlChar * + + d xmlTextWriterEndDTDAttlist... + d pr 10i 0 extproc('xmlTextWriterEndDTDAttlist') + d writer value like(xmlTextWriterPtr) + + * DTD attribute list definition conveniency functions + + d xmlTextWriterWriteFormatDTDAttlist... + d pr 10i 0 extproc( + d 'xmlTextWriterWriteFormatDTDAttlist') + d writer value like(xmlTextWriterPtr) + d name * value options(*string) const xmlChar * + d format * value options(*string) const char * + d #vararg1 * value options(*string: *nopass) void * + d #vararg2 * value options(*string: *nopass) void * + d #vararg3 * value options(*string: *nopass) void * + d #vararg4 * value options(*string: *nopass) void * + d #vararg5 * value options(*string: *nopass) void * + d #vararg6 * value options(*string: *nopass) void * + d #vararg7 * value options(*string: *nopass) void * + d #vararg8 * value options(*string: *nopass) void * + + d xmlTextWriterWriteVFormatDTDAttlist... + d pr 10i 0 extproc( + d 'xmlTextWriterWriteVFormatDTDAttlist' + d ) + d writer value like(xmlTextWriterPtr) + d name * value options(*string) const xmlChar * + d format * value options(*string) const char * + d argptr likeds(xmlVaList) + + d xmlTextWriterWriteDTDAttlist... + d pr 10i 0 extproc( + d 'xmlTextWriterWriteDTDAttlist') + d writer value like(xmlTextWriterPtr) + d name * value options(*string) const xmlChar * + d content * value options(*string) const xmlChar * + + * DTD entity definition + + d xmlTextWriterStartDTDEntity... + d pr 10i 0 extproc( + d 'xmlTextWriterStartDTDEntity') + d writer value like(xmlTextWriterPtr) + d pe 10i 0 value + d name * value options(*string) const xmlChar * + + d xmlTextWriterEndDTDEntity... + d pr 10i 0 extproc('xmlTextWriterEndDTDEntity') + d writer value like(xmlTextWriterPtr) + + * DTD entity definition conveniency functions + + d xmlTextWriterWriteFormatDTDInternalEntity... + d pr 10i 0 extproc('xmlTextWriterWriteFormatDTD- + d InternalEntity') + d writer value like(xmlTextWriterPtr) + d pe 10i 0 value + d name * value options(*string) const xmlChar * + d format * value options(*string) const char * + d #vararg1 * value options(*string: *nopass) void * + d #vararg2 * value options(*string: *nopass) void * + d #vararg3 * value options(*string: *nopass) void * + d #vararg4 * value options(*string: *nopass) void * + d #vararg5 * value options(*string: *nopass) void * + d #vararg6 * value options(*string: *nopass) void * + d #vararg7 * value options(*string: *nopass) void * + d #vararg8 * value options(*string: *nopass) void * + + d xmlTextWriterWriteVFormatDTDInternalEntity... + d pr 10i 0 extproc('xmlTextWriterWriteVFormatDT- + d DInternalEntity') + d writer value like(xmlTextWriterPtr) + d pe 10i 0 value + d name * value options(*string) const xmlChar * + d format * value options(*string) const char * + d argptr likeds(xmlVaList) + + d xmlTextWriterWriteDTDInternalEntity... + d pr 10i 0 extproc( + d 'xmlTextWriterWriteDTDInternalEntity' + d ) + d writer value like(xmlTextWriterPtr) + d pe 10i 0 value + d name * value options(*string) const xmlChar * + d content * value options(*string) const xmlChar * + + d xmlTextWriterWriteDTDExternalEntity... + d pr 10i 0 extproc( + d 'xmlTextWriterWriteDTDExternalEntity' + d ) + d writer value like(xmlTextWriterPtr) + d pe 10i 0 value + d name * value options(*string) const xmlChar * + d pubid * value options(*string) const xmlChar * + d sysid * value options(*string) const xmlChar * + d ndataid * value options(*string) const xmlChar * + + d xmlTextWriterWriteDTDExternalEntityContents... + d pr 10i 0 extproc('xmlTextWriterWriteDTDExtern- + d alEntityContents') + d writer value like(xmlTextWriterPtr) + d pubid * value options(*string) const xmlChar * + d sysid * value options(*string) const xmlChar * + d ndataid * value options(*string) const xmlChar * + + d xmlTextWriterWriteDTDEntity... + d pr 10i 0 extproc( + d 'xmlTextWriterWriteDTDEntity') + d writer value like(xmlTextWriterPtr) + d pe 10i 0 value + d name * value options(*string) const xmlChar * + d pubid * value options(*string) const xmlChar * + d sysid * value options(*string) const xmlChar * + d ndataid * value options(*string) const xmlChar * + d content * value options(*string) const xmlChar * + + * DTD notation definition + + d xmlTextWriterWriteDTDNotation... + d pr 10i 0 extproc( + d 'xmlTextWriterWriteDTDNotation') + d writer value like(xmlTextWriterPtr) + d name * value options(*string) const xmlChar * + d pubid * value options(*string) const xmlChar * + d sysid * value options(*string) const xmlChar * + + * Indentation + + d xmlTextWriterSetIndent... + d pr 10i 0 extproc('xmlTextWriterSetIndent') + d writer value like(xmlTextWriterPtr) + d indent 10i 0 value + + d xmlTextWriterSetIndentString... + d pr 10i 0 extproc( + d 'xmlTextWriterSetIndentString') + d writer value like(xmlTextWriterPtr) + d str * value options(*string) const xmlChar * + + d xmlTextWriterSetQuoteChar... + d pr 10i 0 extproc('xmlTextWriterSetQuoteChar') + d writer value like(xmlTextWriterPtr) + d quotechar value like(xmlChar) + + * misc + + d xmlTextWriterFlush... + d pr 10i 0 extproc('xmlTextWriterFlush') + d writer value like(xmlTextWriterPtr) + + /endif LIBXML_WRITER_ENABLD + /endif XML_XMLWRITER_H__ diff --git a/os400/libxmlrpg/xpath.rpgle b/os400/libxmlrpg/xpath.rpgle new file mode 100644 index 0000000..3f3be32 --- /dev/null +++ b/os400/libxmlrpg/xpath.rpgle @@ -0,0 +1,649 @@ + * Summary: XML Path Language implementation + * Description: API for the XML Path Language implementation + * + * XML Path Language implementation + * XPath is a language for addressing parts of an XML document, + * designed to be used by both XSLT and XPointer + * http://www.w3.org/TR/xpath + * + * Implements + * W3C Recommendation 16 November 1999 + * http://www.w3.org/TR/1999/REC-xpath-19991116 + * + * Copy: See Copyright for the status of this software. + * + * Author: Patrick Monnerat <pm@datasphere.ch>, DATASPHERE S.A. + + /if not defined(XML_XPATH_H__) + /define XML_XPATH_H__ + + /include "libxmlrpg/xmlversion" + + /if defined(LIBXML_XPATH_ENABLED) + + /include "libxmlrpg/xmlerror" + /include "libxmlrpg/tree" + /include "libxmlrpg/hash" + /endif LIBXML_XPATH_ENABLED + + /if defined(LIBXML_XPATH_ENABLED) + + d xmlXPathContextPtr... + d s * based(######typedef######) + + d xmlXPathParserContextPtr... + d s * based(######typedef######) + + * The set of XPath error codes. + + d xmlXPathError s 10i 0 based(######typedef######) enum + d XPATH_EXPRESSION_OK... + d c 0 + d XPATH_NUMBER_ERROR... + d c 1 + d XPATH_UNFINISHED_LITERAL_ERROR... + d c 2 + d XPATH_START_LITERAL_ERROR... + d c 3 + d XPATH_VARIABLE_REF_ERROR... + d c 4 + d XPATH_UNDEF_VARIABLE_ERROR... + d c 5 + d XPATH_INVALID_PREDICATE_ERROR... + d c 6 + d XPATH_EXPR_ERROR... + d c 7 + d XPATH_UNCLOSED_ERROR... + d c 8 + d XPATH_UNKNOWN_FUNC_ERROR... + d c 9 + d XPATH_INVALID_OPERAND... + d c 10 + d XPATH_INVALID_TYPE... + d c 11 + d XPATH_INVALID_ARITY... + d c 12 + d XPATH_INVALID_CTXT_SIZE... + d c 13 + d XPATH_INVALID_CTXT_POSITION... + d c 14 + d XPATH_MEMORY_ERROR... + d c 15 + d XPTR_SYNTAX_ERROR... + d c 16 + d XPTR_RESOURCE_ERROR... + d c 17 + d XPTR_SUB_RESOURCE_ERROR... + d c 18 + d XPATH_UNDEF_PREFIX_ERROR... + d c 19 + d XPATH_ENCODING_ERROR... + d c 20 + d XPATH_INVALID_CHAR_ERROR... + d c 21 + d XPATH_INVALID_CTXT... + d c 22 + d XPATH_STACK_ERROR... + d c 23 + d XPATH_FORBID_VARIABLE_ERROR... + d c 24 + + * A node-set (an unordered collection of nodes without duplicates). + + d xmlNodeSetPtr s * based(######typedef######) + + d xmlNodeSet ds based(xmlNodeSetPtr) + d align qualified + d nodeNr 10i 0 Set node count + d nodeMax 10i 0 Max # nodes in set + d nodeTab * xmlNodePtr * + + * An expression is evaluated to yield an object, which + * has one of the following four basic types: + * - node-set + * - boolean + * - number + * - string + * + * @@ XPointer will add more types ! + + d xmlXPathObjectType... + d s 10i 0 based(######typedef######) enum + d XPATH_UNDEFINED... + d c 0 + d XPATH_NODESET c 1 + d XPATH_BOOLEAN c 2 + d XPATH_NUMBER c 3 + d XPATH_STRING c 4 + d XPATH_POINT c 5 + d XPATH_RANGE c 6 + d XPATH_LOCATIONSET... + d c 7 + d XPATH_USERS c 8 + d XPATH_XSLT_TREE... R/O XSLT value tree + d c 9 + + d xmlXPathObjectPtr... + d s * based(######typedef######) + + d xmlXPathObject ds based(xmlXPathObjectPtr) + d align qualified + d type like(xmlXPathObjectType) + d nodesetval like(xmlNodeSetPtr) + d boolval 10i 0 + d floatval 8f + d stringval * xmlChar * + d user * void * + d index 10i 0 + d user2 * void * + d index2 10i 0 + + * xmlXPathConvertFunc: + * @obj: an XPath object + * @type: the number of the target type + * + * A conversion function is associated to a type and used to cast + * the new type to primitive values. + * + * Returns -1 in case of error, 0 otherwise + + d xmlXPathConvertFunc... + d s * based(######typedef######) + d procptr + + * Extra type: a name and a conversion function. + + d xmlXPathTypePtr... + d s * based(######typedef######) + + d xmlXPathType ds based(xmlXPathTypePtr) + d align qualified + d name * The type name + d func like(xmlXPathConvertFunc) Conversion function + + * Extra variable: a name and a value. + + d xmlXPathVariablePtr... + d s * based(######typedef######) + + d xmlXPathVariable... + d ds based(xmlXPathVariablePtr) + d align qualified + d name * The variable name + d value like(xmlXPathObjectPtr) The value + + * xmlXPathEvalFunc: + * @ctxt: an XPath parser context + * @nargs: the number of arguments passed to the function + * + * An XPath evaluation function, the parameters are on the XPath + * context stack. + + d xmlXPathEvalFunc... + d s * based(######typedef######) + d procptr + + * Extra function: a name and an evaluation function. + + d xmlXPathFuncPtr... + d s * based(######typedef######) + + d xmlXPathFunct ds based(xmlXPathFuncPtr) + d align qualified + d name * The function name + d func like(xmlXPathEvalFunc) Evaluation function + + * xmlXPathAxisFunc: + * @ctxt: the XPath interpreter context + * @cur: the previous node being explored on that axis + * + * An axis traversal function. To traverse an axis, the engine calls + * the first time with cur == NULL and repeat until the function returns + * NULL indicating the end of the axis traversal. + * + * Returns the next node in that axis or NULL if at the end of the axis. + + d xmlXPathAxisFunc... + d s * based(######typedef######) + d procptr + + * Extra axis: a name and an axis function. + + d xmlXPathAxisPtr... + d s * based(######typedef######) + + d xmlXPathAxis ds based(xmlXPathAxisPtr) + d align qualified + d name * The axis name + d func like(xmlXPathAxisFunc) The search function + + * xmlXPathFunction: + * @ctxt: the XPath interprestation context + * @nargs: the number of arguments + * + * An XPath function. + * The arguments (if any) are popped out from the context stack + * and the result is pushed on the stack. + + d xmlXPathFunction... + d s * based(######typedef######) + d procptr + + * Function and Variable Lookup. + + * xmlXPathVariableLookupFunc: + * @ctxt: an XPath context + * @name: name of the variable + * @ns_uri: the namespace name hosting this variable + * + * Prototype for callbacks used to plug variable lookup in the XPath + * engine. + * + * Returns the XPath object value or NULL if not found. + + d xmlXPathVariableLookupFunc... + d s * based(######typedef######) + d procptr + + * xmlXPathFuncLookupFunc: + * @ctxt: an XPath context + * @name: name of the function + * @ns_uri: the namespace name hosting this function + * + * Prototype for callbacks used to plug function lookup in the XPath + * engine. + * + * Returns the XPath function or NULL if not found. + + d xmlXPathFuncLookupFunc... + d s * based(######typedef######) + d procptr + + * xmlXPathFlags: + * Flags for XPath engine compilation and runtime + + * XML_XPATH_CHECKNS: + * + * check namespaces at compilation + + d XML_XPATH_CHECKNS... + d c X'0001' + + * XML_XPATH_NOVAR: + * + * forbid variables in expression + + d XML_XPATH_NOVAR... + d c X'0002' + + * xmlXPathContext: + * + * Expression evaluation occurs with respect to a context. + * he context consists of: + * - a node (the context node) + * - a node list (the context node list) + * - a set of variable bindings + * - a function library + * - the set of namespace declarations in scope for the expression + * Following the switch to hash tables, this need to be trimmed up at + * the next binary incompatible release. + * The node may be modified when the context is passed to libxml2 + * for an XPath evaluation so you may need to initialize it again + * before the next call. + + d xmlXPathContext... + d ds based(xmlXPathContextPtr) + d align qualified + d doc like(xmlDocPtr) Current document + d node like(xmlNodePtr) Current node + * + d nb_variables_unused... Unused (hash table) + d 10i 0 + d max_variables_unused... Unused (hash table) + d 10i 0 + d varHash like(xmlHashTablePtr) Defined variables + * + d nb_types 10i 0 # of defined types + d max_types 10i 0 Max number of types + d types like(xmlXPathTypePtr) Defined types array + * + d nb_funcs_unused... Unused (hash table) + d 10i 0 + d max_funcs_unused... Unused (hash table) + d 10i 0 + d funcHash like(xmlHashTablePtr) Defined functions + * + d nb_axis 10i 0 # of defined axis + d max_axis 10i 0 Max number of axis + d axis like(xmlXPathAxisPtr) Defined axis array + * + * the namespace nodes of the context node + * + d namespaces * xmlNsPtr * + d nsNr 10i 0 # scope namespaces + d user * procptr Function to free + * + * extra variables + * + d contextSize 10i 0 The context size + d proximityPosition... + d 10i 0 + * + * extra stuff for XPointer + * + d xptr 10i 0 XPointer context ? + d here like(xmlNodePtr) For here() + d origin like(xmlNodePtr) For origin() + * + * the set of namespace declarations in scope for the expression + * + d nsHash like(xmlHashTablePtr) Namespace hashtable + d varLookupFunc like(xmlXPathVariableLookupFunc) Var lookup function + d varLookupData * void * + * + * Possibility to link in an extra item + * + d extra * void * + * + * The function name and URI when calling a function + * + d function * const xmlChar * + d functionURI * const xmlChar * + * + * function lookup function and data + * + d funcLookupFunc... Func lookup func + d like(xmlXPathVariableLookupFunc) + d funcLookupData... void * + d * + * + * temporary namespace lists kept for walking the namespace axis + * + d tmpNsList * xmlNsPtr * + d tmpNsNr 10i 0 # scope namespaces + * + * error reporting mechanism + * + d userData * void * + d error like(xmlStructuredErrorFunc) Error callback + d lastError like(xmlError) The last error + d debugNode like(xmlNodePtr) XSLT source node + * + * dictionary + * + d dict like(xmlDictPtr) Dictionary if any + * + d flags 10i 0 Compilation control + * + * Cache for reusal of XPath objects + * + d cache * void * + + * The structure of a compiled expression form is not public. + + d xmlXPathCompExprPtr... + d s * based(######typedef######) + + * xmlXPathParserContext: + * + * An XPath parser context. It contains pure parsing informations, + * an xmlXPathContext, and the stack of objects. + + d xmlXPathParserContext... + d ds based(xmlXPathParserContextPtr) + d align qualified + d cur * const xmlChar * + d base * const xmlChar * + * + d error 10i 0 Error code + * + d context like(xmlXPathContextPtr) Evaluation context + d value like(xmlXPathObjectPtr) The current value + d valueNr 10i 0 Value stack depth + d valueMax 10i 0 Max stack depth + d valueTab * xmlXPathObjectPtr * + * + d comp like(xmlXPathCompExprPtr) Precompiled expr. + d xptr 10i 0 XPointer expression? + d ancestor like(xmlNodePtr) To walk prec. axis + * + d valueFrame 10i 0 Limit stack pop + + ************************************************************************** + * * + * Public API * + * * + ************************************************************************** + + * Objects and Nodesets handling + + d xmlXPathNAN s 8f import('xmlXPathNAN') + d xmlXPathPINF s 8f import('xmlXPathPINF') + d xmlXPathNINF s 8f import('xmlXPathNINF') + + d xmlXPathFreeObject... + d pr extproc('xmlXPathFreeObject') + d obj value like(xmlXPathObjectPtr) + + d xmlXPathNodeSetCreate... + d pr extproc('xmlXPathNodeSetCreate') + d like(xmlNodeSetPtr) + d val value like(xmlNodePtr) + + d xmlXPathFreeNodeSetList... + d pr extproc('xmlXPathFreeNodeSetList') + d obj value like(xmlXPathObjectPtr) + + d xmlXPathFreeNodeSet... + d pr extproc('xmlXPathFreeNodeSet') + d obj value like(xmlNodeSetPtr) + + d xmlXPathObjectCopy... + d pr extproc('xmlXPathObjectCopy') + d like(xmlXPathObjectPtr) + d val value like(xmlXPathObjectPtr) + + d xmlXPathCmpNodes... + d pr 10i 0 extproc('xmlXPathCmpNodes') + d node1 value like(xmlNodePtr) + d node2 value like(xmlNodePtr) + + * Conversion functions to basic types. + + d xmlXPathCastNumberToBoolean... + d pr 10i 0 extproc( + d 'xmlXPathCastNumberToBoolean') + d val 8f value + + d xmlXPathCastStringToBoolean... + d pr 10i 0 extproc( + d 'xmlXPathCastStringToBoolean') + d val * value options(*string) const xmlChar * + + d xmlXPathCastNodeSetToBoolean... + d pr 10i 0 extproc( + d 'xmlXPathCastNodeSetToBoolean') + d ns value like(xmlNodeSetPtr) + + d xmlXPathCastToBoolean... + d pr 10i 0 extproc('xmlXPathCastToBoolean') + d val value like(xmlXPathObjectPtr) + + d xmlXPathCastBooleanToNumber... + d pr extproc( + d 'xmlXPathCastBooleanToNumber') + d 8f + d val 10i 0 value + + d xmlXPathCastStringToNumber... + d pr 8f extproc('xmlXPathCastStringToNumber') + d val * value options(*string) const xmlChar * + + d xmlXPathCastNodeToNumber... + d pr 8f extproc('xmlXPathCastNodeToNumber') + d node value like(xmlNodePtr) + + d xmlXPathCastNodeSetToNumber... + d pr 8f extproc( + d 'xmlXPathCastNodeSetToNumber') + d ns value like(xmlNodeSetPtr) + + d xmlXPathCastToNumber... + d pr 8f extproc('xmlXPathCastToNumber') + d val value like(xmlXPathObjectPtr) + + d xmlXPathCastBooleanToString... + d pr * extproc( xmlChar * + d 'xmlXPathCastBooleanToString') + d val 10i 0 value + + d xmlXPathCastNumberToString... + d pr * extproc('xmlXPathCastNumberToString')xmlChar * + d val 8f value + + d xmlXPathCastNodeToString... + d pr * extproc('xmlXPathCastNodeToString') xmlChar * + d node value like(xmlNodePtr) + + d xmlXPathCastNodeSetToString... + d pr * extproc('xmlXPathCastNodeSetToString'xmlChar * + d ) + d ns value like(xmlNodeSetPtr) + + d xmlXPathCastToString... + d pr * extproc('xmlXPathCastToString') xmlChar * + d val value like(xmlXPathObjectPtr) + + d xmlXPathConvertBoolean... + d pr extproc('xmlXPathConvertBoolean') + d like(xmlXPathObjectPtr) + d val value like(xmlXPathObjectPtr) + + d xmlXPathConvertNumber... + d pr extproc('xmlXPathConvertNumber') + d like(xmlXPathObjectPtr) + d val value like(xmlXPathObjectPtr) + + d xmlXPathConvertString... + d pr extproc('xmlXPathConvertString') + d like(xmlXPathObjectPtr) + d val value like(xmlXPathObjectPtr) + + * Context handling. + + d xmlXPathNewContext... + d pr extproc('xmlXPathNewContext') + d like(xmlXPathContextPtr) + d doc value like(xmlDocPtr) + + d xmlXPathFreeContext... + d pr extproc('xmlXPathFreeContext') + d ctxt value like(xmlXPathContextPtr) + + d xmlXPathContextSetCache... + d pr 10i 0 extproc('xmlXPathContextSetCache') + d ctxt value like(xmlXPathContextPtr) + d active 10i 0 value + d value 10i 0 value + d options 10i 0 value + + * Evaluation functions. + + d xmlXPathOrderDocElems... + d pr 20i 0 extproc('xmlXPathOrderDocElems') + d doc value like(xmlDocPtr) + + d xmlXPathSetContextNode... + d pr 10i 0 extproc('xmlXPathSetContextNode') + d node value like(xmlNodePtr) + d ctx value like(xmlXPathContextPtr) + + d xmlXPathNodeEval... + d pr extproc('xmlXPathNodeEval') + d like(xmlXPathObjectPtr) + d node value like(xmlNodePtr) + d str * value options(*string) const xmlChar * + d ctx value like(xmlXPathContextPtr) + + d xmlXPathEval pr extproc('xmlXPathEval') + d like(xmlXPathObjectPtr) + d str * value options(*string) const xmlChar * + d ctx value like(xmlXPathContextPtr) + + d xmlXPathEvalExpression... + d pr extproc('xmlXPathEvalExpression') + d like(xmlXPathObjectPtr) + d str * value options(*string) const xmlChar * + d ctxt value like(xmlXPathContextPtr) + + d xmlXPathEvalPredicate... + d pr 10i 0 extproc('xmlXPathEvalPredicate') + d ctxt value like(xmlXPathContextPtr) + d res value like(xmlXPathObjectPtr) + + * Separate compilation/evaluation entry points. + + d xmlXPathCompile... + d pr extproc('xmlXPathCompile') + d like(xmlXPathCompExprPtr) + d str * value options(*string) const xmlChar * + + d xmlXPathCtxtCompile... + d pr extproc('xmlXPathCtxtCompile') + d like(xmlXPathCompExprPtr) + d ctxt value like(xmlXPathContextPtr) + d str * value options(*string) const xmlChar * + + d xmlXPathCompiledEval... + d pr extproc('xmlXPathCompiledEval') + d like(xmlXPathObjectPtr) + d comp value like(xmlXPathCompExprPtr) + d ctx value like(xmlXPathContextPtr) + + d xmlXPathCompiledEvalToBoolean... + d pr 10i 0 extproc( + d 'xmlXPathCompiledEvalToBoolean') + d comp value like(xmlXPathCompExprPtr) + d ctxt value like(xmlXPathContextPtr) + + d xmlXPathFreeCompExpr... + d pr extproc('xmlXPathFreeCompExpr') + d comp value like(xmlXPathCompExprPtr) + /endif LIBXML_XPATH_ENABLED + + /undefine XML_TESTVAL + /if defined(LIBXML_XPATH_ENABLED) + /define XML_TESTVAL + /elseif defined(LIBXML_SCHEMAS_ENABLED) + /define XML_TESTVAL + /endif + /if defined(XML_TESTVAL) + d xmlXPathInit pr extproc('xmlXPathInit') + + d xmlXPathIsNaN pr 10i 0 extproc('xmlXPathIsNaN') + d val 8f value + + d xmlXPathIsInf pr 10i 0 extproc('xmlXPathIsInf') + d val 8f value + + /undefine XML_TESTVAL + /endif + + * C macros implemented as procedures for ILE/RPG support. + + /if defined(LIBXML_XPATH_ENABLED) + d xmlXPathNodeSetGetLength... + d pr 10i 0 extproc('__xmlXPathNodeSetGetLength') + d ns value like(xmlNodeSetPtr) + + d xmlXPathNodeSetItem... + d pr extproc('__xmlXPathNodeSetItem') + d like(xmlNodePtr) + d ns value like(xmlNodeSetPtr) + d index 10i 0 value + + d xmlXPathNodeSetIsEmpty... + d pr 10i 0 extproc('__xmlXPathNodeSetIsEmpty') + d ns value like(xmlNodeSetPtr) + /endif LIBXML_XPATH_ENABLED + /endif XML_XPATH_H__ diff --git a/os400/libxmlrpg/xpathInternals.rpgle b/os400/libxmlrpg/xpathInternals.rpgle new file mode 100644 index 0000000..69f3ae0 --- /dev/null +++ b/os400/libxmlrpg/xpathInternals.rpgle @@ -0,0 +1,672 @@ + * Summary: internal interfaces for XML Path Language implementation + * Description: internal interfaces for XML Path Language implementation + * used to build new modules on top of XPath like XPointer and + * XSLT + * + * Copy: See Copyright for the status of this software. + * + * Author: Patrick Monnerat <pm@datasphere.ch>, DATASPHERE S.A. + + /if not defined(XML_XPATH_INTERNALS_H__) + /define XML_XPATH_INTERNALS_H__ + + /include "libxmlrpg/xmlversion" + /include "libxmlrpg/xpath" + + /if defined(LIBXML_XPATH_ENABLED) + + ************************************************************************ + * * + * Helpers * + * * + ************************************************************************ + + * Many of these macros may later turn into functions. They + * shouldn't be used in #ifdef's preprocessor instructions. + + d xmlXPathPopBoolean... + d pr 10i 0 extproc('xmlXPathPopBoolean') + d ctxt value like(xmlXPathParserContextPtr) + + d xmlXPathPopNumber... + d pr 8f extproc('xmlXPathPopNumber') + d ctxt value like(xmlXPathParserContextPtr) + + d xmlXPathPopString... + d pr * extproc('xmlXPathPopString') xmlChar * + d ctxt value like(xmlXPathParserContextPtr) + + d xmlXPathPopNodeSet... + d pr extproc('xmlXPathPopNodeSet') + d like(xmlNodeSetPtr) + d ctxt value like(xmlXPathParserContextPtr) + + d xmlXPathPopExternal... + d pr * extproc('xmlXPathPopExternal') void * + d ctxt value like(xmlXPathParserContextPtr) + + * Variable Lookup forwarding. + + d xmlXPathRegisterVariableLookup... + d pr extproc( + d 'xmlXPathRegisterVariableLookup') + d ctxt value like(xmlXPathContextPtr) + d f value + d like(xmlXPathVariableLookupFunc) + d data * value void * + + * Function Lookup forwarding. + + d xmlXPathRegisterFuncLookup... + d pr extproc('xmlXPathRegisterFuncLookup') + d ctxt value like(xmlXPathContextPtr) + d f value like(xmlXPathFuncLookupFunc) + d funcCtxt * value void * + + * Error reporting. + * Note this procedure is renamed in RPG to avoid character case clash with + * data type xmlXPathError. + + d xmlXPathReportError... + d pr extproc('xmlXPatherror') + d ctxt value like(xmlXPathParserContextPtr) + d file * value options(*string) const char * + d line 10i 0 value + d no 10i 0 value + + d xmlXPathErr pr extproc('xmlXPathErr') + d ctxt value like(xmlXPathParserContextPtr) + d error 10i 0 value + + /if defined(LIBXML_DEBUG_ENABLED) + d xmlXPathDebugDumpObject... + d pr extproc('xmlXPathDebugDumpObject') + d output * value FILE * + d cur value like(xmlXPathObjectPtr) + d depth 10i 0 value + + d xmlXPathDebugDumpCompExpr... + d pr extproc('xmlXPathDebugDumpCompExpr') + d output * value FILE * + d comp value like(xmlXPathCompExprPtr) + d depth 10i 0 value + /endif + + * NodeSet handling. + + d xmlXPathNodeSetContains... + d pr 10i 0 extproc('xmlXPathNodeSetContains') + d cur value like(xmlNodeSetPtr) + d val value like(xmlNodePtr) + + d xmlXPathDifference... + d pr extproc('xmlXPathDifference') + d like(xmlNodeSetPtr) + d nodes1 value like(xmlNodeSetPtr) + d nodes2 value like(xmlNodeSetPtr) + + d xmlXPathIntersection... + d pr extproc('xmlXPathIntersection') + d like(xmlNodeSetPtr) + d nodes1 value like(xmlNodeSetPtr) + d nodes2 value like(xmlNodeSetPtr) + + d xmlXPathDistinctSorted... + d pr extproc('xmlXPathDistinctSorted') + d like(xmlNodeSetPtr) + d nodes value like(xmlNodeSetPtr) + + d xmlXPathDistinct... + d pr extproc('xmlXPathDistinct') + d like(xmlNodeSetPtr) + d nodes value like(xmlNodeSetPtr) + + d xmlXPathHasSameNodes... + d pr 10i 0 extproc('xmlXPathHasSameNodes') + d nodes1 value like(xmlNodeSetPtr) + d nodes2 value like(xmlNodeSetPtr) + + d xmlXPathNodeLeadingSorted... + d pr extproc('xmlXPathNodeLeadingSorted') + d like(xmlNodeSetPtr) + d nodes value like(xmlNodeSetPtr) + d node value like(xmlNodePtr) + + d xmlXPathLeadingSorted... + d pr extproc('xmlXPathLeadingSorted') + d like(xmlNodeSetPtr) + d nodes1 value like(xmlNodeSetPtr) + d nodes2 value like(xmlNodeSetPtr) + + d xmlXPathNodeLeading... + d pr extproc('xmlXPathNodeLeading') + d like(xmlNodeSetPtr) + d nodes value like(xmlNodeSetPtr) + d node value like(xmlNodePtr) + + d xmlXPathLeading... + d pr extproc('xmlXPathLeading') + d like(xmlNodeSetPtr) + d nodes1 value like(xmlNodeSetPtr) + d nodes2 value like(xmlNodeSetPtr) + + d xmlXPathNodeTrailingSorted... + d pr extproc('xmlXPathNodeTrailingSorted') + d like(xmlNodeSetPtr) + d nodes value like(xmlNodeSetPtr) + d node value like(xmlNodePtr) + + d xmlXPathTrailingSorted... + d pr extproc('xmlXPathTrailingSorted') + d like(xmlNodeSetPtr) + d nodes1 value like(xmlNodeSetPtr) + d nodes2 value like(xmlNodeSetPtr) + + d xmlXPathNodeTrailing... + d pr extproc('xmlXPathNodeTrailing') + d like(xmlNodeSetPtr) + d nodes value like(xmlNodeSetPtr) + d node value like(xmlNodePtr) + + d xmlXPathTrailing... + d pr extproc('xmlXPathTrailing') + d like(xmlNodeSetPtr) + d nodes1 value like(xmlNodeSetPtr) + d nodes2 value like(xmlNodeSetPtr) + + * Extending a context. + + d xmlXPathRegisterNs... + d pr 10i 0 extproc('xmlXPathRegisterNs') + d ctxt value like(xmlXPathContextPtr) + d prefix * value options(*string) const xmlChar * + d ns_uri * value options(*string) const xmlChar * + + d xmlXPathNsLookup... + d pr * extproc('xmlXPathNsLookup') const xmlChar * + d ctxt value like(xmlXPathContextPtr) + d prefix * value options(*string) const xmlChar * + + d xmlXPathRegisteredNsCleanup... + d pr extproc( + d 'xmlXPathRegisteredNsCleanup') + d ctxt value like(xmlXPathContextPtr) + + d xmlXPathRegisterFunc... + d pr 10i 0 extproc('xmlXPathRegisterFunc') + d ctxt value like(xmlXPathContextPtr) + d name * value options(*string) const xmlChar * + d f value like(xmlXPathFunction) + + d xmlXPathRegisterFuncNS... + d pr 10i 0 extproc('xmlXPathRegisterFuncNS') + d ctxt value like(xmlXPathContextPtr) + d name * value options(*string) const xmlChar * + d ns_uri * value options(*string) const xmlChar * + d f value like(xmlXPathFunction) + + d xmlXPathRegisterVariable... + d pr 10i 0 extproc('xmlXPathRegisterVariable') + d ctxt value like(xmlXPathContextPtr) + d name * value options(*string) const xmlChar * + d value value like(xmlXPathObjectPtr) + + d xmlXPathRegisterVariableNS... + d pr 10i 0 extproc('xmlXPathRegisterVariableNS') + d ctxt value like(xmlXPathContextPtr) + d name * value options(*string) const xmlChar * + d ns_uri * value options(*string) const xmlChar * + d value value like(xmlXPathObjectPtr) + + d xmlXPathFunctionLookup... + d pr extproc('xmlXPathFunctionLookup') + d like(xmlXPathFunction) + d ctxt value like(xmlXPathContextPtr) + d name * value options(*string) const xmlChar * + + d xmlXPathFunctionLookupNS... + d pr extproc('xmlXPathFunctionLookupNS') + d like(xmlXPathFunction) + d ctxt value like(xmlXPathContextPtr) + d name * value options(*string) const xmlChar * + d ns_uri * value options(*string) const xmlChar * + + d xmlXPathRegisteredFuncsCleanup... + d pr extproc( + d 'xmlXPathRegisteredFuncsCleanup') + d ctxt value like(xmlXPathContextPtr) + + d xmlXPathVariableLookup... + d pr extproc('xmlXPathVariableLookup') + d like(xmlXPathObjectPtr) + d ctxt value like(xmlXPathContextPtr) + d name * value options(*string) const xmlChar * + + d xmlXPathVariableLookupNS... + d pr extproc('xmlXPathVariableLookupNS') + d like(xmlXPathObjectPtr) + d ctxt value like(xmlXPathContextPtr) + d name * value options(*string) const xmlChar * + d ns_uri * value options(*string) const xmlChar * + + d xmlXPathRegisteredVariablesCleanup... + d pr extproc( + d 'xmlXPathRegisteredVariablesCleanup') + d ctxt value like(xmlXPathContextPtr) + + * Utilities to extend XPath. + + d xmlXPathNewParserContext... + d pr extproc('xmlXPathNewParserContext') + d like(xmlXPathParserContextPtr) + d str * value options(*string) const xmlChar * + d ctxt value like(xmlXPathContextPtr) + + d xmlXPathFreeParserContext... + d pr extproc('xmlXPathFreeParserContext') + d ctxt value like(xmlXPathParserContextPtr) + + + * TODO: remap to xmlXPathValuePop and Push. + + d valuePop pr extproc('valuePop') + d like(xmlXPathObjectPtr) + d ctxt value like(xmlXPathParserContextPtr) + + d valuePush pr 10i 0 extproc('valuePush') + d ctxt value like(xmlXPathParserContextPtr) + d value value like(xmlXPathObjectPtr) + + d xmlXPathNewString... + d pr extproc('xmlXPathNewString') + d like(xmlXPathObjectPtr) + d val * value options(*string) const xmlChar * + + d xmlXPathNewCString... + d pr extproc('xmlXPathNewCString') + d like(xmlXPathObjectPtr) + d val * value options(*string) const char * + + d xmlXPathWrapString... + d pr extproc('xmlXPathWrapString') + d like(xmlXPathObjectPtr) + d val * value options(*string) xmlChar * + + d xmlXPathWrapCString... + d pr extproc('xmlXPathWrapCString') + d like(xmlXPathObjectPtr) + d val * value options(*string) char * + + d xmlXPathNewFloat... + d pr extproc('xmlXPathNewFloat') + d like(xmlXPathObjectPtr) + d val 8f value + + d xmlXPathNewBoolean... + d pr extproc('xmlXPathNewBoolean') + d like(xmlXPathObjectPtr) + d val 10i 0 value + + d xmlXPathNewNodeSet... + d pr extproc('xmlXPathNewNodeSet') + d like(xmlXPathObjectPtr) + d val value like(xmlNodePtr) + + d xmlXPathNewValueTree... + d pr extproc('xmlXPathNewValueTree') + d like(xmlXPathObjectPtr) + d val value like(xmlNodePtr) + + d xmlXPathNodeSetAdd... + d pr 10i 0 extproc('xmlXPathNodeSetAdd') + d cur value like(xmlNodeSetPtr) + d val value like(xmlNodePtr) + + d xmlXPathNodeSetAddUnique... + d pr 10i 0 extproc('xmlXPathNodeSetAddUnique') + d cur value like(xmlNodeSetPtr) + d val value like(xmlNodePtr) + + d xmlXPathNodeSetAddNs... + d pr 10i 0 extproc('xmlXPathNodeSetAddNs') + d cur value like(xmlNodeSetPtr) + d node value like(xmlNodePtr) + d ns value like(xmlNsPtr) + + d xmlXPathNodeSetSort... + d pr extproc('xmlXPathNodeSetSort') + d set value like(xmlNodeSetPtr) + + d xmlXPathRoot pr extproc('xmlXPathRoot') + d ctxt value like(xmlXPathParserContextPtr) + + d xmlXPathEvalExpr... + d pr extproc('xmlXPathEvalExpr') + d ctxt value like(xmlXPathParserContextPtr) + + d xmlXPathParseName... + d pr * extproc('xmlXPathParseName') xmlChar * + d ctxt value like(xmlXPathParserContextPtr) + + d xmlXPathParseNCName... + d pr * extproc('xmlXPathParseNCName') xmlChar * + d ctxt value like(xmlXPathParserContextPtr) + + * Existing functions. + + d xmlXPathStringEvalNumber... + d pr 8f extproc('xmlXPathStringEvalNumber') + d str * value options(*string) const xmlChar * + + d xmlXPathEvaluatePredicateResult... + d pr 10i 0 extproc( + d 'xmlXPathEvaluatePredicateResult') + d ctxt value like(xmlXPathParserContextPtr) + d res value like(xmlXPathObjectPtr) + + d xmlXPathRegisterAllFunctions... + d pr extproc( + d 'xmlXPathRegisterAllFunctions') + d ctxt value like(xmlXPathContextPtr) + + d xmlXPathNodeSetMerge... + d pr extproc('xmlXPathNodeSetMerge') + d like(xmlNodeSetPtr) + d val1 value like(xmlNodeSetPtr) + d val2 value like(xmlNodeSetPtr) + + d xmlXPathNodeSetDel... + d pr extproc('xmlXPathNodeSetDel') + d cur value like(xmlNodeSetPtr) + d val value like(xmlNodePtr) + + d xmlXPathNodeSetRemove... + d pr extproc('xmlXPathNodeSetRemove') + d cur value like(xmlNodeSetPtr) + d val 10i 0 value + + d xmlXPathNewNodeSetList... + d pr extproc('xmlXPathNewNodeSetList') + d like(xmlXPathObjectPtr) + d val value like(xmlNodeSetPtr) + + d xmlXPathWrapNodeSet... + d pr extproc('xmlXPathWrapNodeSet') + d like(xmlXPathObjectPtr) + d val value like(xmlNodeSetPtr) + + d xmlXPathWrapExternal... + d pr extproc('xmlXPathWrapExternal') + d like(xmlXPathObjectPtr) + d val * value void * + + d xmlXPathEqualValues... + d pr 10i 0 extproc('xmlXPathEqualValues') + d ctxt value like(xmlXPathParserContextPtr) + + d xmlXPathNotEqualValues... + d pr 10i 0 extproc('xmlXPathNotEqualValues') + d ctxt value like(xmlXPathParserContextPtr) + + d xmlXPathCompareValues... + d pr 10i 0 extproc('xmlXPathCompareValues') + d ctxt value like(xmlXPathParserContextPtr) + d inf 10i 0 value + d strict 10i 0 value + + d xmlXPathValueFlipSign... + d pr extproc('xmlXPathValueFlipSign') + d ctxt value like(xmlXPathParserContextPtr) + + d xmlXPathAddValues... + d pr extproc('xmlXPathAddValues') + d ctxt value like(xmlXPathParserContextPtr) + + d xmlXPathSubValues... + d pr extproc('xmlXPathSubValues') + d ctxt value like(xmlXPathParserContextPtr) + + d xmlXPathMultValues... + d pr extproc('xmlXPathMultValues') + d ctxt value like(xmlXPathParserContextPtr) + + d xmlXPathDivValues... + d pr extproc('xmlXPathDivValues') + d ctxt value like(xmlXPathParserContextPtr) + + d xmlXPathModValues... + d pr extproc('xmlXPathModValues') + d ctxt value like(xmlXPathParserContextPtr) + + d xmlXPathIsNodeType... + d pr 10i 0 extproc('xmlXPathIsNodeType') + d name * value options(*string) const xmlChar * + + * Some of the axis navigation routines. + + d xmlXPathNextSelf... + d pr extproc('xmlXPathNextSelf') + d like(xmlNodePtr) + d ctxt value like(xmlXPathParserContextPtr) + d cur value like(xmlNodePtr) + + d xmlXPathNextChild... + d pr extproc('xmlXPathNextChild') + d like(xmlNodePtr) + d ctxt value like(xmlXPathParserContextPtr) + d cur value like(xmlNodePtr) + + d xmlXPathNextDescendant... + d pr extproc('xmlXPathNextDescendant') + d like(xmlNodePtr) + d ctxt value like(xmlXPathParserContextPtr) + d cur value like(xmlNodePtr) + + d xmlXPathNextDescendantOrSelf... + d pr extproc( + d 'xmlXPathNextDescendantOrSelf') + d like(xmlNodePtr) + d ctxt value like(xmlXPathParserContextPtr) + d cur value like(xmlNodePtr) + + d xmlXPathNextParent... + d pr extproc('xmlXPathNextParent') + d like(xmlNodePtr) + d ctxt value like(xmlXPathParserContextPtr) + d cur value like(xmlNodePtr) + + d xmlXPathNextAncestorOrSelf... + d pr extproc('xmlXPathNextAncestorOrSelf') + d like(xmlNodePtr) + d ctxt value like(xmlXPathParserContextPtr) + d cur value like(xmlNodePtr) + + d xmlXPathNextFollowingSibling... + d pr extproc( + d 'xmlXPathNextFollowingSibling') + d like(xmlNodePtr) + d ctxt value like(xmlXPathParserContextPtr) + d cur value like(xmlNodePtr) + + d xmlXPathNextFollowing... + d pr extproc('xmlXPathNextFollowing') + d like(xmlNodePtr) + d ctxt value like(xmlXPathParserContextPtr) + d cur value like(xmlNodePtr) + + d xmlXPathNextNamespace... + d pr extproc('xmlXPathNextNamespace') + d like(xmlNodePtr) + d ctxt value like(xmlXPathParserContextPtr) + d cur value like(xmlNodePtr) + + d xmlXPathNextAttribute... + d pr extproc('xmlXPathNextAttribute') + d like(xmlNodePtr) + d ctxt value like(xmlXPathParserContextPtr) + d cur value like(xmlNodePtr) + + d xmlXPathNextPreceding... + d pr extproc('xmlXPathNextPreceding') + d like(xmlNodePtr) + d ctxt value like(xmlXPathParserContextPtr) + d cur value like(xmlNodePtr) + + d xmlXPathNextAncestor... + d pr extproc('xmlXPathNextAncestor') + d like(xmlNodePtr) + d ctxt value like(xmlXPathParserContextPtr) + d cur value like(xmlNodePtr) + + d xmlXPathNextPrecedingSibling... + d pr extproc( + d 'xmlXPathNextPrecedingSibling') + d like(xmlNodePtr) + d ctxt value like(xmlXPathParserContextPtr) + d cur value like(xmlNodePtr) + + * The official core of XPath functions. + + d xmlXPathLastFunction... + d pr extproc('xmlXPathLastFunction') + d ctxt value like(xmlXPathParserContextPtr) + d nargs 10i 0 value + + d xmlXPathPositionFunction... + d pr extproc('xmlXPathPositionFunction') + d ctxt value like(xmlXPathParserContextPtr) + d nargs 10i 0 value + + d xmlXPathCountFunction... + d pr extproc('xmlXPathCountFunction') + d ctxt value like(xmlXPathParserContextPtr) + d nargs 10i 0 value + + d xmlXPathIdFunction... + d pr extproc('xmlXPathIdFunction') + d ctxt value like(xmlXPathParserContextPtr) + d nargs 10i 0 value + + d xmlXPathLocalNameFunction... + d pr extproc('xmlXPathLocalNameFunction') + d ctxt value like(xmlXPathParserContextPtr) + d nargs 10i 0 value + + d xmlXPathNamespaceURIFunction... + d pr extproc( + d 'xmlXPathNamespaceURIFunction') + d ctxt value like(xmlXPathParserContextPtr) + d nargs 10i 0 value + + d xmlXPathStringFunction... + d pr extproc('xmlXPathStringFunction') + d ctxt value like(xmlXPathParserContextPtr) + d nargs 10i 0 value + + d xmlXPathStringLengthFunction... + d pr extproc( + d 'xmlXPathStringLengthFunction') + d ctxt value like(xmlXPathParserContextPtr) + d nargs 10i 0 value + + d xmlXPathConcatFunction... + d pr extproc('xmlXPathConcatFunction') + d ctxt value like(xmlXPathParserContextPtr) + d nargs 10i 0 value + + d xmlXPathContainsFunction... + d pr extproc('xmlXPathContainsFunction') + d ctxt value like(xmlXPathParserContextPtr) + d nargs 10i 0 value + + d xmlXPathStartsWithFunction... + d pr extproc('xmlXPathStartsWithFunction') + d ctxt value like(xmlXPathParserContextPtr) + d nargs 10i 0 value + + d xmlXPathSubstringFunction... + d pr extproc('xmlXPathSubstringFunction') + d ctxt value like(xmlXPathParserContextPtr) + d nargs 10i 0 value + + d xmlXPathSubstringBeforeFunction... + d pr extproc( + d 'xmlXPathSubstringBeforeFunction') + d ctxt value like(xmlXPathParserContextPtr) + d nargs 10i 0 value + + d xmlXPathSubstringAfterFunction... + d pr extproc( + d 'xmlXPathSubstringAfterFunction') + d ctxt value like(xmlXPathParserContextPtr) + d nargs 10i 0 value + + + d xmlXPathNormalizeFunction... + d pr extproc('xmlXPathNormalizeFunction') + d ctxt value like(xmlXPathParserContextPtr) + d nargs 10i 0 value + + d xmlXPathTranslateFunction... + d pr extproc('xmlXPathTranslateFunction') + d ctxt value like(xmlXPathParserContextPtr) + d nargs 10i 0 value + + d xmlXPathNotFunction... + d pr extproc('xmlXPathNotFunction') + d ctxt value like(xmlXPathParserContextPtr) + d nargs 10i 0 value + + d xmlXPathTrueFunction... + d pr extproc('xmlXPathTrueFunction') + d ctxt value like(xmlXPathParserContextPtr) + d nargs 10i 0 value + + d xmlXPathFalseFunction... + d pr extproc('xmlXPathFalseFunction') + d ctxt value like(xmlXPathParserContextPtr) + d nargs 10i 0 value + + d xmlXPathLangFunction... + d pr extproc('xmlXPathLangFunction') + d ctxt value like(xmlXPathParserContextPtr) + d nargs 10i 0 value + + d xmlXPathNumberFunction... + d pr extproc('xmlXPathNumberFunction') + d ctxt value like(xmlXPathParserContextPtr) + d nargs 10i 0 value + + d xmlXPathSumFunction... + d pr extproc('xmlXPathSumFunction') + d ctxt value like(xmlXPathParserContextPtr) + d nargs 10i 0 value + + d xmlXPathFloorFunction... + d pr extproc('xmlXPathFloorFunction') + d ctxt value like(xmlXPathParserContextPtr) + d nargs 10i 0 value + + d xmlXPathCeilingFunction... + d pr extproc('xmlXPathCeilingFunction') + d ctxt value like(xmlXPathParserContextPtr) + d nargs 10i 0 value + + d xmlXPathRoundFunction... + d pr extproc('xmlXPathRoundFunction') + d ctxt value like(xmlXPathParserContextPtr) + d nargs 10i 0 value + + d xmlXPathBooleanFunction... + d pr extproc('xmlXPathBooleanFunction') + d ctxt value like(xmlXPathParserContextPtr) + d nargs 10i 0 value + + * Really internal functions + + d xmlXPathNodeSetFreeNs... + d pr extproc('xmlXPathNodeSetFreeNs') + d ns value like(xmlNsPtr) + + /endif LIBXML_XPATH_ENABLED + /endif XPATH_INTERNALS_H__ diff --git a/os400/libxmlrpg/xpointer.rpgle b/os400/libxmlrpg/xpointer.rpgle new file mode 100644 index 0000000..6f43314 --- /dev/null +++ b/os400/libxmlrpg/xpointer.rpgle @@ -0,0 +1,157 @@ + * Summary: API to handle XML Pointers + * Description: API to handle XML Pointers + * Base implementation was made accordingly to + * W3C Candidate Recommendation 7 June 2000 + * http://www.w3.org/TR/2000/CR-xptr-20000607 + * + * Added support for the element() scheme described in: + * W3C Proposed Recommendation 13 November 2002 + * http://www.w3.org/TR/2002/PR-xptr-element-20021113/ + * + * Copy: See Copyright for the status of this software. + * + * Author: Patrick Monnerat <pm@datasphere.ch>, DATASPHERE S.A. + + /if not defined(XML_XPTR_H__) + /define XML_XPTR_H__ + + /include "libxmlrpg/xmlversion" + + /if defined(LIBXML_XPTR_ENABLED) + + /include "libxmlrpg/tree" + /include "libxmlrpg/xpath" + + * A Location Set + + d xmlLocationSetPtr... + d s * based(######typedef######) + + d xmlLocationSet ds based(xmlLocationSetPtr) + d align qualified + d locNr 10i 0 # locations in set + d locMax 10i 0 Max locations in set + d locTab * xmlXPathObjectPtr * + + * Handling of location sets. + + d xmlXPtrLocationSetCreate... + d pr extproc('xmlXPtrLocationSetCreate') + d like(xmlLocationSetPtr) + d val value like(xmlXPathObjectPtr) + + d xmlXPtrFreeLocationSet... + d pr extproc('xmlXPtrFreeLocationSet') + d obj value like(xmlLocationSetPtr) + + d xmlXPtrLocationSetMerge... + d pr extproc('xmlXPtrLocationSetMerge') + d like(xmlLocationSetPtr) + d val1 value like(xmlLocationSetPtr) + d val2 value like(xmlLocationSetPtr) + + d xmlXPtrNewRange... + d pr extproc('xmlXPtrNewRange') + d like(xmlXPathObjectPtr) + d start value like(xmlNodePtr) + d startindex 10i 0 value + d end value like(xmlNodePtr) + d endindex 10i 0 value + + d xmlXPtrNewRangePoints... + d pr extproc('xmlXPtrNewRangePoints') + d like(xmlXPathObjectPtr) + d start value like(xmlXPathObjectPtr) + d end value like(xmlXPathObjectPtr) + + d xmlXPtrNewRangeNodePoint... + d pr extproc('xmlXPtrNewRangeNodePoint') + d like(xmlXPathObjectPtr) + d start value like(xmlNodePtr) + d end value like(xmlXPathObjectPtr) + + d xmlXPtrNewRangePointNode... + d pr extproc('xmlXPtrNewRangePointNode') + d like(xmlXPathObjectPtr) + d start value like(xmlXPathObjectPtr) + d end value like(xmlNodePtr) + + d xmlXPtrNewRangeNodes... + d pr extproc('xmlXPtrNewRangeNodes') + d like(xmlXPathObjectPtr) + d start value like(xmlNodePtr) + d end value like(xmlNodePtr) + + d xmlXPtrNewLocationSetNodes... + d pr extproc('xmlXPtrNewLocationSetNodes') + d like(xmlXPathObjectPtr) + d start value like(xmlNodePtr) + d end value like(xmlNodePtr) + + d xmlXPtrNewLocationSetNodeSet... + d pr extproc( + d 'xmlXPtrNewLocationSetNodeSet') + d like(xmlXPathObjectPtr) + d set value like(xmlNodeSetPtr) + + d xmlXPtrNewRangeNodeObject... + d pr extproc('xmlXPtrNewRangeNodeObject') + d like(xmlXPathObjectPtr) + d start value like(xmlNodePtr) + d end value like(xmlXPathObjectPtr) + + d xmlXPtrNewCollapsedRange... + d pr extproc('xmlXPtrNewCollapsedRange') + d like(xmlXPathObjectPtr) + d start value like(xmlNodePtr) + + d xmlXPtrLocationSetAdd... + d pr extproc('xmlXPtrLocationSetAdd') + d cur value like(xmlLocationSetPtr) + d val value like(xmlXPathObjectPtr) + + d xmlXPtrWrapLocationSet... + d pr extproc('xmlXPtrWrapLocationSet') + d like(xmlXPathObjectPtr) + d val value like(xmlLocationSetPtr) + + d xmlXPtrLocationSetDel... + d pr extproc('xmlXPtrLocationSetDel') + d cur value like(xmlLocationSetPtr) + d val value like(xmlXPathObjectPtr) + + d xmlXPtrLocationSetRemove... + d pr extproc('xmlXPtrLocationSetRemove') + d cur value like(xmlLocationSetPtr) + d val 10i 0 value + + * Functions. + + d xmlXPtrNewContext... + d pr extproc('xmlXPtrNewContext') + d like(xmlXPathContextPtr) + d doc value like(xmlDocPtr) + d here value like(xmlNodePtr) + d origin value like(xmlNodePtr) + + d xmlXPtrEval pr extproc('xmlXPtrEval') + d like(xmlXPathObjectPtr) + d str * value options(*string) const xmlChar * + d ctx value like(xmlXPathContextPtr) + + d xmlXPtrRangeToFunction... + d pr extproc('xmlXPtrRangeToFunction') + d ctxt value like(xmlXPathParserContextPtr) + d nargs 10i 0 value + + d xmlXPtrBuildNodeList... + d pr extproc('xmlXPtrBuildNodeList') + d like(xmlNodePtr) + d obj value like(xmlXPathObjectPtr) + + d xmlXPtrEvalRangePredicate... + d pr extproc('xmlXPtrEvalRangePredicate') + d ctxt value like(xmlXPathParserContextPtr) + + /endif LIBXML_XPTR_ENABLED + /endif XML_XPTR_H__ |