[tdwg-tapir] Schema modification: r555 - trunk/protocol
tdwg-tapir at lists.tdwg.org
tdwg-tapir at lists.tdwg.org
Mon Sep 11 11:20:57 CEST 2006
Author: markus
Date: 2006-09-11 11:20:56 +0200 (Mon, 11 Sep 2006)
New Revision: 555
Modified:
trunk/protocol/tapir.xsd
Log:
numerous minor updates that arose during the first implementation and documentation phase. Summarized at
http://ww3.bgbm.org/protocolwiki/ImplementationAndDocumentationChanges
Modified: trunk/protocol/tapir.xsd
===================================================================
--- trunk/protocol/tapir.xsd 2006-08-03 10:29:39 UTC (rev 554)
+++ trunk/protocol/tapir.xsd 2006-09-11 09:20:56 UTC (rev 555)
@@ -48,13 +48,22 @@
</xsd:annotation>
<xsd:restriction base="xsd:string"/>
</xsd:simpleType>
- <xsd:simpleType name="qualifiedConceptIdType">
+ <xsd:simpleType
+ name="qualifiedConceptIdType">
<xsd:annotation>
- <xsd:documentation>A simpleType to represent qualified concept identifiers. This can
- either be the full format NAMESPACE#LOCAL_CONCEPT or an alias which can be any
- string e.g. unitID at abcd1.20.</xsd:documentation>
+ <xsd:documentation>Concept identifiers are just strings for TAPIR, so the protocol does
+ not enforce any pattern. However it is recommended to use globally, resolvable and
+ permanent unique identifiers for them. It is also recommended to avoid using
+ characters that are reserved in the "query" part of URLs, since concepts can be
+ referenced there by many TAPIR parameters and would need to be escaped. When
+ defining concepts based on xml schemas we recommend to simply concatenate the
+ namespace of the schema with the local xpath to the instance element. For example
+ /DataSets/DataSet/Units/Unit/InstitutionID in ABCD becomes
+ http://www.tdwg.org/schemas/abcd/2.06/DataSets/DataSet/Units/Unit/InstitutionID
+ </xsd:documentation>
</xsd:annotation>
- <xsd:restriction base="xsd:string"/>
+ <xsd:restriction
+ base="xsd:string"/>
</xsd:simpleType>
<!-- ============================================= -->
<!-- GLOBAL ATTRIBUTES-->
@@ -224,10 +233,10 @@
<xsd:element name="outputModel" type="outputModelType"></xsd:element>
<xsd:complexType name="outputModelType">
<xsd:annotation>
- <xsd:documentation>Response structures are part of a View definition which
+ <xsd:documentation>Response structures are part of a model definition which
includes three sections: a record schema (structure), a mapping section for linking to the datasource model
and an indexing section that is used as a reference for record counting and paging responses.
- The outputModel template is a separate, external XML document, called by a search operation or View,
+ The outputModel template is a separate, external XML document, called by a search operation,
that uses 'outputModel' as the root element. </xsd:documentation>
</xsd:annotation>
<xsd:sequence>
@@ -299,7 +308,10 @@
<xsd:element name="searchTemplate" substitutionGroup="queryTemplate" type="searchTemplateType"/>
<xsd:group name="searchTemplateGroup">
<xsd:sequence>
- <xsd:element name="outputModel" type="externalResourceType"/>
+ <xsd:choice>
+ <xsd:element name="externalOutputModel" type="externalResourceType"></xsd:element>
+ <xsd:element name="outputModel" type="outputModelType"></xsd:element>
+ </xsd:choice>
<xsd:element name="partial" minOccurs="0">
<xsd:annotation>
<xsd:documentation>Select only a subset of the
@@ -327,7 +339,7 @@
<xsd:element ref="filter" minOccurs="0"/>
<xsd:element name="orderBy" minOccurs="0">
<xsd:annotation>
- <xsd:documentation>A list of qualified concepts to be used for ordering the view
+ <xsd:documentation>A list of qualified concepts to be used for ordering the model
results.</xsd:documentation>
</xsd:annotation>
<xsd:complexType>
@@ -335,7 +347,7 @@
<xsd:element name="concept" maxOccurs="unbounded">
<xsd:annotation>
<xsd:documentation>Repeatable element. One or more concepts to be used for ordering the
- view. If the attribute "descend" is set to true, a descending
+ model. If the attribute "descend" is set to true, a descending
ordering will be used instead of the default ascending one.</xsd:documentation>
</xsd:annotation>
<xsd:complexType>
@@ -378,7 +390,7 @@
</xsd:annotation>
<xsd:complexType>
<xsd:sequence>
- <xsd:element name="concept" type="qualifiedConceptReferenceType" minOccurs="0" maxOccurs="unbounded">
+ <xsd:element name="concept" type="qualifiedConceptReferenceType" minOccurs="1" maxOccurs="unbounded">
<xsd:annotation>
<xsd:documentation>A single qualified concept</xsd:documentation>
</xsd:annotation>
@@ -408,7 +420,7 @@
<xsd:element name="filter">
<xsd:annotation>
<xsd:documentation>An abstract filter encoding that could be translated to other local
- query languages. Can be used by search, inventory and view operations to specify
+ query languages. Can be used by search and inventory operations to specify
searching conditions.</xsd:documentation>
</xsd:annotation>
<xsd:complexType>
@@ -714,17 +726,17 @@
<xsd:choice>
<xsd:element name="ping">
<xsd:complexType>
- <xsd:attributeGroup ref="operationRequestGroup"/>
+ <xsd:attributeGroup ref="globalParametersGroup"/>
</xsd:complexType>
</xsd:element>
<xsd:element name="capabilities">
<xsd:complexType>
- <xsd:attributeGroup ref="operationRequestGroup"/>
+ <xsd:attributeGroup ref="globalParametersGroup"/>
</xsd:complexType>
</xsd:element>
<xsd:element name="metadata">
<xsd:complexType>
- <xsd:attributeGroup ref="operationRequestGroup"/>
+ <xsd:attributeGroup ref="globalParametersGroup"/>
</xsd:complexType>
</xsd:element>
<xsd:element name="inventory">
@@ -733,20 +745,20 @@
<xsd:element name="template" type="externalResourceType"/>
<xsd:group ref="inventoryTemplateGroup"/>
</xsd:choice>
- <xsd:attributeGroup ref="operationRequestGroup"/>
+ <xsd:attributeGroup ref="globalParametersGroup"/>
<xsd:attributeGroup ref="pagingParametersGroup"/>
</xsd:complexType>
</xsd:element>
<xsd:element name="search">
<xsd:annotation>
- <xsd:documentation>A search with the view definition used for the search as an attribute. If left out defaults to the one specified by the provider and exposed in the capabilities.</xsd:documentation>
+ <xsd:documentation>A search with TBD... </xsd:documentation>
</xsd:annotation>
<xsd:complexType>
<xsd:choice>
<xsd:element name="template" type="externalResourceType"/>
<xsd:group ref="searchTemplateGroup"/>
</xsd:choice>
- <xsd:attributeGroup ref="operationRequestGroup"/>
+ <xsd:attributeGroup ref="globalParametersGroup"/>
<xsd:attributeGroup ref="pagingParametersGroup"/>
<xsd:attribute name="envelope" type="xsd:boolean" use="optional" default="true"/>
</xsd:complexType>
@@ -755,7 +767,7 @@
<xsd:element name="diagnostics" type="diagnosticsListType" minOccurs="0"/>
</xsd:sequence>
</xsd:complexType>
- <xsd:attributeGroup name="operationRequestGroup">
+ <xsd:attributeGroup name="globalParametersGroup">
<xsd:attribute name="xslt" type="xsd:anyURI" use="optional"/>
<xsd:attribute name="xslt-apply" type="xsd:boolean" use="optional" default="false"/>
<xsd:attribute name="log-only" type="xsd:boolean" use="optional" default="false"/>
@@ -783,11 +795,12 @@
<xsd:element name="header" type="headerType"/>
<xsd:choice>
<xsd:element ref="pong"/>
- <xsd:element ref="metadata"/><xsd:element ref="capabilities"/>
-
- <xsd:element name="inventory" type="inventoryResultType"/>
- <xsd:element name="search" type="searchResultType"/>
- <xsd:element name="error" type="diagnosticMessageType"/>
+ <xsd:element ref="metadata"/>
+ <xsd:element ref="capabilities"/>
+ <xsd:element ref="inventory" />
+ <xsd:element ref="search" />
+ <xsd:element ref="error" />
+ <xsd:element ref="logged" />
</xsd:choice>
<xsd:element name="diagnostics" type="diagnosticsListType" minOccurs="0">
<xsd:annotation>
@@ -838,42 +851,39 @@
<xsd:element name="capabilities">
<xsd:complexType/>
</xsd:element>
- <xsd:element name="view" minOccurs="0">
+ <xsd:element name="inventory" minOccurs="0">
<xsd:complexType>
<xsd:sequence>
- <xsd:element name="queryTemplates">
- <xsd:complexType>
- <xsd:sequence>
- <xsd:element name="queryTemplate" type="externalResourceType" maxOccurs="unbounded"/>
- </xsd:sequence>
- </xsd:complexType>
- </xsd:element>
+ <xsd:element name="templates" type="templatesCapabilitiesType" minOccurs="0"/>
+ <xsd:element name="anyConcepts" minOccurs="0"><xsd:complexType/></xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
- <xsd:element name="inventory" minOccurs="0">
- <xsd:complexType/>
- </xsd:element>
<xsd:element name="search" minOccurs="0">
<xsd:complexType>
<xsd:sequence>
- <xsd:element name="staticOutputModels" minOccurs="0">
+ <xsd:element name="templates" type="templatesCapabilitiesType" minOccurs="0" />
+ <xsd:element name="outputModels" minOccurs="0">
<xsd:complexType>
<xsd:sequence>
- <xsd:element name="outputModel" type="externalResourceType" maxOccurs="unbounded"/>
- </xsd:sequence>
- </xsd:complexType>
- </xsd:element>
- <xsd:element name="dynamicOutputModels" minOccurs="0">
- <xsd:complexType>
- <xsd:sequence>
- <xsd:element name="structure" type="responseStructureCapabilitiesType">
- <xsd:annotation>
- <xsd:documentation>The supported subset of
- the XML Schema
- language.</xsd:documentation>
- </xsd:annotation>
+ <xsd:element name="knownOutputModels" minOccurs="0" >
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="outputModel" type="externalResourceType" maxOccurs="unbounded"/>
+ </xsd:sequence>
+ </xsd:complexType>
</xsd:element>
+ <xsd:element name="anyOutputModels" minOccurs="0">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="responseStructure" type="responseStructureCapabilitiesType">
+ <xsd:annotation>
+ <xsd:documentation>The supported subset of the XML Schema language.</xsd:documentation>
+ </xsd:annotation>
+ </xsd:element>
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
@@ -881,22 +891,43 @@
</xsd:complexType>
</xsd:element>
</xsd:sequence>
- <xsd:attribute name="logRequests" use="required" >
- <xsd:simpleType>
- <xsd:restriction base="xsd:string">
- <xsd:enumeration value="required"/>
- <xsd:enumeration value="accepted"/>
- <xsd:enumeration value="denied"/>
- </xsd:restriction>
- </xsd:simpleType>
- </xsd:attribute>
</xsd:complexType>
</xsd:element>
- <xsd:element name="filter" type="filterCapabilitiesType">
- <xsd:annotation>
- <xsd:documentation>Information about the supported filter operators of this
- service.</xsd:documentation>
- </xsd:annotation>
+ <xsd:element name="requests">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="encoding">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="kvp"><xsd:complexType/></xsd:element>
+ <xsd:element name="xml" minOccurs="0"><xsd:complexType/></xsd:element>
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="globalParameters">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="logOnly">
+ <xsd:simpleType>
+ <xsd:restriction base="xsd:string">
+ <xsd:enumeration value="required"/>
+ <xsd:enumeration value="accepted"/>
+ <xsd:enumeration value="denied"/>
+ </xsd:restriction>
+ </xsd:simpleType>
+ </xsd:element>
+ <xsd:element name="xlst" minOccurs="0"><xsd:complexType/></xsd:element>
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="filter" type="filterCapabilitiesType">
+ <xsd:annotation>
+ <xsd:documentation>Information about the supported filter operators of this
+ service.</xsd:documentation>
+ </xsd:annotation>
+ </xsd:element>
+ </xsd:sequence>
+ </xsd:complexType>
</xsd:element>
<xsd:element name="concepts">
<xsd:annotation>
@@ -1018,6 +1049,22 @@
<xsd:element ref="custom" minOccurs="0"/>
</xsd:sequence>
</xsd:complexType>
+
+ <xsd:complexType name="templatesCapabilitiesType">
+ <xsd:sequence>
+ <xsd:element name="template" maxOccurs="unbounded">
+ <xsd:complexType>
+ <xsd:complexContent>
+ <xsd:extension base="externalResourceType">
+ <xsd:attribute name="wsdl" type="xsd:anyURI">
+ <xsd:annotation><xsd:documentation>URL pointing to a WSDL file describing this template interface</xsd:documentation></xsd:annotation>
+ </xsd:attribute>
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+ </xsd:element>
+ </xsd:sequence>
+ </xsd:complexType>
<xsd:complexType name="responseStructureCapabilitiesType">
<xsd:annotation>
<xsd:documentation>A complete indication about what subset of the response structure
@@ -1508,11 +1555,16 @@
resource or an indication of its security status.</xsd:documentation>
</xsd:annotation>
</xsd:element>
- <xsd:element ref="dct:modified">
+ <xsd:element ref="dct:modified" minOccurs="0">
<xsd:annotation>
<xsd:documentation></xsd:documentation>
</xsd:annotation>
</xsd:element>
+ <xsd:element ref="dct:created" minOccurs="0">
+ <xsd:annotation>
+ <xsd:documentation></xsd:documentation>
+ </xsd:annotation>
+ </xsd:element>
<xsd:element name="indexingPreferences" minOccurs="0">
<xsd:complexType>
<xsd:attribute name="startTime" type="xsd:time"/>
@@ -1627,6 +1679,7 @@
<xsd:attribute ref="lang"/>
</xsd:complexType>
<!-- ===== INVENTORY===== -->
+ <xsd:element name="inventory" type="inventoryResultType" />
<xsd:complexType name="inventoryResultType">
<xsd:annotation>
<xsd:documentation>Format of inventory operation result.</xsd:documentation>
@@ -1673,6 +1726,7 @@
</xsd:sequence>
</xsd:complexType>
<!-- ===== SEARCH ===== -->
+ <xsd:element name="search" type="searchResultType" />
<xsd:complexType name="searchResultType">
<xsd:annotation>
<xsd:documentation>Format of search operation result.</xsd:documentation>
@@ -1687,4 +1741,13 @@
</xsd:element>
</xsd:sequence>
</xsd:complexType>
+ <!-- ===== ERROR ===== -->
+ <xsd:element name="error" type="diagnosticMessageType"/>
+ <!-- ===== LOGGED ===== -->
+ <xsd:element name="logged" type="loggedResultType"/>
+ <xsd:complexType name="loggedResultType">
+ <xsd:annotation>
+ <xsd:documentation>Format of logged operation result indicated by setting a true logOnly attribute in the request.</xsd:documentation>
+ </xsd:annotation>
+ </xsd:complexType>
</xsd:schema>
More information about the tdwg-tag
mailing list