File:  [ELWIX - Embedded LightWeight unIX -] / embedaddon / libxml2 / include / libxml / xmlschemas.h
Revision 1.1.1.2 (vendor branch): download - view: text, annotated - select for diffs - revision graph
Sun Jun 15 19:53:38 2014 UTC (10 years, 2 months ago) by misho
Branches: libxml2, MAIN
CVS tags: v2_9_1p0, v2_9_1, HEAD
libxml2 2.9.1

    1: /*
    2:  * Summary: incomplete XML Schemas structure implementation
    3:  * Description: interface to the XML Schemas handling and schema validity
    4:  *              checking, it is incomplete right now.
    5:  *
    6:  * Copy: See Copyright for the status of this software.
    7:  *
    8:  * Author: Daniel Veillard
    9:  */
   10: 
   11: 
   12: #ifndef __XML_SCHEMA_H__
   13: #define __XML_SCHEMA_H__
   14: 
   15: #include <libxml/xmlversion.h>
   16: 
   17: #ifdef LIBXML_SCHEMAS_ENABLED
   18: 
   19: #include <libxml/tree.h>
   20: 
   21: #ifdef __cplusplus
   22: extern "C" {
   23: #endif
   24: 
   25: /**
   26:  * This error codes are obsolete; not used any more.
   27:  */
   28: typedef enum {
   29:     XML_SCHEMAS_ERR_OK		= 0,
   30:     XML_SCHEMAS_ERR_NOROOT	= 1,
   31:     XML_SCHEMAS_ERR_UNDECLAREDELEM,
   32:     XML_SCHEMAS_ERR_NOTTOPLEVEL,
   33:     XML_SCHEMAS_ERR_MISSING,
   34:     XML_SCHEMAS_ERR_WRONGELEM,
   35:     XML_SCHEMAS_ERR_NOTYPE,
   36:     XML_SCHEMAS_ERR_NOROLLBACK,
   37:     XML_SCHEMAS_ERR_ISABSTRACT,
   38:     XML_SCHEMAS_ERR_NOTEMPTY,
   39:     XML_SCHEMAS_ERR_ELEMCONT,
   40:     XML_SCHEMAS_ERR_HAVEDEFAULT,
   41:     XML_SCHEMAS_ERR_NOTNILLABLE,
   42:     XML_SCHEMAS_ERR_EXTRACONTENT,
   43:     XML_SCHEMAS_ERR_INVALIDATTR,
   44:     XML_SCHEMAS_ERR_INVALIDELEM,
   45:     XML_SCHEMAS_ERR_NOTDETERMINIST,
   46:     XML_SCHEMAS_ERR_CONSTRUCT,
   47:     XML_SCHEMAS_ERR_INTERNAL,
   48:     XML_SCHEMAS_ERR_NOTSIMPLE,
   49:     XML_SCHEMAS_ERR_ATTRUNKNOWN,
   50:     XML_SCHEMAS_ERR_ATTRINVALID,
   51:     XML_SCHEMAS_ERR_VALUE,
   52:     XML_SCHEMAS_ERR_FACET,
   53:     XML_SCHEMAS_ERR_,
   54:     XML_SCHEMAS_ERR_XXX
   55: } xmlSchemaValidError;
   56: 
   57: /*
   58: * ATTENTION: Change xmlSchemaSetValidOptions's check
   59: * for invalid values, if adding to the validation
   60: * options below.
   61: */
   62: /**
   63:  * xmlSchemaValidOption:
   64:  *
   65:  * This is the set of XML Schema validation options.
   66:  */
   67: typedef enum {
   68:     XML_SCHEMA_VAL_VC_I_CREATE			= 1<<0
   69: 	/* Default/fixed: create an attribute node
   70: 	* or an element's text node on the instance.
   71: 	*/
   72: } xmlSchemaValidOption;
   73: 
   74: /*
   75:     XML_SCHEMA_VAL_XSI_ASSEMBLE			= 1<<1,
   76: 	* assemble schemata using
   77: 	* xsi:schemaLocation and
   78: 	* xsi:noNamespaceSchemaLocation
   79: */
   80: 
   81: /**
   82:  * The schemas related types are kept internal
   83:  */
   84: typedef struct _xmlSchema xmlSchema;
   85: typedef xmlSchema *xmlSchemaPtr;
   86: 
   87: /**
   88:  * xmlSchemaValidityErrorFunc:
   89:  * @ctx: the validation context
   90:  * @msg: the message
   91:  * @...: extra arguments
   92:  *
   93:  * Signature of an error callback from an XSD validation
   94:  */
   95: typedef void (XMLCDECL *xmlSchemaValidityErrorFunc)
   96:                  (void *ctx, const char *msg, ...) LIBXML_ATTR_FORMAT(2,3);
   97: 
   98: /**
   99:  * xmlSchemaValidityWarningFunc:
  100:  * @ctx: the validation context
  101:  * @msg: the message
  102:  * @...: extra arguments
  103:  *
  104:  * Signature of a warning callback from an XSD validation
  105:  */
  106: typedef void (XMLCDECL *xmlSchemaValidityWarningFunc)
  107:                  (void *ctx, const char *msg, ...) LIBXML_ATTR_FORMAT(2,3);
  108: 
  109: /**
  110:  * A schemas validation context
  111:  */
  112: typedef struct _xmlSchemaParserCtxt xmlSchemaParserCtxt;
  113: typedef xmlSchemaParserCtxt *xmlSchemaParserCtxtPtr;
  114: 
  115: typedef struct _xmlSchemaValidCtxt xmlSchemaValidCtxt;
  116: typedef xmlSchemaValidCtxt *xmlSchemaValidCtxtPtr;
  117: 
  118: /**
  119:  * xmlSchemaValidityLocatorFunc:
  120:  * @ctx: user provided context
  121:  * @file: returned file information
  122:  * @line: returned line information
  123:  *
  124:  * A schemas validation locator, a callback called by the validator.
  125:  * This is used when file or node informations are not available
  126:  * to find out what file and line number are affected
  127:  *
  128:  * Returns: 0 in case of success and -1 in case of error
  129:  */
  130: 
  131: typedef int (XMLCDECL *xmlSchemaValidityLocatorFunc) (void *ctx,
  132:                            const char **file, unsigned long *line);
  133: 
  134: /*
  135:  * Interfaces for parsing.
  136:  */
  137: XMLPUBFUN xmlSchemaParserCtxtPtr XMLCALL
  138: 	    xmlSchemaNewParserCtxt	(const char *URL);
  139: XMLPUBFUN xmlSchemaParserCtxtPtr XMLCALL
  140: 	    xmlSchemaNewMemParserCtxt	(const char *buffer,
  141: 					 int size);
  142: XMLPUBFUN xmlSchemaParserCtxtPtr XMLCALL
  143: 	    xmlSchemaNewDocParserCtxt	(xmlDocPtr doc);
  144: XMLPUBFUN void XMLCALL
  145: 	    xmlSchemaFreeParserCtxt	(xmlSchemaParserCtxtPtr ctxt);
  146: XMLPUBFUN void XMLCALL
  147: 	    xmlSchemaSetParserErrors	(xmlSchemaParserCtxtPtr ctxt,
  148: 					 xmlSchemaValidityErrorFunc err,
  149: 					 xmlSchemaValidityWarningFunc warn,
  150: 					 void *ctx);
  151: XMLPUBFUN void XMLCALL
  152: 	    xmlSchemaSetParserStructuredErrors(xmlSchemaParserCtxtPtr ctxt,
  153: 					 xmlStructuredErrorFunc serror,
  154: 					 void *ctx);
  155: XMLPUBFUN int XMLCALL
  156: 		xmlSchemaGetParserErrors(xmlSchemaParserCtxtPtr ctxt,
  157: 					xmlSchemaValidityErrorFunc * err,
  158: 					xmlSchemaValidityWarningFunc * warn,
  159: 					void **ctx);
  160: XMLPUBFUN int XMLCALL
  161: 		xmlSchemaIsValid	(xmlSchemaValidCtxtPtr ctxt);
  162: 
  163: XMLPUBFUN xmlSchemaPtr XMLCALL
  164: 	    xmlSchemaParse		(xmlSchemaParserCtxtPtr ctxt);
  165: XMLPUBFUN void XMLCALL
  166: 	    xmlSchemaFree		(xmlSchemaPtr schema);
  167: #ifdef LIBXML_OUTPUT_ENABLED
  168: XMLPUBFUN void XMLCALL
  169: 	    xmlSchemaDump		(FILE *output,
  170: 					 xmlSchemaPtr schema);
  171: #endif /* LIBXML_OUTPUT_ENABLED */
  172: /*
  173:  * Interfaces for validating
  174:  */
  175: XMLPUBFUN void XMLCALL
  176: 	    xmlSchemaSetValidErrors	(xmlSchemaValidCtxtPtr ctxt,
  177: 					 xmlSchemaValidityErrorFunc err,
  178: 					 xmlSchemaValidityWarningFunc warn,
  179: 					 void *ctx);
  180: XMLPUBFUN void XMLCALL
  181: 	    xmlSchemaSetValidStructuredErrors(xmlSchemaValidCtxtPtr ctxt,
  182: 					 xmlStructuredErrorFunc serror,
  183: 					 void *ctx);
  184: XMLPUBFUN int XMLCALL
  185: 	    xmlSchemaGetValidErrors	(xmlSchemaValidCtxtPtr ctxt,
  186: 					 xmlSchemaValidityErrorFunc *err,
  187: 					 xmlSchemaValidityWarningFunc *warn,
  188: 					 void **ctx);
  189: XMLPUBFUN int XMLCALL
  190: 	    xmlSchemaSetValidOptions	(xmlSchemaValidCtxtPtr ctxt,
  191: 					 int options);
  192: XMLPUBFUN void XMLCALL
  193:             xmlSchemaValidateSetFilename(xmlSchemaValidCtxtPtr vctxt,
  194: 	                                 const char *filename);
  195: XMLPUBFUN int XMLCALL
  196: 	    xmlSchemaValidCtxtGetOptions(xmlSchemaValidCtxtPtr ctxt);
  197: 
  198: XMLPUBFUN xmlSchemaValidCtxtPtr XMLCALL
  199: 	    xmlSchemaNewValidCtxt	(xmlSchemaPtr schema);
  200: XMLPUBFUN void XMLCALL
  201: 	    xmlSchemaFreeValidCtxt	(xmlSchemaValidCtxtPtr ctxt);
  202: XMLPUBFUN int XMLCALL
  203: 	    xmlSchemaValidateDoc	(xmlSchemaValidCtxtPtr ctxt,
  204: 					 xmlDocPtr instance);
  205: XMLPUBFUN int XMLCALL
  206:             xmlSchemaValidateOneElement (xmlSchemaValidCtxtPtr ctxt,
  207: 			                 xmlNodePtr elem);
  208: XMLPUBFUN int XMLCALL
  209: 	    xmlSchemaValidateStream	(xmlSchemaValidCtxtPtr ctxt,
  210: 					 xmlParserInputBufferPtr input,
  211: 					 xmlCharEncoding enc,
  212: 					 xmlSAXHandlerPtr sax,
  213: 					 void *user_data);
  214: XMLPUBFUN int XMLCALL
  215: 	    xmlSchemaValidateFile	(xmlSchemaValidCtxtPtr ctxt,
  216: 					 const char * filename,
  217: 					 int options);
  218: 
  219: XMLPUBFUN xmlParserCtxtPtr XMLCALL
  220: 	    xmlSchemaValidCtxtGetParserCtxt(xmlSchemaValidCtxtPtr ctxt);
  221: 
  222: /*
  223:  * Interface to insert Schemas SAX validation in a SAX stream
  224:  */
  225: typedef struct _xmlSchemaSAXPlug xmlSchemaSAXPlugStruct;
  226: typedef xmlSchemaSAXPlugStruct *xmlSchemaSAXPlugPtr;
  227: 
  228: XMLPUBFUN xmlSchemaSAXPlugPtr XMLCALL
  229:             xmlSchemaSAXPlug		(xmlSchemaValidCtxtPtr ctxt,
  230: 					 xmlSAXHandlerPtr *sax,
  231: 					 void **user_data);
  232: XMLPUBFUN int XMLCALL
  233:             xmlSchemaSAXUnplug		(xmlSchemaSAXPlugPtr plug);
  234: 
  235: 
  236: XMLPUBFUN void XMLCALL
  237:             xmlSchemaValidateSetLocator	(xmlSchemaValidCtxtPtr vctxt,
  238: 					 xmlSchemaValidityLocatorFunc f,
  239: 					 void *ctxt);
  240: 
  241: #ifdef __cplusplus
  242: }
  243: #endif
  244: 
  245: #endif /* LIBXML_SCHEMAS_ENABLED */
  246: #endif /* __XML_SCHEMA_H__ */

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>