tdwg-tag
Threads by month
- ----- 2024 -----
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2023 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2022 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2021 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2020 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2019 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2018 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2017 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2016 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2015 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2014 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2013 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2012 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2011 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2010 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2009 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2008 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2007 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2006 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2005 -----
- December
- November
- October
- September
July 2006
- 8 participants
- 26 discussions
17 Jul '06
Author: markus
Date: 2006-07-17 11:12:11 +0200 (Mon, 17 Jul 2006)
New Revision: 542
Modified:
trunk/protocol/tapir.xsd
Log:
made elements qualified by default. Corrected wrong schema setting in schema root.
Modified: trunk/protocol/tapir.xsd
===================================================================
--- trunk/protocol/tapir.xsd 2006-07-17 09:10:33 UTC (rev 541)
+++ trunk/protocol/tapir.xsd 2006-07-17 09:12:11 UTC (rev 542)
@@ -7,7 +7,7 @@
xmlns:dct="http://purl.org/dc/terms/"
xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#"
xmlns:vcard="http://www.w3.org/2001/vcard-rdf/3.0#"
- elementFormDefault="unqualified"
+ elementFormDefault="qualified"
attributeFormDefault="unqualified" version="1.0" xml:lang="EN" >
<xsd:annotation>
<xsd:documentation xml:lang="en">
1
0
17 Jul '06
Author: markus
Date: 2006-07-17 11:10:33 +0200 (Mon, 17 Jul 2006)
New Revision: 541
Modified:
trunk/protocol/tapir.xsd
Log:
renamed concept attribute of capabilities response from "mandatory" into "required"
Modified: trunk/protocol/tapir.xsd
===================================================================
--- trunk/protocol/tapir.xsd 2006-07-05 17:59:21 UTC (rev 540)
+++ trunk/protocol/tapir.xsd 2006-07-17 09:10:33 UTC (rev 541)
@@ -1,1680 +1,1680 @@
-<?xml version="1.0"?>
-<!-- $Id$ -->
-<xsd:schema targetNamespace="http://res.tdwg.org/tapir/1.0"
- xmlns="http://res.tdwg.org/tapir/1.0"
- xmlns:xsd="http://www.w3.org/2001/XMLSchema"
- xmlns:dc="http://purl.org/dc/elements/1.1/"
- xmlns:dct="http://purl.org/dc/terms/"
- xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#"
- xmlns:vcard="http://www.w3.org/2001/vcard-rdf/3.0#"
- elementFormDefault="unqualified"
- attributeFormDefault="unqualified" version="1.0" xml:lang="EN" >
- <xsd:annotation>
- <xsd:documentation xml:lang="en">
- TAPIR XML Schema. TAPIR is an acronym for TDWG Access Protocol for Information Retrieval.
- A unified and extended protocol based on DiGIR and BioCASE. TAPIR specifies a standardised,
- stateless, HTTP transmittable, XML-based request and response protocol for accessing, structured
- data that may be stored on any number of distributed databases of varied physical and logical
- structure. TAPIR documents are either request or response types, as defined by their root element.
- </xsd:documentation>
- <xsd:appinfo>
- <dc:title>TAPIR XML Schema</dc:title>
- <dc:creator>Markus Döring [m.doering(a)bgbm.org]</dc:creator>
- <dc:creator>Renato De Giovanni [renato(a)cria.org.br]</dc:creator>
- <dc:relation>http://ww3.bgbm.org/protocolwiki</dc:relation>
- <dc:contributor>Charles Copp [eim(a)globalnet.co.uk]</dc:contributor>
- </xsd:appinfo>
- </xsd:annotation>
- <!-- ============================================= -->
- <!-- NAMESPACE IMPORTS -->
- <!-- ============================================= -->
- <xsd:import namespace="http://www.w3.org/XML/1998/namespace"
- schemaLocation="http://www.w3.org/2001/03/xml.xsd"/>
- <xsd:import namespace="http://purl.org/dc/elements/1.1/"
- schemaLocation="dc.xsd"/>
- <xsd:import namespace="http://purl.org/dc/terms/"
- schemaLocation="dcterms.xsd"/>
- <xsd:import namespace="http://www.w3.org/2003/01/geo/wgs84_pos#"
- schemaLocation="w3c_geo.xsd"/>
- <xsd:import namespace="http://www.w3.org/2001/vcard-rdf/3.0#"
- schemaLocation="vcard.xsd"/>
- <!-- ============================================= -->
- <!-- SIMPLE TYPE DEFINITIONS-->
- <!-- ============================================= -->
- <xsd:simpleType name="simpleXPathType">
- <xsd:annotation>
- <xsd:documentation>A simple XPath expression used to reference XML nodes.
- e.g. /dataset/specimen/identification/name</xsd:documentation>
- </xsd:annotation>
- <xsd:restriction base="xsd:string"/>
- </xsd:simpleType>
- <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(a)abcd1.20.</xsd:documentation>
- </xsd:annotation>
- <xsd:restriction base="xsd:string"/>
- </xsd:simpleType>
- <!-- ============================================= -->
- <!-- GLOBAL ATTRIBUTES-->
- <!-- ============================================= -->
- <xsd:attribute name="lang" type="xsd:language">
- <xsd:annotation>
- <xsd:documentation>Attribute for language identification. This attribute was globally
- declared to be referenced by others, and therefore simulate the same way of using
- xml:lang (in case it could be necessary to switch to xml:lang in the future).</xsd:documentation>
- </xsd:annotation>
- </xsd:attribute>
- <!-- ============================================= -->
- <!-- GENERAL COMPLEX TYPE DEFINITIONS-->
- <!-- ============================================= -->
- <xsd:complexType name="externalResourceType">
- <xsd:annotation>
- <xsd:documentation>A URI that points to a document or schema referenced by TAPIR operations</xsd:documentation>
- </xsd:annotation>
- <xsd:attribute name="location" type="xsd:anyURI" use="required"/>
- </xsd:complexType>
- <xsd:complexType name="languageAwareElementType">
- <xsd:annotation>
- <xsd:documentation> String with a language attribute. A type for elements that may be language specific.</xsd:documentation>
- </xsd:annotation>
- <xsd:simpleContent>
- <xsd:extension base="xsd:string">
- <xsd:attribute ref="xml:lang" use="optional"/>
- </xsd:extension>
- </xsd:simpleContent>
- </xsd:complexType>
- <xsd:complexType name="nodeReferenceType">
- <xsd:annotation>
- <xsd:documentation>A reference to an XML node in a conceptual schema.
- Uses a simple XPath stored as an attribute.</xsd:documentation>
- </xsd:annotation>
- <xsd:attribute name="path" type="simpleXPathType" use="required"/>
- </xsd:complexType>
- <xsd:complexType name="qualifiedConceptReferenceType">
- <xsd:annotation>
- <xsd:documentation>A qualified reference to a concept. Uses an attribute to hold a concept
- and its namespace prefix or an alias as defined in qualifiedConceptIdType </xsd:documentation>
- </xsd:annotation>
- <xsd:attribute name="id" type="qualifiedConceptIdType" use="required"/>
- </xsd:complexType>
- <xsd:complexType name="softwareInformationType">
- <xsd:annotation>
- <xsd:documentation> Information about the software used to construct or relay a TAPIR request or response.
- The software name and version are stored as simple string attributes.</xsd:documentation>
- </xsd:annotation>
- <xsd:attribute name="name" type="xsd:string" use="required"/>
- <xsd:attribute name="version" type="xsd:string" use="required"/>
- </xsd:complexType>
- <xsd:complexType name="headerType">
- <xsd:annotation>
- <xsd:documentation>A Header is part of request and response messages. The Header describes the source of the request or response
- and optionally its destination. It may also describe the software that sent the request or response
- and there is a custom section for extending the information e.g. with information related to security or access.
- If the noresponse attribute is set to true the request is meant for logging only and no response should be generated.
- The header can list several sources, where for instance, a request is cascaded through one or more portals. </xsd:documentation>
- </xsd:annotation>
- <xsd:sequence>
- <xsd:element name="source" maxOccurs="unbounded">
- <xsd:annotation>
- <xsd:documentation>Source of this message. Repeatable to trace back all servers
- of a possible cascading transaction, but always starting (first in the
- sequence) with the original source, the client. Holds a URL or at least the
- IP of the source with the timestamp when the message has been processed as
- an attribute in ISO format.</xsd:documentation>
- </xsd:annotation>
- <xsd:complexType>
- <xsd:sequence minOccurs="0">
- <xsd:element name="software" minOccurs="0">
- <xsd:annotation>
- <xsd:documentation>The optional software element should indicate the
- software including its version, used to generate or modify the
- document. It may also list any dependencies on libraries and other software</xsd:documentation>
- </xsd:annotation>
- <xsd:complexType>
- <xsd:complexContent>
- <xsd:extension base="softwareInformationType">
- <xsd:sequence minOccurs="0">
- <xsd:element name="dependencies" minOccurs="0">
- <xsd:annotation>
- <xsd:documentation>Represents set of dependecies for this software.</xsd:documentation>
- </xsd:annotation>
- <xsd:complexType>
- <xsd:sequence minOccurs="0">
- <xsd:element name="dependency" type="softwareInformationType" minOccurs="0" maxOccurs="unbounded">
- <xsd:annotation>
- <xsd:documentation>A singledependency for the software,e.g. a library, framework, component, OS,...</xsd:documentation>
- </xsd:annotation>
- </xsd:element>
- </xsd:sequence>
- </xsd:complexType>
- </xsd:element>
- </xsd:sequence>
- </xsd:extension>
- </xsd:complexContent>
- </xsd:complexType>
- </xsd:element>
- </xsd:sequence>
- <xsd:attribute name="accesspoint" type="xsd:anyURI" use="required"/>
- <xsd:attribute name="sendtime" type="xsd:dateTime" use="required"/>
- </xsd:complexType>
- </xsd:element>
- <xsd:element name="destination" type="xsd:string" minOccurs="0">
- <xsd:annotation>
- <xsd:documentation>Destination of the message. Takes a string which usually will
- be a URI but can be anything e.g. include resource names etc. It is optional
- and an implementation is free to ignore it.</xsd:documentation>
- </xsd:annotation>
- </xsd:element>
- <xsd:element ref="custom" minOccurs="0"/>
- </xsd:sequence>
- </xsd:complexType>
- <xsd:complexType name="diagnosticMessageType">
- <xsd:annotation>
- <xsd:documentation>A diagnostic message from the service with message type and time presented as attributes
- including code, level ( with enumerated types e.g. error, warning, additional
- information, etc). and a time stamp</xsd:documentation>
- </xsd:annotation>
- <xsd:simpleContent>
- <xsd:extension base="xsd:string">
- <xsd:attribute name="code" type="xsd:string" use="optional"/>
- <xsd:attribute name="level" use="required">
- <xsd:simpleType>
- <xsd:restriction base="xsd:string">
- <xsd:enumeration value="debug"/>
- <xsd:enumeration value="info"/>
- <xsd:enumeration value="warn"/>
- <xsd:enumeration value="error"/>
- <xsd:enumeration value="fatal"/>
- </xsd:restriction>
- </xsd:simpleType>
- </xsd:attribute>
- <xsd:attribute name="time" type="xsd:dateTime" use="optional"/>
- </xsd:extension>
- </xsd:simpleContent>
- </xsd:complexType>
- <xsd:complexType name="diagnosticsListType">
- <xsd:annotation>
- <xsd:documentation>Provides the means to present a list of diagnostic messages from the service.</xsd:documentation>
- </xsd:annotation>
- <xsd:sequence minOccurs="0">
- <xsd:element name="diagnostic" type="diagnosticMessageType" minOccurs="0" maxOccurs="unbounded"/>
- </xsd:sequence>
- </xsd:complexType>
- <xsd:element name="custom">
- <xsd:annotation>
- <xsd:documentation>Extension slot for additional information not defined in the schema.</xsd:documentation>
- </xsd:annotation>
- <xsd:complexType>
- <xsd:sequence>
- <xsd:any minOccurs="0" maxOccurs="unbounded">
- <xsd:annotation>
- <xsd:documentation>For any custom extension. E.g what security related
- capabilities does the provider have? Encryption, access restriction,
- etc.</xsd:documentation>
- </xsd:annotation>
- </xsd:any>
- </xsd:sequence>
- </xsd:complexType>
- </xsd:element>
- <!-- ============================================= -->
- <!--EXTERNAL QUERY TEMPLATE DEFINITIONS-->
- <!-- ============================================= -->
- <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
- 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,
- that uses 'outputModel' as the root element. </xsd:documentation>
- </xsd:annotation>
- <xsd:sequence>
- <xsd:element name="structure">
- <xsd:annotation>
- <xsd:documentation>The response structure definition. By default this should be
- a subset of the XML Schema language but others such as RELAX NG could be
- supported in the future.</xsd:documentation>
- </xsd:annotation>
- <xsd:complexType>
- <xsd:choice>
- <xsd:element name="schema" type="externalResourceType"/>
- <xsd:any namespace="##other">
- <xsd:annotation>
- <xsd:documentation>A structure represented through a subset of the
- XML Schema language defining how elements should be
- returned.</xsd:documentation>
- </xsd:annotation>
- </xsd:any>
- </xsd:choice>
- </xsd:complexType>
- </xsd:element>
- <xsd:element name="indexingElement" maxOccurs="unbounded">
- <xsd:annotation>
- <xsd:documentation>A simple XPath pointing to a response structure node that
- should be used as a reference for counting.</xsd:documentation>
- </xsd:annotation>
- <xsd:complexType>
- <xsd:attribute name="path" type="simpleXPathType" use="required"/>
- </xsd:complexType>
- </xsd:element>
- <xsd:element name="mapping">
- <xsd:complexType>
- <xsd:sequence>
- <xsd:element name="node" minOccurs="0" maxOccurs="unbounded">
- <xsd:annotation>
- <xsd:documentation>Maps a node from the structure definition to a
- list of qualified concepts, literals or environment variables,
- which should be concatenated in the output. If the automapping attribute
- is set to 'true' then the server application should match concepts with the same namespace and path.
- For instance if the wrapper and the search request are both using a canonical ABCD model or Darwin Core Model,
- then concepts will be automatically recognised.</xsd:documentation>
- </xsd:annotation>
- <xsd:complexType>
- <xsd:choice maxOccurs="unbounded">
- <xsd:annotation>
- <xsd:documentation>Multiple mappings represent concatenation.</xsd:documentation>
- </xsd:annotation>
- <xsd:element ref="concept"/>
- <xsd:element ref="literal"/>
- <xsd:element ref="variable"/>
- </xsd:choice>
- <xsd:attribute name="path" type="simpleXPathType" use="required"/>
- </xsd:complexType>
- </xsd:element>
- </xsd:sequence>
- <xsd:attribute name="automapping" type="xsd:boolean" use="optional" default="false"/>
- </xsd:complexType>
- </xsd:element>
- </xsd:sequence>
- </xsd:complexType>
- <xsd:element name="queryTemplate" abstract="true"/>
- <xsd:complexType name="extResourceDocumentationType">
- <xsd:sequence>
- <xsd:element name="label" type="xsd:string" minOccurs="0"/>
- <xsd:element name="documentation" type="xsd:string" minOccurs="0"/>
- </xsd:sequence>
- </xsd:complexType>
- <xsd:element name="searchTemplate" substitutionGroup="queryTemplate" type="searchTemplateType"/>
- <xsd:group name="searchTemplateGroup">
- <xsd:sequence>
- <xsd:element name="outputModel" type="externalResourceType"/>
- <xsd:element name="partial" minOccurs="0">
- <xsd:annotation>
- <xsd:documentation>Select only a subset of the
- entire response structure to be used in the
- response. Useful for working with large cached
- external structures referenced via URLs. Select
- branch nodes if you want all concepts below
- included. A partial search must take care that
- response documents still validate. Thus
- mandatory elements or attributes of the response
- structure, which are not listed in the partial
- search ,must be included in the response
- content.</xsd:documentation>
- </xsd:annotation>
- <xsd:complexType>
- <xsd:sequence>
- <xsd:element name="node" type="nodeReferenceType" maxOccurs="unbounded">
- <xsd:annotation>
- <xsd:documentation>A node taken from the response structure definition.</xsd:documentation>
- </xsd:annotation>
- </xsd:element>
- </xsd:sequence>
- </xsd:complexType>
- </xsd:element>
- <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
- results.</xsd:documentation>
- </xsd:annotation>
- <xsd:complexType>
- <xsd:sequence>
- <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
- ordering will be used instead of the default ascending one.</xsd:documentation>
- </xsd:annotation>
- <xsd:complexType>
- <xsd:complexContent>
- <xsd:extension base="conceptType">
- <xsd:attribute name="descend" type="xsd:boolean" use="optional" default="false"/>
- </xsd:extension>
- </xsd:complexContent>
- </xsd:complexType>
- </xsd:element>
- </xsd:sequence>
- </xsd:complexType>
- </xsd:element>
- </xsd:sequence>
- </xsd:group>
- <xsd:complexType name="searchTemplateType">
- <xsd:annotation>
- <xsd:documentation>TAPIR can use a template for configuring search requests.
- The Template is accessed, as an external document, by its URI</xsd:documentation>
- </xsd:annotation>
- <xsd:complexContent>
- <xsd:extension base="extResourceDocumentationType">
- <xsd:sequence>
- <xsd:group ref="searchTemplateGroup" />
- </xsd:sequence>
- </xsd:extension>
- </xsd:complexContent>
- </xsd:complexType>
- <xsd:element name="inventoryTemplate" substitutionGroup="queryTemplate"
- type="inventoryTemplateType"/>
- <xsd:group name="inventoryTemplateGroup">
- <xsd:annotation>
- <xsd:documentation>TAPIR can use a template for configuring inventory requests.
- The Template is accessed, as an external document, by its URI</xsd:documentation>
- </xsd:annotation>
- <xsd:sequence>
- <xsd:element name="concepts">
- <xsd:annotation>
- <xsd:documentation>Used to specify a list of concepts to make an inventory on.</xsd:documentation>
- </xsd:annotation>
- <xsd:complexType>
- <xsd:sequence>
- <xsd:element name="concept" type="qualifiedConceptReferenceType" minOccurs="0" maxOccurs="unbounded">
- <xsd:annotation>
- <xsd:documentation>A single qualified concept</xsd:documentation>
- </xsd:annotation>
- </xsd:element>
- </xsd:sequence>
- </xsd:complexType>
- </xsd:element>
- <xsd:element ref="filter" minOccurs="0"/>
- </xsd:sequence>
- </xsd:group>
- <xsd:complexType name="inventoryTemplateType">
- <xsd:annotation>
- <xsd:documentation>TAPIR can use a template for configuring inventory requests.
- The Template is accessed, as an external document, by its URI</xsd:documentation>
- </xsd:annotation>
- <xsd:complexContent>
- <xsd:extension base="extResourceDocumentationType">
- <xsd:sequence>
- <xsd:group ref="inventoryTemplateGroup" />
- </xsd:sequence>
- </xsd:extension>
- </xsd:complexContent>
- </xsd:complexType>
- <!-- ============================================= -->
- <!-- FILTER DEFINITIONS-->
- <!-- ============================================= -->
- <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
- searching conditions.</xsd:documentation>
- </xsd:annotation>
- <xsd:complexType>
- <xsd:sequence>
- <xsd:element ref="booleanOP"/>
- </xsd:sequence>
- </xsd:complexType>
- </xsd:element>
- <!-- ===== EXPRESSIONS ===== -->
- <xsd:element name="expression" abstract="true">
- <xsd:annotation>
- <xsd:documentation>An abstract element representing any expression (literal, parameter
- or concept).</xsd:documentation>
- </xsd:annotation>
- </xsd:element>
- <!-- ===== SIMPLE EXPRESSIONS ===== -->
- <xsd:element name="simpleExpression" abstract="true" substitutionGroup="expression"/>
- <xsd:element name="literal" substitutionGroup="simpleExpression">
- <xsd:annotation>
- <xsd:documentation>An element to represent literals / values. Substitutes an abstract
- expression element.</xsd:documentation>
- </xsd:annotation>
- <xsd:complexType>
- <xsd:attribute name="value" type="xsd:string" use="required"/>
- </xsd:complexType>
- </xsd:element>
- <xsd:element name="parameter" substitutionGroup="simpleExpression">
- <xsd:annotation>
- <xsd:documentation>An element to represent external parameters e.g. via CGI. Substitutes
- an abstract expression element.</xsd:documentation>
- </xsd:annotation>
- <xsd:complexType>
- <xsd:attribute name="name" type="xsd:string" use="required"/>
- </xsd:complexType>
- </xsd:element>
- <xsd:element name="concept" type="conceptType" substitutionGroup="simpleExpression">
- <xsd:annotation>
- <xsd:documentation>An element to represent a concept of one specific conceptual schema.
- Substitutes an abstract expression element.</xsd:documentation>
- </xsd:annotation>
- </xsd:element>
- <xsd:complexType name="conceptType">
- <xsd:complexContent>
- <xsd:extension base="qualifiedConceptReferenceType"/>
- </xsd:complexContent>
- </xsd:complexType>
- <!-- ===== COMPLEX EXPRESSIONS ===== -->
- <xsd:element name="complexExpression" abstract="true" substitutionGroup="expression"/>
- <!-- === ARITHMETIC EXPRESSION OPERATORS ===-->
- <xsd:element name="AOP" abstract="true" substitutionGroup="complexExpression">
- <xsd:annotation>
- <xsd:documentation>An abstract element representing any Arithmetic operator.</xsd:documentation>
- </xsd:annotation>
- </xsd:element>
- <xsd:complexType name="binaryAOPType">
- <xsd:annotation>
- <xsd:documentation>A binary arithmetic operator with the first expression argument being
- the left argument of the operation.</xsd:documentation>
- </xsd:annotation>
- <xsd:sequence>
- <xsd:element ref="expression"/>
- <xsd:element ref="expression"/>
- </xsd:sequence>
- </xsd:complexType>
- <xsd:element name="add" type="binaryAOPType" substitutionGroup="AOP">
- <xsd:annotation>
- <xsd:documentation>The arithmetic addition (+) operator.</xsd:documentation>
- </xsd:annotation>
- </xsd:element>
- <xsd:element name="sub" type="binaryAOPType" substitutionGroup="AOP">
- <xsd:annotation>
- <xsd:documentation>The arithmetic subtraction (-) operator.</xsd:documentation>
- </xsd:annotation>
- </xsd:element>
- <xsd:element name="mul" type="binaryAOPType" substitutionGroup="AOP">
- <xsd:annotation>
- <xsd:documentation>The arithmetic multiplication (*) operator.</xsd:documentation>
- </xsd:annotation>
- </xsd:element>
- <xsd:element name="div" type="binaryAOPType" substitutionGroup="AOP">
- <xsd:annotation>
- <xsd:documentation>The arithmetic division (/) operator.</xsd:documentation>
- </xsd:annotation>
- </xsd:element>
- <!-- ===== ABSTRACT OPERATOR BASE TYPE ===== -->
- <xsd:element name="booleanOP" abstract="true">
- <xsd:annotation>
- <xsd:documentation>An abstract element representing any logical operator.</xsd:documentation>
- </xsd:annotation>
- </xsd:element>
- <!-- ===== COMPARATIVE OPERATORS ===== -->
- <xsd:element name="COP" abstract="true" substitutionGroup="booleanOP">
- <xsd:annotation>
- <xsd:documentation>An abstract element representing any comparison operator.</xsd:documentation>
- </xsd:annotation>
- </xsd:element>
- <!-- === unary === -->
- <xsd:element name="unaryCOP" abstract="true" substitutionGroup="COP">
- <xsd:annotation>
- <xsd:documentation>An abstract element representing any unary comparison operator.</xsd:documentation>
- </xsd:annotation>
- </xsd:element>
- <xsd:complexType name="unaryCOPType">
- <xsd:annotation>
- <xsd:documentation>A complex type for unary comparison operators.</xsd:documentation>
- </xsd:annotation>
- <xsd:sequence>
- <xsd:element ref="concept"/>
- </xsd:sequence>
- </xsd:complexType>
- <xsd:element name="isNull" type="unaryCOPType" substitutionGroup="unaryCOP">
- <xsd:annotation>
- <xsd:documentation>Compares if a concept is null. Use equals element to compare for empty strings.</xsd:documentation>
- </xsd:annotation>
- </xsd:element>
- <!-- === binary === -->
- <xsd:element name="binaryCOP" abstract="true" substitutionGroup="COP">
- <xsd:annotation>
- <xsd:documentation>An abstract element representing any binary comparison operator.</xsd:documentation>
- </xsd:annotation>
- </xsd:element>
- <xsd:complexType name="binaryCOPType">
- <xsd:annotation>
- <xsd:documentation>A complex type for binary comparison operators.</xsd:documentation>
- </xsd:annotation>
- <xsd:sequence>
- <xsd:element ref="concept"/>
- <xsd:element ref="expression"/>
- </xsd:sequence>
- </xsd:complexType>
- <xsd:element name="equals" type="binaryCOPType" substitutionGroup="binaryCOP">
- <xsd:annotation>
- <xsd:documentation>The equals (=) comparison operator.</xsd:documentation>
- </xsd:annotation>
- </xsd:element>
- <xsd:element name="lessThan" type="binaryCOPType" substitutionGroup="binaryCOP">
- <xsd:annotation>
- <xsd:documentation>The less than (<) comparison operator.</xsd:documentation>
- </xsd:annotation>
- </xsd:element>
- <xsd:element name="lessThanOrEquals" type="binaryCOPType" substitutionGroup="binaryCOP">
- <xsd:annotation>
- <xsd:documentation>The less than or equals (<=) comparison operator.</xsd:documentation>
- </xsd:annotation>
- </xsd:element>
- <xsd:element name="greaterThan" type="binaryCOPType" substitutionGroup="binaryCOP">
- <xsd:annotation>
- <xsd:documentation>The greater than (>) comparison operator.</xsd:documentation>
- </xsd:annotation>
- </xsd:element>
- <xsd:element name="greaterThanOrEquals" type="binaryCOPType" substitutionGroup="binaryCOP">
- <xsd:annotation>
- <xsd:documentation>The greater than or equals (>=) comparison operator.</xsd:documentation>
- </xsd:annotation>
- </xsd:element>
- <xsd:element name="like" type="binaryCOPType" substitutionGroup="binaryCOP">
- <xsd:annotation>
- <xsd:documentation>The like (LIKE) comparison operator.</xsd:documentation>
- </xsd:annotation>
- </xsd:element>
- <!-- === multiple === -->
- <xsd:element name="multiCOP" abstract="true" substitutionGroup="COP">
- <xsd:annotation>
- <xsd:documentation>An abstract element representing any multiple comparison operator.</xsd:documentation>
- </xsd:annotation>
- </xsd:element>
- <xsd:complexType name="multiCOPType">
- <xsd:annotation>
- <xsd:documentation>A complex type for multiple comparison operators.</xsd:documentation>
- </xsd:annotation>
- <xsd:sequence>
- <xsd:element ref="concept"/>
- <xsd:element name="values">
- <xsd:complexType>
- <xsd:sequence>
- <xsd:element ref="simpleExpression" maxOccurs="unbounded"/>
- </xsd:sequence>
- </xsd:complexType>
- </xsd:element>
- </xsd:sequence>
- </xsd:complexType>
- <xsd:element name="in" type="multiCOPType" substitutionGroup="multiCOP">
- <xsd:annotation>
- <xsd:documentation>The in (IN) comparison operator.</xsd:documentation>
- </xsd:annotation>
- </xsd:element>
- <!-- ===== LOGICAL OPERATORS ===== -->
- <xsd:element name="LOP" abstract="true" substitutionGroup="booleanOP">
- <xsd:annotation>
- <xsd:documentation>An abstract element representing any logical
- operator.</xsd:documentation>
- </xsd:annotation>
- </xsd:element>
- <!-- === unary === -->
- <xsd:element name="unaryLOP" abstract="true" substitutionGroup="LOP">
- <xsd:annotation>
- <xsd:documentation>An abstract element representing any unary logical
- operator.</xsd:documentation>
- </xsd:annotation>
- </xsd:element>
- <xsd:complexType name="unaryLOPType">
- <xsd:annotation>
- <xsd:documentation>A complex type for unary logical operators.</xsd:documentation>
- </xsd:annotation>
- <xsd:sequence>
- <xsd:element ref="booleanOP"/>
- </xsd:sequence>
- </xsd:complexType>
- <xsd:element name="not" substitutionGroup="unaryLOP">
- <xsd:annotation>
- <xsd:documentation>The not logical operator.</xsd:documentation>
- </xsd:annotation>
- <xsd:complexType>
- <xsd:complexContent>
- <xsd:extension base="unaryLOPType"/>
- </xsd:complexContent>
- </xsd:complexType>
- </xsd:element>
- <!-- === multiple === -->
- <xsd:element name="multiLOP" abstract="true" substitutionGroup="LOP">
- <xsd:annotation>
- <xsd:documentation>An abstract element representing any multiple logical
- operator.</xsd:documentation>
- </xsd:annotation>
- </xsd:element>
- <xsd:complexType name="multiLOPType">
- <xsd:annotation>
- <xsd:documentation>A complex type for multiple logical operators.</xsd:documentation>
- </xsd:annotation>
- <xsd:sequence minOccurs="2" maxOccurs="unbounded">
- <xsd:element ref="booleanOP"/>
- </xsd:sequence>
- </xsd:complexType>
- <xsd:element name="and" type="multiLOPType" substitutionGroup="multiLOP">
- <xsd:annotation>
- <xsd:documentation>The and logical operator.</xsd:documentation>
- </xsd:annotation>
- </xsd:element>
- <xsd:element name="or" type="multiLOPType" substitutionGroup="multiLOP">
- <xsd:annotation>
- <xsd:documentation>The or logical operator.</xsd:documentation>
- </xsd:annotation>
- </xsd:element>
- <!-- ===== ENVIRONMENT VARIABLE EXPRESSIONS ===== -->
- <xsd:element name="variable" abstract="true" substitutionGroup="expression">
- <xsd:annotation>
- <xsd:documentation>An abstract element to represent datasource specific values taken
- from the datasource environment by the wrapper.</xsd:documentation>
- </xsd:annotation>
- </xsd:element>
- <xsd:element name="date" substitutionGroup="variable">
- <xsd:annotation>
- <xsd:documentation>An element to represent ISO date like 2005-07-21. Substitutes an
- abstract environment variable element.</xsd:documentation>
- </xsd:annotation>
- <xsd:complexType/>
- </xsd:element>
- <xsd:element name="timestamp" substitutionGroup="variable">
- <xsd:annotation>
- <xsd:documentation>An element to represent an ISO timestamp like 2005-07-20 17:01:38.
- Substitutes an abstract environment variable element.</xsd:documentation>
- </xsd:annotation>
- <xsd:complexType/>
- </xsd:element>
- <xsd:element name="datasourceName" substitutionGroup="variable">
- <xsd:annotation>
- <xsd:documentation>An element to represent the name of the datasource. Substitutes an
- abstract environment variable element.</xsd:documentation>
- </xsd:annotation>
- <xsd:complexType/>
- </xsd:element>
- <xsd:element name="accessPoint" substitutionGroup="variable">
- <xsd:annotation>
- <xsd:documentation>An element to represent the access point of the datasource.
- Substitutes an abstract environment variable element.</xsd:documentation>
- </xsd:annotation>
- <xsd:complexType/>
- </xsd:element>
- <xsd:element name="lastUpdate" substitutionGroup="variable">
- <xsd:annotation>
- <xsd:documentation>An element to represent the timestamp of the last update of the
- datasource. Substitutes an abstract variable expression
- element.</xsd:documentation>
- </xsd:annotation>
- <xsd:complexType/>
- </xsd:element>
- <!-- ============================================= -->
- <!--REQUEST TYPE DEFINITIONS-->
- <!-- ============================================= -->
- <xsd:element name="request" type="requestType">
- <xsd:annotation>
- <xsd:documentation>Global element representing a request. This is a root element
- and must contain reference to the schema and namespaces used.</xsd:documentation>
- </xsd:annotation>
- </xsd:element>
- <xsd:complexType name="requestType">
- <xsd:annotation>
- <xsd:documentation>Request message format. Must always contain header and operation
- specific parameters.</xsd:documentation>
- </xsd:annotation>
- <xsd:sequence>
- <xsd:element name="header" type="headerType"/>
- <xsd:choice>
- <xsd:element name="ping">
- <xsd:complexType>
- <xsd:attributeGroup ref="operationRequestGroup"/>
- </xsd:complexType>
- </xsd:element>
- <xsd:element name="capabilities">
- <xsd:complexType>
- <xsd:attributeGroup ref="operationRequestGroup"/>
- </xsd:complexType>
- </xsd:element>
- <xsd:element name="metadata">
- <xsd:complexType>
- <xsd:attributeGroup ref="operationRequestGroup"/>
- </xsd:complexType>
- </xsd:element>
- <xsd:element name="inventory">
- <xsd:complexType>
- <xsd:choice>
- <xsd:element name="template" type="externalResourceType"/>
- <xsd:group ref="inventoryTemplateGroup"/>
- </xsd:choice>
- <xsd:attributeGroup ref="operationRequestGroup"/>
- <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:annotation>
- <xsd:complexType>
- <xsd:choice>
- <xsd:element name="template" type="externalResourceType"/>
- <xsd:group ref="searchTemplateGroup"/>
- </xsd:choice>
- <xsd:attributeGroup ref="operationRequestGroup"/>
- <xsd:attributeGroup ref="pagingParametersGroup"/>
- </xsd:complexType>
- </xsd:element>
- </xsd:choice>
- <xsd:element name="diagnostics" type="diagnosticsListType" minOccurs="0"/>
- </xsd:sequence>
- </xsd:complexType>
- <xsd:attributeGroup name="operationRequestGroup">
- <xsd:attribute name="envelope" type="xsd:boolean" use="optional" default="true"/>
- <xsd:attribute name="xslt" type="xsd:anyURI" use="optional"/>
- <xsd:attribute name="xslt-apply" type="xsd:boolean" use="optional" default="false"/>
- </xsd:attributeGroup>
- <xsd:attributeGroup name="pagingParametersGroup">
- <xsd:attribute name="count" type="xsd:boolean" use="optional" default="false"/>
- <xsd:attribute name="start" type="xsd:nonNegativeInteger" use="optional" default="0"/>
- <xsd:attribute name="limit" type="xsd:nonNegativeInteger" use="optional" default="1"/>
- </xsd:attributeGroup>
- <!-- ============================================= -->
- <!--RESPONSE TYPE DEFINITIONS-->
- <!-- ============================================= -->
- <xsd:element name="response" type="responseType">
- <xsd:annotation>
- <xsd:documentation>Global element representing a response.This is a root element
- and must contain reference to the schema and namespaces used</xsd:documentation>
- </xsd:annotation>
- </xsd:element>
- <xsd:complexType name="responseType">
- <xsd:annotation>
- <xsd:documentation>Response message format. Must always contain header, results from the
- requested operation and possible diagnostic messages.</xsd:documentation>
- </xsd:annotation>
- <xsd:sequence>
- <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:choice>
- <xsd:element name="diagnostics" type="diagnosticsListType" minOccurs="0">
- <xsd:annotation>
- <xsd:documentation>The diagnostics element is an optional part of TAPIR requests and response messages.
- Diagnostics may contain many pieces of information used for debugging and providing warnings or error messages.
- Individual diagnostics are held in a diagnosticList with an enumerated attribute for level and attributes for code and time.
- </xsd:documentation>
- </xsd:annotation>
- </xsd:element>
- </xsd:sequence>
- </xsd:complexType>
- <xsd:complexType name="resultSummaryType">
- <xsd:annotation>
- <xsd:documentation>Summary about inventory and search results. The first index of a
- record is 0. The number of records actually being returned is given in totalReturned.
- If counting was requested the totalMatched gives the "estimated" number of total
- matching records - not necessarily the number of valid records that can possibly be
- returned by paging through the entire record set.</xsd:documentation>
- </xsd:annotation>
- <xsd:attribute name="start" type="xsd:integer" use="required"/>
- <xsd:attribute name="next" type="xsd:integer" use="optional"/>
- <xsd:attribute name="totalReturned" type="xsd:integer" use="required"/>
- <xsd:attribute name="totalMatched" type="xsd:integer" use="optional"/>
- </xsd:complexType>
- <!-- ===== PING ===== -->
- <xsd:element name="pong" type="pingResultType"/>
- <xsd:complexType name="pingResultType">
- <xsd:annotation>
- <xsd:documentation>Format of ping operation result.</xsd:documentation>
- </xsd:annotation>
- </xsd:complexType>
- <!-- ===== CAPABILITIES ===== -->
- <xsd:element name="capabilities" type="capabilitiesResultType"/>
- <xsd:complexType name="capabilitiesResultType">
- <xsd:annotation>
- <xsd:documentation>Format of capabilities operation result.</xsd:documentation>
- </xsd:annotation>
- <xsd:sequence>
- <xsd:element name="operations">
- <xsd:complexType>
- <xsd:sequence>
- <xsd:element name="ping">
- <xsd:complexType/>
- </xsd:element>
- <xsd:element name="metadata">
- <xsd:complexType/>
- </xsd:element>
- <xsd:element name="capabilities">
- <xsd:complexType/>
- </xsd:element>
- <xsd:element name="view" 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: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="predefinedOutputModels">
- <xsd:complexType>
- <xsd:sequence>
- <xsd:element name="outputModel" type="externalResourceType" minOccurs="0" maxOccurs="unbounded"/>
- </xsd:sequence>
- </xsd:complexType>
- </xsd:element>
- <xsd:element name="customOutputModels">
- <xsd:complexType>
- <xsd:sequence minOccurs="0">
- <xsd:element name="structure" type="responseStructureCapabilitiesType" minOccurs="0">
- <xsd:annotation>
- <xsd:documentation>The supported subset of
- the XML Schema
- language.</xsd:documentation>
- </xsd:annotation>
- </xsd:element>
- </xsd:sequence>
- <xsd:attribute name="accepted" type="xsd:boolean" use="required"/>
- </xsd:complexType>
- </xsd:element>
- </xsd:sequence>
- </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:element name="concepts">
- <xsd:annotation>
- <xsd:documentation>The list of known conceptual schemas and their mapped
- concepts.</xsd:documentation>
- </xsd:annotation>
- <xsd:complexType>
- <xsd:sequence>
- <xsd:element name="conceptNameServers">
- <xsd:annotation>
- <xsd:documentation>The location of the alias file or
- ConceptNameServer to define simple aliases for fully qualified
- concept ids.</xsd:documentation>
- </xsd:annotation>
- <xsd:complexType>
- <xsd:sequence>
- <xsd:element name="server" type="externalResourceType" minOccurs="0" maxOccurs="unbounded">
- <xsd:annotation>
- <xsd:documentation>Multiple servers allowed. Ordered list with the first server(s) having priority over the following ones.</xsd:documentation>
- </xsd:annotation>
- </xsd:element>
- </xsd:sequence>
- </xsd:complexType>
- </xsd:element>
- <xsd:element name="schema" maxOccurs="unbounded">
- <xsd:annotation>
- <xsd:documentation>Namespace and location of a supported
- schema.</xsd:documentation>
- </xsd:annotation>
- <xsd:complexType>
- <xsd:sequence>
- <xsd:element name="mappedConcept" maxOccurs="unbounded">
- <xsd:annotation>
- <xsd:documentation>Each known and mapped concept of a
- schema listed with a boolean flag indicating if its
- searchable (default = true). The mandatory flag can
- be used to indicate that some concepts need to be
- present in response structures
- (default=false).</xsd:documentation>
- </xsd:annotation>
- <xsd:complexType>
- <xsd:complexContent>
- <xsd:extension base="qualifiedConceptReferenceType">
- <xsd:attribute name="searchable" type="xsd:boolean" use="optional" default="true"/>
- <xsd:attribute name="mandatory" type="xsd:boolean" use="optional" default="false"/>
- </xsd:extension>
- </xsd:complexContent>
- </xsd:complexType>
- </xsd:element>
- </xsd:sequence>
- <xsd:attribute name="namespace" type="xsd:anyURI" use="required"/>
- <xsd:attribute name="location" type="xsd:anyURI" use="required"/>
- </xsd:complexType>
- </xsd:element>
- </xsd:sequence>
- </xsd:complexType>
- </xsd:element>
- <xsd:element name="variables">
- <xsd:complexType>
- <xsd:sequence>
- <xsd:element name="environment" minOccurs="0">
- <xsd:complexType>
- <xsd:sequence>
- <xsd:element ref="variable" minOccurs="0" maxOccurs="unbounded"/>
- <xsd:element ref="custom" minOccurs="0">
- <xsd:annotation>
- <xsd:documentation>Extension slot for other variables.</xsd:documentation>
- </xsd:annotation>
- </xsd:element>
- </xsd:sequence>
- </xsd:complexType>
- </xsd:element>
- </xsd:sequence>
- </xsd:complexType>
- </xsd:element>
- <xsd:element name="settings">
- <xsd:annotation>
- <xsd:documentation>Information about the local configuration of a
- datasource.</xsd:documentation>
- </xsd:annotation>
- <xsd:complexType>
- <xsd:sequence>
- <xsd:element name="minQueryTermLength" type="xsd:integer" minOccurs="0">
- <xsd:annotation>
- <xsd:documentation>Indicates the minimum length for wild-card
- strings used in like comparisons.</xsd:documentation>
- </xsd:annotation>
- </xsd:element>
- <xsd:element name="maxElementRepetitions" type="xsd:integer" minOccurs="0">
- <xsd:annotation>
- <xsd:documentation>Indicates the maximum number of repetitions
- allowed in responses for each repeatable element defined in
- response structures.</xsd:documentation>
- </xsd:annotation>
- </xsd:element>
- <xsd:element name="maxElementLevels" type="xsd:integer" minOccurs="0">
- <xsd:annotation>
- <xsd:documentation>Indicates the maximum number of allowed levels
- (depth) for response elements.</xsd:documentation>
- </xsd:annotation>
- </xsd:element>
- <xsd:element name="maxResponseTags" type="xsd:integer" minOccurs="0">
- <xsd:annotation>
- <xsd:documentation>Indicates the maximum number of tags that can be
- returned by responses.</xsd:documentation>
- </xsd:annotation>
- </xsd:element>
- <xsd:element name="maxResponseSize" type="xsd:integer" minOccurs="0">
- <xsd:annotation>
- <xsd:documentation>Indicates the maximum size in kilobytes allowed
- to be returned by responses.</xsd:documentation>
- </xsd:annotation>
- </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:complexType name="responseStructureCapabilitiesType">
- <xsd:annotation>
- <xsd:documentation>A complete indication about what subset of the response structure
- specification is supported by a service.</xsd:documentation>
- </xsd:annotation>
- <xsd:sequence>
- <xsd:element name="basicSchemaLanguage">
- <xsd:annotation>
- <xsd:documentation>This includes the following xml schema tags: schema incl
- target namespace, element incl min/maxOccurs, attribute incl minOccurs,
- sequence, all If defined locally it should also include complexType +
- simpleType definitions incl complexContent +
- simpleContent</xsd:documentation>
- </xsd:annotation>
- <xsd:complexType/>
- </xsd:element>
- <xsd:element name="choice" minOccurs="0">
- <xsd:complexType/>
- </xsd:element>
- <xsd:element name="group" minOccurs="0">
- <xsd:annotation>
- <xsd:documentation>local group definitions without global referencing</xsd:documentation>
- </xsd:annotation>
- <xsd:complexType/>
- </xsd:element>
- <xsd:element name="import" minOccurs="0">
- <xsd:complexType/>
- </xsd:element>
- <xsd:element name="references" minOccurs="0">
- <xsd:annotation>
- <xsd:documentation>The global use of the tags grouped here when locally
- referenced via the "ref" attribute.</xsd:documentation>
- </xsd:annotation>
- <xsd:complexType>
- <xsd:sequence minOccurs="0">
- <xsd:element name="element" minOccurs="0">
- <xsd:complexType/>
- </xsd:element>
- <xsd:element name="attribute" minOccurs="0">
- <xsd:complexType/>
- </xsd:element>
- <xsd:element name="group" minOccurs="0">
- <xsd:complexType/>
- </xsd:element>
- <xsd:element name="attributeGroup" minOccurs="0">
- <xsd:complexType/>
- </xsd:element>
- <xsd:element name="complexType" minOccurs="0">
- <xsd:complexType/>
- </xsd:element>
- <xsd:element name="simpleType" minOccurs="0">
- <xsd:complexType>
- <xsd:sequence minOccurs="0">
- <xsd:element name="list" minOccurs="0">
- <xsd:complexType/>
- </xsd:element>
- <xsd:element name="union" minOccurs="0">
- <xsd:complexType/>
- </xsd:element>
- </xsd:sequence>
- </xsd:complexType>
- </xsd:element>
- </xsd:sequence>
- </xsd:complexType>
- </xsd:element>
- <xsd:element name="simpleTypes" minOccurs="0">
- <xsd:complexType>
- <xsd:sequence minOccurs="0">
- <xsd:element name="stringTypes" minOccurs="0">
- <xsd:complexType>
- <xsd:sequence minOccurs="0">
- <xsd:element name="string" minOccurs="0">
- <xsd:complexType/>
- </xsd:element>
- <xsd:element name="normalizedString" minOccurs="0">
- <xsd:complexType/>
- </xsd:element>
- <xsd:element name="token" minOccurs="0">
- <xsd:complexType/>
- </xsd:element>
- <xsd:element name="language" minOccurs="0">
- <xsd:complexType/>
- </xsd:element>
- <xsd:element name="Name" minOccurs="0">
- <xsd:complexType/>
- </xsd:element>
- <xsd:element name="NCName" minOccurs="0">
- <xsd:complexType/>
- </xsd:element>
- <xsd:element name="NMToken" minOccurs="0">
- <xsd:complexType/>
- </xsd:element>
- <xsd:element name="NMTokens" minOccurs="0">
- <xsd:complexType/>
- </xsd:element>
- <xsd:element name="ID" minOccurs="0">
- <xsd:complexType/>
- </xsd:element>
- <xsd:element name="IDREF" minOccurs="0">
- <xsd:complexType/>
- </xsd:element>
- <xsd:element name="IDREFS" minOccurs="0">
- <xsd:complexType/>
- </xsd:element>
- <xsd:element name="ENTITY" minOccurs="0">
- <xsd:complexType/>
- </xsd:element>
- <xsd:element name="ENTITIES" minOccurs="0">
- <xsd:complexType/>
- </xsd:element>
- </xsd:sequence>
- </xsd:complexType>
- </xsd:element>
- <xsd:element name="numericTypes" minOccurs="0">
- <xsd:complexType>
- <xsd:sequence minOccurs="0">
- <xsd:element name="float" minOccurs="0">
- <xsd:complexType/>
- </xsd:element>
- <xsd:element name="double" minOccurs="0">
- <xsd:complexType/>
- </xsd:element>
- <xsd:element name="decimal" minOccurs="0">
- <xsd:complexType/>
- </xsd:element>
- <xsd:element name="integerTypes" minOccurs="0">
- <xsd:complexType>
- <xsd:sequence minOccurs="0">
- <xsd:element name="integer" minOccurs="0">
- <xsd:complexType/>
- </xsd:element>
- <xsd:element name="long" minOccurs="0">
- <xsd:complexType/>
- </xsd:element>
- <xsd:element name="int" minOccurs="0"/>
- <xsd:element name="short" minOccurs="0">
- <xsd:complexType/>
- </xsd:element>
- <xsd:element name="byte" minOccurs="0">
- <xsd:complexType/>
- </xsd:element>
- <xsd:element name="positiveInteger" minOccurs="0">
- <xsd:complexType/>
- </xsd:element>
- <xsd:element name="nonPositiveInteger" minOccurs="0">
- <xsd:complexType/>
- </xsd:element>
- <xsd:element name="negativeInteger" minOccurs="0">
- <xsd:complexType/>
- </xsd:element>
- <xsd:element name="nonNegativeInteger" minOccurs="0">
- <xsd:complexType/>
- </xsd:element>
- <xsd:element name="unsignedLong" minOccurs="0">
- <xsd:complexType/>
- </xsd:element>
- <xsd:element name="unsignedInt" minOccurs="0">
- <xsd:complexType/>
- </xsd:element>
- <xsd:element name="unsignedShort" minOccurs="0">
- <xsd:complexType/>
- </xsd:element>
- <xsd:element name="unsignedByte" minOccurs="0">
- <xsd:complexType/>
- </xsd:element>
- </xsd:sequence>
- </xsd:complexType>
- </xsd:element>
- </xsd:sequence>
- </xsd:complexType>
- </xsd:element>
- <xsd:element name="dateTimeTypes" minOccurs="0">
- <xsd:complexType>
- <xsd:sequence minOccurs="0">
- <xsd:element name="duration" minOccurs="0">
- <xsd:complexType/>
- </xsd:element>
- <xsd:element name="dateTime" minOccurs="0">
- <xsd:complexType/>
- </xsd:element>
- <xsd:element name="time" minOccurs="0">
- <xsd:complexType/>
- </xsd:element>
- <xsd:element name="date" minOccurs="0">
- <xsd:complexType/>
- </xsd:element>
- <xsd:element name="gYearMonth" minOccurs="0">
- <xsd:complexType/>
- </xsd:element>
- <xsd:element name="gYear" minOccurs="0">
- <xsd:complexType/>
- </xsd:element>
- <xsd:element name="gMonthDay" minOccurs="0">
- <xsd:complexType/>
- </xsd:element>
- <xsd:element name="gDay" minOccurs="0">
- <xsd:complexType/>
- </xsd:element>
- <xsd:element name="gMonth" minOccurs="0">
- <xsd:complexType/>
- </xsd:element>
- </xsd:sequence>
- </xsd:complexType>
- </xsd:element>
- <xsd:element name="miscTypes" minOccurs="0">
- <xsd:complexType>
- <xsd:sequence minOccurs="0">
- <xsd:element name="boolean" minOccurs="0">
- <xsd:complexType/>
- </xsd:element>
- <xsd:element name="base64Binary" minOccurs="0">
- <xsd:complexType/>
- </xsd:element>
- <xsd:element name="hexBinary" minOccurs="0">
- <xsd:complexType/>
- </xsd:element>
- <xsd:element name="anyURI" minOccurs="0">
- <xsd:complexType/>
- </xsd:element>
- <xsd:element name="QName" minOccurs="0">
- <xsd:complexType/>
- </xsd:element>
- </xsd:sequence>
- </xsd:complexType>
- </xsd:element>
- </xsd:sequence>
- </xsd:complexType>
- </xsd:element>
- <xsd:element name="extension" minOccurs="0">
- <xsd:complexType/>
- </xsd:element>
- <xsd:element name="restriction" minOccurs="0">
- <xsd:complexType>
- <xsd:sequence minOccurs="0">
- <xsd:element name="minInclusive" minOccurs="0">
- <xsd:complexType/>
- </xsd:element>
- <xsd:element name="maxInclusive" minOccurs="0">
- <xsd:complexType/>
- </xsd:element>
- <xsd:element name="minExclusive" minOccurs="0">
- <xsd:complexType/>
- </xsd:element>
- <xsd:element name="maxExclusive" minOccurs="0">
- <xsd:complexType/>
- </xsd:element>
- <xsd:element name="fractionDigits" minOccurs="0">
- <xsd:complexType/>
- </xsd:element>
- <xsd:element name="totalDigits" minOccurs="0">
- <xsd:complexType/>
- </xsd:element>
- <xsd:element name="enumeration" minOccurs="0">
- <xsd:complexType/>
- </xsd:element>
- <xsd:element name="whiteSpace" minOccurs="0">
- <xsd:complexType/>
- </xsd:element>
- <xsd:element name="pattern" minOccurs="0">
- <xsd:complexType/>
- </xsd:element>
- <xsd:element name="length" minOccurs="0">
- <xsd:complexType/>
- </xsd:element>
- <xsd:element name="minLength" minOccurs="0">
- <xsd:complexType/>
- </xsd:element>
- <xsd:element name="maxLength" minOccurs="0">
- <xsd:complexType/>
- </xsd:element>
- </xsd:sequence>
- </xsd:complexType>
- </xsd:element>
- <xsd:element name="substitutionGroup" minOccurs="0">
- <xsd:complexType/>
- </xsd:element>
- <xsd:element name="constraints" minOccurs="0">
- <xsd:complexType>
- <xsd:sequence minOccurs="0">
- <xsd:element name="field" minOccurs="0">
- <xsd:complexType/>
- </xsd:element>
- <xsd:element name="selector" minOccurs="0">
- <xsd:complexType/>
- </xsd:element>
- <xsd:element name="unique" minOccurs="0">
- <xsd:complexType/>
- </xsd:element>
- <xsd:element name="key" minOccurs="0">
- <xsd:complexType/>
- </xsd:element>
- <xsd:element name="keyref" minOccurs="0">
- <xsd:complexType/>
- </xsd:element>
- </xsd:sequence>
- </xsd:complexType>
- </xsd:element>
- </xsd:sequence>
- </xsd:complexType>
- <xsd:complexType name="filterCapabilitiesType">
- <xsd:annotation>
- <xsd:documentation>A complete indication about what filter operators are supported by a
- service.</xsd:documentation>
- </xsd:annotation>
- <xsd:sequence>
- <xsd:element name="encoding" minOccurs="0">
- <xsd:complexType>
- <xsd:sequence>
- <xsd:element name="expression">
- <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: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 ref="custom" minOccurs="0"/>
- </xsd:sequence>
- </xsd:complexType>
- </xsd:element>
- <xsd:element name="booleanOperators">
- <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">
- <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="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: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:sequence>
- </xsd:complexType>
- </xsd:element>
- </xsd:sequence>
- </xsd:complexType>
- <!-- ===== METADATA ===== -->
- <xsd:element name="metadata" type="metadataResultType">
- <xsd:annotation>
- <xsd:documentation>Global element to validate external metadata XML
- files.</xsd:documentation>
- </xsd:annotation>
- </xsd:element>
- <xsd:complexType name="metadataResultType">
- <xsd:annotation>
- <xsd:documentation>Format of metadata operation result.</xsd:documentation>
- </xsd:annotation>
- <xsd:sequence>
- <xsd:element ref="dc:title">
- <xsd:annotation>
- <xsd:documentation>The name of this service possibly in different
- languages.</xsd:documentation>
- </xsd:annotation>
- </xsd:element>
- <xsd:element ref="dc:type">
- <xsd:annotation>
- <xsd:documentation>The nature or genre of the content of the resource.
- http://purl.org/dc/dcmitype/Service</xsd:documentation>
- </xsd:annotation>
- </xsd:element>
- <xsd:element name="accesspoint" type="xsd:anyURI">
- <xsd:annotation>
- <xsd:documentation>The URL of the access point of this
- service.</xsd:documentation>
- </xsd:annotation>
- </xsd:element>
- <xsd:element ref="dc:description">
- <xsd:annotation>
- <xsd:documentation>Description may include but is not limited to: an abstract,
- table of contents, reference to a graphical representation
- of content or a free-text account of the content.</xsd:documentation>
- </xsd:annotation>
- </xsd:element>
- <xsd:element ref="dc:language">
- <xsd:annotation>
- <xsd:documentation></xsd:documentation>
- </xsd:annotation>
- </xsd:element>
- <xsd:element ref="dc:subject">
- <xsd:annotation>
- <xsd:documentation>Subject and Keywords.Typically, a Subject will be expressed as keywords,
- key phrases or classification codes that describe a topic
- of the resource. Recommended best practice is to select
- a value from a controlled vocabulary or formal
- classification scheme</xsd:documentation>
- </xsd:annotation>
- </xsd:element>
- <xsd:element ref="dct:bibliographicCitation">
- <xsd:annotation>
- <xsd:documentation>Recommended practice is to include sufficient
- bibliographic detail to identify the resource as
- unambiguously as possible, whether or not the
- citation is in a standard form.</xsd:documentation>
- </xsd:annotation>
- </xsd:element>
- <xsd:element ref="dc:rights">
- <xsd:annotation>
- <xsd:documentation>Information about who can access the
- resource or an indication of its security status.</xsd:documentation>
- </xsd:annotation>
- </xsd:element>
- <xsd:element ref="dct:modified">
- <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"/>
- <xsd:attribute name="maxDuration" type="xsd:duration"/>
- <xsd:attribute name="frequency" type="xsd:duration" />
- </xsd:complexType>
- </xsd:element>
- <xsd:element name="relatedEntity" type="relatedEntityInformationType" maxOccurs="unbounded">
- <xsd:annotation>
- <xsd:documentation>Entities (companies, organisations, institutions) related to
- this service with their respective roles, e.g. publisher, data
- supplier</xsd:documentation>
- </xsd:annotation>
- </xsd:element>
- <xsd:element ref="custom" minOccurs="0"/>
- </xsd:sequence>
- </xsd:complexType>
- <xsd:complexType name="relatedEntityInformationType">
- <xsd:annotation>
- <xsd:documentation>Information about an entity that may have some relationship with the
- service being provided.</xsd:documentation>
- </xsd:annotation>
- <xsd:sequence>
- <xsd:element name="role" type="entityRoleExtensionType" maxOccurs="unbounded">
- <xsd:annotation>
- <xsd:documentation>Used to specify the roles of a related entity, such as "data
- supplier", "technical host", etc.</xsd:documentation>
- </xsd:annotation>
- </xsd:element>
- <xsd:element name="entity" type="entityInformationType"/>
- </xsd:sequence>
- </xsd:complexType>
- <xsd:simpleType name="entityRoleType">
- <xsd:restriction base="xsd:string">
- <xsd:enumeration value="data supplier"/>
- <xsd:enumeration value="technical host"/>
- </xsd:restriction>
- </xsd:simpleType>
- <xsd:simpleType name="entityRoleExtensionType">
- <xsd:union memberTypes="entityRoleType xsd:string"/>
- </xsd:simpleType>
- <xsd:element name="entity" type="entityInformationType">
- <xsd:annotation>
- <xsd:documentation>Global element to validate external XML representations of entities.
- An entity here could be a company, organisation, institution, or
- person.</xsd:documentation>
- </xsd:annotation>
- </xsd:element>
- <xsd:simpleType name="contactRoleType">
- <xsd:restriction base="xsd:string">
- <xsd:enumeration value="data administrator"/>
- <xsd:enumeration value="system administrator"/>
- </xsd:restriction>
- </xsd:simpleType>
- <xsd:simpleType name="contactRoleExtensionType">
- <xsd:union memberTypes="contactRoleType xsd:string"/>
- </xsd:simpleType>
- <xsd:complexType name="entityInformationType">
- <xsd:annotation>
- <xsd:documentation>Entity information.</xsd:documentation>
- </xsd:annotation>
- <xsd:sequence>
- <xsd:element name="identifier" type="xsd:string" minOccurs="0">
- <xsd:annotation>
- <xsd:documentation>A global unique identifier for the entity.</xsd:documentation>
- </xsd:annotation>
- </xsd:element>
- <xsd:element name="name" type="languageAwareElementType" maxOccurs="unbounded">
- <xsd:annotation>
- <xsd:documentation>The name of the entity possibly in different
- languages.</xsd:documentation>
- </xsd:annotation>
- </xsd:element>
- <xsd:element name="acronym" type="xsd:string" minOccurs="0">
- <xsd:annotation>
- <xsd:documentation>An acronym for the entity name</xsd:documentation>
- </xsd:annotation>
- </xsd:element>
- <xsd:element name="logoURL" type="xsd:anyURI" minOccurs="0">
- <xsd:annotation>
- <xsd:documentation>A URL to a small logo of the entity.</xsd:documentation>
- </xsd:annotation>
- </xsd:element>
- <xsd:element name="description" type="languageAwareElementType" minOccurs="0" maxOccurs="unbounded">
- <xsd:annotation>
- <xsd:documentation>The description of the entity possibly in different
- languages.</xsd:documentation>
- </xsd:annotation>
- </xsd:element>
- <xsd:element name="address" type="xsd:string" minOccurs="0"/>
- <xsd:element name="relatedInformation" type="xsd:anyURI" minOccurs="0" maxOccurs="unbounded">
- <xsd:annotation>
- <xsd:documentation>Other related information about this entity found at the
- specified URL.</xsd:documentation>
- </xsd:annotation>
- </xsd:element>
- <xsd:element name="hasContact" maxOccurs="unbounded">
- <xsd:complexType>
- <xsd:sequence>
- <xsd:element name="role" type="contactRoleExtensionType" maxOccurs="unbounded" />
- <xsd:element ref="vcard:VCARD"/>
- </xsd:sequence>
- </xsd:complexType>
- </xsd:element>
- <xsd:element ref="geo:Point" minOccurs="0">
- <xsd:annotation>
- <xsd:documentation>Location of the entity in decimal WGS84 latitude and longitude (and optional altitude) as defined by the W3C Basic Geo Vocabulary</xsd:documentation>
- </xsd:annotation>
- </xsd:element>
- <xsd:element ref="custom" minOccurs="0"/>
- </xsd:sequence>
- <xsd:attribute ref="lang"/>
- </xsd:complexType>
- <!-- ===== INVENTORY===== -->
- <xsd:complexType name="inventoryResultType">
- <xsd:annotation>
- <xsd:documentation>Format of inventory operation result.</xsd:documentation>
- </xsd:annotation>
- <xsd:sequence>
- <xsd:element name="concepts">
- <xsd:complexType>
- <xsd:sequence>
- <xsd:element ref="concept" maxOccurs="unbounded"/>
- </xsd:sequence>
- </xsd:complexType>
- </xsd:element>
- <xsd:element name="record" minOccurs="0" maxOccurs="unbounded">
- <xsd:annotation>
- <xsd:documentation>A distinct combination of values for all "inventoried"
- concepts. The optional attribute "count" is used to count the number of
- occurrences for this distinct combination and will only be set if the count
- flag was used when requesting an inventory.</xsd:documentation>
- </xsd:annotation>
- <xsd:complexType>
- <xsd:sequence>
- <xsd:element name="value" maxOccurs="unbounded">
- <xsd:annotation>
- <xsd:documentation>A single value for a single concept. The sequence
- of the values should correspond to the sequence used in the
- request.</xsd:documentation>
- </xsd:annotation>
- <xsd:complexType>
- <xsd:simpleContent>
- <xsd:extension base="xsd:string"/>
- </xsd:simpleContent>
- </xsd:complexType>
- </xsd:element>
- </xsd:sequence>
- <xsd:attribute name="count" type="xsd:positiveInteger" use="optional"/>
- </xsd:complexType>
- </xsd:element>
- <xsd:element name="summary" type="resultSummaryType">
- <xsd:annotation>
- <xsd:documentation>Used to show information about the number of records for
- counting and paging purposes.</xsd:documentation>
- </xsd:annotation>
- </xsd:element>
- </xsd:sequence>
- </xsd:complexType>
- <!-- ===== SEARCH ===== -->
- <xsd:complexType name="searchResultType">
- <xsd:annotation>
- <xsd:documentation>Format of search operation result.</xsd:documentation>
- </xsd:annotation>
- <xsd:sequence>
- <xsd:any/>
- <xsd:element name="summary" type="resultSummaryType">
- <xsd:annotation>
- <xsd:documentation>Used to show information about the number of records for
- counting and paging purposes.</xsd:documentation>
- </xsd:annotation>
- </xsd:element>
- </xsd:sequence>
- </xsd:complexType>
-</xsd:schema>
+<?xml version="1.0"?>
+<!-- $Id$ -->
+<xsd:schema targetNamespace="http://res.tdwg.org/tapir/1.0"
+ xmlns="http://res.tdwg.org/tapir/1.0"
+ xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:dct="http://purl.org/dc/terms/"
+ xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#"
+ xmlns:vcard="http://www.w3.org/2001/vcard-rdf/3.0#"
+ elementFormDefault="unqualified"
+ attributeFormDefault="unqualified" version="1.0" xml:lang="EN" >
+ <xsd:annotation>
+ <xsd:documentation xml:lang="en">
+ TAPIR XML Schema. TAPIR is an acronym for TDWG Access Protocol for Information Retrieval.
+ A unified and extended protocol based on DiGIR and BioCASE. TAPIR specifies a standardised,
+ stateless, HTTP transmittable, XML-based request and response protocol for accessing, structured
+ data that may be stored on any number of distributed databases of varied physical and logical
+ structure. TAPIR documents are either request or response types, as defined by their root element.
+ </xsd:documentation>
+ <xsd:appinfo>
+ <dc:title>TAPIR XML Schema</dc:title>
+ <dc:creator>Markus Döring [m.doering(a)bgbm.org]</dc:creator>
+ <dc:creator>Renato De Giovanni [renato(a)cria.org.br]</dc:creator>
+ <dc:relation>http://ww3.bgbm.org/protocolwiki</dc:relation>
+ <dc:contributor>Charles Copp [eim(a)globalnet.co.uk]</dc:contributor>
+ </xsd:appinfo>
+ </xsd:annotation>
+ <!-- ============================================= -->
+ <!-- NAMESPACE IMPORTS -->
+ <!-- ============================================= -->
+ <xsd:import namespace="http://www.w3.org/XML/1998/namespace"
+ schemaLocation="http://www.w3.org/2001/03/xml.xsd"/>
+ <xsd:import namespace="http://purl.org/dc/elements/1.1/"
+ schemaLocation="dc.xsd"/>
+ <xsd:import namespace="http://purl.org/dc/terms/"
+ schemaLocation="dcterms.xsd"/>
+ <xsd:import namespace="http://www.w3.org/2003/01/geo/wgs84_pos#"
+ schemaLocation="w3c_geo.xsd"/>
+ <xsd:import namespace="http://www.w3.org/2001/vcard-rdf/3.0#"
+ schemaLocation="vcard.xsd"/>
+ <!-- ============================================= -->
+ <!-- SIMPLE TYPE DEFINITIONS-->
+ <!-- ============================================= -->
+ <xsd:simpleType name="simpleXPathType">
+ <xsd:annotation>
+ <xsd:documentation>A simple XPath expression used to reference XML nodes.
+ e.g. /dataset/specimen/identification/name</xsd:documentation>
+ </xsd:annotation>
+ <xsd:restriction base="xsd:string"/>
+ </xsd:simpleType>
+ <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(a)abcd1.20.</xsd:documentation>
+ </xsd:annotation>
+ <xsd:restriction base="xsd:string"/>
+ </xsd:simpleType>
+ <!-- ============================================= -->
+ <!-- GLOBAL ATTRIBUTES-->
+ <!-- ============================================= -->
+ <xsd:attribute name="lang" type="xsd:language">
+ <xsd:annotation>
+ <xsd:documentation>Attribute for language identification. This attribute was globally
+ declared to be referenced by others, and therefore simulate the same way of using
+ xml:lang (in case it could be necessary to switch to xml:lang in the future).</xsd:documentation>
+ </xsd:annotation>
+ </xsd:attribute>
+ <!-- ============================================= -->
+ <!-- GENERAL COMPLEX TYPE DEFINITIONS-->
+ <!-- ============================================= -->
+ <xsd:complexType name="externalResourceType">
+ <xsd:annotation>
+ <xsd:documentation>A URI that points to a document or schema referenced by TAPIR operations</xsd:documentation>
+ </xsd:annotation>
+ <xsd:attribute name="location" type="xsd:anyURI" use="required"/>
+ </xsd:complexType>
+ <xsd:complexType name="languageAwareElementType">
+ <xsd:annotation>
+ <xsd:documentation> String with a language attribute. A type for elements that may be language specific.</xsd:documentation>
+ </xsd:annotation>
+ <xsd:simpleContent>
+ <xsd:extension base="xsd:string">
+ <xsd:attribute ref="xml:lang" use="optional"/>
+ </xsd:extension>
+ </xsd:simpleContent>
+ </xsd:complexType>
+ <xsd:complexType name="nodeReferenceType">
+ <xsd:annotation>
+ <xsd:documentation>A reference to an XML node in a conceptual schema.
+ Uses a simple XPath stored as an attribute.</xsd:documentation>
+ </xsd:annotation>
+ <xsd:attribute name="path" type="simpleXPathType" use="required"/>
+ </xsd:complexType>
+ <xsd:complexType name="qualifiedConceptReferenceType">
+ <xsd:annotation>
+ <xsd:documentation>A qualified reference to a concept. Uses an attribute to hold a concept
+ and its namespace prefix or an alias as defined in qualifiedConceptIdType </xsd:documentation>
+ </xsd:annotation>
+ <xsd:attribute name="id" type="qualifiedConceptIdType" use="required"/>
+ </xsd:complexType>
+ <xsd:complexType name="softwareInformationType">
+ <xsd:annotation>
+ <xsd:documentation> Information about the software used to construct or relay a TAPIR request or response.
+ The software name and version are stored as simple string attributes.</xsd:documentation>
+ </xsd:annotation>
+ <xsd:attribute name="name" type="xsd:string" use="required"/>
+ <xsd:attribute name="version" type="xsd:string" use="required"/>
+ </xsd:complexType>
+ <xsd:complexType name="headerType">
+ <xsd:annotation>
+ <xsd:documentation>A Header is part of request and response messages. The Header describes the source of the request or response
+ and optionally its destination. It may also describe the software that sent the request or response
+ and there is a custom section for extending the information e.g. with information related to security or access.
+ If the noresponse attribute is set to true the request is meant for logging only and no response should be generated.
+ The header can list several sources, where for instance, a request is cascaded through one or more portals. </xsd:documentation>
+ </xsd:annotation>
+ <xsd:sequence>
+ <xsd:element name="source" maxOccurs="unbounded">
+ <xsd:annotation>
+ <xsd:documentation>Source of this message. Repeatable to trace back all servers
+ of a possible cascading transaction, but always starting (first in the
+ sequence) with the original source, the client. Holds a URL or at least the
+ IP of the source with the timestamp when the message has been processed as
+ an attribute in ISO format.</xsd:documentation>
+ </xsd:annotation>
+ <xsd:complexType>
+ <xsd:sequence minOccurs="0">
+ <xsd:element name="software" minOccurs="0">
+ <xsd:annotation>
+ <xsd:documentation>The optional software element should indicate the
+ software including its version, used to generate or modify the
+ document. It may also list any dependencies on libraries and other software</xsd:documentation>
+ </xsd:annotation>
+ <xsd:complexType>
+ <xsd:complexContent>
+ <xsd:extension base="softwareInformationType">
+ <xsd:sequence minOccurs="0">
+ <xsd:element name="dependencies" minOccurs="0">
+ <xsd:annotation>
+ <xsd:documentation>Represents set of dependecies for this software.</xsd:documentation>
+ </xsd:annotation>
+ <xsd:complexType>
+ <xsd:sequence minOccurs="0">
+ <xsd:element name="dependency" type="softwareInformationType" minOccurs="0" maxOccurs="unbounded">
+ <xsd:annotation>
+ <xsd:documentation>A singledependency for the software,e.g. a library, framework, component, OS,...</xsd:documentation>
+ </xsd:annotation>
+ </xsd:element>
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ </xsd:sequence>
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+ </xsd:element>
+ </xsd:sequence>
+ <xsd:attribute name="accesspoint" type="xsd:anyURI" use="required"/>
+ <xsd:attribute name="sendtime" type="xsd:dateTime" use="required"/>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="destination" type="xsd:string" minOccurs="0">
+ <xsd:annotation>
+ <xsd:documentation>Destination of the message. Takes a string which usually will
+ be a URI but can be anything e.g. include resource names etc. It is optional
+ and an implementation is free to ignore it.</xsd:documentation>
+ </xsd:annotation>
+ </xsd:element>
+ <xsd:element ref="custom" minOccurs="0"/>
+ </xsd:sequence>
+ </xsd:complexType>
+ <xsd:complexType name="diagnosticMessageType">
+ <xsd:annotation>
+ <xsd:documentation>A diagnostic message from the service with message type and time presented as attributes
+ including code, level ( with enumerated types e.g. error, warning, additional
+ information, etc). and a time stamp</xsd:documentation>
+ </xsd:annotation>
+ <xsd:simpleContent>
+ <xsd:extension base="xsd:string">
+ <xsd:attribute name="code" type="xsd:string" use="optional"/>
+ <xsd:attribute name="level" use="required">
+ <xsd:simpleType>
+ <xsd:restriction base="xsd:string">
+ <xsd:enumeration value="debug"/>
+ <xsd:enumeration value="info"/>
+ <xsd:enumeration value="warn"/>
+ <xsd:enumeration value="error"/>
+ <xsd:enumeration value="fatal"/>
+ </xsd:restriction>
+ </xsd:simpleType>
+ </xsd:attribute>
+ <xsd:attribute name="time" type="xsd:dateTime" use="optional"/>
+ </xsd:extension>
+ </xsd:simpleContent>
+ </xsd:complexType>
+ <xsd:complexType name="diagnosticsListType">
+ <xsd:annotation>
+ <xsd:documentation>Provides the means to present a list of diagnostic messages from the service.</xsd:documentation>
+ </xsd:annotation>
+ <xsd:sequence minOccurs="0">
+ <xsd:element name="diagnostic" type="diagnosticMessageType" minOccurs="0" maxOccurs="unbounded"/>
+ </xsd:sequence>
+ </xsd:complexType>
+ <xsd:element name="custom">
+ <xsd:annotation>
+ <xsd:documentation>Extension slot for additional information not defined in the schema.</xsd:documentation>
+ </xsd:annotation>
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:any minOccurs="0" maxOccurs="unbounded">
+ <xsd:annotation>
+ <xsd:documentation>For any custom extension. E.g what security related
+ capabilities does the provider have? Encryption, access restriction,
+ etc.</xsd:documentation>
+ </xsd:annotation>
+ </xsd:any>
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <!-- ============================================= -->
+ <!--EXTERNAL QUERY TEMPLATE DEFINITIONS-->
+ <!-- ============================================= -->
+ <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
+ 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,
+ that uses 'outputModel' as the root element. </xsd:documentation>
+ </xsd:annotation>
+ <xsd:sequence>
+ <xsd:element name="structure">
+ <xsd:annotation>
+ <xsd:documentation>The response structure definition. By default this should be
+ a subset of the XML Schema language but others such as RELAX NG could be
+ supported in the future.</xsd:documentation>
+ </xsd:annotation>
+ <xsd:complexType>
+ <xsd:choice>
+ <xsd:element name="schema" type="externalResourceType"/>
+ <xsd:any namespace="##other">
+ <xsd:annotation>
+ <xsd:documentation>A structure represented through a subset of the
+ XML Schema language defining how elements should be
+ returned.</xsd:documentation>
+ </xsd:annotation>
+ </xsd:any>
+ </xsd:choice>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="indexingElement" maxOccurs="unbounded">
+ <xsd:annotation>
+ <xsd:documentation>A simple XPath pointing to a response structure node that
+ should be used as a reference for counting.</xsd:documentation>
+ </xsd:annotation>
+ <xsd:complexType>
+ <xsd:attribute name="path" type="simpleXPathType" use="required"/>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="mapping">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="node" minOccurs="0" maxOccurs="unbounded">
+ <xsd:annotation>
+ <xsd:documentation>Maps a node from the structure definition to a
+ list of qualified concepts, literals or environment variables,
+ which should be concatenated in the output. If the automapping attribute
+ is set to 'true' then the server application should match concepts with the same namespace and path.
+ For instance if the wrapper and the search request are both using a canonical ABCD model or Darwin Core Model,
+ then concepts will be automatically recognised.</xsd:documentation>
+ </xsd:annotation>
+ <xsd:complexType>
+ <xsd:choice maxOccurs="unbounded">
+ <xsd:annotation>
+ <xsd:documentation>Multiple mappings represent concatenation.</xsd:documentation>
+ </xsd:annotation>
+ <xsd:element ref="concept"/>
+ <xsd:element ref="literal"/>
+ <xsd:element ref="variable"/>
+ </xsd:choice>
+ <xsd:attribute name="path" type="simpleXPathType" use="required"/>
+ </xsd:complexType>
+ </xsd:element>
+ </xsd:sequence>
+ <xsd:attribute name="automapping" type="xsd:boolean" use="optional" default="false"/>
+ </xsd:complexType>
+ </xsd:element>
+ </xsd:sequence>
+ </xsd:complexType>
+ <xsd:element name="queryTemplate" abstract="true"/>
+ <xsd:complexType name="extResourceDocumentationType">
+ <xsd:sequence>
+ <xsd:element name="label" type="xsd:string" minOccurs="0"/>
+ <xsd:element name="documentation" type="xsd:string" minOccurs="0"/>
+ </xsd:sequence>
+ </xsd:complexType>
+ <xsd:element name="searchTemplate" substitutionGroup="queryTemplate" type="searchTemplateType"/>
+ <xsd:group name="searchTemplateGroup">
+ <xsd:sequence>
+ <xsd:element name="outputModel" type="externalResourceType"/>
+ <xsd:element name="partial" minOccurs="0">
+ <xsd:annotation>
+ <xsd:documentation>Select only a subset of the
+ entire response structure to be used in the
+ response. Useful for working with large cached
+ external structures referenced via URLs. Select
+ branch nodes if you want all concepts below
+ included. A partial search must take care that
+ response documents still validate. Thus
+ mandatory elements or attributes of the response
+ structure, which are not listed in the partial
+ search ,must be included in the response
+ content.</xsd:documentation>
+ </xsd:annotation>
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="node" type="nodeReferenceType" maxOccurs="unbounded">
+ <xsd:annotation>
+ <xsd:documentation>A node taken from the response structure definition.</xsd:documentation>
+ </xsd:annotation>
+ </xsd:element>
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <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
+ results.</xsd:documentation>
+ </xsd:annotation>
+ <xsd:complexType>
+ <xsd:sequence>
+ <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
+ ordering will be used instead of the default ascending one.</xsd:documentation>
+ </xsd:annotation>
+ <xsd:complexType>
+ <xsd:complexContent>
+ <xsd:extension base="conceptType">
+ <xsd:attribute name="descend" type="xsd:boolean" use="optional" default="false"/>
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+ </xsd:element>
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ </xsd:sequence>
+ </xsd:group>
+ <xsd:complexType name="searchTemplateType">
+ <xsd:annotation>
+ <xsd:documentation>TAPIR can use a template for configuring search requests.
+ The Template is accessed, as an external document, by its URI</xsd:documentation>
+ </xsd:annotation>
+ <xsd:complexContent>
+ <xsd:extension base="extResourceDocumentationType">
+ <xsd:sequence>
+ <xsd:group ref="searchTemplateGroup" />
+ </xsd:sequence>
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+ <xsd:element name="inventoryTemplate" substitutionGroup="queryTemplate"
+ type="inventoryTemplateType"/>
+ <xsd:group name="inventoryTemplateGroup">
+ <xsd:annotation>
+ <xsd:documentation>TAPIR can use a template for configuring inventory requests.
+ The Template is accessed, as an external document, by its URI</xsd:documentation>
+ </xsd:annotation>
+ <xsd:sequence>
+ <xsd:element name="concepts">
+ <xsd:annotation>
+ <xsd:documentation>Used to specify a list of concepts to make an inventory on.</xsd:documentation>
+ </xsd:annotation>
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="concept" type="qualifiedConceptReferenceType" minOccurs="0" maxOccurs="unbounded">
+ <xsd:annotation>
+ <xsd:documentation>A single qualified concept</xsd:documentation>
+ </xsd:annotation>
+ </xsd:element>
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element ref="filter" minOccurs="0"/>
+ </xsd:sequence>
+ </xsd:group>
+ <xsd:complexType name="inventoryTemplateType">
+ <xsd:annotation>
+ <xsd:documentation>TAPIR can use a template for configuring inventory requests.
+ The Template is accessed, as an external document, by its URI</xsd:documentation>
+ </xsd:annotation>
+ <xsd:complexContent>
+ <xsd:extension base="extResourceDocumentationType">
+ <xsd:sequence>
+ <xsd:group ref="inventoryTemplateGroup" />
+ </xsd:sequence>
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+ <!-- ============================================= -->
+ <!-- FILTER DEFINITIONS-->
+ <!-- ============================================= -->
+ <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
+ searching conditions.</xsd:documentation>
+ </xsd:annotation>
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element ref="booleanOP"/>
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <!-- ===== EXPRESSIONS ===== -->
+ <xsd:element name="expression" abstract="true">
+ <xsd:annotation>
+ <xsd:documentation>An abstract element representing any expression (literal, parameter
+ or concept).</xsd:documentation>
+ </xsd:annotation>
+ </xsd:element>
+ <!-- ===== SIMPLE EXPRESSIONS ===== -->
+ <xsd:element name="simpleExpression" abstract="true" substitutionGroup="expression"/>
+ <xsd:element name="literal" substitutionGroup="simpleExpression">
+ <xsd:annotation>
+ <xsd:documentation>An element to represent literals / values. Substitutes an abstract
+ expression element.</xsd:documentation>
+ </xsd:annotation>
+ <xsd:complexType>
+ <xsd:attribute name="value" type="xsd:string" use="required"/>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="parameter" substitutionGroup="simpleExpression">
+ <xsd:annotation>
+ <xsd:documentation>An element to represent external parameters e.g. via CGI. Substitutes
+ an abstract expression element.</xsd:documentation>
+ </xsd:annotation>
+ <xsd:complexType>
+ <xsd:attribute name="name" type="xsd:string" use="required"/>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="concept" type="conceptType" substitutionGroup="simpleExpression">
+ <xsd:annotation>
+ <xsd:documentation>An element to represent a concept of one specific conceptual schema.
+ Substitutes an abstract expression element.</xsd:documentation>
+ </xsd:annotation>
+ </xsd:element>
+ <xsd:complexType name="conceptType">
+ <xsd:complexContent>
+ <xsd:extension base="qualifiedConceptReferenceType"/>
+ </xsd:complexContent>
+ </xsd:complexType>
+ <!-- ===== COMPLEX EXPRESSIONS ===== -->
+ <xsd:element name="complexExpression" abstract="true" substitutionGroup="expression"/>
+ <!-- === ARITHMETIC EXPRESSION OPERATORS ===-->
+ <xsd:element name="AOP" abstract="true" substitutionGroup="complexExpression">
+ <xsd:annotation>
+ <xsd:documentation>An abstract element representing any Arithmetic operator.</xsd:documentation>
+ </xsd:annotation>
+ </xsd:element>
+ <xsd:complexType name="binaryAOPType">
+ <xsd:annotation>
+ <xsd:documentation>A binary arithmetic operator with the first expression argument being
+ the left argument of the operation.</xsd:documentation>
+ </xsd:annotation>
+ <xsd:sequence>
+ <xsd:element ref="expression"/>
+ <xsd:element ref="expression"/>
+ </xsd:sequence>
+ </xsd:complexType>
+ <xsd:element name="add" type="binaryAOPType" substitutionGroup="AOP">
+ <xsd:annotation>
+ <xsd:documentation>The arithmetic addition (+) operator.</xsd:documentation>
+ </xsd:annotation>
+ </xsd:element>
+ <xsd:element name="sub" type="binaryAOPType" substitutionGroup="AOP">
+ <xsd:annotation>
+ <xsd:documentation>The arithmetic subtraction (-) operator.</xsd:documentation>
+ </xsd:annotation>
+ </xsd:element>
+ <xsd:element name="mul" type="binaryAOPType" substitutionGroup="AOP">
+ <xsd:annotation>
+ <xsd:documentation>The arithmetic multiplication (*) operator.</xsd:documentation>
+ </xsd:annotation>
+ </xsd:element>
+ <xsd:element name="div" type="binaryAOPType" substitutionGroup="AOP">
+ <xsd:annotation>
+ <xsd:documentation>The arithmetic division (/) operator.</xsd:documentation>
+ </xsd:annotation>
+ </xsd:element>
+ <!-- ===== ABSTRACT OPERATOR BASE TYPE ===== -->
+ <xsd:element name="booleanOP" abstract="true">
+ <xsd:annotation>
+ <xsd:documentation>An abstract element representing any logical operator.</xsd:documentation>
+ </xsd:annotation>
+ </xsd:element>
+ <!-- ===== COMPARATIVE OPERATORS ===== -->
+ <xsd:element name="COP" abstract="true" substitutionGroup="booleanOP">
+ <xsd:annotation>
+ <xsd:documentation>An abstract element representing any comparison operator.</xsd:documentation>
+ </xsd:annotation>
+ </xsd:element>
+ <!-- === unary === -->
+ <xsd:element name="unaryCOP" abstract="true" substitutionGroup="COP">
+ <xsd:annotation>
+ <xsd:documentation>An abstract element representing any unary comparison operator.</xsd:documentation>
+ </xsd:annotation>
+ </xsd:element>
+ <xsd:complexType name="unaryCOPType">
+ <xsd:annotation>
+ <xsd:documentation>A complex type for unary comparison operators.</xsd:documentation>
+ </xsd:annotation>
+ <xsd:sequence>
+ <xsd:element ref="concept"/>
+ </xsd:sequence>
+ </xsd:complexType>
+ <xsd:element name="isNull" type="unaryCOPType" substitutionGroup="unaryCOP">
+ <xsd:annotation>
+ <xsd:documentation>Compares if a concept is null. Use equals element to compare for empty strings.</xsd:documentation>
+ </xsd:annotation>
+ </xsd:element>
+ <!-- === binary === -->
+ <xsd:element name="binaryCOP" abstract="true" substitutionGroup="COP">
+ <xsd:annotation>
+ <xsd:documentation>An abstract element representing any binary comparison operator.</xsd:documentation>
+ </xsd:annotation>
+ </xsd:element>
+ <xsd:complexType name="binaryCOPType">
+ <xsd:annotation>
+ <xsd:documentation>A complex type for binary comparison operators.</xsd:documentation>
+ </xsd:annotation>
+ <xsd:sequence>
+ <xsd:element ref="concept"/>
+ <xsd:element ref="expression"/>
+ </xsd:sequence>
+ </xsd:complexType>
+ <xsd:element name="equals" type="binaryCOPType" substitutionGroup="binaryCOP">
+ <xsd:annotation>
+ <xsd:documentation>The equals (=) comparison operator.</xsd:documentation>
+ </xsd:annotation>
+ </xsd:element>
+ <xsd:element name="lessThan" type="binaryCOPType" substitutionGroup="binaryCOP">
+ <xsd:annotation>
+ <xsd:documentation>The less than (<) comparison operator.</xsd:documentation>
+ </xsd:annotation>
+ </xsd:element>
+ <xsd:element name="lessThanOrEquals" type="binaryCOPType" substitutionGroup="binaryCOP">
+ <xsd:annotation>
+ <xsd:documentation>The less than or equals (<=) comparison operator.</xsd:documentation>
+ </xsd:annotation>
+ </xsd:element>
+ <xsd:element name="greaterThan" type="binaryCOPType" substitutionGroup="binaryCOP">
+ <xsd:annotation>
+ <xsd:documentation>The greater than (>) comparison operator.</xsd:documentation>
+ </xsd:annotation>
+ </xsd:element>
+ <xsd:element name="greaterThanOrEquals" type="binaryCOPType" substitutionGroup="binaryCOP">
+ <xsd:annotation>
+ <xsd:documentation>The greater than or equals (>=) comparison operator.</xsd:documentation>
+ </xsd:annotation>
+ </xsd:element>
+ <xsd:element name="like" type="binaryCOPType" substitutionGroup="binaryCOP">
+ <xsd:annotation>
+ <xsd:documentation>The like (LIKE) comparison operator.</xsd:documentation>
+ </xsd:annotation>
+ </xsd:element>
+ <!-- === multiple === -->
+ <xsd:element name="multiCOP" abstract="true" substitutionGroup="COP">
+ <xsd:annotation>
+ <xsd:documentation>An abstract element representing any multiple comparison operator.</xsd:documentation>
+ </xsd:annotation>
+ </xsd:element>
+ <xsd:complexType name="multiCOPType">
+ <xsd:annotation>
+ <xsd:documentation>A complex type for multiple comparison operators.</xsd:documentation>
+ </xsd:annotation>
+ <xsd:sequence>
+ <xsd:element ref="concept"/>
+ <xsd:element name="values">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element ref="simpleExpression" maxOccurs="unbounded"/>
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ </xsd:sequence>
+ </xsd:complexType>
+ <xsd:element name="in" type="multiCOPType" substitutionGroup="multiCOP">
+ <xsd:annotation>
+ <xsd:documentation>The in (IN) comparison operator.</xsd:documentation>
+ </xsd:annotation>
+ </xsd:element>
+ <!-- ===== LOGICAL OPERATORS ===== -->
+ <xsd:element name="LOP" abstract="true" substitutionGroup="booleanOP">
+ <xsd:annotation>
+ <xsd:documentation>An abstract element representing any logical
+ operator.</xsd:documentation>
+ </xsd:annotation>
+ </xsd:element>
+ <!-- === unary === -->
+ <xsd:element name="unaryLOP" abstract="true" substitutionGroup="LOP">
+ <xsd:annotation>
+ <xsd:documentation>An abstract element representing any unary logical
+ operator.</xsd:documentation>
+ </xsd:annotation>
+ </xsd:element>
+ <xsd:complexType name="unaryLOPType">
+ <xsd:annotation>
+ <xsd:documentation>A complex type for unary logical operators.</xsd:documentation>
+ </xsd:annotation>
+ <xsd:sequence>
+ <xsd:element ref="booleanOP"/>
+ </xsd:sequence>
+ </xsd:complexType>
+ <xsd:element name="not" substitutionGroup="unaryLOP">
+ <xsd:annotation>
+ <xsd:documentation>The not logical operator.</xsd:documentation>
+ </xsd:annotation>
+ <xsd:complexType>
+ <xsd:complexContent>
+ <xsd:extension base="unaryLOPType"/>
+ </xsd:complexContent>
+ </xsd:complexType>
+ </xsd:element>
+ <!-- === multiple === -->
+ <xsd:element name="multiLOP" abstract="true" substitutionGroup="LOP">
+ <xsd:annotation>
+ <xsd:documentation>An abstract element representing any multiple logical
+ operator.</xsd:documentation>
+ </xsd:annotation>
+ </xsd:element>
+ <xsd:complexType name="multiLOPType">
+ <xsd:annotation>
+ <xsd:documentation>A complex type for multiple logical operators.</xsd:documentation>
+ </xsd:annotation>
+ <xsd:sequence minOccurs="2" maxOccurs="unbounded">
+ <xsd:element ref="booleanOP"/>
+ </xsd:sequence>
+ </xsd:complexType>
+ <xsd:element name="and" type="multiLOPType" substitutionGroup="multiLOP">
+ <xsd:annotation>
+ <xsd:documentation>The and logical operator.</xsd:documentation>
+ </xsd:annotation>
+ </xsd:element>
+ <xsd:element name="or" type="multiLOPType" substitutionGroup="multiLOP">
+ <xsd:annotation>
+ <xsd:documentation>The or logical operator.</xsd:documentation>
+ </xsd:annotation>
+ </xsd:element>
+ <!-- ===== ENVIRONMENT VARIABLE EXPRESSIONS ===== -->
+ <xsd:element name="variable" abstract="true" substitutionGroup="expression">
+ <xsd:annotation>
+ <xsd:documentation>An abstract element to represent datasource specific values taken
+ from the datasource environment by the wrapper.</xsd:documentation>
+ </xsd:annotation>
+ </xsd:element>
+ <xsd:element name="date" substitutionGroup="variable">
+ <xsd:annotation>
+ <xsd:documentation>An element to represent ISO date like 2005-07-21. Substitutes an
+ abstract environment variable element.</xsd:documentation>
+ </xsd:annotation>
+ <xsd:complexType/>
+ </xsd:element>
+ <xsd:element name="timestamp" substitutionGroup="variable">
+ <xsd:annotation>
+ <xsd:documentation>An element to represent an ISO timestamp like 2005-07-20 17:01:38.
+ Substitutes an abstract environment variable element.</xsd:documentation>
+ </xsd:annotation>
+ <xsd:complexType/>
+ </xsd:element>
+ <xsd:element name="datasourceName" substitutionGroup="variable">
+ <xsd:annotation>
+ <xsd:documentation>An element to represent the name of the datasource. Substitutes an
+ abstract environment variable element.</xsd:documentation>
+ </xsd:annotation>
+ <xsd:complexType/>
+ </xsd:element>
+ <xsd:element name="accessPoint" substitutionGroup="variable">
+ <xsd:annotation>
+ <xsd:documentation>An element to represent the access point of the datasource.
+ Substitutes an abstract environment variable element.</xsd:documentation>
+ </xsd:annotation>
+ <xsd:complexType/>
+ </xsd:element>
+ <xsd:element name="lastUpdate" substitutionGroup="variable">
+ <xsd:annotation>
+ <xsd:documentation>An element to represent the timestamp of the last update of the
+ datasource. Substitutes an abstract variable expression
+ element.</xsd:documentation>
+ </xsd:annotation>
+ <xsd:complexType/>
+ </xsd:element>
+ <!-- ============================================= -->
+ <!--REQUEST TYPE DEFINITIONS-->
+ <!-- ============================================= -->
+ <xsd:element name="request" type="requestType">
+ <xsd:annotation>
+ <xsd:documentation>Global element representing a request. This is a root element
+ and must contain reference to the schema and namespaces used.</xsd:documentation>
+ </xsd:annotation>
+ </xsd:element>
+ <xsd:complexType name="requestType">
+ <xsd:annotation>
+ <xsd:documentation>Request message format. Must always contain header and operation
+ specific parameters.</xsd:documentation>
+ </xsd:annotation>
+ <xsd:sequence>
+ <xsd:element name="header" type="headerType"/>
+ <xsd:choice>
+ <xsd:element name="ping">
+ <xsd:complexType>
+ <xsd:attributeGroup ref="operationRequestGroup"/>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="capabilities">
+ <xsd:complexType>
+ <xsd:attributeGroup ref="operationRequestGroup"/>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="metadata">
+ <xsd:complexType>
+ <xsd:attributeGroup ref="operationRequestGroup"/>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="inventory">
+ <xsd:complexType>
+ <xsd:choice>
+ <xsd:element name="template" type="externalResourceType"/>
+ <xsd:group ref="inventoryTemplateGroup"/>
+ </xsd:choice>
+ <xsd:attributeGroup ref="operationRequestGroup"/>
+ <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:annotation>
+ <xsd:complexType>
+ <xsd:choice>
+ <xsd:element name="template" type="externalResourceType"/>
+ <xsd:group ref="searchTemplateGroup"/>
+ </xsd:choice>
+ <xsd:attributeGroup ref="operationRequestGroup"/>
+ <xsd:attributeGroup ref="pagingParametersGroup"/>
+ </xsd:complexType>
+ </xsd:element>
+ </xsd:choice>
+ <xsd:element name="diagnostics" type="diagnosticsListType" minOccurs="0"/>
+ </xsd:sequence>
+ </xsd:complexType>
+ <xsd:attributeGroup name="operationRequestGroup">
+ <xsd:attribute name="envelope" type="xsd:boolean" use="optional" default="true"/>
+ <xsd:attribute name="xslt" type="xsd:anyURI" use="optional"/>
+ <xsd:attribute name="xslt-apply" type="xsd:boolean" use="optional" default="false"/>
+ </xsd:attributeGroup>
+ <xsd:attributeGroup name="pagingParametersGroup">
+ <xsd:attribute name="count" type="xsd:boolean" use="optional" default="false"/>
+ <xsd:attribute name="start" type="xsd:nonNegativeInteger" use="optional" default="0"/>
+ <xsd:attribute name="limit" type="xsd:nonNegativeInteger" use="optional" default="1"/>
+ </xsd:attributeGroup>
+ <!-- ============================================= -->
+ <!--RESPONSE TYPE DEFINITIONS-->
+ <!-- ============================================= -->
+ <xsd:element name="response" type="responseType">
+ <xsd:annotation>
+ <xsd:documentation>Global element representing a response.This is a root element
+ and must contain reference to the schema and namespaces used</xsd:documentation>
+ </xsd:annotation>
+ </xsd:element>
+ <xsd:complexType name="responseType">
+ <xsd:annotation>
+ <xsd:documentation>Response message format. Must always contain header, results from the
+ requested operation and possible diagnostic messages.</xsd:documentation>
+ </xsd:annotation>
+ <xsd:sequence>
+ <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:choice>
+ <xsd:element name="diagnostics" type="diagnosticsListType" minOccurs="0">
+ <xsd:annotation>
+ <xsd:documentation>The diagnostics element is an optional part of TAPIR requests and response messages.
+ Diagnostics may contain many pieces of information used for debugging and providing warnings or error messages.
+ Individual diagnostics are held in a diagnosticList with an enumerated attribute for level and attributes for code and time.
+ </xsd:documentation>
+ </xsd:annotation>
+ </xsd:element>
+ </xsd:sequence>
+ </xsd:complexType>
+ <xsd:complexType name="resultSummaryType">
+ <xsd:annotation>
+ <xsd:documentation>Summary about inventory and search results. The first index of a
+ record is 0. The number of records actually being returned is given in totalReturned.
+ If counting was requested the totalMatched gives the "estimated" number of total
+ matching records - not necessarily the number of valid records that can possibly be
+ returned by paging through the entire record set.</xsd:documentation>
+ </xsd:annotation>
+ <xsd:attribute name="start" type="xsd:integer" use="required"/>
+ <xsd:attribute name="next" type="xsd:integer" use="optional"/>
+ <xsd:attribute name="totalReturned" type="xsd:integer" use="required"/>
+ <xsd:attribute name="totalMatched" type="xsd:integer" use="optional"/>
+ </xsd:complexType>
+ <!-- ===== PING ===== -->
+ <xsd:element name="pong" type="pingResultType"/>
+ <xsd:complexType name="pingResultType">
+ <xsd:annotation>
+ <xsd:documentation>Format of ping operation result.</xsd:documentation>
+ </xsd:annotation>
+ </xsd:complexType>
+ <!-- ===== CAPABILITIES ===== -->
+ <xsd:element name="capabilities" type="capabilitiesResultType"/>
+ <xsd:complexType name="capabilitiesResultType">
+ <xsd:annotation>
+ <xsd:documentation>Format of capabilities operation result.</xsd:documentation>
+ </xsd:annotation>
+ <xsd:sequence>
+ <xsd:element name="operations">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="ping">
+ <xsd:complexType/>
+ </xsd:element>
+ <xsd:element name="metadata">
+ <xsd:complexType/>
+ </xsd:element>
+ <xsd:element name="capabilities">
+ <xsd:complexType/>
+ </xsd:element>
+ <xsd:element name="view" 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: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="predefinedOutputModels">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="outputModel" type="externalResourceType" minOccurs="0" maxOccurs="unbounded"/>
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="customOutputModels">
+ <xsd:complexType>
+ <xsd:sequence minOccurs="0">
+ <xsd:element name="structure" type="responseStructureCapabilitiesType" minOccurs="0">
+ <xsd:annotation>
+ <xsd:documentation>The supported subset of
+ the XML Schema
+ language.</xsd:documentation>
+ </xsd:annotation>
+ </xsd:element>
+ </xsd:sequence>
+ <xsd:attribute name="accepted" type="xsd:boolean" use="required"/>
+ </xsd:complexType>
+ </xsd:element>
+ </xsd:sequence>
+ </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:element name="concepts">
+ <xsd:annotation>
+ <xsd:documentation>The list of known conceptual schemas and their mapped
+ concepts.</xsd:documentation>
+ </xsd:annotation>
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="conceptNameServers">
+ <xsd:annotation>
+ <xsd:documentation>The location of the alias file or
+ ConceptNameServer to define simple aliases for fully qualified
+ concept ids.</xsd:documentation>
+ </xsd:annotation>
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="server" type="externalResourceType" minOccurs="0" maxOccurs="unbounded">
+ <xsd:annotation>
+ <xsd:documentation>Multiple servers allowed. Ordered list with the first server(s) having priority over the following ones.</xsd:documentation>
+ </xsd:annotation>
+ </xsd:element>
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="schema" maxOccurs="unbounded">
+ <xsd:annotation>
+ <xsd:documentation>Namespace and location of a supported
+ schema.</xsd:documentation>
+ </xsd:annotation>
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="mappedConcept" maxOccurs="unbounded">
+ <xsd:annotation>
+ <xsd:documentation>Each known and mapped concept of a
+ schema listed with a boolean flag indicating if its
+ searchable (default = true). The mandatory flag can
+ be used to indicate that some concepts need to be
+ present in response structures
+ (default=false).</xsd:documentation>
+ </xsd:annotation>
+ <xsd:complexType>
+ <xsd:complexContent>
+ <xsd:extension base="qualifiedConceptReferenceType">
+ <xsd:attribute name="searchable" type="xsd:boolean" use="optional" default="true"/>
+ <xsd:attribute name="required" type="xsd:boolean" use="optional" default="false"/>
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+ </xsd:element>
+ </xsd:sequence>
+ <xsd:attribute name="namespace" type="xsd:anyURI" use="required"/>
+ <xsd:attribute name="location" type="xsd:anyURI" use="required"/>
+ </xsd:complexType>
+ </xsd:element>
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="variables">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="environment" minOccurs="0">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element ref="variable" minOccurs="0" maxOccurs="unbounded"/>
+ <xsd:element ref="custom" minOccurs="0">
+ <xsd:annotation>
+ <xsd:documentation>Extension slot for other variables.</xsd:documentation>
+ </xsd:annotation>
+ </xsd:element>
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="settings">
+ <xsd:annotation>
+ <xsd:documentation>Information about the local configuration of a
+ datasource.</xsd:documentation>
+ </xsd:annotation>
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="minQueryTermLength" type="xsd:integer" minOccurs="0">
+ <xsd:annotation>
+ <xsd:documentation>Indicates the minimum length for wild-card
+ strings used in like comparisons.</xsd:documentation>
+ </xsd:annotation>
+ </xsd:element>
+ <xsd:element name="maxElementRepetitions" type="xsd:integer" minOccurs="0">
+ <xsd:annotation>
+ <xsd:documentation>Indicates the maximum number of repetitions
+ allowed in responses for each repeatable element defined in
+ response structures.</xsd:documentation>
+ </xsd:annotation>
+ </xsd:element>
+ <xsd:element name="maxElementLevels" type="xsd:integer" minOccurs="0">
+ <xsd:annotation>
+ <xsd:documentation>Indicates the maximum number of allowed levels
+ (depth) for response elements.</xsd:documentation>
+ </xsd:annotation>
+ </xsd:element>
+ <xsd:element name="maxResponseTags" type="xsd:integer" minOccurs="0">
+ <xsd:annotation>
+ <xsd:documentation>Indicates the maximum number of tags that can be
+ returned by responses.</xsd:documentation>
+ </xsd:annotation>
+ </xsd:element>
+ <xsd:element name="maxResponseSize" type="xsd:integer" minOccurs="0">
+ <xsd:annotation>
+ <xsd:documentation>Indicates the maximum size in kilobytes allowed
+ to be returned by responses.</xsd:documentation>
+ </xsd:annotation>
+ </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:complexType name="responseStructureCapabilitiesType">
+ <xsd:annotation>
+ <xsd:documentation>A complete indication about what subset of the response structure
+ specification is supported by a service.</xsd:documentation>
+ </xsd:annotation>
+ <xsd:sequence>
+ <xsd:element name="basicSchemaLanguage">
+ <xsd:annotation>
+ <xsd:documentation>This includes the following xml schema tags: schema incl
+ target namespace, element incl min/maxOccurs, attribute incl minOccurs,
+ sequence, all If defined locally it should also include complexType +
+ simpleType definitions incl complexContent +
+ simpleContent</xsd:documentation>
+ </xsd:annotation>
+ <xsd:complexType/>
+ </xsd:element>
+ <xsd:element name="choice" minOccurs="0">
+ <xsd:complexType/>
+ </xsd:element>
+ <xsd:element name="group" minOccurs="0">
+ <xsd:annotation>
+ <xsd:documentation>local group definitions without global referencing</xsd:documentation>
+ </xsd:annotation>
+ <xsd:complexType/>
+ </xsd:element>
+ <xsd:element name="import" minOccurs="0">
+ <xsd:complexType/>
+ </xsd:element>
+ <xsd:element name="references" minOccurs="0">
+ <xsd:annotation>
+ <xsd:documentation>The global use of the tags grouped here when locally
+ referenced via the "ref" attribute.</xsd:documentation>
+ </xsd:annotation>
+ <xsd:complexType>
+ <xsd:sequence minOccurs="0">
+ <xsd:element name="element" minOccurs="0">
+ <xsd:complexType/>
+ </xsd:element>
+ <xsd:element name="attribute" minOccurs="0">
+ <xsd:complexType/>
+ </xsd:element>
+ <xsd:element name="group" minOccurs="0">
+ <xsd:complexType/>
+ </xsd:element>
+ <xsd:element name="attributeGroup" minOccurs="0">
+ <xsd:complexType/>
+ </xsd:element>
+ <xsd:element name="complexType" minOccurs="0">
+ <xsd:complexType/>
+ </xsd:element>
+ <xsd:element name="simpleType" minOccurs="0">
+ <xsd:complexType>
+ <xsd:sequence minOccurs="0">
+ <xsd:element name="list" minOccurs="0">
+ <xsd:complexType/>
+ </xsd:element>
+ <xsd:element name="union" minOccurs="0">
+ <xsd:complexType/>
+ </xsd:element>
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="simpleTypes" minOccurs="0">
+ <xsd:complexType>
+ <xsd:sequence minOccurs="0">
+ <xsd:element name="stringTypes" minOccurs="0">
+ <xsd:complexType>
+ <xsd:sequence minOccurs="0">
+ <xsd:element name="string" minOccurs="0">
+ <xsd:complexType/>
+ </xsd:element>
+ <xsd:element name="normalizedString" minOccurs="0">
+ <xsd:complexType/>
+ </xsd:element>
+ <xsd:element name="token" minOccurs="0">
+ <xsd:complexType/>
+ </xsd:element>
+ <xsd:element name="language" minOccurs="0">
+ <xsd:complexType/>
+ </xsd:element>
+ <xsd:element name="Name" minOccurs="0">
+ <xsd:complexType/>
+ </xsd:element>
+ <xsd:element name="NCName" minOccurs="0">
+ <xsd:complexType/>
+ </xsd:element>
+ <xsd:element name="NMToken" minOccurs="0">
+ <xsd:complexType/>
+ </xsd:element>
+ <xsd:element name="NMTokens" minOccurs="0">
+ <xsd:complexType/>
+ </xsd:element>
+ <xsd:element name="ID" minOccurs="0">
+ <xsd:complexType/>
+ </xsd:element>
+ <xsd:element name="IDREF" minOccurs="0">
+ <xsd:complexType/>
+ </xsd:element>
+ <xsd:element name="IDREFS" minOccurs="0">
+ <xsd:complexType/>
+ </xsd:element>
+ <xsd:element name="ENTITY" minOccurs="0">
+ <xsd:complexType/>
+ </xsd:element>
+ <xsd:element name="ENTITIES" minOccurs="0">
+ <xsd:complexType/>
+ </xsd:element>
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="numericTypes" minOccurs="0">
+ <xsd:complexType>
+ <xsd:sequence minOccurs="0">
+ <xsd:element name="float" minOccurs="0">
+ <xsd:complexType/>
+ </xsd:element>
+ <xsd:element name="double" minOccurs="0">
+ <xsd:complexType/>
+ </xsd:element>
+ <xsd:element name="decimal" minOccurs="0">
+ <xsd:complexType/>
+ </xsd:element>
+ <xsd:element name="integerTypes" minOccurs="0">
+ <xsd:complexType>
+ <xsd:sequence minOccurs="0">
+ <xsd:element name="integer" minOccurs="0">
+ <xsd:complexType/>
+ </xsd:element>
+ <xsd:element name="long" minOccurs="0">
+ <xsd:complexType/>
+ </xsd:element>
+ <xsd:element name="int" minOccurs="0"/>
+ <xsd:element name="short" minOccurs="0">
+ <xsd:complexType/>
+ </xsd:element>
+ <xsd:element name="byte" minOccurs="0">
+ <xsd:complexType/>
+ </xsd:element>
+ <xsd:element name="positiveInteger" minOccurs="0">
+ <xsd:complexType/>
+ </xsd:element>
+ <xsd:element name="nonPositiveInteger" minOccurs="0">
+ <xsd:complexType/>
+ </xsd:element>
+ <xsd:element name="negativeInteger" minOccurs="0">
+ <xsd:complexType/>
+ </xsd:element>
+ <xsd:element name="nonNegativeInteger" minOccurs="0">
+ <xsd:complexType/>
+ </xsd:element>
+ <xsd:element name="unsignedLong" minOccurs="0">
+ <xsd:complexType/>
+ </xsd:element>
+ <xsd:element name="unsignedInt" minOccurs="0">
+ <xsd:complexType/>
+ </xsd:element>
+ <xsd:element name="unsignedShort" minOccurs="0">
+ <xsd:complexType/>
+ </xsd:element>
+ <xsd:element name="unsignedByte" minOccurs="0">
+ <xsd:complexType/>
+ </xsd:element>
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="dateTimeTypes" minOccurs="0">
+ <xsd:complexType>
+ <xsd:sequence minOccurs="0">
+ <xsd:element name="duration" minOccurs="0">
+ <xsd:complexType/>
+ </xsd:element>
+ <xsd:element name="dateTime" minOccurs="0">
+ <xsd:complexType/>
+ </xsd:element>
+ <xsd:element name="time" minOccurs="0">
+ <xsd:complexType/>
+ </xsd:element>
+ <xsd:element name="date" minOccurs="0">
+ <xsd:complexType/>
+ </xsd:element>
+ <xsd:element name="gYearMonth" minOccurs="0">
+ <xsd:complexType/>
+ </xsd:element>
+ <xsd:element name="gYear" minOccurs="0">
+ <xsd:complexType/>
+ </xsd:element>
+ <xsd:element name="gMonthDay" minOccurs="0">
+ <xsd:complexType/>
+ </xsd:element>
+ <xsd:element name="gDay" minOccurs="0">
+ <xsd:complexType/>
+ </xsd:element>
+ <xsd:element name="gMonth" minOccurs="0">
+ <xsd:complexType/>
+ </xsd:element>
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="miscTypes" minOccurs="0">
+ <xsd:complexType>
+ <xsd:sequence minOccurs="0">
+ <xsd:element name="boolean" minOccurs="0">
+ <xsd:complexType/>
+ </xsd:element>
+ <xsd:element name="base64Binary" minOccurs="0">
+ <xsd:complexType/>
+ </xsd:element>
+ <xsd:element name="hexBinary" minOccurs="0">
+ <xsd:complexType/>
+ </xsd:element>
+ <xsd:element name="anyURI" minOccurs="0">
+ <xsd:complexType/>
+ </xsd:element>
+ <xsd:element name="QName" minOccurs="0">
+ <xsd:complexType/>
+ </xsd:element>
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="extension" minOccurs="0">
+ <xsd:complexType/>
+ </xsd:element>
+ <xsd:element name="restriction" minOccurs="0">
+ <xsd:complexType>
+ <xsd:sequence minOccurs="0">
+ <xsd:element name="minInclusive" minOccurs="0">
+ <xsd:complexType/>
+ </xsd:element>
+ <xsd:element name="maxInclusive" minOccurs="0">
+ <xsd:complexType/>
+ </xsd:element>
+ <xsd:element name="minExclusive" minOccurs="0">
+ <xsd:complexType/>
+ </xsd:element>
+ <xsd:element name="maxExclusive" minOccurs="0">
+ <xsd:complexType/>
+ </xsd:element>
+ <xsd:element name="fractionDigits" minOccurs="0">
+ <xsd:complexType/>
+ </xsd:element>
+ <xsd:element name="totalDigits" minOccurs="0">
+ <xsd:complexType/>
+ </xsd:element>
+ <xsd:element name="enumeration" minOccurs="0">
+ <xsd:complexType/>
+ </xsd:element>
+ <xsd:element name="whiteSpace" minOccurs="0">
+ <xsd:complexType/>
+ </xsd:element>
+ <xsd:element name="pattern" minOccurs="0">
+ <xsd:complexType/>
+ </xsd:element>
+ <xsd:element name="length" minOccurs="0">
+ <xsd:complexType/>
+ </xsd:element>
+ <xsd:element name="minLength" minOccurs="0">
+ <xsd:complexType/>
+ </xsd:element>
+ <xsd:element name="maxLength" minOccurs="0">
+ <xsd:complexType/>
+ </xsd:element>
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="substitutionGroup" minOccurs="0">
+ <xsd:complexType/>
+ </xsd:element>
+ <xsd:element name="constraints" minOccurs="0">
+ <xsd:complexType>
+ <xsd:sequence minOccurs="0">
+ <xsd:element name="field" minOccurs="0">
+ <xsd:complexType/>
+ </xsd:element>
+ <xsd:element name="selector" minOccurs="0">
+ <xsd:complexType/>
+ </xsd:element>
+ <xsd:element name="unique" minOccurs="0">
+ <xsd:complexType/>
+ </xsd:element>
+ <xsd:element name="key" minOccurs="0">
+ <xsd:complexType/>
+ </xsd:element>
+ <xsd:element name="keyref" minOccurs="0">
+ <xsd:complexType/>
+ </xsd:element>
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ </xsd:sequence>
+ </xsd:complexType>
+ <xsd:complexType name="filterCapabilitiesType">
+ <xsd:annotation>
+ <xsd:documentation>A complete indication about what filter operators are supported by a
+ service.</xsd:documentation>
+ </xsd:annotation>
+ <xsd:sequence>
+ <xsd:element name="encoding" minOccurs="0">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="expression">
+ <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: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 ref="custom" minOccurs="0"/>
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="booleanOperators">
+ <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">
+ <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="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: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:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ </xsd:sequence>
+ </xsd:complexType>
+ <!-- ===== METADATA ===== -->
+ <xsd:element name="metadata" type="metadataResultType">
+ <xsd:annotation>
+ <xsd:documentation>Global element to validate external metadata XML
+ files.</xsd:documentation>
+ </xsd:annotation>
+ </xsd:element>
+ <xsd:complexType name="metadataResultType">
+ <xsd:annotation>
+ <xsd:documentation>Format of metadata operation result.</xsd:documentation>
+ </xsd:annotation>
+ <xsd:sequence>
+ <xsd:element ref="dc:title">
+ <xsd:annotation>
+ <xsd:documentation>The name of this service possibly in different
+ languages.</xsd:documentation>
+ </xsd:annotation>
+ </xsd:element>
+ <xsd:element ref="dc:type">
+ <xsd:annotation>
+ <xsd:documentation>The nature or genre of the content of the resource.
+ http://purl.org/dc/dcmitype/Service</xsd:documentation>
+ </xsd:annotation>
+ </xsd:element>
+ <xsd:element name="accesspoint" type="xsd:anyURI">
+ <xsd:annotation>
+ <xsd:documentation>The URL of the access point of this
+ service.</xsd:documentation>
+ </xsd:annotation>
+ </xsd:element>
+ <xsd:element ref="dc:description">
+ <xsd:annotation>
+ <xsd:documentation>Description may include but is not limited to: an abstract,
+ table of contents, reference to a graphical representation
+ of content or a free-text account of the content.</xsd:documentation>
+ </xsd:annotation>
+ </xsd:element>
+ <xsd:element ref="dc:language">
+ <xsd:annotation>
+ <xsd:documentation></xsd:documentation>
+ </xsd:annotation>
+ </xsd:element>
+ <xsd:element ref="dc:subject">
+ <xsd:annotation>
+ <xsd:documentation>Subject and Keywords.Typically, a Subject will be expressed as keywords,
+ key phrases or classification codes that describe a topic
+ of the resource. Recommended best practice is to select
+ a value from a controlled vocabulary or formal
+ classification scheme</xsd:documentation>
+ </xsd:annotation>
+ </xsd:element>
+ <xsd:element ref="dct:bibliographicCitation">
+ <xsd:annotation>
+ <xsd:documentation>Recommended practice is to include sufficient
+ bibliographic detail to identify the resource as
+ unambiguously as possible, whether or not the
+ citation is in a standard form.</xsd:documentation>
+ </xsd:annotation>
+ </xsd:element>
+ <xsd:element ref="dc:rights">
+ <xsd:annotation>
+ <xsd:documentation>Information about who can access the
+ resource or an indication of its security status.</xsd:documentation>
+ </xsd:annotation>
+ </xsd:element>
+ <xsd:element ref="dct:modified">
+ <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"/>
+ <xsd:attribute name="maxDuration" type="xsd:duration"/>
+ <xsd:attribute name="frequency" type="xsd:duration" />
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="relatedEntity" type="relatedEntityInformationType" maxOccurs="unbounded">
+ <xsd:annotation>
+ <xsd:documentation>Entities (companies, organisations, institutions) related to
+ this service with their respective roles, e.g. publisher, data
+ supplier</xsd:documentation>
+ </xsd:annotation>
+ </xsd:element>
+ <xsd:element ref="custom" minOccurs="0"/>
+ </xsd:sequence>
+ </xsd:complexType>
+ <xsd:complexType name="relatedEntityInformationType">
+ <xsd:annotation>
+ <xsd:documentation>Information about an entity that may have some relationship with the
+ service being provided.</xsd:documentation>
+ </xsd:annotation>
+ <xsd:sequence>
+ <xsd:element name="role" type="entityRoleExtensionType" maxOccurs="unbounded">
+ <xsd:annotation>
+ <xsd:documentation>Used to specify the roles of a related entity, such as "data
+ supplier", "technical host", etc.</xsd:documentation>
+ </xsd:annotation>
+ </xsd:element>
+ <xsd:element name="entity" type="entityInformationType"/>
+ </xsd:sequence>
+ </xsd:complexType>
+ <xsd:simpleType name="entityRoleType">
+ <xsd:restriction base="xsd:string">
+ <xsd:enumeration value="data supplier"/>
+ <xsd:enumeration value="technical host"/>
+ </xsd:restriction>
+ </xsd:simpleType>
+ <xsd:simpleType name="entityRoleExtensionType">
+ <xsd:union memberTypes="entityRoleType xsd:string"/>
+ </xsd:simpleType>
+ <xsd:element name="entity" type="entityInformationType">
+ <xsd:annotation>
+ <xsd:documentation>Global element to validate external XML representations of entities.
+ An entity here could be a company, organisation, institution, or
+ person.</xsd:documentation>
+ </xsd:annotation>
+ </xsd:element>
+ <xsd:simpleType name="contactRoleType">
+ <xsd:restriction base="xsd:string">
+ <xsd:enumeration value="data administrator"/>
+ <xsd:enumeration value="system administrator"/>
+ </xsd:restriction>
+ </xsd:simpleType>
+ <xsd:simpleType name="contactRoleExtensionType">
+ <xsd:union memberTypes="contactRoleType xsd:string"/>
+ </xsd:simpleType>
+ <xsd:complexType name="entityInformationType">
+ <xsd:annotation>
+ <xsd:documentation>Entity information.</xsd:documentation>
+ </xsd:annotation>
+ <xsd:sequence>
+ <xsd:element name="identifier" type="xsd:string" minOccurs="0">
+ <xsd:annotation>
+ <xsd:documentation>A global unique identifier for the entity.</xsd:documentation>
+ </xsd:annotation>
+ </xsd:element>
+ <xsd:element name="name" type="languageAwareElementType" maxOccurs="unbounded">
+ <xsd:annotation>
+ <xsd:documentation>The name of the entity possibly in different
+ languages.</xsd:documentation>
+ </xsd:annotation>
+ </xsd:element>
+ <xsd:element name="acronym" type="xsd:string" minOccurs="0">
+ <xsd:annotation>
+ <xsd:documentation>An acronym for the entity name</xsd:documentation>
+ </xsd:annotation>
+ </xsd:element>
+ <xsd:element name="logoURL" type="xsd:anyURI" minOccurs="0">
+ <xsd:annotation>
+ <xsd:documentation>A URL to a small logo of the entity.</xsd:documentation>
+ </xsd:annotation>
+ </xsd:element>
+ <xsd:element name="description" type="languageAwareElementType" minOccurs="0" maxOccurs="unbounded">
+ <xsd:annotation>
+ <xsd:documentation>The description of the entity possibly in different
+ languages.</xsd:documentation>
+ </xsd:annotation>
+ </xsd:element>
+ <xsd:element name="address" type="xsd:string" minOccurs="0"/>
+ <xsd:element name="relatedInformation" type="xsd:anyURI" minOccurs="0" maxOccurs="unbounded">
+ <xsd:annotation>
+ <xsd:documentation>Other related information about this entity found at the
+ specified URL.</xsd:documentation>
+ </xsd:annotation>
+ </xsd:element>
+ <xsd:element name="hasContact" maxOccurs="unbounded">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="role" type="contactRoleExtensionType" maxOccurs="unbounded" />
+ <xsd:element ref="vcard:VCARD"/>
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element ref="geo:Point" minOccurs="0">
+ <xsd:annotation>
+ <xsd:documentation>Location of the entity in decimal WGS84 latitude and longitude (and optional altitude) as defined by the W3C Basic Geo Vocabulary</xsd:documentation>
+ </xsd:annotation>
+ </xsd:element>
+ <xsd:element ref="custom" minOccurs="0"/>
+ </xsd:sequence>
+ <xsd:attribute ref="lang"/>
+ </xsd:complexType>
+ <!-- ===== INVENTORY===== -->
+ <xsd:complexType name="inventoryResultType">
+ <xsd:annotation>
+ <xsd:documentation>Format of inventory operation result.</xsd:documentation>
+ </xsd:annotation>
+ <xsd:sequence>
+ <xsd:element name="concepts">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element ref="concept" maxOccurs="unbounded"/>
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="record" minOccurs="0" maxOccurs="unbounded">
+ <xsd:annotation>
+ <xsd:documentation>A distinct combination of values for all "inventoried"
+ concepts. The optional attribute "count" is used to count the number of
+ occurrences for this distinct combination and will only be set if the count
+ flag was used when requesting an inventory.</xsd:documentation>
+ </xsd:annotation>
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="value" maxOccurs="unbounded">
+ <xsd:annotation>
+ <xsd:documentation>A single value for a single concept. The sequence
+ of the values should correspond to the sequence used in the
+ request.</xsd:documentation>
+ </xsd:annotation>
+ <xsd:complexType>
+ <xsd:simpleContent>
+ <xsd:extension base="xsd:string"/>
+ </xsd:simpleContent>
+ </xsd:complexType>
+ </xsd:element>
+ </xsd:sequence>
+ <xsd:attribute name="count" type="xsd:positiveInteger" use="optional"/>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="summary" type="resultSummaryType">
+ <xsd:annotation>
+ <xsd:documentation>Used to show information about the number of records for
+ counting and paging purposes.</xsd:documentation>
+ </xsd:annotation>
+ </xsd:element>
+ </xsd:sequence>
+ </xsd:complexType>
+ <!-- ===== SEARCH ===== -->
+ <xsd:complexType name="searchResultType">
+ <xsd:annotation>
+ <xsd:documentation>Format of search operation result.</xsd:documentation>
+ </xsd:annotation>
+ <xsd:sequence>
+ <xsd:any/>
+ <xsd:element name="summary" type="resultSummaryType">
+ <xsd:annotation>
+ <xsd:documentation>Used to show information about the number of records for
+ counting and paging purposes.</xsd:documentation>
+ </xsd:annotation>
+ </xsd:element>
+ </xsd:sequence>
+ </xsd:complexType>
+</xsd:schema>
1
0
Im not sure how many of you follow the mailing list <public-semweb-lifesci(a)w3.org>, but here is an interesting recent posting regarding LSIDs and ontology documents.
This group is currently in a similar situation to us, debating the best approach for GUIDs and sorting out ontologies. It includes the BioRDF group that Suzie Stevens spoke of at the RDF workshop in Edinburgh (for those of you who attended).
They are looking at LSIDs but as always there are people for and against the technology.
The thread started by the following post goes on with some interesting arguments for and against using LSIDs for identifiers to "ontology fragments". You can see more at http://lists.w3.org/Archives/Public/public-semweb-lifesci/2006Jul/0076.html.
Kevin
>>> Mark Wilkinson <markw(a)illuminae.com> 14/07/2006 5:01:33 a.m. >>>
Hi all,
I chatted with Sean Martin yesterday and he indicated that, on the last
SWLS teleconference, he mentioned one of the ideas that my lab and his
group have been tossing around for the past few weeks v.v. LSIDs
representing ontology nodes. He asked me to fill-in some more detail in
a message to this mailing list.
In a publication that will be available soon [1] we (briefly) discuss
the problem of actually *using* the currently available ontologies in a
"real" Semantic Web setting - i.e. dynamically downloading whatever
ontologies are necessary given the predicates that you find in some
discovered RDF instance document. The OWL representation of GO is over
10 Meg... for heavens sake!... and GO is a small ontology compared to
things like the NCI Metathesaurus.
The problem with using document#fragment URLs to identify ontology nodes
is that the defined behaviour for resolving such an identifier is to
drop the fragment (since that isn't available server-side anyway) and to
return the entire document... all 10Meg's of GO... each time... We
would argue, therefore, that the URL (if you adopt its default
behaviour) is not only a bit of a nuisance, it is a blocker in some/many
cases.
There's been some exciting work in the domain of ontology segmentation
[2,3,4,5] that, we believe, is perhaps a more rational way of working
with these massive ontologies when you need to get on-the-fly access to
only the portions of the ontology that are relevant to your Blackberry's
agent at that moment. I know that others (e.g. Damian Gessler and
collaborators at NCGR, but I don't have the reference to his submitted
manuscript at hand right now... sorry Damian!) are also working on the
problem of segmentation by passing a self-inflating "flattened" ontology
fragment. The problem is that there is no Semantic Web-style protocol
available to specify that this is the behaviour you want, or for the
agent to know that this is the behaviour to expect. Some of these
projects are setting up the ontology fragment-generator as a Web Service
(if I recall correctly, Rector's group does this [4]), however this
doesn't solve the SW problem either because we can't (easily) model a
Web Service invocation as a single URI (at least, not by any existing
standard or convention... I guess some long REST-style URLs could do
this...)
Here is where I think the LSID could really shine! Unlike a URL, the
LSID does not have to return an entire document in response to a
getMetaData call. Thus, if an LSID were used as the identifier for an
ontology node, the behaviour of the getMetadata call could be, by
convention or by standard, to return only the relevant ontology
fragment, where that fragment was generated by e.g. the Rector
Segmentation generator in the background.
These were just early thoughts we've been having, but Sean asked me to
share them with the group in hopes of fanning the flames of discussion
and debate. It seems to me to be a "blocker" issue when it comes to
deploying SW applications in the wild, and I know that projects like
Damian's Semantic MOBY have hit this problem early and hard, as have I
in my own sandbox. It's all well and good when we play SW on our own
local machine, but as soon as we try to play SW in the wi(l)der world
this problem cripples us almost instantly. We think the LSID is (a/the)
solution to this problem, but no solution will be useful if it doesn't
have wider adoption, so...
opinions?
Cheers all!
Mark
[1] Good, B, Wilkinson, M. (in press). The Life Sciences Semantic Web is
Full of Creeps! Briefings in Bioinformatics.
[2] Noy, N, Musen, M. Specifying Ontology Views by Traversal. 2004.
[3] Alani, H, Harris, S, O'Neil, B. Ontology Winnowing: A Case Study on
the AKT Reference Ontology. 2005.
[4] Seidenberg, J, Rector, A (2006), 'Web Ontology Segmentation:
Analysis, Classification and Use', World Wide Web, ACM, Edinburgh,
Scotland.
[5] Stuckenschmidt, H, Klein, M. Structure-Based Partitioning of Large
Concept Hierarchies. 2004.
--
Mark Wilkinson
Asst. Professor, Dept. of Medical Genetics
University of British Columbia
PI in Bioinformatics, iCAPTURE Centre
St. Paul's Hospital, Rm. 166, 1081 Burrard St.
Vancouver, BC, V6Z 1Y6
tel: 604 682 2344 x62129
fax: 604 806 9274
"Since the point of a definition is to explain the meaning of a term to
someone who is unfamiliar with its proper application, the use of
language that doesn't help such a person learn how to apply the term is
pointless. Thus, "happiness is a warm puppy" may be a lovely thought,
but it is a lousy definition."
Köhler et al, 2006
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
WARNING: This email and any attachments may be confidential and/or
privileged. They are intended for the addressee only and are not to be read,
used, copied or disseminated by anyone receiving them in error. If you are
not the intended recipient, please notify the sender by return email and
delete this message and any attachments.
The views expressed in this email are those of the sender and do not
necessarily reflect the official views of Landcare Research.
Landcare Research
http://www.landcareresearch.co.nz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
1
0
Im not sure how many of you follow the mailing list <public-semweb-lifesci(a)w3.org>, but here is an interesting recent posting regarding LSIDs and ontology documents.
This group is currently in a similar situation to us, debating the best approach for GUIDs and sorting out ontologies. It includes the BioRDF group that Suzie Stevens spoke of at the RDF workshop in Edinburgh (for those of you who attended).
They are looking at LSIDs but as always there are people for and against the technology.
The thread started by the following post goes on with some interesting arguments for and against using LSIDs for identifiers to "ontology fragments". You can see more at http://lists.w3.org/Archives/Public/public-semweb-lifesci/2006Jul/0076.html.
Kevin
>>> Mark Wilkinson <markw(a)illuminae.com> 14/07/2006 5:01:33 a.m. >>>
Hi all,
I chatted with Sean Martin yesterday and he indicated that, on the last
SWLS teleconference, he mentioned one of the ideas that my lab and his
group have been tossing around for the past few weeks v.v. LSIDs
representing ontology nodes. He asked me to fill-in some more detail in
a message to this mailing list.
In a publication that will be available soon [1] we (briefly) discuss
the problem of actually *using* the currently available ontologies in a
"real" Semantic Web setting - i.e. dynamically downloading whatever
ontologies are necessary given the predicates that you find in some
discovered RDF instance document. The OWL representation of GO is over
10 Meg... for heavens sake!... and GO is a small ontology compared to
things like the NCI Metathesaurus.
The problem with using document#fragment URLs to identify ontology nodes
is that the defined behaviour for resolving such an identifier is to
drop the fragment (since that isn't available server-side anyway) and to
return the entire document... all 10Meg's of GO... each time... We
would argue, therefore, that the URL (if you adopt its default
behaviour) is not only a bit of a nuisance, it is a blocker in some/many
cases.
There's been some exciting work in the domain of ontology segmentation
[2,3,4,5] that, we believe, is perhaps a more rational way of working
with these massive ontologies when you need to get on-the-fly access to
only the portions of the ontology that are relevant to your Blackberry's
agent at that moment. I know that others (e.g. Damian Gessler and
collaborators at NCGR, but I don't have the reference to his submitted
manuscript at hand right now... sorry Damian!) are also working on the
problem of segmentation by passing a self-inflating "flattened" ontology
fragment. The problem is that there is no Semantic Web-style protocol
available to specify that this is the behaviour you want, or for the
agent to know that this is the behaviour to expect. Some of these
projects are setting up the ontology fragment-generator as a Web Service
(if I recall correctly, Rector's group does this [4]), however this
doesn't solve the SW problem either because we can't (easily) model a
Web Service invocation as a single URI (at least, not by any existing
standard or convention... I guess some long REST-style URLs could do
this...)
Here is where I think the LSID could really shine! Unlike a URL, the
LSID does not have to return an entire document in response to a
getMetaData call. Thus, if an LSID were used as the identifier for an
ontology node, the behaviour of the getMetadata call could be, by
convention or by standard, to return only the relevant ontology
fragment, where that fragment was generated by e.g. the Rector
Segmentation generator in the background.
These were just early thoughts we've been having, but Sean asked me to
share them with the group in hopes of fanning the flames of discussion
and debate. It seems to me to be a "blocker" issue when it comes to
deploying SW applications in the wild, and I know that projects like
Damian's Semantic MOBY have hit this problem early and hard, as have I
in my own sandbox. It's all well and good when we play SW on our own
local machine, but as soon as we try to play SW in the wi(l)der world
this problem cripples us almost instantly. We think the LSID is (a/the)
solution to this problem, but no solution will be useful if it doesn't
have wider adoption, so...
opinions?
Cheers all!
Mark
[1] Good, B, Wilkinson, M. (in press). The Life Sciences Semantic Web is
Full of Creeps! Briefings in Bioinformatics.
[2] Noy, N, Musen, M. Specifying Ontology Views by Traversal. 2004.
[3] Alani, H, Harris, S, O'Neil, B. Ontology Winnowing: A Case Study on
the AKT Reference Ontology. 2005.
[4] Seidenberg, J, Rector, A (2006), 'Web Ontology Segmentation:
Analysis, Classification and Use', World Wide Web, ACM, Edinburgh,
Scotland.
[5] Stuckenschmidt, H, Klein, M. Structure-Based Partitioning of Large
Concept Hierarchies. 2004.
--
Mark Wilkinson
Asst. Professor, Dept. of Medical Genetics
University of British Columbia
PI in Bioinformatics, iCAPTURE Centre
St. Paul's Hospital, Rm. 166, 1081 Burrard St.
Vancouver, BC, V6Z 1Y6
tel: 604 682 2344 x62129
fax: 604 806 9274
"Since the point of a definition is to explain the meaning of a term to
someone who is unfamiliar with its proper application, the use of
language that doesn't help such a person learn how to apply the term is
pointless. Thus, "happiness is a warm puppy" may be a lovely thought,
but it is a lousy definition."
Köhler et al, 2006
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
WARNING: This email and any attachments may be confidential and/or
privileged. They are intended for the addressee only and are not to be read,
used, copied or disseminated by anyone receiving them in error. If you are
not the intended recipient, please notify the sender by return email and
delete this message and any attachments.
The views expressed in this email are those of the sender and do not
necessarily reflect the official views of Landcare Research.
Landcare Research
http://www.landcareresearch.co.nz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
1
0
05 Jul '06
Author: markus
Date: 2006-07-05 19:59:21 +0200 (Wed, 05 Jul 2006)
New Revision: 540
Modified:
trunk/protocol/tapir.xsd
Log:
Allow the use of template URIs in searches and inventory requests based on XML messaging. Formerly this was only possible through the http-get based VIEW operation. For this to happen inventory nd search template types had to become groups.
Modified: trunk/protocol/tapir.xsd
===================================================================
--- trunk/protocol/tapir.xsd 2006-07-05 16:27:23 UTC (rev 539)
+++ trunk/protocol/tapir.xsd 2006-07-05 17:59:21 UTC (rev 540)
@@ -297,6 +297,60 @@
</xsd:sequence>
</xsd:complexType>
<xsd:element name="searchTemplate" substitutionGroup="queryTemplate" type="searchTemplateType"/>
+ <xsd:group name="searchTemplateGroup">
+ <xsd:sequence>
+ <xsd:element name="outputModel" type="externalResourceType"/>
+ <xsd:element name="partial" minOccurs="0">
+ <xsd:annotation>
+ <xsd:documentation>Select only a subset of the
+ entire response structure to be used in the
+ response. Useful for working with large cached
+ external structures referenced via URLs. Select
+ branch nodes if you want all concepts below
+ included. A partial search must take care that
+ response documents still validate. Thus
+ mandatory elements or attributes of the response
+ structure, which are not listed in the partial
+ search ,must be included in the response
+ content.</xsd:documentation>
+ </xsd:annotation>
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="node" type="nodeReferenceType" maxOccurs="unbounded">
+ <xsd:annotation>
+ <xsd:documentation>A node taken from the response structure definition.</xsd:documentation>
+ </xsd:annotation>
+ </xsd:element>
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <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
+ results.</xsd:documentation>
+ </xsd:annotation>
+ <xsd:complexType>
+ <xsd:sequence>
+ <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
+ ordering will be used instead of the default ascending one.</xsd:documentation>
+ </xsd:annotation>
+ <xsd:complexType>
+ <xsd:complexContent>
+ <xsd:extension base="conceptType">
+ <xsd:attribute name="descend" type="xsd:boolean" use="optional" default="false"/>
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+ </xsd:element>
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ </xsd:sequence>
+ </xsd:group>
<xsd:complexType name="searchTemplateType">
<xsd:annotation>
<xsd:documentation>TAPIR can use a template for configuring search requests.
@@ -305,62 +359,36 @@
<xsd:complexContent>
<xsd:extension base="extResourceDocumentationType">
<xsd:sequence>
- <xsd:element name="outputModel" type="externalResourceType"/>
- <xsd:element name="partial" minOccurs="0">
+ <xsd:group ref="searchTemplateGroup" />
+ </xsd:sequence>
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+ <xsd:element name="inventoryTemplate" substitutionGroup="queryTemplate"
+ type="inventoryTemplateType"/>
+ <xsd:group name="inventoryTemplateGroup">
+ <xsd:annotation>
+ <xsd:documentation>TAPIR can use a template for configuring inventory requests.
+ The Template is accessed, as an external document, by its URI</xsd:documentation>
+ </xsd:annotation>
+ <xsd:sequence>
+ <xsd:element name="concepts">
<xsd:annotation>
- <xsd:documentation>Select only a subset of the
- entire response structure to be used in the
- response. Useful for working with large cached
- external structures referenced via URLs. Select
- branch nodes if you want all concepts below
- included. A partial search must take care that
- response documents still validate. Thus
- mandatory elements or attributes of the response
- structure, which are not listed in the partial
- search ,must be included in the response
- content.</xsd:documentation>
+ <xsd:documentation>Used to specify a list of concepts to make an inventory on.</xsd:documentation>
</xsd:annotation>
<xsd:complexType>
<xsd:sequence>
- <xsd:element name="node" type="nodeReferenceType" maxOccurs="unbounded">
+ <xsd:element name="concept" type="qualifiedConceptReferenceType" minOccurs="0" maxOccurs="unbounded">
<xsd:annotation>
- <xsd:documentation>A node taken from the response structure definition.</xsd:documentation>
+ <xsd:documentation>A single qualified concept</xsd:documentation>
</xsd:annotation>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<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
- results.</xsd:documentation>
- </xsd:annotation>
- <xsd:complexType>
- <xsd:sequence>
- <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
- ordering will be used instead of the default ascending one.</xsd:documentation>
- </xsd:annotation>
- <xsd:complexType>
- <xsd:complexContent>
- <xsd:extension base="conceptType">
- <xsd:attribute name="descend" type="xsd:boolean" use="optional" default="false"/>
- </xsd:extension>
- </xsd:complexContent>
- </xsd:complexType>
- </xsd:element>
- </xsd:sequence>
- </xsd:complexType>
- </xsd:element>
</xsd:sequence>
- </xsd:extension>
- </xsd:complexContent>
- </xsd:complexType>
- <xsd:element name="inventoryTemplate" substitutionGroup="queryTemplate"
- type="inventoryTemplateType"/>
+ </xsd:group>
<xsd:complexType name="inventoryTemplateType">
<xsd:annotation>
<xsd:documentation>TAPIR can use a template for configuring inventory requests.
@@ -369,21 +397,7 @@
<xsd:complexContent>
<xsd:extension base="extResourceDocumentationType">
<xsd:sequence>
- <xsd:element name="concepts">
- <xsd:annotation>
- <xsd:documentation>Used to specify a list of concepts to make an inventory on.</xsd:documentation>
- </xsd:annotation>
- <xsd:complexType>
- <xsd:sequence>
- <xsd:element name="concept" type="qualifiedConceptReferenceType" minOccurs="0" maxOccurs="unbounded">
- <xsd:annotation>
- <xsd:documentation>A single qualified concept</xsd:documentation>
- </xsd:annotation>
- </xsd:element>
- </xsd:sequence>
- </xsd:complexType>
- </xsd:element>
- <xsd:element ref="filter" minOccurs="0"/>
+ <xsd:group ref="inventoryTemplateGroup" />
</xsd:sequence>
</xsd:extension>
</xsd:complexContent>
@@ -715,12 +729,12 @@
</xsd:element>
<xsd:element name="inventory">
<xsd:complexType>
- <xsd:complexContent>
- <xsd:extension base="inventoryTemplateType">
- <xsd:attributeGroup ref="operationRequestGroup"/>
- <xsd:attributeGroup ref="pagingParametersGroup"/>
- </xsd:extension>
- </xsd:complexContent>
+ <xsd:choice>
+ <xsd:element name="template" type="externalResourceType"/>
+ <xsd:group ref="inventoryTemplateGroup"/>
+ </xsd:choice>
+ <xsd:attributeGroup ref="operationRequestGroup"/>
+ <xsd:attributeGroup ref="pagingParametersGroup"/>
</xsd:complexType>
</xsd:element>
<xsd:element name="search">
@@ -728,12 +742,12 @@
<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:annotation>
<xsd:complexType>
- <xsd:complexContent>
- <xsd:extension base="searchTemplateType">
- <xsd:attributeGroup ref="operationRequestGroup"/>
- <xsd:attributeGroup ref="pagingParametersGroup"/>
- </xsd:extension>
- </xsd:complexContent>
+ <xsd:choice>
+ <xsd:element name="template" type="externalResourceType"/>
+ <xsd:group ref="searchTemplateGroup"/>
+ </xsd:choice>
+ <xsd:attributeGroup ref="operationRequestGroup"/>
+ <xsd:attributeGroup ref="pagingParametersGroup"/>
</xsd:complexType>
</xsd:element>
</xsd:choice>
1
0
05 Jul '06
Author: markus
Date: 2006-07-05 18:27:23 +0200 (Wed, 05 Jul 2006)
New Revision: 539
Modified:
trunk/protocol/tapir.xsd
Log:
documentation strings added by Charles Copp. No schema changes.
Modified: trunk/protocol/tapir.xsd
===================================================================
--- trunk/protocol/tapir.xsd 2006-05-19 13:12:15 UTC (rev 538)
+++ trunk/protocol/tapir.xsd 2006-07-05 16:27:23 UTC (rev 539)
@@ -1,1642 +1,1666 @@
-<?xml version="1.0"?>
-<!-- $Id$ -->
-<xsd:schema targetNamespace="http://res.tdwg.org/tapir/1.0"
- xmlns="http://res.tdwg.org/tapir/1.0"
- xmlns:xsd="http://www.w3.org/2001/XMLSchema"
- xmlns:dc="http://purl.org/dc/elements/1.1/"
- xmlns:dct="http://purl.org/dc/terms/"
- xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#"
- xmlns:vcard="http://www.w3.org/2001/vcard-rdf/3.0#"
- elementFormDefault="unqualified"
- attributeFormDefault="unqualified" version="1.0" xml:lang="EN" >
- <xsd:annotation>
- <xsd:documentation xml:lang="en">
- TAPIR XML Schema.
- A unified and extended protocol based on DiGIR and BioCASE.
- </xsd:documentation>
- <xsd:appinfo>
- <dc:title>TAPIR XML Schema</dc:title>
- <dc:creator>Markus Döring [m.doering(a)bgbm.org]</dc:creator>
- <dc:creator>Renato De Giovanni [renato(a)cria.org.br]</dc:creator>
- <dc:relation>http://ww3.bgbm.org/protocolwiki</dc:relation>
- </xsd:appinfo>
- </xsd:annotation>
- <!-- ============================================= -->
- <!-- NAMESPACE IMPORTS -->
- <!-- ============================================= -->
- <xsd:import namespace="http://www.w3.org/XML/1998/namespace"
- schemaLocation="http://www.w3.org/2001/03/xml.xsd"/>
- <xsd:import namespace="http://purl.org/dc/elements/1.1/"
- schemaLocation="dc.xsd"/>
- <xsd:import namespace="http://purl.org/dc/terms/"
- schemaLocation="dcterms.xsd"/>
- <xsd:import namespace="http://www.w3.org/2003/01/geo/wgs84_pos#"
- schemaLocation="w3c_geo.xsd"/>
- <xsd:import namespace="http://www.w3.org/2001/vcard-rdf/3.0#"
- schemaLocation="vcard.xsd"/>
- <!-- ============================================= -->
- <!-- SIMPLE TYPE DEFINITIONS-->
- <!-- ============================================= -->
- <xsd:simpleType name="simpleXPathType">
- <xsd:annotation>
- <xsd:documentation>A simple XPath expression used to reference XML nodes.</xsd:documentation>
- </xsd:annotation>
- <xsd:restriction base="xsd:string"/>
- </xsd:simpleType>
- <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.</xsd:documentation>
- </xsd:annotation>
- <xsd:restriction base="xsd:string"/>
- </xsd:simpleType>
- <!-- ============================================= -->
- <!-- GLOBAL ATTRIBUTES-->
- <!-- ============================================= -->
- <xsd:attribute name="lang" type="xsd:language">
- <xsd:annotation>
- <xsd:documentation>Attribute for language identification. This attribute was globally
- declared to be referenced by others, and therefore simulate the same way of using
- xml:lang (in case it could be necessary to switch to xml:lang in the
- future).</xsd:documentation>
- </xsd:annotation>
- </xsd:attribute>
- <!-- ============================================= -->
- <!-- GENERAL COMPLEX TYPE DEFINITIONS-->
- <!-- ============================================= -->
- <xsd:complexType name="externalResourceType">
- <xsd:attribute name="location" type="xsd:anyURI" use="required"/>
- </xsd:complexType>
- <xsd:complexType name="languageAwareElementType">
- <xsd:annotation>
- <xsd:documentation>A type for elements that may be language
- specific.</xsd:documentation>
- </xsd:annotation>
- <xsd:simpleContent>
- <xsd:extension base="xsd:string">
- <xsd:attribute ref="xml:lang" use="optional"/>
- </xsd:extension>
- </xsd:simpleContent>
- </xsd:complexType>
- <xsd:complexType name="nodeReferenceType">
- <xsd:annotation>
- <xsd:documentation>A reference to an XML node.</xsd:documentation>
- </xsd:annotation>
- <xsd:attribute name="path" type="simpleXPathType" use="required"/>
- </xsd:complexType>
- <xsd:complexType name="qualifiedConceptReferenceType">
- <xsd:annotation>
- <xsd:documentation>A qualified reference to a concept.</xsd:documentation>
- </xsd:annotation>
- <xsd:attribute name="id" type="qualifiedConceptIdType" use="required"/>
- </xsd:complexType>
- <xsd:complexType name="softwareInformationType">
- <xsd:annotation>
- <xsd:documentation>Basic information about a software.</xsd:documentation>
- </xsd:annotation>
- <xsd:attribute name="name" type="xsd:string" use="required"/>
- <xsd:attribute name="version" type="xsd:string" use="required"/>
- </xsd:complexType>
- <xsd:complexType name="headerType">
- <xsd:annotation>
- <xsd:documentation>Header used for requests. If the noresponse attribute is set to true
- the request is meant for logging only and no response should be
- generated.</xsd:documentation>
- </xsd:annotation>
- <xsd:sequence>
- <xsd:element name="source" maxOccurs="unbounded">
- <xsd:annotation>
- <xsd:documentation>Source of this message. Repeatable to trace back all servers
- of a possible cascading transaction, but always starting (first in the
- sequence) with the original source, the client. Holds a URL or at least the
- IP of the source with the timestamp when the message has been processed as
- an attribute in ISO format.</xsd:documentation>
- </xsd:annotation>
- <xsd:complexType>
- <xsd:sequence minOccurs="0">
- <xsd:element name="software" minOccurs="0">
- <xsd:annotation>
- <xsd:documentation>The optional software element should indicate the
- software including its version used to generate or modify the
- document.</xsd:documentation>
- </xsd:annotation>
- <xsd:complexType>
- <xsd:complexContent>
- <xsd:extension base="softwareInformationType">
- <xsd:sequence minOccurs="0">
- <xsd:element name="dependencies" minOccurs="0">
- <xsd:annotation>
- <xsd:documentation>Represents set of dependecies
- for this software.</xsd:documentation>
- </xsd:annotation>
- <xsd:complexType>
- <xsd:sequence minOccurs="0">
- <xsd:element name="dependency" type="softwareInformationType" minOccurs="0" maxOccurs="unbounded">
- <xsd:annotation>
- <xsd:documentation>A single
- dependency for the software,
- e.g. a library, framework,
- component, OS,
- ...</xsd:documentation>
- </xsd:annotation>
- </xsd:element>
- </xsd:sequence>
- </xsd:complexType>
- </xsd:element>
- </xsd:sequence>
- </xsd:extension>
- </xsd:complexContent>
- </xsd:complexType>
- </xsd:element>
- </xsd:sequence>
- <xsd:attribute name="accesspoint" type="xsd:anyURI" use="required"/>
- <xsd:attribute name="sendtime" type="xsd:dateTime" use="required"/>
- </xsd:complexType>
- </xsd:element>
- <xsd:element name="destination" type="xsd:string" minOccurs="0">
- <xsd:annotation>
- <xsd:documentation>Destination of the message. Takes a string which usually will
- be a URI but can be anything e.g. include resource names etc. Its optional
- and an implementation is free to ignore it.</xsd:documentation>
- </xsd:annotation>
- </xsd:element>
- <xsd:element ref="custom" minOccurs="0"/>
- </xsd:sequence>
- </xsd:complexType>
- <xsd:complexType name="diagnosticMessageType">
- <xsd:annotation>
- <xsd:documentation>A diagnostic message from the service (error, warning, additional
- information, etc).</xsd:documentation>
- </xsd:annotation>
- <xsd:simpleContent>
- <xsd:extension base="xsd:string">
- <xsd:attribute name="code" type="xsd:string" use="optional"/>
- <xsd:attribute name="level" use="required">
- <xsd:simpleType>
- <xsd:restriction base="xsd:string">
- <xsd:enumeration value="debug"/>
- <xsd:enumeration value="info"/>
- <xsd:enumeration value="warn"/>
- <xsd:enumeration value="error"/>
- <xsd:enumeration value="fatal"/>
- </xsd:restriction>
- </xsd:simpleType>
- </xsd:attribute>
- <xsd:attribute name="time" type="xsd:dateTime" use="optional"/>
- </xsd:extension>
- </xsd:simpleContent>
- </xsd:complexType>
- <xsd:complexType name="diagnosticsListType">
- <xsd:annotation>
- <xsd:documentation>A list of diagnostic messages from the service.</xsd:documentation>
- </xsd:annotation>
- <xsd:sequence minOccurs="0">
- <xsd:element name="diagnostic" type="diagnosticMessageType" minOccurs="0" maxOccurs="unbounded"/>
- </xsd:sequence>
- </xsd:complexType>
- <xsd:element name="custom">
- <xsd:annotation>
- <xsd:documentation>Extension slot for additional information.</xsd:documentation>
- </xsd:annotation>
- <xsd:complexType>
- <xsd:sequence>
- <xsd:any minOccurs="0" maxOccurs="unbounded">
- <xsd:annotation>
- <xsd:documentation>For any custom extension. E.g what security related
- capabilities does the provider have? Encryption, access restriction,
- etc.</xsd:documentation>
- </xsd:annotation>
- </xsd:any>
- </xsd:sequence>
- </xsd:complexType>
- </xsd:element>
- <!-- ============================================= -->
- <!--EXTERNAL QUERY TEMPLATE DEFINITIONS-->
- <!-- ============================================= -->
- <xsd:element name="outputModel" type="outputModelType"></xsd:element>
- <xsd:complexType name="outputModelType">
- <xsd:sequence>
- <xsd:element name="structure">
- <xsd:annotation>
- <xsd:documentation>The response structure definition. By default this should be
- a subset of the XML Schema language but others such as relax NG could be
- supported in the future.</xsd:documentation>
- </xsd:annotation>
- <xsd:complexType>
- <xsd:choice>
- <xsd:element name="schema" type="externalResourceType"/>
- <xsd:any namespace="##other">
- <xsd:annotation>
- <xsd:documentation>A structure represented through a subset of the
- XML Schema language defining how elements should be
- returned.</xsd:documentation>
- </xsd:annotation>
- </xsd:any>
- </xsd:choice>
- </xsd:complexType>
- </xsd:element>
- <xsd:element name="indexingElement" maxOccurs="unbounded">
- <xsd:annotation>
- <xsd:documentation>A simple XPath pointing to a response structure node that
- should be used as a reference for counting.</xsd:documentation>
- </xsd:annotation>
- <xsd:complexType>
- <xsd:attribute name="path" type="simpleXPathType" use="required"/>
- </xsd:complexType>
- </xsd:element>
- <xsd:element name="mapping">
- <xsd:complexType>
- <xsd:sequence>
- <xsd:element name="node" minOccurs="0" maxOccurs="unbounded">
- <xsd:annotation>
- <xsd:documentation>Maps a node from the structure definition to a
- list of qualified concepts, literals or environment variables,
- which should be concatenated in the output.</xsd:documentation>
- </xsd:annotation>
- <xsd:complexType>
- <xsd:choice maxOccurs="unbounded">
- <xsd:annotation>
- <xsd:documentation>Multiple mappings represent
- concatenation.</xsd:documentation>
- </xsd:annotation>
- <xsd:element ref="concept"/>
- <xsd:element ref="literal"/>
- <xsd:element ref="variable"/>
- </xsd:choice>
- <xsd:attribute name="path" type="simpleXPathType" use="required"/>
- </xsd:complexType>
- </xsd:element>
- </xsd:sequence>
- <xsd:attribute name="automapping" type="xsd:boolean" use="optional" default="false"/>
- </xsd:complexType>
- </xsd:element>
- </xsd:sequence>
- </xsd:complexType>
- <xsd:element name="queryTemplate" abstract="true"/>
- <xsd:complexType name="extResourceDocumentationType">
- <xsd:sequence>
- <xsd:element name="label" type="xsd:string" minOccurs="0"/>
- <xsd:element name="documentation" type="xsd:string" minOccurs="0"/>
- </xsd:sequence>
- </xsd:complexType>
- <xsd:element name="searchTemplate" substitutionGroup="queryTemplate" type="searchTemplateType"/>
- <xsd:complexType name="searchTemplateType">
- <xsd:complexContent>
- <xsd:extension base="extResourceDocumentationType">
- <xsd:sequence>
- <xsd:element name="outputModel" type="externalResourceType"/>
- <xsd:element name="partial" minOccurs="0">
- <xsd:annotation>
- <xsd:documentation>Select only a subset of the
- entire response structure to be used in the
- response. Useful for working with large cached
- external structures referenced via URLs. Select
- branch nodes if you want all concepts below
- included. A partial search must take care that
- response documents still validate. Thus
- mandatory elements or attributes of the response
- structure, which are not listed in the partial
- search ,must be included in the response
- content.</xsd:documentation>
- </xsd:annotation>
- <xsd:complexType>
- <xsd:sequence>
- <xsd:element name="node" type="nodeReferenceType" maxOccurs="unbounded">
- <xsd:annotation>
- <xsd:documentation>A node taken from the response structure definition.</xsd:documentation>
- </xsd:annotation>
- </xsd:element>
- </xsd:sequence>
- </xsd:complexType>
- </xsd:element>
- <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
- results.</xsd:documentation>
- </xsd:annotation>
- <xsd:complexType>
- <xsd:sequence>
- <xsd:element name="concept" maxOccurs="unbounded">
- <xsd:annotation>
- <xsd:documentation>A single concept to be used for ordering the
- view. 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>
- <xsd:complexContent>
- <xsd:extension base="conceptType">
- <xsd:attribute name="descend" type="xsd:boolean" use="optional" default="false"/>
- </xsd:extension>
- </xsd:complexContent>
- </xsd:complexType>
- </xsd:element>
- </xsd:sequence>
- </xsd:complexType>
- </xsd:element>
- </xsd:sequence>
- </xsd:extension>
- </xsd:complexContent>
- </xsd:complexType>
- <xsd:element name="inventoryTemplate" substitutionGroup="queryTemplate"
- type="inventoryTemplateType"/>
- <xsd:complexType name="inventoryTemplateType">
- <xsd:complexContent>
- <xsd:extension base="extResourceDocumentationType">
- <xsd:sequence>
- <xsd:element name="concepts">
- <xsd:annotation>
- <xsd:documentation>Used to specify a list of concepts to
- make an inventory on.</xsd:documentation>
- </xsd:annotation>
- <xsd:complexType>
- <xsd:sequence>
- <xsd:element name="concept" type="qualifiedConceptReferenceType" minOccurs="0" maxOccurs="unbounded">
- <xsd:annotation>
- <xsd:documentation>A single qualified
- concept</xsd:documentation>
- </xsd:annotation>
- </xsd:element>
- </xsd:sequence>
- </xsd:complexType>
- </xsd:element>
- <xsd:element ref="filter" minOccurs="0"/>
- </xsd:sequence>
- </xsd:extension>
- </xsd:complexContent>
- </xsd:complexType>
- <!-- ============================================= -->
- <!-- FILTER DEFINITIONS-->
- <!-- ============================================= -->
- <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
- searching conditions.</xsd:documentation>
- </xsd:annotation>
- <xsd:complexType>
- <xsd:sequence>
- <xsd:element ref="booleanOP"/>
- </xsd:sequence>
- </xsd:complexType>
- </xsd:element>
- <!-- ===== EXPRESSIONS ===== -->
- <xsd:element name="expression" abstract="true">
- <xsd:annotation>
- <xsd:documentation>An abstract element representing any expression (literal, parameter
- or concept).</xsd:documentation>
- </xsd:annotation>
- </xsd:element>
- <!-- ===== SIMPLE EXPRESSIONS ===== -->
- <xsd:element name="simpleExpression" abstract="true" substitutionGroup="expression"/>
- <xsd:element name="literal" substitutionGroup="simpleExpression">
- <xsd:annotation>
- <xsd:documentation>An element to represent literals / values. Substitutes an abstract
- expression element.</xsd:documentation>
- </xsd:annotation>
- <xsd:complexType>
- <xsd:attribute name="value" type="xsd:string" use="required"/>
- </xsd:complexType>
- </xsd:element>
- <xsd:element name="parameter" substitutionGroup="simpleExpression">
- <xsd:annotation>
- <xsd:documentation>An element to represent external parameters e.g. via CGI. Substitutes
- an abstract expression element.</xsd:documentation>
- </xsd:annotation>
- <xsd:complexType>
- <xsd:attribute name="name" type="xsd:string" use="required"/>
- </xsd:complexType>
- </xsd:element>
- <xsd:element name="concept" type="conceptType" substitutionGroup="simpleExpression">
- <xsd:annotation>
- <xsd:documentation>An element to represent a concept of one specific conceptual schema.
- Substitutes an abstract expression element.</xsd:documentation>
- </xsd:annotation>
- </xsd:element>
- <xsd:complexType name="conceptType">
- <xsd:complexContent>
- <xsd:extension base="qualifiedConceptReferenceType"/>
- </xsd:complexContent>
- </xsd:complexType>
- <!-- ===== COMPLEX EXPRESSIONS ===== -->
- <xsd:element name="complexExpression" abstract="true" substitutionGroup="expression"/>
- <!-- === ARITHMETIC EXPRESSION OPERATORS ===-->
- <xsd:element name="AOP" abstract="true" substitutionGroup="complexExpression">
- <xsd:annotation>
- <xsd:documentation>An abstract element representing any Arithmetic
- operator.</xsd:documentation>
- </xsd:annotation>
- </xsd:element>
- <xsd:complexType name="binaryAOPType">
- <xsd:annotation>
- <xsd:documentation>A binary arithmetic operator with the first expression argument being
- the left argument of the operation.</xsd:documentation>
- </xsd:annotation>
- <xsd:sequence>
- <xsd:element ref="expression"/>
- <xsd:element ref="expression"/>
- </xsd:sequence>
- </xsd:complexType>
- <xsd:element name="add" type="binaryAOPType" substitutionGroup="AOP">
- <xsd:annotation>
- <xsd:documentation>The arithmetic addition (+) operator.</xsd:documentation>
- </xsd:annotation>
- </xsd:element>
- <xsd:element name="sub" type="binaryAOPType" substitutionGroup="AOP">
- <xsd:annotation>
- <xsd:documentation>The arithmetic subtraction (-) operator.</xsd:documentation>
- </xsd:annotation>
- </xsd:element>
- <xsd:element name="mul" type="binaryAOPType" substitutionGroup="AOP">
- <xsd:annotation>
- <xsd:documentation>The arithmetic multiplication (*) operator.</xsd:documentation>
- </xsd:annotation>
- </xsd:element>
- <xsd:element name="div" type="binaryAOPType" substitutionGroup="AOP">
- <xsd:annotation>
- <xsd:documentation>The arithmetic division (/) operator.</xsd:documentation>
- </xsd:annotation>
- </xsd:element>
- <!-- ===== ABSTRACT OPERATOR BASE TYPE ===== -->
- <xsd:element name="booleanOP" abstract="true">
- <xsd:annotation>
- <xsd:documentation>An abstract element representing any Arithmetic
- operator.</xsd:documentation>
- </xsd:annotation>
- </xsd:element>
- <!-- ===== COMPARATIVE OPERATORS ===== -->
- <xsd:element name="COP" abstract="true" substitutionGroup="booleanOP">
- <xsd:annotation>
- <xsd:documentation>An abstract element representing any comparison
- operator.</xsd:documentation>
- </xsd:annotation>
- </xsd:element>
- <!-- === unary === -->
- <xsd:element name="unaryCOP" abstract="true" substitutionGroup="COP">
- <xsd:annotation>
- <xsd:documentation>An abstract element representing any unary comparison
- operator.</xsd:documentation>
- </xsd:annotation>
- </xsd:element>
- <xsd:complexType name="unaryCOPType">
- <xsd:annotation>
- <xsd:documentation>A complex type for unary comparison operators.</xsd:documentation>
- </xsd:annotation>
- <xsd:sequence>
- <xsd:element ref="concept"/>
- </xsd:sequence>
- </xsd:complexType>
- <xsd:element name="isNull" type="unaryCOPType" substitutionGroup="unaryCOP">
- <xsd:annotation>
- <xsd:documentation>Compares if a concept is null. Use equals element to compare for
- empty strings.</xsd:documentation>
- </xsd:annotation>
- </xsd:element>
- <!-- === binary === -->
- <xsd:element name="binaryCOP" abstract="true" substitutionGroup="COP">
- <xsd:annotation>
- <xsd:documentation>An abstract element representing any binary comparison
- operator.</xsd:documentation>
- </xsd:annotation>
- </xsd:element>
- <xsd:complexType name="binaryCOPType">
- <xsd:annotation>
- <xsd:documentation>A complex type for binary comparison operators.</xsd:documentation>
- </xsd:annotation>
- <xsd:sequence>
- <xsd:element ref="concept"/>
- <xsd:element ref="expression"/>
- </xsd:sequence>
- </xsd:complexType>
- <xsd:element name="equals" type="binaryCOPType" substitutionGroup="binaryCOP">
- <xsd:annotation>
- <xsd:documentation>The equals (=) comparison operator.</xsd:documentation>
- </xsd:annotation>
- </xsd:element>
- <xsd:element name="lessThan" type="binaryCOPType" substitutionGroup="binaryCOP">
- <xsd:annotation>
- <xsd:documentation>The less than (<) comparison operator.</xsd:documentation>
- </xsd:annotation>
- </xsd:element>
- <xsd:element name="lessThanOrEquals" type="binaryCOPType" substitutionGroup="binaryCOP">
- <xsd:annotation>
- <xsd:documentation>The less than or equals (<=) comparison
- operator.</xsd:documentation>
- </xsd:annotation>
- </xsd:element>
- <xsd:element name="greaterThan" type="binaryCOPType" substitutionGroup="binaryCOP">
- <xsd:annotation>
- <xsd:documentation>The greater than (>) comparison operator.</xsd:documentation>
- </xsd:annotation>
- </xsd:element>
- <xsd:element name="greaterThanOrEquals" type="binaryCOPType" substitutionGroup="binaryCOP">
- <xsd:annotation>
- <xsd:documentation>The greater than or equals (>=) comparison
- operator.</xsd:documentation>
- </xsd:annotation>
- </xsd:element>
- <xsd:element name="like" type="binaryCOPType" substitutionGroup="binaryCOP">
- <xsd:annotation>
- <xsd:documentation>The like (LIKE) comparison operator.</xsd:documentation>
- </xsd:annotation>
- </xsd:element>
- <!-- === multiple === -->
- <xsd:element name="multiCOP" abstract="true" substitutionGroup="COP">
- <xsd:annotation>
- <xsd:documentation>An abstract element representing any multiple comparison
- operator.</xsd:documentation>
- </xsd:annotation>
- </xsd:element>
- <xsd:complexType name="multiCOPType">
- <xsd:annotation>
- <xsd:documentation>A complex type for multiple comparison operators.</xsd:documentation>
- </xsd:annotation>
- <xsd:sequence>
- <xsd:element ref="concept"/>
- <xsd:element name="values">
- <xsd:complexType>
- <xsd:sequence>
- <xsd:element ref="simpleExpression" maxOccurs="unbounded"/>
- </xsd:sequence>
- </xsd:complexType>
- </xsd:element>
- </xsd:sequence>
- </xsd:complexType>
- <xsd:element name="in" type="multiCOPType" substitutionGroup="multiCOP">
- <xsd:annotation>
- <xsd:documentation>The in (IN) comparison operator.</xsd:documentation>
- </xsd:annotation>
- </xsd:element>
- <!-- ===== LOGICAL OPERATORS ===== -->
- <xsd:element name="LOP" abstract="true" substitutionGroup="booleanOP">
- <xsd:annotation>
- <xsd:documentation>An abstract element representing any logical
- operator.</xsd:documentation>
- </xsd:annotation>
- </xsd:element>
- <!-- === unary === -->
- <xsd:element name="unaryLOP" abstract="true" substitutionGroup="LOP">
- <xsd:annotation>
- <xsd:documentation>An abstract element representing any unary logical
- operator.</xsd:documentation>
- </xsd:annotation>
- </xsd:element>
- <xsd:complexType name="unaryLOPType">
- <xsd:annotation>
- <xsd:documentation>A complex type for unary logical operators.</xsd:documentation>
- </xsd:annotation>
- <xsd:sequence>
- <xsd:element ref="booleanOP"/>
- </xsd:sequence>
- </xsd:complexType>
- <xsd:element name="not" substitutionGroup="unaryLOP">
- <xsd:annotation>
- <xsd:documentation>The not logical operator.</xsd:documentation>
- </xsd:annotation>
- <xsd:complexType>
- <xsd:complexContent>
- <xsd:extension base="unaryLOPType"/>
- </xsd:complexContent>
- </xsd:complexType>
- </xsd:element>
- <!-- === multiple === -->
- <xsd:element name="multiLOP" abstract="true" substitutionGroup="LOP">
- <xsd:annotation>
- <xsd:documentation>An abstract element representing any multiple logical
- operator.</xsd:documentation>
- </xsd:annotation>
- </xsd:element>
- <xsd:complexType name="multiLOPType">
- <xsd:annotation>
- <xsd:documentation>A complex type for multiple logical operators.</xsd:documentation>
- </xsd:annotation>
- <xsd:sequence minOccurs="2" maxOccurs="unbounded">
- <xsd:element ref="booleanOP"/>
- </xsd:sequence>
- </xsd:complexType>
- <xsd:element name="and" type="multiLOPType" substitutionGroup="multiLOP">
- <xsd:annotation>
- <xsd:documentation>The and logical operator.</xsd:documentation>
- </xsd:annotation>
- </xsd:element>
- <xsd:element name="or" type="multiLOPType" substitutionGroup="multiLOP">
- <xsd:annotation>
- <xsd:documentation>The or logical operator.</xsd:documentation>
- </xsd:annotation>
- </xsd:element>
- <!-- ===== ENVIRONMENT VARIABLE EXPRESSIONS ===== -->
- <xsd:element name="variable" abstract="true" substitutionGroup="expression">
- <xsd:annotation>
- <xsd:documentation>An abstract element to represent datasource specific values taken
- from the datasource environment by the wrapper.</xsd:documentation>
- </xsd:annotation>
- </xsd:element>
- <xsd:element name="date" substitutionGroup="variable">
- <xsd:annotation>
- <xsd:documentation>An element to represent ISO date like 2005-07-21. Substitutes an
- abstract environment variable element.</xsd:documentation>
- </xsd:annotation>
- <xsd:complexType/>
- </xsd:element>
- <xsd:element name="timestamp" substitutionGroup="variable">
- <xsd:annotation>
- <xsd:documentation>An element to represent an ISO timestamp like 2005-07-20 17:01:38.
- Substitutes an abstract environment variable element.</xsd:documentation>
- </xsd:annotation>
- <xsd:complexType/>
- </xsd:element>
- <xsd:element name="datasourceName" substitutionGroup="variable">
- <xsd:annotation>
- <xsd:documentation>An element to represent the name of the datasource. Substitutes an
- abstract environment variable element.</xsd:documentation>
- </xsd:annotation>
- <xsd:complexType/>
- </xsd:element>
- <xsd:element name="accessPoint" substitutionGroup="variable">
- <xsd:annotation>
- <xsd:documentation>An element to represent the access point of the datasource.
- Substitutes an abstract environment variable element.</xsd:documentation>
- </xsd:annotation>
- <xsd:complexType/>
- </xsd:element>
- <xsd:element name="lastUpdate" substitutionGroup="variable">
- <xsd:annotation>
- <xsd:documentation>An element to represent the timestamp of the last update of the
- datasource. Substitutes an abstract variable expression
- element.</xsd:documentation>
- </xsd:annotation>
- <xsd:complexType/>
- </xsd:element>
- <!-- ============================================= -->
- <!--REQUEST TYPE DEFINITIONS-->
- <!-- ============================================= -->
- <xsd:element name="request" type="requestType">
- <xsd:annotation>
- <xsd:documentation>Global element representing a request.</xsd:documentation>
- </xsd:annotation>
- </xsd:element>
- <xsd:complexType name="requestType">
- <xsd:annotation>
- <xsd:documentation>Request message format. Must always contain header and operation
- specific parameters.</xsd:documentation>
- </xsd:annotation>
- <xsd:sequence>
- <xsd:element name="header" type="headerType"/>
- <xsd:choice>
- <xsd:element name="ping">
- <xsd:complexType>
- <xsd:attributeGroup ref="operationRequestGroup"/>
- </xsd:complexType>
- </xsd:element>
- <xsd:element name="capabilities">
- <xsd:complexType>
- <xsd:attributeGroup ref="operationRequestGroup"/>
- </xsd:complexType>
- </xsd:element>
- <xsd:element name="metadata">
- <xsd:complexType>
- <xsd:attributeGroup ref="operationRequestGroup"/>
- </xsd:complexType>
- </xsd:element>
- <xsd:element name="inventory">
- <xsd:complexType>
- <xsd:complexContent>
- <xsd:extension base="inventoryTemplateType">
- <xsd:attributeGroup ref="operationRequestGroup"/>
- <xsd:attributeGroup ref="pagingParametersGroup"/>
- </xsd:extension>
- </xsd:complexContent>
- </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:annotation>
- <xsd:complexType>
- <xsd:complexContent>
- <xsd:extension base="searchTemplateType">
- <xsd:attributeGroup ref="operationRequestGroup"/>
- <xsd:attributeGroup ref="pagingParametersGroup"/>
- </xsd:extension>
- </xsd:complexContent>
- </xsd:complexType>
- </xsd:element>
- </xsd:choice>
- <xsd:element name="diagnostics" type="diagnosticsListType" minOccurs="0"/>
- </xsd:sequence>
- </xsd:complexType>
- <xsd:attributeGroup name="operationRequestGroup">
- <xsd:attribute name="envelope" type="xsd:boolean" use="optional" default="true"/>
- <xsd:attribute name="xslt" type="xsd:anyURI" use="optional"/>
- <xsd:attribute name="xslt-apply" type="xsd:boolean" use="optional" default="false"/>
- </xsd:attributeGroup>
- <xsd:attributeGroup name="pagingParametersGroup">
- <xsd:attribute name="count" type="xsd:boolean" use="optional" default="false"/>
- <xsd:attribute name="start" type="xsd:nonNegativeInteger" use="optional" default="0"/>
- <xsd:attribute name="limit" type="xsd:nonNegativeInteger" use="optional" default="1"/>
- </xsd:attributeGroup>
- <!-- ============================================= -->
- <!--RESPONSE TYPE DEFINITIONS-->
- <!-- ============================================= -->
- <xsd:element name="response" type="responseType">
- <xsd:annotation>
- <xsd:documentation>Global element representing a response.</xsd:documentation>
- </xsd:annotation>
- </xsd:element>
- <xsd:complexType name="responseType">
- <xsd:annotation>
- <xsd:documentation>Response message format. Must always contain header, results from the
- requested operation and possible diagnostic messages.</xsd:documentation>
- </xsd:annotation>
- <xsd:sequence>
- <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:choice>
- <xsd:element name="diagnostics" type="diagnosticsListType" minOccurs="0">
- <xsd:annotation>
- <xsd:documentation>The diagnostics element can contain many diagnostic pieces of
- information. Should the possible diagnostic codes/messages be defined more
- granularly in a seperate XML Schema?</xsd:documentation>
- </xsd:annotation>
- </xsd:element>
- </xsd:sequence>
- </xsd:complexType>
- <xsd:complexType name="resultSummaryType">
- <xsd:annotation>
- <xsd:documentation>Summary about inventory and search results. The very first index of a
- record is 0. The number of record being actually returned is given in totalReturned.
- If counting was requested the totalMatched gives the "estimated" number of total
- matching records - not necessarily the number of valid records that can possibly be
- returned by paging through the entire record set.</xsd:documentation>
- </xsd:annotation>
- <xsd:attribute name="start" type="xsd:integer" use="required"/>
- <xsd:attribute name="next" type="xsd:integer" use="optional"/>
- <xsd:attribute name="totalReturned" type="xsd:integer" use="required"/>
- <xsd:attribute name="totalMatched" type="xsd:integer" use="optional"/>
- </xsd:complexType>
- <!-- ===== PING ===== -->
- <xsd:element name="pong" type="pingResultType"/>
- <xsd:complexType name="pingResultType">
- <xsd:annotation>
- <xsd:documentation>Format of ping operation result.</xsd:documentation>
- </xsd:annotation>
- </xsd:complexType>
- <!-- ===== CAPABILITIES ===== -->
- <xsd:element name="capabilities" type="capabilitiesResultType"/>
- <xsd:complexType name="capabilitiesResultType">
- <xsd:annotation>
- <xsd:documentation>Format of capabilities operation result.</xsd:documentation>
- </xsd:annotation>
- <xsd:sequence>
- <xsd:element name="operations">
- <xsd:complexType>
- <xsd:sequence>
- <xsd:element name="ping">
- <xsd:complexType/>
- </xsd:element>
- <xsd:element name="metadata">
- <xsd:complexType/>
- </xsd:element>
- <xsd:element name="capabilities">
- <xsd:complexType/>
- </xsd:element>
- <xsd:element name="view" 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: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="predefinedOutputModels">
- <xsd:complexType>
- <xsd:sequence>
- <xsd:element name="outputModel" type="externalResourceType" minOccurs="0" maxOccurs="unbounded"/>
- </xsd:sequence>
- </xsd:complexType>
- </xsd:element>
- <xsd:element name="customOutputModels">
- <xsd:complexType>
- <xsd:sequence minOccurs="0">
- <xsd:element name="structure" type="responseStructureCapabilitiesType" minOccurs="0">
- <xsd:annotation>
- <xsd:documentation>The supported subset of
- the XML Schema
- language.</xsd:documentation>
- </xsd:annotation>
- </xsd:element>
- </xsd:sequence>
- <xsd:attribute name="accepted" type="xsd:boolean" use="required"/>
- </xsd:complexType>
- </xsd:element>
- </xsd:sequence>
- </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:element name="concepts">
- <xsd:annotation>
- <xsd:documentation>The list of known conceptual schemas and their mapped
- concepts.</xsd:documentation>
- </xsd:annotation>
- <xsd:complexType>
- <xsd:sequence>
- <xsd:element name="conceptNameServers">
- <xsd:annotation>
- <xsd:documentation>The location of the alias file or
- ConceptNameServer to define simple aliases for fully qualified
- concept ids.</xsd:documentation>
- </xsd:annotation>
- <xsd:complexType>
- <xsd:sequence>
- <xsd:element name="server" type="externalResourceType" minOccurs="0" maxOccurs="unbounded">
- <xsd:annotation>
- <xsd:documentation>Multiple servers allowed. Ordered list with the first server(s) having priority over the following ones.</xsd:documentation>
- </xsd:annotation>
- </xsd:element>
- </xsd:sequence>
- </xsd:complexType>
- </xsd:element>
- <xsd:element name="schema" maxOccurs="unbounded">
- <xsd:annotation>
- <xsd:documentation>Namespace and location of a supported
- schema.</xsd:documentation>
- </xsd:annotation>
- <xsd:complexType>
- <xsd:sequence>
- <xsd:element name="mappedConcept" maxOccurs="unbounded">
- <xsd:annotation>
- <xsd:documentation>Each known and mapped concept of a
- schema listed with a boolean flag indicating if its
- searchable (default = true). The mandatory flag can
- be used to indicate that some concepts need to be
- present in response structures
- (default=false).</xsd:documentation>
- </xsd:annotation>
- <xsd:complexType>
- <xsd:complexContent>
- <xsd:extension base="qualifiedConceptReferenceType">
- <xsd:attribute name="searchable" type="xsd:boolean" use="optional" default="true"/>
- <xsd:attribute name="mandatory" type="xsd:boolean" use="optional" default="false"/>
- </xsd:extension>
- </xsd:complexContent>
- </xsd:complexType>
- </xsd:element>
- </xsd:sequence>
- <xsd:attribute name="namespace" type="xsd:anyURI" use="required"/>
- <xsd:attribute name="location" type="xsd:anyURI" use="required"/>
- </xsd:complexType>
- </xsd:element>
- </xsd:sequence>
- </xsd:complexType>
- </xsd:element>
- <xsd:element name="variables">
- <xsd:complexType>
- <xsd:sequence>
- <xsd:element name="environment" minOccurs="0">
- <xsd:complexType>
- <xsd:sequence>
- <xsd:element ref="variable" minOccurs="0" maxOccurs="unbounded"/>
- <xsd:element ref="custom" minOccurs="0">
- <xsd:annotation>
- <xsd:documentation>Extension slot for other variables.</xsd:documentation>
- </xsd:annotation>
- </xsd:element>
- </xsd:sequence>
- </xsd:complexType>
- </xsd:element>
- </xsd:sequence>
- </xsd:complexType>
- </xsd:element>
- <xsd:element name="settings">
- <xsd:annotation>
- <xsd:documentation>Information about the local configuration of a
- datasource.</xsd:documentation>
- </xsd:annotation>
- <xsd:complexType>
- <xsd:sequence>
- <xsd:element name="minQueryTermLength" type="xsd:integer" minOccurs="0">
- <xsd:annotation>
- <xsd:documentation>Indicates the minimum length for wildcarded
- strings used in like comparisons.</xsd:documentation>
- </xsd:annotation>
- </xsd:element>
- <xsd:element name="maxElementRepetitions" type="xsd:integer" minOccurs="0">
- <xsd:annotation>
- <xsd:documentation>Indicates the maximum number of repetitions
- allowed in responses for each repeatable element defined in
- response structures.</xsd:documentation>
- </xsd:annotation>
- </xsd:element>
- <xsd:element name="maxElementLevels" type="xsd:integer" minOccurs="0">
- <xsd:annotation>
- <xsd:documentation>Indicates the maximum number of allowed levels
- (depth) for response elements.</xsd:documentation>
- </xsd:annotation>
- </xsd:element>
- <xsd:element name="maxResponseTags" type="xsd:integer" minOccurs="0">
- <xsd:annotation>
- <xsd:documentation>Indicates the maximum number of tags that can be
- returned by responses.</xsd:documentation>
- </xsd:annotation>
- </xsd:element>
- <xsd:element name="maxResponseSize" type="xsd:integer" minOccurs="0">
- <xsd:annotation>
- <xsd:documentation>Indicates the maximum size in kilobytes allowed
- to be returned by responses.</xsd:documentation>
- </xsd:annotation>
- </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:complexType name="responseStructureCapabilitiesType">
- <xsd:annotation>
- <xsd:documentation>A complete indication about what subset of the response structure
- specification is supported by a service.</xsd:documentation>
- </xsd:annotation>
- <xsd:sequence>
- <xsd:element name="basicSchemaLanguage">
- <xsd:annotation>
- <xsd:documentation>This includes the following xml schema tags: schema incl
- target namespace, element incl min/maxOccurs, attribute incl minOccurs,
- sequence, all If defined locally it should also include complexType +
- simpleType definitions incl complexContent +
- simpleContent</xsd:documentation>
- </xsd:annotation>
- <xsd:complexType/>
- </xsd:element>
- <xsd:element name="choice" minOccurs="0">
- <xsd:complexType/>
- </xsd:element>
- <xsd:element name="group" minOccurs="0">
- <xsd:annotation>
- <xsd:documentation>local group definitions without global
- referencing</xsd:documentation>
- </xsd:annotation>
- <xsd:complexType/>
- </xsd:element>
- <xsd:element name="import" minOccurs="0">
- <xsd:complexType/>
- </xsd:element>
- <xsd:element name="references" minOccurs="0">
- <xsd:annotation>
- <xsd:documentation>The global use of the tags grouped here when locally
- referenced via the "ref" attribute.</xsd:documentation>
- </xsd:annotation>
- <xsd:complexType>
- <xsd:sequence minOccurs="0">
- <xsd:element name="element" minOccurs="0">
- <xsd:complexType/>
- </xsd:element>
- <xsd:element name="attribute" minOccurs="0">
- <xsd:complexType/>
- </xsd:element>
- <xsd:element name="group" minOccurs="0">
- <xsd:complexType/>
- </xsd:element>
- <xsd:element name="attributeGroup" minOccurs="0">
- <xsd:complexType/>
- </xsd:element>
- <xsd:element name="complexType" minOccurs="0">
- <xsd:complexType/>
- </xsd:element>
- <xsd:element name="simpleType" minOccurs="0">
- <xsd:complexType>
- <xsd:sequence minOccurs="0">
- <xsd:element name="list" minOccurs="0">
- <xsd:complexType/>
- </xsd:element>
- <xsd:element name="union" minOccurs="0">
- <xsd:complexType/>
- </xsd:element>
- </xsd:sequence>
- </xsd:complexType>
- </xsd:element>
- </xsd:sequence>
- </xsd:complexType>
- </xsd:element>
- <xsd:element name="simpleTypes" minOccurs="0">
- <xsd:complexType>
- <xsd:sequence minOccurs="0">
- <xsd:element name="stringTypes" minOccurs="0">
- <xsd:complexType>
- <xsd:sequence minOccurs="0">
- <xsd:element name="string" minOccurs="0">
- <xsd:complexType/>
- </xsd:element>
- <xsd:element name="normalizedString" minOccurs="0">
- <xsd:complexType/>
- </xsd:element>
- <xsd:element name="token" minOccurs="0">
- <xsd:complexType/>
- </xsd:element>
- <xsd:element name="language" minOccurs="0">
- <xsd:complexType/>
- </xsd:element>
- <xsd:element name="Name" minOccurs="0">
- <xsd:complexType/>
- </xsd:element>
- <xsd:element name="NCName" minOccurs="0">
- <xsd:complexType/>
- </xsd:element>
- <xsd:element name="NMToken" minOccurs="0">
- <xsd:complexType/>
- </xsd:element>
- <xsd:element name="NMTokens" minOccurs="0">
- <xsd:complexType/>
- </xsd:element>
- <xsd:element name="ID" minOccurs="0">
- <xsd:complexType/>
- </xsd:element>
- <xsd:element name="IDREF" minOccurs="0">
- <xsd:complexType/>
- </xsd:element>
- <xsd:element name="IDREFS" minOccurs="0">
- <xsd:complexType/>
- </xsd:element>
- <xsd:element name="ENTITY" minOccurs="0">
- <xsd:complexType/>
- </xsd:element>
- <xsd:element name="ENTITIES" minOccurs="0">
- <xsd:complexType/>
- </xsd:element>
- </xsd:sequence>
- </xsd:complexType>
- </xsd:element>
- <xsd:element name="numericTypes" minOccurs="0">
- <xsd:complexType>
- <xsd:sequence minOccurs="0">
- <xsd:element name="float" minOccurs="0">
- <xsd:complexType/>
- </xsd:element>
- <xsd:element name="double" minOccurs="0">
- <xsd:complexType/>
- </xsd:element>
- <xsd:element name="decimal" minOccurs="0">
- <xsd:complexType/>
- </xsd:element>
- <xsd:element name="integerTypes" minOccurs="0">
- <xsd:complexType>
- <xsd:sequence minOccurs="0">
- <xsd:element name="integer" minOccurs="0">
- <xsd:complexType/>
- </xsd:element>
- <xsd:element name="long" minOccurs="0">
- <xsd:complexType/>
- </xsd:element>
- <xsd:element name="int" minOccurs="0"/>
- <xsd:element name="short" minOccurs="0">
- <xsd:complexType/>
- </xsd:element>
- <xsd:element name="byte" minOccurs="0">
- <xsd:complexType/>
- </xsd:element>
- <xsd:element name="positiveInteger" minOccurs="0">
- <xsd:complexType/>
- </xsd:element>
- <xsd:element name="nonPositiveInteger" minOccurs="0">
- <xsd:complexType/>
- </xsd:element>
- <xsd:element name="negativeInteger" minOccurs="0">
- <xsd:complexType/>
- </xsd:element>
- <xsd:element name="nonNegativeInteger" minOccurs="0">
- <xsd:complexType/>
- </xsd:element>
- <xsd:element name="unsignedLong" minOccurs="0">
- <xsd:complexType/>
- </xsd:element>
- <xsd:element name="unsignedInt" minOccurs="0">
- <xsd:complexType/>
- </xsd:element>
- <xsd:element name="unsignedShort" minOccurs="0">
- <xsd:complexType/>
- </xsd:element>
- <xsd:element name="unsignedByte" minOccurs="0">
- <xsd:complexType/>
- </xsd:element>
- </xsd:sequence>
- </xsd:complexType>
- </xsd:element>
- </xsd:sequence>
- </xsd:complexType>
- </xsd:element>
- <xsd:element name="dateTimeTypes" minOccurs="0">
- <xsd:complexType>
- <xsd:sequence minOccurs="0">
- <xsd:element name="duration" minOccurs="0">
- <xsd:complexType/>
- </xsd:element>
- <xsd:element name="dateTime" minOccurs="0">
- <xsd:complexType/>
- </xsd:element>
- <xsd:element name="time" minOccurs="0">
- <xsd:complexType/>
- </xsd:element>
- <xsd:element name="date" minOccurs="0">
- <xsd:complexType/>
- </xsd:element>
- <xsd:element name="gYearMonth" minOccurs="0">
- <xsd:complexType/>
- </xsd:element>
- <xsd:element name="gYear" minOccurs="0">
- <xsd:complexType/>
- </xsd:element>
- <xsd:element name="gMonthDay" minOccurs="0">
- <xsd:complexType/>
- </xsd:element>
- <xsd:element name="gDay" minOccurs="0">
- <xsd:complexType/>
- </xsd:element>
- <xsd:element name="gMonth" minOccurs="0">
- <xsd:complexType/>
- </xsd:element>
- </xsd:sequence>
- </xsd:complexType>
- </xsd:element>
- <xsd:element name="miscTypes" minOccurs="0">
- <xsd:complexType>
- <xsd:sequence minOccurs="0">
- <xsd:element name="boolean" minOccurs="0">
- <xsd:complexType/>
- </xsd:element>
- <xsd:element name="base64Binary" minOccurs="0">
- <xsd:complexType/>
- </xsd:element>
- <xsd:element name="hexBinary" minOccurs="0">
- <xsd:complexType/>
- </xsd:element>
- <xsd:element name="anyURI" minOccurs="0">
- <xsd:complexType/>
- </xsd:element>
- <xsd:element name="QName" minOccurs="0">
- <xsd:complexType/>
- </xsd:element>
- </xsd:sequence>
- </xsd:complexType>
- </xsd:element>
- </xsd:sequence>
- </xsd:complexType>
- </xsd:element>
- <xsd:element name="extension" minOccurs="0">
- <xsd:complexType/>
- </xsd:element>
- <xsd:element name="restriction" minOccurs="0">
- <xsd:complexType>
- <xsd:sequence minOccurs="0">
- <xsd:element name="minInclusive" minOccurs="0">
- <xsd:complexType/>
- </xsd:element>
- <xsd:element name="maxInclusive" minOccurs="0">
- <xsd:complexType/>
- </xsd:element>
- <xsd:element name="minExclusive" minOccurs="0">
- <xsd:complexType/>
- </xsd:element>
- <xsd:element name="maxExclusive" minOccurs="0">
- <xsd:complexType/>
- </xsd:element>
- <xsd:element name="fractionDigits" minOccurs="0">
- <xsd:complexType/>
- </xsd:element>
- <xsd:element name="totalDigits" minOccurs="0">
- <xsd:complexType/>
- </xsd:element>
- <xsd:element name="enumeration" minOccurs="0">
- <xsd:complexType/>
- </xsd:element>
- <xsd:element name="whiteSpace" minOccurs="0">
- <xsd:complexType/>
- </xsd:element>
- <xsd:element name="pattern" minOccurs="0">
- <xsd:complexType/>
- </xsd:element>
- <xsd:element name="length" minOccurs="0">
- <xsd:complexType/>
- </xsd:element>
- <xsd:element name="minLength" minOccurs="0">
- <xsd:complexType/>
- </xsd:element>
- <xsd:element name="maxLength" minOccurs="0">
- <xsd:complexType/>
- </xsd:element>
- </xsd:sequence>
- </xsd:complexType>
- </xsd:element>
- <xsd:element name="substitutionGroup" minOccurs="0">
- <xsd:complexType/>
- </xsd:element>
- <xsd:element name="constraints" minOccurs="0">
- <xsd:complexType>
- <xsd:sequence minOccurs="0">
- <xsd:element name="field" minOccurs="0">
- <xsd:complexType/>
- </xsd:element>
- <xsd:element name="selector" minOccurs="0">
- <xsd:complexType/>
- </xsd:element>
- <xsd:element name="unique" minOccurs="0">
- <xsd:complexType/>
- </xsd:element>
- <xsd:element name="key" minOccurs="0">
- <xsd:complexType/>
- </xsd:element>
- <xsd:element name="keyref" minOccurs="0">
- <xsd:complexType/>
- </xsd:element>
- </xsd:sequence>
- </xsd:complexType>
- </xsd:element>
- </xsd:sequence>
- </xsd:complexType>
- <xsd:complexType name="filterCapabilitiesType">
- <xsd:annotation>
- <xsd:documentation>A complete indication about what filter operators are supported by a
- service.</xsd:documentation>
- </xsd:annotation>
- <xsd:sequence>
- <xsd:element name="encoding" minOccurs="0">
- <xsd:complexType>
- <xsd:sequence>
- <xsd:element name="expression">
- <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: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 ref="custom" minOccurs="0"/>
- </xsd:sequence>
- </xsd:complexType>
- </xsd:element>
- <xsd:element name="booleanOperators">
- <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">
- <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="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: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:sequence>
- </xsd:complexType>
- </xsd:element>
- </xsd:sequence>
- </xsd:complexType>
- <!-- ===== METADATA ===== -->
- <xsd:element name="metadata" type="metadataResultType">
- <xsd:annotation>
- <xsd:documentation>Global element to validate external metadata XML
- files.</xsd:documentation>
- </xsd:annotation>
- </xsd:element>
- <xsd:complexType name="metadataResultType">
- <xsd:annotation>
- <xsd:documentation>Format of metadata operation result.</xsd:documentation>
- </xsd:annotation>
- <xsd:sequence>
- <xsd:element ref="dc:title">
- <xsd:annotation>
- <xsd:documentation>The name of this service possibly in different
- languages.</xsd:documentation>
- </xsd:annotation>
- </xsd:element>
- <xsd:element ref="dc:type">
- <xsd:annotation>
- <xsd:documentation>http://purl.org/dc/dcmitype/Service</xsd:documentation>
- </xsd:annotation>
- </xsd:element>
- <xsd:element name="accesspoint" type="xsd:anyURI">
- <xsd:annotation>
- <xsd:documentation>The URL of the access point of this
- service.</xsd:documentation>
- </xsd:annotation>
- </xsd:element>
- <xsd:element ref="dc:description">
- <xsd:annotation>
- <xsd:documentation></xsd:documentation>
- </xsd:annotation>
- </xsd:element>
- <xsd:element ref="dc:language">
- <xsd:annotation>
- <xsd:documentation></xsd:documentation>
- </xsd:annotation>
- </xsd:element>
- <xsd:element ref="dc:subject">
- <xsd:annotation>
- <xsd:documentation></xsd:documentation>
- </xsd:annotation>
- </xsd:element>
- <xsd:element ref="dct:bibliographicCitation">
- <xsd:annotation>
- <xsd:documentation></xsd:documentation>
- </xsd:annotation>
- </xsd:element>
- <xsd:element ref="dc:rights">
- <xsd:annotation>
- <xsd:documentation></xsd:documentation>
- </xsd:annotation>
- </xsd:element>
- <xsd:element ref="dct:modified">
- <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"/>
- <xsd:attribute name="maxDuration" type="xsd:duration"/>
- <xsd:attribute name="frequency" type="xsd:duration" />
- </xsd:complexType>
- </xsd:element>
- <xsd:element name="relatedEntity" type="relatedEntityInformationType" maxOccurs="unbounded">
- <xsd:annotation>
- <xsd:documentation>Entities (companies, organisations, institutions) related to
- this service with their respective roles, e.g. publisher, data
- supplier</xsd:documentation>
- </xsd:annotation>
- </xsd:element>
- <xsd:element ref="custom" minOccurs="0"/>
- </xsd:sequence>
- </xsd:complexType>
- <xsd:complexType name="relatedEntityInformationType">
- <xsd:annotation>
- <xsd:documentation>Information about an entity that may have some relationship with the
- service being provided.</xsd:documentation>
- </xsd:annotation>
- <xsd:sequence>
- <xsd:element name="role" type="entityRoleExtensionType" maxOccurs="unbounded">
- <xsd:annotation>
- <xsd:documentation>Used to specify the roles of a related entity, such as "data
- supplier", "technical host", etc.</xsd:documentation>
- </xsd:annotation>
- </xsd:element>
- <xsd:element name="entity" type="entityInformationType"/>
- </xsd:sequence>
- </xsd:complexType>
- <xsd:simpleType name="entityRoleType">
- <xsd:restriction base="xsd:string">
- <xsd:enumeration value="data supplier"/>
- <xsd:enumeration value="technical host"/>
- </xsd:restriction>
- </xsd:simpleType>
- <xsd:simpleType name="entityRoleExtensionType">
- <xsd:union memberTypes="entityRoleType xsd:string"/>
- </xsd:simpleType>
- <xsd:element name="entity" type="entityInformationType">
- <xsd:annotation>
- <xsd:documentation>Global element to validate external XML representations of entities.
- An entity here could be a company, organisation, institution, or
- person.</xsd:documentation>
- </xsd:annotation>
- </xsd:element>
- <xsd:simpleType name="contactRoleType">
- <xsd:restriction base="xsd:string">
- <xsd:enumeration value="data administrator"/>
- <xsd:enumeration value="system administrator"/>
- </xsd:restriction>
- </xsd:simpleType>
- <xsd:simpleType name="contactRoleExtensionType">
- <xsd:union memberTypes="contactRoleType xsd:string"/>
- </xsd:simpleType>
- <xsd:complexType name="entityInformationType">
- <xsd:annotation>
- <xsd:documentation>Entity information.</xsd:documentation>
- </xsd:annotation>
- <xsd:sequence>
- <xsd:element name="identifier" type="xsd:string" minOccurs="0">
- <xsd:annotation>
- <xsd:documentation>A global unique identifier for the
- entity.</xsd:documentation>
- </xsd:annotation>
- </xsd:element>
- <xsd:element name="name" type="languageAwareElementType" maxOccurs="unbounded">
- <xsd:annotation>
- <xsd:documentation>The name of the entity possibly in different
- languages.</xsd:documentation>
- </xsd:annotation>
- </xsd:element>
- <xsd:element name="acronym" type="xsd:string" minOccurs="0">
- <xsd:annotation>
- <xsd:documentation>An acronym for the entity name</xsd:documentation>
- </xsd:annotation>
- </xsd:element>
- <xsd:element name="logoURL" type="xsd:anyURI" minOccurs="0">
- <xsd:annotation>
- <xsd:documentation>A URL to a small logo of the entity.</xsd:documentation>
- </xsd:annotation>
- </xsd:element>
- <xsd:element name="description" type="languageAwareElementType" minOccurs="0" maxOccurs="unbounded">
- <xsd:annotation>
- <xsd:documentation>The description of the entity possibly in different
- languages.</xsd:documentation>
- </xsd:annotation>
- </xsd:element>
- <xsd:element name="address" type="xsd:string" minOccurs="0"/>
- <xsd:element name="relatedInformation" type="xsd:anyURI" minOccurs="0" maxOccurs="unbounded">
- <xsd:annotation>
- <xsd:documentation>Other related information about this entity found at the
- specified URL.</xsd:documentation>
- </xsd:annotation>
- </xsd:element>
- <xsd:element name="hasContact" maxOccurs="unbounded">
- <xsd:complexType>
- <xsd:sequence>
- <xsd:element name="role" type="contactRoleExtensionType" maxOccurs="unbounded" />
- <xsd:element ref="vcard:VCARD"/>
- </xsd:sequence>
- </xsd:complexType>
- </xsd:element>
- <xsd:element ref="geo:Point" minOccurs="0">
- <xsd:annotation>
- <xsd:documentation>Location of the entity in decimal WGS84 latitude and longitude (and optional altitude) as defined by the W3C Basic Geo Vocabulary</xsd:documentation>
- </xsd:annotation>
- </xsd:element>
- <xsd:element ref="custom" minOccurs="0"/>
- </xsd:sequence>
- <xsd:attribute ref="lang"/>
- </xsd:complexType>
- <!-- ===== INVENTORY===== -->
- <xsd:complexType name="inventoryResultType">
- <xsd:annotation>
- <xsd:documentation>Format of inventory operation result.</xsd:documentation>
- </xsd:annotation>
- <xsd:sequence>
- <xsd:element name="concepts">
- <xsd:complexType>
- <xsd:sequence>
- <xsd:element ref="concept" maxOccurs="unbounded"/>
- </xsd:sequence>
- </xsd:complexType>
- </xsd:element>
- <xsd:element name="record" minOccurs="0" maxOccurs="unbounded">
- <xsd:annotation>
- <xsd:documentation>A distinct combination of values for all "inventoried"
- concepts. The optional attribute "count" is used to count the number of
- occurrences for this distinct combination and will only be set if the count
- flag was used when requesting an inventory.</xsd:documentation>
- </xsd:annotation>
- <xsd:complexType>
- <xsd:sequence>
- <xsd:element name="value" maxOccurs="unbounded">
- <xsd:annotation>
- <xsd:documentation>A single value for a single concept. The sequence
- of the values should correspond to the sequence used in the
- request.</xsd:documentation>
- </xsd:annotation>
- <xsd:complexType>
- <xsd:simpleContent>
- <xsd:extension base="xsd:string"/>
- </xsd:simpleContent>
- </xsd:complexType>
- </xsd:element>
- </xsd:sequence>
- <xsd:attribute name="count" type="xsd:positiveInteger" use="optional"/>
- </xsd:complexType>
- </xsd:element>
- <xsd:element name="summary" type="resultSummaryType">
- <xsd:annotation>
- <xsd:documentation>Used to show information about the number of records for
- counting and paging purposes.</xsd:documentation>
- </xsd:annotation>
- </xsd:element>
- </xsd:sequence>
- </xsd:complexType>
- <!-- ===== SEARCH ===== -->
- <xsd:complexType name="searchResultType">
- <xsd:annotation>
- <xsd:documentation>Format of search operation result.</xsd:documentation>
- </xsd:annotation>
- <xsd:sequence>
- <xsd:any/>
- <xsd:element name="summary" type="resultSummaryType">
- <xsd:annotation>
- <xsd:documentation>Used to show information about the number of records for
- counting and paging purposes.</xsd:documentation>
- </xsd:annotation>
- </xsd:element>
- </xsd:sequence>
- </xsd:complexType>
-</xsd:schema>
+<?xml version="1.0"?>
+<!-- $Id$ -->
+<xsd:schema targetNamespace="http://res.tdwg.org/tapir/1.0"
+ xmlns="http://res.tdwg.org/tapir/1.0"
+ xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:dct="http://purl.org/dc/terms/"
+ xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#"
+ xmlns:vcard="http://www.w3.org/2001/vcard-rdf/3.0#"
+ elementFormDefault="unqualified"
+ attributeFormDefault="unqualified" version="1.0" xml:lang="EN" >
+ <xsd:annotation>
+ <xsd:documentation xml:lang="en">
+ TAPIR XML Schema. TAPIR is an acronym for TDWG Access Protocol for Information Retrieval.
+ A unified and extended protocol based on DiGIR and BioCASE. TAPIR specifies a standardised,
+ stateless, HTTP transmittable, XML-based request and response protocol for accessing, structured
+ data that may be stored on any number of distributed databases of varied physical and logical
+ structure. TAPIR documents are either request or response types, as defined by their root element.
+ </xsd:documentation>
+ <xsd:appinfo>
+ <dc:title>TAPIR XML Schema</dc:title>
+ <dc:creator>Markus Döring [m.doering(a)bgbm.org]</dc:creator>
+ <dc:creator>Renato De Giovanni [renato(a)cria.org.br]</dc:creator>
+ <dc:relation>http://ww3.bgbm.org/protocolwiki</dc:relation>
+ <dc:contributor>Charles Copp [eim(a)globalnet.co.uk]</dc:contributor>
+ </xsd:appinfo>
+ </xsd:annotation>
+ <!-- ============================================= -->
+ <!-- NAMESPACE IMPORTS -->
+ <!-- ============================================= -->
+ <xsd:import namespace="http://www.w3.org/XML/1998/namespace"
+ schemaLocation="http://www.w3.org/2001/03/xml.xsd"/>
+ <xsd:import namespace="http://purl.org/dc/elements/1.1/"
+ schemaLocation="dc.xsd"/>
+ <xsd:import namespace="http://purl.org/dc/terms/"
+ schemaLocation="dcterms.xsd"/>
+ <xsd:import namespace="http://www.w3.org/2003/01/geo/wgs84_pos#"
+ schemaLocation="w3c_geo.xsd"/>
+ <xsd:import namespace="http://www.w3.org/2001/vcard-rdf/3.0#"
+ schemaLocation="vcard.xsd"/>
+ <!-- ============================================= -->
+ <!-- SIMPLE TYPE DEFINITIONS-->
+ <!-- ============================================= -->
+ <xsd:simpleType name="simpleXPathType">
+ <xsd:annotation>
+ <xsd:documentation>A simple XPath expression used to reference XML nodes.
+ e.g. /dataset/specimen/identification/name</xsd:documentation>
+ </xsd:annotation>
+ <xsd:restriction base="xsd:string"/>
+ </xsd:simpleType>
+ <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(a)abcd1.20.</xsd:documentation>
+ </xsd:annotation>
+ <xsd:restriction base="xsd:string"/>
+ </xsd:simpleType>
+ <!-- ============================================= -->
+ <!-- GLOBAL ATTRIBUTES-->
+ <!-- ============================================= -->
+ <xsd:attribute name="lang" type="xsd:language">
+ <xsd:annotation>
+ <xsd:documentation>Attribute for language identification. This attribute was globally
+ declared to be referenced by others, and therefore simulate the same way of using
+ xml:lang (in case it could be necessary to switch to xml:lang in the future).</xsd:documentation>
+ </xsd:annotation>
+ </xsd:attribute>
+ <!-- ============================================= -->
+ <!-- GENERAL COMPLEX TYPE DEFINITIONS-->
+ <!-- ============================================= -->
+ <xsd:complexType name="externalResourceType">
+ <xsd:annotation>
+ <xsd:documentation>A URI that points to a document or schema referenced by TAPIR operations</xsd:documentation>
+ </xsd:annotation>
+ <xsd:attribute name="location" type="xsd:anyURI" use="required"/>
+ </xsd:complexType>
+ <xsd:complexType name="languageAwareElementType">
+ <xsd:annotation>
+ <xsd:documentation> String with a language attribute. A type for elements that may be language specific.</xsd:documentation>
+ </xsd:annotation>
+ <xsd:simpleContent>
+ <xsd:extension base="xsd:string">
+ <xsd:attribute ref="xml:lang" use="optional"/>
+ </xsd:extension>
+ </xsd:simpleContent>
+ </xsd:complexType>
+ <xsd:complexType name="nodeReferenceType">
+ <xsd:annotation>
+ <xsd:documentation>A reference to an XML node in a conceptual schema.
+ Uses a simple XPath stored as an attribute.</xsd:documentation>
+ </xsd:annotation>
+ <xsd:attribute name="path" type="simpleXPathType" use="required"/>
+ </xsd:complexType>
+ <xsd:complexType name="qualifiedConceptReferenceType">
+ <xsd:annotation>
+ <xsd:documentation>A qualified reference to a concept. Uses an attribute to hold a concept
+ and its namespace prefix or an alias as defined in qualifiedConceptIdType </xsd:documentation>
+ </xsd:annotation>
+ <xsd:attribute name="id" type="qualifiedConceptIdType" use="required"/>
+ </xsd:complexType>
+ <xsd:complexType name="softwareInformationType">
+ <xsd:annotation>
+ <xsd:documentation> Information about the software used to construct or relay a TAPIR request or response.
+ The software name and version are stored as simple string attributes.</xsd:documentation>
+ </xsd:annotation>
+ <xsd:attribute name="name" type="xsd:string" use="required"/>
+ <xsd:attribute name="version" type="xsd:string" use="required"/>
+ </xsd:complexType>
+ <xsd:complexType name="headerType">
+ <xsd:annotation>
+ <xsd:documentation>A Header is part of request and response messages. The Header describes the source of the request or response
+ and optionally its destination. It may also describe the software that sent the request or response
+ and there is a custom section for extending the information e.g. with information related to security or access.
+ If the noresponse attribute is set to true the request is meant for logging only and no response should be generated.
+ The header can list several sources, where for instance, a request is cascaded through one or more portals. </xsd:documentation>
+ </xsd:annotation>
+ <xsd:sequence>
+ <xsd:element name="source" maxOccurs="unbounded">
+ <xsd:annotation>
+ <xsd:documentation>Source of this message. Repeatable to trace back all servers
+ of a possible cascading transaction, but always starting (first in the
+ sequence) with the original source, the client. Holds a URL or at least the
+ IP of the source with the timestamp when the message has been processed as
+ an attribute in ISO format.</xsd:documentation>
+ </xsd:annotation>
+ <xsd:complexType>
+ <xsd:sequence minOccurs="0">
+ <xsd:element name="software" minOccurs="0">
+ <xsd:annotation>
+ <xsd:documentation>The optional software element should indicate the
+ software including its version, used to generate or modify the
+ document. It may also list any dependencies on libraries and other software</xsd:documentation>
+ </xsd:annotation>
+ <xsd:complexType>
+ <xsd:complexContent>
+ <xsd:extension base="softwareInformationType">
+ <xsd:sequence minOccurs="0">
+ <xsd:element name="dependencies" minOccurs="0">
+ <xsd:annotation>
+ <xsd:documentation>Represents set of dependecies for this software.</xsd:documentation>
+ </xsd:annotation>
+ <xsd:complexType>
+ <xsd:sequence minOccurs="0">
+ <xsd:element name="dependency" type="softwareInformationType" minOccurs="0" maxOccurs="unbounded">
+ <xsd:annotation>
+ <xsd:documentation>A singledependency for the software,e.g. a library, framework, component, OS,...</xsd:documentation>
+ </xsd:annotation>
+ </xsd:element>
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ </xsd:sequence>
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+ </xsd:element>
+ </xsd:sequence>
+ <xsd:attribute name="accesspoint" type="xsd:anyURI" use="required"/>
+ <xsd:attribute name="sendtime" type="xsd:dateTime" use="required"/>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="destination" type="xsd:string" minOccurs="0">
+ <xsd:annotation>
+ <xsd:documentation>Destination of the message. Takes a string which usually will
+ be a URI but can be anything e.g. include resource names etc. It is optional
+ and an implementation is free to ignore it.</xsd:documentation>
+ </xsd:annotation>
+ </xsd:element>
+ <xsd:element ref="custom" minOccurs="0"/>
+ </xsd:sequence>
+ </xsd:complexType>
+ <xsd:complexType name="diagnosticMessageType">
+ <xsd:annotation>
+ <xsd:documentation>A diagnostic message from the service with message type and time presented as attributes
+ including code, level ( with enumerated types e.g. error, warning, additional
+ information, etc). and a time stamp</xsd:documentation>
+ </xsd:annotation>
+ <xsd:simpleContent>
+ <xsd:extension base="xsd:string">
+ <xsd:attribute name="code" type="xsd:string" use="optional"/>
+ <xsd:attribute name="level" use="required">
+ <xsd:simpleType>
+ <xsd:restriction base="xsd:string">
+ <xsd:enumeration value="debug"/>
+ <xsd:enumeration value="info"/>
+ <xsd:enumeration value="warn"/>
+ <xsd:enumeration value="error"/>
+ <xsd:enumeration value="fatal"/>
+ </xsd:restriction>
+ </xsd:simpleType>
+ </xsd:attribute>
+ <xsd:attribute name="time" type="xsd:dateTime" use="optional"/>
+ </xsd:extension>
+ </xsd:simpleContent>
+ </xsd:complexType>
+ <xsd:complexType name="diagnosticsListType">
+ <xsd:annotation>
+ <xsd:documentation>Provides the means to present a list of diagnostic messages from the service.</xsd:documentation>
+ </xsd:annotation>
+ <xsd:sequence minOccurs="0">
+ <xsd:element name="diagnostic" type="diagnosticMessageType" minOccurs="0" maxOccurs="unbounded"/>
+ </xsd:sequence>
+ </xsd:complexType>
+ <xsd:element name="custom">
+ <xsd:annotation>
+ <xsd:documentation>Extension slot for additional information not defined in the schema.</xsd:documentation>
+ </xsd:annotation>
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:any minOccurs="0" maxOccurs="unbounded">
+ <xsd:annotation>
+ <xsd:documentation>For any custom extension. E.g what security related
+ capabilities does the provider have? Encryption, access restriction,
+ etc.</xsd:documentation>
+ </xsd:annotation>
+ </xsd:any>
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <!-- ============================================= -->
+ <!--EXTERNAL QUERY TEMPLATE DEFINITIONS-->
+ <!-- ============================================= -->
+ <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
+ 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,
+ that uses 'outputModel' as the root element. </xsd:documentation>
+ </xsd:annotation>
+ <xsd:sequence>
+ <xsd:element name="structure">
+ <xsd:annotation>
+ <xsd:documentation>The response structure definition. By default this should be
+ a subset of the XML Schema language but others such as RELAX NG could be
+ supported in the future.</xsd:documentation>
+ </xsd:annotation>
+ <xsd:complexType>
+ <xsd:choice>
+ <xsd:element name="schema" type="externalResourceType"/>
+ <xsd:any namespace="##other">
+ <xsd:annotation>
+ <xsd:documentation>A structure represented through a subset of the
+ XML Schema language defining how elements should be
+ returned.</xsd:documentation>
+ </xsd:annotation>
+ </xsd:any>
+ </xsd:choice>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="indexingElement" maxOccurs="unbounded">
+ <xsd:annotation>
+ <xsd:documentation>A simple XPath pointing to a response structure node that
+ should be used as a reference for counting.</xsd:documentation>
+ </xsd:annotation>
+ <xsd:complexType>
+ <xsd:attribute name="path" type="simpleXPathType" use="required"/>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="mapping">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="node" minOccurs="0" maxOccurs="unbounded">
+ <xsd:annotation>
+ <xsd:documentation>Maps a node from the structure definition to a
+ list of qualified concepts, literals or environment variables,
+ which should be concatenated in the output. If the automapping attribute
+ is set to 'true' then the server application should match concepts with the same namespace and path.
+ For instance if the wrapper and the search request are both using a canonical ABCD model or Darwin Core Model,
+ then concepts will be automatically recognised.</xsd:documentation>
+ </xsd:annotation>
+ <xsd:complexType>
+ <xsd:choice maxOccurs="unbounded">
+ <xsd:annotation>
+ <xsd:documentation>Multiple mappings represent concatenation.</xsd:documentation>
+ </xsd:annotation>
+ <xsd:element ref="concept"/>
+ <xsd:element ref="literal"/>
+ <xsd:element ref="variable"/>
+ </xsd:choice>
+ <xsd:attribute name="path" type="simpleXPathType" use="required"/>
+ </xsd:complexType>
+ </xsd:element>
+ </xsd:sequence>
+ <xsd:attribute name="automapping" type="xsd:boolean" use="optional" default="false"/>
+ </xsd:complexType>
+ </xsd:element>
+ </xsd:sequence>
+ </xsd:complexType>
+ <xsd:element name="queryTemplate" abstract="true"/>
+ <xsd:complexType name="extResourceDocumentationType">
+ <xsd:sequence>
+ <xsd:element name="label" type="xsd:string" minOccurs="0"/>
+ <xsd:element name="documentation" type="xsd:string" minOccurs="0"/>
+ </xsd:sequence>
+ </xsd:complexType>
+ <xsd:element name="searchTemplate" substitutionGroup="queryTemplate" type="searchTemplateType"/>
+ <xsd:complexType name="searchTemplateType">
+ <xsd:annotation>
+ <xsd:documentation>TAPIR can use a template for configuring search requests.
+ The Template is accessed, as an external document, by its URI</xsd:documentation>
+ </xsd:annotation>
+ <xsd:complexContent>
+ <xsd:extension base="extResourceDocumentationType">
+ <xsd:sequence>
+ <xsd:element name="outputModel" type="externalResourceType"/>
+ <xsd:element name="partial" minOccurs="0">
+ <xsd:annotation>
+ <xsd:documentation>Select only a subset of the
+ entire response structure to be used in the
+ response. Useful for working with large cached
+ external structures referenced via URLs. Select
+ branch nodes if you want all concepts below
+ included. A partial search must take care that
+ response documents still validate. Thus
+ mandatory elements or attributes of the response
+ structure, which are not listed in the partial
+ search ,must be included in the response
+ content.</xsd:documentation>
+ </xsd:annotation>
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="node" type="nodeReferenceType" maxOccurs="unbounded">
+ <xsd:annotation>
+ <xsd:documentation>A node taken from the response structure definition.</xsd:documentation>
+ </xsd:annotation>
+ </xsd:element>
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <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
+ results.</xsd:documentation>
+ </xsd:annotation>
+ <xsd:complexType>
+ <xsd:sequence>
+ <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
+ ordering will be used instead of the default ascending one.</xsd:documentation>
+ </xsd:annotation>
+ <xsd:complexType>
+ <xsd:complexContent>
+ <xsd:extension base="conceptType">
+ <xsd:attribute name="descend" type="xsd:boolean" use="optional" default="false"/>
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+ </xsd:element>
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ </xsd:sequence>
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+ <xsd:element name="inventoryTemplate" substitutionGroup="queryTemplate"
+ type="inventoryTemplateType"/>
+ <xsd:complexType name="inventoryTemplateType">
+ <xsd:annotation>
+ <xsd:documentation>TAPIR can use a template for configuring inventory requests.
+ The Template is accessed, as an external document, by its URI</xsd:documentation>
+ </xsd:annotation>
+ <xsd:complexContent>
+ <xsd:extension base="extResourceDocumentationType">
+ <xsd:sequence>
+ <xsd:element name="concepts">
+ <xsd:annotation>
+ <xsd:documentation>Used to specify a list of concepts to make an inventory on.</xsd:documentation>
+ </xsd:annotation>
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="concept" type="qualifiedConceptReferenceType" minOccurs="0" maxOccurs="unbounded">
+ <xsd:annotation>
+ <xsd:documentation>A single qualified concept</xsd:documentation>
+ </xsd:annotation>
+ </xsd:element>
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element ref="filter" minOccurs="0"/>
+ </xsd:sequence>
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+ <!-- ============================================= -->
+ <!-- FILTER DEFINITIONS-->
+ <!-- ============================================= -->
+ <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
+ searching conditions.</xsd:documentation>
+ </xsd:annotation>
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element ref="booleanOP"/>
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <!-- ===== EXPRESSIONS ===== -->
+ <xsd:element name="expression" abstract="true">
+ <xsd:annotation>
+ <xsd:documentation>An abstract element representing any expression (literal, parameter
+ or concept).</xsd:documentation>
+ </xsd:annotation>
+ </xsd:element>
+ <!-- ===== SIMPLE EXPRESSIONS ===== -->
+ <xsd:element name="simpleExpression" abstract="true" substitutionGroup="expression"/>
+ <xsd:element name="literal" substitutionGroup="simpleExpression">
+ <xsd:annotation>
+ <xsd:documentation>An element to represent literals / values. Substitutes an abstract
+ expression element.</xsd:documentation>
+ </xsd:annotation>
+ <xsd:complexType>
+ <xsd:attribute name="value" type="xsd:string" use="required"/>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="parameter" substitutionGroup="simpleExpression">
+ <xsd:annotation>
+ <xsd:documentation>An element to represent external parameters e.g. via CGI. Substitutes
+ an abstract expression element.</xsd:documentation>
+ </xsd:annotation>
+ <xsd:complexType>
+ <xsd:attribute name="name" type="xsd:string" use="required"/>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="concept" type="conceptType" substitutionGroup="simpleExpression">
+ <xsd:annotation>
+ <xsd:documentation>An element to represent a concept of one specific conceptual schema.
+ Substitutes an abstract expression element.</xsd:documentation>
+ </xsd:annotation>
+ </xsd:element>
+ <xsd:complexType name="conceptType">
+ <xsd:complexContent>
+ <xsd:extension base="qualifiedConceptReferenceType"/>
+ </xsd:complexContent>
+ </xsd:complexType>
+ <!-- ===== COMPLEX EXPRESSIONS ===== -->
+ <xsd:element name="complexExpression" abstract="true" substitutionGroup="expression"/>
+ <!-- === ARITHMETIC EXPRESSION OPERATORS ===-->
+ <xsd:element name="AOP" abstract="true" substitutionGroup="complexExpression">
+ <xsd:annotation>
+ <xsd:documentation>An abstract element representing any Arithmetic operator.</xsd:documentation>
+ </xsd:annotation>
+ </xsd:element>
+ <xsd:complexType name="binaryAOPType">
+ <xsd:annotation>
+ <xsd:documentation>A binary arithmetic operator with the first expression argument being
+ the left argument of the operation.</xsd:documentation>
+ </xsd:annotation>
+ <xsd:sequence>
+ <xsd:element ref="expression"/>
+ <xsd:element ref="expression"/>
+ </xsd:sequence>
+ </xsd:complexType>
+ <xsd:element name="add" type="binaryAOPType" substitutionGroup="AOP">
+ <xsd:annotation>
+ <xsd:documentation>The arithmetic addition (+) operator.</xsd:documentation>
+ </xsd:annotation>
+ </xsd:element>
+ <xsd:element name="sub" type="binaryAOPType" substitutionGroup="AOP">
+ <xsd:annotation>
+ <xsd:documentation>The arithmetic subtraction (-) operator.</xsd:documentation>
+ </xsd:annotation>
+ </xsd:element>
+ <xsd:element name="mul" type="binaryAOPType" substitutionGroup="AOP">
+ <xsd:annotation>
+ <xsd:documentation>The arithmetic multiplication (*) operator.</xsd:documentation>
+ </xsd:annotation>
+ </xsd:element>
+ <xsd:element name="div" type="binaryAOPType" substitutionGroup="AOP">
+ <xsd:annotation>
+ <xsd:documentation>The arithmetic division (/) operator.</xsd:documentation>
+ </xsd:annotation>
+ </xsd:element>
+ <!-- ===== ABSTRACT OPERATOR BASE TYPE ===== -->
+ <xsd:element name="booleanOP" abstract="true">
+ <xsd:annotation>
+ <xsd:documentation>An abstract element representing any logical operator.</xsd:documentation>
+ </xsd:annotation>
+ </xsd:element>
+ <!-- ===== COMPARATIVE OPERATORS ===== -->
+ <xsd:element name="COP" abstract="true" substitutionGroup="booleanOP">
+ <xsd:annotation>
+ <xsd:documentation>An abstract element representing any comparison operator.</xsd:documentation>
+ </xsd:annotation>
+ </xsd:element>
+ <!-- === unary === -->
+ <xsd:element name="unaryCOP" abstract="true" substitutionGroup="COP">
+ <xsd:annotation>
+ <xsd:documentation>An abstract element representing any unary comparison operator.</xsd:documentation>
+ </xsd:annotation>
+ </xsd:element>
+ <xsd:complexType name="unaryCOPType">
+ <xsd:annotation>
+ <xsd:documentation>A complex type for unary comparison operators.</xsd:documentation>
+ </xsd:annotation>
+ <xsd:sequence>
+ <xsd:element ref="concept"/>
+ </xsd:sequence>
+ </xsd:complexType>
+ <xsd:element name="isNull" type="unaryCOPType" substitutionGroup="unaryCOP">
+ <xsd:annotation>
+ <xsd:documentation>Compares if a concept is null. Use equals element to compare for empty strings.</xsd:documentation>
+ </xsd:annotation>
+ </xsd:element>
+ <!-- === binary === -->
+ <xsd:element name="binaryCOP" abstract="true" substitutionGroup="COP">
+ <xsd:annotation>
+ <xsd:documentation>An abstract element representing any binary comparison operator.</xsd:documentation>
+ </xsd:annotation>
+ </xsd:element>
+ <xsd:complexType name="binaryCOPType">
+ <xsd:annotation>
+ <xsd:documentation>A complex type for binary comparison operators.</xsd:documentation>
+ </xsd:annotation>
+ <xsd:sequence>
+ <xsd:element ref="concept"/>
+ <xsd:element ref="expression"/>
+ </xsd:sequence>
+ </xsd:complexType>
+ <xsd:element name="equals" type="binaryCOPType" substitutionGroup="binaryCOP">
+ <xsd:annotation>
+ <xsd:documentation>The equals (=) comparison operator.</xsd:documentation>
+ </xsd:annotation>
+ </xsd:element>
+ <xsd:element name="lessThan" type="binaryCOPType" substitutionGroup="binaryCOP">
+ <xsd:annotation>
+ <xsd:documentation>The less than (<) comparison operator.</xsd:documentation>
+ </xsd:annotation>
+ </xsd:element>
+ <xsd:element name="lessThanOrEquals" type="binaryCOPType" substitutionGroup="binaryCOP">
+ <xsd:annotation>
+ <xsd:documentation>The less than or equals (<=) comparison operator.</xsd:documentation>
+ </xsd:annotation>
+ </xsd:element>
+ <xsd:element name="greaterThan" type="binaryCOPType" substitutionGroup="binaryCOP">
+ <xsd:annotation>
+ <xsd:documentation>The greater than (>) comparison operator.</xsd:documentation>
+ </xsd:annotation>
+ </xsd:element>
+ <xsd:element name="greaterThanOrEquals" type="binaryCOPType" substitutionGroup="binaryCOP">
+ <xsd:annotation>
+ <xsd:documentation>The greater than or equals (>=) comparison operator.</xsd:documentation>
+ </xsd:annotation>
+ </xsd:element>
+ <xsd:element name="like" type="binaryCOPType" substitutionGroup="binaryCOP">
+ <xsd:annotation>
+ <xsd:documentation>The like (LIKE) comparison operator.</xsd:documentation>
+ </xsd:annotation>
+ </xsd:element>
+ <!-- === multiple === -->
+ <xsd:element name="multiCOP" abstract="true" substitutionGroup="COP">
+ <xsd:annotation>
+ <xsd:documentation>An abstract element representing any multiple comparison operator.</xsd:documentation>
+ </xsd:annotation>
+ </xsd:element>
+ <xsd:complexType name="multiCOPType">
+ <xsd:annotation>
+ <xsd:documentation>A complex type for multiple comparison operators.</xsd:documentation>
+ </xsd:annotation>
+ <xsd:sequence>
+ <xsd:element ref="concept"/>
+ <xsd:element name="values">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element ref="simpleExpression" maxOccurs="unbounded"/>
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ </xsd:sequence>
+ </xsd:complexType>
+ <xsd:element name="in" type="multiCOPType" substitutionGroup="multiCOP">
+ <xsd:annotation>
+ <xsd:documentation>The in (IN) comparison operator.</xsd:documentation>
+ </xsd:annotation>
+ </xsd:element>
+ <!-- ===== LOGICAL OPERATORS ===== -->
+ <xsd:element name="LOP" abstract="true" substitutionGroup="booleanOP">
+ <xsd:annotation>
+ <xsd:documentation>An abstract element representing any logical
+ operator.</xsd:documentation>
+ </xsd:annotation>
+ </xsd:element>
+ <!-- === unary === -->
+ <xsd:element name="unaryLOP" abstract="true" substitutionGroup="LOP">
+ <xsd:annotation>
+ <xsd:documentation>An abstract element representing any unary logical
+ operator.</xsd:documentation>
+ </xsd:annotation>
+ </xsd:element>
+ <xsd:complexType name="unaryLOPType">
+ <xsd:annotation>
+ <xsd:documentation>A complex type for unary logical operators.</xsd:documentation>
+ </xsd:annotation>
+ <xsd:sequence>
+ <xsd:element ref="booleanOP"/>
+ </xsd:sequence>
+ </xsd:complexType>
+ <xsd:element name="not" substitutionGroup="unaryLOP">
+ <xsd:annotation>
+ <xsd:documentation>The not logical operator.</xsd:documentation>
+ </xsd:annotation>
+ <xsd:complexType>
+ <xsd:complexContent>
+ <xsd:extension base="unaryLOPType"/>
+ </xsd:complexContent>
+ </xsd:complexType>
+ </xsd:element>
+ <!-- === multiple === -->
+ <xsd:element name="multiLOP" abstract="true" substitutionGroup="LOP">
+ <xsd:annotation>
+ <xsd:documentation>An abstract element representing any multiple logical
+ operator.</xsd:documentation>
+ </xsd:annotation>
+ </xsd:element>
+ <xsd:complexType name="multiLOPType">
+ <xsd:annotation>
+ <xsd:documentation>A complex type for multiple logical operators.</xsd:documentation>
+ </xsd:annotation>
+ <xsd:sequence minOccurs="2" maxOccurs="unbounded">
+ <xsd:element ref="booleanOP"/>
+ </xsd:sequence>
+ </xsd:complexType>
+ <xsd:element name="and" type="multiLOPType" substitutionGroup="multiLOP">
+ <xsd:annotation>
+ <xsd:documentation>The and logical operator.</xsd:documentation>
+ </xsd:annotation>
+ </xsd:element>
+ <xsd:element name="or" type="multiLOPType" substitutionGroup="multiLOP">
+ <xsd:annotation>
+ <xsd:documentation>The or logical operator.</xsd:documentation>
+ </xsd:annotation>
+ </xsd:element>
+ <!-- ===== ENVIRONMENT VARIABLE EXPRESSIONS ===== -->
+ <xsd:element name="variable" abstract="true" substitutionGroup="expression">
+ <xsd:annotation>
+ <xsd:documentation>An abstract element to represent datasource specific values taken
+ from the datasource environment by the wrapper.</xsd:documentation>
+ </xsd:annotation>
+ </xsd:element>
+ <xsd:element name="date" substitutionGroup="variable">
+ <xsd:annotation>
+ <xsd:documentation>An element to represent ISO date like 2005-07-21. Substitutes an
+ abstract environment variable element.</xsd:documentation>
+ </xsd:annotation>
+ <xsd:complexType/>
+ </xsd:element>
+ <xsd:element name="timestamp" substitutionGroup="variable">
+ <xsd:annotation>
+ <xsd:documentation>An element to represent an ISO timestamp like 2005-07-20 17:01:38.
+ Substitutes an abstract environment variable element.</xsd:documentation>
+ </xsd:annotation>
+ <xsd:complexType/>
+ </xsd:element>
+ <xsd:element name="datasourceName" substitutionGroup="variable">
+ <xsd:annotation>
+ <xsd:documentation>An element to represent the name of the datasource. Substitutes an
+ abstract environment variable element.</xsd:documentation>
+ </xsd:annotation>
+ <xsd:complexType/>
+ </xsd:element>
+ <xsd:element name="accessPoint" substitutionGroup="variable">
+ <xsd:annotation>
+ <xsd:documentation>An element to represent the access point of the datasource.
+ Substitutes an abstract environment variable element.</xsd:documentation>
+ </xsd:annotation>
+ <xsd:complexType/>
+ </xsd:element>
+ <xsd:element name="lastUpdate" substitutionGroup="variable">
+ <xsd:annotation>
+ <xsd:documentation>An element to represent the timestamp of the last update of the
+ datasource. Substitutes an abstract variable expression
+ element.</xsd:documentation>
+ </xsd:annotation>
+ <xsd:complexType/>
+ </xsd:element>
+ <!-- ============================================= -->
+ <!--REQUEST TYPE DEFINITIONS-->
+ <!-- ============================================= -->
+ <xsd:element name="request" type="requestType">
+ <xsd:annotation>
+ <xsd:documentation>Global element representing a request. This is a root element
+ and must contain reference to the schema and namespaces used.</xsd:documentation>
+ </xsd:annotation>
+ </xsd:element>
+ <xsd:complexType name="requestType">
+ <xsd:annotation>
+ <xsd:documentation>Request message format. Must always contain header and operation
+ specific parameters.</xsd:documentation>
+ </xsd:annotation>
+ <xsd:sequence>
+ <xsd:element name="header" type="headerType"/>
+ <xsd:choice>
+ <xsd:element name="ping">
+ <xsd:complexType>
+ <xsd:attributeGroup ref="operationRequestGroup"/>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="capabilities">
+ <xsd:complexType>
+ <xsd:attributeGroup ref="operationRequestGroup"/>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="metadata">
+ <xsd:complexType>
+ <xsd:attributeGroup ref="operationRequestGroup"/>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="inventory">
+ <xsd:complexType>
+ <xsd:complexContent>
+ <xsd:extension base="inventoryTemplateType">
+ <xsd:attributeGroup ref="operationRequestGroup"/>
+ <xsd:attributeGroup ref="pagingParametersGroup"/>
+ </xsd:extension>
+ </xsd:complexContent>
+ </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:annotation>
+ <xsd:complexType>
+ <xsd:complexContent>
+ <xsd:extension base="searchTemplateType">
+ <xsd:attributeGroup ref="operationRequestGroup"/>
+ <xsd:attributeGroup ref="pagingParametersGroup"/>
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+ </xsd:element>
+ </xsd:choice>
+ <xsd:element name="diagnostics" type="diagnosticsListType" minOccurs="0"/>
+ </xsd:sequence>
+ </xsd:complexType>
+ <xsd:attributeGroup name="operationRequestGroup">
+ <xsd:attribute name="envelope" type="xsd:boolean" use="optional" default="true"/>
+ <xsd:attribute name="xslt" type="xsd:anyURI" use="optional"/>
+ <xsd:attribute name="xslt-apply" type="xsd:boolean" use="optional" default="false"/>
+ </xsd:attributeGroup>
+ <xsd:attributeGroup name="pagingParametersGroup">
+ <xsd:attribute name="count" type="xsd:boolean" use="optional" default="false"/>
+ <xsd:attribute name="start" type="xsd:nonNegativeInteger" use="optional" default="0"/>
+ <xsd:attribute name="limit" type="xsd:nonNegativeInteger" use="optional" default="1"/>
+ </xsd:attributeGroup>
+ <!-- ============================================= -->
+ <!--RESPONSE TYPE DEFINITIONS-->
+ <!-- ============================================= -->
+ <xsd:element name="response" type="responseType">
+ <xsd:annotation>
+ <xsd:documentation>Global element representing a response.This is a root element
+ and must contain reference to the schema and namespaces used</xsd:documentation>
+ </xsd:annotation>
+ </xsd:element>
+ <xsd:complexType name="responseType">
+ <xsd:annotation>
+ <xsd:documentation>Response message format. Must always contain header, results from the
+ requested operation and possible diagnostic messages.</xsd:documentation>
+ </xsd:annotation>
+ <xsd:sequence>
+ <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:choice>
+ <xsd:element name="diagnostics" type="diagnosticsListType" minOccurs="0">
+ <xsd:annotation>
+ <xsd:documentation>The diagnostics element is an optional part of TAPIR requests and response messages.
+ Diagnostics may contain many pieces of information used for debugging and providing warnings or error messages.
+ Individual diagnostics are held in a diagnosticList with an enumerated attribute for level and attributes for code and time.
+ </xsd:documentation>
+ </xsd:annotation>
+ </xsd:element>
+ </xsd:sequence>
+ </xsd:complexType>
+ <xsd:complexType name="resultSummaryType">
+ <xsd:annotation>
+ <xsd:documentation>Summary about inventory and search results. The first index of a
+ record is 0. The number of records actually being returned is given in totalReturned.
+ If counting was requested the totalMatched gives the "estimated" number of total
+ matching records - not necessarily the number of valid records that can possibly be
+ returned by paging through the entire record set.</xsd:documentation>
+ </xsd:annotation>
+ <xsd:attribute name="start" type="xsd:integer" use="required"/>
+ <xsd:attribute name="next" type="xsd:integer" use="optional"/>
+ <xsd:attribute name="totalReturned" type="xsd:integer" use="required"/>
+ <xsd:attribute name="totalMatched" type="xsd:integer" use="optional"/>
+ </xsd:complexType>
+ <!-- ===== PING ===== -->
+ <xsd:element name="pong" type="pingResultType"/>
+ <xsd:complexType name="pingResultType">
+ <xsd:annotation>
+ <xsd:documentation>Format of ping operation result.</xsd:documentation>
+ </xsd:annotation>
+ </xsd:complexType>
+ <!-- ===== CAPABILITIES ===== -->
+ <xsd:element name="capabilities" type="capabilitiesResultType"/>
+ <xsd:complexType name="capabilitiesResultType">
+ <xsd:annotation>
+ <xsd:documentation>Format of capabilities operation result.</xsd:documentation>
+ </xsd:annotation>
+ <xsd:sequence>
+ <xsd:element name="operations">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="ping">
+ <xsd:complexType/>
+ </xsd:element>
+ <xsd:element name="metadata">
+ <xsd:complexType/>
+ </xsd:element>
+ <xsd:element name="capabilities">
+ <xsd:complexType/>
+ </xsd:element>
+ <xsd:element name="view" 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: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="predefinedOutputModels">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="outputModel" type="externalResourceType" minOccurs="0" maxOccurs="unbounded"/>
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="customOutputModels">
+ <xsd:complexType>
+ <xsd:sequence minOccurs="0">
+ <xsd:element name="structure" type="responseStructureCapabilitiesType" minOccurs="0">
+ <xsd:annotation>
+ <xsd:documentation>The supported subset of
+ the XML Schema
+ language.</xsd:documentation>
+ </xsd:annotation>
+ </xsd:element>
+ </xsd:sequence>
+ <xsd:attribute name="accepted" type="xsd:boolean" use="required"/>
+ </xsd:complexType>
+ </xsd:element>
+ </xsd:sequence>
+ </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:element name="concepts">
+ <xsd:annotation>
+ <xsd:documentation>The list of known conceptual schemas and their mapped
+ concepts.</xsd:documentation>
+ </xsd:annotation>
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="conceptNameServers">
+ <xsd:annotation>
+ <xsd:documentation>The location of the alias file or
+ ConceptNameServer to define simple aliases for fully qualified
+ concept ids.</xsd:documentation>
+ </xsd:annotation>
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="server" type="externalResourceType" minOccurs="0" maxOccurs="unbounded">
+ <xsd:annotation>
+ <xsd:documentation>Multiple servers allowed. Ordered list with the first server(s) having priority over the following ones.</xsd:documentation>
+ </xsd:annotation>
+ </xsd:element>
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="schema" maxOccurs="unbounded">
+ <xsd:annotation>
+ <xsd:documentation>Namespace and location of a supported
+ schema.</xsd:documentation>
+ </xsd:annotation>
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="mappedConcept" maxOccurs="unbounded">
+ <xsd:annotation>
+ <xsd:documentation>Each known and mapped concept of a
+ schema listed with a boolean flag indicating if its
+ searchable (default = true). The mandatory flag can
+ be used to indicate that some concepts need to be
+ present in response structures
+ (default=false).</xsd:documentation>
+ </xsd:annotation>
+ <xsd:complexType>
+ <xsd:complexContent>
+ <xsd:extension base="qualifiedConceptReferenceType">
+ <xsd:attribute name="searchable" type="xsd:boolean" use="optional" default="true"/>
+ <xsd:attribute name="mandatory" type="xsd:boolean" use="optional" default="false"/>
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+ </xsd:element>
+ </xsd:sequence>
+ <xsd:attribute name="namespace" type="xsd:anyURI" use="required"/>
+ <xsd:attribute name="location" type="xsd:anyURI" use="required"/>
+ </xsd:complexType>
+ </xsd:element>
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="variables">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="environment" minOccurs="0">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element ref="variable" minOccurs="0" maxOccurs="unbounded"/>
+ <xsd:element ref="custom" minOccurs="0">
+ <xsd:annotation>
+ <xsd:documentation>Extension slot for other variables.</xsd:documentation>
+ </xsd:annotation>
+ </xsd:element>
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="settings">
+ <xsd:annotation>
+ <xsd:documentation>Information about the local configuration of a
+ datasource.</xsd:documentation>
+ </xsd:annotation>
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="minQueryTermLength" type="xsd:integer" minOccurs="0">
+ <xsd:annotation>
+ <xsd:documentation>Indicates the minimum length for wild-card
+ strings used in like comparisons.</xsd:documentation>
+ </xsd:annotation>
+ </xsd:element>
+ <xsd:element name="maxElementRepetitions" type="xsd:integer" minOccurs="0">
+ <xsd:annotation>
+ <xsd:documentation>Indicates the maximum number of repetitions
+ allowed in responses for each repeatable element defined in
+ response structures.</xsd:documentation>
+ </xsd:annotation>
+ </xsd:element>
+ <xsd:element name="maxElementLevels" type="xsd:integer" minOccurs="0">
+ <xsd:annotation>
+ <xsd:documentation>Indicates the maximum number of allowed levels
+ (depth) for response elements.</xsd:documentation>
+ </xsd:annotation>
+ </xsd:element>
+ <xsd:element name="maxResponseTags" type="xsd:integer" minOccurs="0">
+ <xsd:annotation>
+ <xsd:documentation>Indicates the maximum number of tags that can be
+ returned by responses.</xsd:documentation>
+ </xsd:annotation>
+ </xsd:element>
+ <xsd:element name="maxResponseSize" type="xsd:integer" minOccurs="0">
+ <xsd:annotation>
+ <xsd:documentation>Indicates the maximum size in kilobytes allowed
+ to be returned by responses.</xsd:documentation>
+ </xsd:annotation>
+ </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:complexType name="responseStructureCapabilitiesType">
+ <xsd:annotation>
+ <xsd:documentation>A complete indication about what subset of the response structure
+ specification is supported by a service.</xsd:documentation>
+ </xsd:annotation>
+ <xsd:sequence>
+ <xsd:element name="basicSchemaLanguage">
+ <xsd:annotation>
+ <xsd:documentation>This includes the following xml schema tags: schema incl
+ target namespace, element incl min/maxOccurs, attribute incl minOccurs,
+ sequence, all If defined locally it should also include complexType +
+ simpleType definitions incl complexContent +
+ simpleContent</xsd:documentation>
+ </xsd:annotation>
+ <xsd:complexType/>
+ </xsd:element>
+ <xsd:element name="choice" minOccurs="0">
+ <xsd:complexType/>
+ </xsd:element>
+ <xsd:element name="group" minOccurs="0">
+ <xsd:annotation>
+ <xsd:documentation>local group definitions without global referencing</xsd:documentation>
+ </xsd:annotation>
+ <xsd:complexType/>
+ </xsd:element>
+ <xsd:element name="import" minOccurs="0">
+ <xsd:complexType/>
+ </xsd:element>
+ <xsd:element name="references" minOccurs="0">
+ <xsd:annotation>
+ <xsd:documentation>The global use of the tags grouped here when locally
+ referenced via the "ref" attribute.</xsd:documentation>
+ </xsd:annotation>
+ <xsd:complexType>
+ <xsd:sequence minOccurs="0">
+ <xsd:element name="element" minOccurs="0">
+ <xsd:complexType/>
+ </xsd:element>
+ <xsd:element name="attribute" minOccurs="0">
+ <xsd:complexType/>
+ </xsd:element>
+ <xsd:element name="group" minOccurs="0">
+ <xsd:complexType/>
+ </xsd:element>
+ <xsd:element name="attributeGroup" minOccurs="0">
+ <xsd:complexType/>
+ </xsd:element>
+ <xsd:element name="complexType" minOccurs="0">
+ <xsd:complexType/>
+ </xsd:element>
+ <xsd:element name="simpleType" minOccurs="0">
+ <xsd:complexType>
+ <xsd:sequence minOccurs="0">
+ <xsd:element name="list" minOccurs="0">
+ <xsd:complexType/>
+ </xsd:element>
+ <xsd:element name="union" minOccurs="0">
+ <xsd:complexType/>
+ </xsd:element>
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="simpleTypes" minOccurs="0">
+ <xsd:complexType>
+ <xsd:sequence minOccurs="0">
+ <xsd:element name="stringTypes" minOccurs="0">
+ <xsd:complexType>
+ <xsd:sequence minOccurs="0">
+ <xsd:element name="string" minOccurs="0">
+ <xsd:complexType/>
+ </xsd:element>
+ <xsd:element name="normalizedString" minOccurs="0">
+ <xsd:complexType/>
+ </xsd:element>
+ <xsd:element name="token" minOccurs="0">
+ <xsd:complexType/>
+ </xsd:element>
+ <xsd:element name="language" minOccurs="0">
+ <xsd:complexType/>
+ </xsd:element>
+ <xsd:element name="Name" minOccurs="0">
+ <xsd:complexType/>
+ </xsd:element>
+ <xsd:element name="NCName" minOccurs="0">
+ <xsd:complexType/>
+ </xsd:element>
+ <xsd:element name="NMToken" minOccurs="0">
+ <xsd:complexType/>
+ </xsd:element>
+ <xsd:element name="NMTokens" minOccurs="0">
+ <xsd:complexType/>
+ </xsd:element>
+ <xsd:element name="ID" minOccurs="0">
+ <xsd:complexType/>
+ </xsd:element>
+ <xsd:element name="IDREF" minOccurs="0">
+ <xsd:complexType/>
+ </xsd:element>
+ <xsd:element name="IDREFS" minOccurs="0">
+ <xsd:complexType/>
+ </xsd:element>
+ <xsd:element name="ENTITY" minOccurs="0">
+ <xsd:complexType/>
+ </xsd:element>
+ <xsd:element name="ENTITIES" minOccurs="0">
+ <xsd:complexType/>
+ </xsd:element>
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="numericTypes" minOccurs="0">
+ <xsd:complexType>
+ <xsd:sequence minOccurs="0">
+ <xsd:element name="float" minOccurs="0">
+ <xsd:complexType/>
+ </xsd:element>
+ <xsd:element name="double" minOccurs="0">
+ <xsd:complexType/>
+ </xsd:element>
+ <xsd:element name="decimal" minOccurs="0">
+ <xsd:complexType/>
+ </xsd:element>
+ <xsd:element name="integerTypes" minOccurs="0">
+ <xsd:complexType>
+ <xsd:sequence minOccurs="0">
+ <xsd:element name="integer" minOccurs="0">
+ <xsd:complexType/>
+ </xsd:element>
+ <xsd:element name="long" minOccurs="0">
+ <xsd:complexType/>
+ </xsd:element>
+ <xsd:element name="int" minOccurs="0"/>
+ <xsd:element name="short" minOccurs="0">
+ <xsd:complexType/>
+ </xsd:element>
+ <xsd:element name="byte" minOccurs="0">
+ <xsd:complexType/>
+ </xsd:element>
+ <xsd:element name="positiveInteger" minOccurs="0">
+ <xsd:complexType/>
+ </xsd:element>
+ <xsd:element name="nonPositiveInteger" minOccurs="0">
+ <xsd:complexType/>
+ </xsd:element>
+ <xsd:element name="negativeInteger" minOccurs="0">
+ <xsd:complexType/>
+ </xsd:element>
+ <xsd:element name="nonNegativeInteger" minOccurs="0">
+ <xsd:complexType/>
+ </xsd:element>
+ <xsd:element name="unsignedLong" minOccurs="0">
+ <xsd:complexType/>
+ </xsd:element>
+ <xsd:element name="unsignedInt" minOccurs="0">
+ <xsd:complexType/>
+ </xsd:element>
+ <xsd:element name="unsignedShort" minOccurs="0">
+ <xsd:complexType/>
+ </xsd:element>
+ <xsd:element name="unsignedByte" minOccurs="0">
+ <xsd:complexType/>
+ </xsd:element>
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="dateTimeTypes" minOccurs="0">
+ <xsd:complexType>
+ <xsd:sequence minOccurs="0">
+ <xsd:element name="duration" minOccurs="0">
+ <xsd:complexType/>
+ </xsd:element>
+ <xsd:element name="dateTime" minOccurs="0">
+ <xsd:complexType/>
+ </xsd:element>
+ <xsd:element name="time" minOccurs="0">
+ <xsd:complexType/>
+ </xsd:element>
+ <xsd:element name="date" minOccurs="0">
+ <xsd:complexType/>
+ </xsd:element>
+ <xsd:element name="gYearMonth" minOccurs="0">
+ <xsd:complexType/>
+ </xsd:element>
+ <xsd:element name="gYear" minOccurs="0">
+ <xsd:complexType/>
+ </xsd:element>
+ <xsd:element name="gMonthDay" minOccurs="0">
+ <xsd:complexType/>
+ </xsd:element>
+ <xsd:element name="gDay" minOccurs="0">
+ <xsd:complexType/>
+ </xsd:element>
+ <xsd:element name="gMonth" minOccurs="0">
+ <xsd:complexType/>
+ </xsd:element>
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="miscTypes" minOccurs="0">
+ <xsd:complexType>
+ <xsd:sequence minOccurs="0">
+ <xsd:element name="boolean" minOccurs="0">
+ <xsd:complexType/>
+ </xsd:element>
+ <xsd:element name="base64Binary" minOccurs="0">
+ <xsd:complexType/>
+ </xsd:element>
+ <xsd:element name="hexBinary" minOccurs="0">
+ <xsd:complexType/>
+ </xsd:element>
+ <xsd:element name="anyURI" minOccurs="0">
+ <xsd:complexType/>
+ </xsd:element>
+ <xsd:element name="QName" minOccurs="0">
+ <xsd:complexType/>
+ </xsd:element>
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="extension" minOccurs="0">
+ <xsd:complexType/>
+ </xsd:element>
+ <xsd:element name="restriction" minOccurs="0">
+ <xsd:complexType>
+ <xsd:sequence minOccurs="0">
+ <xsd:element name="minInclusive" minOccurs="0">
+ <xsd:complexType/>
+ </xsd:element>
+ <xsd:element name="maxInclusive" minOccurs="0">
+ <xsd:complexType/>
+ </xsd:element>
+ <xsd:element name="minExclusive" minOccurs="0">
+ <xsd:complexType/>
+ </xsd:element>
+ <xsd:element name="maxExclusive" minOccurs="0">
+ <xsd:complexType/>
+ </xsd:element>
+ <xsd:element name="fractionDigits" minOccurs="0">
+ <xsd:complexType/>
+ </xsd:element>
+ <xsd:element name="totalDigits" minOccurs="0">
+ <xsd:complexType/>
+ </xsd:element>
+ <xsd:element name="enumeration" minOccurs="0">
+ <xsd:complexType/>
+ </xsd:element>
+ <xsd:element name="whiteSpace" minOccurs="0">
+ <xsd:complexType/>
+ </xsd:element>
+ <xsd:element name="pattern" minOccurs="0">
+ <xsd:complexType/>
+ </xsd:element>
+ <xsd:element name="length" minOccurs="0">
+ <xsd:complexType/>
+ </xsd:element>
+ <xsd:element name="minLength" minOccurs="0">
+ <xsd:complexType/>
+ </xsd:element>
+ <xsd:element name="maxLength" minOccurs="0">
+ <xsd:complexType/>
+ </xsd:element>
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="substitutionGroup" minOccurs="0">
+ <xsd:complexType/>
+ </xsd:element>
+ <xsd:element name="constraints" minOccurs="0">
+ <xsd:complexType>
+ <xsd:sequence minOccurs="0">
+ <xsd:element name="field" minOccurs="0">
+ <xsd:complexType/>
+ </xsd:element>
+ <xsd:element name="selector" minOccurs="0">
+ <xsd:complexType/>
+ </xsd:element>
+ <xsd:element name="unique" minOccurs="0">
+ <xsd:complexType/>
+ </xsd:element>
+ <xsd:element name="key" minOccurs="0">
+ <xsd:complexType/>
+ </xsd:element>
+ <xsd:element name="keyref" minOccurs="0">
+ <xsd:complexType/>
+ </xsd:element>
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ </xsd:sequence>
+ </xsd:complexType>
+ <xsd:complexType name="filterCapabilitiesType">
+ <xsd:annotation>
+ <xsd:documentation>A complete indication about what filter operators are supported by a
+ service.</xsd:documentation>
+ </xsd:annotation>
+ <xsd:sequence>
+ <xsd:element name="encoding" minOccurs="0">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="expression">
+ <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: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 ref="custom" minOccurs="0"/>
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="booleanOperators">
+ <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">
+ <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="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: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:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ </xsd:sequence>
+ </xsd:complexType>
+ <!-- ===== METADATA ===== -->
+ <xsd:element name="metadata" type="metadataResultType">
+ <xsd:annotation>
+ <xsd:documentation>Global element to validate external metadata XML
+ files.</xsd:documentation>
+ </xsd:annotation>
+ </xsd:element>
+ <xsd:complexType name="metadataResultType">
+ <xsd:annotation>
+ <xsd:documentation>Format of metadata operation result.</xsd:documentation>
+ </xsd:annotation>
+ <xsd:sequence>
+ <xsd:element ref="dc:title">
+ <xsd:annotation>
+ <xsd:documentation>The name of this service possibly in different
+ languages.</xsd:documentation>
+ </xsd:annotation>
+ </xsd:element>
+ <xsd:element ref="dc:type">
+ <xsd:annotation>
+ <xsd:documentation>The nature or genre of the content of the resource.
+ http://purl.org/dc/dcmitype/Service</xsd:documentation>
+ </xsd:annotation>
+ </xsd:element>
+ <xsd:element name="accesspoint" type="xsd:anyURI">
+ <xsd:annotation>
+ <xsd:documentation>The URL of the access point of this
+ service.</xsd:documentation>
+ </xsd:annotation>
+ </xsd:element>
+ <xsd:element ref="dc:description">
+ <xsd:annotation>
+ <xsd:documentation>Description may include but is not limited to: an abstract,
+ table of contents, reference to a graphical representation
+ of content or a free-text account of the content.</xsd:documentation>
+ </xsd:annotation>
+ </xsd:element>
+ <xsd:element ref="dc:language">
+ <xsd:annotation>
+ <xsd:documentation></xsd:documentation>
+ </xsd:annotation>
+ </xsd:element>
+ <xsd:element ref="dc:subject">
+ <xsd:annotation>
+ <xsd:documentation>Subject and Keywords.Typically, a Subject will be expressed as keywords,
+ key phrases or classification codes that describe a topic
+ of the resource. Recommended best practice is to select
+ a value from a controlled vocabulary or formal
+ classification scheme</xsd:documentation>
+ </xsd:annotation>
+ </xsd:element>
+ <xsd:element ref="dct:bibliographicCitation">
+ <xsd:annotation>
+ <xsd:documentation>Recommended practice is to include sufficient
+ bibliographic detail to identify the resource as
+ unambiguously as possible, whether or not the
+ citation is in a standard form.</xsd:documentation>
+ </xsd:annotation>
+ </xsd:element>
+ <xsd:element ref="dc:rights">
+ <xsd:annotation>
+ <xsd:documentation>Information about who can access the
+ resource or an indication of its security status.</xsd:documentation>
+ </xsd:annotation>
+ </xsd:element>
+ <xsd:element ref="dct:modified">
+ <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"/>
+ <xsd:attribute name="maxDuration" type="xsd:duration"/>
+ <xsd:attribute name="frequency" type="xsd:duration" />
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="relatedEntity" type="relatedEntityInformationType" maxOccurs="unbounded">
+ <xsd:annotation>
+ <xsd:documentation>Entities (companies, organisations, institutions) related to
+ this service with their respective roles, e.g. publisher, data
+ supplier</xsd:documentation>
+ </xsd:annotation>
+ </xsd:element>
+ <xsd:element ref="custom" minOccurs="0"/>
+ </xsd:sequence>
+ </xsd:complexType>
+ <xsd:complexType name="relatedEntityInformationType">
+ <xsd:annotation>
+ <xsd:documentation>Information about an entity that may have some relationship with the
+ service being provided.</xsd:documentation>
+ </xsd:annotation>
+ <xsd:sequence>
+ <xsd:element name="role" type="entityRoleExtensionType" maxOccurs="unbounded">
+ <xsd:annotation>
+ <xsd:documentation>Used to specify the roles of a related entity, such as "data
+ supplier", "technical host", etc.</xsd:documentation>
+ </xsd:annotation>
+ </xsd:element>
+ <xsd:element name="entity" type="entityInformationType"/>
+ </xsd:sequence>
+ </xsd:complexType>
+ <xsd:simpleType name="entityRoleType">
+ <xsd:restriction base="xsd:string">
+ <xsd:enumeration value="data supplier"/>
+ <xsd:enumeration value="technical host"/>
+ </xsd:restriction>
+ </xsd:simpleType>
+ <xsd:simpleType name="entityRoleExtensionType">
+ <xsd:union memberTypes="entityRoleType xsd:string"/>
+ </xsd:simpleType>
+ <xsd:element name="entity" type="entityInformationType">
+ <xsd:annotation>
+ <xsd:documentation>Global element to validate external XML representations of entities.
+ An entity here could be a company, organisation, institution, or
+ person.</xsd:documentation>
+ </xsd:annotation>
+ </xsd:element>
+ <xsd:simpleType name="contactRoleType">
+ <xsd:restriction base="xsd:string">
+ <xsd:enumeration value="data administrator"/>
+ <xsd:enumeration value="system administrator"/>
+ </xsd:restriction>
+ </xsd:simpleType>
+ <xsd:simpleType name="contactRoleExtensionType">
+ <xsd:union memberTypes="contactRoleType xsd:string"/>
+ </xsd:simpleType>
+ <xsd:complexType name="entityInformationType">
+ <xsd:annotation>
+ <xsd:documentation>Entity information.</xsd:documentation>
+ </xsd:annotation>
+ <xsd:sequence>
+ <xsd:element name="identifier" type="xsd:string" minOccurs="0">
+ <xsd:annotation>
+ <xsd:documentation>A global unique identifier for the entity.</xsd:documentation>
+ </xsd:annotation>
+ </xsd:element>
+ <xsd:element name="name" type="languageAwareElementType" maxOccurs="unbounded">
+ <xsd:annotation>
+ <xsd:documentation>The name of the entity possibly in different
+ languages.</xsd:documentation>
+ </xsd:annotation>
+ </xsd:element>
+ <xsd:element name="acronym" type="xsd:string" minOccurs="0">
+ <xsd:annotation>
+ <xsd:documentation>An acronym for the entity name</xsd:documentation>
+ </xsd:annotation>
+ </xsd:element>
+ <xsd:element name="logoURL" type="xsd:anyURI" minOccurs="0">
+ <xsd:annotation>
+ <xsd:documentation>A URL to a small logo of the entity.</xsd:documentation>
+ </xsd:annotation>
+ </xsd:element>
+ <xsd:element name="description" type="languageAwareElementType" minOccurs="0" maxOccurs="unbounded">
+ <xsd:annotation>
+ <xsd:documentation>The description of the entity possibly in different
+ languages.</xsd:documentation>
+ </xsd:annotation>
+ </xsd:element>
+ <xsd:element name="address" type="xsd:string" minOccurs="0"/>
+ <xsd:element name="relatedInformation" type="xsd:anyURI" minOccurs="0" maxOccurs="unbounded">
+ <xsd:annotation>
+ <xsd:documentation>Other related information about this entity found at the
+ specified URL.</xsd:documentation>
+ </xsd:annotation>
+ </xsd:element>
+ <xsd:element name="hasContact" maxOccurs="unbounded">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="role" type="contactRoleExtensionType" maxOccurs="unbounded" />
+ <xsd:element ref="vcard:VCARD"/>
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element ref="geo:Point" minOccurs="0">
+ <xsd:annotation>
+ <xsd:documentation>Location of the entity in decimal WGS84 latitude and longitude (and optional altitude) as defined by the W3C Basic Geo Vocabulary</xsd:documentation>
+ </xsd:annotation>
+ </xsd:element>
+ <xsd:element ref="custom" minOccurs="0"/>
+ </xsd:sequence>
+ <xsd:attribute ref="lang"/>
+ </xsd:complexType>
+ <!-- ===== INVENTORY===== -->
+ <xsd:complexType name="inventoryResultType">
+ <xsd:annotation>
+ <xsd:documentation>Format of inventory operation result.</xsd:documentation>
+ </xsd:annotation>
+ <xsd:sequence>
+ <xsd:element name="concepts">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element ref="concept" maxOccurs="unbounded"/>
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="record" minOccurs="0" maxOccurs="unbounded">
+ <xsd:annotation>
+ <xsd:documentation>A distinct combination of values for all "inventoried"
+ concepts. The optional attribute "count" is used to count the number of
+ occurrences for this distinct combination and will only be set if the count
+ flag was used when requesting an inventory.</xsd:documentation>
+ </xsd:annotation>
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="value" maxOccurs="unbounded">
+ <xsd:annotation>
+ <xsd:documentation>A single value for a single concept. The sequence
+ of the values should correspond to the sequence used in the
+ request.</xsd:documentation>
+ </xsd:annotation>
+ <xsd:complexType>
+ <xsd:simpleContent>
+ <xsd:extension base="xsd:string"/>
+ </xsd:simpleContent>
+ </xsd:complexType>
+ </xsd:element>
+ </xsd:sequence>
+ <xsd:attribute name="count" type="xsd:positiveInteger" use="optional"/>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="summary" type="resultSummaryType">
+ <xsd:annotation>
+ <xsd:documentation>Used to show information about the number of records for
+ counting and paging purposes.</xsd:documentation>
+ </xsd:annotation>
+ </xsd:element>
+ </xsd:sequence>
+ </xsd:complexType>
+ <!-- ===== SEARCH ===== -->
+ <xsd:complexType name="searchResultType">
+ <xsd:annotation>
+ <xsd:documentation>Format of search operation result.</xsd:documentation>
+ </xsd:annotation>
+ <xsd:sequence>
+ <xsd:any/>
+ <xsd:element name="summary" type="resultSummaryType">
+ <xsd:annotation>
+ <xsd:documentation>Used to show information about the number of records for
+ counting and paging purposes.</xsd:documentation>
+ </xsd:annotation>
+ </xsd:element>
+ </xsd:sequence>
+ </xsd:complexType>
+</xsd:schema>
1
0