Difference between revisions of "Validation Module"

From BaseX Documentation
Jump to navigation Jump to search
m (Text replace - "{|" to "{| width='100%'")
Line 15: Line 15:
 
|-
 
|-
 
| '''Summary'''
 
| '''Summary'''
|Validates the document specified by {{Code|$input}}.<br />
+
|Validates the document specified by {{Code|$input}}. Both {{Code|$input}} and {{Code|$schema}} can be  
Both {{Code|$input}} and {{Code|$schema}} may be  
 
 
* an {{Code|xs:string}}, containing the path to the resource,
 
* an {{Code|xs:string}}, containing the path to the resource,
 
* an {{Code|xs:string}}, containing the resource in its string representation, or
 
* an {{Code|xs:string}}, containing the resource in its string representation, or
Line 23: Line 22:
 
|-
 
|-
 
| '''Errors'''
 
| '''Errors'''
|{{Error|BXVA0001|#Errors}} the addressed document cannot be validated against the given schema.
+
|{{Error|BXVA0001|#Errors}} the validation process cannot be started or the validation fails.
 
|-
 
|-
 
| '''Examples'''
 
| '''Examples'''
Line 37: Line 36:
 
return validate:xsd($doc, $schema)
 
return validate:xsd($doc, $schema)
 
</pre>
 
</pre>
 +
|}
 +
 +
==validate:xsd-info==
 +
{| width='100%'
 +
|-
 +
| width='90' | '''Signatures'''
 +
|{{Func|validate:xsd-info|$input as item()|xs:string*}}<br />{{Func|validate:xsd-info|$input as item(), $schema as item()|xs:string*}}
 +
|-
 +
| '''Summary'''
 +
|Validates the document specified by {{Code|$input}} and returns warning, errors and fatal errors in a string sequence. Both {{Code|$input}} and {{Code|$schema}} can be
 +
* an {{Code|xs:string}}, containing the path to the resource,
 +
* an {{Code|xs:string}}, containing the resource in its string representation, or
 +
* a {{Code|node()}}, containing the resource itself.
 +
{{Code|$schema}} can be used to specify the schema for validation. If no schema is given, {{Code|$input}} is required to contain an {{Code|xsi:(noNamespace)schemaLocation}} as defined in [http://www.w3.org/TR/xmlschema-1/#xsi_schemaLocation W3C XML Schema].<br />
 +
|-
 +
| '''Errors'''
 +
|{{Error|BXVA0001|#Errors}} the validation process cannot be started.
 
|}
 
|}
  
Line 46: Line 62:
 
|-
 
|-
 
| '''Summary'''
 
| '''Summary'''
|Validates the document specified by {{Code|$input}}.<br />
+
|Validates the document specified by {{Code|$input}}. {{Code|$input}} can be  
{{Code|$input}} may be  
 
 
* an {{Code|xs:string}}, containing the path to the resource,
 
* an {{Code|xs:string}}, containing the path to the resource,
 
* an {{Code|xs:string}}, containing the resource in its string representation, or
 
* an {{Code|xs:string}}, containing the resource in its string representation, or
Line 54: Line 69:
 
|-
 
|-
 
| '''Errors'''
 
| '''Errors'''
|{{Error|BXVA0001|#Errors}} the addressed document cannot be validated against the given DTD.
+
|{{Error|BXVA0001|#Errors}} the validation process cannot be started or the validation fails.
 
|-
 
|-
 
| '''Examples'''
 
| '''Examples'''
Line 70: Line 85:
 
</pre>
 
</pre>
 
|-
 
|-
 +
|}
 +
 +
==validate:dtd-info==
 +
{| width='100%'
 +
|-
 +
| width='90' | '''Signatures'''
 +
|{{Func|validate:dtd-info|$input as item()|xs:string*}}<br />{{Func|validate:dtd-info|$input as item(), $dtd as xs:string|xs:string*}}
 +
|-
 +
| '''Summary'''
 +
|Validates the document specified by {{Code|$input}} and returns warning, errors and fatal errors in a string sequence. {{Code|$input}} can be
 +
* an {{Code|xs:string}}, containing the path to the resource,
 +
* an {{Code|xs:string}}, containing the resource in its string representation, or
 +
* a {{Code|node()}}, containing the resource itself.
 +
{{Code|$schema}} can be used to specify the DTD for validation. If no DTD is given, {{Code|$input}} is required to contain a DTD doctype declaration.<br />
 +
|-
 +
| '''Errors'''
 +
|{{Error|BXVA0001|#Errors}} the validation process cannot be started.
 
|}
 
|}
  

Revision as of 00:03, 30 January 2013

This XQuery Module contains functions to perform validations against XML Schema and Document Type Declarations. By default, this module uses Java’s standard validators. As an alternative, Saxon XSLT Processor is used if (saxon9he.jar, saxon9pe.jar or saxon9ee.jar) is added to the classpath.

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 can 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 validation process cannot be started or the validation fails.
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 the document specified by $input and returns warning, errors and fatal errors in a string sequence. Both $input and $schema can 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 validation process cannot be started.

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 can 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 validation process cannot be started or the validation fails.
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.'
}

validate:dtd-info

Signatures validate:dtd-info($input as item()) as xs:string*
validate:dtd-info($input as item(), $dtd as xs:string) as xs:string*
Summary Validates the document specified by $input and returns warning, errors and fatal errors in a string sequence. $input can 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 validation process cannot be started.

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.