xmlschemas.h revision 4255d504151db75c17f85192ce74f45dd2d65533
14255d504151db75c17f85192ce74f45dd2d65533Daniel Veillard/* 24255d504151db75c17f85192ce74f45dd2d65533Daniel Veillard * schemas.h : interface to the XML Schemas handling and schema validity 34255d504151db75c17f85192ce74f45dd2d65533Daniel Veillard * checking 44255d504151db75c17f85192ce74f45dd2d65533Daniel Veillard * 54255d504151db75c17f85192ce74f45dd2d65533Daniel Veillard * See Copyright for the status of this software. 64255d504151db75c17f85192ce74f45dd2d65533Daniel Veillard * 74255d504151db75c17f85192ce74f45dd2d65533Daniel Veillard * Daniel.Veillard@w3.org 84255d504151db75c17f85192ce74f45dd2d65533Daniel Veillard */ 94255d504151db75c17f85192ce74f45dd2d65533Daniel Veillard 104255d504151db75c17f85192ce74f45dd2d65533Daniel Veillard 114255d504151db75c17f85192ce74f45dd2d65533Daniel Veillard#ifndef __XML_SCHEMA_H__ 124255d504151db75c17f85192ce74f45dd2d65533Daniel Veillard#define __XML_SCHEMA_H__ 134255d504151db75c17f85192ce74f45dd2d65533Daniel Veillard 144255d504151db75c17f85192ce74f45dd2d65533Daniel Veillard#if defined(WIN32) && defined(_MSC_VER) 154255d504151db75c17f85192ce74f45dd2d65533Daniel Veillard#include <libxml/xmlwin32version.h> 164255d504151db75c17f85192ce74f45dd2d65533Daniel Veillard#else 174255d504151db75c17f85192ce74f45dd2d65533Daniel Veillard#include <libxml/xmlversion.h> 184255d504151db75c17f85192ce74f45dd2d65533Daniel Veillard#endif 194255d504151db75c17f85192ce74f45dd2d65533Daniel Veillard#ifdef LIBXML_SCHEMAS_ENABLED 204255d504151db75c17f85192ce74f45dd2d65533Daniel Veillard 214255d504151db75c17f85192ce74f45dd2d65533Daniel Veillard#include <libxml/tree.h> 224255d504151db75c17f85192ce74f45dd2d65533Daniel Veillard 234255d504151db75c17f85192ce74f45dd2d65533Daniel Veillard#ifdef __cplusplus 244255d504151db75c17f85192ce74f45dd2d65533Daniel Veillardextern "C" { 254255d504151db75c17f85192ce74f45dd2d65533Daniel Veillard#endif 264255d504151db75c17f85192ce74f45dd2d65533Daniel Veillard 274255d504151db75c17f85192ce74f45dd2d65533Daniel Veillardtypedef enum { 284255d504151db75c17f85192ce74f45dd2d65533Daniel Veillard XML_SCHEMAS_ERR_OK = 0, 294255d504151db75c17f85192ce74f45dd2d65533Daniel Veillard XML_SCHEMAS_ERR_NOROOT = 1, 304255d504151db75c17f85192ce74f45dd2d65533Daniel Veillard XML_SCHEMAS_ERR_UNDECLAREDELEM, 314255d504151db75c17f85192ce74f45dd2d65533Daniel Veillard XML_SCHEMAS_ERR_NOTTOPLEVEL, 324255d504151db75c17f85192ce74f45dd2d65533Daniel Veillard XML_SCHEMAS_ERR_MISSING, 334255d504151db75c17f85192ce74f45dd2d65533Daniel Veillard XML_SCHEMAS_ERR_WRONGELEM, 344255d504151db75c17f85192ce74f45dd2d65533Daniel Veillard XML_SCHEMAS_ERR_NOTYPE, 354255d504151db75c17f85192ce74f45dd2d65533Daniel Veillard XML_SCHEMAS_ERR_NOROLLBACK, 364255d504151db75c17f85192ce74f45dd2d65533Daniel Veillard XML_SCHEMAS_ERR_ISABSTRACT, 374255d504151db75c17f85192ce74f45dd2d65533Daniel Veillard XML_SCHEMAS_ERR_NOTEMPTY, 384255d504151db75c17f85192ce74f45dd2d65533Daniel Veillard XML_SCHEMAS_ERR_HAVEDEFAULT, 394255d504151db75c17f85192ce74f45dd2d65533Daniel Veillard XML_SCHEMAS_ERR_NOTNILLABLE, 404255d504151db75c17f85192ce74f45dd2d65533Daniel Veillard XML_SCHEMAS_ERR_EXTRACONTENT, 414255d504151db75c17f85192ce74f45dd2d65533Daniel Veillard XML_SCHEMAS_ERR_INVALIDATTR, 424255d504151db75c17f85192ce74f45dd2d65533Daniel Veillard XML_SCHEMAS_ERR_INVALIDELEM, 434255d504151db75c17f85192ce74f45dd2d65533Daniel Veillard XML_SCHEMAS_ERR_CONSTRUCT, 444255d504151db75c17f85192ce74f45dd2d65533Daniel Veillard XML_SCHEMAS_ERR_INTERNAL, 454255d504151db75c17f85192ce74f45dd2d65533Daniel Veillard XML_SCHEMAS_ERR_NOTSIMPLE, 464255d504151db75c17f85192ce74f45dd2d65533Daniel Veillard XML_SCHEMAS_ERR_ATTRUNKNOWN, 474255d504151db75c17f85192ce74f45dd2d65533Daniel Veillard XML_SCHEMAS_ERR_ATTRINVALID, 484255d504151db75c17f85192ce74f45dd2d65533Daniel Veillard XML_SCHEMAS_ERR_, 494255d504151db75c17f85192ce74f45dd2d65533Daniel Veillard XML_SCHEMAS_ERR_XXX 504255d504151db75c17f85192ce74f45dd2d65533Daniel Veillard} xmlSchemaValidError; 514255d504151db75c17f85192ce74f45dd2d65533Daniel Veillard 524255d504151db75c17f85192ce74f45dd2d65533Daniel Veillard 534255d504151db75c17f85192ce74f45dd2d65533Daniel Veillard/** 544255d504151db75c17f85192ce74f45dd2d65533Daniel Veillard * The schemas related types are kept internal 554255d504151db75c17f85192ce74f45dd2d65533Daniel Veillard */ 564255d504151db75c17f85192ce74f45dd2d65533Daniel Veillardtypedef struct _xmlSchema xmlSchema; 574255d504151db75c17f85192ce74f45dd2d65533Daniel Veillardtypedef xmlSchema *xmlSchemaPtr; 584255d504151db75c17f85192ce74f45dd2d65533Daniel Veillard 594255d504151db75c17f85192ce74f45dd2d65533Daniel Veillard/** 604255d504151db75c17f85192ce74f45dd2d65533Daniel Veillard * A schemas validation context 614255d504151db75c17f85192ce74f45dd2d65533Daniel Veillard */ 624255d504151db75c17f85192ce74f45dd2d65533Daniel Veillardtypedef void (*xmlSchemaValidityErrorFunc) (void *ctx, const char *msg, ...); 634255d504151db75c17f85192ce74f45dd2d65533Daniel Veillardtypedef void (*xmlSchemaValidityWarningFunc) (void *ctx, const char *msg, ...); 644255d504151db75c17f85192ce74f45dd2d65533Daniel Veillard 654255d504151db75c17f85192ce74f45dd2d65533Daniel Veillardtypedef struct _xmlSchemaParserCtxt xmlSchemaParserCtxt; 664255d504151db75c17f85192ce74f45dd2d65533Daniel Veillardtypedef xmlSchemaParserCtxt *xmlSchemaParserCtxtPtr; 674255d504151db75c17f85192ce74f45dd2d65533Daniel Veillard 684255d504151db75c17f85192ce74f45dd2d65533Daniel Veillardtypedef struct _xmlSchemaValidCtxt xmlSchemaValidCtxt; 694255d504151db75c17f85192ce74f45dd2d65533Daniel Veillardtypedef xmlSchemaValidCtxt *xmlSchemaValidCtxtPtr; 704255d504151db75c17f85192ce74f45dd2d65533Daniel Veillard 714255d504151db75c17f85192ce74f45dd2d65533Daniel Veillard/* 724255d504151db75c17f85192ce74f45dd2d65533Daniel Veillard * Interfaces for parsing. 734255d504151db75c17f85192ce74f45dd2d65533Daniel Veillard */ 744255d504151db75c17f85192ce74f45dd2d65533Daniel VeillardxmlSchemaParserCtxtPtr xmlSchemaNewParserCtxt(const char *URL); 754255d504151db75c17f85192ce74f45dd2d65533Daniel Veillardvoid xmlSchemaFreeParserCtxt (xmlSchemaParserCtxtPtr ctxt); 764255d504151db75c17f85192ce74f45dd2d65533Daniel Veillardvoid xmlSchemaSetParserErrors(xmlSchemaParserCtxtPtr ctxt, 774255d504151db75c17f85192ce74f45dd2d65533Daniel Veillard xmlSchemaValidityErrorFunc err, 784255d504151db75c17f85192ce74f45dd2d65533Daniel Veillard xmlSchemaValidityWarningFunc warn, 794255d504151db75c17f85192ce74f45dd2d65533Daniel Veillard void *ctx); 804255d504151db75c17f85192ce74f45dd2d65533Daniel VeillardxmlSchemaPtr xmlSchemaParse (xmlSchemaParserCtxtPtr ctxt); 814255d504151db75c17f85192ce74f45dd2d65533Daniel Veillardvoid xmlSchemaFree (xmlSchemaPtr schema); 824255d504151db75c17f85192ce74f45dd2d65533Daniel Veillardvoid xmlSchemaDump (FILE *output, 834255d504151db75c17f85192ce74f45dd2d65533Daniel Veillard xmlSchemaPtr schema); 844255d504151db75c17f85192ce74f45dd2d65533Daniel Veillard/* 854255d504151db75c17f85192ce74f45dd2d65533Daniel Veillard * Interfaces for validating 864255d504151db75c17f85192ce74f45dd2d65533Daniel Veillard */ 874255d504151db75c17f85192ce74f45dd2d65533Daniel Veillardvoid xmlSchemaSetValidErrors (xmlSchemaValidCtxtPtr ctxt, 884255d504151db75c17f85192ce74f45dd2d65533Daniel Veillard xmlSchemaValidityErrorFunc err, 894255d504151db75c17f85192ce74f45dd2d65533Daniel Veillard xmlSchemaValidityWarningFunc warn, 904255d504151db75c17f85192ce74f45dd2d65533Daniel Veillard void *ctx); 914255d504151db75c17f85192ce74f45dd2d65533Daniel VeillardxmlSchemaValidCtxtPtr xmlSchemaNewValidCtxt (xmlSchemaPtr schema); 924255d504151db75c17f85192ce74f45dd2d65533Daniel Veillardvoid xmlSchemaFreeValidCtxt (xmlSchemaValidCtxtPtr ctxt); 934255d504151db75c17f85192ce74f45dd2d65533Daniel Veillardint xmlSchemaValidateDoc (xmlSchemaValidCtxtPtr ctxt, 944255d504151db75c17f85192ce74f45dd2d65533Daniel Veillard xmlDocPtr instance); 954255d504151db75c17f85192ce74f45dd2d65533Daniel Veillardint xmlSchemaValidateStream (xmlSchemaValidCtxtPtr ctxt, 964255d504151db75c17f85192ce74f45dd2d65533Daniel Veillard xmlParserInputBufferPtr input, 974255d504151db75c17f85192ce74f45dd2d65533Daniel Veillard xmlCharEncoding enc, 984255d504151db75c17f85192ce74f45dd2d65533Daniel Veillard xmlSAXHandlerPtr sax, 994255d504151db75c17f85192ce74f45dd2d65533Daniel Veillard void *user_data); 1004255d504151db75c17f85192ce74f45dd2d65533Daniel Veillard#ifdef __cplusplus 1014255d504151db75c17f85192ce74f45dd2d65533Daniel Veillard} 1024255d504151db75c17f85192ce74f45dd2d65533Daniel Veillard#endif 1034255d504151db75c17f85192ce74f45dd2d65533Daniel Veillard 1044255d504151db75c17f85192ce74f45dd2d65533Daniel Veillard#endif /* LIBXML_SCHEMAS_ENABLED */ 1054255d504151db75c17f85192ce74f45dd2d65533Daniel Veillard#endif /* __XML_SCHEMA_H__ */ 106