Author: markus Date: 2006-07-17 21:37:12 +0200 (Mon, 17 Jul 2006) New Revision: 545
Modified: trunk/protocol/tapir.xsd Log: use static & dynamic output models as terminology in capabilities
Modified: trunk/protocol/tapir.xsd =================================================================== --- trunk/protocol/tapir.xsd 2006-07-17 19:08:44 UTC (rev 544) +++ trunk/protocol/tapir.xsd 2006-07-17 19:37:12 UTC (rev 545) @@ -1,1680 +1,1679 @@ -<?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="qualified" - 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:titleTAPIR XML Schema</dc:title> - dc:creatorMarkus Döring [m.doering@bgbm.org]</dc:creator> - dc:creatorRenato De Giovanni [renato@cria.org.br]</dc:creator> - dc:relationhttp://ww3.bgbm.org/protocolwiki</dc:relation> - dc:contributorCharles Copp [eim@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%22/%3E - <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:documentationA 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:documentationA simpleType to represent qualified concept identifiers. This can - either be the full format NAMESPACE#LOCAL_CONCEPT or an alias which can be any - string e.g. unitID@abcd1.20.</xsd:documentation> - </xsd:annotation> - <xsd:restriction base="xsd:string"/> - </xsd:simpleType> - <!-- ============================================= --> - <!-- GLOBAL ATTRIBUTES--> - <!-- ============================================= --> - <xsd:attribute name="lang" type="xsd:language"> - xsd:annotation - xsd:documentationAttribute 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:documentationA 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:documentationA 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:documentationA 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:documentationA 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:documentationSource 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:documentationThe 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:documentationRepresents 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:documentationA 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:documentationDestination 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:documentationA 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:documentationProvides 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:documentationExtension 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:documentationFor 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:documentationResponse 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:documentationThe 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:documentationA 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:documentationA 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:documentationMaps 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:documentationMultiple 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:documentationSelect 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:documentationA 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:documentationA 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:documentationRepeatable 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:documentationTAPIR 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:documentationTAPIR 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:documentationUsed 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:documentationA 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:documentationTAPIR 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:documentationAn 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:documentationAn 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:documentationAn 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:documentationAn 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:documentationAn 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:documentationAn abstract element representing any Arithmetic operator.</xsd:documentation> - </xsd:annotation> - </xsd:element> - <xsd:complexType name="binaryAOPType"> - xsd:annotation - xsd:documentationA 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:documentationThe arithmetic addition (+) operator.</xsd:documentation> - </xsd:annotation> - </xsd:element> - <xsd:element name="sub" type="binaryAOPType" substitutionGroup="AOP"> - xsd:annotation - xsd:documentationThe arithmetic subtraction (-) operator.</xsd:documentation> - </xsd:annotation> - </xsd:element> - <xsd:element name="mul" type="binaryAOPType" substitutionGroup="AOP"> - xsd:annotation - xsd:documentationThe arithmetic multiplication (*) operator.</xsd:documentation> - </xsd:annotation> - </xsd:element> - <xsd:element name="div" type="binaryAOPType" substitutionGroup="AOP"> - xsd:annotation - xsd:documentationThe arithmetic division (/) operator.</xsd:documentation> - </xsd:annotation> - </xsd:element> - <!-- ===== ABSTRACT OPERATOR BASE TYPE ===== --> - <xsd:element name="booleanOP" abstract="true"> - xsd:annotation - xsd:documentationAn 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:documentationAn abstract element representing any comparison operator.</xsd:documentation> - </xsd:annotation> - </xsd:element> - <!-- === unary === --> - <xsd:element name="unaryCOP" abstract="true" substitutionGroup="COP"> - xsd:annotation - xsd:documentationAn abstract element representing any unary comparison operator.</xsd:documentation> - </xsd:annotation> - </xsd:element> - <xsd:complexType name="unaryCOPType"> - xsd:annotation - xsd:documentationA 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:documentationCompares 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:documentationAn abstract element representing any binary comparison operator.</xsd:documentation> - </xsd:annotation> - </xsd:element> - <xsd:complexType name="binaryCOPType"> - xsd:annotation - xsd:documentationA 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:documentationThe equals (=) comparison operator.</xsd:documentation> - </xsd:annotation> - </xsd:element> - <xsd:element name="lessThan" type="binaryCOPType" substitutionGroup="binaryCOP"> - xsd:annotation - xsd:documentationThe less than (<) comparison operator.</xsd:documentation> - </xsd:annotation> - </xsd:element> - <xsd:element name="lessThanOrEquals" type="binaryCOPType" substitutionGroup="binaryCOP"> - xsd:annotation - xsd:documentationThe less than or equals (<=) comparison operator.</xsd:documentation> - </xsd:annotation> - </xsd:element> - <xsd:element name="greaterThan" type="binaryCOPType" substitutionGroup="binaryCOP"> - xsd:annotation - xsd:documentationThe greater than (>) comparison operator.</xsd:documentation> - </xsd:annotation> - </xsd:element> - <xsd:element name="greaterThanOrEquals" type="binaryCOPType" substitutionGroup="binaryCOP"> - xsd:annotation - xsd:documentationThe greater than or equals (>=) comparison operator.</xsd:documentation> - </xsd:annotation> - </xsd:element> - <xsd:element name="like" type="binaryCOPType" substitutionGroup="binaryCOP"> - xsd:annotation - xsd:documentationThe like (LIKE) comparison operator.</xsd:documentation> - </xsd:annotation> - </xsd:element> - <!-- === multiple === --> - <xsd:element name="multiCOP" abstract="true" substitutionGroup="COP"> - xsd:annotation - xsd:documentationAn abstract element representing any multiple comparison operator.</xsd:documentation> - </xsd:annotation> - </xsd:element> - <xsd:complexType name="multiCOPType"> - xsd:annotation - xsd:documentationA 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:documentationThe in (IN) comparison operator.</xsd:documentation> - </xsd:annotation> - </xsd:element> - <!-- ===== LOGICAL OPERATORS ===== --> - <xsd:element name="LOP" abstract="true" substitutionGroup="booleanOP"> - xsd:annotation - xsd:documentationAn abstract element representing any logical - operator.</xsd:documentation> - </xsd:annotation> - </xsd:element> - <!-- === unary === --> - <xsd:element name="unaryLOP" abstract="true" substitutionGroup="LOP"> - xsd:annotation - xsd:documentationAn abstract element representing any unary logical - operator.</xsd:documentation> - </xsd:annotation> - </xsd:element> - <xsd:complexType name="unaryLOPType"> - xsd:annotation - xsd:documentationA 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:documentationThe 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:documentationAn abstract element representing any multiple logical - operator.</xsd:documentation> - </xsd:annotation> - </xsd:element> - <xsd:complexType name="multiLOPType"> - xsd:annotation - xsd:documentationA 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:documentationThe and logical operator.</xsd:documentation> - </xsd:annotation> - </xsd:element> - <xsd:element name="or" type="multiLOPType" substitutionGroup="multiLOP"> - xsd:annotation - xsd:documentationThe or logical operator.</xsd:documentation> - </xsd:annotation> - </xsd:element> - <!-- ===== ENVIRONMENT VARIABLE EXPRESSIONS ===== --> - <xsd:element name="variable" abstract="true" substitutionGroup="expression"> - xsd:annotation - xsd:documentationAn 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:documentationAn 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:documentationAn 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:documentationAn 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:documentationAn 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:documentationAn 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:documentationGlobal 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:documentationRequest 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:documentationA search with the view definition used for the search as an attribute. If left out defaults to the one specified by the provider and exposed in the capabilities.</xsd:documentation> - </xsd: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:documentationGlobal 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:documentationResponse 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:documentationThe 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:documentationSummary 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:documentationFormat of ping operation result.</xsd:documentation> - </xsd:annotation> - </xsd:complexType> - <!-- ===== CAPABILITIES ===== --> - <xsd:element name="capabilities" type="capabilitiesResultType"/> - <xsd:complexType name="capabilitiesResultType"> - xsd:annotation - xsd:documentationFormat 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:documentationThe 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:documentationInformation about the supported filter operators of this - service.</xsd:documentation> - </xsd:annotation> - </xsd:element> - <xsd:element name="concepts"> - xsd:annotation - xsd:documentationThe list of known conceptual schemas and their mapped - concepts.</xsd:documentation> - </xsd:annotation> - xsd:complexType - xsd:sequence - <xsd:element name="conceptNameServers"> - xsd:annotation - xsd:documentationThe 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:documentationMultiple 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:documentationNamespace and location of a supported - schema.</xsd:documentation> - </xsd:annotation> - xsd:complexType - xsd:sequence - <xsd:element name="mappedConcept" maxOccurs="unbounded"> - xsd:annotation - xsd:documentationEach 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:documentationExtension 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:documentationInformation 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:documentationIndicates 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:documentationIndicates 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:documentationIndicates 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:documentationIndicates 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:documentationIndicates 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:documentationA 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:documentationThis 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:documentationlocal 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:documentationThe 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:documentationA 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:documentationSupport +-*/ 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:documentationThis 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:documentationRecommended 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:documentationRecommended 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:documentationGlobal element to validate external metadata XML - files.</xsd:documentation> - </xsd:annotation> - </xsd:element> - <xsd:complexType name="metadataResultType"> - xsd:annotation - xsd:documentationFormat of metadata operation result.</xsd:documentation> - </xsd:annotation> - xsd:sequence - <xsd:element ref="dc:title"> - xsd:annotation - xsd:documentationThe name of this service possibly in different - languages.</xsd:documentation> - </xsd:annotation> - </xsd:element> - <xsd:element ref="dc:type"> - xsd:annotation - xsd:documentationThe 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:documentationThe URL of the access point of this - service.</xsd:documentation> - </xsd:annotation> - </xsd:element> - <xsd:element ref="dc:description"> - xsd:annotation - xsd:documentationDescription 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:documentationSubject 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:documentationRecommended 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:documentationInformation 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:documentationEntities (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:documentationInformation 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:documentationUsed 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:documentationGlobal 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:documentationEntity information.</xsd:documentation> - </xsd:annotation> - xsd:sequence - <xsd:element name="identifier" type="xsd:string" minOccurs="0"> - xsd:annotation - xsd:documentationA global unique identifier for the entity.</xsd:documentation> - </xsd:annotation> - </xsd:element> - <xsd:element name="name" type="languageAwareElementType" maxOccurs="unbounded"> - xsd:annotation - xsd:documentationThe 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:documentationAn acronym for the entity name</xsd:documentation> - </xsd:annotation> - </xsd:element> - <xsd:element name="logoURL" type="xsd:anyURI" minOccurs="0"> - xsd:annotation - xsd:documentationA 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:documentationThe 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:documentationOther 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:documentationLocation 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:documentationFormat 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:documentationA 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:documentationA 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:documentationUsed 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:documentationFormat of search operation result.</xsd:documentation> - </xsd:annotation> - xsd:sequence - xsd:any/ - <xsd:element name="summary" type="resultSummaryType"> - xsd:annotation - xsd:documentationUsed 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="qualified" + 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:titleTAPIR XML Schema</dc:title> + dc:creatorMarkus Döring [m.doering@bgbm.org]</dc:creator> + dc:creatorRenato De Giovanni [renato@cria.org.br]</dc:creator> + dc:relationhttp://ww3.bgbm.org/protocolwiki</dc:relation> + dc:contributorCharles Copp [eim@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%22/%3E + <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:documentationA 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:documentationA simpleType to represent qualified concept identifiers. This can + either be the full format NAMESPACE#LOCAL_CONCEPT or an alias which can be any + string e.g. unitID@abcd1.20.</xsd:documentation> + </xsd:annotation> + <xsd:restriction base="xsd:string"/> + </xsd:simpleType> + <!-- ============================================= --> + <!-- GLOBAL ATTRIBUTES--> + <!-- ============================================= --> + <xsd:attribute name="lang" type="xsd:language"> + xsd:annotation + xsd:documentationAttribute 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:documentationA 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:documentationA 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:documentationA 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:documentationA 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:documentationSource 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:documentationThe 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:documentationRepresents 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:documentationA 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:documentationDestination 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:documentationA 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:documentationProvides 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:documentationExtension 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:documentationFor 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:documentationResponse 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:documentationThe 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:documentationA 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:documentationA 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:documentationMaps 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:documentationMultiple 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:documentationSelect 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:documentationA 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:documentationA 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:documentationRepeatable 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:documentationTAPIR 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:documentationTAPIR 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:documentationUsed 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:documentationA 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:documentationTAPIR 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:documentationAn 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:documentationAn 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:documentationAn 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:documentationAn 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:documentationAn 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:documentationAn abstract element representing any Arithmetic operator.</xsd:documentation> + </xsd:annotation> + </xsd:element> + <xsd:complexType name="binaryAOPType"> + xsd:annotation + xsd:documentationA 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:documentationThe arithmetic addition (+) operator.</xsd:documentation> + </xsd:annotation> + </xsd:element> + <xsd:element name="sub" type="binaryAOPType" substitutionGroup="AOP"> + xsd:annotation + xsd:documentationThe arithmetic subtraction (-) operator.</xsd:documentation> + </xsd:annotation> + </xsd:element> + <xsd:element name="mul" type="binaryAOPType" substitutionGroup="AOP"> + xsd:annotation + xsd:documentationThe arithmetic multiplication (*) operator.</xsd:documentation> + </xsd:annotation> + </xsd:element> + <xsd:element name="div" type="binaryAOPType" substitutionGroup="AOP"> + xsd:annotation + xsd:documentationThe arithmetic division (/) operator.</xsd:documentation> + </xsd:annotation> + </xsd:element> + <!-- ===== ABSTRACT OPERATOR BASE TYPE ===== --> + <xsd:element name="booleanOP" abstract="true"> + xsd:annotation + xsd:documentationAn 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:documentationAn abstract element representing any comparison operator.</xsd:documentation> + </xsd:annotation> + </xsd:element> + <!-- === unary === --> + <xsd:element name="unaryCOP" abstract="true" substitutionGroup="COP"> + xsd:annotation + xsd:documentationAn abstract element representing any unary comparison operator.</xsd:documentation> + </xsd:annotation> + </xsd:element> + <xsd:complexType name="unaryCOPType"> + xsd:annotation + xsd:documentationA 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:documentationCompares 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:documentationAn abstract element representing any binary comparison operator.</xsd:documentation> + </xsd:annotation> + </xsd:element> + <xsd:complexType name="binaryCOPType"> + xsd:annotation + xsd:documentationA 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:documentationThe equals (=) comparison operator.</xsd:documentation> + </xsd:annotation> + </xsd:element> + <xsd:element name="lessThan" type="binaryCOPType" substitutionGroup="binaryCOP"> + xsd:annotation + xsd:documentationThe less than (<) comparison operator.</xsd:documentation> + </xsd:annotation> + </xsd:element> + <xsd:element name="lessThanOrEquals" type="binaryCOPType" substitutionGroup="binaryCOP"> + xsd:annotation + xsd:documentationThe less than or equals (<=) comparison operator.</xsd:documentation> + </xsd:annotation> + </xsd:element> + <xsd:element name="greaterThan" type="binaryCOPType" substitutionGroup="binaryCOP"> + xsd:annotation + xsd:documentationThe greater than (>) comparison operator.</xsd:documentation> + </xsd:annotation> + </xsd:element> + <xsd:element name="greaterThanOrEquals" type="binaryCOPType" substitutionGroup="binaryCOP"> + xsd:annotation + xsd:documentationThe greater than or equals (>=) comparison operator.</xsd:documentation> + </xsd:annotation> + </xsd:element> + <xsd:element name="like" type="binaryCOPType" substitutionGroup="binaryCOP"> + xsd:annotation + xsd:documentationThe like (LIKE) comparison operator.</xsd:documentation> + </xsd:annotation> + </xsd:element> + <!-- === multiple === --> + <xsd:element name="multiCOP" abstract="true" substitutionGroup="COP"> + xsd:annotation + xsd:documentationAn abstract element representing any multiple comparison operator.</xsd:documentation> + </xsd:annotation> + </xsd:element> + <xsd:complexType name="multiCOPType"> + xsd:annotation + xsd:documentationA 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:documentationThe in (IN) comparison operator.</xsd:documentation> + </xsd:annotation> + </xsd:element> + <!-- ===== LOGICAL OPERATORS ===== --> + <xsd:element name="LOP" abstract="true" substitutionGroup="booleanOP"> + xsd:annotation + xsd:documentationAn abstract element representing any logical + operator.</xsd:documentation> + </xsd:annotation> + </xsd:element> + <!-- === unary === --> + <xsd:element name="unaryLOP" abstract="true" substitutionGroup="LOP"> + xsd:annotation + xsd:documentationAn abstract element representing any unary logical + operator.</xsd:documentation> + </xsd:annotation> + </xsd:element> + <xsd:complexType name="unaryLOPType"> + xsd:annotation + xsd:documentationA 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:documentationThe 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:documentationAn abstract element representing any multiple logical + operator.</xsd:documentation> + </xsd:annotation> + </xsd:element> + <xsd:complexType name="multiLOPType"> + xsd:annotation + xsd:documentationA 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:documentationThe and logical operator.</xsd:documentation> + </xsd:annotation> + </xsd:element> + <xsd:element name="or" type="multiLOPType" substitutionGroup="multiLOP"> + xsd:annotation + xsd:documentationThe or logical operator.</xsd:documentation> + </xsd:annotation> + </xsd:element> + <!-- ===== ENVIRONMENT VARIABLE EXPRESSIONS ===== --> + <xsd:element name="variable" abstract="true" substitutionGroup="expression"> + xsd:annotation + xsd:documentationAn 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:documentationAn 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:documentationAn 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:documentationAn 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:documentationAn 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:documentationAn 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:documentationGlobal 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:documentationRequest 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:documentationA search with the view definition used for the search as an attribute. If left out defaults to the one specified by the provider and exposed in the capabilities.</xsd:documentation> + </xsd: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:documentationGlobal 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:documentationResponse 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:documentationThe 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:documentationSummary 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:documentationFormat of ping operation result.</xsd:documentation> + </xsd:annotation> + </xsd:complexType> + <!-- ===== CAPABILITIES ===== --> + <xsd:element name="capabilities" type="capabilitiesResultType"/> + <xsd:complexType name="capabilitiesResultType"> + xsd:annotation + xsd:documentationFormat 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="staticOutputModels" minOccurs="0"> + xsd:complexType + xsd:sequence + <xsd:element name="outputModel" type="externalResourceType" maxOccurs="unbounded"/> + </xsd:sequence> + </xsd:complexType> + </xsd:element> + <xsd:element name="dynamicOutputModels" minOccurs="0"> + xsd:complexType + xsd:sequence + <xsd:element name="structure" type="responseStructureCapabilitiesType"> + xsd:annotation + xsd:documentationThe supported subset of + the XML Schema + language.</xsd:documentation> + </xsd:annotation> + </xsd:element> + </xsd:sequence> + </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:documentationInformation about the supported filter operators of this + service.</xsd:documentation> + </xsd:annotation> + </xsd:element> + <xsd:element name="concepts"> + xsd:annotation + xsd:documentationThe list of known conceptual schemas and their mapped + concepts.</xsd:documentation> + </xsd:annotation> + xsd:complexType + xsd:sequence + <xsd:element name="conceptNameServers"> + xsd:annotation + xsd:documentationThe 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:documentationMultiple 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:documentationNamespace and location of a supported + schema.</xsd:documentation> + </xsd:annotation> + xsd:complexType + xsd:sequence + <xsd:element name="mappedConcept" maxOccurs="unbounded"> + xsd:annotation + xsd:documentationEach 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:documentationExtension 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:documentationInformation 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:documentationIndicates 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:documentationIndicates 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:documentationIndicates 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:documentationIndicates 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:documentationIndicates 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:documentationA 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:documentationThis 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:documentationlocal 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:documentationThe 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:documentationA 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:documentationSupport +-*/ 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:documentationThis 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:documentationRecommended 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:documentationRecommended 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:documentationGlobal element to validate external metadata XML + files.</xsd:documentation> + </xsd:annotation> + </xsd:element> + <xsd:complexType name="metadataResultType"> + xsd:annotation + xsd:documentationFormat of metadata operation result.</xsd:documentation> + </xsd:annotation> + xsd:sequence + <xsd:element ref="dc:title"> + xsd:annotation + xsd:documentationThe name of this service possibly in different + languages.</xsd:documentation> + </xsd:annotation> + </xsd:element> + <xsd:element ref="dc:type"> + xsd:annotation + xsd:documentationThe 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:documentationThe URL of the access point of this + service.</xsd:documentation> + </xsd:annotation> + </xsd:element> + <xsd:element ref="dc:description"> + xsd:annotation + xsd:documentationDescription 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:documentationSubject 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:documentationRecommended 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:documentationInformation 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:documentationEntities (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:documentationInformation 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:documentationUsed 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:documentationGlobal 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:documentationEntity information.</xsd:documentation> + </xsd:annotation> + xsd:sequence + <xsd:element name="identifier" type="xsd:string" minOccurs="0"> + xsd:annotation + xsd:documentationA global unique identifier for the entity.</xsd:documentation> + </xsd:annotation> + </xsd:element> + <xsd:element name="name" type="languageAwareElementType" maxOccurs="unbounded"> + xsd:annotation + xsd:documentationThe 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:documentationAn acronym for the entity name</xsd:documentation> + </xsd:annotation> + </xsd:element> + <xsd:element name="logoURL" type="xsd:anyURI" minOccurs="0"> + xsd:annotation + xsd:documentationA 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:documentationThe 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:documentationOther 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:documentationLocation 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:documentationFormat 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:documentationA 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:documentationA 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:documentationUsed 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:documentationFormat of search operation result.</xsd:documentation> + </xsd:annotation> + xsd:sequence + xsd:any/ + <xsd:element name="summary" type="resultSummaryType"> + xsd:annotation + xsd:documentationUsed 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>