Changes

Jump to navigation Jump to search
475 bytes added ,  15:31, 14 February 2019
no edit summary
=XML Schema Validation=
 
{{Mark|Updated with Version 9.2:}} Version argument was dropped (the latest version will always be used).
Checks whether an XML document validates against an XML Schema. The input document and the schema can be specified as:
If no schema is given, the input is expected to contain an {{Code|xsi:(noNamespace)schemaLocation}} attribute, as defined in [http://www.w3.org/TR/xmlschema-1/#xsi_schemaLocation W3C XML Schema].
Different XML Schema implementations can be applied for validationprocessors are supported* By default, the Java implementation of XML Schema 1.0 is used (it is based on an old version of Apache Xerces).* If [https://xerces.apache.org/xerces2-j Xerces2] exists in the classpath, it will be used instead. If you want to manually add Xerces2, you should download the [http://xerces.apache.org/mirrors.cgi#binary Xerces2 Java ..... (XML Schema 1.1) (Beta)] archive and copy at least four libraries ({{Code|cupv10k-runtime.jar}}, {{Code|org.eclipse.wst.xml.xpath2.processor_1.1.0.jar}}, {{Code|xercesImpl.jar}}, {{Code|xml-apis.jar}}) to the {{Code|lib}} directory of the full distribution of BaseX.* The [http://www.saxonica.com/ Saxon] Enterprise Edition ({{Code|saxon9ee.jar}}) is detected as well.
* By default, the '''Java implementation''' of XML Schema 1.0 is used (it is based on an old version of Apache Xerces).* The latest version of '''Xerces2''' provides implementations of XML Schema version can 1.0 and 1.1. The processor will be specified as well (applied if you download one of the [http://xerces.apache.org/mirrors.cgi#binary binary distributions] and copy the following libraries to the {{Code|lib/custom}} directory of the supplied string must be full distribution of BaseX:** {{Code|1org.eclipse.wst.xml.xpath2.processor_1.2.0.jar}}** {{Code|cupv10k-runtime.jar}}** {{Code|xercesImpl.jar}} or ** {{Code|1xml-apis.1jar}})* '''Saxon Enterprise Edition''' will be applied if you download the [https://www.saxonica. Please note that Version 1com/download/java.1 is only available xml ZIP release] and if Saxon EE or Xerces2 is added you copy {{Code|saxon9ee.jar}} and a valid license key to the classpath.
==validate:xsd==
|-
| width='120' | '''Signatures'''
|{{Func|validate:xsd|$input as item()|empty-sequence()}}<br />{{Func|validate:xsd|$input as item(), $schema as item()?|empty-sequence()}}<br />{{Func|validate:xsd|$input as item(), $schema as item()?, $version features as xs:stringmap(*)|empty-sequence()}}
|-
| '''Summary'''
|Validates the XML {{Code|$input}} document against a {{Code|$schema}}, using the specified processor-specific {{Code|$versionfeatures}} of XML Schema.
|-
| '''Errors'''
|{{Error|error|#Errors}} the validation fails.<br/>{{Error|init|#Errors}} the validation process cannot be started.<br/>{{Error|not-found|#Errors}} no XML Schema validator is available.<br/>{{Error|version|#Errors}} no validator is found for the specified version.
|-
| '''Examples'''
|
* {{Code|validate:xsd('doc.xml', 'doc.xsd')}} validates the Pass on document {{Code|doc.xml}} against the specified and schema {{Code|doc.xsd}}.* The following example demonstrates how a document can be validated against a schema without resorting to local or remote URIsas nodes:
<pre class="brush:xquery">
let $doc := <simple:root xmlns:simple='http://basex.org/simple'/>
</xs:schema>
return validate:xsd($doc, $schema)
</pre>
* Validate all documents of a database against the specified schema, using the supplied feature:
<pre class="brush:xquery">
for $city in db:open('cities')
return validate:xsd($city, 'city.xsd',
map { 'http://javax.xml.XMLConstants/feature/secure-processing': true() }
)
</pre>
|}
|-
| width='120' | '''Signatures'''
|{{Func|validate:xsd-info|$input as item()|xs:string*}}<br />{{Func|validate:xsd-info|$input as item(), $schema as item()?|xs:string*}}<br />{{Func|validate:xsd-info|$input as item(), $schema as item()?, $version features as xs:stringmap(*)|xs:string*}}
|-
| '''Summary'''
|Validates the XML {{Code|$input}} document against a {{Code|$schema}}, using the specified processor-specific {{Code|$versionfeatures}} of XML Schema, and returns warnings, errors and fatal errors in a string sequence.
|-
| '''Errors'''
|{{Error|init|#Errors}} the validation process cannot be started.<br/>{{Error|not-found|#Errors}} no XML Schema validator is available.<br/>{{Error|version|#Errors}} no validator is found for the specified version.
|}
|-
| 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)}}<br />{{Func|validate:xsd-report|$input as item(), $schema as xs:string?, $version features as xs:stringmap(*)|element(report)}}
|-
| '''Summary'''
|Validates the XML {{Code|$input}} document against a {{Code|$schema}}, using the specified processor-specific {{Code|$versionfeatures}} of XML Schema, and returns warnings, errors and fatal errors as XML.
|-
| '''Errors'''
|{{Error|init|#Errors}} the validation process cannot be started.<br/>{{Error|not-found|#Errors}} no XML Schema validator is available.<br/>|} ==validate:xsd-processor== {{Mark|Introduced with Version 9.2:}} {| width='100%'|-| width='120' | '''Signatures'''|{{ErrorFunc|validate:xsd-processor||xs:string}}|-| '''Summary'''|Returns the name of the applied XSD processor.|} ==validate:xsd-version== {{Mark|#ErrorsIntroduced with Version 9.2:}} no validator is found for  {| width='100%'|-| width='120' | '''Signatures'''|{{Func|validate:xsd-version||xs:string}}|-| '''Summary'''|Returns the specified supported versionof XSD Schema.
|}
|{{Code|not-found}}
|No validator is available.
|-
|{{Code|version}}
|No validator is found for the specified version.
|}
=Changelog=
 
;Version 9.2
 
* Added: [[#validate:xsd-processor|validate:xsd-processor]], [[#validate:xsd-version|validate:xsd-version]]
* Updated: [[#validate:xsd|validate:xsd]], [[#validate:xsd-info|validate:xsd-info]], [[#validate:xsd-report|validate:xsd-report]]: version argument was dropped (the latest version will always be used)
;Version 9.0
Bureaucrats, editor, reviewer, Administrators
13,550

edits

Navigation menu