| <?xml version="1.0" encoding="UTF-8" standalone="no"?> |
| <xs:schema xmlns:test="http://www.w3.org/2005/02/query-test-XQTSCatalog" xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" targetNamespace="http://www.w3.org/2005/02/query-test-XQTSCatalog"> |
| |
| |
| |
| <!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - --> |
| <!-- test-suite - top level element --> |
| <!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - --> |
| |
| <xs:element name="test-suite"> |
| <xs:annotation> |
| <xs:documentation> |
| This is the top level element for documents that use this schema. |
| </xs:documentation> |
| </xs:annotation> |
| |
| <xs:complexType> |
| <xs:sequence> |
| <xs:element ref="test:test-suite-info"/> |
| <xs:element ref="test:citations"/> |
| <xs:element ref="test:comparisons"/> |
| <xs:element ref="test:roles"/> |
| <xs:element ref="test:scenarios"/> |
| <xs:element ref="test:sources"/> |
| <xs:element ref="test:implementation-defined-items"/> |
| <xs:element ref="test:features"/> |
| <xs:element ref="test:context-properties"/> |
| <xs:element maxOccurs="unbounded" ref="test:test-group"/> |
| </xs:sequence> |
| |
| <xs:attribute name="CatalogDesignDate" type="xs:date" use="required"/> |
| |
| <!-- XQTS version --> |
| <xs:attribute name="version" type="xs:string" use="required"> |
| <xs:annotation> |
| <xs:documentation> |
| XQTS version |
| </xs:documentation> |
| </xs:annotation> |
| </xs:attribute> |
| |
| <!-- not used --> |
| <xs:attribute name="targetLanguage" type="test:targetLanguage" use="optional"> |
| <xs:annotation> |
| <xs:documentation> |
| not used |
| </xs:documentation> |
| </xs:annotation> |
| </xs:attribute> |
| |
| <!-- offset from XQTS root to source documents and schemas --> |
| <xs:attribute name="SourceOffsetPath" type="test:SimplifiedRelativeFilePath" use="required"> |
| <xs:annotation> |
| <xs:documentation> |
| offset from XQTS root to source documents and schemas |
| </xs:documentation> |
| </xs:annotation> |
| </xs:attribute> |
| |
| |
| <!-- offset from XQTS root to result documents --> |
| <xs:attribute name="ResultOffsetPath" type="test:SimplifiedRelativeFilePath" use="required"> |
| <xs:annotation> |
| <xs:documentation> |
| offset from XQTS root to result documents |
| </xs:documentation> |
| </xs:annotation> |
| </xs:attribute> |
| |
| |
| <!-- offset from XQTS root to XQuery expression files --> |
| <xs:attribute name="XQueryQueryOffsetPath" type="test:SimplifiedRelativeFilePath" use="required"> |
| <xs:annotation> |
| <xs:documentation> |
| offset from XQTS root to XQuery expression files |
| </xs:documentation> |
| </xs:annotation> |
| </xs:attribute> |
| |
| |
| <!-- offset from XQTS root to XQueryX documents --> |
| <xs:attribute name="XQueryXQueryOffsetPath" type="test:SimplifiedRelativeFilePath" use="required"> |
| <xs:annotation> |
| <xs:documentation> |
| offset from XQTS root to XQueryX documents |
| </xs:documentation> |
| </xs:annotation> |
| </xs:attribute> |
| |
| |
| <!-- file extension for XQuery expression files --> |
| <xs:attribute name="XQueryFileExtension" type="xs:string" use="required"> |
| <xs:annotation> |
| <xs:documentation> |
| file extension for XQuery expression files |
| </xs:documentation> |
| </xs:annotation> |
| </xs:attribute> |
| |
| |
| <!-- file extension for XQueryX documents --> |
| <xs:attribute name="XQueryXFileExtension" type="xs:string" use="required"> |
| <xs:annotation> |
| <xs:documentation> |
| file extension for XQueryX documents |
| </xs:documentation> |
| </xs:annotation> |
| </xs:attribute> |
| |
| </xs:complexType> |
| |
| <xs:unique name="unique-test-group"> |
| <xs:selector xpath=".//test:test-group"/> |
| <xs:field xpath="@name"/> |
| </xs:unique> |
| |
| <xs:unique name="unique-test-case"> |
| <xs:selector xpath=".//test:test-case"/> |
| <xs:field xpath="@name"/> |
| </xs:unique> |
| |
| |
| </xs:element> |
| |
| |
| <!-- targetLanguage type --> |
| |
| <xs:simpleType name="targetLanguage"> |
| <xs:restriction base="xs:string"> |
| <xs:enumeration value="XQuery"/> |
| <xs:enumeration value="XQueryX"/> |
| </xs:restriction> |
| </xs:simpleType> |
| |
| |
| <!-- SimplifiedRelativeFilePath type --> |
| |
| <xs:simpleType name="SimplifiedRelativeFilePath"> |
| <xs:restriction base="xs:anyURI"> |
| <xs:pattern value="([a-zA-Z0-9\-\.]+/)+"/> |
| </xs:restriction> |
| </xs:simpleType> |
| |
| |
| |
| <!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - --> |
| <!-- test-suite-info --> |
| <!-- --> |
| <!-- Identify the test suite. --> |
| <!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - --> |
| |
| <xs:element name="test-suite-info"> |
| <xs:annotation> |
| <xs:documentation> |
| Identify the test suite. |
| </xs:documentation> |
| </xs:annotation> |
| |
| <xs:complexType> |
| <xs:sequence> |
| <xs:element name="title" type="xs:string"/> |
| <xs:element minOccurs="0" name="description" type="xs:string"/> |
| </xs:sequence> |
| </xs:complexType> |
| </xs:element> |
| |
| |
| |
| <!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - --> |
| <!-- citations --> |
| <!-- --> |
| <!-- Identify each of the XQuery documents. --> |
| <!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - --> |
| |
| <xs:element name="citations"> |
| <xs:annotation> |
| <xs:documentation> |
| Identify each of the XQuery documents. |
| </xs:documentation> |
| </xs:annotation> |
| |
| <xs:complexType> |
| <xs:choice maxOccurs="unbounded"> |
| <xs:element maxOccurs="unbounded" name="citation-spec"> |
| <xs:complexType> |
| <xs:complexContent> |
| <xs:extension base="test:infoBase"> |
| <xs:sequence> |
| <xs:element name="spec-URI" type="xs:anyURI"/> |
| </xs:sequence> |
| <xs:attribute name="name" type="test:citation-spec-enum" use="required"/> |
| </xs:extension> |
| </xs:complexContent> |
| </xs:complexType> |
| </xs:element> |
| </xs:choice> |
| </xs:complexType> |
| |
| <xs:unique name="unique-citation-specs"> |
| <xs:selector xpath=".//test:citation-spec"/> |
| <xs:field xpath="@name"/> |
| </xs:unique> |
| |
| </xs:element> |
| |
| |
| |
| <!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - --> |
| <!-- comparisons --> |
| <!-- --> |
| <!-- Identify each of the comparisons that will be used in test cases. --> |
| <!-- --> |
| <!-- This is provided for the purpose of documentation and is not needed --> |
| <!-- by implementors. --> |
| <!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - --> |
| |
| <xs:element name="comparisons"> |
| <xs:annotation> |
| <xs:documentation> |
| Identify each of the comparisons that will be used in test cases. |
| This is provided for the purpose of documentation and is not needed by implementors. |
| </xs:documentation> |
| </xs:annotation> |
| |
| <xs:complexType> |
| <xs:sequence maxOccurs="unbounded"> |
| <xs:element maxOccurs="unbounded" name="comparison"> |
| <xs:complexType> |
| <xs:complexContent> |
| <xs:extension base="test:infoBase"> |
| <xs:attribute name="name" type="test:comparison-enum" use="required"/> |
| </xs:extension> |
| </xs:complexContent> |
| </xs:complexType> |
| </xs:element> |
| </xs:sequence> |
| </xs:complexType> |
| |
| <xs:unique name="unique-comparisons"> |
| <xs:selector xpath=".//test:comparison"/> |
| <xs:field xpath="@name"/> |
| </xs:unique> |
| |
| </xs:element> |
| |
| |
| |
| <!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - --> |
| <!-- roles --> |
| <!-- --> |
| <!-- Identify each of the roles that will be used in test cases. --> |
| <!-- --> |
| <!-- This is provided for the purpose of documentation and is not needed --> |
| <!-- by implementors. --> |
| <!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - --> |
| |
| <xs:element name="roles"> |
| <xs:annotation> |
| <xs:documentation> |
| Identify each of the roles that will be used in test cases. |
| This is provided for the purpose of documentation and is not needed by implementors. |
| </xs:documentation> |
| </xs:annotation> |
| |
| <xs:complexType> |
| <xs:sequence maxOccurs="unbounded"> |
| <xs:element name="role"> |
| <xs:complexType> |
| <xs:complexContent> |
| <xs:extension base="test:infoBase"> |
| <xs:attribute name="name" type="test:role-enum" use="required"/> |
| </xs:extension> |
| </xs:complexContent> |
| </xs:complexType> |
| </xs:element> |
| </xs:sequence> |
| </xs:complexType> |
| |
| <xs:unique name="unique-roles"> |
| <xs:selector xpath=".//test:role"/> |
| <xs:field xpath="@name"/> |
| </xs:unique> |
| |
| </xs:element> |
| |
| |
| |
| <!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - --> |
| <!-- scenarios --> |
| <!-- --> |
| <!-- Identify each of the scenarios that will be used in test cases. --> |
| <!-- --> |
| <!-- This is provided for the purpose of documentation and is not needed --> |
| <!-- by implementors. --> |
| <!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - --> |
| |
| <xs:element name="scenarios"> |
| <xs:annotation> |
| <xs:documentation> |
| Identify each of the scenarios that will be used in test cases. |
| This is provided for the purpose of documentation and is not needed by implementors. |
| </xs:documentation> |
| </xs:annotation> |
| |
| <xs:complexType> |
| <xs:sequence maxOccurs="unbounded"> |
| <xs:element name="scenario"> |
| <xs:complexType> |
| <xs:complexContent> |
| <xs:extension base="test:infoBase"> |
| <xs:attribute name="name" type="test:scenarios-enum" use="required"/> |
| </xs:extension> |
| </xs:complexContent> |
| </xs:complexType> |
| </xs:element> |
| </xs:sequence> |
| </xs:complexType> |
| |
| <xs:unique name="unique-scenarios"> |
| <xs:selector xpath=".//test:scenario"/> |
| <xs:field xpath="@name"/> |
| </xs:unique> |
| |
| </xs:element> |
| |
| |
| |
| <!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - --> |
| <!-- sources --> |
| <!-- --> |
| <!-- Identify each of the sources that will be used in test cases. --> |
| <!-- --> |
| <!-- Test cases will use these ID's to identify their source documents, --> |
| <!-- collections, schemas, and modules. --> |
| <!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - --> |
| |
| <xs:element name="sources"> |
| <xs:complexType> |
| <xs:annotation> |
| <xs:documentation> |
| Identify each of the sources that will be used in test cases. |
| Test cases will use these ID's to identify their source documents, collections, schemas, and modules. |
| </xs:documentation> |
| </xs:annotation> |
| |
| <xs:sequence maxOccurs="unbounded"> |
| <xs:element maxOccurs="unbounded" name="source"> |
| <xs:complexType> |
| <xs:complexContent> |
| <xs:extension base="test:infoBase"> |
| <xs:attribute name="ID" type="xs:ID" use="required"/> |
| <xs:attribute name="FileName" type="xs:anyURI" use="required"/> |
| <xs:attribute name="Creator" type="xs:string" use="required"/> |
| <xs:attribute name="schema" type="xs:IDREF" use="optional"/> |
| </xs:extension> |
| </xs:complexContent> |
| </xs:complexType> |
| </xs:element> |
| |
| <xs:element maxOccurs="unbounded" minOccurs="0" name="schema"> |
| <xs:complexType> |
| <xs:complexContent> |
| <xs:extension base="test:infoBase"> |
| <xs:attribute name="ID" type="xs:ID" use="required"/> |
| <xs:attribute name="uri" type="xs:anyURI" use="required"/> |
| <xs:attribute name="FileName" type="xs:anyURI" use="required"/> |
| </xs:extension> |
| </xs:complexContent> |
| </xs:complexType> |
| </xs:element> |
| |
| <xs:element maxOccurs="unbounded" minOccurs="0" name="collection"> |
| <xs:complexType> |
| <xs:complexContent> |
| <xs:extension base="test:infoBase"> |
| <xs:sequence> |
| <xs:element maxOccurs="unbounded" name="input-document"> |
| <xs:annotation> |
| <xs:documentation> |
| One or more input files that will be used by this query. |
| </xs:documentation> |
| </xs:annotation> |
| <xs:complexType> |
| <xs:simpleContent> |
| <xs:extension base="xs:IDREF"> |
| <!-- this attribute contains only principal-data --> |
| </xs:extension> |
| </xs:simpleContent> |
| </xs:complexType> |
| </xs:element> |
| </xs:sequence> |
| <xs:attribute name="ID" type="xs:ID" use="required"/> |
| <xs:attribute name="Creator" type="xs:string" use="required"/> |
| |
| </xs:extension> |
| </xs:complexContent> |
| </xs:complexType> |
| </xs:element> |
| |
| <xs:element maxOccurs="unbounded" minOccurs="0" name="module"> |
| <xs:complexType> |
| <xs:complexContent> |
| <xs:extension base="test:infoBase"> |
| <xs:attribute name="ID" type="xs:ID" use="required"/> |
| <xs:attribute name="FileName" type="xs:anyURI" use="required"/> |
| <xs:attribute name="Creator" type="xs:string" use="required"/> |
| </xs:extension> |
| </xs:complexContent> |
| </xs:complexType> |
| </xs:element> |
| </xs:sequence> |
| </xs:complexType> |
| </xs:element> |
| |
| |
| |
| <!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - --> |
| <!-- implementation-defined-items --> |
| <!-- --> |
| <!-- Identify each of the implementation-defined-items that occur in the --> |
| <!-- XQuery specifications. --> |
| <!-- --> |
| <!-- These item names will be used when an implementor submits his test --> |
| <!-- results. --> |
| <!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - --> |
| |
| <xs:element name="implementation-defined-items"> |
| <xs:annotation> |
| <xs:documentation> |
| Identify each of the implementation-defined-items that occur in the XQuery specifications. |
| These item names will be used when an implementor submits his test results. |
| </xs:documentation> |
| </xs:annotation> |
| |
| <xs:complexType> |
| <xs:sequence maxOccurs="unbounded"> |
| <xs:element maxOccurs="unbounded" name="implementation-defined-item"> |
| <xs:complexType> |
| <xs:complexContent> |
| <xs:extension base="test:infoBase"> |
| <xs:attribute name="name" type="xs:string" use="required"/> |
| <xs:attribute name="spec" type="test:citation-spec-enum" use="required"/> |
| </xs:extension> |
| </xs:complexContent> |
| </xs:complexType> |
| </xs:element> |
| </xs:sequence> |
| </xs:complexType> |
| |
| <xs:unique name="unique-implementation-defined-item"> |
| <xs:selector xpath=".//test:implementation-defined-item"/> |
| <xs:field xpath="@name"/> |
| </xs:unique> |
| |
| </xs:element> |
| |
| |
| |
| <!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - --> |
| <!-- features --> |
| <!-- --> |
| <!-- Identify each of the features that occur in the XQuery --> |
| <!-- specification. --> |
| <!-- --> |
| <!-- These feature names will be used when an implementor submits his --> |
| <!-- test results. --> |
| <!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - --> |
| |
| <xs:element name="features"> |
| <xs:annotation> |
| <xs:documentation> |
| Identify each of the features that occur in the XQuery specification. |
| These feature names will be used when an implementor submits his test results. |
| </xs:documentation> |
| </xs:annotation> |
| |
| <xs:complexType> |
| <xs:sequence maxOccurs="unbounded"> |
| <xs:element maxOccurs="unbounded" name="feature"> |
| <xs:complexType> |
| <xs:attribute name="name" type="xs:string" use="required"/> |
| </xs:complexType> |
| </xs:element> |
| </xs:sequence> |
| </xs:complexType> |
| |
| <xs:unique name="unique-feature"> |
| <xs:selector xpath=".//test:feature"/> |
| <xs:field xpath="@name"/> |
| </xs:unique> |
| |
| </xs:element> |
| |
| |
| |
| <!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - --> |
| <!-- context-properties --> |
| <!-- --> |
| <!-- Identify each of the properties that occur in the XQuery --> |
| <!-- specification. --> |
| <!-- --> |
| <!-- These feature names will be used when an implementor submits his --> |
| <!-- test results. --> |
| <!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - --> |
| |
| <xs:element name="context-properties"> |
| <xs:annotation> |
| <xs:documentation> |
| Identify each of the properties that occur in the XQuery specification. |
| These feature names will be used when an implementor submits his test results. |
| </xs:documentation> |
| </xs:annotation> |
| |
| <xs:complexType> |
| <xs:sequence maxOccurs="unbounded"> |
| <xs:element maxOccurs="unbounded" name="context-property"> |
| <xs:complexType> |
| <xs:attribute name="name" type="xs:string" use="required"/> |
| <xs:attribute name="context-type" use="required"> |
| <xs:simpleType> |
| <xs:restriction base="xs:string"> |
| <xs:enumeration value="static"/> |
| <xs:enumeration value="dynamic"/> |
| </xs:restriction> |
| </xs:simpleType> |
| </xs:attribute> |
| </xs:complexType> |
| </xs:element> |
| </xs:sequence> |
| </xs:complexType> |
| |
| <xs:unique name="unique-context-property"> |
| <xs:selector xpath=".//test:context-property"/> |
| <xs:field xpath="@name"/> |
| </xs:unique> |
| |
| </xs:element> |
| |
| |
| |
| <!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - --> |
| <!-- test-group --> |
| <!-- --> |
| <!-- Group of test cases and test groups. --> |
| <!-- --> |
| <!-- The grouping of the tests helps the XML Query WG organize its work --> |
| <!-- and is used when reporting our results. Implementors need only --> |
| <!-- execute the test contained in these groups. --> |
| <!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - --> |
| |
| <xs:element name="test-group"> |
| <xs:annotation> |
| <xs:documentation> |
| Group of test cases and test groups. |
| The grouping of the tests helps the XML Query WG organize its work |
| and is used when reporting our results. Implementors need only |
| execute the test contained in these groups. |
| </xs:documentation> |
| </xs:annotation> |
| |
| <xs:complexType> |
| <xs:sequence> |
| <xs:element name="GroupInfo" type="test:GroupInfo"/> |
| <xs:element maxOccurs="unbounded" minOccurs="0" name="test-case" type="test:test-case"> |
| <xs:unique name="unique-expected-error"> |
| <xs:selector xpath=".//test:expected-error"/> |
| <xs:field xpath="."/> |
| </xs:unique> |
| </xs:element> |
| |
| <xs:element maxOccurs="unbounded" minOccurs="0" ref="test:test-group"/> |
| </xs:sequence> |
| <xs:attribute name="name" type="xs:string" use="required"/> |
| <xs:attribute name="featureOwner" type="xs:string" use="optional"/> |
| <xs:attribute name="is-XPath2" type="xs:boolean" use="optional"/> |
| </xs:complexType> |
| </xs:element> |
| |
| |
| <!-- GroupInfo type --> |
| |
| <xs:complexType name="GroupInfo"> |
| <xs:sequence> |
| <xs:element name="title" type="xs:string"/> |
| <xs:element name="description" type="test:description"/> |
| <xs:element maxOccurs="unbounded" minOccurs="0" name="note" type="xs:string"/> |
| </xs:sequence> |
| </xs:complexType> |
| |
| |
| |
| <!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - --> |
| <!-- test-case --> |
| <!-- --> |
| <!-- A test case to be run. --> |
| <!-- --> |
| <!-- All test cases that are not parse-error's are provided in both --> |
| <!-- XQuery and XQueryX formats. An implementor should use the --> |
| <!-- appropriate path offsets and file extensions to locate each version. --> |
| <!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - --> |
| |
| <xs:complexType name="test-case"> |
| <xs:annotation> |
| <xs:documentation> |
| A test case to be run. |
| All test cases that are not parse-error's are provided in both |
| XQuery and XQueryX formats. An implementor should use the |
| appropriate path offsets and file extensions to locate each version. |
| </xs:documentation> |
| |
| <xs:documentation> |
| The filename for this query can be constructed from: |
| the XQueryQueryOffsetPath or XQueryXQueryOffsetPath, the FilePath, |
| the name, the XQueryFileExtension or XQueryXFileExtension |
| </xs:documentation> |
| </xs:annotation> |
| |
| <xs:sequence> |
| <xs:element name="description" type="test:description"/> |
| <xs:element maxOccurs="unbounded" minOccurs="0" name="note" type="xs:string"/> |
| |
| <!-- Identify the parts of the XQuery specifications that are --> |
| <!-- being tested --> |
| |
| <xs:element maxOccurs="unbounded" minOccurs="0" name="spec-citation"> |
| <xs:annotation> |
| <xs:documentation> |
| Identify the parts of the XQuery specifications that are being tested. |
| </xs:documentation> |
| </xs:annotation> |
| <xs:complexType> |
| <xs:simpleContent> |
| <xs:extension base="xs:string"> |
| <xs:attribute name="section-number" type="xs:string" use="required"/> |
| <xs:attribute name="spec" type="test:citation-spec-enum" use="required"/> |
| <xs:attribute name="section-title" type="xs:string" use="required"/> |
| <xs:attribute name="section-pointer" type="xs:string" use="required"/> |
| </xs:extension> |
| </xs:simpleContent> |
| </xs:complexType> |
| </xs:element> |
| |
| <!-- Description of the query --> |
| |
| <xs:element name="query"> |
| <xs:annotation> |
| <xs:documentation> |
| Description of the query. |
| </xs:documentation> |
| </xs:annotation> |
| |
| <xs:complexType> |
| <xs:sequence> |
| <xs:element minOccurs="0" name="description" type="test:description"/> |
| <xs:element maxOccurs="unbounded" minOccurs="0" name="note" type="xs:string"/> |
| </xs:sequence> |
| |
| <!-- This name is always equal to the name of the test case --> |
| <xs:attribute name="name" type="xs:string" use="required"> |
| <xs:annotation> |
| <xs:documentation> |
| This name is always equal to the name of the test case. |
| </xs:documentation> |
| </xs:annotation> |
| </xs:attribute> |
| <xs:attribute name="date" type="xs:date" use="required"/> |
| </xs:complexType> |
| </xs:element> |
| |
| <!-- Zero or more modules that will be used by this query --> |
| |
| <xs:element maxOccurs="unbounded" minOccurs="0" name="module"> |
| <xs:annotation> |
| <xs:documentation> |
| Zero or more modules that will be used by this query. |
| </xs:documentation> |
| </xs:annotation> |
| <xs:complexType> |
| <xs:simpleContent> |
| <xs:extension base="xs:IDREF"> |
| <xs:attribute name="namespace" type="xs:anyURI" use="required"/> |
| </xs:extension> |
| </xs:simpleContent> |
| </xs:complexType> |
| </xs:element> |
| |
| <!-- Zero or more input files that will be used by this query --> |
| |
| <xs:element maxOccurs="unbounded" minOccurs="0" name="input-file"> |
| <xs:annotation> |
| <xs:documentation> |
| One or more input files that will be used by this query. |
| </xs:documentation> |
| </xs:annotation> |
| <xs:complexType> |
| <xs:simpleContent> |
| <xs:extension base="xs:IDREF"> |
| <!-- this attribute contains only principal-data --> |
| <xs:attribute name="role" type="test:role-enum" use="required"> |
| <xs:annotation> |
| <xs:documentation> |
| this attribute contains only principal-data |
| </xs:documentation> |
| </xs:annotation> |
| </xs:attribute> |
| <xs:attribute name="variable" type="xs:string" use="required"/> |
| </xs:extension> |
| </xs:simpleContent> |
| </xs:complexType> |
| </xs:element> |
| |
| <!-- Zero or more input URIs that will be used by this query --> |
| |
| <xs:element maxOccurs="unbounded" minOccurs="0" name="input-URI"> |
| <xs:annotation> |
| <xs:documentation> |
| One or more input URIs that will be used by this query. |
| </xs:documentation> |
| </xs:annotation> |
| <xs:complexType> |
| <xs:simpleContent> |
| <xs:extension base="xs:IDREF"> |
| <!-- this attribute contains only principal-data --> |
| <xs:attribute name="role" type="test:role-enum" use="required"> |
| <xs:annotation> |
| <xs:documentation> |
| this attribute contains only principal-data |
| </xs:documentation> |
| </xs:annotation> |
| </xs:attribute> |
| <xs:attribute name="variable" type="xs:string" use="required"/> |
| </xs:extension> |
| </xs:simpleContent> |
| </xs:complexType> |
| </xs:element> |
| |
| <!-- Zero or one default collections that will be used by this query --> |
| |
| <xs:element maxOccurs="1" minOccurs="0" name="defaultCollection"> |
| <xs:annotation> |
| <xs:documentation> |
| Zero or one default collection that will be used by this query. |
| </xs:documentation> |
| </xs:annotation> |
| <xs:complexType> |
| <xs:simpleContent> |
| <xs:extension base="xs:IDREF"> |
| <!-- this attribute contains only principal-data --> |
| <xs:attribute name="role" type="test:role-enum" use="required"> |
| <xs:annotation> |
| <xs:documentation> |
| this attribute contains only principal-data |
| </xs:documentation> |
| </xs:annotation> |
| </xs:attribute> |
| </xs:extension> |
| </xs:simpleContent> |
| </xs:complexType> |
| </xs:element> |
| |
| <!-- Zero or one context nodes that will be used by this query --> |
| |
| <xs:element maxOccurs="1" minOccurs="0" name="contextItem"> |
| <xs:annotation> |
| <xs:documentation> |
| Zero or one context item that will be used by this query. |
| </xs:documentation> |
| </xs:annotation> |
| <xs:complexType> |
| <xs:simpleContent> |
| <xs:extension base="xs:IDREF"> |
| <!-- this attribute contains only principal-data --> |
| <xs:attribute name="role" type="test:role-enum" use="required"> |
| <xs:annotation> |
| <xs:documentation> |
| this attribute contains only principal-data |
| </xs:documentation> |
| </xs:annotation> |
| </xs:attribute> |
| </xs:extension> |
| </xs:simpleContent> |
| </xs:complexType> |
| </xs:element> |
| |
| <!-- Zero or more input queries that will be used to bind values to --> |
| <!-- external variables --> |
| |
| <xs:element maxOccurs="unbounded" minOccurs="0" name="input-query"> |
| <xs:annotation> |
| <xs:documentation> |
| Zero or more input queries that will be used to bind values to |
| external variables. |
| </xs:documentation> |
| </xs:annotation> |
| <xs:complexType> |
| <xs:sequence> |
| <xs:element minOccurs="0" name="description" type="test:description"/> |
| <xs:element maxOccurs="unbounded" minOccurs="0" name="note" type="xs:string"/> |
| </xs:sequence> |
| <xs:attribute name="variable" type="xs:string" use="required"/> |
| <xs:attribute name="name" type="xs:string" use="required"/> |
| <xs:attribute name="date" type="xs:date" use="required"/> |
| </xs:complexType> |
| </xs:element> |
| |
| <!-- Zero or more files containing expected results for this query --> |
| |
| <xs:element maxOccurs="unbounded" minOccurs="0" name="output-file"> |
| <xs:annotation> |
| <xs:documentation> |
| Zero or more files containing expected results for this query. |
| </xs:documentation> |
| </xs:annotation> |
| <xs:complexType> |
| <xs:simpleContent> |
| <xs:extension base="xs:string"> |
| <xs:attribute name="role" type="test:role-enum" use="required"/> |
| <xs:attribute name="compare" type="test:comparison-enum" use="required"/> |
| |
| <!-- can identify a results as being specific to typed or untyped --> |
| <!-- documents --> |
| |
| <xs:attribute name="input-document" type="test:input-document-enum" use="optional"> |
| <xs:annotation> |
| <xs:documentation> |
| can identify a results as being specific to typed or untyped documents |
| </xs:documentation> |
| </xs:annotation> |
| </xs:attribute> |
| |
| </xs:extension> |
| </xs:simpleContent> |
| </xs:complexType> |
| </xs:element> |
| |
| |
| <!-- Zero or more expected errors for this query --> |
| |
| <xs:element maxOccurs="unbounded" minOccurs="0" name="expected-error"> |
| <xs:annotation> |
| <xs:documentation> |
| Zero or more expected errors for this query. |
| </xs:documentation> |
| </xs:annotation> |
| |
| <xs:complexType> |
| <xs:simpleContent> |
| <xs:extension base="test:XQueryErrorCode"> |
| |
| <!-- can identify an error as being specific to typed or untyped --> |
| <!-- documents --> |
| |
| <xs:attribute name="input-document" type="test:input-document-enum" use="optional"> |
| <xs:annotation> |
| <xs:documentation> |
| can identify an error as being specific to typed or untyped documents |
| </xs:documentation> |
| </xs:annotation> |
| </xs:attribute> |
| |
| </xs:extension> |
| </xs:simpleContent> |
| </xs:complexType> |
| </xs:element> |
| |
| </xs:sequence> |
| |
| <!-- The filename for this query can be constructed from: --> |
| <!-- the XQueryQueryOffsetPath or XQueryXQueryOffsetPath --> |
| <!-- the FilePath --> |
| <!-- the name --> |
| <!-- the XQueryFileExtension or XQueryXFileExtension --> |
| |
| <xs:attribute name="name" type="xs:string" use="required"/> |
| <xs:attribute name="FilePath" type="test:SimplifiedRelativeFilePath" use="required"/> |
| <xs:attribute name="scenario" type="test:scenarios-enum" use="required"/> |
| <xs:attribute name="Creator" type="xs:string" use="required"/> |
| <xs:attribute name="version-drop" type="xs:date"> |
| <xs:annotation> |
| <xs:documentation> |
| not being used |
| </xs:documentation> |
| </xs:annotation> |
| </xs:attribute> |
| <!-- identify tests that are applicable to XPath 2.0 --> |
| <xs:attribute name="is-XPath2" type="xs:boolean" use="optional"> |
| <xs:annotation> |
| <xs:documentation> |
| identify tests that are applicable to XPath 2.0 |
| </xs:documentation> |
| </xs:annotation> |
| </xs:attribute> |
| </xs:complexType> |
| |
| |
| |
| <!-- citation-spec-enum type --> |
| <!-- Identify the document being cited --> |
| |
| <xs:simpleType name="citation-spec-enum"> |
| <xs:annotation> |
| <xs:documentation> |
| Identify the document being cited. |
| </xs:documentation> |
| </xs:annotation> |
| |
| <xs:restriction base="xs:string"> |
| <xs:enumeration value="XQuery"/> |
| <xs:enumeration value="FuncOps"/> |
| <xs:enumeration value="DataModel"/> |
| <xs:enumeration value="FormalSemantics"/> |
| <xs:enumeration value="SchemaPart2"/> |
| <xs:enumeration value="Schema-Errata"/> |
| <xs:enumeration value="UseCases"/> |
| <xs:enumeration value="Serialization"/> |
| <xs:enumeration value="XQueryX"/> |
| </xs:restriction> |
| </xs:simpleType> |
| |
| |
| <!-- comparison-enum type --> |
| <!-- Identify the type of comparison used to determine whether an --> |
| <!-- expected result and an actual result match. --> |
| |
| <xs:simpleType name="comparison-enum"> |
| <xs:annotation> |
| <xs:documentation> |
| Identify the type of comparison used to determine whether an |
| expected result and an actual result match. |
| </xs:documentation> |
| </xs:annotation> |
| |
| <xs:restriction base="xs:string"> |
| <xs:enumeration value="XML"/> |
| <xs:enumeration value="Fragment"/> |
| <xs:enumeration value="Text"/> |
| <xs:enumeration value="Inspect"/> |
| <xs:enumeration value="Ignore"/> |
| </xs:restriction> |
| </xs:simpleType> |
| |
| |
| <!-- role-enum type --> |
| <!-- Identify how a document is being used. --> |
| |
| <xs:simpleType name="role-enum"> |
| <xs:annotation> |
| <xs:documentation> |
| Identify how a document is being used. |
| </xs:documentation> |
| </xs:annotation> |
| |
| <xs:restriction base="xs:string"> |
| <xs:enumeration value="principal-data"/> |
| <xs:enumeration value="supplemental-data"/> |
| <xs:enumeration value="schema"/> |
| <xs:enumeration value="principal"/> |
| <xs:enumeration value="console-log"/> |
| <xs:enumeration value="dtd"/> |
| </xs:restriction> |
| </xs:simpleType> |
| |
| |
| <!-- scenarios-enum type --> |
| <!-- Identify whether a test should execute normally, cause a parse --> |
| <!-- error, or cause a runtime error. --> |
| |
| <xs:simpleType name="scenarios-enum"> |
| <xs:annotation> |
| <xs:documentation> |
| Identify whether a test should execute normally, cause a parse |
| error, or cause a runtime error. |
| </xs:documentation> |
| </xs:annotation> |
| |
| <xs:restriction base="xs:string"> |
| <xs:enumeration value="standard"/> |
| <xs:enumeration value="parse-error"/> |
| <xs:enumeration value="runtime-error"/> |
| <xs:enumeration value="trivial"/> |
| </xs:restriction> |
| </xs:simpleType> |
| |
| |
| <!-- input-document-enum type --> |
| <!-- Identify expected results that are specific to either typed or --> |
| <!-- untyped input documents. --> |
| |
| <xs:simpleType name="input-document-enum"> |
| <xs:annotation> |
| <xs:documentation> |
| Identify expected results that are specific to either typed or |
| untyped input documents. |
| </xs:documentation> |
| </xs:annotation> |
| |
| <xs:restriction base="xs:string"> |
| <xs:enumeration value="typed"/> |
| <xs:enumeration value="untyped"/> |
| </xs:restriction> |
| </xs:simpleType> |
| |
| |
| <!-- description type --> |
| |
| <xs:complexType name="description"> |
| <xs:simpleContent> |
| <xs:extension base="xs:string"> |
| <xs:attribute name="last-mod" type="xs:date"/> |
| </xs:extension> |
| </xs:simpleContent> |
| </xs:complexType> |
| |
| |
| <!-- XQueryErrorCode type --> |
| <!-- * is used to mean that any error code is acceptable --> |
| |
| <xs:simpleType name="XQueryErrorCode"> |
| <xs:annotation> |
| <xs:documentation> |
| * is used to mean that any error code is acceptable |
| </xs:documentation> |
| </xs:annotation> |
| |
| <xs:restriction base="xs:string"> |
| <xs:pattern value="\*|([A-Z]{4}[0-9]{4})"/> |
| </xs:restriction> |
| </xs:simpleType> |
| |
| |
| <!-- infoBase type --> |
| |
| <xs:complexType name="infoBase"> |
| <xs:sequence> |
| <xs:element name="description" type="test:description"/> |
| <xs:element maxOccurs="unbounded" minOccurs="0" name="note" type="xs:string"/> |
| </xs:sequence> |
| </xs:complexType> |
| |
| |
| </xs:schema> |