Home | History | Annotate | Download | only in libxmlrpg
      1       * Summary: implementation of the Relax-NG validation
      2       * Description: implementation of the Relax-NG validation
      3       *
      4       * Copy: See Copyright for the status of this software.
      5       *
      6       * Author: Patrick Monnerat <pm (a] datasphere.ch>, DATASPHERE S.A.
      7 
      8       /if not defined(XML_RELAX_NG__)
      9       /define XML_RELAX_NG__
     10 
     11       /include "libxmlrpg/xmlversion"
     12       /include "libxmlrpg/hash"
     13       /include "libxmlrpg/xmlstring"
     14 
     15       /if defined(LIBXML_SCHEMAS_ENABLED)
     16 
     17      d xmlRelaxNGPtr   s               *   based(######typedef######)
     18 
     19       * xmlRelaxNGValidityErrorFunc:
     20       * @ctx: the validation context
     21       * @msg: the message
     22       * @...: extra arguments
     23       *
     24       * Signature of an error callback from a Relax-NG validation
     25 
     26      d xmlRelaxNGValidityErrorFunc...
     27      d                 s               *   based(######typedef######)
     28      d                                     procptr
     29 
     30       * xmlRelaxNGValidityWarningFunc:
     31       * @ctx: the validation context
     32       * @msg: the message
     33       * @...: extra arguments
     34       *
     35       * Signature of a warning callback from a Relax-NG validation
     36 
     37      d xmlRelaxNGValidityWarningFunc...
     38      d                 s               *   based(######typedef######)
     39      d                                     procptr
     40 
     41       * A schemas validation context
     42 
     43      d xmlRelaxNGParserCtxtPtr...
     44      d                 s               *   based(######typedef######)
     45 
     46      d xmlRelaxNGValidCtxtPtr...
     47      d                 s               *   based(######typedef######)
     48 
     49       * xmlRelaxNGValidErr:
     50       *
     51       * List of possible Relax NG validation errors
     52 
     53      d xmlRelaxNGValidErr...
     54      d                 s             10i 0 based(######typedef######)           enum
     55      d  XML_RELAXNG_OK...
     56      d                 c                   0
     57      d  XML_RELAXNG_ERR_MEMORY...
     58      d                 c                   1
     59      d  XML_RELAXNG_ERR_TYPE...
     60      d                 c                   2
     61      d  XML_RELAXNG_ERR_TYPEVAL...
     62      d                 c                   3
     63      d  XML_RELAXNG_ERR_DUPID...
     64      d                 c                   4
     65      d  XML_RELAXNG_ERR_TYPECMP...
     66      d                 c                   5
     67      d  XML_RELAXNG_ERR_NOSTATE...
     68      d                 c                   6
     69      d  XML_RELAXNG_ERR_NODEFINE...
     70      d                 c                   7
     71      d  XML_RELAXNG_ERR_LISTEXTRA...
     72      d                 c                   8
     73      d  XML_RELAXNG_ERR_LISTEMPTY...
     74      d                 c                   9
     75      d  XML_RELAXNG_ERR_INTERNODATA...
     76      d                 c                   10
     77      d  XML_RELAXNG_ERR_INTERSEQ...
     78      d                 c                   11
     79      d  XML_RELAXNG_ERR_INTEREXTRA...
     80      d                 c                   12
     81      d  XML_RELAXNG_ERR_ELEMNAME...
     82      d                 c                   13
     83      d  XML_RELAXNG_ERR_ATTRNAME...
     84      d                 c                   14
     85      d  XML_RELAXNG_ERR_ELEMNONS...
     86      d                 c                   15
     87      d  XML_RELAXNG_ERR_ATTRNONS...
     88      d                 c                   16
     89      d  XML_RELAXNG_ERR_ELEMWRONGNS...
     90      d                 c                   17
     91      d  XML_RELAXNG_ERR_ATTRWRONGNS...
     92      d                 c                   18
     93      d  XML_RELAXNG_ERR_ELEMEXTRANS...
     94      d                 c                   19
     95      d  XML_RELAXNG_ERR_ATTREXTRANS...
     96      d                 c                   20
     97      d  XML_RELAXNG_ERR_ELEMNOTEMPTY...
     98      d                 c                   21
     99      d  XML_RELAXNG_ERR_NOELEM...
    100      d                 c                   22
    101      d  XML_RELAXNG_ERR_NOTELEM...
    102      d                 c                   23
    103      d  XML_RELAXNG_ERR_ATTRVALID...
    104      d                 c                   24
    105      d  XML_RELAXNG_ERR_CONTENTVALID...
    106      d                 c                   25
    107      d  XML_RELAXNG_ERR_EXTRACONTENT...
    108      d                 c                   26
    109      d  XML_RELAXNG_ERR_INVALIDATTR...
    110      d                 c                   27
    111      d  XML_RELAXNG_ERR_DATAELEM...
    112      d                 c                   28
    113      d  XML_RELAXNG_ERR_VALELEM...
    114      d                 c                   29
    115      d  XML_RELAXNG_ERR_LISTELEM...
    116      d                 c                   30
    117      d  XML_RELAXNG_ERR_DATATYPE...
    118      d                 c                   31
    119      d  XML_RELAXNG_ERR_VALUE...
    120      d                 c                   32
    121      d  XML_RELAXNG_ERR_LIST...
    122      d                 c                   33
    123      d  XML_RELAXNG_ERR_NOGRAMMAR...
    124      d                 c                   34
    125      d  XML_RELAXNG_ERR_EXTRADATA...
    126      d                 c                   35
    127      d  XML_RELAXNG_ERR_LACKDATA...
    128      d                 c                   36
    129      d  XML_RELAXNG_ERR_INTERNAL...
    130      d                 c                   37
    131      d  XML_RELAXNG_ERR_ELEMWRONG...
    132      d                 c                   38
    133      d  XML_RELAXNG_ERR_TEXTWRONG...
    134      d                 c                   39
    135 
    136       * xmlRelaxNGParserFlags:
    137       *
    138       * List of possible Relax NG Parser flags
    139 
    140      d xmlRelaxNGParserFlag...
    141      d                 s             10i 0 based(######typedef######)           enum
    142      d  XML_RELAXNGP_NONE...
    143      d                 c                   0
    144      d  XML_RELAXNGP_FREE_DOC...
    145      d                 c                   1
    146      d  XML_RELAXNGP_CRNG...
    147      d                 c                   2
    148 
    149      d xmlRelaxNGInitTypes...
    150      d                 pr            10i 0 extproc('xmlRelaxNGInitTypes')
    151 
    152      d xmlRelaxNGCleanupTypes...
    153      d                 pr                  extproc('xmlRelaxNGCleanupTypes')
    154 
    155 
    156       * Interfaces for parsing.
    157 
    158      d xmlRelaxNGNewParserCtxt...
    159      d                 pr                  extproc('xmlRelaxNGNewParserCtxt')
    160      d                                     like(xmlRelaxNGParserCtxtPtr)
    161      d  URL                            *   value options(*string)               const char *
    162 
    163      d xmlRelaxNGNewMemParserCtxt...
    164      d                 pr                  extproc('xmlRelaxNGNewMemParserCtxt')
    165      d                                     like(xmlRelaxNGParserCtxtPtr)
    166      d  buffer                         *   value options(*string)               const char *
    167      d  size                         10i 0 value
    168 
    169      d xmlRelaxNGNewDocParserCtxt...
    170      d                 pr                  extproc('xmlRelaxNGNewDocParserCtxt')
    171      d                                     like(xmlRelaxNGParserCtxtPtr)
    172      d  doc                                value like(xmlDocPtr)
    173 
    174      d xmlRelaxParserSetFlag...
    175      d                 pr            10i 0 extproc('xmlRelaxParserSetFlag')
    176      d  ctxt                               value like(xmlRelaxNGParserCtxtPtr)
    177      d  flag                         10i 0 value
    178 
    179      d xmlRelaxNGFreeParserCtxt...
    180      d                 pr                  extproc('xmlRelaxNGFreeParserCtxt')
    181      d  ctxt                               value like(xmlRelaxNGParserCtxtPtr)
    182 
    183      d xmlRelaxNGSetParserErrors...
    184      d                 pr                  extproc('xmlRelaxNGSetParserErrors')
    185      d  ctxt                               value like(xmlRelaxNGParserCtxtPtr)
    186      d  err                                value
    187      d                                     like(xmlRelaxNGValidityErrorFunc)
    188      d  warn                               value
    189      d                                     like(xmlRelaxNGValidityWarningFunc)
    190      d  ctx                            *   value                                void *
    191 
    192      d xmlRelaxNGGetParserErrors...
    193      d                 pr            10i 0 extproc('xmlRelaxNGGetParserErrors')
    194      d  ctxt                               value like(xmlRelaxNGParserCtxtPtr)
    195      d  err                                like(xmlRelaxNGValidityErrorFunc)
    196      d  warn                               like(xmlRelaxNGValidityWarningFunc)
    197      d  ctx                            *                                        void *(*)
    198 
    199      d xmlRelaxNGSetParserStructuredErrors...
    200      d                 pr                  extproc(
    201      d                                     'xmlRelaxNGSetParserStructuredErrors'
    202      d                                     )
    203      d  ctxt                               value like(xmlRelaxNGParserCtxtPtr)
    204      d  serror                             value like(xmlStructuredErrorFunc)
    205      d  ctx                            *   value                                void *
    206 
    207      d xmlRelaxNGParse...
    208      d                 pr                  extproc('xmlRelaxNGParse')
    209      d                                     like(xmlRelaxNGPtr)
    210      d  ctxt                               value like(xmlRelaxNGParserCtxtPtr)
    211 
    212      d xmlRelaxNGFree  pr                  extproc('xmlRelaxNGFree')
    213      d  schema                             value like(xmlRelaxNGPtr)
    214 
    215 
    216       /if defined(LIBXML_OUTPUT_ENABLED)
    217      d xmlRelaxNGDump  pr                  extproc('xmlRelaxNGDump')
    218      d  output                         *   value                                FILE *
    219      d  schema                             value like(xmlRelaxNGPtr)
    220 
    221      d xmlRelaxNGDumpTree...
    222      d                 pr                  extproc('xmlRelaxNGDumpTree')
    223      d  output                         *   value                                FILE *
    224      d  schema                             value like(xmlRelaxNGPtr)
    225       /endif                                                                    LIBXML_OUTPUT_ENABLD
    226 
    227       * Interfaces for validating
    228 
    229      d xmlRelaxNGSetValidErrors...
    230      d                 pr                  extproc('xmlRelaxNGSetValidErrors')
    231      d  ctxt                               value like(xmlRelaxNGValidCtxtPtr)
    232      d  err                                value
    233      d                                     like(xmlRelaxNGValidityErrorFunc)
    234      d  warn                               value
    235      d                                     like(xmlRelaxNGValidityWarningFunc)
    236      d  ctx                            *   value                                void *
    237 
    238      d xmlRelaxNGGetValidErrors...
    239      d                 pr            10i 0 extproc('xmlRelaxNGGetValidErrors')
    240      d  ctxt                               value like(xmlRelaxNGValidCtxtPtr)
    241      d  err                                like(xmlRelaxNGValidityErrorFunc)
    242      d  warn                               like(xmlRelaxNGValidityWarningFunc)
    243      d  ctx                            *   value                                void * *
    244 
    245      d xmlRelaxNGSetValidStructuredErrors...
    246      d                 pr                  extproc(
    247      d                                     'xmlRelaxNGSetValidStructuredErrors')
    248      d  ctxt                               value like(xmlRelaxNGValidCtxtPtr)
    249      d  serror                             value like(xmlStructuredErrorFunc)
    250      d  ctx                            *   value                                void *
    251 
    252      d xmlRelaxNGNewValidCtxt...
    253      d                 pr                  extproc('xmlRelaxNGNewValidCtxt')
    254      d                                     like(xmlRelaxNGValidCtxtPtr)
    255      d  schema                             value like(xmlRelaxNGPtr)
    256 
    257      d xmlRelaxNGFreeValidCtxt...
    258      d                 pr                  extproc('xmlRelaxNGFreeValidCtxt')
    259      d  ctxt                               value like(xmlRelaxNGValidCtxtPtr)
    260 
    261      d xmlRelaxNGValidateDoc...
    262      d                 pr            10i 0 extproc('xmlRelaxNGValidateDoc')
    263      d  ctxt                               value like(xmlRelaxNGValidCtxtPtr)
    264      d  doc                                value like(xmlDocPtr)
    265 
    266       * Interfaces for progressive validation when possible
    267 
    268      d xmlRelaxNGValidatePushElement...
    269      d                 pr            10i 0 extproc(
    270      d                                     'xmlRelaxNGValidatePushElement')
    271      d  ctxt                               value like(xmlRelaxNGValidCtxtPtr)
    272      d  doc                                value like(xmlDocPtr)
    273      d  elem                               value like(xmlNodePtr)
    274 
    275      d xmlRelaxNGValidatePushCData...
    276      d                 pr            10i 0 extproc(
    277      d                                     'xmlRelaxNGValidatePushCData')
    278      d  ctxt                               value like(xmlRelaxNGValidCtxtPtr)
    279      d  data                           *   value options(*string)               const xmlChar *
    280      d  len                          10i 0 value
    281 
    282      d xmlRelaxNGValidatePopElement...
    283      d                 pr            10i 0 extproc(
    284      d                                     'xmlRelaxNGValidatePopElement')
    285      d  ctxt                               value like(xmlRelaxNGValidCtxtPtr)
    286      d  doc                                value like(xmlDocPtr)
    287      d  elem                               value like(xmlNodePtr)
    288 
    289      d xmlRelaxNGValidateFullElement...
    290      d                 pr            10i 0 extproc(
    291      d                                     'xmlRelaxNGValidateFullElement')
    292      d  ctxt                               value like(xmlRelaxNGValidCtxtPtr)
    293      d  doc                                value like(xmlDocPtr)
    294      d  elem                               value like(xmlNodePtr)
    295 
    296       /endif                                                                    LIBXML_SCHEMAS_ENBLD
    297       /endif                                                                    XML_RELAX_NG__
    298