aboutsummaryrefslogtreecommitdiffstats
path: root/os400
diff options
context:
space:
mode:
authorPatrick Monnerat <pm@datasphere.ch>2014-03-04 17:18:26 +0100
committerDaniel Veillard <veillard@redhat.com>2014-10-04 21:13:48 +0800
commite083c30e12d1a555e6dd5d4e5c0d2cb6934d2a0c (patch)
tree0f622e715e1f1b21fdb4b96e288c21e4150d3c98 /os400
parent7d888f07d86454025e4629ee36fdb5b3876f62ea (diff)
downloadandroid_external_libxml2-e083c30e12d1a555e6dd5d4e5c0d2cb6934d2a0c.tar.gz
android_external_libxml2-e083c30e12d1a555e6dd5d4e5c0d2cb6934d2a0c.tar.bz2
android_external_libxml2-e083c30e12d1a555e6dd5d4e5c0d2cb6934d2a0c.zip
OS400: ILE RPG language header files.
Diffstat (limited to 'os400')
-rw-r--r--os400/libxmlrpg/DOCBparser.rpgle116
-rw-r--r--os400/libxmlrpg/HTMLparser.rpgle387
-rw-r--r--os400/libxmlrpg/HTMLtree.rpgle166
-rw-r--r--os400/libxmlrpg/SAX.rpgle207
-rw-r--r--os400/libxmlrpg/SAX2.rpgle248
-rw-r--r--os400/libxmlrpg/c14n.rpgle119
-rw-r--r--os400/libxmlrpg/catalog.rpgle235
-rw-r--r--os400/libxmlrpg/chvalid.rpgle97
-rw-r--r--os400/libxmlrpg/debugXML.rpgle241
-rw-r--r--os400/libxmlrpg/dict.rpgle78
-rw-r--r--os400/libxmlrpg/encoding.rpgle274
-rw-r--r--os400/libxmlrpg/entities.rpgle174
-rw-r--r--os400/libxmlrpg/globals.rpgle557
-rw-r--r--os400/libxmlrpg/hash.rpgle231
-rw-r--r--os400/libxmlrpg/list.rpgle168
-rw-r--r--os400/libxmlrpg/nanoftp.rpgle156
-rw-r--r--os400/libxmlrpg/nanohttp.rpgle103
-rw-r--r--os400/libxmlrpg/parser.rpgle1407
-rw-r--r--os400/libxmlrpg/parserInternals.rpgle575
-rw-r--r--os400/libxmlrpg/pattern.rpgle117
-rw-r--r--os400/libxmlrpg/relaxng.rpgle297
-rw-r--r--os400/libxmlrpg/schemasInternals.rpgle1137
-rw-r--r--os400/libxmlrpg/schematron.rpgle195
-rw-r--r--os400/libxmlrpg/threads.rpgle70
-rw-r--r--os400/libxmlrpg/transcode.rpgle71
-rw-r--r--os400/libxmlrpg/tree.rpgle1628
-rw-r--r--os400/libxmlrpg/uri.rpgle100
-rw-r--r--os400/libxmlrpg/valid.rpgle575
-rw-r--r--os400/libxmlrpg/xinclude.rpgle147
-rw-r--r--os400/libxmlrpg/xlink.rpgle164
-rw-r--r--os400/libxmlrpg/xmlIO.rpgle441
-rw-r--r--os400/libxmlrpg/xmlautomata.rpgle179
-rw-r--r--os400/libxmlrpg/xmlerror.rpgle1681
-rw-r--r--os400/libxmlrpg/xmlexports.rpgle15
-rw-r--r--os400/libxmlrpg/xmlmemory.rpgle239
-rw-r--r--os400/libxmlrpg/xmlmodule.rpgle51
-rw-r--r--os400/libxmlrpg/xmlreader.rpgle619
-rw-r--r--os400/libxmlrpg/xmlregexp.rpgle246
-rw-r--r--os400/libxmlrpg/xmlsave.rpgle96
-rw-r--r--os400/libxmlrpg/xmlschemas.rpgle318
-rw-r--r--os400/libxmlrpg/xmlschemastypes.rpgle235
-rw-r--r--os400/libxmlrpg/xmlstdarg.rpgle34
-rw-r--r--os400/libxmlrpg/xmlstring.rpgle162
-rw-r--r--os400/libxmlrpg/xmlunicode.rpgle668
-rw-r--r--os400/libxmlrpg/xmlversion.rpgle.in352
-rw-r--r--os400/libxmlrpg/xmlwriter.rpgle725
-rw-r--r--os400/libxmlrpg/xpath.rpgle631
-rw-r--r--os400/libxmlrpg/xpathInternals.rpgle672
-rw-r--r--os400/libxmlrpg/xpointer.rpgle157
49 files changed, 17561 insertions, 0 deletions
diff --git a/os400/libxmlrpg/DOCBparser.rpgle b/os400/libxmlrpg/DOCBparser.rpgle
new file mode 100644
index 00000000..bf5aaa2d
--- /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 00000000..6290b333
--- /dev/null
+++ b/os400/libxmlrpg/HTMLparser.rpgle
@@ -0,0 +1,387 @@
+ * 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
+
+ /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 00000000..82a11ca4
--- /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 00000000..18f851dd
--- /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 00000000..c9ab9d10
--- /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 00000000..b64efb28
--- /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 00000000..52baf4e9
--- /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 00000000..33393f6f
--- /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 00000000..5005a2d4
--- /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 00000000..cd36f50f
--- /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 00000000..80970fb0
--- /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 00000000..8d97915a
--- /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 00000000..80dadcac
--- /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 00000000..867f98f6
--- /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 00000000..c62fcbd1
--- /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 00000000..0637562e
--- /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 00000000..4a076d2b
--- /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 00000000..7f29e31e
--- /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 00000000..6942b7dd
--- /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 00000000..2e881e5d
--- /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 00000000..af662aa6
--- /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 00000000..edeea5b7
--- /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 00000000..ff8ea625
--- /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 00000000..07d42785
--- /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 00000000..b96e4e8f
--- /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 00000000..8b4981ab
--- /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 00000000..9a23d80d
--- /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 00000000..722b89d2
--- /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 00000000..c0b68ffe
--- /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 00000000..964e605f
--- /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 00000000..72911bc0
--- /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 00000000..49797256
--- /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 00000000..b77caad4
--- /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 00000000..9a6fd10d
--- /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 00000000..165eacac
--- /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 00000000..09592a6a
--- /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 00000000..eccd37c4
--- /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 00000000..65c2d077
--- /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 00000000..efcb09fb
--- /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 00000000..865dd262
--- /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 00000000..6433c329
--- /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 00000000..4e6f121d
--- /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 00000000..41e9eb51
--- /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 00000000..64f7abfb
--- /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 00000000..81676bed
--- /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 00000000..f2d3d30e
--- /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 00000000..209e6c94
--- /dev/null
+++ b/os400/libxmlrpg/xpath.rpgle
@@ -0,0 +1,631 @@
+ * 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
+ /endif XML_XPATH_H__
diff --git a/os400/libxmlrpg/xpathInternals.rpgle b/os400/libxmlrpg/xpathInternals.rpgle
new file mode 100644
index 00000000..69f3ae0e
--- /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 00000000..6f433147
--- /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__