Difference between revisions of "Validation Module"
Jump to navigation
Jump to search
| Line 13: | Line 13: | ||
==validate:dtd== | ==validate:dtd== | ||
| + | |||
{| width='100%' | {| width='100%' | ||
|- | |- | ||
| width='120' | '''Signatures''' | | width='120' | '''Signatures''' | ||
| − | |{{Func|validate:dtd|$input as item()|empty-sequence()}}<br />{{Func|validate:dtd|$input as item(), $ | + | |{{Func|validate:dtd|$input as item()|empty-sequence()}}<br />{{Func|validate:dtd|$input as item(), $schema as xs:string|empty-sequence()}} |
|- | |- | ||
| '''Summary''' | | '''Summary''' | ||
| Line 35: | Line 36: | ||
try { | try { | ||
let $doc := <invalid/> | let $doc := <invalid/> | ||
| − | let $ | + | let $schema := '<!ELEMENT root (#PCDATA)>' |
| − | return validate:dtd($doc, $ | + | return validate:dtd($doc, $schema) |
} catch bxerr:BXVA0001 { | } catch bxerr:BXVA0001 { | ||
'DTD Validation failed.' | 'DTD Validation failed.' | ||
| Line 49: | Line 50: | ||
|- | |- | ||
| width='120' | '''Signatures''' | | width='120' | '''Signatures''' | ||
| − | |{{Func|validate:dtd-info|$input as item()|xs:string*}}<br />{{Func|validate:dtd-info|$input as item(), $ | + | |{{Func|validate:dtd-info|$input as item()|xs:string*}}<br />{{Func|validate:dtd-info|$input as item(), $schema as xs:string|xs:string*}} |
| + | |- | ||
| + | | '''Summary''' | ||
| + | |Validates a document and returns warnings, errors and fatal errors in a string sequence. See [[#validate:dtd|validate:dtd]] for more details on the function arguments. | ||
| + | |- | ||
| + | | '''Errors''' | ||
| + | |{{Error|BXVA0002|#Errors}} the validation process cannot be started. | ||
| + | |} | ||
| + | |||
| + | ==validate:dtd-report== | ||
| + | |||
| + | {| width='100%' | ||
| + | |- | ||
| + | | width='120' | '''Signatures''' | ||
| + | |{{Func|validate:dtd-report|$input as item()|element(report)}}<br />{{Func|validate:dtd-report|$input as item(), $schema as xs:string|element(report)}} | ||
|- | |- | ||
| '''Summary''' | | '''Summary''' | ||
| − | |Validates | + | |Validates a document and returns warnings, errors and fatal errors as XML. See [[#validate:dtd|validate:dtd]] for more details on the function arguments. |
| − | |||
| − | |||
| − | |||
| − | |||
|- | |- | ||
| '''Errors''' | | '''Errors''' | ||
| Line 101: | Line 112: | ||
|- | |- | ||
| '''Summary''' | | '''Summary''' | ||
| − | |Validates | + | |Validates a document and returns warnings, errors and fatal errors in a string sequence. See [[#validate:xsd|validate:xsd]] for more details on the function arguments. |
| − | + | |- | |
| − | + | | '''Errors''' | |
| − | + | |{{Error|BXVA0002|#Errors}} the validation process cannot be started. | |
| − | {{ | + | |} |
| + | |||
| + | ==validate:xsd-report== | ||
| + | |||
| + | {| width='100%' | ||
| + | |- | ||
| + | | width='120' | '''Signatures''' | ||
| + | |{{Func|validate:xsd-report|$input as item()|element(report)}}<br />{{Func|validate:xsd-report|$input as item(), $schema as xs:string|element(report)}} | ||
| + | |- | ||
| + | | '''Summary''' | ||
| + | |Validates a document and returns warnings, errors and fatal errors as XML. See [[#validate:xsd|validate:xsd]] for more details on the function arguments. | ||
|- | |- | ||
| '''Errors''' | | '''Errors''' | ||
| Line 144: | Line 165: | ||
|- | |- | ||
| '''Summary''' | | '''Summary''' | ||
| − | |Validates | + | |Validates a document and returns warnings, errors and fatal errors in a string sequence. See [[#validate:rng|validate:rng]] for more details on the function arguments. |
| − | |||
| − | |||
| − | |||
|- | |- | ||
| '''Errors''' | | '''Errors''' | ||
|{{Error|BXVA0002|#Errors}} the validation process cannot be started.<br/>{{Error|BXVA0003|#Errors}} the RelaxNG validator is not available. | |{{Error|BXVA0002|#Errors}} the validation process cannot be started.<br/>{{Error|BXVA0003|#Errors}} the RelaxNG validator is not available. | ||
| + | |} | ||
| + | |||
| + | ==validate:rng-report== | ||
| + | |||
| + | {| width='100%' | ||
| + | |- | ||
| + | | width='120' | '''Signatures''' | ||
| + | |{{Func|validate:rng-report|$input as item(), $schema as xs:string|element(report)}}<br />{{Func|validate:rng-report|$input as item(), $schema as xs:string, $compact as xs:boolean|element(report)}} | ||
| + | |- | ||
| + | | '''Summary''' | ||
| + | |Validates a document and returns warnings, errors and fatal errors as XML. See [[#validate:rng|validate:rng]] for more details on the function arguments. | ||
| + | |- | ||
| + | | '''Errors''' | ||
| + | |{{Error|BXVA0002|#Errors}} the validation process cannot be started. | ||
|} | |} | ||
| Line 173: | Line 205: | ||
;Version 8.3 | ;Version 8.3 | ||
* Added: [[#validate:rng|validate:rng]], [[#validate:rng-info|validate:rng-info]] | * Added: [[#validate:rng|validate:rng]], [[#validate:rng-info|validate:rng-info]] | ||
| + | * Added: [[#validate:dtd-report|dtd-report]], [[#validate:xsd-report|xsd-report]], [[#validate:rng-report|validate:rng-report]] | ||
;Version 7.6 | ;Version 7.6 | ||
Revision as of 16:54, 24 August 2015
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, orSaxonEE.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.
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
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.
|
| 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.
|
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.
|
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.
|
| 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.
|
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.
|
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.
|
Errors
| Code | Description |
|---|---|
BXVA0001
|
The document cannot be validated against the specified DTD or XML Schema. |
BXVA0002
|
The validation cannot be started. |
BXVA0003
|
No RelaxNG 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.