Annotation of embedaddon/libxml2/include/libxml/xmlschemas.h, revision 1.1.1.1

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

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