[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