| /* | 
 |  * Summary: incomplete XML Schemas structure implementation | 
 |  * Description: interface to the XML Schemas handling and schema validity | 
 |  *              checking, it is incomplete right now. | 
 |  * | 
 |  * Copy: See Copyright for the status of this software. | 
 |  * | 
 |  * Author: Daniel Veillard | 
 |  */ | 
 |  | 
 |  | 
 | #ifndef __XML_SCHEMA_H__ | 
 | #define __XML_SCHEMA_H__ | 
 |  | 
 | #include <libxml/xmlversion.h> | 
 |  | 
 | #ifdef LIBXML_SCHEMAS_ENABLED | 
 |  | 
 | #include <libxml/tree.h> | 
 |  | 
 | #ifdef __cplusplus | 
 | extern "C" { | 
 | #endif | 
 |  | 
 | /** | 
 |  * This error codes are obsolete; not used any more. | 
 |  */ | 
 | typedef enum { | 
 |     XML_SCHEMAS_ERR_OK		= 0, | 
 |     XML_SCHEMAS_ERR_NOROOT	= 1, | 
 |     XML_SCHEMAS_ERR_UNDECLAREDELEM, | 
 |     XML_SCHEMAS_ERR_NOTTOPLEVEL, | 
 |     XML_SCHEMAS_ERR_MISSING, | 
 |     XML_SCHEMAS_ERR_WRONGELEM, | 
 |     XML_SCHEMAS_ERR_NOTYPE, | 
 |     XML_SCHEMAS_ERR_NOROLLBACK, | 
 |     XML_SCHEMAS_ERR_ISABSTRACT, | 
 |     XML_SCHEMAS_ERR_NOTEMPTY, | 
 |     XML_SCHEMAS_ERR_ELEMCONT, | 
 |     XML_SCHEMAS_ERR_HAVEDEFAULT, | 
 |     XML_SCHEMAS_ERR_NOTNILLABLE, | 
 |     XML_SCHEMAS_ERR_EXTRACONTENT, | 
 |     XML_SCHEMAS_ERR_INVALIDATTR, | 
 |     XML_SCHEMAS_ERR_INVALIDELEM, | 
 |     XML_SCHEMAS_ERR_NOTDETERMINIST, | 
 |     XML_SCHEMAS_ERR_CONSTRUCT, | 
 |     XML_SCHEMAS_ERR_INTERNAL, | 
 |     XML_SCHEMAS_ERR_NOTSIMPLE, | 
 |     XML_SCHEMAS_ERR_ATTRUNKNOWN, | 
 |     XML_SCHEMAS_ERR_ATTRINVALID, | 
 |     XML_SCHEMAS_ERR_VALUE, | 
 |     XML_SCHEMAS_ERR_FACET, | 
 |     XML_SCHEMAS_ERR_, | 
 |     XML_SCHEMAS_ERR_XXX | 
 | } xmlSchemaValidError; | 
 |  | 
 | /* | 
 | * ATTENTION: Change xmlSchemaSetValidOptions's check | 
 | * for invalid values, if adding to the validation | 
 | * options below. | 
 | */ | 
 | /** | 
 |  * xmlSchemaValidOption: | 
 |  * | 
 |  * This is the set of XML Schema validation options. | 
 |  */ | 
 | typedef enum { | 
 |     XML_SCHEMA_VAL_VC_I_CREATE			= 1<<0 | 
 | 	/* Default/fixed: create an attribute node | 
 | 	* or an element's text node on the instance. | 
 | 	*/ | 
 | } xmlSchemaValidOption; | 
 |  | 
 | /* | 
 |     XML_SCHEMA_VAL_XSI_ASSEMBLE			= 1<<1, | 
 | 	* assemble schemata using | 
 | 	* xsi:schemaLocation and | 
 | 	* xsi:noNamespaceSchemaLocation | 
 | */ | 
 |  | 
 | /** | 
 |  * The schemas related types are kept internal | 
 |  */ | 
 | typedef struct _xmlSchema xmlSchema; | 
 | typedef xmlSchema *xmlSchemaPtr; | 
 |  | 
 | /** | 
 |  * xmlSchemaValidityErrorFunc: | 
 |  * @ctx: the validation context | 
 |  * @msg: the message | 
 |  * @...: extra arguments | 
 |  * | 
 |  * Signature of an error callback from an XSD validation | 
 |  */ | 
 | typedef void (XMLCDECL *xmlSchemaValidityErrorFunc) (void *ctx, const char *msg, ...) LIBXML_ATTR_FORMAT(2,3); | 
 |  | 
 | /** | 
 |  * xmlSchemaValidityWarningFunc: | 
 |  * @ctx: the validation context | 
 |  * @msg: the message | 
 |  * @...: extra arguments | 
 |  * | 
 |  * Signature of a warning callback from an XSD validation | 
 |  */ | 
 | typedef void (XMLCDECL *xmlSchemaValidityWarningFunc) (void *ctx, const char *msg, ...) LIBXML_ATTR_FORMAT(2,3); | 
 |  | 
 | /** | 
 |  * A schemas validation context | 
 |  */ | 
 | typedef struct _xmlSchemaParserCtxt xmlSchemaParserCtxt; | 
 | typedef xmlSchemaParserCtxt *xmlSchemaParserCtxtPtr; | 
 |  | 
 | typedef struct _xmlSchemaValidCtxt xmlSchemaValidCtxt; | 
 | typedef xmlSchemaValidCtxt *xmlSchemaValidCtxtPtr; | 
 |  | 
 | /* | 
 |  * Interfaces for parsing. | 
 |  */ | 
 | XMLPUBFUN xmlSchemaParserCtxtPtr XMLCALL | 
 | 	    xmlSchemaNewParserCtxt	(const char *URL); | 
 | XMLPUBFUN xmlSchemaParserCtxtPtr XMLCALL | 
 | 	    xmlSchemaNewMemParserCtxt	(const char *buffer, | 
 | 					 int size); | 
 | XMLPUBFUN xmlSchemaParserCtxtPtr XMLCALL | 
 | 	    xmlSchemaNewDocParserCtxt	(xmlDocPtr doc); | 
 | XMLPUBFUN void XMLCALL | 
 | 	    xmlSchemaFreeParserCtxt	(xmlSchemaParserCtxtPtr ctxt); | 
 | XMLPUBFUN void XMLCALL | 
 | 	    xmlSchemaSetParserErrors	(xmlSchemaParserCtxtPtr ctxt, | 
 | 					 xmlSchemaValidityErrorFunc err, | 
 | 					 xmlSchemaValidityWarningFunc warn, | 
 | 					 void *ctx); | 
 | XMLPUBFUN void XMLCALL | 
 | 	    xmlSchemaSetParserStructuredErrors(xmlSchemaParserCtxtPtr ctxt, | 
 | 					 xmlStructuredErrorFunc serror, | 
 | 					 void *ctx); | 
 | XMLPUBFUN int XMLCALL | 
 | 		xmlSchemaGetParserErrors(xmlSchemaParserCtxtPtr ctxt, | 
 | 					xmlSchemaValidityErrorFunc * err, | 
 | 					xmlSchemaValidityWarningFunc * warn, | 
 | 					void **ctx); | 
 | XMLPUBFUN int XMLCALL | 
 | 		xmlSchemaIsValid	(xmlSchemaValidCtxtPtr ctxt); | 
 |  | 
 | XMLPUBFUN xmlSchemaPtr XMLCALL | 
 | 	    xmlSchemaParse		(xmlSchemaParserCtxtPtr ctxt); | 
 | XMLPUBFUN void XMLCALL | 
 | 	    xmlSchemaFree		(xmlSchemaPtr schema); | 
 | #ifdef LIBXML_OUTPUT_ENABLED | 
 | XMLPUBFUN void XMLCALL | 
 | 	    xmlSchemaDump		(FILE *output, | 
 | 					 xmlSchemaPtr schema); | 
 | #endif /* LIBXML_OUTPUT_ENABLED */ | 
 | /* | 
 |  * Interfaces for validating | 
 |  */ | 
 | XMLPUBFUN void XMLCALL | 
 | 	    xmlSchemaSetValidErrors	(xmlSchemaValidCtxtPtr ctxt, | 
 | 					 xmlSchemaValidityErrorFunc err, | 
 | 					 xmlSchemaValidityWarningFunc warn, | 
 | 					 void *ctx); | 
 | XMLPUBFUN void XMLCALL | 
 | 	    xmlSchemaSetValidStructuredErrors(xmlSchemaValidCtxtPtr ctxt, | 
 | 					 xmlStructuredErrorFunc serror, | 
 | 					 void *ctx); | 
 | XMLPUBFUN int XMLCALL | 
 | 	    xmlSchemaGetValidErrors	(xmlSchemaValidCtxtPtr ctxt, | 
 | 					 xmlSchemaValidityErrorFunc *err, | 
 | 					 xmlSchemaValidityWarningFunc *warn, | 
 | 					 void **ctx); | 
 | XMLPUBFUN int XMLCALL | 
 | 	    xmlSchemaSetValidOptions	(xmlSchemaValidCtxtPtr ctxt, | 
 | 					 int options); | 
 | XMLPUBFUN int XMLCALL | 
 | 	    xmlSchemaValidCtxtGetOptions(xmlSchemaValidCtxtPtr ctxt); | 
 |  | 
 | XMLPUBFUN xmlSchemaValidCtxtPtr XMLCALL | 
 | 	    xmlSchemaNewValidCtxt	(xmlSchemaPtr schema); | 
 | XMLPUBFUN void XMLCALL | 
 | 	    xmlSchemaFreeValidCtxt	(xmlSchemaValidCtxtPtr ctxt); | 
 | XMLPUBFUN int XMLCALL | 
 | 	    xmlSchemaValidateDoc	(xmlSchemaValidCtxtPtr ctxt, | 
 | 					 xmlDocPtr instance); | 
 | XMLPUBFUN int XMLCALL | 
 |             xmlSchemaValidateOneElement (xmlSchemaValidCtxtPtr ctxt, | 
 | 			                 xmlNodePtr elem); | 
 | XMLPUBFUN int XMLCALL | 
 | 	    xmlSchemaValidateStream	(xmlSchemaValidCtxtPtr ctxt, | 
 | 					 xmlParserInputBufferPtr input, | 
 | 					 xmlCharEncoding enc, | 
 | 					 xmlSAXHandlerPtr sax, | 
 | 					 void *user_data); | 
 | XMLPUBFUN int XMLCALL | 
 | 	    xmlSchemaValidateFile	(xmlSchemaValidCtxtPtr ctxt, | 
 | 					 const char * filename, | 
 | 					 int options); | 
 |  | 
 | XMLPUBFUN xmlParserCtxtPtr XMLCALL | 
 | 	    xmlSchemaValidCtxtGetParserCtxt(xmlSchemaValidCtxtPtr ctxt); | 
 |  | 
 | /* | 
 |  * Interface to insert Schemas SAX validation in a SAX stream | 
 |  */ | 
 | typedef struct _xmlSchemaSAXPlug xmlSchemaSAXPlugStruct; | 
 | typedef xmlSchemaSAXPlugStruct *xmlSchemaSAXPlugPtr; | 
 |  | 
 | XMLPUBFUN xmlSchemaSAXPlugPtr XMLCALL | 
 |             xmlSchemaSAXPlug		(xmlSchemaValidCtxtPtr ctxt, | 
 | 					 xmlSAXHandlerPtr *sax, | 
 | 					 void **user_data); | 
 | XMLPUBFUN int XMLCALL | 
 |             xmlSchemaSAXUnplug		(xmlSchemaSAXPlugPtr plug); | 
 | #ifdef __cplusplus | 
 | } | 
 | #endif | 
 |  | 
 | #endif /* LIBXML_SCHEMAS_ENABLED */ | 
 | #endif /* __XML_SCHEMA_H__ */ |