* 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"

/if defined(LIBXML_SCHEMAS_ENABLED)

/include "libxmlrpg/xmlTypesC"
/include "libxmlrpg/hash"
/include "libxmlrpg/xmlstring"

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 based(######typedef######) d like(xmlCenum) 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 based(######typedef######) d like(xmlCenum) 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 extproc('xmlRelaxNGInitTypes') d like(xmlCint)

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 value like(xmlCint)

d xmlRelaxNGNewDocParserCtxt… d pr extproc('xmlRelaxNGNewDocParserCtxt') d like(xmlRelaxNGParserCtxtPtr) d doc value like(xmlDocPtr)

d xmlRelaxParserSetFlag… d pr extproc('xmlRelaxParserSetFlag') d like(xmlCint) d ctxt value like(xmlRelaxNGParserCtxtPtr) d flag value like(xmlCint)

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 extproc('xmlRelaxNGGetParserErrors') d like(xmlCint) 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 extproc('xmlRelaxNGGetValidErrors') d like(xmlCint) 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 extproc('xmlRelaxNGValidateDoc') d like(xmlCint) d ctxt value like(xmlRelaxNGValidCtxtPtr) d doc value like(xmlDocPtr)

* Interfaces for progressive validation when possible

d xmlRelaxNGValidatePushElement… d pr extproc( d 'xmlRelaxNGValidatePushElement') d like(xmlCint) d ctxt value like(xmlRelaxNGValidCtxtPtr) d doc value like(xmlDocPtr) d elem value like(xmlNodePtr)

d xmlRelaxNGValidatePushCData… d pr extproc( d 'xmlRelaxNGValidatePushCData') d like(xmlCint) d ctxt value like(xmlRelaxNGValidCtxtPtr) d data * value options(*string) const xmlChar * d len value like(xmlCint)

d xmlRelaxNGValidatePopElement… d pr extproc( d 'xmlRelaxNGValidatePopElement') d like(xmlCint) d ctxt value like(xmlRelaxNGValidCtxtPtr) d doc value like(xmlDocPtr) d elem value like(xmlNodePtr)

d xmlRelaxNGValidateFullElement… d pr extproc( d 'xmlRelaxNGValidateFullElement') d like(xmlCint) d ctxt value like(xmlRelaxNGValidCtxtPtr) d doc value like(xmlDocPtr) d elem value like(xmlNodePtr)

/endif                                                                    LIBXML_SCHEMAS_ENBLD
/endif                                                                    XML_RELAX_NG__