Blame os400/libxmlrpg/xmlschemas.rpgle

Packit Service a31ea6
      * Summary: incomplete XML Schemas structure implementation
Packit Service a31ea6
      * Description: interface to the XML Schemas handling and schema validity
Packit Service a31ea6
      *              checking, it is incomplete right now.
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_SCHEMA_H__)
Packit Service a31ea6
      /define XML_SCHEMA_H__
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/tree"
Packit Service a31ea6
Packit Service a31ea6
      * This error codes are obsolete; not used any more.
Packit Service a31ea6
Packit Service a31ea6
     d xmlSchemaValidError...
Packit Service a31ea6
     d                 s                   based(######typedef######)
Packit Service a31ea6
     d                                     like(xmlCenum)
Packit Service a31ea6
     d  XML_SCHEMAS_ERR_OK...
Packit Service a31ea6
     d                 c                   0
Packit Service a31ea6
     d  XML_SCHEMAS_ERR_NOROOT...
Packit Service a31ea6
     d                 c                   1
Packit Service a31ea6
     d  XML_SCHEMAS_ERR_UNDECLAREDELEM...
Packit Service a31ea6
     d                 c                   2
Packit Service a31ea6
     d  XML_SCHEMAS_ERR_NOTTOPLEVEL...
Packit Service a31ea6
     d                 c                   3
Packit Service a31ea6
     d  XML_SCHEMAS_ERR_MISSING...
Packit Service a31ea6
     d                 c                   4
Packit Service a31ea6
     d  XML_SCHEMAS_ERR_WRONGELEM...
Packit Service a31ea6
     d                 c                   5
Packit Service a31ea6
     d  XML_SCHEMAS_ERR_NOTYPE...
Packit Service a31ea6
     d                 c                   6
Packit Service a31ea6
     d  XML_SCHEMAS_ERR_NOROLLBACK...
Packit Service a31ea6
     d                 c                   7
Packit Service a31ea6
     d  XML_SCHEMAS_ERR_ISABSTRACT...
Packit Service a31ea6
     d                 c                   8
Packit Service a31ea6
     d  XML_SCHEMAS_ERR_NOTEMPTY...
Packit Service a31ea6
     d                 c                   9
Packit Service a31ea6
     d  XML_SCHEMAS_ERR_ELEMCONT...
Packit Service a31ea6
     d                 c                   10
Packit Service a31ea6
     d  XML_SCHEMAS_ERR_HAVEDEFAULT...
Packit Service a31ea6
     d                 c                   11
Packit Service a31ea6
     d  XML_SCHEMAS_ERR_NOTNILLABLE...
Packit Service a31ea6
     d                 c                   12
Packit Service a31ea6
     d  XML_SCHEMAS_ERR_EXTRACONTENT...
Packit Service a31ea6
     d                 c                   13
Packit Service a31ea6
     d  XML_SCHEMAS_ERR_INVALIDATTR...
Packit Service a31ea6
     d                 c                   14
Packit Service a31ea6
     d  XML_SCHEMAS_ERR_INVALIDELEM...
Packit Service a31ea6
     d                 c                   15
Packit Service a31ea6
     d  XML_SCHEMAS_ERR_NOTDETERMINIST...
Packit Service a31ea6
     d                 c                   16
Packit Service a31ea6
     d  XML_SCHEMAS_ERR_CONSTRUCT...
Packit Service a31ea6
     d                 c                   17
Packit Service a31ea6
     d  XML_SCHEMAS_ERR_INTERNAL...
Packit Service a31ea6
     d                 c                   18
Packit Service a31ea6
     d  XML_SCHEMAS_ERR_NOTSIMPLE...
Packit Service a31ea6
     d                 c                   19
Packit Service a31ea6
     d  XML_SCHEMAS_ERR_ATTRUNKNOWN...
Packit Service a31ea6
     d                 c                   20
Packit Service a31ea6
     d  XML_SCHEMAS_ERR_ATTRINVALID...
Packit Service a31ea6
     d                 c                   21
Packit Service a31ea6
     d  XML_SCHEMAS_ERR_VALUE...
Packit Service a31ea6
     d                 c                   22
Packit Service a31ea6
     d  XML_SCHEMAS_ERR_FACET...
Packit Service a31ea6
     d                 c                   23
Packit Service a31ea6
     d  XML_SCHEMAS_ERR_...
Packit Service a31ea6
     d                 c                   24
Packit Service a31ea6
     d  XML_SCHEMAS_ERR_XXX...
Packit Service a31ea6
     d                 c                   25
Packit Service a31ea6
Packit Service a31ea6
      * ATTENTION: Change xmlSchemaSetValidOptions's check
Packit Service a31ea6
      * for invalid values, if adding to the validation
Packit Service a31ea6
      * options below.
Packit Service a31ea6
Packit Service a31ea6
      * xmlSchemaValidOption:
Packit Service a31ea6
      *
Packit Service a31ea6
      * This is the set of XML Schema validation options.
Packit Service a31ea6
Packit Service a31ea6
     d xmlSchemaValidOption...
Packit Service a31ea6
     d                 s                   based(######typedef######)
Packit Service a31ea6
     d                                     like(xmlCenum)
Packit Service a31ea6
      *
Packit Service a31ea6
      * Default/fixed: create an attribute node
Packit Service a31ea6
      * or an element's text node on the instance.
Packit Service a31ea6
      *
Packit Service a31ea6
     d  XML_SCHEMA_VAL_VC_I_CREATE...
Packit Service a31ea6
     d                 c                   X'0001'
Packit Service a31ea6
      /if defined(DISABLED)
Packit Service a31ea6
      *
Packit Service a31ea6
      * assemble schemata using
Packit Service a31ea6
      * xsi:schemaLocation and
Packit Service a31ea6
      * xsi:noNamespaceSchemaLocation
Packit Service a31ea6
      *
Packit Service a31ea6
     d  XML_SCHEMA_VAL_XSI_ASSEMBLE...
Packit Service a31ea6
     d                 c                   X'0002'
Packit Service a31ea6
      /endif
Packit Service a31ea6
Packit Service a31ea6
      * The schemas related types are kept internal
Packit Service a31ea6
Packit Service a31ea6
     d xmlSchemaPtr    s               *   based(######typedef######)
Packit Service a31ea6
Packit Service a31ea6
      * xmlSchemaValidityErrorFunc:
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 an XSD validation
Packit Service a31ea6
Packit Service a31ea6
     d xmlSchemaValidityErrorFunc...
Packit Service a31ea6
     d                 s               *   based(######typedef######)
Packit Service a31ea6
     d                                     procptr
Packit Service a31ea6
Packit Service a31ea6
      * xmlSchemaValidityWarningFunc:
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 an XSD validation
Packit Service a31ea6
Packit Service a31ea6
     d xmlSchemaValidityWarningFunc...
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 xmlSchemaParserCtxtPtr...
Packit Service a31ea6
     d                 s               *   based(######typedef######)
Packit Service a31ea6
Packit Service a31ea6
     d xmlSchemaValidCtxtPtr...
Packit Service a31ea6
     d                 s               *   based(######typedef######)
Packit Service a31ea6
Packit Service a31ea6
      * xmlSchemaValidityLocatorFunc:
Packit Service a31ea6
      * @ctx: user provided context
Packit Service a31ea6
      * @file: returned file information
Packit Service a31ea6
      * @line: returned line information
Packit Service a31ea6
      *
Packit Service a31ea6
      * A schemas validation locator, a callback called by the validator.
Packit Service a31ea6
      * This is used when file or node informations are not available
Packit Service a31ea6
      * to find out what file and line number are affected
Packit Service a31ea6
      *
Packit Service a31ea6
      * Returns: 0 in case of success and -1 in case of error
Packit Service a31ea6
Packit Service a31ea6
     d xmlSchemaValidityLocatorFunc...
Packit Service a31ea6
     d                 s               *   based(######typedef######)
Packit Service a31ea6
     d                                     procptr
Packit Service a31ea6
Packit Service a31ea6
      * Interfaces for parsing.
Packit Service a31ea6
Packit Service a31ea6
     d xmlSchemaNewParserCtxt...
Packit Service a31ea6
     d                 pr                  extproc('xmlSchemaNewParserCtxt')
Packit Service a31ea6
     d                                     like(xmlSchemaParserCtxtPtr)
Packit Service a31ea6
     d URL                             *   value options(*string)               const char *
Packit Service a31ea6
Packit Service a31ea6
     d xmlSchemaNewMemParserCtxt...
Packit Service a31ea6
     d                 pr                  extproc('xmlSchemaNewMemParserCtxt')
Packit Service a31ea6
     d                                     like(xmlSchemaParserCtxtPtr)
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 xmlSchemaNewDocParserCtxt...
Packit Service a31ea6
     d                 pr                  extproc('xmlSchemaNewDocParserCtxt')
Packit Service a31ea6
     d                                     like(xmlSchemaParserCtxtPtr)
Packit Service a31ea6
     d doc                                 value like(xmlDocPtr)
Packit Service a31ea6
Packit Service a31ea6
     d xmlSchemaFreeParserCtxt...
Packit Service a31ea6
     d                 pr                  extproc('xmlSchemaFreeParserCtxt')
Packit Service a31ea6
     d ctxt                                value like(xmlSchemaParserCtxtPtr)
Packit Service a31ea6
Packit Service a31ea6
     d xmlSchemaSetParserErrors...
Packit Service a31ea6
     d                 pr                  extproc('xmlSchemaSetParserErrors')
Packit Service a31ea6
     d ctxt                                value like(xmlSchemaParserCtxtPtr)
Packit Service a31ea6
     d err                                 value
Packit Service a31ea6
     d                                     like(xmlSchemaValidityErrorFunc)
Packit Service a31ea6
     d warn                                value
Packit Service a31ea6
     d                                     like(xmlSchemaValidityWarningFunc)
Packit Service a31ea6
     d ctx                             *   value                                void *
Packit Service a31ea6
Packit Service a31ea6
     d xmlSchemaSetParserStructuredErrors...
Packit Service a31ea6
     d                 pr                  extproc(
Packit Service a31ea6
     d                                     'xmlSchemaSetParserStructuredErrors')
Packit Service a31ea6
     d ctxt                                value like(xmlSchemaParserCtxtPtr)
Packit Service a31ea6
     d serror                              value like(xmlStructuredErrorFunc)
Packit Service a31ea6
     d ctx                             *   value                                void *
Packit Service a31ea6
Packit Service a31ea6
     d xmlSchemaGetParserErrors...
Packit Service a31ea6
     d                 pr                  extproc('xmlSchemaGetParserErrors')
Packit Service a31ea6
     d                                     like(xmlCint)
Packit Service a31ea6
     d ctxt                                value like(xmlSchemaParserCtxtPtr)
Packit Service a31ea6
     d err                                 like(xmlSchemaValidityErrorFunc)
Packit Service a31ea6
     d warn                                like(xmlSchemaValidityWarningFunc)
Packit Service a31ea6
     d ctx                             *                                        void *(*)
Packit Service a31ea6
Packit Service a31ea6
     d xmlSchemaIsValid...
Packit Service a31ea6
     d                 pr                  extproc('xmlSchemaIsValid')
Packit Service a31ea6
     d                                     like(xmlCint)
Packit Service a31ea6
     d ctxt                                value like(xmlSchemaValidCtxtPtr)
Packit Service a31ea6
Packit Service a31ea6
     d xmlSchemaParse  pr                  extproc('xmlSchemaParse')
Packit Service a31ea6
     d                                     like(xmlSchemaPtr)
Packit Service a31ea6
     d ctxt                                value like(xmlSchemaParserCtxtPtr)
Packit Service a31ea6
Packit Service a31ea6
     d xmlSchemaFree   pr                  extproc('xmlSchemaFree')
Packit Service a31ea6
     d schema                              value like(xmlSchemaPtr)
Packit Service a31ea6
Packit Service a31ea6
      /if defined(LIBXML_OUTPUT_ENABLED)
Packit Service a31ea6
     d xmlSchemaDump   pr                  extproc('xmlSchemaDump')
Packit Service a31ea6
     d output                          *   value                                FILE *
Packit Service a31ea6
     d schema                              value like(xmlSchemaPtr)
Packit Service a31ea6
      /endif                                                                    LIBXML_OUTPUT_ENABLD
Packit Service a31ea6
Packit Service a31ea6
      * Interfaces for validating
Packit Service a31ea6
Packit Service a31ea6
     d xmlSchemaSetValidErrors...
Packit Service a31ea6
     d                 pr                  extproc('xmlSchemaSetValidErrors')
Packit Service a31ea6
     d ctxt                                value like(xmlSchemaValidCtxtPtr)
Packit Service a31ea6
     d err                                 value
Packit Service a31ea6
     d                                     like(xmlSchemaValidityErrorFunc)
Packit Service a31ea6
     d warn                                value
Packit Service a31ea6
     d                                     like(xmlSchemaValidityWarningFunc)
Packit Service a31ea6
     d ctx                             *   value                                void *
Packit Service a31ea6
Packit Service a31ea6
     d xmlSchemaSetValidStructuredErrors...
Packit Service a31ea6
     d                 pr                  extproc(
Packit Service a31ea6
     d                                     'xmlSchemaSetValidStructuredErrors')
Packit Service a31ea6
     d ctxt                                value like(xmlSchemaValidCtxtPtr)
Packit Service a31ea6
     d serror                              value like(xmlStructuredErrorFunc)
Packit Service a31ea6
     d ctx                             *   value                                void *
Packit Service a31ea6
Packit Service a31ea6
     d xmlSchemaGetValidErrors...
Packit Service a31ea6
     d                 pr                  extproc('xmlSchemaGetValidErrors')
Packit Service a31ea6
     d                                     like(xmlCint)
Packit Service a31ea6
     d ctxt                                value like(xmlSchemaValidCtxtPtr)
Packit Service a31ea6
     d err                                 like(xmlSchemaValidityErrorFunc)
Packit Service a31ea6
     d warn                                like(xmlSchemaValidityWarningFunc)
Packit Service a31ea6
     d ctx                             *                                        void *(*)
Packit Service a31ea6
Packit Service a31ea6
     d xmlSchemaSetValidOptions...
Packit Service a31ea6
     d                 pr                  extproc('xmlSchemaSetValidOptions')
Packit Service a31ea6
     d                                     like(xmlCint)
Packit Service a31ea6
     d ctxt                                value like(xmlSchemaValidCtxtPtr)
Packit Service a31ea6
     d options                             value like(xmlCint)
Packit Service a31ea6
Packit Service a31ea6
     d xmlSchemaValidateSetFilename...
Packit Service a31ea6
     d                 pr                  extproc(
Packit Service a31ea6
     d                                     'xmlSchemaValidateSetFilename')
Packit Service a31ea6
     d vctxt                               value like(xmlSchemaValidCtxtPtr)
Packit Service a31ea6
     d filename                        *   value options(*string)               const char *
Packit Service a31ea6
Packit Service a31ea6
     d xmlSchemaValidCtxtGetOptions...
Packit Service a31ea6
     d                 pr                  extproc(
Packit Service a31ea6
     d                                     'xmlSchemaValidCtxtGetOptions')
Packit Service a31ea6
     d                                     like(xmlCint)
Packit Service a31ea6
     d ctxt                                value like(xmlSchemaValidCtxtPtr)
Packit Service a31ea6
Packit Service a31ea6
     d xmlSchemaNewValidCtxt...
Packit Service a31ea6
     d                 pr                  extproc('xmlSchemaNewValidCtxt')
Packit Service a31ea6
     d                                     like(xmlSchemaValidCtxtPtr)
Packit Service a31ea6
     d schema                              value like(xmlSchemaPtr)
Packit Service a31ea6
Packit Service a31ea6
     d xmlSchemaFreeValidCtxt...
Packit Service a31ea6
     d                 pr                  extproc('xmlSchemaFreeValidCtxt')
Packit Service a31ea6
     d ctxt                                value like(xmlSchemaValidCtxtPtr)
Packit Service a31ea6
Packit Service a31ea6
     d xmlSchemaValidateDoc...
Packit Service a31ea6
     d                 pr                  extproc('xmlSchemaValidateDoc')
Packit Service a31ea6
     d                                     like(xmlCint)
Packit Service a31ea6
     d ctxt                                value like(xmlSchemaValidCtxtPtr)
Packit Service a31ea6
     d instance                            value like(xmlDocPtr)
Packit Service a31ea6
Packit Service a31ea6
     d xmlSchemaValidateOneElement...
Packit Service a31ea6
     d                 pr                  extproc(
Packit Service a31ea6
     d                                     'xmlSchemaValidateOneElement')
Packit Service a31ea6
     d                                     like(xmlCint)
Packit Service a31ea6
     d ctxt                                value like(xmlSchemaValidCtxtPtr)
Packit Service a31ea6
     d elem                                value like(xmlNodePtr)
Packit Service a31ea6
Packit Service a31ea6
     d xmlSchemaValidateStream...
Packit Service a31ea6
     d                 pr                  extproc('xmlSchemaValidateStream')
Packit Service a31ea6
     d                                     like(xmlCint)
Packit Service a31ea6
     d ctxt                                value like(xmlSchemaValidCtxtPtr)
Packit Service a31ea6
     d input                               value like(xmlParserInputBufferPtr)
Packit Service a31ea6
     d enc                                 value like(xmlCharEncoding)
Packit Service a31ea6
     d sax                                 value like(xmlSAXHandlerPtr)
Packit Service a31ea6
     d user_data                       *   value                                void *
Packit Service a31ea6
Packit Service a31ea6
     d xmlSchemaValidateFile...
Packit Service a31ea6
     d                 pr                  extproc('xmlSchemaValidateFile')
Packit Service a31ea6
     d                                     like(xmlCint)
Packit Service a31ea6
     d ctxt                                value like(xmlSchemaValidCtxtPtr)
Packit Service a31ea6
     d filename                        *   value options(*string)               const char *
Packit Service a31ea6
     d options                             value like(xmlCint)
Packit Service a31ea6
Packit Service a31ea6
     d xmlSchemaValidCtxtGetParserCtxt...
Packit Service a31ea6
     d                 pr                  extproc(
Packit Service a31ea6
     d                                     'xmlSchemaValidCtxtGetParserCtxt')
Packit Service a31ea6
     d                                     like(xmlParserCtxtPtr)
Packit Service a31ea6
     d ctxt                                value like(xmlSchemaValidCtxtPtr)
Packit Service a31ea6
Packit Service a31ea6
      * Interface to insert Schemas SAX validation in a SAX stream
Packit Service a31ea6
Packit Service a31ea6
     d xmlSchemaSAXPlugPtr...
Packit Service a31ea6
     d                 s               *   based(######typedef######)
Packit Service a31ea6
Packit Service a31ea6
     d xmlSchemaSAXPlug...
Packit Service a31ea6
     d                 pr                  extproc('xmlSchemaSAXPlug')
Packit Service a31ea6
     d                                     like(xmlSchemaSAXPlugPtr)
Packit Service a31ea6
     d ctxt                                value like(xmlSchemaValidCtxtPtr)
Packit Service a31ea6
     d sax                                 like(xmlSAXHandlerPtr)
Packit Service a31ea6
     d user_data                       *                                        void *(*)
Packit Service a31ea6
Packit Service a31ea6
     d xmlSchemaSAXUnplug...
Packit Service a31ea6
     d                 pr                  extproc('xmlSchemaSAXUnplug')
Packit Service a31ea6
     d                                     like(xmlCint)
Packit Service a31ea6
     d plug                                value like(xmlSchemaSAXPlugPtr)
Packit Service a31ea6
Packit Service a31ea6
     d xmlSchemaValidateSetLocator...
Packit Service a31ea6
     d                 pr                  extproc(
Packit Service a31ea6
     d                                     'xmlSchemaValidateSetLocator')
Packit Service a31ea6
     d vctxt                               value like(xmlSchemaValidCtxtPtr)
Packit Service a31ea6
     d f                                   value
Packit Service a31ea6
     d                                     like(xmlSchemaValidityLocatorFunc)
Packit Service a31ea6
     d ctxt                            *   value                                void *
Packit Service a31ea6
Packit Service a31ea6
      /endif                                                                    LIBXML_SCHEMAS_ENBLD
Packit Service a31ea6
      /endif                                                                    XML_SCHEMA_H__