15821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/*
25821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * Summary: implementation of the Relax-NG validation
35821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * Description: implementation of the Relax-NG validation
45821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *
55821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * Copy: See Copyright for the status of this software.
65821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *
75821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * Author: Daniel Veillard
85821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) */
95821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#ifndef __XML_RELAX_NG__
115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define __XML_RELAX_NG__
125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include <libxml/xmlversion.h>
145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include <libxml/hash.h>
155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include <libxml/xmlstring.h>
165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#ifdef LIBXML_SCHEMAS_ENABLED
185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#ifdef __cplusplus
205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)extern "C" {
215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif
225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)typedef struct _xmlRelaxNG xmlRelaxNG;
245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)typedef xmlRelaxNG *xmlRelaxNGPtr;
255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/**
285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * xmlRelaxNGValidityErrorFunc:
295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * @ctx: the validation context
305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * @msg: the message
315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * @...: extra arguments
325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *
335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * Signature of an error callback from a Relax-NG validation
345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) */
355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)typedef void (XMLCDECL *xmlRelaxNGValidityErrorFunc) (void *ctx, const char *msg, ...) LIBXML_ATTR_FORMAT(2,3);
365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/**
385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * xmlRelaxNGValidityWarningFunc:
395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * @ctx: the validation context
405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * @msg: the message
415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * @...: extra arguments
425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *
435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * Signature of a warning callback from a Relax-NG validation
445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) */
455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)typedef void (XMLCDECL *xmlRelaxNGValidityWarningFunc) (void *ctx, const char *msg, ...) LIBXML_ATTR_FORMAT(2,3);
465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/**
485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * A schemas validation context
495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) */
505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)typedef struct _xmlRelaxNGParserCtxt xmlRelaxNGParserCtxt;
515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)typedef xmlRelaxNGParserCtxt *xmlRelaxNGParserCtxtPtr;
525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)typedef struct _xmlRelaxNGValidCtxt xmlRelaxNGValidCtxt;
545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)typedef xmlRelaxNGValidCtxt *xmlRelaxNGValidCtxtPtr;
555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/*
575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * xmlRelaxNGValidErr:
585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *
595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * List of possible Relax NG validation errors
605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) */
615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)typedef enum {
625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    XML_RELAXNG_OK = 0,
635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    XML_RELAXNG_ERR_MEMORY,
645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    XML_RELAXNG_ERR_TYPE,
655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    XML_RELAXNG_ERR_TYPEVAL,
665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    XML_RELAXNG_ERR_DUPID,
675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    XML_RELAXNG_ERR_TYPECMP,
685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    XML_RELAXNG_ERR_NOSTATE,
695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    XML_RELAXNG_ERR_NODEFINE,
705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    XML_RELAXNG_ERR_LISTEXTRA,
715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    XML_RELAXNG_ERR_LISTEMPTY,
725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    XML_RELAXNG_ERR_INTERNODATA,
735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    XML_RELAXNG_ERR_INTERSEQ,
745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    XML_RELAXNG_ERR_INTEREXTRA,
755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    XML_RELAXNG_ERR_ELEMNAME,
765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    XML_RELAXNG_ERR_ATTRNAME,
775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    XML_RELAXNG_ERR_ELEMNONS,
785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    XML_RELAXNG_ERR_ATTRNONS,
795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    XML_RELAXNG_ERR_ELEMWRONGNS,
805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    XML_RELAXNG_ERR_ATTRWRONGNS,
815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    XML_RELAXNG_ERR_ELEMEXTRANS,
825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    XML_RELAXNG_ERR_ATTREXTRANS,
835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    XML_RELAXNG_ERR_ELEMNOTEMPTY,
845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    XML_RELAXNG_ERR_NOELEM,
855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    XML_RELAXNG_ERR_NOTELEM,
865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    XML_RELAXNG_ERR_ATTRVALID,
875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    XML_RELAXNG_ERR_CONTENTVALID,
885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    XML_RELAXNG_ERR_EXTRACONTENT,
895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    XML_RELAXNG_ERR_INVALIDATTR,
905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    XML_RELAXNG_ERR_DATAELEM,
915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    XML_RELAXNG_ERR_VALELEM,
925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    XML_RELAXNG_ERR_LISTELEM,
935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    XML_RELAXNG_ERR_DATATYPE,
945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    XML_RELAXNG_ERR_VALUE,
955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    XML_RELAXNG_ERR_LIST,
965821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    XML_RELAXNG_ERR_NOGRAMMAR,
975821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    XML_RELAXNG_ERR_EXTRADATA,
985821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    XML_RELAXNG_ERR_LACKDATA,
995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    XML_RELAXNG_ERR_INTERNAL,
1005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    XML_RELAXNG_ERR_ELEMWRONG,
1015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    XML_RELAXNG_ERR_TEXTWRONG
1025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} xmlRelaxNGValidErr;
1035821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/*
1055821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * xmlRelaxNGParserFlags:
1065821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *
1075821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * List of possible Relax NG Parser flags
1085821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) */
1095821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)typedef enum {
1105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    XML_RELAXNGP_NONE = 0,
1115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    XML_RELAXNGP_FREE_DOC = 1,
1125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    XML_RELAXNGP_CRNG = 2
1135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} xmlRelaxNGParserFlag;
1145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)XMLPUBFUN int XMLCALL
1165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		    xmlRelaxNGInitTypes		(void);
1175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)XMLPUBFUN void XMLCALL
1185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		    xmlRelaxNGCleanupTypes	(void);
1195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/*
1215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * Interfaces for parsing.
1225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) */
1235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)XMLPUBFUN xmlRelaxNGParserCtxtPtr XMLCALL
1245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		    xmlRelaxNGNewParserCtxt	(const char *URL);
1255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)XMLPUBFUN xmlRelaxNGParserCtxtPtr XMLCALL
1265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		    xmlRelaxNGNewMemParserCtxt	(const char *buffer,
1275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)						 int size);
1285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)XMLPUBFUN xmlRelaxNGParserCtxtPtr XMLCALL
1295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		    xmlRelaxNGNewDocParserCtxt	(xmlDocPtr doc);
1305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)XMLPUBFUN int XMLCALL
1325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		    xmlRelaxParserSetFlag	(xmlRelaxNGParserCtxtPtr ctxt,
1335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)						 int flag);
1345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)XMLPUBFUN void XMLCALL
1365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		    xmlRelaxNGFreeParserCtxt	(xmlRelaxNGParserCtxtPtr ctxt);
1375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)XMLPUBFUN void XMLCALL
1385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		    xmlRelaxNGSetParserErrors(xmlRelaxNGParserCtxtPtr ctxt,
1395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)					 xmlRelaxNGValidityErrorFunc err,
1405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)					 xmlRelaxNGValidityWarningFunc warn,
1415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)					 void *ctx);
1425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)XMLPUBFUN int XMLCALL
1435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		    xmlRelaxNGGetParserErrors(xmlRelaxNGParserCtxtPtr ctxt,
1445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)					 xmlRelaxNGValidityErrorFunc *err,
1455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)					 xmlRelaxNGValidityWarningFunc *warn,
1465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)					 void **ctx);
1475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)XMLPUBFUN void XMLCALL
1485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		    xmlRelaxNGSetParserStructuredErrors(
1495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)					 xmlRelaxNGParserCtxtPtr ctxt,
1505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)					 xmlStructuredErrorFunc serror,
1515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)					 void *ctx);
1525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)XMLPUBFUN xmlRelaxNGPtr XMLCALL
1535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		    xmlRelaxNGParse		(xmlRelaxNGParserCtxtPtr ctxt);
1545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)XMLPUBFUN void XMLCALL
1555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		    xmlRelaxNGFree		(xmlRelaxNGPtr schema);
1565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#ifdef LIBXML_OUTPUT_ENABLED
1575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)XMLPUBFUN void XMLCALL
1585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		    xmlRelaxNGDump		(FILE *output,
1595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)					 xmlRelaxNGPtr schema);
1605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)XMLPUBFUN void XMLCALL
1615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		    xmlRelaxNGDumpTree	(FILE * output,
1625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)					 xmlRelaxNGPtr schema);
1635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif /* LIBXML_OUTPUT_ENABLED */
1645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/*
1655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * Interfaces for validating
1665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) */
1675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)XMLPUBFUN void XMLCALL
1685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		    xmlRelaxNGSetValidErrors(xmlRelaxNGValidCtxtPtr ctxt,
1695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)					 xmlRelaxNGValidityErrorFunc err,
1705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)					 xmlRelaxNGValidityWarningFunc warn,
1715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)					 void *ctx);
1725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)XMLPUBFUN int XMLCALL
1735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		    xmlRelaxNGGetValidErrors(xmlRelaxNGValidCtxtPtr ctxt,
1745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)					 xmlRelaxNGValidityErrorFunc *err,
1755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)					 xmlRelaxNGValidityWarningFunc *warn,
1765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)					 void **ctx);
1775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)XMLPUBFUN void XMLCALL
1785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)			xmlRelaxNGSetValidStructuredErrors(xmlRelaxNGValidCtxtPtr ctxt,
1795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)					  xmlStructuredErrorFunc serror, void *ctx);
1805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)XMLPUBFUN xmlRelaxNGValidCtxtPtr XMLCALL
1815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		    xmlRelaxNGNewValidCtxt	(xmlRelaxNGPtr schema);
1825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)XMLPUBFUN void XMLCALL
1835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		    xmlRelaxNGFreeValidCtxt	(xmlRelaxNGValidCtxtPtr ctxt);
1845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)XMLPUBFUN int XMLCALL
1855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		    xmlRelaxNGValidateDoc	(xmlRelaxNGValidCtxtPtr ctxt,
1865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)						 xmlDocPtr doc);
1875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/*
1885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * Interfaces for progressive validation when possible
1895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) */
1905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)XMLPUBFUN int XMLCALL
1915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		    xmlRelaxNGValidatePushElement	(xmlRelaxNGValidCtxtPtr ctxt,
1925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)					 xmlDocPtr doc,
1935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)					 xmlNodePtr elem);
1945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)XMLPUBFUN int XMLCALL
1955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		    xmlRelaxNGValidatePushCData	(xmlRelaxNGValidCtxtPtr ctxt,
1965821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)					 const xmlChar *data,
1975821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)					 int len);
1985821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)XMLPUBFUN int XMLCALL
1995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		    xmlRelaxNGValidatePopElement	(xmlRelaxNGValidCtxtPtr ctxt,
2005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)					 xmlDocPtr doc,
2015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)					 xmlNodePtr elem);
2025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)XMLPUBFUN int XMLCALL
2035821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		    xmlRelaxNGValidateFullElement	(xmlRelaxNGValidCtxtPtr ctxt,
2045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)					 xmlDocPtr doc,
2055821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)					 xmlNodePtr elem);
2065821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
2075821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#ifdef __cplusplus
2085821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
2095821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif
2105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
2115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif /* LIBXML_SCHEMAS_ENABLED */
2125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
2135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif /* __XML_RELAX_NG__ */
214