Difference between revisions of "Validation Module"

From BaseX Documentation
Jump to navigation Jump to search
Line 23: Line 23:
 
|-
 
|-
 
| '''Errors'''
 
| '''Errors'''
|{{Error|BXVA0001|XQuery Errors#Functions Errors}} the addressed document cannot be validated against the given schema.
+
|{{Error|BXVA0001|#Errors}} the addressed document cannot be validated against the given schema.
 
|-
 
|-
 
| '''Examples'''
 
| '''Examples'''
Line 54: Line 54:
 
|-
 
|-
 
| '''Errors'''
 
| '''Errors'''
|{{Error|BXVA0001|XQuery Errors#Functions Errors}} the addressed document cannot be validated against the given DTD.
+
|{{Error|BXVA0001|#Errors}} the addressed document cannot be validated against the given DTD.
 
|-
 
|-
 
| '''Examples'''
 
| '''Examples'''

Revision as of 19:55, 15 June 2012

This XQuery Module contains functions to perform validations against XML Schema and Document Type Declarations.

Conventions

All functions in this module are assigned to the http://basex.org/modules/validate namespace, which is statically bound to the validate prefix.
All errors are assigned to the http://basex.org/errors namespace, which is statically bound to the bxerr prefix.

Functions

validate:xsd

Signatures validate:xsd($input as item()) as empty-sequence()
validate:xsd($input as item(), $schema as item()) as empty-sequence()
Summary Validates the document specified by $input.

Both $input and $schema may be

  • an xs:string, containing the path to the resource,
  • an xs:string, containing the resource in its string representation, or
  • a node(), containing the resource itself.

$schema can be used to specify the schema for validation. If no schema is given, $input is required to contain an xsi:(noNamespace)schemaLocation as defined in W3C XML Schema.

Errors BXVA0001: the addressed document cannot be validated against the given schema.
Examples
  • validate:xsd('doc.xml', 'doc.xsd') validates the document doc.xml against the specified schema doc.xsd.
  • The following example demonstrates how a document can be validated against a schema without resorting to local or remote URIs:
let $doc := <simple:root xmlns:simple='http://basex.org/simple'/>
let $schema :=
  <xs:schema xmlns:xs='http://www.w3.org/2001/XMLSchema' targetNamespace='http://basex.org/simple'>
    <xs:element name='root'/>
  </xs:schema>
return validate:xsd($doc, $schema)

validate:dtd

Signatures validate:dtd($input as item()) as empty-sequence()
validate:dtd($input as item(), $dtd as xs:string) as empty-sequence()
Summary Validates the document specified by $input.

$input may be

  • an xs:string, containing the path to the resource,
  • an xs:string, containing the resource in its string representation, or
  • a node(), containing the resource itself.

$schema can be used to specify the DTD for validation. If no DTD is given, $input is required to contain a DTD doctype declaration.

Errors BXVA0001: the addressed document cannot be validated against the given DTD.
Examples
  • validate:xsd('doc.xml', 'doc.dtd') validates the document doc.xml against the specified DTD file doc.dtd.
  • The following example validates an invalid document against a DTD, which is specified as string:
try {
  let $doc := <invalid/>
  let $dtd := '<!ELEMENT root (#PCDATA)>'
  return validate:dtd($doc, $dtd)
} catch BXVA0001 {
  'DTD Validation failed.'
}

Errors

Code Description
BXVA0001 A document cannot be validated against the specified DTD or XML Schema.

Changelog

The module was introduced with Version 7.3.