* Summary: XML Schemastron implementation
* Description: interface to the XML Schematron validity checking.
*
* Copy: See Copyright for the status of this software.
*
* Author: Patrick Monnerat <pm@datasphere.ch>, DATASPHERE S.A.

/if not defined(XML_SCHEMATRON_H__)
/define XML_SCHEMATRON_H__

/include "libxmlrpg/xmlversion"

/if defined(LIBXML_SCHEMATRON_ENABLED)

/include "libxmlrpg/xmlTypesC"
/include "libxmlrpg/tree"

d xmlSchematronValidOptions… d s based(######typedef######) d like(xmlCenum) d XML_SCHEMATRON_OUT_QUIET… Quiet no report d c X'0001' d XML_SCHEMATRON_OUT_TEXT… Build textual report d c X'0002' d XML_SCHEMATRON_OUT_XML… Output SVRL d c X'0004' d XML_SCHEMATRON_OUT_ERROR… Output to error func d c X'0008' d XML_SCHEMATRON_OUT_FILE… Output to file descr d c X'0100' d XML_SCHEMATRON_OUT_BUFFER… Output to a buffer d c X'0200' d XML_SCHEMATRON_OUT_IO… Output to I/O mech d c X'0400'

* The schemas related types are kept internal

d xmlSchematronPtr… d s * based(######typedef######)

* xmlSchematronValidityErrorFunc:
* @ctx: the validation context
* @msg: the message
* @...: extra arguments
*
* Signature of an error callback from a Schematron validation

d xmlSchematronValidityErrorFunc… d s * based(######typedef######) d procptr

* xmlSchematronValidityWarningFunc:
* @ctx: the validation context
* @msg: the message
* @...: extra arguments
*
* Signature of a warning callback from a Schematron validation

d xmlSchematronValidityWarningFunc… d s * based(######typedef######) d procptr

* A schemas validation context

d xmlSchematronParserCtxtPtr… d s * based(######typedef######)

d xmlSchematronValidCtxtPtr… d s * based(######typedef######)

* Interfaces for parsing.

d xmlSchematronNewParserCtxt… d pr extproc('xmlSchematronNewParserCtxt') d like(xmlSchematronParserCtxtPtr) d URL * value options(*string) const char *

d xmlSchematronNewMemParserCtxt… d pr extproc( d 'xmlSchematronNewMemParserCtxt') d like(xmlSchematronParserCtxtPtr) d buffer * value options(*string) const char * d size value like(xmlCint)

d xmlSchematronNewDocParserCtxt… d pr extproc( d 'xmlSchematronNewDocParserCtxt') d like(xmlSchematronParserCtxtPtr) d doc value like(xmlDocPtr)

d xmlSchematronFreeParserCtxt… d pr extproc( d 'xmlSchematronFreeParserCtxt') d ctxt value d like(xmlSchematronParserCtxtPtr)

/if defined(DISABLED)

d xmlSchematronSetParserErrors… d pr extproc( d 'xmlSchematronSetParserErrors') d ctxt value d like(xmlSchematronParserCtxtPtr) d err value d like(xmlSchematronValidityErrorFunc) d warn value like( d xmlSchematronValidityWarningFunc) d ctx * value void *

d xmlSchematronGetParserErrors… d pr extproc( d 'xmlSchematronGetParserErrors') d like(xmlCint) d ctxt value d like(xmlSchematronParserCtxtPtr) d err like(xmlSchematronValidityErrorFunc) d warn like( d xmlSchematronValidityWarningFunc) d ctx * void *(*)

d xmlSchematronIsValid… d pr extproc('xmlSchematronIsValid') d like(xmlCint) d ctxt value like(xmlSchematronValidCtxtPtr)

/endif

d xmlSchematronParse… d pr extproc('xmlSchematronParse') d like(xmlSchematronPtr) d ctxt value d like(xmlSchematronParserCtxtPtr)

d xmlSchematronFree… d pr extproc('xmlSchematronFree') d schema value like(xmlSchematronPtr)

* Interfaces for validating

d xmlSchematronSetValidStructuredErrors… d pr extproc('xmlSchematronSetValidStruct- d uredErrors') d ctxt value like(xmlSchematronValidCtxtPtr) d serror value like(xmlStructuredErrorFunc) d ctx * value void *

/if defined(DISABLED)

d xmlSchematronSetValidErrors… d pr extproc( d 'xmlSchematronSetValidErrors') d ctxt value like(xmlSchematronValidCtxtPtr) d err value d like(xmlSchematronValidityErrorFunc) d warn value like( d xmlSchematronValidityWarningFunc) d ctx * value void *

d xmlSchematronGetValidErrors… d pr extproc( d 'xmlSchematronGetValidErrors') d like(xmlCint) d ctxt value like(xmlSchematronValidCtxtPtr) d err like(xmlSchematronValidityErrorFunc) d warn like( d xmlSchematronValidityWarningFunc) d ctx * void *(*)

d xmlSchematronSetValidOptions… d pr extproc( d 'xmlSchematronSetValidOptions') d like(xmlCint) d ctxt value like(xmlSchematronValidCtxtPtr) d options value like(xmlCint)

d xmlSchematronValidCtxtGetOptions… d pr extproc( d 'xmlSchematronValidCtxtGetOptions') d like(xmlCint) d ctxt value like(xmlSchematronValidCtxtPtr)

d xmlSchematronValidateOneElement… d pr extproc( d 'xmlSchematronValidateOneElement') d like(xmlCint) d ctxt value like(xmlSchematronValidCtxtPtr) d elem value like(xmlNodePtr)

/endif

d xmlSchematronNewValidCtxt… d pr extproc('xmlSchematronNewValidCtxt') d like(xmlSchematronValidCtxtPtr) d schema value like(xmlSchematronPtr) d options value like(xmlCint)

d xmlSchematronFreeValidCtxt… d pr extproc('xmlSchematronFreeValidCtxt') d ctxt value like(xmlSchematronValidCtxtPtr)

d xmlSchematronValidateDoc… d pr extproc('xmlSchematronValidateDoc') d like(xmlCint) d ctxt value like(xmlSchematronValidCtxtPtr) d instance value like(xmlDocPtr)

/endif                                                                    _SCHEMATRON_ENABLED
/endif                                                                    XML_SCHEMATRON_H__