[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]
Subject: New draft of SRU schemas
I have spent some time looking carefully at the SRU
schema and corrected a number of errors. I haven't quite finished but as
I'm going to be away for awhile I'm posting what I have so far, and I think it's
fairly close.
The echoedRequestDefinition needed alot of work,
and I think it's ok now.
(Note: In case you are comparing this with the
previous version, I have changed "ComplexType" to "Definition"
globally for element and type names. I have been doing this for all my schemas -
MODS, etc.)
Thsi calls out the facetedResults,
searchResultAnalysis, xcql and diagnostic schemas from
the searchRetrieveResponseDefinition. We need to talk
about this.
The SRU and three supporting schemas are attached.
--Ray
|
<?xml version="1.0" encoding="UTF-8"?> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" attributeFormDefault="unqualified" xmlns="info:srw/xmlns/1/sru-searchResultAnalysis" targetNamespace="info:srw/xmlns/1/sru-searchResultAnalysis"> <!-- Root Declaration --> <xs:element name="searchResultAnalysis" type="searchResultAnalysisDefinition"/> <!-- End Root Declaration --> <!-- --> <!--searchResultAnalysisDefinition--> <xs:complexType name="searchResultAnalysisDefinition"> <xs:choice> <xs:element ref="datasource" maxOccurs="unbounded"/> <xs:element ref="subqueryResult" maxOccurs="unbounded"/> </xs:choice> </xs:complexType> <!-- datasourceDefinition --> <xs:complexType name="datasourceDefinition"> <xs:sequence> <xs:element ref="datasourceDisplayLabel" minOccurs="0"/> <xs:element ref="datasourceDescription" minOccurs="0"/> <xs:element ref="baseURL" minOccurs="0"/> <xs:element ref="subqueryResults"/> </xs:sequence> <xs:attribute name="full" type="fullDefinition"/> </xs:complexType> <!-- --> <!--subqueryResultsDefinition --> <xs:complexType name="subqueryResultsDefinition"> <xs:sequence> <xs:element ref="subqueryResult" maxOccurs="unbounded"/> </xs:sequence> </xs:complexType> <!-- subqueryResultDefinition --> <xs:complexType name="subqueryResultDefinition"> <xs:sequence> <xs:element ref="subqueryDisplayLabel" minOccurs="0"/> <xs:element ref="subquery"/> <xs:element ref="count"/> <xs:element ref="requestUrl" minOccurs="0"/> </xs:sequence> <xs:attribute name="full" type="fullDefinition"/> </xs:complexType> <!-- --> <xs:simpleType name="fullDefinition"> <xs:restriction base="xs:string"> <xs:enumeration value="true"/> </xs:restriction> </xs:simpleType> <!-- Element Declarations --> <!-- --> <xs:element name="baseURL" type="xs:string"/> <xs:element name="count" type="xs:integer"/> <xs:element name="datasource" type="datasourceDefinition"/> <xs:element name="datasourceDescription" type="xs:string"/> <xs:element name="datasourceDisplayLabel" type="xs:string"/> <xs:element name="requestUrl" type="xs:anyURI"/> <xs:element name="subquery" type="xs:string"/> <xs:element name="subqueryDisplayLabel" type="xs:string"/> <xs:element name="subqueryResult" type="subqueryResultDefinition"/> <xs:element name="subqueryResults" type="subqueryResultsDefinition"/> <!-- --> </xs:schema>
<?xml version="1.0" encoding="UTF-8"?> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" attributeFormDefault="unqualified" xmlns="info:srw/xmlns/1/sru-facetedResults" targetNamespace="info:srw/xmlns/1/sru-facetedResults"> <!-- Root Declaration --> <xs:element name="facetedResults" type="facetedResultsDefinition"/> <!-- End Root Declaration --> <!-- --> <!--facetedResultsDefinition--> <xs:complexType name="facetedResultsDefinition"> <xs:choice> <xs:element ref="datasource" maxOccurs="unbounded"/> <xs:element ref="facet" maxOccurs="unbounded"/> </xs:choice> </xs:complexType> <!-- datasourceDefinition --> <xs:complexType name="datasourceDefinition"> <xs:sequence> <xs:element ref="datasourceDisplayLabel" minOccurs="0"/> <xs:element ref="datasourceDescription" minOccurs="0"/> <xs:element ref="baseURL" minOccurs="0"/> <xs:element ref="facets"/> </xs:sequence> </xs:complexType> <!-- --> <!-- facetsDefinition --> <xs:complexType name="facetsDefinition"> <xs:sequence> <xs:element ref="facet" maxOccurs="unbounded"/> </xs:sequence> </xs:complexType> <!-- facetDefinition --> <xs:complexType name="facetDefinition"> <xs:sequence> <xs:element ref="facetDisplayLabel" minOccurs="0"/> <xs:element ref="facetDescription" minOccurs="0"/> <xs:element ref="index" minOccurs="0"/> <xs:element ref="relation" minOccurs="0"/> <xs:element ref="terms"/> </xs:sequence> </xs:complexType> <!-- termsDefinition--> <xs:complexType name="termsDefinition"> <xs:sequence> <xs:element ref="term" maxOccurs="unbounded"/> </xs:sequence> </xs:complexType> <!-- termDefinition--> <xs:complexType name="termDefinition"> <xs:sequence> <xs:element ref="actualTerm"/> <xs:element ref="query" minOccurs="0"/> <xs:element ref="requestUrl" minOccurs="0"/> <xs:element ref="count"/> </xs:sequence> </xs:complexType> <!-- --> <!-- --> <!-- Element Declarations --> <!-- --> <xs:element name="actualTerm" type="xs:string"/> <xs:element name="baseURL" type="xs:string"/> <xs:element name="count" type="xs:integer"/> <xs:element name="datasource" type="datasourceDefinition"/> <xs:element name="datasourceDescription" type="xs:string"/> <xs:element name="datasourceDisplayLabel" type="xs:string"/> <xs:element name="facet" type="facetDefinition"/> <xs:element name="facetBaseURL" type="xs:string"/> <xs:element name="facetDisplayLabel" type="xs:string"/> <xs:element name="facetDescription" type="xs:string"/> <xs:element name="facets" type="facetsDefinition"/> <xs:element name="index" type="xs:string"/> <xs:element name="term" type="termDefinition"/> <xs:element name="terms" type="termsDefinition"/> <xs:element name="query" type="xs:string"/> <xs:element name="relation" type="xs:string"/> <xs:element name="requestUrl" type="xs:anyURI"/> <!-- --> </xs:schema>
<?xml version="1.0" encoding="UTF-8"?> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" attributeFormDefault="unqualified" xmlns="info:srw/xmlns/1/sru-xcql" targetNamespace="info:srw/xmlns/1/sru-xcql"> <!-- root element --> <xs:element name="xcql" type="xcqlDefinition"/> <!-- ****** Major Definitions --> <!-- xcqlDefinition--> <xs:complexType name="xcqlDefinition"> <xs:sequence> <xs:element ref="prefixes" minOccurs="0"/> <xs:element ref="triple"/> <xs:element ref="sortKeys"/> </xs:sequence> </xs:complexType> <!-- prefixesDefinition--> <xs:complexType name="prefixesDefinition"> <xs:sequence> <xs:element ref="prefix" maxOccurs="unbounded"/> </xs:sequence> </xs:complexType> <!-- prefixDefinition--> <xs:complexType name="prefixDefinition"> <xs:sequence> <xs:element ref="name"/> <xs:element ref="identifier"/> </xs:sequence> </xs:complexType> <!-- tripleDefinition--> <xs:complexType name="tripleDefinition"> <xs:choice> <xs:element ref="searchClause"/> <xs:sequence> <xs:element ref="Boolean"/> <xs:element ref="leftOperand"/> <xs:element ref="rightOperand"/> </xs:sequence> </xs:choice> </xs:complexType> <!-- sortKeysDefinition --> <xs:complexType name="sortKeysDefinition"> <xs:sequence> <xs:element ref="key" maxOccurs="unbounded"/> </xs:sequence> </xs:complexType> <!-- ****** Subordinate Definitions --> <!-- BooleanPlusModifier--> <xs:complexType name="BooleanPlusModifier"> <xs:sequence> <xs:element name="value" type="BooleanValue"/> <xs:element ref="modifiers" minOccurs="0"/> </xs:sequence> </xs:complexType> <!-- BooleanValue--> <xs:simpleType name="BooleanValue"> <xs:restriction base="xs:string"> <xs:enumeration value="and"/> <xs:enumeration value="or"/> <xs:enumeration value="not"/> <xs:enumeration value="prox"/> </xs:restriction> </xs:simpleType> <!-- keyDefinition --> <xs:complexType name="keyDefinition"> <xs:sequence> <xs:element ref="index"/> <xs:element ref="modifiers"/> </xs:sequence> </xs:complexType> <!-- modifierDefinition --> <xs:complexType name="modifierDefinition"> <xs:sequence> <xs:element ref="type"/> <xs:sequence minOccurs="0"> <xs:element ref="comparison"/> <xs:element ref="value"/> </xs:sequence> </xs:sequence> </xs:complexType> <!-- modifiersDefinition --> <xs:complexType name="modifiersDefinition"> <xs:sequence> <xs:element ref="modifier" maxOccurs="unbounded"/> </xs:sequence> </xs:complexType> <!-- operandDefinition--> <xs:complexType name="operandDefinition"> <xs:choice> <xs:element ref="searchClause"/> <xs:element ref="triple"/> </xs:choice> </xs:complexType> <!-- searchClauseDefinition--> <xs:complexType name="searchClauseDefinition"> <xs:choice> <xs:element ref="term"/> <xs:sequence> <xs:element ref="index"/> <xs:element ref="relation"/> <xs:element ref="term"/> </xs:sequence> </xs:choice> </xs:complexType> <!-- valuePlusModifier --> <xs:complexType name="valuePlusModifier"> <xs:sequence> <xs:element ref="value"/> <xs:element ref="modifiers" minOccurs="0"/> </xs:sequence> </xs:complexType> <!-- *******element declarations --> <xs:element name="Boolean" type="BooleanPlusModifier"/> <xs:element name="comparison" type="xs:string"/> <xs:element name="identifier" type="xs:anyURI"/> <xs:element name="index" type="xs:string"/> <xs:element name="key" type="keyDefinition"/> <xs:element name="leftOperand" type="operandDefinition"/> <xs:element name="modifier" type="modifierDefinition"/> <xs:element name="modifiers" type="modifiersDefinition"/> <xs:element name="name" type="xs:string"/> <xs:element name="prefix" type="prefixDefinition"/> <xs:element name="prefixes" type="prefixesDefinition"/> <xs:element name="relation" type="valuePlusModifier"/> <xs:element name="rightOperand" type="operandDefinition"/> <xs:element name="searchClause" type="searchClauseDefinition"/> <xs:element name="sortKeys" type="sortKeysDefinition"/> <xs:element name="term" type="xs:string"/> <xs:element name="type" type="xs:string"/> <xs:element name="triple" type="tripleDefinition"/> <xs:element name="value" type="xs:string"/> <!-- --> </xs:schema>
<?xml version="1.0" encoding="UTF-8"?> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns="info:srw/xmlns/1/sru-2-0-response" targetNamespace="info:srw/xmlns/1/sru-2-0-response" xmlns:diag="info:srw/xmlns/1/sru-2-0-diagnostic" xmlns:facet="info:srw/xmlns/1/sru-facetedResults" xmlns:sra="info:srw/xmlns/1/sru-searchResultAnalysis" xmlns:xcql="info:srw/xmlns/1/sru-xcql" elementFormDefault="qualified" attributeFormDefault="unqualified"> <xs:import namespace="info:srw/xmlns/1/sru-2-0-diagnostic" schemaLocation="diagnostic.xsd"/> <xs:import namespace="info:srw/xmlns/1/sru-facetedResults" schemaLocation="facetedResults.xsd"/> <xs:import namespace="info:srw/xmlns/1/sru-searchResultAnalysis" schemaLocation="searchResultAnalysis.xsd"/> <xs:import namespace="info:srw/xmlns/1/sru-xcql" schemaLocation="xcql.xsd"/> <!-- *********** Root element declaration --> <xs:element name="searchRetrieveResponse" type="searchRetrieveResponseDefinition"/> <!-- ****************Main Type Definition: searchRetrieveResponseDefinition --> <xs:complexType name="searchRetrieveResponseDefinition"> <xs:sequence> <xs:element ref="numberOfRecords" minOccurs="0"/> <xs:element ref="resultCountPrecision" minOccurs="0"/> <xs:element ref="resultSetId" minOccurs="0"/> <xs:element ref="resultSetIdleTime" minOccurs="0"/> <xs:element ref="records" minOccurs="0"/> <xs:element ref="nextRecordPosition" minOccurs="0"/> <xs:element ref="echoedSearchRetrieveRequest" minOccurs="0"/> <xs:element ref="diagnostics" minOccurs="0"/> <xs:element ref="facetedResults" minOccurs="0"/> <xs:element ref="searchResultAnalysis" minOccurs="0"/> <xs:element ref="extraResponseData" minOccurs="0"/> </xs:sequence> </xs:complexType> <!-- **************** Auxiliary Type Definitions (in alphabetical order) --> <!-- diagnosticsDefinition --> <xs:complexType name="diagnosticsDefinition"> <xs:sequence> <xs:element ref="diag:diagnostic" maxOccurs="unbounded"/> </xs:sequence> </xs:complexType> <!-- echoedRequestDefinition --> <xs:complexType name="echoedRequestDefinition"> <xs:sequence> <xs:element ref="queryType" minOccurs="0"/> <xs:element ref="query" minOccurs="0"/> <xs:element ref="xQuery" minOccurs="0"/> <!-- need to fix this. Won't validate. --> <!-- "query" is a string representation, and xQuery is a structured (e.g. XML) representation, of the query --> <xs:element ref="startRecord" minOccurs="0"/> <xs:element ref="maximumRecords" minOccurs="0"/> <xs:element ref="recordPacking" minOccurs="0"/> <xs:element ref="recordSchema" minOccurs="0"/> <xs:element ref="facetParameter" minOccurs="0" maxOccurs="unbounded"/> <!-- one or more strings of form "facetParameter=value" --> <xs:element ref="resultSetTTL" minOccurs="0"/> <xs:element ref="sortKeys" minOccurs="0"/> <xs:element ref="xSortKeys" minOccurs="0"/> <!-- "sortKeys" is a string representation, and xsortKeys is a structured (e.g. XML) representation, of the sort keys --> <xs:element ref="stylesheet" minOccurs="0"/> <xs:element ref="rendering" minOccurs="0"/> <xs:element ref="extraRequestParameter" minOccurs="0" maxOccurs="unbounded"/> <xs:element ref="acceptParameter" minOccurs="0" maxOccurs="unbounded"/> </xs:sequence> </xs:complexType> <!-- extensionDefinition --> <xs:complexType name="extensionDefinition"> <xs:sequence> <xs:any processContents="lax" minOccurs="0" maxOccurs="unbounded"/> </xs:sequence> </xs:complexType> <!-- recordDefinition --> <xs:complexType name="recordDefinition"> <xs:sequence> <xs:element ref="recordSchema"/> <xs:element ref="recordPacking" minOccurs="0"/> <xs:element ref="recordData"/> <xs:element ref="recordPosition" minOccurs="0"/> <xs:element ref="extraRecordData" minOccurs="0"/> </xs:sequence> </xs:complexType> <!-- recordPackingDefinition --> <xs:simpleType name="recordPackingDefinition"> <xs:restriction base="xs:string"> <xs:enumeration value="string"/> <xs:enumeration value="xml"/> </xs:restriction> </xs:simpleType> <!-- recordsDefinition --> <xs:complexType name="recordsDefinition"> <xs:sequence> <xs:element ref="record" maxOccurs="unbounded"/> </xs:sequence> </xs:complexType> <!-- renderingDefinition --> <xs:simpleType name="renderingDefinition"> <xs:restriction base="xs:string"> <xs:enumeration value="client"/> <xs:enumeration value="server"/> </xs:restriction> </xs:simpleType> <!-- sortKeyDefinition --> <xs:complexType name="sortKeyDefinition"> <xs:sequence> <xs:element ref="path"/> <xs:element ref="schema" minOccurs="0"/> <xs:element ref="ascending" minOccurs="0"/> <xs:element ref="caseSensitive" minOccurs="0"/> <xs:element ref="missingValue" minOccurs="0"/> </xs:sequence> </xs:complexType> <!-- stringOrXmlFragmentDefinition --> <xs:complexType name="stringOrXmlFragmentDefinition" mixed="true"> <xs:sequence> <xs:any processContents="lax" minOccurs="0" maxOccurs="unbounded"/> </xs:sequence> </xs:complexType> <!-- xSortKeysDefinition --> <xs:complexType name="xSortKeysDefinition"> <xs:sequence> <xs:element ref="sortKey" maxOccurs="unbounded"/> </xs:sequence> </xs:complexType> <!-- ****************element declarations --> <xs:element name="acceptParameter" type="xs:string"/> <xs:element name="ascending" type="xs:boolean"/> <xs:element name="caseSensitive" type="xs:boolean"/> <xs:element name="diagnostics" type="diagnosticsDefinition"/> <xs:element name="displayTerm" type="xs:string"/> <xs:element name="echoedSearchRetrieveRequest" type="echoedRequestDefinition"/> <xs:element name="extraRecordData" type="extensionDefinition"/> <xs:element name="extraRequestData" type="extensionDefinition"/> <xs:element name="extraRequestParameter" type="xs:string"/> <xs:element name="extraResponseData" type="extensionDefinition"/> <xs:element name="extraTermData" type="extensionDefinition"/> <xs:element name="facetedResults" type="facet:facetedResultsDefinition"/> <xs:element name="facetParameter" type="xs:string"/> <xs:element name="maximumRecords" type="xs:nonNegativeInteger"/> <xs:element name="maximumTerms" type="xs:positiveInteger"/> <xs:element name="missingValue" type="xs:string"/> <xs:element name="nextRecordPosition" type="xs:positiveInteger"/> <xs:element name="numberOfRecords" type="xs:nonNegativeInteger"/> <xs:element name="path" type="xs:string"/> <xs:element name="queryType" type="xs:string"/> <xs:element name="query" type="xs:string"/> <xs:element name="record" type="recordDefinition"/> <xs:element name="recordData" type="stringOrXmlFragmentDefinition"/> <xs:element name="recordPacking" type="recordPackingDefinition"/> <xs:element name="recordPosition" type="xs:positiveInteger"/> <xs:element name="records" type="recordsDefinition"/> <xs:element name="recordSchema" type="xs:string"/> <xs:element name="rendering" type="renderingDefinition"/> <xs:element name="responsePosition" type="xs:nonNegativeInteger"/> <xs:element name="resultCountPrecision" type="xs:string"/> <xs:element name="resultSetId" type="xs:string"/> <xs:element name="resultSetIdleTime" type="xs:positiveInteger"/> <xs:element name="resultSetTTL" type="xs:nonNegativeInteger"/> <xs:element name="schema" type="xs:string"/> <xs:element name="searchResultAnalysis" type="sra:searchResultAnalysisDefinition"/> <xs:element name="sortKey" type="sortKeyDefinition"/> <xs:element name="sortKeys" type="xs:string"/> <xs:element name="startRecord" type="xs:positiveInteger" default="1"/> <xs:element name="stylesheet" type="xs:anyURI"/> <xs:element name="value" type="xs:string"/> <xs:element name="xQuery" type="xcql:xcqlDefinition"/> <!-- need to fix this. Won't validate. --> <xs:element name="xSortKeys" type="xSortKeysDefinition"/> <!-- --> </xs:schema>
[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]