|  | /* | 
|  | * 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__ */ |