Difference between revisions of "Validation Module"
Line 1: | Line 1: | ||
− | This [[Module Library|XQuery Module]] contains functions to perform validations against | + | This [[Module Library|XQuery Module]] contains functions to perform validations against DTDs, XML Schema and (since {{Version|8.3}}) RelaxNG. For Schematron validation, check out Vincent Lizzi’s [https://github.com/vincentml/schematron-basex Schematron XQuery Module]. |
=Conventions= | =Conventions= |
Revision as of 12:02, 17 September 2015
This XQuery Module contains functions to perform validations against DTDs, XML Schema and (since Version 8.3) RelaxNG. For Schematron validation, check out Vincent Lizzi’s Schematron XQuery Module.
Contents
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
DTD
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:
|
Errors | BXVA0001 : the validation fails.BXVA0002 : the validation process cannot be started.BXVA0003 : no DTD Schema validator is available.
|
Examples |
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.
|
Examples |
|
validate:dtd-report
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.
|
Examples |
<report> <status>invalid</status> <message level="Error" line="2" column="11">Element type "invalid" must be declared.</message> </report> |
XML Schema
The Saxon XSLT Processor – SaxonHE.jar
, SaxonPE.jar
, or SaxonEE.jar
– is used if it is added to the classpath.
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:
|
Errors | BXVA0001 : the validation fails.BXVA0002 : the validation process cannot be started.BXVA0003 : no XML Schema validator is available.
|
Examples |
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
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.
|
RelaxNG
RelaxNG validation will be available if Jing exists in the classpath. The latest version, jing-20091111.jar
, is included in the full distributions of BaseX.
validate:rng
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:
|
Errors | BXVA0001 : the validation fails.BXVA0002 : the validation process cannot be started.BXVA0003 : the RelaxNG validator is not available.
|
Examples |
|
validate:rng-info
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
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
- Added: validate:rng, validate:rng-info
- Added: dtd-report, xsd-report, validate:rng-report
- Version 7.6
- Added: validate:xsd-info, validate:dtd-info
The module was introduced with Version 7.3.