This XQuery Module contains functions to perform validations against DTDs, XML Schema and (since Version 8.3) RelaxNG:
- For DTDs and XML Schema, Java’s standard validators is used.
- For XML Schema, the Saxon XSLT Processor –
SaxonHE.jar
, SaxonPE.jar
, or SaxonEE.jar
– is used if it is added to the classpath.
- For RelaxNG, Jing must be added to the classpath. The latest version,
jing-20091111.jar
, is included in the full distributions of BaseX.
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:dtd
Signatures
|
validate:dtd($input as item()) as empty-sequence()
validate:dtd($input as item(), $schema as xs:string) as empty-sequence()
|
Summary
|
Validates the document specified by $input . $input can be specified as:
- 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 validation fails.
BXVA0002 : the validation process cannot be started.
BXVA0003 : no DTD Schema validator is available.
|
Examples
|
validate:dtd('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 $schema := '<!ELEMENT root (#PCDATA)>'
return validate:dtd($doc, $schema)
} catch bxerr:BXVA0001 {
'DTD Validation failed.'
}
|
validate:dtd-info
Signatures
|
validate:dtd-info($input as item()) as xs:string*
validate:dtd-info($input as item(), $schema as xs:string) as xs:string*
|
Summary
|
Validates a document and returns warnings, errors and fatal errors in a string sequence. See validate:dtd for more details on the function arguments.
|
Errors
|
BXVA0002 : the validation process cannot be started.
BXVA0003 : no DTD Schema validator is available.
|
validate:dtd-report
Template:Mark:
Signatures
|
validate:dtd-report($input as item()) as element(report)
validate:dtd-report($input as item(), $schema as xs:string) as element(report)
|
Summary
|
Validates a document and returns warnings, errors and fatal errors as XML. See validate:dtd for more details on the function arguments.
|
Errors
|
BXVA0002 : the validation process cannot be started.
BXVA0003 : no DTD Schema validator is available.
|
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 can be specified as:
xs:string , containing the path to the resource,
xs:string , containing the resource in its string representation, or
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 attribute as defined in W3C XML Schema.
|
Errors
|
BXVA0001 : the validation fails.
BXVA0002 : the validation process cannot be started.
BXVA0003 : no XML Schema validator is available.
|
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:xsd-info
Signatures
|
validate:xsd-info($input as item()) as xs:string*
validate:xsd-info($input as item(), $schema as item()) as xs:string*
|
Summary
|
Validates a document and returns warnings, errors and fatal errors in a string sequence. See validate:xsd for more details on the function arguments.
|
Errors
|
BXVA0002 : the validation process cannot be started.
BXVA0003 : no XML Schema validator is available.
|
validate:xsd-report
Template:Mark:
Signatures
|
validate:xsd-report($input as item()) as element(report)
validate:xsd-report($input as item(), $schema as xs:string) as element(report)
|
Summary
|
Validates a document and returns warnings, errors and fatal errors as XML. See validate:xsd for more details on the function arguments.
|
Errors
|
BXVA0002 : the validation process cannot be started.
BXVA0003 : no XML Schema validator is available.
|
validate:rng
Template:Mark:
Signatures
|
validate:rng($input as item(), $schema as item()) as empty-sequence()
validate:rng($input as item(), $schema as item(), $compact as xs:boolean) as empty-sequence()
|
Summary
|
Validates the document specified by $input . The validation schema is specified by $schema , and $compact indicates if the schema uses the compact RelaxNG notation. Both $input and $schema can be specified as:
xs:string , containing the path to the resource,
xs:string , containing the resource in its string representation, or
node() , containing the resource itself.
|
Errors
|
BXVA0001 : the validation fails.
BXVA0002 : the validation process cannot be started.
BXVA0003 : the RelaxNG validator is not available.
|
Examples
|
validate:rng('doc.xml', 'doc.rng') validates the document doc.xml against the specified schema doc.rng .
|
validate:rng-info
Template:Mark:
Signatures
|
validate:rng-info($input as item(), $schema as item()) as xs:string*
validate:rng-info($input as item(), $schema as item(), $compact as xs:boolean) as xs:string*
|
Summary
|
Validates a document and returns warnings, errors and fatal errors in a string sequence. See validate:rng for more details on the function arguments.
|
Errors
|
BXVA0002 : the validation process cannot be started.
BXVA0003 : the RelaxNG validator is not available.
|
validate:rng-report
Template:Mark:
Signatures
|
validate:rng-report($input as item(), $schema as xs:string) as element(report)
validate:rng-report($input as item(), $schema as xs:string, $compact as xs:boolean) as element(report)
|
Summary
|
Validates a document and returns warnings, errors and fatal errors as XML. See validate:rng for more details on the function arguments.
|
Errors
|
BXVA0002 : the validation process cannot be started.
BXVA0003 : The RelaxNG validator is not available.
|
Errors
Code
|
Description
|
BXVA0001
|
The document cannot be validated against the specified DTD or XML Schema.
|
BXVA0002
|
The validation cannot be started.
|
BXVA0003
|
No validator is available.
|
Changelog
- Version 8.3
- Version 7.6
The module was introduced with Version 7.3.