14255d504151db75c17f85192ce74f45dd2d65533Daniel Veillard/*
2be5869729a416032a4abb5a65430d25831828f75Daniel Veillard * Summary: incomplete XML Schemas structure implementation
3be5869729a416032a4abb5a65430d25831828f75Daniel Veillard * Description: interface to the XML Schemas handling and schema validity
4be5869729a416032a4abb5a65430d25831828f75Daniel Veillard *              checking, it is incomplete right now.
54255d504151db75c17f85192ce74f45dd2d65533Daniel Veillard *
6be5869729a416032a4abb5a65430d25831828f75Daniel Veillard * Copy: See Copyright for the status of this software.
74255d504151db75c17f85192ce74f45dd2d65533Daniel Veillard *
8be5869729a416032a4abb5a65430d25831828f75Daniel Veillard * Author: Daniel Veillard
94255d504151db75c17f85192ce74f45dd2d65533Daniel Veillard */
104255d504151db75c17f85192ce74f45dd2d65533Daniel Veillard
114255d504151db75c17f85192ce74f45dd2d65533Daniel Veillard
124255d504151db75c17f85192ce74f45dd2d65533Daniel Veillard#ifndef __XML_SCHEMA_H__
134255d504151db75c17f85192ce74f45dd2d65533Daniel Veillard#define __XML_SCHEMA_H__
144255d504151db75c17f85192ce74f45dd2d65533Daniel Veillard
154255d504151db75c17f85192ce74f45dd2d65533Daniel Veillard#include <libxml/xmlversion.h>
167ae91bcd9e94946a7be41290cb67ffc9c2cf0a9fIgor Zlatkovic
174255d504151db75c17f85192ce74f45dd2d65533Daniel Veillard#ifdef LIBXML_SCHEMAS_ENABLED
184255d504151db75c17f85192ce74f45dd2d65533Daniel Veillard
194255d504151db75c17f85192ce74f45dd2d65533Daniel Veillard#include <libxml/tree.h>
204255d504151db75c17f85192ce74f45dd2d65533Daniel Veillard
214255d504151db75c17f85192ce74f45dd2d65533Daniel Veillard#ifdef __cplusplus
224255d504151db75c17f85192ce74f45dd2d65533Daniel Veillardextern "C" {
234255d504151db75c17f85192ce74f45dd2d65533Daniel Veillard#endif
244255d504151db75c17f85192ce74f45dd2d65533Daniel Veillard
25bea2354a33de9fe90e801234506a4e549e44e528Kasimier T. Buchcik/**
26bea2354a33de9fe90e801234506a4e549e44e528Kasimier T. Buchcik * This error codes are obsolete; not used any more.
27bea2354a33de9fe90e801234506a4e549e44e528Kasimier T. Buchcik */
284255d504151db75c17f85192ce74f45dd2d65533Daniel Veillardtypedef enum {
294255d504151db75c17f85192ce74f45dd2d65533Daniel Veillard    XML_SCHEMAS_ERR_OK		= 0,
304255d504151db75c17f85192ce74f45dd2d65533Daniel Veillard    XML_SCHEMAS_ERR_NOROOT	= 1,
314255d504151db75c17f85192ce74f45dd2d65533Daniel Veillard    XML_SCHEMAS_ERR_UNDECLAREDELEM,
324255d504151db75c17f85192ce74f45dd2d65533Daniel Veillard    XML_SCHEMAS_ERR_NOTTOPLEVEL,
334255d504151db75c17f85192ce74f45dd2d65533Daniel Veillard    XML_SCHEMAS_ERR_MISSING,
344255d504151db75c17f85192ce74f45dd2d65533Daniel Veillard    XML_SCHEMAS_ERR_WRONGELEM,
354255d504151db75c17f85192ce74f45dd2d65533Daniel Veillard    XML_SCHEMAS_ERR_NOTYPE,
364255d504151db75c17f85192ce74f45dd2d65533Daniel Veillard    XML_SCHEMAS_ERR_NOROLLBACK,
374255d504151db75c17f85192ce74f45dd2d65533Daniel Veillard    XML_SCHEMAS_ERR_ISABSTRACT,
384255d504151db75c17f85192ce74f45dd2d65533Daniel Veillard    XML_SCHEMAS_ERR_NOTEMPTY,
398651f5365c182ce5c52fe1cdc2b9d72b2ecc34e2Daniel Veillard    XML_SCHEMAS_ERR_ELEMCONT,
404255d504151db75c17f85192ce74f45dd2d65533Daniel Veillard    XML_SCHEMAS_ERR_HAVEDEFAULT,
414255d504151db75c17f85192ce74f45dd2d65533Daniel Veillard    XML_SCHEMAS_ERR_NOTNILLABLE,
424255d504151db75c17f85192ce74f45dd2d65533Daniel Veillard    XML_SCHEMAS_ERR_EXTRACONTENT,
434255d504151db75c17f85192ce74f45dd2d65533Daniel Veillard    XML_SCHEMAS_ERR_INVALIDATTR,
444255d504151db75c17f85192ce74f45dd2d65533Daniel Veillard    XML_SCHEMAS_ERR_INVALIDELEM,
45e19fc23b6427f4df516af7b3f6df7baa942e4207Daniel Veillard    XML_SCHEMAS_ERR_NOTDETERMINIST,
464255d504151db75c17f85192ce74f45dd2d65533Daniel Veillard    XML_SCHEMAS_ERR_CONSTRUCT,
474255d504151db75c17f85192ce74f45dd2d65533Daniel Veillard    XML_SCHEMAS_ERR_INTERNAL,
484255d504151db75c17f85192ce74f45dd2d65533Daniel Veillard    XML_SCHEMAS_ERR_NOTSIMPLE,
494255d504151db75c17f85192ce74f45dd2d65533Daniel Veillard    XML_SCHEMAS_ERR_ATTRUNKNOWN,
504255d504151db75c17f85192ce74f45dd2d65533Daniel Veillard    XML_SCHEMAS_ERR_ATTRINVALID,
5191a1325beb87de8fde190157a545504632c169feDaniel Veillard    XML_SCHEMAS_ERR_VALUE,
52d3b9cd88d5d76e44ca54965d651d486485fced0dDaniel Veillard    XML_SCHEMAS_ERR_FACET,
534255d504151db75c17f85192ce74f45dd2d65533Daniel Veillard    XML_SCHEMAS_ERR_,
544255d504151db75c17f85192ce74f45dd2d65533Daniel Veillard    XML_SCHEMAS_ERR_XXX
554255d504151db75c17f85192ce74f45dd2d65533Daniel Veillard} xmlSchemaValidError;
564255d504151db75c17f85192ce74f45dd2d65533Daniel Veillard
5787876407ced312c9b2c8d8b03f988a7dd484a68eKasimier T. Buchcik/*
5887876407ced312c9b2c8d8b03f988a7dd484a68eKasimier T. Buchcik* ATTENTION: Change xmlSchemaSetValidOptions's check
59dee23485f639f0738a4a0cc3159c5140ea425b37Daniel Veillard* for invalid values, if adding to the validation
6087876407ced312c9b2c8d8b03f988a7dd484a68eKasimier T. Buchcik* options below.
6187876407ced312c9b2c8d8b03f988a7dd484a68eKasimier T. Buchcik*/
6287876407ced312c9b2c8d8b03f988a7dd484a68eKasimier T. Buchcik/**
6387876407ced312c9b2c8d8b03f988a7dd484a68eKasimier T. Buchcik * xmlSchemaValidOption:
6487876407ced312c9b2c8d8b03f988a7dd484a68eKasimier T. Buchcik *
6587876407ced312c9b2c8d8b03f988a7dd484a68eKasimier T. Buchcik * This is the set of XML Schema validation options.
6687876407ced312c9b2c8d8b03f988a7dd484a68eKasimier T. Buchcik */
6787876407ced312c9b2c8d8b03f988a7dd484a68eKasimier T. Buchciktypedef enum {
6887876407ced312c9b2c8d8b03f988a7dd484a68eKasimier T. Buchcik    XML_SCHEMA_VAL_VC_I_CREATE			= 1<<0
6987876407ced312c9b2c8d8b03f988a7dd484a68eKasimier T. Buchcik	/* Default/fixed: create an attribute node
7087876407ced312c9b2c8d8b03f988a7dd484a68eKasimier T. Buchcik	* or an element's text node on the instance.
7187876407ced312c9b2c8d8b03f988a7dd484a68eKasimier T. Buchcik	*/
7287876407ced312c9b2c8d8b03f988a7dd484a68eKasimier T. Buchcik} xmlSchemaValidOption;
7387876407ced312c9b2c8d8b03f988a7dd484a68eKasimier T. Buchcik
7487876407ced312c9b2c8d8b03f988a7dd484a68eKasimier T. Buchcik/*
7587876407ced312c9b2c8d8b03f988a7dd484a68eKasimier T. Buchcik    XML_SCHEMA_VAL_XSI_ASSEMBLE			= 1<<1,
7687876407ced312c9b2c8d8b03f988a7dd484a68eKasimier T. Buchcik	* assemble schemata using
7787876407ced312c9b2c8d8b03f988a7dd484a68eKasimier T. Buchcik	* xsi:schemaLocation and
7887876407ced312c9b2c8d8b03f988a7dd484a68eKasimier T. Buchcik	* xsi:noNamespaceSchemaLocation
7987876407ced312c9b2c8d8b03f988a7dd484a68eKasimier T. Buchcik*/
804255d504151db75c17f85192ce74f45dd2d65533Daniel Veillard
814255d504151db75c17f85192ce74f45dd2d65533Daniel Veillard/**
824255d504151db75c17f85192ce74f45dd2d65533Daniel Veillard * The schemas related types are kept internal
834255d504151db75c17f85192ce74f45dd2d65533Daniel Veillard */
844255d504151db75c17f85192ce74f45dd2d65533Daniel Veillardtypedef struct _xmlSchema xmlSchema;
854255d504151db75c17f85192ce74f45dd2d65533Daniel Veillardtypedef xmlSchema *xmlSchemaPtr;
864255d504151db75c17f85192ce74f45dd2d65533Daniel Veillard
874255d504151db75c17f85192ce74f45dd2d65533Daniel Veillard/**
88dee23485f639f0738a4a0cc3159c5140ea425b37Daniel Veillard * xmlSchemaValidityErrorFunc:
89dee23485f639f0738a4a0cc3159c5140ea425b37Daniel Veillard * @ctx: the validation context
90dee23485f639f0738a4a0cc3159c5140ea425b37Daniel Veillard * @msg: the message
91dee23485f639f0738a4a0cc3159c5140ea425b37Daniel Veillard * @...: extra arguments
92dee23485f639f0738a4a0cc3159c5140ea425b37Daniel Veillard *
93dee23485f639f0738a4a0cc3159c5140ea425b37Daniel Veillard * Signature of an error callback from an XSD validation
944255d504151db75c17f85192ce74f45dd2d65533Daniel Veillard */
95f8e3db0445a1bc8cfe3f77326b07ec161482caa2Daniel Veillardtypedef void (XMLCDECL *xmlSchemaValidityErrorFunc)
96f8e3db0445a1bc8cfe3f77326b07ec161482caa2Daniel Veillard                 (void *ctx, const char *msg, ...) LIBXML_ATTR_FORMAT(2,3);
97dee23485f639f0738a4a0cc3159c5140ea425b37Daniel Veillard
98dee23485f639f0738a4a0cc3159c5140ea425b37Daniel Veillard/**
99dee23485f639f0738a4a0cc3159c5140ea425b37Daniel Veillard * xmlSchemaValidityWarningFunc:
100dee23485f639f0738a4a0cc3159c5140ea425b37Daniel Veillard * @ctx: the validation context
101dee23485f639f0738a4a0cc3159c5140ea425b37Daniel Veillard * @msg: the message
102dee23485f639f0738a4a0cc3159c5140ea425b37Daniel Veillard * @...: extra arguments
103dee23485f639f0738a4a0cc3159c5140ea425b37Daniel Veillard *
104dee23485f639f0738a4a0cc3159c5140ea425b37Daniel Veillard * Signature of a warning callback from an XSD validation
105dee23485f639f0738a4a0cc3159c5140ea425b37Daniel Veillard */
106f8e3db0445a1bc8cfe3f77326b07ec161482caa2Daniel Veillardtypedef void (XMLCDECL *xmlSchemaValidityWarningFunc)
107f8e3db0445a1bc8cfe3f77326b07ec161482caa2Daniel Veillard                 (void *ctx, const char *msg, ...) LIBXML_ATTR_FORMAT(2,3);
1084255d504151db75c17f85192ce74f45dd2d65533Daniel Veillard
109dee23485f639f0738a4a0cc3159c5140ea425b37Daniel Veillard/**
110dee23485f639f0738a4a0cc3159c5140ea425b37Daniel Veillard * A schemas validation context
111dee23485f639f0738a4a0cc3159c5140ea425b37Daniel Veillard */
1124255d504151db75c17f85192ce74f45dd2d65533Daniel Veillardtypedef struct _xmlSchemaParserCtxt xmlSchemaParserCtxt;
1134255d504151db75c17f85192ce74f45dd2d65533Daniel Veillardtypedef xmlSchemaParserCtxt *xmlSchemaParserCtxtPtr;
1144255d504151db75c17f85192ce74f45dd2d65533Daniel Veillard
1154255d504151db75c17f85192ce74f45dd2d65533Daniel Veillardtypedef struct _xmlSchemaValidCtxt xmlSchemaValidCtxt;
1164255d504151db75c17f85192ce74f45dd2d65533Daniel Veillardtypedef xmlSchemaValidCtxt *xmlSchemaValidCtxtPtr;
1174255d504151db75c17f85192ce74f45dd2d65533Daniel Veillard
11897fa5b3c8f3fe6ff79123ab43ed6b846fd1dd6ddDaniel Veillard/**
11997fa5b3c8f3fe6ff79123ab43ed6b846fd1dd6ddDaniel Veillard * xmlSchemaValidityLocatorFunc:
12097fa5b3c8f3fe6ff79123ab43ed6b846fd1dd6ddDaniel Veillard * @ctx: user provided context
12197fa5b3c8f3fe6ff79123ab43ed6b846fd1dd6ddDaniel Veillard * @file: returned file information
12297fa5b3c8f3fe6ff79123ab43ed6b846fd1dd6ddDaniel Veillard * @line: returned line information
12397fa5b3c8f3fe6ff79123ab43ed6b846fd1dd6ddDaniel Veillard *
12497fa5b3c8f3fe6ff79123ab43ed6b846fd1dd6ddDaniel Veillard * A schemas validation locator, a callback called by the validator.
12597fa5b3c8f3fe6ff79123ab43ed6b846fd1dd6ddDaniel Veillard * This is used when file or node informations are not available
12697fa5b3c8f3fe6ff79123ab43ed6b846fd1dd6ddDaniel Veillard * to find out what file and line number are affected
12797fa5b3c8f3fe6ff79123ab43ed6b846fd1dd6ddDaniel Veillard *
12897fa5b3c8f3fe6ff79123ab43ed6b846fd1dd6ddDaniel Veillard * Returns: 0 in case of success and -1 in case of error
12997fa5b3c8f3fe6ff79123ab43ed6b846fd1dd6ddDaniel Veillard */
13097fa5b3c8f3fe6ff79123ab43ed6b846fd1dd6ddDaniel Veillard
13197fa5b3c8f3fe6ff79123ab43ed6b846fd1dd6ddDaniel Veillardtypedef int (XMLCDECL *xmlSchemaValidityLocatorFunc) (void *ctx,
13297fa5b3c8f3fe6ff79123ab43ed6b846fd1dd6ddDaniel Veillard                           const char **file, unsigned long *line);
13397fa5b3c8f3fe6ff79123ab43ed6b846fd1dd6ddDaniel Veillard
1344255d504151db75c17f85192ce74f45dd2d65533Daniel Veillard/*
1354255d504151db75c17f85192ce74f45dd2d65533Daniel Veillard * Interfaces for parsing.
1364255d504151db75c17f85192ce74f45dd2d65533Daniel Veillard */
137dee23485f639f0738a4a0cc3159c5140ea425b37Daniel VeillardXMLPUBFUN xmlSchemaParserCtxtPtr XMLCALL
138aa3cfbd0809378d88bc907742a9ddd27cc49b335Igor Zlatkovic	    xmlSchemaNewParserCtxt	(const char *URL);
139dee23485f639f0738a4a0cc3159c5140ea425b37Daniel VeillardXMLPUBFUN xmlSchemaParserCtxtPtr XMLCALL
140aa3cfbd0809378d88bc907742a9ddd27cc49b335Igor Zlatkovic	    xmlSchemaNewMemParserCtxt	(const char *buffer,
141aa3cfbd0809378d88bc907742a9ddd27cc49b335Igor Zlatkovic					 int size);
1429d751504d56ee9591a5094d570555367d814c614Daniel VeillardXMLPUBFUN xmlSchemaParserCtxtPtr XMLCALL
1439d751504d56ee9591a5094d570555367d814c614Daniel Veillard	    xmlSchemaNewDocParserCtxt	(xmlDocPtr doc);
144dee23485f639f0738a4a0cc3159c5140ea425b37Daniel VeillardXMLPUBFUN void XMLCALL
145aa3cfbd0809378d88bc907742a9ddd27cc49b335Igor Zlatkovic	    xmlSchemaFreeParserCtxt	(xmlSchemaParserCtxtPtr ctxt);
146dee23485f639f0738a4a0cc3159c5140ea425b37Daniel VeillardXMLPUBFUN void XMLCALL
147aa3cfbd0809378d88bc907742a9ddd27cc49b335Igor Zlatkovic	    xmlSchemaSetParserErrors	(xmlSchemaParserCtxtPtr ctxt,
1484255d504151db75c17f85192ce74f45dd2d65533Daniel Veillard					 xmlSchemaValidityErrorFunc err,
1494255d504151db75c17f85192ce74f45dd2d65533Daniel Veillard					 xmlSchemaValidityWarningFunc warn,
1504255d504151db75c17f85192ce74f45dd2d65533Daniel Veillard					 void *ctx);
15190b5ebc0f335c3192bf898309b3100c694aa7b2bKasimier T. BuchcikXMLPUBFUN void XMLCALL
15290b5ebc0f335c3192bf898309b3100c694aa7b2bKasimier T. Buchcik	    xmlSchemaSetParserStructuredErrors(xmlSchemaParserCtxtPtr ctxt,
15390b5ebc0f335c3192bf898309b3100c694aa7b2bKasimier T. Buchcik					 xmlStructuredErrorFunc serror,
15490b5ebc0f335c3192bf898309b3100c694aa7b2bKasimier T. Buchcik					 void *ctx);
155259f0dfa8b4f29158954959b4d0d7c03dd1eab05Daniel VeillardXMLPUBFUN int XMLCALL
156f10ae12cb8874674e3bc1f0b52b3cfcc2a1d3278Daniel Veillard		xmlSchemaGetParserErrors(xmlSchemaParserCtxtPtr ctxt,
157259f0dfa8b4f29158954959b4d0d7c03dd1eab05Daniel Veillard					xmlSchemaValidityErrorFunc * err,
158259f0dfa8b4f29158954959b4d0d7c03dd1eab05Daniel Veillard					xmlSchemaValidityWarningFunc * warn,
159259f0dfa8b4f29158954959b4d0d7c03dd1eab05Daniel Veillard					void **ctx);
160f10ae12cb8874674e3bc1f0b52b3cfcc2a1d3278Daniel VeillardXMLPUBFUN int XMLCALL
161f10ae12cb8874674e3bc1f0b52b3cfcc2a1d3278Daniel Veillard		xmlSchemaIsValid	(xmlSchemaValidCtxtPtr ctxt);
162f10ae12cb8874674e3bc1f0b52b3cfcc2a1d3278Daniel Veillard
163dee23485f639f0738a4a0cc3159c5140ea425b37Daniel VeillardXMLPUBFUN xmlSchemaPtr XMLCALL
164aa3cfbd0809378d88bc907742a9ddd27cc49b335Igor Zlatkovic	    xmlSchemaParse		(xmlSchemaParserCtxtPtr ctxt);
165dee23485f639f0738a4a0cc3159c5140ea425b37Daniel VeillardXMLPUBFUN void XMLCALL
166aa3cfbd0809378d88bc907742a9ddd27cc49b335Igor Zlatkovic	    xmlSchemaFree		(xmlSchemaPtr schema);
167a9cce9cd0d7aff3ec318b5d8d376da131b6aaad4Daniel Veillard#ifdef LIBXML_OUTPUT_ENABLED
168dee23485f639f0738a4a0cc3159c5140ea425b37Daniel VeillardXMLPUBFUN void XMLCALL
169aa3cfbd0809378d88bc907742a9ddd27cc49b335Igor Zlatkovic	    xmlSchemaDump		(FILE *output,
1704255d504151db75c17f85192ce74f45dd2d65533Daniel Veillard					 xmlSchemaPtr schema);
171a9cce9cd0d7aff3ec318b5d8d376da131b6aaad4Daniel Veillard#endif /* LIBXML_OUTPUT_ENABLED */
1724255d504151db75c17f85192ce74f45dd2d65533Daniel Veillard/*
1734255d504151db75c17f85192ce74f45dd2d65533Daniel Veillard * Interfaces for validating
1744255d504151db75c17f85192ce74f45dd2d65533Daniel Veillard */
175dee23485f639f0738a4a0cc3159c5140ea425b37Daniel VeillardXMLPUBFUN void XMLCALL
176aa3cfbd0809378d88bc907742a9ddd27cc49b335Igor Zlatkovic	    xmlSchemaSetValidErrors	(xmlSchemaValidCtxtPtr ctxt,
1774255d504151db75c17f85192ce74f45dd2d65533Daniel Veillard					 xmlSchemaValidityErrorFunc err,
1784255d504151db75c17f85192ce74f45dd2d65533Daniel Veillard					 xmlSchemaValidityWarningFunc warn,
1794255d504151db75c17f85192ce74f45dd2d65533Daniel Veillard					 void *ctx);
180da0aa4cfdbd9b71e01bc452c95d044bbe66e1b5aDaniel VeillardXMLPUBFUN void XMLCALL
181da0aa4cfdbd9b71e01bc452c95d044bbe66e1b5aDaniel Veillard	    xmlSchemaSetValidStructuredErrors(xmlSchemaValidCtxtPtr ctxt,
18290b5ebc0f335c3192bf898309b3100c694aa7b2bKasimier T. Buchcik					 xmlStructuredErrorFunc serror,
18390b5ebc0f335c3192bf898309b3100c694aa7b2bKasimier T. Buchcik					 void *ctx);
184259f0dfa8b4f29158954959b4d0d7c03dd1eab05Daniel VeillardXMLPUBFUN int XMLCALL
18587876407ced312c9b2c8d8b03f988a7dd484a68eKasimier T. Buchcik	    xmlSchemaGetValidErrors	(xmlSchemaValidCtxtPtr ctxt,
18687876407ced312c9b2c8d8b03f988a7dd484a68eKasimier T. Buchcik					 xmlSchemaValidityErrorFunc *err,
18787876407ced312c9b2c8d8b03f988a7dd484a68eKasimier T. Buchcik					 xmlSchemaValidityWarningFunc *warn,
18887876407ced312c9b2c8d8b03f988a7dd484a68eKasimier T. Buchcik					 void **ctx);
18987876407ced312c9b2c8d8b03f988a7dd484a68eKasimier T. BuchcikXMLPUBFUN int XMLCALL
19087876407ced312c9b2c8d8b03f988a7dd484a68eKasimier T. Buchcik	    xmlSchemaSetValidOptions	(xmlSchemaValidCtxtPtr ctxt,
19187876407ced312c9b2c8d8b03f988a7dd484a68eKasimier T. Buchcik					 int options);
19297fa5b3c8f3fe6ff79123ab43ed6b846fd1dd6ddDaniel VeillardXMLPUBFUN void XMLCALL
19397fa5b3c8f3fe6ff79123ab43ed6b846fd1dd6ddDaniel Veillard            xmlSchemaValidateSetFilename(xmlSchemaValidCtxtPtr vctxt,
19497fa5b3c8f3fe6ff79123ab43ed6b846fd1dd6ddDaniel Veillard	                                 const char *filename);
19587876407ced312c9b2c8d8b03f988a7dd484a68eKasimier T. BuchcikXMLPUBFUN int XMLCALL
19687876407ced312c9b2c8d8b03f988a7dd484a68eKasimier T. Buchcik	    xmlSchemaValidCtxtGetOptions(xmlSchemaValidCtxtPtr ctxt);
197259f0dfa8b4f29158954959b4d0d7c03dd1eab05Daniel Veillard
198dee23485f639f0738a4a0cc3159c5140ea425b37Daniel VeillardXMLPUBFUN xmlSchemaValidCtxtPtr XMLCALL
199aa3cfbd0809378d88bc907742a9ddd27cc49b335Igor Zlatkovic	    xmlSchemaNewValidCtxt	(xmlSchemaPtr schema);
200dee23485f639f0738a4a0cc3159c5140ea425b37Daniel VeillardXMLPUBFUN void XMLCALL
201aa3cfbd0809378d88bc907742a9ddd27cc49b335Igor Zlatkovic	    xmlSchemaFreeValidCtxt	(xmlSchemaValidCtxtPtr ctxt);
202dee23485f639f0738a4a0cc3159c5140ea425b37Daniel VeillardXMLPUBFUN int XMLCALL
203aa3cfbd0809378d88bc907742a9ddd27cc49b335Igor Zlatkovic	    xmlSchemaValidateDoc	(xmlSchemaValidCtxtPtr ctxt,
204aa3cfbd0809378d88bc907742a9ddd27cc49b335Igor Zlatkovic					 xmlDocPtr instance);
2055eba91f2d9b300670bdac19735c3cb07788434d6Kasimier T. BuchcikXMLPUBFUN int XMLCALL
2065eba91f2d9b300670bdac19735c3cb07788434d6Kasimier T. Buchcik            xmlSchemaValidateOneElement (xmlSchemaValidCtxtPtr ctxt,
2075eba91f2d9b300670bdac19735c3cb07788434d6Kasimier T. Buchcik			                 xmlNodePtr elem);
208c63fbbff72da458dd509402a56d441fb21593fe7Kasimier T. BuchcikXMLPUBFUN int XMLCALL
209aa3cfbd0809378d88bc907742a9ddd27cc49b335Igor Zlatkovic	    xmlSchemaValidateStream	(xmlSchemaValidCtxtPtr ctxt,
210aa3cfbd0809378d88bc907742a9ddd27cc49b335Igor Zlatkovic					 xmlParserInputBufferPtr input,
211aa3cfbd0809378d88bc907742a9ddd27cc49b335Igor Zlatkovic					 xmlCharEncoding enc,
212aa3cfbd0809378d88bc907742a9ddd27cc49b335Igor Zlatkovic					 xmlSAXHandlerPtr sax,
213aa3cfbd0809378d88bc907742a9ddd27cc49b335Igor Zlatkovic					 void *user_data);
214c63fbbff72da458dd509402a56d441fb21593fe7Kasimier T. BuchcikXMLPUBFUN int XMLCALL
215c63fbbff72da458dd509402a56d441fb21593fe7Kasimier T. Buchcik	    xmlSchemaValidateFile	(xmlSchemaValidCtxtPtr ctxt,
216c63fbbff72da458dd509402a56d441fb21593fe7Kasimier T. Buchcik					 const char * filename,
217c63fbbff72da458dd509402a56d441fb21593fe7Kasimier T. Buchcik					 int options);
218971771ef5a5f306ddcdd0015b2bedd320bd62c8bDaniel Veillard
219dee23485f639f0738a4a0cc3159c5140ea425b37Daniel VeillardXMLPUBFUN xmlParserCtxtPtr XMLCALL
220dee23485f639f0738a4a0cc3159c5140ea425b37Daniel Veillard	    xmlSchemaValidCtxtGetParserCtxt(xmlSchemaValidCtxtPtr ctxt);
221dee23485f639f0738a4a0cc3159c5140ea425b37Daniel Veillard
222971771ef5a5f306ddcdd0015b2bedd320bd62c8bDaniel Veillard/*
223dee23485f639f0738a4a0cc3159c5140ea425b37Daniel Veillard * Interface to insert Schemas SAX validation in a SAX stream
224971771ef5a5f306ddcdd0015b2bedd320bd62c8bDaniel Veillard */
225971771ef5a5f306ddcdd0015b2bedd320bd62c8bDaniel Veillardtypedef struct _xmlSchemaSAXPlug xmlSchemaSAXPlugStruct;
226971771ef5a5f306ddcdd0015b2bedd320bd62c8bDaniel Veillardtypedef xmlSchemaSAXPlugStruct *xmlSchemaSAXPlugPtr;
227971771ef5a5f306ddcdd0015b2bedd320bd62c8bDaniel Veillard
228971771ef5a5f306ddcdd0015b2bedd320bd62c8bDaniel VeillardXMLPUBFUN xmlSchemaSAXPlugPtr XMLCALL
229971771ef5a5f306ddcdd0015b2bedd320bd62c8bDaniel Veillard            xmlSchemaSAXPlug		(xmlSchemaValidCtxtPtr ctxt,
230971771ef5a5f306ddcdd0015b2bedd320bd62c8bDaniel Veillard					 xmlSAXHandlerPtr *sax,
231971771ef5a5f306ddcdd0015b2bedd320bd62c8bDaniel Veillard					 void **user_data);
232971771ef5a5f306ddcdd0015b2bedd320bd62c8bDaniel VeillardXMLPUBFUN int XMLCALL
233971771ef5a5f306ddcdd0015b2bedd320bd62c8bDaniel Veillard            xmlSchemaSAXUnplug		(xmlSchemaSAXPlugPtr plug);
23497fa5b3c8f3fe6ff79123ab43ed6b846fd1dd6ddDaniel Veillard
23597fa5b3c8f3fe6ff79123ab43ed6b846fd1dd6ddDaniel Veillard
23697fa5b3c8f3fe6ff79123ab43ed6b846fd1dd6ddDaniel VeillardXMLPUBFUN void XMLCALL
23797fa5b3c8f3fe6ff79123ab43ed6b846fd1dd6ddDaniel Veillard            xmlSchemaValidateSetLocator	(xmlSchemaValidCtxtPtr vctxt,
23897fa5b3c8f3fe6ff79123ab43ed6b846fd1dd6ddDaniel Veillard					 xmlSchemaValidityLocatorFunc f,
23997fa5b3c8f3fe6ff79123ab43ed6b846fd1dd6ddDaniel Veillard					 void *ctxt);
24097fa5b3c8f3fe6ff79123ab43ed6b846fd1dd6ddDaniel Veillard
2414255d504151db75c17f85192ce74f45dd2d65533Daniel Veillard#ifdef __cplusplus
2424255d504151db75c17f85192ce74f45dd2d65533Daniel Veillard}
2434255d504151db75c17f85192ce74f45dd2d65533Daniel Veillard#endif
2444255d504151db75c17f85192ce74f45dd2d65533Daniel Veillard
2454255d504151db75c17f85192ce74f45dd2d65533Daniel Veillard#endif /* LIBXML_SCHEMAS_ENABLED */
2464255d504151db75c17f85192ce74f45dd2d65533Daniel Veillard#endif /* __XML_SCHEMA_H__ */
247