Spaces:
Sleeping
Sleeping
/* | |
* 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 | |
*/ | |
extern "C" { | |
/** | |
* 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; | |
/** | |
* xmlSchemaValidityLocatorFunc: | |
* @ctx: user provided context | |
* @file: returned file information | |
* @line: returned line information | |
* | |
* A schemas validation locator, a callback called by the validator. | |
* This is used when file or node information are not available | |
* to find out what file and line number are affected | |
* | |
* Returns: 0 in case of success and -1 in case of error | |
*/ | |
typedef int (XMLCDECL *xmlSchemaValidityLocatorFunc) (void *ctx, | |
const char **file, unsigned long *line); | |
/* | |
* 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); | |
XMLPUBFUN void XMLCALL | |
xmlSchemaDump (FILE *output, | |
xmlSchemaPtr schema); | |
/* | |
* 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 void XMLCALL | |
xmlSchemaValidateSetFilename(xmlSchemaValidCtxtPtr vctxt, | |
const char *filename); | |
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); | |
XMLPUBFUN void XMLCALL | |
xmlSchemaValidateSetLocator (xmlSchemaValidCtxtPtr vctxt, | |
xmlSchemaValidityLocatorFunc f, | |
void *ctxt); | |
} | |