[tdwg-tapir] Schema modification: r555 - trunk/protocol
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:documentationA 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@abcd1.20.</xsd:documentation> + xsd:documentationConcept 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/Institutio... + </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:documentationResponse structures are part of a View definition which + xsd:documentationResponse 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:documentationSelect only a subset of the @@ -327,7 +339,7 @@ <xsd:element ref="filter" minOccurs="0"/> <xsd:element name="orderBy" minOccurs="0"> xsd:annotation - xsd:documentationA list of qualified concepts to be used for ordering the view + xsd:documentationA 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:documentationRepeatable 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:documentationA single qualified concept</xsd:documentation> </xsd:annotation> @@ -408,7 +420,7 @@ <xsd:element name="filter"> xsd:annotation xsd:documentationAn 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:documentationA 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:documentationA 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:documentationThe 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:documentationThe 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:documentationInformation 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:documentationInformation 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:annotationxsd:documentationURL 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:documentationA 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:documentationFormat 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:documentationFormat 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:documentationFormat of logged operation result indicated by setting a true logOnly attribute in the request.</xsd:documentation> + </xsd:annotation> + </xsd:complexType> </xsd:schema>
participants (1)
-
tdwg-tapir@lists.tdwg.org