Home | History | Annotate | Download | only in libxmlrpg
      1       * Summary: incomplete XML Schemas structure implementation
      2       * Description: interface to the XML Schemas handling and schema validity
      3       *              checking, it is incomplete right now.
      4       *
      5       * Copy: See Copyright for the status of this software.
      6       *
      7       * Author: Patrick Monnerat <pm (a] datasphere.ch>, DATASPHERE S.A.
      8 
      9       /if not defined(XML_SCHEMA_H__)
     10       /define XML_SCHEMA_H__
     11 
     12       /include "libxmlrpg/xmlversion"
     13 
     14       /if defined(LIBXML_SCHEMAS_ENABLED)
     15 
     16       /include "libxmlrpg/xmlTypesC"
     17       /include "libxmlrpg/tree"
     18 
     19       * This error codes are obsolete; not used any more.
     20 
     21      d xmlSchemaValidError...
     22      d                 s                   based(######typedef######)
     23      d                                     like(xmlCenum)
     24      d  XML_SCHEMAS_ERR_OK...
     25      d                 c                   0
     26      d  XML_SCHEMAS_ERR_NOROOT...
     27      d                 c                   1
     28      d  XML_SCHEMAS_ERR_UNDECLAREDELEM...
     29      d                 c                   2
     30      d  XML_SCHEMAS_ERR_NOTTOPLEVEL...
     31      d                 c                   3
     32      d  XML_SCHEMAS_ERR_MISSING...
     33      d                 c                   4
     34      d  XML_SCHEMAS_ERR_WRONGELEM...
     35      d                 c                   5
     36      d  XML_SCHEMAS_ERR_NOTYPE...
     37      d                 c                   6
     38      d  XML_SCHEMAS_ERR_NOROLLBACK...
     39      d                 c                   7
     40      d  XML_SCHEMAS_ERR_ISABSTRACT...
     41      d                 c                   8
     42      d  XML_SCHEMAS_ERR_NOTEMPTY...
     43      d                 c                   9
     44      d  XML_SCHEMAS_ERR_ELEMCONT...
     45      d                 c                   10
     46      d  XML_SCHEMAS_ERR_HAVEDEFAULT...
     47      d                 c                   11
     48      d  XML_SCHEMAS_ERR_NOTNILLABLE...
     49      d                 c                   12
     50      d  XML_SCHEMAS_ERR_EXTRACONTENT...
     51      d                 c                   13
     52      d  XML_SCHEMAS_ERR_INVALIDATTR...
     53      d                 c                   14
     54      d  XML_SCHEMAS_ERR_INVALIDELEM...
     55      d                 c                   15
     56      d  XML_SCHEMAS_ERR_NOTDETERMINIST...
     57      d                 c                   16
     58      d  XML_SCHEMAS_ERR_CONSTRUCT...
     59      d                 c                   17
     60      d  XML_SCHEMAS_ERR_INTERNAL...
     61      d                 c                   18
     62      d  XML_SCHEMAS_ERR_NOTSIMPLE...
     63      d                 c                   19
     64      d  XML_SCHEMAS_ERR_ATTRUNKNOWN...
     65      d                 c                   20
     66      d  XML_SCHEMAS_ERR_ATTRINVALID...
     67      d                 c                   21
     68      d  XML_SCHEMAS_ERR_VALUE...
     69      d                 c                   22
     70      d  XML_SCHEMAS_ERR_FACET...
     71      d                 c                   23
     72      d  XML_SCHEMAS_ERR_...
     73      d                 c                   24
     74      d  XML_SCHEMAS_ERR_XXX...
     75      d                 c                   25
     76 
     77       * ATTENTION: Change xmlSchemaSetValidOptions's check
     78       * for invalid values, if adding to the validation
     79       * options below.
     80 
     81       * xmlSchemaValidOption:
     82       *
     83       * This is the set of XML Schema validation options.
     84 
     85      d xmlSchemaValidOption...
     86      d                 s                   based(######typedef######)
     87      d                                     like(xmlCenum)
     88       *
     89       * Default/fixed: create an attribute node
     90       * or an element's text node on the instance.
     91       *
     92      d  XML_SCHEMA_VAL_VC_I_CREATE...
     93      d                 c                   X'0001'
     94       /if defined(DISABLED)
     95       *
     96       * assemble schemata using
     97       * xsi:schemaLocation and
     98       * xsi:noNamespaceSchemaLocation
     99       *
    100      d  XML_SCHEMA_VAL_XSI_ASSEMBLE...
    101      d                 c                   X'0002'
    102       /endif
    103 
    104       * The schemas related types are kept internal
    105 
    106      d xmlSchemaPtr    s               *   based(######typedef######)
    107 
    108       * xmlSchemaValidityErrorFunc:
    109       * @ctx: the validation context
    110       * @msg: the message
    111       * @...: extra arguments
    112       *
    113       * Signature of an error callback from an XSD validation
    114 
    115      d xmlSchemaValidityErrorFunc...
    116      d                 s               *   based(######typedef######)
    117      d                                     procptr
    118 
    119       * xmlSchemaValidityWarningFunc:
    120       * @ctx: the validation context
    121       * @msg: the message
    122       * @...: extra arguments
    123       *
    124       * Signature of a warning callback from an XSD validation
    125 
    126      d xmlSchemaValidityWarningFunc...
    127      d                 s               *   based(######typedef######)
    128      d                                     procptr
    129 
    130       * A schemas validation context
    131 
    132      d xmlSchemaParserCtxtPtr...
    133      d                 s               *   based(######typedef######)
    134 
    135      d xmlSchemaValidCtxtPtr...
    136      d                 s               *   based(######typedef######)
    137 
    138       * xmlSchemaValidityLocatorFunc:
    139       * @ctx: user provided context
    140       * @file: returned file information
    141       * @line: returned line information
    142       *
    143       * A schemas validation locator, a callback called by the validator.
    144       * This is used when file or node informations are not available
    145       * to find out what file and line number are affected
    146       *
    147       * Returns: 0 in case of success and -1 in case of error
    148 
    149      d xmlSchemaValidityLocatorFunc...
    150      d                 s               *   based(######typedef######)
    151      d                                     procptr
    152 
    153       * Interfaces for parsing.
    154 
    155      d xmlSchemaNewParserCtxt...
    156      d                 pr                  extproc('xmlSchemaNewParserCtxt')
    157      d                                     like(xmlSchemaParserCtxtPtr)
    158      d URL                             *   value options(*string)               const char *
    159 
    160      d xmlSchemaNewMemParserCtxt...
    161      d                 pr                  extproc('xmlSchemaNewMemParserCtxt')
    162      d                                     like(xmlSchemaParserCtxtPtr)
    163      d buffer                          *   value options(*string)               const char *
    164      d size                                value like(xmlCint)
    165 
    166      d xmlSchemaNewDocParserCtxt...
    167      d                 pr                  extproc('xmlSchemaNewDocParserCtxt')
    168      d                                     like(xmlSchemaParserCtxtPtr)
    169      d doc                                 value like(xmlDocPtr)
    170 
    171      d xmlSchemaFreeParserCtxt...
    172      d                 pr                  extproc('xmlSchemaFreeParserCtxt')
    173      d ctxt                                value like(xmlSchemaParserCtxtPtr)
    174 
    175      d xmlSchemaSetParserErrors...
    176      d                 pr                  extproc('xmlSchemaSetParserErrors')
    177      d ctxt                                value like(xmlSchemaParserCtxtPtr)
    178      d err                                 value
    179      d                                     like(xmlSchemaValidityErrorFunc)
    180      d warn                                value
    181      d                                     like(xmlSchemaValidityWarningFunc)
    182      d ctx                             *   value                                void *
    183 
    184      d xmlSchemaSetParserStructuredErrors...
    185      d                 pr                  extproc(
    186      d                                     'xmlSchemaSetParserStructuredErrors')
    187      d ctxt                                value like(xmlSchemaParserCtxtPtr)
    188      d serror                              value like(xmlStructuredErrorFunc)
    189      d ctx                             *   value                                void *
    190 
    191      d xmlSchemaGetParserErrors...
    192      d                 pr                  extproc('xmlSchemaGetParserErrors')
    193      d                                     like(xmlCint)
    194      d ctxt                                value like(xmlSchemaParserCtxtPtr)
    195      d err                                 like(xmlSchemaValidityErrorFunc)
    196      d warn                                like(xmlSchemaValidityWarningFunc)
    197      d ctx                             *                                        void *(*)
    198 
    199      d xmlSchemaIsValid...
    200      d                 pr                  extproc('xmlSchemaIsValid')
    201      d                                     like(xmlCint)
    202      d ctxt                                value like(xmlSchemaValidCtxtPtr)
    203 
    204      d xmlSchemaParse  pr                  extproc('xmlSchemaParse')
    205      d                                     like(xmlSchemaPtr)
    206      d ctxt                                value like(xmlSchemaParserCtxtPtr)
    207 
    208      d xmlSchemaFree   pr                  extproc('xmlSchemaFree')
    209      d schema                              value like(xmlSchemaPtr)
    210 
    211       /if defined(LIBXML_OUTPUT_ENABLED)
    212      d xmlSchemaDump   pr                  extproc('xmlSchemaDump')
    213      d output                          *   value                                FILE *
    214      d schema                              value like(xmlSchemaPtr)
    215       /endif                                                                    LIBXML_OUTPUT_ENABLD
    216 
    217       * Interfaces for validating
    218 
    219      d xmlSchemaSetValidErrors...
    220      d                 pr                  extproc('xmlSchemaSetValidErrors')
    221      d ctxt                                value like(xmlSchemaValidCtxtPtr)
    222      d err                                 value
    223      d                                     like(xmlSchemaValidityErrorFunc)
    224      d warn                                value
    225      d                                     like(xmlSchemaValidityWarningFunc)
    226      d ctx                             *   value                                void *
    227 
    228      d xmlSchemaSetValidStructuredErrors...
    229      d                 pr                  extproc(
    230      d                                     'xmlSchemaSetValidStructuredErrors')
    231      d ctxt                                value like(xmlSchemaValidCtxtPtr)
    232      d serror                              value like(xmlStructuredErrorFunc)
    233      d ctx                             *   value                                void *
    234 
    235      d xmlSchemaGetValidErrors...
    236      d                 pr                  extproc('xmlSchemaGetValidErrors')
    237      d                                     like(xmlCint)
    238      d ctxt                                value like(xmlSchemaValidCtxtPtr)
    239      d err                                 like(xmlSchemaValidityErrorFunc)
    240      d warn                                like(xmlSchemaValidityWarningFunc)
    241      d ctx                             *                                        void *(*)
    242 
    243      d xmlSchemaSetValidOptions...
    244      d                 pr                  extproc('xmlSchemaSetValidOptions')
    245      d                                     like(xmlCint)
    246      d ctxt                                value like(xmlSchemaValidCtxtPtr)
    247      d options                             value like(xmlCint)
    248 
    249      d xmlSchemaValidateSetFilename...
    250      d                 pr                  extproc(
    251      d                                     'xmlSchemaValidateSetFilename')
    252      d vctxt                               value like(xmlSchemaValidCtxtPtr)
    253      d filename                        *   value options(*string)               const char *
    254 
    255      d xmlSchemaValidCtxtGetOptions...
    256      d                 pr                  extproc(
    257      d                                     'xmlSchemaValidCtxtGetOptions')
    258      d                                     like(xmlCint)
    259      d ctxt                                value like(xmlSchemaValidCtxtPtr)
    260 
    261      d xmlSchemaNewValidCtxt...
    262      d                 pr                  extproc('xmlSchemaNewValidCtxt')
    263      d                                     like(xmlSchemaValidCtxtPtr)
    264      d schema                              value like(xmlSchemaPtr)
    265 
    266      d xmlSchemaFreeValidCtxt...
    267      d                 pr                  extproc('xmlSchemaFreeValidCtxt')
    268      d ctxt                                value like(xmlSchemaValidCtxtPtr)
    269 
    270      d xmlSchemaValidateDoc...
    271      d                 pr                  extproc('xmlSchemaValidateDoc')
    272      d                                     like(xmlCint)
    273      d ctxt                                value like(xmlSchemaValidCtxtPtr)
    274      d instance                            value like(xmlDocPtr)
    275 
    276      d xmlSchemaValidateOneElement...
    277      d                 pr                  extproc(
    278      d                                     'xmlSchemaValidateOneElement')
    279      d                                     like(xmlCint)
    280      d ctxt                                value like(xmlSchemaValidCtxtPtr)
    281      d elem                                value like(xmlNodePtr)
    282 
    283      d xmlSchemaValidateStream...
    284      d                 pr                  extproc('xmlSchemaValidateStream')
    285      d                                     like(xmlCint)
    286      d ctxt                                value like(xmlSchemaValidCtxtPtr)
    287      d input                               value like(xmlParserInputBufferPtr)
    288      d enc                                 value like(xmlCharEncoding)
    289      d sax                                 value like(xmlSAXHandlerPtr)
    290      d user_data                       *   value                                void *
    291 
    292      d xmlSchemaValidateFile...
    293      d                 pr                  extproc('xmlSchemaValidateFile')
    294      d                                     like(xmlCint)
    295      d ctxt                                value like(xmlSchemaValidCtxtPtr)
    296      d filename                        *   value options(*string)               const char *
    297      d options                             value like(xmlCint)
    298 
    299      d xmlSchemaValidCtxtGetParserCtxt...
    300      d                 pr                  extproc(
    301      d                                     'xmlSchemaValidCtxtGetParserCtxt')
    302      d                                     like(xmlParserCtxtPtr)
    303      d ctxt                                value like(xmlSchemaValidCtxtPtr)
    304 
    305       * Interface to insert Schemas SAX validation in a SAX stream
    306 
    307      d xmlSchemaSAXPlugPtr...
    308      d                 s               *   based(######typedef######)
    309 
    310      d xmlSchemaSAXPlug...
    311      d                 pr                  extproc('xmlSchemaSAXPlug')
    312      d                                     like(xmlSchemaSAXPlugPtr)
    313      d ctxt                                value like(xmlSchemaValidCtxtPtr)
    314      d sax                                 like(xmlSAXHandlerPtr)
    315      d user_data                       *                                        void *(*)
    316 
    317      d xmlSchemaSAXUnplug...
    318      d                 pr                  extproc('xmlSchemaSAXUnplug')
    319      d                                     like(xmlCint)
    320      d plug                                value like(xmlSchemaSAXPlugPtr)
    321 
    322      d xmlSchemaValidateSetLocator...
    323      d                 pr                  extproc(
    324      d                                     'xmlSchemaValidateSetLocator')
    325      d vctxt                               value like(xmlSchemaValidCtxtPtr)
    326      d f                                   value
    327      d                                     like(xmlSchemaValidityLocatorFunc)
    328      d ctxt                            *   value                                void *
    329 
    330       /endif                                                                    LIBXML_SCHEMAS_ENBLD
    331       /endif                                                                    XML_SCHEMA_H__
    332