xmlschemas.h revision 4255d504151db75c17f85192ce74f45dd2d65533
14255d504151db75c17f85192ce74f45dd2d65533Daniel Veillard/*
24255d504151db75c17f85192ce74f45dd2d65533Daniel Veillard * schemas.h : interface to the XML Schemas handling and schema validity
34255d504151db75c17f85192ce74f45dd2d65533Daniel Veillard *             checking
44255d504151db75c17f85192ce74f45dd2d65533Daniel Veillard *
54255d504151db75c17f85192ce74f45dd2d65533Daniel Veillard * See Copyright for the status of this software.
64255d504151db75c17f85192ce74f45dd2d65533Daniel Veillard *
74255d504151db75c17f85192ce74f45dd2d65533Daniel Veillard * Daniel.Veillard@w3.org
84255d504151db75c17f85192ce74f45dd2d65533Daniel Veillard */
94255d504151db75c17f85192ce74f45dd2d65533Daniel Veillard
104255d504151db75c17f85192ce74f45dd2d65533Daniel Veillard
114255d504151db75c17f85192ce74f45dd2d65533Daniel Veillard#ifndef __XML_SCHEMA_H__
124255d504151db75c17f85192ce74f45dd2d65533Daniel Veillard#define __XML_SCHEMA_H__
134255d504151db75c17f85192ce74f45dd2d65533Daniel Veillard
144255d504151db75c17f85192ce74f45dd2d65533Daniel Veillard#if defined(WIN32) && defined(_MSC_VER)
154255d504151db75c17f85192ce74f45dd2d65533Daniel Veillard#include <libxml/xmlwin32version.h>
164255d504151db75c17f85192ce74f45dd2d65533Daniel Veillard#else
174255d504151db75c17f85192ce74f45dd2d65533Daniel Veillard#include <libxml/xmlversion.h>
184255d504151db75c17f85192ce74f45dd2d65533Daniel Veillard#endif
194255d504151db75c17f85192ce74f45dd2d65533Daniel Veillard#ifdef LIBXML_SCHEMAS_ENABLED
204255d504151db75c17f85192ce74f45dd2d65533Daniel Veillard
214255d504151db75c17f85192ce74f45dd2d65533Daniel Veillard#include <libxml/tree.h>
224255d504151db75c17f85192ce74f45dd2d65533Daniel Veillard
234255d504151db75c17f85192ce74f45dd2d65533Daniel Veillard#ifdef __cplusplus
244255d504151db75c17f85192ce74f45dd2d65533Daniel Veillardextern "C" {
254255d504151db75c17f85192ce74f45dd2d65533Daniel Veillard#endif
264255d504151db75c17f85192ce74f45dd2d65533Daniel Veillard
274255d504151db75c17f85192ce74f45dd2d65533Daniel Veillardtypedef enum {
284255d504151db75c17f85192ce74f45dd2d65533Daniel Veillard    XML_SCHEMAS_ERR_OK		= 0,
294255d504151db75c17f85192ce74f45dd2d65533Daniel Veillard    XML_SCHEMAS_ERR_NOROOT	= 1,
304255d504151db75c17f85192ce74f45dd2d65533Daniel Veillard    XML_SCHEMAS_ERR_UNDECLAREDELEM,
314255d504151db75c17f85192ce74f45dd2d65533Daniel Veillard    XML_SCHEMAS_ERR_NOTTOPLEVEL,
324255d504151db75c17f85192ce74f45dd2d65533Daniel Veillard    XML_SCHEMAS_ERR_MISSING,
334255d504151db75c17f85192ce74f45dd2d65533Daniel Veillard    XML_SCHEMAS_ERR_WRONGELEM,
344255d504151db75c17f85192ce74f45dd2d65533Daniel Veillard    XML_SCHEMAS_ERR_NOTYPE,
354255d504151db75c17f85192ce74f45dd2d65533Daniel Veillard    XML_SCHEMAS_ERR_NOROLLBACK,
364255d504151db75c17f85192ce74f45dd2d65533Daniel Veillard    XML_SCHEMAS_ERR_ISABSTRACT,
374255d504151db75c17f85192ce74f45dd2d65533Daniel Veillard    XML_SCHEMAS_ERR_NOTEMPTY,
384255d504151db75c17f85192ce74f45dd2d65533Daniel Veillard    XML_SCHEMAS_ERR_HAVEDEFAULT,
394255d504151db75c17f85192ce74f45dd2d65533Daniel Veillard    XML_SCHEMAS_ERR_NOTNILLABLE,
404255d504151db75c17f85192ce74f45dd2d65533Daniel Veillard    XML_SCHEMAS_ERR_EXTRACONTENT,
414255d504151db75c17f85192ce74f45dd2d65533Daniel Veillard    XML_SCHEMAS_ERR_INVALIDATTR,
424255d504151db75c17f85192ce74f45dd2d65533Daniel Veillard    XML_SCHEMAS_ERR_INVALIDELEM,
434255d504151db75c17f85192ce74f45dd2d65533Daniel Veillard    XML_SCHEMAS_ERR_CONSTRUCT,
444255d504151db75c17f85192ce74f45dd2d65533Daniel Veillard    XML_SCHEMAS_ERR_INTERNAL,
454255d504151db75c17f85192ce74f45dd2d65533Daniel Veillard    XML_SCHEMAS_ERR_NOTSIMPLE,
464255d504151db75c17f85192ce74f45dd2d65533Daniel Veillard    XML_SCHEMAS_ERR_ATTRUNKNOWN,
474255d504151db75c17f85192ce74f45dd2d65533Daniel Veillard    XML_SCHEMAS_ERR_ATTRINVALID,
484255d504151db75c17f85192ce74f45dd2d65533Daniel Veillard    XML_SCHEMAS_ERR_,
494255d504151db75c17f85192ce74f45dd2d65533Daniel Veillard    XML_SCHEMAS_ERR_XXX
504255d504151db75c17f85192ce74f45dd2d65533Daniel Veillard} xmlSchemaValidError;
514255d504151db75c17f85192ce74f45dd2d65533Daniel Veillard
524255d504151db75c17f85192ce74f45dd2d65533Daniel Veillard
534255d504151db75c17f85192ce74f45dd2d65533Daniel Veillard/**
544255d504151db75c17f85192ce74f45dd2d65533Daniel Veillard * The schemas related types are kept internal
554255d504151db75c17f85192ce74f45dd2d65533Daniel Veillard */
564255d504151db75c17f85192ce74f45dd2d65533Daniel Veillardtypedef struct _xmlSchema xmlSchema;
574255d504151db75c17f85192ce74f45dd2d65533Daniel Veillardtypedef xmlSchema *xmlSchemaPtr;
584255d504151db75c17f85192ce74f45dd2d65533Daniel Veillard
594255d504151db75c17f85192ce74f45dd2d65533Daniel Veillard/**
604255d504151db75c17f85192ce74f45dd2d65533Daniel Veillard * A schemas validation context
614255d504151db75c17f85192ce74f45dd2d65533Daniel Veillard */
624255d504151db75c17f85192ce74f45dd2d65533Daniel Veillardtypedef void (*xmlSchemaValidityErrorFunc) (void *ctx, const char *msg, ...);
634255d504151db75c17f85192ce74f45dd2d65533Daniel Veillardtypedef void (*xmlSchemaValidityWarningFunc) (void *ctx, const char *msg, ...);
644255d504151db75c17f85192ce74f45dd2d65533Daniel Veillard
654255d504151db75c17f85192ce74f45dd2d65533Daniel Veillardtypedef struct _xmlSchemaParserCtxt xmlSchemaParserCtxt;
664255d504151db75c17f85192ce74f45dd2d65533Daniel Veillardtypedef xmlSchemaParserCtxt *xmlSchemaParserCtxtPtr;
674255d504151db75c17f85192ce74f45dd2d65533Daniel Veillard
684255d504151db75c17f85192ce74f45dd2d65533Daniel Veillardtypedef struct _xmlSchemaValidCtxt xmlSchemaValidCtxt;
694255d504151db75c17f85192ce74f45dd2d65533Daniel Veillardtypedef xmlSchemaValidCtxt *xmlSchemaValidCtxtPtr;
704255d504151db75c17f85192ce74f45dd2d65533Daniel Veillard
714255d504151db75c17f85192ce74f45dd2d65533Daniel Veillard/*
724255d504151db75c17f85192ce74f45dd2d65533Daniel Veillard * Interfaces for parsing.
734255d504151db75c17f85192ce74f45dd2d65533Daniel Veillard */
744255d504151db75c17f85192ce74f45dd2d65533Daniel VeillardxmlSchemaParserCtxtPtr xmlSchemaNewParserCtxt(const char *URL);
754255d504151db75c17f85192ce74f45dd2d65533Daniel Veillardvoid		xmlSchemaFreeParserCtxt	(xmlSchemaParserCtxtPtr ctxt);
764255d504151db75c17f85192ce74f45dd2d65533Daniel Veillardvoid		xmlSchemaSetParserErrors(xmlSchemaParserCtxtPtr ctxt,
774255d504151db75c17f85192ce74f45dd2d65533Daniel Veillard					 xmlSchemaValidityErrorFunc err,
784255d504151db75c17f85192ce74f45dd2d65533Daniel Veillard					 xmlSchemaValidityWarningFunc warn,
794255d504151db75c17f85192ce74f45dd2d65533Daniel Veillard					 void *ctx);
804255d504151db75c17f85192ce74f45dd2d65533Daniel VeillardxmlSchemaPtr	xmlSchemaParse		(xmlSchemaParserCtxtPtr ctxt);
814255d504151db75c17f85192ce74f45dd2d65533Daniel Veillardvoid		xmlSchemaFree		(xmlSchemaPtr schema);
824255d504151db75c17f85192ce74f45dd2d65533Daniel Veillardvoid		xmlSchemaDump		(FILE *output,
834255d504151db75c17f85192ce74f45dd2d65533Daniel Veillard					 xmlSchemaPtr schema);
844255d504151db75c17f85192ce74f45dd2d65533Daniel Veillard/*
854255d504151db75c17f85192ce74f45dd2d65533Daniel Veillard * Interfaces for validating
864255d504151db75c17f85192ce74f45dd2d65533Daniel Veillard */
874255d504151db75c17f85192ce74f45dd2d65533Daniel Veillardvoid		xmlSchemaSetValidErrors	(xmlSchemaValidCtxtPtr ctxt,
884255d504151db75c17f85192ce74f45dd2d65533Daniel Veillard					 xmlSchemaValidityErrorFunc err,
894255d504151db75c17f85192ce74f45dd2d65533Daniel Veillard					 xmlSchemaValidityWarningFunc warn,
904255d504151db75c17f85192ce74f45dd2d65533Daniel Veillard					 void *ctx);
914255d504151db75c17f85192ce74f45dd2d65533Daniel VeillardxmlSchemaValidCtxtPtr	xmlSchemaNewValidCtxt	(xmlSchemaPtr schema);
924255d504151db75c17f85192ce74f45dd2d65533Daniel Veillardvoid			xmlSchemaFreeValidCtxt	(xmlSchemaValidCtxtPtr ctxt);
934255d504151db75c17f85192ce74f45dd2d65533Daniel Veillardint			xmlSchemaValidateDoc	(xmlSchemaValidCtxtPtr ctxt,
944255d504151db75c17f85192ce74f45dd2d65533Daniel Veillard					 	 xmlDocPtr instance);
954255d504151db75c17f85192ce74f45dd2d65533Daniel Veillardint			xmlSchemaValidateStream	(xmlSchemaValidCtxtPtr ctxt,
964255d504151db75c17f85192ce74f45dd2d65533Daniel Veillard						 xmlParserInputBufferPtr input,
974255d504151db75c17f85192ce74f45dd2d65533Daniel Veillard						 xmlCharEncoding enc,
984255d504151db75c17f85192ce74f45dd2d65533Daniel Veillard					 	 xmlSAXHandlerPtr sax,
994255d504151db75c17f85192ce74f45dd2d65533Daniel Veillard						 void *user_data);
1004255d504151db75c17f85192ce74f45dd2d65533Daniel Veillard#ifdef __cplusplus
1014255d504151db75c17f85192ce74f45dd2d65533Daniel Veillard}
1024255d504151db75c17f85192ce74f45dd2d65533Daniel Veillard#endif
1034255d504151db75c17f85192ce74f45dd2d65533Daniel Veillard
1044255d504151db75c17f85192ce74f45dd2d65533Daniel Veillard#endif /* LIBXML_SCHEMAS_ENABLED */
1054255d504151db75c17f85192ce74f45dd2d65533Daniel Veillard#endif /* __XML_SCHEMA_H__ */
106