Difference between revisions of "Validation Module"

From BaseX Documentation
Jump to navigation Jump to search
m (Text replace - "{{Mono|" to "{{Code|")
Line 3: Line 3:
 
=Conventions=
 
=Conventions=
  
All functions in this module are assigned to the <code>http://basex.org/modules/validate</code> namespace, which is statically bound to the <code>validate</code> prefix.<br/>
+
All functions in this module are assigned to the {{Code|http://basex.org/modules/validate}} namespace, which is statically bound to the {{Code|validate}} prefix.<br/>
All errors are assigned to the <code>http://basex.org/errors</code> namespace, which is statically bound to the <code>bxerr</code> prefix.
+
All errors are assigned to the {{Code|http://basex.org/errors}} namespace, which is statically bound to the {{Code|bxerr}} prefix.
  
 
=Functions=
 
=Functions=
Line 12: Line 12:
 
|-
 
|-
 
| width='90' | '''Signatures'''
 
| width='90' | '''Signatures'''
|<code><b>validate:xsd</b>($input as item()) as empty-sequence()</code><br /><code><b>validate:xsd</b>($input as item(), $schema as item()) as empty-sequence()</code>
+
|{{Func|validate:xsd|$input as item()|empty-sequence()}}<br />{{Func|validate:xsd|$input as item(), $schema as item()|empty-sequence()}}
 
|-
 
|-
 
| '''Summary'''
 
| '''Summary'''
|Validates the document specified by <code>$input</code>.<br />
+
|Validates the document specified by {{Code|$input}}.<br />
Both <code>$input</code> and <code>$schema</code> may be  
+
Both {{Code|$input}} and {{Code|$schema}} may be  
* an <code>xs:string</code>, containing the path to the resource,
+
* an {{Code|xs:string}}, containing the path to the resource,
* an <code>xs:string</code>, containing the resource in its string representation, or
+
* an {{Code|xs:string}}, containing the resource in its string representation, or
* a <code>node()</code>, containing the resource itself.
+
* a {{Code|node()}}, containing the resource itself.
<code>$schema</code> can be used to specify the schema for validation. If no schema is given, <code>$input</code> is required to contain an <code>xsi:(noNamespace)schemaLocation</code> as defined in [http://www.w3.org/TR/xmlschema-1/#xsi_schemaLocation W3C XML Schema].<br />
+
{{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'''
 
| '''Errors'''
|'''[[XQuery Errors#Functions Errors|BXVA0001]]''' is raised if the addressed document cannot be validated against the given schema.
+
|{{Error|BXVA0001|XQuery Errors#Functions Errors}} the addressed document cannot be validated against the given schema.
 
|-
 
|-
 
| '''Examples'''
 
| '''Examples'''
 
|
 
|
* <code>validate:xsd('doc.xml', 'doc.xsd')</code> validates the document {{Code|doc.xm}} against the specified schema {{Code|doc.xsd}}.
+
* {{Code|validate:xsd('doc.xml', 'doc.xsd')}} validates the document {{Code|doc.xm}} against the specified schema {{Code|doc.xsd}}.
 
* The following example demonstrates how a document can be validated against a schema without resorting to local or remote URIs:
 
* The following example demonstrates how a document can be validated against a schema without resorting to local or remote URIs:
 
<pre class="brush:xquery">
 
<pre class="brush:xquery">
Line 43: Line 43:
 
|-
 
|-
 
| width='90' | '''Signatures'''
 
| width='90' | '''Signatures'''
|<code><b>validate:dtd</b>($input as item()) as empty-sequence()</code><br /><code><b>validate:dtd</b>($input as item(), $dtd as xs:string) as empty-sequence()</code>
+
|{{Func|validate:dtd|$input as item()|empty-sequence()}}<br />{{Func|validate:dtd|$input as item(), $dtd as xs:string|empty-sequence()}}
 
|-
 
|-
 
| '''Summary'''
 
| '''Summary'''
|Validates the document specified by <code>$input</code>.<br />
+
|Validates the document specified by {{Code|$input}}.<br />
<code>$input</code> may be  
+
{{Code|$input}} may be  
* an <code>xs:string</code>, containing the path to the resource,
+
* an {{Code|xs:string}}, containing the path to the resource,
* an <code>xs:string</code>, containing the resource in its string representation, or
+
* an {{Code|xs:string}}, containing the resource in its string representation, or
* a <code>node()</code>, containing the resource itself.
+
* a {{Code|node()}}, containing the resource itself.
<code>$schema</code> can be used to specify the DTD for validation. If no DTD is given, <code>$input</code> is required to contain a DTD doctype declaration.<br />
+
{{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'''
 
| '''Errors'''
|'''[[XQuery Errors#Functions Errors|BXVA0001]]''' is raised if the addressed document cannot be validated against the given DTD.
+
|{{Error|BXVA0001|XQuery Errors#Functions Errors}} the addressed document cannot be validated against the given DTD.
 
|-
 
|-
 
|}
 
|}
Line 64: Line 64:
 
! width="95%"|Description
 
! width="95%"|Description
 
|-
 
|-
|<code>BXVA0001</code>
+
|{{Code|BXVA0001}}
 
|A document cannot be validated against the specified DTD or XML Schema.
 
|A document cannot be validated against the specified DTD or XML Schema.
 
|}
 
|}

Revision as of 16:17, 26 May 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.xm 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.

Errors

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

Changelog

The module was introduced with Version 7.2.2.