[tdwg-tapir] Schema modification: r390 - trunk/protocol

tdwg-tapir at lists.tdwg.org tdwg-tapir at lists.tdwg.org
Thu Jan 5 17:50:41 CET 2006


Author: renato
Date: 2006-01-05 17:50:35 +0100 (Thu, 05 Jan 2006)
New Revision: 390

Modified:
   trunk/protocol/tapir.xsd
Log:
Changed filter capabilities so that implementations either accept all filter functionality or none:

* Renamed element /response/capabilities/operators to "filter" and included an optional subelement called "encoding".

* Renamed "boolean" to "booleanOperators", and made all logical and comparative operators mandatory.

Now parsers can always rely on the existence of a <filter> element in the capabilities response and then pass it to a specific handler (such handler can just detect if there's an element "encoding" or not, which means "I understand the basic filtering mechanism" or "I don't know how to parse any filters").


Modified: trunk/protocol/tapir.xsd
===================================================================
--- trunk/protocol/tapir.xsd	2006-01-05 14:51:36 UTC (rev 389)
+++ trunk/protocol/tapir.xsd	2006-01-05 16:50:35 UTC (rev 390)
@@ -2,7 +2,7 @@
 <!-- $Id$ -->
 <!-- unified and extended protocol based on DiGIR and BioCASE -->
 <!-- http://ww3.bgbm.org/protocol -->
-<xsd:schema xmlns="http://www.tdwg.org/schemas/tapir/datasource/1.0" xmlns:xsd="http://www.w3.org/2001/XMLSchema" targetNamespace="http://www.tdwg.org/schemas/tapir/datasource/1.0" elementFormDefault="qualified" attributeFormDefault="unqualified" version="1.0" xml:lang="EN">
+<xsd:schema targetNamespace="http://www.tdwg.org/schemas/tapir/datasource/1.0" elementFormDefault="qualified" attributeFormDefault="unqualified" version="1.0" xml:lang="EN" xmlns="http://www.tdwg.org/schemas/tapir/datasource/1.0" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
 	<!-- ============================================= -->
 	<!-- SIMPLE TYPE DEFINITIONS-->
 	<!-- ============================================= -->
@@ -926,7 +926,7 @@
 					</xsd:sequence>
 				</xsd:complexType>
 			</xsd:element>
-			<xsd:element name="operators" type="filterCapabilities">
+			<xsd:element name="filter" type="filterCapabilities">
 				<xsd:annotation>
 					<xsd:documentation>Information about the supported filter operators of this
 						service.</xsd:documentation>
@@ -1336,115 +1336,121 @@
 				service.</xsd:documentation>
 		</xsd:annotation>
 		<xsd:sequence>
-			<xsd:element name="expression">
+			<xsd:element name="encoding" minOccurs="0">
 				<xsd:complexType>
 					<xsd:sequence>
-						<xsd:element name="concept">
-							<xsd:complexType/>
-						</xsd:element>
-						<xsd:element name="literal">
-							<xsd:complexType/>
-						</xsd:element>
-						<xsd:element name="parameter">
-							<xsd:complexType/>
-						</xsd:element>
-						<xsd:element name="variable">
-							<xsd:complexType/>
-						</xsd:element>
-						<xsd:element name="arithmetic">
-							<xsd:annotation>
-								<xsd:documentation>Support +-*/ in filter
-								expressions.</xsd:documentation>
-							</xsd:annotation>
+						<xsd:element name="expression">
 							<xsd:complexType>
 								<xsd:sequence>
-									<xsd:element name="add" minOccurs="0">
+									<xsd:element name="concept">
 										<xsd:complexType/>
 									</xsd:element>
-									<xsd:element name="sub" minOccurs="0">
+									<xsd:element name="literal">
 										<xsd:complexType/>
 									</xsd:element>
-									<xsd:element name="div" minOccurs="0">
+									<xsd:element name="parameter">
 										<xsd:complexType/>
 									</xsd:element>
-									<xsd:element name="mul" minOccurs="0">
+									<xsd:element name="variable">
 										<xsd:complexType/>
 									</xsd:element>
-									<xsd:element ref="custom" minOccurs="0"/>
-								</xsd:sequence>
-							</xsd:complexType>
-						</xsd:element>
-						<xsd:element ref="custom" minOccurs="0"/>
-					</xsd:sequence>
-				</xsd:complexType>
-			</xsd:element>
-			<xsd:element name="boolean">
-				<xsd:complexType>
-					<xsd:sequence>
-						<xsd:element name="logical">
-							<xsd:annotation>
-								<xsd:documentation>This includes all 3 operators. AND, OR,
-								NOT</xsd:documentation>
-							</xsd:annotation>
-							<xsd:complexType>
-								<xsd:sequence>
-									<xsd:element name="not" minOccurs="0">
-										<xsd:complexType/>
+									<xsd:element name="arithmetic">
+										<xsd:annotation>
+											<xsd:documentation>Support +-*/ in filter
+								expressions.</xsd:documentation>
+										</xsd:annotation>
+										<xsd:complexType>
+											<xsd:sequence>
+												<xsd:element name="add" minOccurs="0">
+													<xsd:complexType/>
+												</xsd:element>
+												<xsd:element name="sub" minOccurs="0">
+													<xsd:complexType/>
+												</xsd:element>
+												<xsd:element name="div" minOccurs="0">
+													<xsd:complexType/>
+												</xsd:element>
+												<xsd:element name="mul" minOccurs="0">
+													<xsd:complexType/>
+												</xsd:element>
+												<xsd:element ref="custom" minOccurs="0"/>
+											</xsd:sequence>
+										</xsd:complexType>
 									</xsd:element>
-									<xsd:element name="and" minOccurs="0">
-										<xsd:complexType/>
-									</xsd:element>
-									<xsd:element name="or" minOccurs="0">
-										<xsd:complexType/>
-									</xsd:element>
 									<xsd:element ref="custom" minOccurs="0"/>
 								</xsd:sequence>
 							</xsd:complexType>
 						</xsd:element>
-						<xsd:element name="comparative">
+						<xsd:element name="booleanOperators">
 							<xsd:complexType>
 								<xsd:sequence>
-									<xsd:element name="equals" minOccurs="0">
+									<xsd:element name="logical">
 										<xsd:annotation>
-											<xsd:documentation>Recommended to be case
-											sensitive.</xsd:documentation>
+											<xsd:documentation>This includes all 3 operators. AND, OR,
+								NOT</xsd:documentation>
 										</xsd:annotation>
 										<xsd:complexType>
-											<xsd:attribute name="caseSensitive" type="xsd:boolean" use="optional" default="true"/>
+											<xsd:sequence>
+												<xsd:element name="not">
+													<xsd:complexType/>
+												</xsd:element>
+												<xsd:element name="and">
+													<xsd:complexType/>
+												</xsd:element>
+												<xsd:element name="or">
+													<xsd:complexType/>
+												</xsd:element>
+												<xsd:element ref="custom" minOccurs="0"/>
+											</xsd:sequence>
 										</xsd:complexType>
 									</xsd:element>
-									<xsd:element name="greaterThan" minOccurs="0">
-										<xsd:complexType/>
-									</xsd:element>
-									<xsd:element name="greaterThanOrEquals" minOccurs="0">
-										<xsd:complexType/>
-									</xsd:element>
-									<xsd:element name="lessThan" minOccurs="0">
-										<xsd:complexType/>
-									</xsd:element>
-									<xsd:element name="lessThanOrEquals" minOccurs="0">
-										<xsd:complexType/>
-									</xsd:element>
-									<xsd:element name="in" minOccurs="0">
-										<xsd:complexType/>
-									</xsd:element>
-									<xsd:element name="isNull" minOccurs="0">
-										<xsd:complexType/>
-									</xsd:element>
-									<xsd:element name="like" minOccurs="0">
-										<xsd:annotation>
-											<xsd:documentation>Recommended to be case insensitive.
+									<xsd:element name="comparative">
+										<xsd:complexType>
+											<xsd:sequence>
+												<xsd:element name="equals">
+													<xsd:annotation>
+														<xsd:documentation>Recommended to be case
+											sensitive.</xsd:documentation>
+													</xsd:annotation>
+													<xsd:complexType>
+														<xsd:attribute name="caseSensitive" type="xsd:boolean" use="optional" default="true"/>
+													</xsd:complexType>
+												</xsd:element>
+												<xsd:element name="greaterThan">
+													<xsd:complexType/>
+												</xsd:element>
+												<xsd:element name="greaterThanOrEquals">
+													<xsd:complexType/>
+												</xsd:element>
+												<xsd:element name="lessThan">
+													<xsd:complexType/>
+												</xsd:element>
+												<xsd:element name="lessThanOrEquals">
+													<xsd:complexType/>
+												</xsd:element>
+												<xsd:element name="in">
+													<xsd:complexType/>
+												</xsd:element>
+												<xsd:element name="isNull">
+													<xsd:complexType/>
+												</xsd:element>
+												<xsd:element name="like">
+													<xsd:annotation>
+														<xsd:documentation>Recommended to be case insensitive.
 												Wildcard is always asterisk *.</xsd:documentation>
-										</xsd:annotation>
-										<xsd:complexType>
-											<xsd:attribute name="caseSensitive" type="xsd:boolean" use="optional" default="false"/>
+													</xsd:annotation>
+													<xsd:complexType>
+														<xsd:attribute name="caseSensitive" type="xsd:boolean" use="optional" default="false"/>
+													</xsd:complexType>
+												</xsd:element>
+												<xsd:element ref="custom" minOccurs="0"/>
+											</xsd:sequence>
 										</xsd:complexType>
 									</xsd:element>
 									<xsd:element ref="custom" minOccurs="0"/>
 								</xsd:sequence>
 							</xsd:complexType>
 						</xsd:element>
-						<xsd:element ref="custom" minOccurs="0"/>
 					</xsd:sequence>
 				</xsd:complexType>
 			</xsd:element>





More information about the tdwg-tag mailing list