interface to the XML Schemas handling and schema validity checking, it is incomplete right now.

Table of Contents

Structure xmlSchema
struct _xmlSchema
Structure xmlSchemaParserCtxt
struct _xmlSchemaParserCtxt The content of this structure is not made public by the API.
Typedef xmlSchemaParserCtxt * xmlSchemaParserCtxtPtr
Typedef xmlSchema * xmlSchemaPtr
Typedef xmlSchemaSAXPlugStruct * xmlSchemaSAXPlugPtr
Structure xmlSchemaSAXPlugStruct
struct _xmlSchemaSAXPlug The content of this structure is not made public by the API.
Structure xmlSchemaValidCtxt
struct _xmlSchemaValidCtxt The content of this structure is not made public by the API.
Typedef xmlSchemaValidCtxt * xmlSchemaValidCtxtPtr
Enum xmlSchemaValidError
Enum xmlSchemaValidOption
void	xmlSchemaDump			(FILE * output, 
xmlSchemaPtr schema)
void	xmlSchemaFree			(xmlSchemaPtr schema)
void	xmlSchemaFreeParserCtxt		(xmlSchemaParserCtxtPtr ctxt)
void	xmlSchemaFreeValidCtxt		(xmlSchemaValidCtxtPtr ctxt)
int	xmlSchemaGetParserErrors	(xmlSchemaParserCtxtPtr ctxt, 
xmlSchemaValidityErrorFunc * err,
xmlSchemaValidityWarningFunc * warn,
void ** ctx)
int	xmlSchemaGetValidErrors		(xmlSchemaValidCtxtPtr ctxt, 
xmlSchemaValidityErrorFunc * err,
xmlSchemaValidityWarningFunc * warn,
void ** ctx)
int	xmlSchemaIsValid		(xmlSchemaValidCtxtPtr ctxt)
xmlSchemaParserCtxtPtr	xmlSchemaNewDocParserCtxt	(xmlDocPtr doc)
xmlSchemaParserCtxtPtr	xmlSchemaNewMemParserCtxt	(const char * buffer, 
int size)
xmlSchemaParserCtxtPtr	xmlSchemaNewParserCtxt	(const char * URL)
xmlSchemaValidCtxtPtr	xmlSchemaNewValidCtxt	(xmlSchemaPtr schema)
xmlSchemaPtr	xmlSchemaParse		(xmlSchemaParserCtxtPtr ctxt)
xmlSchemaSAXPlugPtr	xmlSchemaSAXPlug	(xmlSchemaValidCtxtPtr ctxt, 
xmlSAXHandlerPtr * sax,
void ** user_data)
int	xmlSchemaSAXUnplug		(xmlSchemaSAXPlugPtr plug)
void	xmlSchemaSetParserErrors	(xmlSchemaParserCtxtPtr ctxt, 
xmlSchemaValidityErrorFunc err,
xmlSchemaValidityWarningFunc warn,
void * ctx)
void	xmlSchemaSetParserStructuredErrors	(xmlSchemaParserCtxtPtr ctxt, 
xmlStructuredErrorFunc serror,
void * ctx)
void	xmlSchemaSetValidErrors		(xmlSchemaValidCtxtPtr ctxt, 
xmlSchemaValidityErrorFunc err,
xmlSchemaValidityWarningFunc warn,
void * ctx)
int	xmlSchemaSetValidOptions	(xmlSchemaValidCtxtPtr ctxt, 
int options)
void	xmlSchemaSetValidStructuredErrors	(xmlSchemaValidCtxtPtr ctxt, 
xmlStructuredErrorFunc serror,
void * ctx)
int	xmlSchemaValidCtxtGetOptions	(xmlSchemaValidCtxtPtr ctxt)
xmlParserCtxtPtr	xmlSchemaValidCtxtGetParserCtxt	(xmlSchemaValidCtxtPtr ctxt)
int	xmlSchemaValidateDoc		(xmlSchemaValidCtxtPtr ctxt, 
xmlDocPtr doc)
int	xmlSchemaValidateFile		(xmlSchemaValidCtxtPtr ctxt, 
const char * filename,
int options)
int	xmlSchemaValidateOneElement	(xmlSchemaValidCtxtPtr ctxt, 
xmlNodePtr elem)
void	xmlSchemaValidateSetFilename	(xmlSchemaValidCtxtPtr vctxt, 
const char * filename)
void	xmlSchemaValidateSetLocator	(xmlSchemaValidCtxtPtr vctxt, 
xmlSchemaValidityLocatorFunc f,
void * ctxt)
int	xmlSchemaValidateStream		(xmlSchemaValidCtxtPtr ctxt, 
xmlParserInputBufferPtr input,
xmlCharEncoding enc,
xmlSAXHandlerPtr sax,
void * user_data)
Function type: xmlSchemaValidityErrorFunc
void	xmlSchemaValidityErrorFunc	(void * ctx, 
const char * msg,
... ...)
Function type: xmlSchemaValidityLocatorFunc
int	xmlSchemaValidityLocatorFunc	(void * ctx, 
const char ** file,
unsigned long * line)
Function type: xmlSchemaValidityWarningFunc
void	xmlSchemaValidityWarningFunc	(void * ctx, 
const char * msg,
... ...)

Description

Structure xmlSchema

Structure xmlSchema
struct _xmlSchema { const xmlChar * name : schema name const xmlChar * targetNamespace : the target namespace const xmlChar * version const xmlChar * id : Obsolete xmlDocPtr doc xmlSchemaAnnotPtr annot int flags xmlHashTablePtr typeDecl xmlHashTablePtr attrDecl xmlHashTablePtr attrgrpDecl xmlHashTablePtr elemDecl xmlHashTablePtr notaDecl xmlHashTablePtr schemasImports void * _private : unused by the library for users or bind xmlHashTablePtr groupDecl xmlDictPtr dict void * includes : the includes, this is opaque for now int preserve : whether to free the document int counter : used to give ononymous components uniqu xmlHashTablePtr idcDef : All identity-constraint defs. void * volatiles : Obsolete }

Structure xmlSchemaParserCtxt

Structure xmlSchemaParserCtxt
struct _xmlSchemaParserCtxt { The content of this structure is not made public by the API. }

Structure xmlSchemaSAXPlugStruct

Structure xmlSchemaSAXPlugStruct
struct _xmlSchemaSAXPlug { The content of this structure is not made public by the API. }

Structure xmlSchemaValidCtxt

Structure xmlSchemaValidCtxt
struct _xmlSchemaValidCtxt { The content of this structure is not made public by the API. }

Enum xmlSchemaValidError

Enum xmlSchemaValidError {
    XML_SCHEMAS_ERR_OK = 0
    XML_SCHEMAS_ERR_NOROOT = 1
    XML_SCHEMAS_ERR_UNDECLAREDELEM = 2
    XML_SCHEMAS_ERR_NOTTOPLEVEL = 3
    XML_SCHEMAS_ERR_MISSING = 4
    XML_SCHEMAS_ERR_WRONGELEM = 5
    XML_SCHEMAS_ERR_NOTYPE = 6
    XML_SCHEMAS_ERR_NOROLLBACK = 7
    XML_SCHEMAS_ERR_ISABSTRACT = 8
    XML_SCHEMAS_ERR_NOTEMPTY = 9
    XML_SCHEMAS_ERR_ELEMCONT = 10
    XML_SCHEMAS_ERR_HAVEDEFAULT = 11
    XML_SCHEMAS_ERR_NOTNILLABLE = 12
    XML_SCHEMAS_ERR_EXTRACONTENT = 13
    XML_SCHEMAS_ERR_INVALIDATTR = 14
    XML_SCHEMAS_ERR_INVALIDELEM = 15
    XML_SCHEMAS_ERR_NOTDETERMINIST = 16
    XML_SCHEMAS_ERR_CONSTRUCT = 17
    XML_SCHEMAS_ERR_INTERNAL = 18
    XML_SCHEMAS_ERR_NOTSIMPLE = 19
    XML_SCHEMAS_ERR_ATTRUNKNOWN = 20
    XML_SCHEMAS_ERR_ATTRINVALID = 21
    XML_SCHEMAS_ERR_VALUE = 22
    XML_SCHEMAS_ERR_FACET = 23
    XML_SCHEMAS_ERR_ = 24
    XML_SCHEMAS_ERR_XXX = 25
}

Enum xmlSchemaValidOption

Enum xmlSchemaValidOption {
    XML_SCHEMA_VAL_VC_I_CREATE = 1 : Default/fixed: create an attribute node * or an element's text node on the instance. *
}

Function: xmlSchemaDump

void	xmlSchemaDump			(FILE * output, 
xmlSchemaPtr schema)

Dump a Schema structure.

output:the file output
schema:a schema structure

Function: xmlSchemaFree

void	xmlSchemaFree			(xmlSchemaPtr schema)

Deallocate a Schema structure.

schema:a schema structure

Function: xmlSchemaFreeParserCtxt

void	xmlSchemaFreeParserCtxt		(xmlSchemaParserCtxtPtr ctxt)

Free the resources associated to the schema parser context

ctxt:the schema parser context

Function: xmlSchemaFreeValidCtxt

void	xmlSchemaFreeValidCtxt		(xmlSchemaValidCtxtPtr ctxt)

Free the resources associated to the schema validation context

ctxt:the schema validation context

Function: xmlSchemaGetParserErrors

int	xmlSchemaGetParserErrors	(xmlSchemaParserCtxtPtr ctxt, 
xmlSchemaValidityErrorFunc * err,
xmlSchemaValidityWarningFunc * warn,
void ** ctx)

Get the callback information used to handle errors for a parser context

ctxt:a XMl-Schema parser context
err:the error callback result
warn:the warning callback result
ctx:contextual data for the callbacks result
Returns:-1 in case of failure, 0 otherwise

Function: xmlSchemaGetValidErrors

int	xmlSchemaGetValidErrors		(xmlSchemaValidCtxtPtr ctxt, 
xmlSchemaValidityErrorFunc * err,
xmlSchemaValidityWarningFunc * warn,
void ** ctx)

Get the error and warning callback informations

ctxt:a XML-Schema validation context
err:the error function result
warn:the warning function result
ctx:the functions context result
Returns:-1 in case of error and 0 otherwise

Function: xmlSchemaIsValid

int	xmlSchemaIsValid		(xmlSchemaValidCtxtPtr ctxt)

Check if any error was detected during validation.

ctxt:the schema validation context
Returns:1 if valid so far, 0 if errors were detected, and -1 in case of internal error.

Function: xmlSchemaNewDocParserCtxt

xmlSchemaParserCtxtPtr	xmlSchemaNewDocParserCtxt	(xmlDocPtr doc)

Create an XML Schemas parse context for that document. NB. The document may be modified during the parsing process.

doc:a preparsed document tree
Returns:the parser context or NULL in case of error

Function: xmlSchemaNewMemParserCtxt

xmlSchemaParserCtxtPtr	xmlSchemaNewMemParserCtxt	(const char * buffer, 
int size)

Create an XML Schemas parse context for that memory buffer expected to contain an XML Schemas file.

buffer:a pointer to a char array containing the schemas
size:the size of the array
Returns:the parser context or NULL in case of error

Function: xmlSchemaNewParserCtxt

xmlSchemaParserCtxtPtr	xmlSchemaNewParserCtxt	(const char * URL)

Create an XML Schemas parse context for that file/resource expected to contain an XML Schemas file.

URL:the location of the schema
Returns:the parser context or NULL in case of error

Function: xmlSchemaNewValidCtxt

xmlSchemaValidCtxtPtr	xmlSchemaNewValidCtxt	(xmlSchemaPtr schema)

Create an XML Schemas validation context based on the given schema.

schema:a precompiled XML Schemas
Returns:the validation context or NULL in case of error

Function: xmlSchemaParse

xmlSchemaPtr	xmlSchemaParse		(xmlSchemaParserCtxtPtr ctxt)

parse a schema definition resource and build an internal XML Shema struture which can be used to validate instances.

ctxt:a schema validation context
Returns:the internal XML Schema structure built from the resource or NULL in case of error

Function: xmlSchemaSAXPlug

xmlSchemaSAXPlugPtr	xmlSchemaSAXPlug	(xmlSchemaValidCtxtPtr ctxt, 
xmlSAXHandlerPtr * sax,
void ** user_data)

Plug a SAX based validation layer in a SAX parsing event flow. The original @saxptr and @dataptr data are replaced by new pointers but the calls to the original will be maintained.

ctxt:a schema validation context
sax:a pointer to the original xmlSAXHandlerPtr
user_data:a pointer to the original SAX user data pointer
Returns:a pointer to a data structure needed to unplug the validation layer or NULL in case of errors.

Function: xmlSchemaSAXUnplug

int	xmlSchemaSAXUnplug		(xmlSchemaSAXPlugPtr plug)

Unplug a SAX based validation layer in a SAX parsing event flow. The original pointers used in the call are restored.

plug:a data structure returned by xmlSchemaSAXPlug
Returns:0 in case of success and -1 in case of failure.

Function: xmlSchemaSetParserErrors

void	xmlSchemaSetParserErrors	(xmlSchemaParserCtxtPtr ctxt, 
xmlSchemaValidityErrorFunc err,
xmlSchemaValidityWarningFunc warn,
void * ctx)

Set the callback functions used to handle errors for a validation context

ctxt:a schema validation context
err:the error callback
warn:the warning callback
ctx:contextual data for the callbacks

Function: xmlSchemaSetParserStructuredErrors

void	xmlSchemaSetParserStructuredErrors	(xmlSchemaParserCtxtPtr ctxt, 
xmlStructuredErrorFunc serror,
void * ctx)

Set the structured error callback

ctxt:a schema parser context
serror:the structured error function
ctx:the functions context

Function: xmlSchemaSetValidErrors

void	xmlSchemaSetValidErrors		(xmlSchemaValidCtxtPtr ctxt, 
xmlSchemaValidityErrorFunc err,
xmlSchemaValidityWarningFunc warn,
void * ctx)

Set the error and warning callback informations

ctxt:a schema validation context
err:the error function
warn:the warning function
ctx:the functions context

Function: xmlSchemaSetValidOptions

int	xmlSchemaSetValidOptions	(xmlSchemaValidCtxtPtr ctxt, 
int options)

Sets the options to be used during the validation.

ctxt:a schema validation context
options:a combination of xmlSchemaValidOption
Returns:0 in case of success, -1 in case of an API error.

Function: xmlSchemaSetValidStructuredErrors

void	xmlSchemaSetValidStructuredErrors	(xmlSchemaValidCtxtPtr ctxt, 
xmlStructuredErrorFunc serror,
void * ctx)

Set the structured error callback

ctxt:a schema validation context
serror:the structured error function
ctx:the functions context

Function: xmlSchemaValidCtxtGetOptions

int	xmlSchemaValidCtxtGetOptions	(xmlSchemaValidCtxtPtr ctxt)

Get the validation context options.

ctxt:a schema validation context
Returns:the option combination or -1 on error.

Function: xmlSchemaValidCtxtGetParserCtxt

xmlParserCtxtPtr	xmlSchemaValidCtxtGetParserCtxt	(xmlSchemaValidCtxtPtr ctxt)

allow access to the parser context of the schema validation context

ctxt:a schema validation context
Returns:the parser context of the schema validation context or NULL in case of error.

Function: xmlSchemaValidateDoc

int	xmlSchemaValidateDoc		(xmlSchemaValidCtxtPtr ctxt, 
xmlDocPtr doc)

Validate a document tree in memory.

ctxt:a schema validation context
doc:a parsed document tree
Returns:0 if the document is schemas valid, a positive error code number otherwise and -1 in case of internal or API error.

Function: xmlSchemaValidateFile

int	xmlSchemaValidateFile		(xmlSchemaValidCtxtPtr ctxt, 
const char * filename,
int options)

Do a schemas validation of the given resource, it will use the SAX streamable validation internally.

ctxt:a schema validation context
filename:the URI of the instance
options:a future set of options, currently unused
Returns:0 if the document is valid, a positive error code number otherwise and -1 in case of an internal or API error.

Function: xmlSchemaValidateOneElement

int	xmlSchemaValidateOneElement	(xmlSchemaValidCtxtPtr ctxt, 
xmlNodePtr elem)

Validate a branch of a tree, starting with the given @elem.

ctxt:a schema validation context
elem:an element node
Returns:0 if the element and its subtree is valid, a positive error code number otherwise and -1 in case of an internal or API error.

Function: xmlSchemaValidateSetFilename

void	xmlSchemaValidateSetFilename	(xmlSchemaValidCtxtPtr vctxt, 
const char * filename)

Workaround to provide file error reporting information when this is not provided by current APIs

vctxt:the schema validation context
filename:the file name

Function: xmlSchemaValidateSetLocator

void	xmlSchemaValidateSetLocator	(xmlSchemaValidCtxtPtr vctxt, 
xmlSchemaValidityLocatorFunc f,
void * ctxt)

Allows to set a locator function to the validation context, which will be used to provide file and line information since those are not provided as part of the SAX validation flow Setting @f to NULL disable the locator.

vctxt:a schema validation context
f:the locator function pointer
ctxt:the locator context

Function: xmlSchemaValidateStream

int	xmlSchemaValidateStream		(xmlSchemaValidCtxtPtr ctxt, 
xmlParserInputBufferPtr input,
xmlCharEncoding enc,
xmlSAXHandlerPtr sax,
void * user_data)

Validate an input based on a flow of SAX event from the parser and forward the events to the @sax handler with the provided @user_data the user provided @sax handler must be a SAX2 one.

ctxt:a schema validation context
input:the input to use for reading the data
enc:an optional encoding information
sax:a SAX handler for the resulting events
user_data:the context to provide to the SAX handler.
Returns:0 if the document is schemas valid, a positive error code number otherwise and -1 in case of internal or API error.

Function type: xmlSchemaValidityErrorFunc

Function type: xmlSchemaValidityErrorFunc
void	xmlSchemaValidityErrorFunc	(void * ctx, 
const char * msg,
... ...)

Signature of an error callback from an XSD validation

ctx:the validation context
msg:the message
...:extra arguments

Function type: xmlSchemaValidityLocatorFunc

Function type: xmlSchemaValidityLocatorFunc
int	xmlSchemaValidityLocatorFunc	(void * ctx, 
const char ** file,
unsigned long * line)

A schemas validation locator, a callback called by the validator. This is used when file or node informations are not available to find out what file and line number are affected

ctx:user provided context
file:returned file information
line:returned line information
Returns:0 in case of success and -1 in case of error

Function type: xmlSchemaValidityWarningFunc

Function type: xmlSchemaValidityWarningFunc
void	xmlSchemaValidityWarningFunc	(void * ctx, 
const char * msg,
... ...)

Signature of a warning callback from an XSD validation

ctx:the validation context
msg:the message
...:extra arguments

Daniel Veillard