Return to xmlschemas.h CVS log | Up to [ELWIX - Embedded LightWeight unIX -] / embedaddon / libxml2 / include / libxml |
1.1 ! misho 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) (void *ctx, const char *msg, ...) LIBXML_ATTR_FORMAT(2,3); ! 96: ! 97: /** ! 98: * xmlSchemaValidityWarningFunc: ! 99: * @ctx: the validation context ! 100: * @msg: the message ! 101: * @...: extra arguments ! 102: * ! 103: * Signature of a warning callback from an XSD validation ! 104: */ ! 105: typedef void (XMLCDECL *xmlSchemaValidityWarningFunc) (void *ctx, const char *msg, ...) LIBXML_ATTR_FORMAT(2,3); ! 106: ! 107: /** ! 108: * A schemas validation context ! 109: */ ! 110: typedef struct _xmlSchemaParserCtxt xmlSchemaParserCtxt; ! 111: typedef xmlSchemaParserCtxt *xmlSchemaParserCtxtPtr; ! 112: ! 113: typedef struct _xmlSchemaValidCtxt xmlSchemaValidCtxt; ! 114: typedef xmlSchemaValidCtxt *xmlSchemaValidCtxtPtr; ! 115: ! 116: /* ! 117: * Interfaces for parsing. ! 118: */ ! 119: XMLPUBFUN xmlSchemaParserCtxtPtr XMLCALL ! 120: xmlSchemaNewParserCtxt (const char *URL); ! 121: XMLPUBFUN xmlSchemaParserCtxtPtr XMLCALL ! 122: xmlSchemaNewMemParserCtxt (const char *buffer, ! 123: int size); ! 124: XMLPUBFUN xmlSchemaParserCtxtPtr XMLCALL ! 125: xmlSchemaNewDocParserCtxt (xmlDocPtr doc); ! 126: XMLPUBFUN void XMLCALL ! 127: xmlSchemaFreeParserCtxt (xmlSchemaParserCtxtPtr ctxt); ! 128: XMLPUBFUN void XMLCALL ! 129: xmlSchemaSetParserErrors (xmlSchemaParserCtxtPtr ctxt, ! 130: xmlSchemaValidityErrorFunc err, ! 131: xmlSchemaValidityWarningFunc warn, ! 132: void *ctx); ! 133: XMLPUBFUN void XMLCALL ! 134: xmlSchemaSetParserStructuredErrors(xmlSchemaParserCtxtPtr ctxt, ! 135: xmlStructuredErrorFunc serror, ! 136: void *ctx); ! 137: XMLPUBFUN int XMLCALL ! 138: xmlSchemaGetParserErrors(xmlSchemaParserCtxtPtr ctxt, ! 139: xmlSchemaValidityErrorFunc * err, ! 140: xmlSchemaValidityWarningFunc * warn, ! 141: void **ctx); ! 142: XMLPUBFUN int XMLCALL ! 143: xmlSchemaIsValid (xmlSchemaValidCtxtPtr ctxt); ! 144: ! 145: XMLPUBFUN xmlSchemaPtr XMLCALL ! 146: xmlSchemaParse (xmlSchemaParserCtxtPtr ctxt); ! 147: XMLPUBFUN void XMLCALL ! 148: xmlSchemaFree (xmlSchemaPtr schema); ! 149: #ifdef LIBXML_OUTPUT_ENABLED ! 150: XMLPUBFUN void XMLCALL ! 151: xmlSchemaDump (FILE *output, ! 152: xmlSchemaPtr schema); ! 153: #endif /* LIBXML_OUTPUT_ENABLED */ ! 154: /* ! 155: * Interfaces for validating ! 156: */ ! 157: XMLPUBFUN void XMLCALL ! 158: xmlSchemaSetValidErrors (xmlSchemaValidCtxtPtr ctxt, ! 159: xmlSchemaValidityErrorFunc err, ! 160: xmlSchemaValidityWarningFunc warn, ! 161: void *ctx); ! 162: XMLPUBFUN void XMLCALL ! 163: xmlSchemaSetValidStructuredErrors(xmlSchemaValidCtxtPtr ctxt, ! 164: xmlStructuredErrorFunc serror, ! 165: void *ctx); ! 166: XMLPUBFUN int XMLCALL ! 167: xmlSchemaGetValidErrors (xmlSchemaValidCtxtPtr ctxt, ! 168: xmlSchemaValidityErrorFunc *err, ! 169: xmlSchemaValidityWarningFunc *warn, ! 170: void **ctx); ! 171: XMLPUBFUN int XMLCALL ! 172: xmlSchemaSetValidOptions (xmlSchemaValidCtxtPtr ctxt, ! 173: int options); ! 174: XMLPUBFUN int XMLCALL ! 175: xmlSchemaValidCtxtGetOptions(xmlSchemaValidCtxtPtr ctxt); ! 176: ! 177: XMLPUBFUN xmlSchemaValidCtxtPtr XMLCALL ! 178: xmlSchemaNewValidCtxt (xmlSchemaPtr schema); ! 179: XMLPUBFUN void XMLCALL ! 180: xmlSchemaFreeValidCtxt (xmlSchemaValidCtxtPtr ctxt); ! 181: XMLPUBFUN int XMLCALL ! 182: xmlSchemaValidateDoc (xmlSchemaValidCtxtPtr ctxt, ! 183: xmlDocPtr instance); ! 184: XMLPUBFUN int XMLCALL ! 185: xmlSchemaValidateOneElement (xmlSchemaValidCtxtPtr ctxt, ! 186: xmlNodePtr elem); ! 187: XMLPUBFUN int XMLCALL ! 188: xmlSchemaValidateStream (xmlSchemaValidCtxtPtr ctxt, ! 189: xmlParserInputBufferPtr input, ! 190: xmlCharEncoding enc, ! 191: xmlSAXHandlerPtr sax, ! 192: void *user_data); ! 193: XMLPUBFUN int XMLCALL ! 194: xmlSchemaValidateFile (xmlSchemaValidCtxtPtr ctxt, ! 195: const char * filename, ! 196: int options); ! 197: ! 198: XMLPUBFUN xmlParserCtxtPtr XMLCALL ! 199: xmlSchemaValidCtxtGetParserCtxt(xmlSchemaValidCtxtPtr ctxt); ! 200: ! 201: /* ! 202: * Interface to insert Schemas SAX validation in a SAX stream ! 203: */ ! 204: typedef struct _xmlSchemaSAXPlug xmlSchemaSAXPlugStruct; ! 205: typedef xmlSchemaSAXPlugStruct *xmlSchemaSAXPlugPtr; ! 206: ! 207: XMLPUBFUN xmlSchemaSAXPlugPtr XMLCALL ! 208: xmlSchemaSAXPlug (xmlSchemaValidCtxtPtr ctxt, ! 209: xmlSAXHandlerPtr *sax, ! 210: void **user_data); ! 211: XMLPUBFUN int XMLCALL ! 212: xmlSchemaSAXUnplug (xmlSchemaSAXPlugPtr plug); ! 213: #ifdef __cplusplus ! 214: } ! 215: #endif ! 216: ! 217: #endif /* LIBXML_SCHEMAS_ENABLED */ ! 218: #endif /* __XML_SCHEMA_H__ */