Validate an XML document relative to an XML schema
xmlSchemaValidate.RdThis function validates an XML document relative to an XML schema to ensure that it has the correct structure, i.e. valid sub-nodes, attributes, etc.
The xmlSchemaValidationErrorHandler is a function
that returns a list of functions which can be used to cumulate or
collect the errors and warnings from the schema validation operation.
Usage
xmlSchemaValidate(schema, doc,
errorHandler = xmlErrorFun(),
options = 0L)
schemaValidationErrorHandler()Arguments
- schema
an object of class
xmlSchemaRefwhich is usually the result of a call toxmlInternalTreeParsewithisSchema = TRUE, orxmlSchemaParse.- doc
an XML document which has already been parsed into a
XMLInternalDocumentor which is a file name or string which is coerced to anXMLInternalDocument-classobject- options
an integer giving the options controlling the validation. At present, this is either 0 or 1 and is essentially irrelevant to us. It may be of value in the future.
- errorHandler
a function or a list whose first element is a function which is then used as the collector for the warning and error messages reported during the validation. For each warning or error, this function is invoked and the class of the message is either
XMLSchemaWarningorXMLSchemaErrorrespectively.
Value
Typically, a list with 3 elements:
- status
0 for validated, and non-zero for invalid
- errors
a character vector
- warnings
a character vector
If an empty error handler is provided (i.e. NULL)
just an integer indicating the status of the validation
is returned. 0 indicates everything was okay; a non-zero
value indicates a validation error. (-1 indicates an internal error
in libxml2)
Examples
if(FALSE) {
xsd = xmlParse(system.file("exampleData", "author.xsd", package = "XML"), isSchema =TRUE)
doc = xmlInternalTreeParse(system.file("exampleData", "author.xml", package = "XML"))
xmlSchemaValidate(xsd, doc)
}