Blame os400/libxmlrpg/relaxng.rpgle

Packit Service a31ea6
      * Summary: implementation of the Relax-NG validation
Packit Service a31ea6
      * Description: implementation of the Relax-NG validation
Packit Service a31ea6
      *
Packit Service a31ea6
      * Copy: See Copyright for the status of this software.
Packit Service a31ea6
      *
Packit Service a31ea6
      * Author: Patrick Monnerat <pm@datasphere.ch>, DATASPHERE S.A.
Packit Service a31ea6
Packit Service a31ea6
      /if not defined(XML_RELAX_NG__)
Packit Service a31ea6
      /define XML_RELAX_NG__
Packit Service a31ea6
Packit Service a31ea6
      /include "libxmlrpg/xmlversion"
Packit Service a31ea6
Packit Service a31ea6
      /if defined(LIBXML_SCHEMAS_ENABLED)
Packit Service a31ea6
Packit Service a31ea6
      /include "libxmlrpg/xmlTypesC"
Packit Service a31ea6
      /include "libxmlrpg/hash"
Packit Service a31ea6
      /include "libxmlrpg/xmlstring"
Packit Service a31ea6
Packit Service a31ea6
     d xmlRelaxNGPtr   s               *   based(######typedef######)
Packit Service a31ea6
Packit Service a31ea6
      * xmlRelaxNGValidityErrorFunc:
Packit Service a31ea6
      * @ctx: the validation context
Packit Service a31ea6
      * @msg: the message
Packit Service a31ea6
      * @...: extra arguments
Packit Service a31ea6
      *
Packit Service a31ea6
      * Signature of an error callback from a Relax-NG validation
Packit Service a31ea6
Packit Service a31ea6
     d xmlRelaxNGValidityErrorFunc...
Packit Service a31ea6
     d                 s               *   based(######typedef######)
Packit Service a31ea6
     d                                     procptr
Packit Service a31ea6
Packit Service a31ea6
      * xmlRelaxNGValidityWarningFunc:
Packit Service a31ea6
      * @ctx: the validation context
Packit Service a31ea6
      * @msg: the message
Packit Service a31ea6
      * @...: extra arguments
Packit Service a31ea6
      *
Packit Service a31ea6
      * Signature of a warning callback from a Relax-NG validation
Packit Service a31ea6
Packit Service a31ea6
     d xmlRelaxNGValidityWarningFunc...
Packit Service a31ea6
     d                 s               *   based(######typedef######)
Packit Service a31ea6
     d                                     procptr
Packit Service a31ea6
Packit Service a31ea6
      * A schemas validation context
Packit Service a31ea6
Packit Service a31ea6
     d xmlRelaxNGParserCtxtPtr...
Packit Service a31ea6
     d                 s               *   based(######typedef######)
Packit Service a31ea6
Packit Service a31ea6
     d xmlRelaxNGValidCtxtPtr...
Packit Service a31ea6
     d                 s               *   based(######typedef######)
Packit Service a31ea6
Packit Service a31ea6
      * xmlRelaxNGValidErr:
Packit Service a31ea6
      *
Packit Service a31ea6
      * List of possible Relax NG validation errors
Packit Service a31ea6
Packit Service a31ea6
     d xmlRelaxNGValidErr...
Packit Service a31ea6
     d                 s                   based(######typedef######)
Packit Service a31ea6
     d                                     like(xmlCenum)
Packit Service a31ea6
     d  XML_RELAXNG_OK...
Packit Service a31ea6
     d                 c                   0
Packit Service a31ea6
     d  XML_RELAXNG_ERR_MEMORY...
Packit Service a31ea6
     d                 c                   1
Packit Service a31ea6
     d  XML_RELAXNG_ERR_TYPE...
Packit Service a31ea6
     d                 c                   2
Packit Service a31ea6
     d  XML_RELAXNG_ERR_TYPEVAL...
Packit Service a31ea6
     d                 c                   3
Packit Service a31ea6
     d  XML_RELAXNG_ERR_DUPID...
Packit Service a31ea6
     d                 c                   4
Packit Service a31ea6
     d  XML_RELAXNG_ERR_TYPECMP...
Packit Service a31ea6
     d                 c                   5
Packit Service a31ea6
     d  XML_RELAXNG_ERR_NOSTATE...
Packit Service a31ea6
     d                 c                   6
Packit Service a31ea6
     d  XML_RELAXNG_ERR_NODEFINE...
Packit Service a31ea6
     d                 c                   7
Packit Service a31ea6
     d  XML_RELAXNG_ERR_LISTEXTRA...
Packit Service a31ea6
     d                 c                   8
Packit Service a31ea6
     d  XML_RELAXNG_ERR_LISTEMPTY...
Packit Service a31ea6
     d                 c                   9
Packit Service a31ea6
     d  XML_RELAXNG_ERR_INTERNODATA...
Packit Service a31ea6
     d                 c                   10
Packit Service a31ea6
     d  XML_RELAXNG_ERR_INTERSEQ...
Packit Service a31ea6
     d                 c                   11
Packit Service a31ea6
     d  XML_RELAXNG_ERR_INTEREXTRA...
Packit Service a31ea6
     d                 c                   12
Packit Service a31ea6
     d  XML_RELAXNG_ERR_ELEMNAME...
Packit Service a31ea6
     d                 c                   13
Packit Service a31ea6
     d  XML_RELAXNG_ERR_ATTRNAME...
Packit Service a31ea6
     d                 c                   14
Packit Service a31ea6
     d  XML_RELAXNG_ERR_ELEMNONS...
Packit Service a31ea6
     d                 c                   15
Packit Service a31ea6
     d  XML_RELAXNG_ERR_ATTRNONS...
Packit Service a31ea6
     d                 c                   16
Packit Service a31ea6
     d  XML_RELAXNG_ERR_ELEMWRONGNS...
Packit Service a31ea6
     d                 c                   17
Packit Service a31ea6
     d  XML_RELAXNG_ERR_ATTRWRONGNS...
Packit Service a31ea6
     d                 c                   18
Packit Service a31ea6
     d  XML_RELAXNG_ERR_ELEMEXTRANS...
Packit Service a31ea6
     d                 c                   19
Packit Service a31ea6
     d  XML_RELAXNG_ERR_ATTREXTRANS...
Packit Service a31ea6
     d                 c                   20
Packit Service a31ea6
     d  XML_RELAXNG_ERR_ELEMNOTEMPTY...
Packit Service a31ea6
     d                 c                   21
Packit Service a31ea6
     d  XML_RELAXNG_ERR_NOELEM...
Packit Service a31ea6
     d                 c                   22
Packit Service a31ea6
     d  XML_RELAXNG_ERR_NOTELEM...
Packit Service a31ea6
     d                 c                   23
Packit Service a31ea6
     d  XML_RELAXNG_ERR_ATTRVALID...
Packit Service a31ea6
     d                 c                   24
Packit Service a31ea6
     d  XML_RELAXNG_ERR_CONTENTVALID...
Packit Service a31ea6
     d                 c                   25
Packit Service a31ea6
     d  XML_RELAXNG_ERR_EXTRACONTENT...
Packit Service a31ea6
     d                 c                   26
Packit Service a31ea6
     d  XML_RELAXNG_ERR_INVALIDATTR...
Packit Service a31ea6
     d                 c                   27
Packit Service a31ea6
     d  XML_RELAXNG_ERR_DATAELEM...
Packit Service a31ea6
     d                 c                   28
Packit Service a31ea6
     d  XML_RELAXNG_ERR_VALELEM...
Packit Service a31ea6
     d                 c                   29
Packit Service a31ea6
     d  XML_RELAXNG_ERR_LISTELEM...
Packit Service a31ea6
     d                 c                   30
Packit Service a31ea6
     d  XML_RELAXNG_ERR_DATATYPE...
Packit Service a31ea6
     d                 c                   31
Packit Service a31ea6
     d  XML_RELAXNG_ERR_VALUE...
Packit Service a31ea6
     d                 c                   32
Packit Service a31ea6
     d  XML_RELAXNG_ERR_LIST...
Packit Service a31ea6
     d                 c                   33
Packit Service a31ea6
     d  XML_RELAXNG_ERR_NOGRAMMAR...
Packit Service a31ea6
     d                 c                   34
Packit Service a31ea6
     d  XML_RELAXNG_ERR_EXTRADATA...
Packit Service a31ea6
     d                 c                   35
Packit Service a31ea6
     d  XML_RELAXNG_ERR_LACKDATA...
Packit Service a31ea6
     d                 c                   36
Packit Service a31ea6
     d  XML_RELAXNG_ERR_INTERNAL...
Packit Service a31ea6
     d                 c                   37
Packit Service a31ea6
     d  XML_RELAXNG_ERR_ELEMWRONG...
Packit Service a31ea6
     d                 c                   38
Packit Service a31ea6
     d  XML_RELAXNG_ERR_TEXTWRONG...
Packit Service a31ea6
     d                 c                   39
Packit Service a31ea6
Packit Service a31ea6
      * xmlRelaxNGParserFlags:
Packit Service a31ea6
      *
Packit Service a31ea6
      * List of possible Relax NG Parser flags
Packit Service a31ea6
Packit Service a31ea6
     d xmlRelaxNGParserFlag...
Packit Service a31ea6
     d                 s                   based(######typedef######)
Packit Service a31ea6
     d                                     like(xmlCenum)
Packit Service a31ea6
     d  XML_RELAXNGP_NONE...
Packit Service a31ea6
     d                 c                   0
Packit Service a31ea6
     d  XML_RELAXNGP_FREE_DOC...
Packit Service a31ea6
     d                 c                   1
Packit Service a31ea6
     d  XML_RELAXNGP_CRNG...
Packit Service a31ea6
     d                 c                   2
Packit Service a31ea6
Packit Service a31ea6
     d xmlRelaxNGInitTypes...
Packit Service a31ea6
     d                 pr                  extproc('xmlRelaxNGInitTypes')
Packit Service a31ea6
     d                                     like(xmlCint)
Packit Service a31ea6
Packit Service a31ea6
     d xmlRelaxNGCleanupTypes...
Packit Service a31ea6
     d                 pr                  extproc('xmlRelaxNGCleanupTypes')
Packit Service a31ea6
Packit Service a31ea6
Packit Service a31ea6
      * Interfaces for parsing.
Packit Service a31ea6
Packit Service a31ea6
     d xmlRelaxNGNewParserCtxt...
Packit Service a31ea6
     d                 pr                  extproc('xmlRelaxNGNewParserCtxt')
Packit Service a31ea6
     d                                     like(xmlRelaxNGParserCtxtPtr)
Packit Service a31ea6
     d  URL                            *   value options(*string)               const char *
Packit Service a31ea6
Packit Service a31ea6
     d xmlRelaxNGNewMemParserCtxt...
Packit Service a31ea6
     d                 pr                  extproc('xmlRelaxNGNewMemParserCtxt')
Packit Service a31ea6
     d                                     like(xmlRelaxNGParserCtxtPtr)
Packit Service a31ea6
     d  buffer                         *   value options(*string)               const char *
Packit Service a31ea6
     d  size                               value like(xmlCint)
Packit Service a31ea6
Packit Service a31ea6
     d xmlRelaxNGNewDocParserCtxt...
Packit Service a31ea6
     d                 pr                  extproc('xmlRelaxNGNewDocParserCtxt')
Packit Service a31ea6
     d                                     like(xmlRelaxNGParserCtxtPtr)
Packit Service a31ea6
     d  doc                                value like(xmlDocPtr)
Packit Service a31ea6
Packit Service a31ea6
     d xmlRelaxParserSetFlag...
Packit Service a31ea6
     d                 pr                  extproc('xmlRelaxParserSetFlag')
Packit Service a31ea6
     d                                     like(xmlCint)
Packit Service a31ea6
     d  ctxt                               value like(xmlRelaxNGParserCtxtPtr)
Packit Service a31ea6
     d  flag                               value like(xmlCint)
Packit Service a31ea6
Packit Service a31ea6
     d xmlRelaxNGFreeParserCtxt...
Packit Service a31ea6
     d                 pr                  extproc('xmlRelaxNGFreeParserCtxt')
Packit Service a31ea6
     d  ctxt                               value like(xmlRelaxNGParserCtxtPtr)
Packit Service a31ea6
Packit Service a31ea6
     d xmlRelaxNGSetParserErrors...
Packit Service a31ea6
     d                 pr                  extproc('xmlRelaxNGSetParserErrors')
Packit Service a31ea6
     d  ctxt                               value like(xmlRelaxNGParserCtxtPtr)
Packit Service a31ea6
     d  err                                value
Packit Service a31ea6
     d                                     like(xmlRelaxNGValidityErrorFunc)
Packit Service a31ea6
     d  warn                               value
Packit Service a31ea6
     d                                     like(xmlRelaxNGValidityWarningFunc)
Packit Service a31ea6
     d  ctx                            *   value                                void *
Packit Service a31ea6
Packit Service a31ea6
     d xmlRelaxNGGetParserErrors...
Packit Service a31ea6
     d                 pr                  extproc('xmlRelaxNGGetParserErrors')
Packit Service a31ea6
     d                                     like(xmlCint)
Packit Service a31ea6
     d  ctxt                               value like(xmlRelaxNGParserCtxtPtr)
Packit Service a31ea6
     d  err                                like(xmlRelaxNGValidityErrorFunc)
Packit Service a31ea6
     d  warn                               like(xmlRelaxNGValidityWarningFunc)
Packit Service a31ea6
     d  ctx                            *                                        void *(*)
Packit Service a31ea6
Packit Service a31ea6
     d xmlRelaxNGSetParserStructuredErrors...
Packit Service a31ea6
     d                 pr                  extproc(
Packit Service a31ea6
     d                                     'xmlRelaxNGSetParserStructuredErrors'
Packit Service a31ea6
     d                                     )
Packit Service a31ea6
     d  ctxt                               value like(xmlRelaxNGParserCtxtPtr)
Packit Service a31ea6
     d  serror                             value like(xmlStructuredErrorFunc)
Packit Service a31ea6
     d  ctx                            *   value                                void *
Packit Service a31ea6
Packit Service a31ea6
     d xmlRelaxNGParse...
Packit Service a31ea6
     d                 pr                  extproc('xmlRelaxNGParse')
Packit Service a31ea6
     d                                     like(xmlRelaxNGPtr)
Packit Service a31ea6
     d  ctxt                               value like(xmlRelaxNGParserCtxtPtr)
Packit Service a31ea6
Packit Service a31ea6
     d xmlRelaxNGFree  pr                  extproc('xmlRelaxNGFree')
Packit Service a31ea6
     d  schema                             value like(xmlRelaxNGPtr)
Packit Service a31ea6
Packit Service a31ea6
Packit Service a31ea6
      /if defined(LIBXML_OUTPUT_ENABLED)
Packit Service a31ea6
     d xmlRelaxNGDump  pr                  extproc('xmlRelaxNGDump')
Packit Service a31ea6
     d  output                         *   value                                FILE *
Packit Service a31ea6
     d  schema                             value like(xmlRelaxNGPtr)
Packit Service a31ea6
Packit Service a31ea6
     d xmlRelaxNGDumpTree...
Packit Service a31ea6
     d                 pr                  extproc('xmlRelaxNGDumpTree')
Packit Service a31ea6
     d  output                         *   value                                FILE *
Packit Service a31ea6
     d  schema                             value like(xmlRelaxNGPtr)
Packit Service a31ea6
      /endif                                                                    LIBXML_OUTPUT_ENABLD
Packit Service a31ea6
Packit Service a31ea6
      * Interfaces for validating
Packit Service a31ea6
Packit Service a31ea6
     d xmlRelaxNGSetValidErrors...
Packit Service a31ea6
     d                 pr                  extproc('xmlRelaxNGSetValidErrors')
Packit Service a31ea6
     d  ctxt                               value like(xmlRelaxNGValidCtxtPtr)
Packit Service a31ea6
     d  err                                value
Packit Service a31ea6
     d                                     like(xmlRelaxNGValidityErrorFunc)
Packit Service a31ea6
     d  warn                               value
Packit Service a31ea6
     d                                     like(xmlRelaxNGValidityWarningFunc)
Packit Service a31ea6
     d  ctx                            *   value                                void *
Packit Service a31ea6
Packit Service a31ea6
     d xmlRelaxNGGetValidErrors...
Packit Service a31ea6
     d                 pr                  extproc('xmlRelaxNGGetValidErrors')
Packit Service a31ea6
     d                                     like(xmlCint)
Packit Service a31ea6
     d  ctxt                               value like(xmlRelaxNGValidCtxtPtr)
Packit Service a31ea6
     d  err                                like(xmlRelaxNGValidityErrorFunc)
Packit Service a31ea6
     d  warn                               like(xmlRelaxNGValidityWarningFunc)
Packit Service a31ea6
     d  ctx                            *   value                                void * *
Packit Service a31ea6
Packit Service a31ea6
     d xmlRelaxNGSetValidStructuredErrors...
Packit Service a31ea6
     d                 pr                  extproc(
Packit Service a31ea6
     d                                     'xmlRelaxNGSetValidStructuredErrors')
Packit Service a31ea6
     d  ctxt                               value like(xmlRelaxNGValidCtxtPtr)
Packit Service a31ea6
     d  serror                             value like(xmlStructuredErrorFunc)
Packit Service a31ea6
     d  ctx                            *   value                                void *
Packit Service a31ea6
Packit Service a31ea6
     d xmlRelaxNGNewValidCtxt...
Packit Service a31ea6
     d                 pr                  extproc('xmlRelaxNGNewValidCtxt')
Packit Service a31ea6
     d                                     like(xmlRelaxNGValidCtxtPtr)
Packit Service a31ea6
     d  schema                             value like(xmlRelaxNGPtr)
Packit Service a31ea6
Packit Service a31ea6
     d xmlRelaxNGFreeValidCtxt...
Packit Service a31ea6
     d                 pr                  extproc('xmlRelaxNGFreeValidCtxt')
Packit Service a31ea6
     d  ctxt                               value like(xmlRelaxNGValidCtxtPtr)
Packit Service a31ea6
Packit Service a31ea6
     d xmlRelaxNGValidateDoc...
Packit Service a31ea6
     d                 pr                  extproc('xmlRelaxNGValidateDoc')
Packit Service a31ea6
     d                                     like(xmlCint)
Packit Service a31ea6
     d  ctxt                               value like(xmlRelaxNGValidCtxtPtr)
Packit Service a31ea6
     d  doc                                value like(xmlDocPtr)
Packit Service a31ea6
Packit Service a31ea6
      * Interfaces for progressive validation when possible
Packit Service a31ea6
Packit Service a31ea6
     d xmlRelaxNGValidatePushElement...
Packit Service a31ea6
     d                 pr                  extproc(
Packit Service a31ea6
     d                                     'xmlRelaxNGValidatePushElement')
Packit Service a31ea6
     d                                     like(xmlCint)
Packit Service a31ea6
     d  ctxt                               value like(xmlRelaxNGValidCtxtPtr)
Packit Service a31ea6
     d  doc                                value like(xmlDocPtr)
Packit Service a31ea6
     d  elem                               value like(xmlNodePtr)
Packit Service a31ea6
Packit Service a31ea6
     d xmlRelaxNGValidatePushCData...
Packit Service a31ea6
     d                 pr                  extproc(
Packit Service a31ea6
     d                                     'xmlRelaxNGValidatePushCData')
Packit Service a31ea6
     d                                     like(xmlCint)
Packit Service a31ea6
     d  ctxt                               value like(xmlRelaxNGValidCtxtPtr)
Packit Service a31ea6
     d  data                           *   value options(*string)               const xmlChar *
Packit Service a31ea6
     d  len                                value like(xmlCint)
Packit Service a31ea6
Packit Service a31ea6
     d xmlRelaxNGValidatePopElement...
Packit Service a31ea6
     d                 pr                  extproc(
Packit Service a31ea6
     d                                     'xmlRelaxNGValidatePopElement')
Packit Service a31ea6
     d                                     like(xmlCint)
Packit Service a31ea6
     d  ctxt                               value like(xmlRelaxNGValidCtxtPtr)
Packit Service a31ea6
     d  doc                                value like(xmlDocPtr)
Packit Service a31ea6
     d  elem                               value like(xmlNodePtr)
Packit Service a31ea6
Packit Service a31ea6
     d xmlRelaxNGValidateFullElement...
Packit Service a31ea6
     d                 pr                  extproc(
Packit Service a31ea6
     d                                     'xmlRelaxNGValidateFullElement')
Packit Service a31ea6
     d                                     like(xmlCint)
Packit Service a31ea6
     d  ctxt                               value like(xmlRelaxNGValidCtxtPtr)
Packit Service a31ea6
     d  doc                                value like(xmlDocPtr)
Packit Service a31ea6
     d  elem                               value like(xmlNodePtr)
Packit Service a31ea6
Packit Service a31ea6
      /endif                                                                    LIBXML_SCHEMAS_ENBLD
Packit Service a31ea6
      /endif                                                                    XML_RELAX_NG__