Changes

Jump to navigation Jump to search
288 bytes added ,  06:52, 29 November 2019
no edit summary
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://xercesThe latest version of '''Xerces2''' provides implementations of XML Schema 1.0 and 1.apache1.org/xerces2-j Xerces2] exists in the classpath, it The processor will be used instead. If you want to manually add Xerces2, applied if you should download one of the [http://xerces.apache.org/mirrors.cgi#binary Xerces2 Java ..... (XML Schema 1.1) (Beta)binary distributions] archive and copy the four following libraries (to the {{Code|cupv10k-runtime.jarlib/custom}}, directory of the full distribution of BaseX:** {{Code|org.eclipse.wst.xml.xpath2.processor_1.2.0.jar}}, ** {{Code|xercesImplcupv10k-runtime.jar}}, ** {{Code|xml-apisxercesImpl.jar}}) to the ** {{Code|lib/customxml-apis.jar}} directory of the full distribution of BaseX.* The '''Saxon Enterprise Edition''' will be applied if you download the [httphttps://www.saxonica.com/ Saxondownload/java.xml ZIP release] Enterprise Edition (and if you copy {{Code|saxon9ee.jar}}) is suported as well. The XML Schema version can be specified as well (the supplied string must be {{Code|1.0}} or {{Code|1.1}}). Please note that Version 1.1 is only available if Saxon EE or Xerces2 is added 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== {| width='100%'|-| width='120' | '''Signatures'''|{{ErrorFunc|validate:xsd-processor||xs:string}}|-| '''Summary'''|Returns the name of the applied XSD processor.|} ==validate:xsd-version== {| width='100%'|-| width='120' | '''Signatures'''|{{Func|validate:xsd-version|#Errors|xs:string}} no validator is found for |-| '''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