tdwg-tag
Threads by month
- ----- 2024 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2023 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2022 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2021 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2020 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2019 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2018 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2017 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2016 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2015 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2014 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2013 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2012 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2011 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2010 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2009 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2008 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2007 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2006 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2005 -----
- December
- November
- October
- September
October 2006
- 11 participants
- 10 discussions
Dear all,
Most of you probably know that we've been working on a formal
specification for the TAPIR protocol. We've finished a first version that
was presented during the last TDWG meeting.
It is still a working draft, but we would like to encourage anyone
interested in TAPIR to read the document and send any suggestions and
comments to us (you can use this mailing list if you want).
Now the document is in the TDWG resource directory for TAPIR:
http://rs.tdwg.org/tapir/1.0/specs/TAPIRSpecification_2006-10-15.html
At some point, we will certainly go through the new TDWG process to make
TAPIR an official TDWG standard, but as far as I know there were no
discussions about the best moment for doing this.
Since there are some networks that will probably start using TAPIR until
the end of this year, personally I would prefer to see them online before
starting the TDWG process (just in case we still discover that it would be
interesting to make more changes in this version).
Please let me know if you have other thoughts or ideas about this...
Best Regards,
--
Renato
1
0
20 Oct '06
Dear GUID and TAG members,
As we mentioned in an earlier message last month, the TDWG GUID
group has been working on a draft of the TDWG LSID Applicability
Statement. This document is planed to serve as guideline for
implementation of LSID resolvers in biodiversity information
applications. This specification will summarize all agreed decisions by
the GUID group and address the requirements of the TAG group.
We would like to ask you to please review the current draft of the
document and provide your comments and feedback.
The document under review is available at:
http://www.tdwg.gbif.org/uploads/media/TDWG_LSID_Applicability_Statement_11…
To make comments and provide feedback, please follow the
instructions on the following page on the TDWG GUID wiki:
http://wiki.gbif.org/guidwiki/wikka.php?wakka=TdwgLsidApplicabilityStatement
When we are all satisfied with the contents of this applicability
statement, we intend to ratify it as a TDWG standard.
Again, we would really appreciate your comments and feedback.
Best regards,
The TDWG Infrastructure Team (TIP)
2
1
Stumbled across an nice ontology for geographical places (see
http://semant.blogspot.com/2006/10/geonames-ontology-in-owl-gswb.html).
Isn't this the sort of thing we should be looking at, say for Darwin
Core. It always struck me as a weakness that geographic places in
Darwin Core were simply literal strings, rather than links to URIs.
Regards
Rod
------------------------------------------------------------------------
----------------------------------------
Professor Roderic D. M. Page
Editor, Systematic Biology
DEEB, IBLS
Graham Kerr Building
University of Glasgow
Glasgow G12 8QP
United Kingdom
Phone: +44 141 330 4778
Fax: +44 141 330 2792
email: r.page(a)bio.gla.ac.uk
web: http://taxonomy.zoology.gla.ac.uk/rod/rod.html
iChat: aim://rodpage1962
reprints: http://taxonomy.zoology.gla.ac.uk/rod/pubs.html
Subscribe to Systematic Biology through the Society of Systematic
Biologists Website: http://systematicbiology.org
Search for taxon names: http://darwin.zoology.gla.ac.uk/~rpage/portal/
Find out what we know about a species: http://ispecies.org
Rod's rants on phyloinformatics: http://iphylo.blogspot.com
Rod's rants on ants: http://semant.blogspot.com
1
0
[Tdwg-guid] Fwd: [Lsid-developer] Prototype URL to Life Science Identifier (LSID) gateway now available
by Roderic Page 13 Oct '06
by Roderic Page 13 Oct '06
13 Oct '06
In case people missed this development (as I did), announced on the
LSID Developer mailing list.
Regards
Rod
Begin forwarded message:
> From: Sean Martin <sjmm(a)us.ibm.com>
> Date: 12 October 2006 22:51:05 BST
> To: public-semweb-lifesci(a)w3.org
> Cc: Lsid-developer(a)lists.sourceforge.net
> Subject: [Lsid-developer] Prototype URL to Life Science Identifier
> (LSID) gateway now available
>
>
> Hello all,
> A little while back the W3C's HCLS BioRDF group (in the form of Susie
> Stephens) asked if I would look into establishing a prototype of a
> gateway service that allows the mapping of LSIDs to URLs. The initial
> suggestion came from Henry Thompson who asked that we take at look at
> how the ARK system does something similar. He and members of the W3C
> TAG, as well as others on the public-semweb-lifesci list have
> indicated how important they feel it is that one should be able to
> derefence URIs using the HTTP URI scheme and I believe this prototype
> succeeds in doing just that for LSIDs. You can read that conversation
> in the archives of the mail-list [1].
>
> The OMG were both interested and willing to cooperate with this effort
> and they have established a new DNS domain lsid-info.org for the
> purpose. I am pleased to announce that the prototype gateway is now
> operational. [2]
>
> Here is our first stab at the syntax of the mapping. To form your
> LSID access URL, replace the string <LSID> with an actual resolvable
> LSID.
>
> To retrieve the named bytes use http://lsid-info.org/<LSID>
> Example:
> http://lsid-info.org/urn:lsid:ncbi.nlm.nih.gov.lsid.biopathways.org:
> genbank:30350027
>
> To retrieve the RDF metadata (effectively a named graph) for the named
> bytes or concept use http://lsid-info.org/<LSID>?
> Example:
> http://lsid-info.org/urn:lsid:gdb.org:GenomicSegment:GDB132938?
>
> To retrieve and format the RDF metadata for the named bytes or concept
> as human-readable HTML use http://lsid-info.org/rdf2html/<LSID>
> Example:
> http://lsid-info.org/rdf2html/urn:lsid:
> gene.ucl.ac.uk.lsid.biopathways.org:hugo:MVP
>
> To retrieve information about the authority for the named bytes or
> concept use http://lsid-info.org/host/<LSID>
> Example:
> http://lsid-info.org/host/urn:lsid:gdb.org:GenomicSegment:GDB132938
>
> Obviously this syntax can be evolved so we would like feed back.
>
> I hope that others will find this gateway as useful as I believe we
> will. It may be that early work of this group should focus on
> establishing recommendations for and possibly even implementations of
> how to bridge useful information that is provided using standards
> created by non-W3C organizations and communities to the Semantic Web.
> It seems to me that perhaps we are going to need a number of similar
> gateways to be established permanently for other URI schemes like
> Handle DOIs[3], Oasis XRIs[4] as well as non-URI based identifier
> schemes which provide named bytes and metadata that is or can be
> transformed to RDF. In particular a gateway to the DOI system would
> be useful to us at this time because it is widely adopted in the
> scientific publishing community and we need a means to uniquely
> identify a paper (and indeed an offset into that paper) for the
> purposes of annotations stored in our RDF backed systems.
>
> Kindest regards, Sean
>
>
> [1]
> http://lists.w3.org/Archives/Public/public-semweb-lifesci/2006Jul/
> 0213.html
> [2] http://lsid-info.org/
> [3] http://www.doi.org/
> [4] http://en.wikipedia.org/wiki/Extensible_Resource_Identifier
> =
>
> --
> Sean Martin
> IBM
> Corp-------------------------------------------------------------------
> ------
> Using Tomcat but need to do more? Need to support web services,
> security?
> Get stuff done quickly with pre-integrated technology to make your job
> easier
> Download IBM WebSphere Application Server v.1.0.1 based on Apache
> Geronimo
> http://sel.as-us.falkag.net/sel?
> cmd=lnk&kid=120709&bid=263057&dat=121642_______________________________
> ________________
> Lsid-developer mailing list
> Lsid-developer(a)lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/lsid-developer
>
------------------------------------------------------------------------
----------------------------------------
Professor Roderic D. M. Page
Editor, Systematic Biology
DEEB, IBLS
Graham Kerr Building
University of Glasgow
Glasgow G12 8QP
United Kingdom
Phone: +44 141 330 4778
Fax: +44 141 330 2792
email: r.page(a)bio.gla.ac.uk
web: http://taxonomy.zoology.gla.ac.uk/rod/rod.html
iChat: aim://rodpage1962
reprints: http://taxonomy.zoology.gla.ac.uk/rod/pubs.html
Subscribe to Systematic Biology through the Society of Systematic
Biologists Website: http://systematicbiology.org
Search for taxon names: http://darwin.zoology.gla.ac.uk/~rpage/portal/
Find out what we know about a species: http://ispecies.org
Rod's rants on phyloinformatics: http://iphylo.blogspot.com
Rod's rants on ants: http://semant.blogspot.com
1
0
12 Oct '06
Author: markus
Date: 2006-10-12 16:12:25 +0200 (Thu, 12 Oct 2006)
New Revision: 594
Modified:
trunk/protocol/tapir.xsd
Log:
Allow output models to have a description and label string just like templates do
Modified: trunk/protocol/tapir.xsd
===================================================================
--- trunk/protocol/tapir.xsd 2006-10-12 00:48:37 UTC (rev 593)
+++ trunk/protocol/tapir.xsd 2006-10-12 14:12:25 UTC (rev 594)
@@ -1,1736 +1,1749 @@
-<?xml version="1.0"?>
-<!-- $Id$ -->
-<xsd:schema targetNamespace="http://rs.tdwg.org/tapir/1.0"
- xmlns="http://rs.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.
- It is 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.
- </xsd:documentation>
- <xsd:appinfo>
- <dc:title>TAPIR XML Schema</dc:title>
- <dc:relation>http://www.tdwg.gbif.org/subgroups/tapir/</dc:relation>
- </xsd:appinfo>
- </xsd:annotation>
- <!-- ============================================= -->
- <!-- NAMESPACE IMPORTS -->
- <!-- ============================================= -->
- <xsd:import namespace="http://www.w3.org/XML/1998/namespace"
- schemaLocation="http://www.w3.org/2001/03/xml.xsd"/>
- <xsd:import namespace="http://purl.org/dc/elements/1.1/"
- schemaLocation="dc.xsd"/>
- <xsd:import namespace="http://purl.org/dc/terms/"
- schemaLocation="dcterms.xsd"/>
- <xsd:import namespace="http://www.w3.org/2003/01/geo/wgs84_pos#"
- schemaLocation="w3c_geo.xsd"/>
- <xsd:import namespace="http://www.w3.org/2001/vcard-rdf/3.0#"
- schemaLocation="vcard.xsd"/>
- <!-- ============================================= -->
- <!-- SIMPLE TYPE DEFINITIONS-->
- <!-- ============================================= -->
- <xsd:simpleType name="simpleXPathType">
- <xsd:annotation>
- <xsd:documentation>A simple XPath expression used to reference XML nodes.
- e.g. /dataset/specimen/identification/name</xsd:documentation>
- </xsd:annotation>
- <xsd:restriction base="xsd:string"/>
- </xsd:simpleType>
- <xsd:simpleType
- name="qualifiedConceptIdType">
- <xsd:annotation>
- <xsd:documentation>Concept identifiers are just strings for TAPIR, so the protocol does
- not enforce any pattern. However it is recommended to use globally, resolvable and
- permanent unique identifiers for them. It is also recommended to avoid using
- characters that are reserved in the "query" part of URLs, since concepts can be
- referenced there by many TAPIR parameters and would need to be escaped. When
- defining concepts based on xml schemas we recommend to simply concatenate the
- namespace of the schema with the local xpath to the instance element. For example
- /DataSets/DataSet/Units/Unit/InstitutionID in ABCD becomes
- http://www.tdwg.org/schemas/abcd/2.06/DataSets/DataSet/Units/Unit/Instituti…
- </xsd:documentation>
- </xsd:annotation>
- <xsd:restriction
- base="xsd:string"/>
- </xsd:simpleType>
- <!-- ============================================= -->
- <!-- GENERAL COMPLEX TYPE DEFINITIONS-->
- <!-- ============================================= -->
- <xsd:complexType name="externalResourceType">
- <xsd:annotation>
- <xsd:documentation>A URI that points to a document or schema referenced by TAPIR operations</xsd:documentation>
- </xsd:annotation>
- <xsd:attribute name="location" type="xsd:anyURI" use="required"/>
- </xsd:complexType>
- <xsd:complexType name="languageAwareElementType">
- <xsd:annotation>
- <xsd:documentation> String with a language attribute. A type for elements that may be language specific.</xsd:documentation>
- </xsd:annotation>
- <xsd:simpleContent>
- <xsd:extension base="xsd:string">
- <xsd:attribute ref="xml:lang" use="optional"/>
- </xsd:extension>
- </xsd:simpleContent>
- </xsd:complexType>
- <xsd:complexType name="nodeReferenceType">
- <xsd:annotation>
- <xsd:documentation>A reference to an XML node in a conceptual schema.
- Uses a simple XPath stored as an attribute.</xsd:documentation>
- </xsd:annotation>
- <xsd:attribute name="path" type="simpleXPathType" use="required"/>
- </xsd:complexType>
- <xsd:complexType name="qualifiedConceptReferenceType">
- <xsd:annotation>
- <xsd:documentation>A qualified reference to a concept. Uses an attribute to hold a concept
- and its namespace prefix or an alias as defined in qualifiedConceptIdType </xsd:documentation>
- </xsd:annotation>
- <xsd:attribute name="id" type="qualifiedConceptIdType" use="required"/>
- </xsd:complexType>
- <xsd:complexType name="softwareInformationType">
- <xsd:annotation>
- <xsd:documentation> Information about the software used to construct or relay a TAPIR request or response.
- The software name and version are stored as simple string attributes.</xsd:documentation>
- </xsd:annotation>
- <xsd:attribute name="name" type="xsd:string" use="required"/>
- <xsd:attribute name="version" type="xsd:string" use="required"/>
- </xsd:complexType>
- <xsd:complexType name="headerType">
- <xsd:annotation>
- <xsd:documentation>A Header is part of request and response messages. The Header describes the source of the request or response
- and optionally its destination. It may also describe the software that sent the request or response
- and there is a custom section for extending the information e.g. with information related to security or access.
- The header can list several sources, where for instance, a request is cascaded through one or more portals. </xsd:documentation>
- </xsd:annotation>
- <xsd:sequence>
- <xsd:element name="source" maxOccurs="unbounded">
- <xsd:annotation>
- <xsd:documentation>Source of this message. Repeatable to trace back all servers
- of a possible cascading transaction, but always starting (first in the
- sequence) with the original source, the client. Holds a URL or at least the
- IP of the source with the timestamp when the message has been processed as
- an attribute in ISO format.</xsd:documentation>
- </xsd:annotation>
- <xsd:complexType>
- <xsd:sequence minOccurs="0">
- <xsd:element name="software" minOccurs="0">
- <xsd:annotation>
- <xsd:documentation>The optional software element should indicate the
- software including its version, used to generate or modify the
- document. It may also list any dependencies on libraries and other software</xsd:documentation>
- </xsd:annotation>
- <xsd:complexType>
- <xsd:complexContent>
- <xsd:extension base="softwareInformationType">
- <xsd:sequence minOccurs="0">
- <xsd:element name="dependencies" minOccurs="0">
- <xsd:annotation>
- <xsd:documentation>Represents set of dependecies for this software.</xsd:documentation>
- </xsd:annotation>
- <xsd:complexType>
- <xsd:sequence minOccurs="0">
- <xsd:element name="dependency" type="softwareInformationType" minOccurs="0" maxOccurs="unbounded">
- <xsd:annotation>
- <xsd:documentation>A single dependency for the software, e.g. a library, framework, component, OS, etc.</xsd:documentation>
- </xsd:annotation>
- </xsd:element>
- </xsd:sequence>
- </xsd:complexType>
- </xsd:element>
- </xsd:sequence>
- </xsd:extension>
- </xsd:complexContent>
- </xsd:complexType>
- </xsd:element>
- </xsd:sequence>
- <xsd:attribute name="accesspoint" type="xsd:anyURI" use="required"/>
- <xsd:attribute name="sendtime" type="xsd:dateTime" use="required"/>
- </xsd:complexType>
- </xsd:element>
- <xsd:element name="destination" type="xsd:string" minOccurs="0">
- <xsd:annotation>
- <xsd:documentation>Destination of the message. Takes a string which usually will
- be a URI but can be anything e.g. include resource names etc. It is optional
- and an implementation is free to ignore it.</xsd:documentation>
- </xsd:annotation>
- </xsd:element>
- <xsd:element ref="custom" minOccurs="0"/>
- </xsd:sequence>
- </xsd:complexType>
- <xsd:complexType name="diagnosticMessageType">
- <xsd:annotation>
- <xsd:documentation>A diagnostic message from the service with message type and time presented as attributes
- including code, level ( with enumerated types e.g. error, warning, additional
- information, etc). and a time stamp</xsd:documentation>
- </xsd:annotation>
- <xsd:simpleContent>
- <xsd:extension base="xsd:string">
- <xsd:attribute name="code" type="xsd:string" use="optional"/>
- <xsd:attribute name="level" use="required">
- <xsd:simpleType>
- <xsd:restriction base="xsd:string">
- <xsd:enumeration value="debug"/>
- <xsd:enumeration value="info"/>
- <xsd:enumeration value="warn"/>
- <xsd:enumeration value="error"/>
- <xsd:enumeration value="fatal"/>
- </xsd:restriction>
- </xsd:simpleType>
- </xsd:attribute>
- <xsd:attribute name="time" type="xsd:dateTime" use="optional"/>
- </xsd:extension>
- </xsd:simpleContent>
- </xsd:complexType>
- <xsd:complexType name="diagnosticsListType">
- <xsd:annotation>
- <xsd:documentation>Provides the means to present a list of diagnostic messages from the service.</xsd:documentation>
- </xsd:annotation>
- <xsd:sequence minOccurs="0">
- <xsd:element name="diagnostic" type="diagnosticMessageType" minOccurs="0" maxOccurs="unbounded"/>
- </xsd:sequence>
- </xsd:complexType>
- <xsd:element name="custom">
- <xsd:annotation>
- <xsd:documentation>Extension slot for additional information not defined in the schema.</xsd:documentation>
- </xsd:annotation>
- <xsd:complexType>
- <xsd:sequence>
- <xsd:any minOccurs="0" maxOccurs="unbounded">
- <xsd:annotation>
- <xsd:documentation>For any custom extension. E.g what security related
- capabilities does the provider have? Encryption, access restriction,
- etc.</xsd:documentation>
- </xsd:annotation>
- </xsd:any>
- </xsd:sequence>
- </xsd:complexType>
- </xsd:element>
- <!-- ============================================= -->
- <!--EXTERNAL QUERY TEMPLATE DEFINITIONS-->
- <!-- ============================================= -->
- <xsd:element name="outputModel" type="outputModelType"></xsd:element>
- <xsd:complexType name="outputModelType">
- <xsd:annotation>
- <xsd:documentation>Response structures are part of a model definition which
- includes three sections: a record schema (structure), a mapping section for linking to the datasource model
- and an indexing section that is used as a reference for record counting and paging responses.
- The outputModel template is a separate, external XML document, called by a search operation,
- that uses 'outputModel' as the root element. </xsd:documentation>
- </xsd:annotation>
- <xsd:sequence>
- <xsd:element name="structure">
- <xsd:annotation>
- <xsd:documentation>The response structure definition. By default this should be
- a subset of the XML Schema language but others such as RELAX NG could be
- supported in the future.</xsd:documentation>
- </xsd:annotation>
- <xsd:complexType>
- <xsd:choice>
- <xsd:element name="schema" type="externalResourceType"/>
- <xsd:any namespace="##other">
- <xsd:annotation>
- <xsd:documentation>A structure represented through a subset of the
- XML Schema language defining how elements should be
- returned.</xsd:documentation>
- </xsd:annotation>
- </xsd:any>
- </xsd:choice>
- </xsd:complexType>
- </xsd:element>
- <xsd:element name="indexingElement" maxOccurs="unbounded">
- <xsd:annotation>
- <xsd:documentation>A simple XPath pointing to a response structure node that
- should be used as a reference for counting.</xsd:documentation>
- </xsd:annotation>
- <xsd:complexType>
- <xsd:attribute name="path" type="simpleXPathType" use="required"/>
- </xsd:complexType>
- </xsd:element>
- <xsd:element name="mapping">
- <xsd:complexType>
- <xsd:sequence>
- <xsd:element name="node" minOccurs="0" maxOccurs="unbounded">
- <xsd:annotation>
- <xsd:documentation>Maps a node from the structure definition to a
- list of qualified concepts, literals or environment variables,
- which should be concatenated in the output. If the automapping attribute
- is set to 'true' then the server application should match concepts with the same namespace and path.
- For instance if the wrapper and the search request are both using a canonical ABCD model or Darwin Core Model,
- then concepts will be automatically recognised.</xsd:documentation>
- </xsd:annotation>
- <xsd:complexType>
- <xsd:choice maxOccurs="unbounded">
- <xsd:annotation>
- <xsd:documentation>Multiple mappings represent concatenation.</xsd:documentation>
- </xsd:annotation>
- <xsd:element ref="concept"/>
- <xsd:element ref="literal"/>
- <xsd:element ref="variable"/>
- </xsd:choice>
- <xsd:attribute name="path" type="simpleXPathType" use="required"/>
- </xsd:complexType>
- </xsd:element>
- </xsd:sequence>
- <xsd:attribute name="automapping" type="xsd:boolean" use="optional" default="false"/>
- </xsd:complexType>
- </xsd:element>
- </xsd:sequence>
- </xsd:complexType>
- <xsd:element name="queryTemplate" abstract="true"/>
- <xsd:complexType name="extResourceDocumentationType">
- <xsd:sequence>
- <xsd:element name="label" type="xsd:string" minOccurs="0"/>
- <xsd:element name="documentation" type="xsd:string" minOccurs="0"/>
- </xsd:sequence>
- </xsd:complexType>
- <xsd:element name="searchTemplate" substitutionGroup="queryTemplate" type="searchTemplateType"/>
- <xsd:group name="searchTemplateGroup">
- <xsd:sequence>
- <xsd:choice>
- <xsd:element name="externalOutputModel" type="externalResourceType"></xsd:element>
- <xsd:element name="outputModel" type="outputModelType"></xsd:element>
- </xsd:choice>
- <xsd:element name="partial" minOccurs="0">
- <xsd:annotation>
- <xsd:documentation>Select only a subset of the
- entire response structure to be used in the
- response. Useful for working with large cached
- external structures referenced via URLs. Select
- branch nodes if you want all concepts below
- included. A partial search must take care that
- response documents still validate. Thus
- mandatory elements or attributes of the response
- structure, which are not listed in the partial
- search ,must be included in the response
- content.</xsd:documentation>
- </xsd:annotation>
- <xsd:complexType>
- <xsd:sequence>
- <xsd:element name="node" type="nodeReferenceType" maxOccurs="unbounded">
- <xsd:annotation>
- <xsd:documentation>A node taken from the response structure definition.</xsd:documentation>
- </xsd:annotation>
- </xsd:element>
- </xsd:sequence>
- </xsd:complexType>
- </xsd:element>
- <xsd:element ref="filter" minOccurs="0"/>
- <xsd:element name="orderBy" minOccurs="0">
- <xsd:annotation>
- <xsd:documentation>A list of qualified concepts to be used for ordering the model
- results.</xsd:documentation>
- </xsd:annotation>
- <xsd:complexType>
- <xsd:sequence>
- <xsd:element name="concept" maxOccurs="unbounded">
- <xsd:annotation>
- <xsd:documentation>Repeatable element. One or more concepts to be used for ordering the
- model. If the attribute "descend" is set to true, a descending
- ordering will be used instead of the default ascending one.</xsd:documentation>
- </xsd:annotation>
- <xsd:complexType>
- <xsd:complexContent>
- <xsd:extension base="conceptType">
- <xsd:attribute name="descend" type="xsd:boolean" use="optional" default="false"/>
- </xsd:extension>
- </xsd:complexContent>
- </xsd:complexType>
- </xsd:element>
- </xsd:sequence>
- </xsd:complexType>
- </xsd:element>
- </xsd:sequence>
- </xsd:group>
- <xsd:complexType name="searchTemplateType">
- <xsd:annotation>
- <xsd:documentation>TAPIR can use a template for configuring search requests.
- The Template is accessed, as an external document, by its URI</xsd:documentation>
- </xsd:annotation>
- <xsd:complexContent>
- <xsd:extension base="extResourceDocumentationType">
- <xsd:sequence>
- <xsd:group ref="searchTemplateGroup" />
- </xsd:sequence>
- </xsd:extension>
- </xsd:complexContent>
- </xsd:complexType>
- <xsd:element name="inventoryTemplate" substitutionGroup="queryTemplate"
- type="inventoryTemplateType"/>
- <xsd:group name="inventoryTemplateGroup">
- <xsd:annotation>
- <xsd:documentation>TAPIR can use a template for configuring inventory requests.
- The Template is accessed, as an external document, by its URI</xsd:documentation>
- </xsd:annotation>
- <xsd:sequence>
- <xsd:element name="concepts">
- <xsd:annotation>
- <xsd:documentation>Used to specify a list of concepts to make an inventory on.</xsd:documentation>
- </xsd:annotation>
- <xsd:complexType>
- <xsd:sequence>
- <xsd:element name="concept" type="qualifiedConceptReferenceType" minOccurs="1" maxOccurs="unbounded">
- <xsd:annotation>
- <xsd:documentation>A single qualified concept</xsd:documentation>
- </xsd:annotation>
- </xsd:element>
- </xsd:sequence>
- </xsd:complexType>
- </xsd:element>
- <xsd:element ref="filter" minOccurs="0"/>
- </xsd:sequence>
- </xsd:group>
- <xsd:complexType name="inventoryTemplateType">
- <xsd:annotation>
- <xsd:documentation>TAPIR can use a template for configuring inventory requests.
- The Template is accessed, as an external document, by its URI</xsd:documentation>
- </xsd:annotation>
- <xsd:complexContent>
- <xsd:extension base="extResourceDocumentationType">
- <xsd:sequence>
- <xsd:group ref="inventoryTemplateGroup" />
- </xsd:sequence>
- </xsd:extension>
- </xsd:complexContent>
- </xsd:complexType>
- <!-- ============================================= -->
- <!-- FILTER DEFINITIONS-->
- <!-- ============================================= -->
- <xsd:element name="filter">
- <xsd:annotation>
- <xsd:documentation>An abstract filter encoding that could be translated to other local
- query languages. Can be used by search and inventory operations to specify
- searching conditions.</xsd:documentation>
- </xsd:annotation>
- <xsd:complexType>
- <xsd:sequence>
- <xsd:element ref="booleanOP"/>
- </xsd:sequence>
- </xsd:complexType>
- </xsd:element>
- <!-- ===== EXPRESSIONS ===== -->
- <xsd:element name="expression" abstract="true">
- <xsd:annotation>
- <xsd:documentation>An abstract element representing any expression (literal, parameter
- or concept).</xsd:documentation>
- </xsd:annotation>
- </xsd:element>
- <!-- ===== SIMPLE EXPRESSIONS ===== -->
- <xsd:element name="simpleExpression" abstract="true" substitutionGroup="expression"/>
- <xsd:element name="literal" substitutionGroup="simpleExpression">
- <xsd:annotation>
- <xsd:documentation>An element to represent literals / values. Substitutes an abstract
- expression element.</xsd:documentation>
- </xsd:annotation>
- <xsd:complexType>
- <xsd:attribute name="value" type="xsd:string" use="required"/>
- </xsd:complexType>
- </xsd:element>
- <xsd:element name="parameter" substitutionGroup="simpleExpression">
- <xsd:annotation>
- <xsd:documentation>An element to represent external parameters e.g. via CGI. Substitutes
- an abstract expression element.</xsd:documentation>
- </xsd:annotation>
- <xsd:complexType>
- <xsd:attribute name="name" type="xsd:string" use="required"/>
- </xsd:complexType>
- </xsd:element>
- <xsd:element name="concept" type="conceptType" substitutionGroup="simpleExpression">
- <xsd:annotation>
- <xsd:documentation>An element to represent a concept of one specific conceptual schema.
- Substitutes an abstract expression element.</xsd:documentation>
- </xsd:annotation>
- </xsd:element>
- <xsd:complexType name="conceptType">
- <xsd:complexContent>
- <xsd:extension base="qualifiedConceptReferenceType"/>
- </xsd:complexContent>
- </xsd:complexType>
- <!-- ===== COMPLEX EXPRESSIONS ===== -->
- <xsd:element name="complexExpression" abstract="true" substitutionGroup="expression"/>
- <!-- === ARITHMETIC EXPRESSION OPERATORS ===-->
- <xsd:element name="AOP" abstract="true" substitutionGroup="complexExpression">
- <xsd:annotation>
- <xsd:documentation>An abstract element representing any Arithmetic operator.</xsd:documentation>
- </xsd:annotation>
- </xsd:element>
- <xsd:complexType name="binaryAOPType">
- <xsd:annotation>
- <xsd:documentation>A binary arithmetic operator with the first expression argument being
- the left argument of the operation.</xsd:documentation>
- </xsd:annotation>
- <xsd:sequence>
- <xsd:element ref="expression"/>
- <xsd:element ref="expression"/>
- </xsd:sequence>
- </xsd:complexType>
- <xsd:element name="add" type="binaryAOPType" substitutionGroup="AOP">
- <xsd:annotation>
- <xsd:documentation>The arithmetic addition (+) operator.</xsd:documentation>
- </xsd:annotation>
- </xsd:element>
- <xsd:element name="sub" type="binaryAOPType" substitutionGroup="AOP">
- <xsd:annotation>
- <xsd:documentation>The arithmetic subtraction (-) operator.</xsd:documentation>
- </xsd:annotation>
- </xsd:element>
- <xsd:element name="mul" type="binaryAOPType" substitutionGroup="AOP">
- <xsd:annotation>
- <xsd:documentation>The arithmetic multiplication (*) operator.</xsd:documentation>
- </xsd:annotation>
- </xsd:element>
- <xsd:element name="div" type="binaryAOPType" substitutionGroup="AOP">
- <xsd:annotation>
- <xsd:documentation>The arithmetic division (/) operator.</xsd:documentation>
- </xsd:annotation>
- </xsd:element>
- <!-- ===== ABSTRACT OPERATOR BASE TYPE ===== -->
- <xsd:element name="booleanOP" abstract="true">
- <xsd:annotation>
- <xsd:documentation>An abstract element representing any logical operator.</xsd:documentation>
- </xsd:annotation>
- </xsd:element>
- <!-- ===== COMPARATIVE OPERATORS ===== -->
- <xsd:element name="COP" abstract="true" substitutionGroup="booleanOP">
- <xsd:annotation>
- <xsd:documentation>An abstract element representing any comparison operator.</xsd:documentation>
- </xsd:annotation>
- </xsd:element>
- <!-- === unary === -->
- <xsd:element name="unaryCOP" abstract="true" substitutionGroup="COP">
- <xsd:annotation>
- <xsd:documentation>An abstract element representing any unary comparison operator.</xsd:documentation>
- </xsd:annotation>
- </xsd:element>
- <xsd:complexType name="unaryCOPType">
- <xsd:annotation>
- <xsd:documentation>A complex type for unary comparison operators.</xsd:documentation>
- </xsd:annotation>
- <xsd:sequence>
- <xsd:element ref="concept"/>
- </xsd:sequence>
- </xsd:complexType>
- <xsd:element name="isNull" type="unaryCOPType" substitutionGroup="unaryCOP">
- <xsd:annotation>
- <xsd:documentation>Compares if a concept is null. Use equals element to compare for empty strings.</xsd:documentation>
- </xsd:annotation>
- </xsd:element>
- <!-- === binary === -->
- <xsd:element name="binaryCOP" abstract="true" substitutionGroup="COP">
- <xsd:annotation>
- <xsd:documentation>An abstract element representing any binary comparison operator.</xsd:documentation>
- </xsd:annotation>
- </xsd:element>
- <xsd:complexType name="binaryCOPType">
- <xsd:annotation>
- <xsd:documentation>A complex type for binary comparison operators.</xsd:documentation>
- </xsd:annotation>
- <xsd:sequence>
- <xsd:element ref="concept"/>
- <xsd:element ref="expression"/>
- </xsd:sequence>
- </xsd:complexType>
- <xsd:element name="equals" type="binaryCOPType" substitutionGroup="binaryCOP">
- <xsd:annotation>
- <xsd:documentation>The equals (=) comparison operator.</xsd:documentation>
- </xsd:annotation>
- </xsd:element>
- <xsd:element name="lessThan" type="binaryCOPType" substitutionGroup="binaryCOP">
- <xsd:annotation>
- <xsd:documentation>The less than (<) comparison operator.</xsd:documentation>
- </xsd:annotation>
- </xsd:element>
- <xsd:element name="lessThanOrEquals" type="binaryCOPType" substitutionGroup="binaryCOP">
- <xsd:annotation>
- <xsd:documentation>The less than or equals (<=) comparison operator.</xsd:documentation>
- </xsd:annotation>
- </xsd:element>
- <xsd:element name="greaterThan" type="binaryCOPType" substitutionGroup="binaryCOP">
- <xsd:annotation>
- <xsd:documentation>The greater than (>) comparison operator.</xsd:documentation>
- </xsd:annotation>
- </xsd:element>
- <xsd:element name="greaterThanOrEquals" type="binaryCOPType" substitutionGroup="binaryCOP">
- <xsd:annotation>
- <xsd:documentation>The greater than or equals (>=) comparison operator.</xsd:documentation>
- </xsd:annotation>
- </xsd:element>
- <xsd:element name="like" type="binaryCOPType" substitutionGroup="binaryCOP">
- <xsd:annotation>
- <xsd:documentation>The like (LIKE) comparison operator.</xsd:documentation>
- </xsd:annotation>
- </xsd:element>
- <!-- === multiple === -->
- <xsd:element name="multiCOP" abstract="true" substitutionGroup="COP">
- <xsd:annotation>
- <xsd:documentation>An abstract element representing any multiple comparison operator.</xsd:documentation>
- </xsd:annotation>
- </xsd:element>
- <xsd:complexType name="multiCOPType">
- <xsd:annotation>
- <xsd:documentation>A complex type for multiple comparison operators.</xsd:documentation>
- </xsd:annotation>
- <xsd:sequence>
- <xsd:element ref="concept"/>
- <xsd:element name="values">
- <xsd:complexType>
- <xsd:sequence>
- <xsd:element ref="simpleExpression" maxOccurs="unbounded"/>
- </xsd:sequence>
- </xsd:complexType>
- </xsd:element>
- </xsd:sequence>
- </xsd:complexType>
- <xsd:element name="in" type="multiCOPType" substitutionGroup="multiCOP">
- <xsd:annotation>
- <xsd:documentation>The in (IN) comparison operator.</xsd:documentation>
- </xsd:annotation>
- </xsd:element>
- <!-- ===== LOGICAL OPERATORS ===== -->
- <xsd:element name="LOP" abstract="true" substitutionGroup="booleanOP">
- <xsd:annotation>
- <xsd:documentation>An abstract element representing any logical
- operator.</xsd:documentation>
- </xsd:annotation>
- </xsd:element>
- <!-- === unary === -->
- <xsd:element name="unaryLOP" abstract="true" substitutionGroup="LOP">
- <xsd:annotation>
- <xsd:documentation>An abstract element representing any unary logical
- operator.</xsd:documentation>
- </xsd:annotation>
- </xsd:element>
- <xsd:complexType name="unaryLOPType">
- <xsd:annotation>
- <xsd:documentation>A complex type for unary logical operators.</xsd:documentation>
- </xsd:annotation>
- <xsd:sequence>
- <xsd:element ref="booleanOP"/>
- </xsd:sequence>
- </xsd:complexType>
- <xsd:element name="not" substitutionGroup="unaryLOP">
- <xsd:annotation>
- <xsd:documentation>The not logical operator.</xsd:documentation>
- </xsd:annotation>
- <xsd:complexType>
- <xsd:complexContent>
- <xsd:extension base="unaryLOPType"/>
- </xsd:complexContent>
- </xsd:complexType>
- </xsd:element>
- <!-- === multiple === -->
- <xsd:element name="multiLOP" abstract="true" substitutionGroup="LOP">
- <xsd:annotation>
- <xsd:documentation>An abstract element representing any multiple logical
- operator.</xsd:documentation>
- </xsd:annotation>
- </xsd:element>
- <xsd:complexType name="multiLOPType">
- <xsd:annotation>
- <xsd:documentation>A complex type for multiple logical operators.</xsd:documentation>
- </xsd:annotation>
- <xsd:sequence minOccurs="2" maxOccurs="unbounded">
- <xsd:element ref="booleanOP"/>
- </xsd:sequence>
- </xsd:complexType>
- <xsd:element name="and" type="multiLOPType" substitutionGroup="multiLOP">
- <xsd:annotation>
- <xsd:documentation>The and logical operator.</xsd:documentation>
- </xsd:annotation>
- </xsd:element>
- <xsd:element name="or" type="multiLOPType" substitutionGroup="multiLOP">
- <xsd:annotation>
- <xsd:documentation>The or logical operator.</xsd:documentation>
- </xsd:annotation>
- </xsd:element>
- <!-- ===== ENVIRONMENT VARIABLE EXPRESSIONS ===== -->
- <xsd:element name="variable" abstract="true" substitutionGroup="expression">
- <xsd:annotation>
- <xsd:documentation>An abstract element to represent datasource specific values taken
- from the datasource environment by the wrapper.</xsd:documentation>
- </xsd:annotation>
- </xsd:element>
- <xsd:element name="date" substitutionGroup="variable">
- <xsd:annotation>
- <xsd:documentation>An element to represent ISO date like 2005-07-21. Substitutes an
- abstract environment variable element.</xsd:documentation>
- </xsd:annotation>
- <xsd:complexType/>
- </xsd:element>
- <xsd:element name="timestamp" substitutionGroup="variable">
- <xsd:annotation>
- <xsd:documentation>An element to represent an ISO timestamp like 2005-07-20 17:01:38.
- Substitutes an abstract environment variable element.</xsd:documentation>
- </xsd:annotation>
- <xsd:complexType/>
- </xsd:element>
- <xsd:element name="datasourceName" substitutionGroup="variable">
- <xsd:annotation>
- <xsd:documentation>An element to represent the name of the datasource. Substitutes an
- abstract environment variable element.</xsd:documentation>
- </xsd:annotation>
- <xsd:complexType/>
- </xsd:element>
- <xsd:element name="accessPoint" substitutionGroup="variable">
- <xsd:annotation>
- <xsd:documentation>An element to represent the access point of the datasource.
- Substitutes an abstract environment variable element.</xsd:documentation>
- </xsd:annotation>
- <xsd:complexType/>
- </xsd:element>
- <xsd:element name="lastUpdate" substitutionGroup="variable">
- <xsd:annotation>
- <xsd:documentation>An element to represent the timestamp of the last update of the
- datasource. Substitutes an abstract variable expression
- element.</xsd:documentation>
- </xsd:annotation>
- <xsd:complexType/>
- </xsd:element>
- <!-- ============================================= -->
- <!--REQUEST TYPE DEFINITIONS-->
- <!-- ============================================= -->
- <xsd:element name="request" type="requestType">
- <xsd:annotation>
- <xsd:documentation>Global element representing a request. This is a root element
- and must contain reference to the schema and namespaces used.</xsd:documentation>
- </xsd:annotation>
- </xsd:element>
- <xsd:complexType name="requestType">
- <xsd:annotation>
- <xsd:documentation>Request message format. Must always contain header and operation
- specific parameters.</xsd:documentation>
- </xsd:annotation>
- <xsd:sequence>
- <xsd:element name="header" type="headerType"/>
- <xsd:choice>
- <xsd:element name="ping">
- <xsd:complexType>
- <xsd:attributeGroup ref="globalParametersGroup"/>
- </xsd:complexType>
- </xsd:element>
- <xsd:element name="capabilities">
- <xsd:complexType>
- <xsd:attributeGroup ref="globalParametersGroup"/>
- </xsd:complexType>
- </xsd:element>
- <xsd:element name="metadata">
- <xsd:complexType>
- <xsd:attributeGroup ref="globalParametersGroup"/>
- </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="globalParametersGroup"/>
- <xsd:attributeGroup ref="pagingParametersGroup"/>
- </xsd:complexType>
- </xsd:element>
- <xsd:element name="search">
- <xsd:complexType>
- <xsd:choice>
- <xsd:element name="template" type="externalResourceType"/>
- <xsd:group ref="searchTemplateGroup"/>
- </xsd:choice>
- <xsd:attributeGroup ref="globalParametersGroup"/>
- <xsd:attributeGroup ref="pagingParametersGroup"/>
- <xsd:attribute name="envelope" type="xsd:boolean" use="optional" default="true"/>
- </xsd:complexType>
- </xsd:element>
- </xsd:choice>
- </xsd:sequence>
- </xsd:complexType>
- <xsd:attributeGroup name="globalParametersGroup">
- <xsd:attribute name="xslt" type="xsd:anyURI" use="optional"/>
- <xsd:attribute name="xslt-apply" type="xsd:boolean" use="optional" default="false"/>
- <xsd:attribute name="log-only" type="xsd:boolean" use="optional" default="false"/>
- </xsd:attributeGroup>
- <xsd:attributeGroup name="pagingParametersGroup">
- <xsd:attribute name="count" type="xsd:boolean" use="optional" default="false"/>
- <xsd:attribute name="start" type="xsd:nonNegativeInteger" use="optional" default="0"/>
- <xsd:attribute name="limit" type="xsd:nonNegativeInteger" use="optional" default="1"/>
- </xsd:attributeGroup>
- <!-- ============================================= -->
- <!--RESPONSE TYPE DEFINITIONS-->
- <!-- ============================================= -->
- <xsd:element name="response" type="responseType">
- <xsd:annotation>
- <xsd:documentation>Global element representing a response. This is a root element
- and must contain reference to the schema and namespaces used</xsd:documentation>
- </xsd:annotation>
- </xsd:element>
- <xsd:complexType name="responseType">
- <xsd:annotation>
- <xsd:documentation>Response message format. Must always contain header, results from the
- requested operation and possible diagnostic messages.</xsd:documentation>
- </xsd:annotation>
- <xsd:sequence>
- <xsd:element name="header" type="headerType"/>
- <xsd:choice>
- <xsd:element ref="pong"/>
- <xsd:element ref="metadata"/>
- <xsd:element ref="capabilities"/>
- <xsd:element ref="inventory" />
- <xsd:element ref="search" />
- <xsd:element ref="error" />
- <xsd:element ref="logged" />
- </xsd:choice>
- <xsd:element name="diagnostics" type="diagnosticsListType" minOccurs="0">
- <xsd:annotation>
- <xsd:documentation>The diagnostics element is an optional part of TAPIR requests and response messages.
- Diagnostics may contain many pieces of information used for debugging and providing warnings or error messages.
- Individual diagnostics are held in a diagnosticList with an enumerated attribute for level and attributes for code and time.
- </xsd:documentation>
- </xsd:annotation>
- </xsd:element>
- </xsd:sequence>
- </xsd:complexType>
- <xsd:complexType name="resultSummaryType">
- <xsd:annotation>
- <xsd:documentation>Summary about inventory and search results. The first index of a
- record is 0. The number of records actually being returned is given in totalReturned.
- If counting was requested the totalMatched gives the "estimated" number of total
- matching records - not necessarily the number of valid records that can possibly be
- returned by paging through the entire record set.</xsd:documentation>
- </xsd:annotation>
- <xsd:attribute name="start" type="xsd:integer" use="required"/>
- <xsd:attribute name="next" type="xsd:integer" use="optional"/>
- <xsd:attribute name="totalReturned" type="xsd:integer" use="required"/>
- <xsd:attribute name="totalMatched" type="xsd:integer" use="optional"/>
- </xsd:complexType>
- <!-- ===== PING ===== -->
- <xsd:element name="pong" type="pingResultType"/>
- <xsd:complexType name="pingResultType">
- <xsd:annotation>
- <xsd:documentation>Format of ping operation result.</xsd:documentation>
- </xsd:annotation>
- </xsd:complexType>
- <!-- ===== CAPABILITIES ===== -->
- <xsd:element name="capabilities" type="capabilitiesResultType"/>
- <xsd:complexType name="capabilitiesResultType">
- <xsd:annotation>
- <xsd:documentation>Format of capabilities operation result.</xsd:documentation>
- </xsd:annotation>
- <xsd:sequence>
- <xsd:element name="operations">
- <xsd:complexType>
- <xsd:sequence>
- <xsd:element name="ping">
- <xsd:complexType/>
- </xsd:element>
- <xsd:element name="metadata">
- <xsd:complexType/>
- </xsd:element>
- <xsd:element name="capabilities">
- <xsd:complexType/>
- </xsd:element>
- <xsd:element name="inventory" minOccurs="0">
- <xsd:complexType>
- <xsd:sequence>
- <xsd:element name="templates" type="templatesCapabilitiesType" minOccurs="0"/>
- <xsd:element name="anyConcepts" minOccurs="0"><xsd:complexType/></xsd:element>
- </xsd:sequence>
- </xsd:complexType>
- </xsd:element>
- <xsd:element name="search" minOccurs="0">
- <xsd:complexType>
- <xsd:sequence>
- <xsd:element name="templates" type="templatesCapabilitiesType" minOccurs="0" />
- <xsd:element name="outputModels" minOccurs="0">
- <xsd:complexType>
- <xsd:sequence>
- <xsd:element name="knownOutputModels" minOccurs="0" >
- <xsd:complexType>
- <xsd:sequence>
- <xsd:element name="outputModel" type="externalResourceType" maxOccurs="unbounded"/>
- </xsd:sequence>
- </xsd:complexType>
- </xsd:element>
- <xsd:element name="anyOutputModels" minOccurs="0">
- <xsd:complexType>
- <xsd:sequence>
- <xsd:element name="responseStructure" type="responseStructureCapabilitiesType">
- <xsd:annotation>
- <xsd:documentation>The supported subset of the XML Schema language.</xsd:documentation>
- </xsd:annotation>
- </xsd:element>
- </xsd:sequence>
- </xsd:complexType>
- </xsd:element>
- </xsd:sequence>
- </xsd:complexType>
- </xsd:element>
- </xsd:sequence>
- </xsd:complexType>
- </xsd:element>
- </xsd:sequence>
- </xsd:complexType>
- </xsd:element>
- <xsd:element name="requests">
- <xsd:complexType>
- <xsd:sequence>
- <xsd:element name="encoding">
- <xsd:complexType>
- <xsd:sequence>
- <xsd:element name="kvp"><xsd:complexType/></xsd:element>
- <xsd:element name="xml" minOccurs="0"><xsd:complexType/></xsd:element>
- </xsd:sequence>
- </xsd:complexType>
- </xsd:element>
- <xsd:element name="globalParameters">
- <xsd:complexType>
- <xsd:sequence>
- <xsd:element name="logOnly">
- <xsd:simpleType>
- <xsd:restriction base="xsd:string">
- <xsd:enumeration value="required"/>
- <xsd:enumeration value="accepted"/>
- <xsd:enumeration value="denied"/>
- </xsd:restriction>
- </xsd:simpleType>
- </xsd:element>
- <xsd:element name="xlst" minOccurs="0"><xsd:complexType/></xsd:element>
- </xsd:sequence>
- </xsd:complexType>
- </xsd:element>
- <xsd:element name="filter" type="filterCapabilitiesType">
- <xsd:annotation>
- <xsd:documentation>Information about the supported filter operators of this
- service.</xsd:documentation>
- </xsd:annotation>
- </xsd:element>
- </xsd:sequence>
- </xsd:complexType>
- </xsd:element>
- <xsd:element name="concepts">
- <xsd:annotation>
- <xsd:documentation>The list of known conceptual schemas and their mapped
- concepts.</xsd:documentation>
- </xsd:annotation>
- <xsd:complexType>
- <xsd:sequence>
- <xsd:element name="conceptNameServers">
- <xsd:annotation>
- <xsd:documentation>The location of the alias file or
- ConceptNameServer to define simple aliases for fully qualified
- concept ids.</xsd:documentation>
- </xsd:annotation>
- <xsd:complexType>
- <xsd:sequence>
- <xsd:element name="server" type="externalResourceType" minOccurs="0" maxOccurs="unbounded">
- <xsd:annotation>
- <xsd:documentation>Multiple servers allowed. Ordered list with the first server(s) having priority over the following ones.</xsd:documentation>
- </xsd:annotation>
- </xsd:element>
- </xsd:sequence>
- </xsd:complexType>
- </xsd:element>
- <xsd:element name="schema" maxOccurs="unbounded">
- <xsd:annotation>
- <xsd:documentation>Namespace and location of a supported
- schema.</xsd:documentation>
- </xsd:annotation>
- <xsd:complexType>
- <xsd:sequence>
- <xsd:element name="mappedConcept" maxOccurs="unbounded">
- <xsd:annotation>
- <xsd:documentation>Each known and mapped concept of a
- schema listed with a boolean flag indicating if its
- searchable (default = true). The mandatory flag can
- be used to indicate that some concepts need to be
- present in response structures
- (default=false).</xsd:documentation>
- </xsd:annotation>
- <xsd:complexType>
- <xsd:complexContent>
- <xsd:extension base="qualifiedConceptReferenceType">
- <xsd:attribute name="searchable" type="xsd:boolean" use="optional" default="true"/>
- <xsd:attribute name="required" type="xsd:boolean" use="optional" default="false"/>
- <xsd:attribute name="alias" type="xsd:string" use="optional"/>
- </xsd:extension>
- </xsd:complexContent>
- </xsd:complexType>
- </xsd:element>
- </xsd:sequence>
- <xsd:attribute name="namespace" type="xsd:anyURI" use="required"/>
- <xsd:attribute name="location" type="xsd:anyURI" use="required"/>
- </xsd:complexType>
- </xsd:element>
- </xsd:sequence>
- </xsd:complexType>
- </xsd:element>
- <xsd:element name="variables">
- <xsd:complexType>
- <xsd:sequence>
- <xsd:element name="environment" minOccurs="0">
- <xsd:complexType>
- <xsd:sequence>
- <xsd:element ref="variable" minOccurs="0" maxOccurs="unbounded"/>
- <xsd:element ref="custom" minOccurs="0">
- <xsd:annotation>
- <xsd:documentation>Extension slot for other variables.</xsd:documentation>
- </xsd:annotation>
- </xsd:element>
- </xsd:sequence>
- </xsd:complexType>
- </xsd:element>
- </xsd:sequence>
- </xsd:complexType>
- </xsd:element>
- <xsd:element name="settings">
- <xsd:annotation>
- <xsd:documentation>Information about the local configuration of a
- datasource.</xsd:documentation>
- </xsd:annotation>
- <xsd:complexType>
- <xsd:sequence>
- <xsd:element name="minQueryTermLength" type="xsd:integer" minOccurs="0">
- <xsd:annotation>
- <xsd:documentation>Indicates the minimum length for wild-card
- strings used in like comparisons.</xsd:documentation>
- </xsd:annotation>
- </xsd:element>
- <xsd:element name="maxElementRepetitions" type="xsd:integer" minOccurs="0">
- <xsd:annotation>
- <xsd:documentation>Indicates the maximum number of repetitions
- allowed in responses for each repeatable element defined in
- response structures.</xsd:documentation>
- </xsd:annotation>
- </xsd:element>
- <xsd:element name="maxElementLevels" type="xsd:integer" minOccurs="0">
- <xsd:annotation>
- <xsd:documentation>Indicates the maximum number of allowed levels
- (depth) for response elements.</xsd:documentation>
- </xsd:annotation>
- </xsd:element>
- <xsd:element name="maxResponseTags" type="xsd:integer" minOccurs="0">
- <xsd:annotation>
- <xsd:documentation>Indicates the maximum number of tags that can be
- returned by responses.</xsd:documentation>
- </xsd:annotation>
- </xsd:element>
- <xsd:element name="maxResponseSize" type="xsd:integer" minOccurs="0">
- <xsd:annotation>
- <xsd:documentation>Indicates the maximum size in kilobytes allowed
- to be returned by responses.</xsd:documentation>
- </xsd:annotation>
- </xsd:element>
- <xsd:element ref="custom" minOccurs="0"/>
- </xsd:sequence>
- </xsd:complexType>
- </xsd:element>
- <xsd:element ref="custom" minOccurs="0"/>
- </xsd:sequence>
- </xsd:complexType>
-
- <xsd:complexType name="templatesCapabilitiesType">
- <xsd:sequence>
- <xsd:element name="template" maxOccurs="unbounded">
- <xsd:complexType>
- <xsd:complexContent>
- <xsd:extension base="externalResourceType">
- <xsd:attribute name="wsdl" type="xsd:anyURI">
- <xsd:annotation><xsd:documentation>URL pointing to a WSDL file describing this template interface</xsd:documentation></xsd:annotation>
- </xsd:attribute>
- </xsd:extension>
- </xsd:complexContent>
- </xsd:complexType>
- </xsd:element>
- </xsd:sequence>
- </xsd:complexType>
- <xsd:complexType name="responseStructureCapabilitiesType">
- <xsd:annotation>
- <xsd:documentation>A complete indication about what subset of the response structure
- specification is supported by a service.</xsd:documentation>
- </xsd:annotation>
- <xsd:sequence>
- <xsd:element name="basicSchemaLanguage">
- <xsd:annotation>
- <xsd:documentation>This includes the following xml schema tags: schema incl
- target namespace, element incl min/maxOccurs, attribute incl minOccurs,
- sequence, all If defined locally it should also include complexType +
- simpleType definitions incl complexContent +
- simpleContent</xsd:documentation>
- </xsd:annotation>
- <xsd:complexType/>
- </xsd:element>
- <xsd:element name="choice" minOccurs="0">
- <xsd:complexType/>
- </xsd:element>
- <xsd:element name="group" minOccurs="0">
- <xsd:annotation>
- <xsd:documentation>local group definitions without global referencing</xsd:documentation>
- </xsd:annotation>
- <xsd:complexType/>
- </xsd:element>
- <xsd:element name="import" minOccurs="0">
- <xsd:complexType/>
- </xsd:element>
- <xsd:element name="references" minOccurs="0">
- <xsd:annotation>
- <xsd:documentation>The global use of the tags grouped here when locally
- referenced via the "ref" attribute.</xsd:documentation>
- </xsd:annotation>
- <xsd:complexType>
- <xsd:sequence minOccurs="0">
- <xsd:element name="element" minOccurs="0">
- <xsd:complexType/>
- </xsd:element>
- <xsd:element name="attribute" minOccurs="0">
- <xsd:complexType/>
- </xsd:element>
- <xsd:element name="group" minOccurs="0">
- <xsd:complexType/>
- </xsd:element>
- <xsd:element name="attributeGroup" minOccurs="0">
- <xsd:complexType/>
- </xsd:element>
- <xsd:element name="complexType" minOccurs="0">
- <xsd:complexType/>
- </xsd:element>
- <xsd:element name="simpleType" minOccurs="0">
- <xsd:complexType>
- <xsd:sequence minOccurs="0">
- <xsd:element name="list" minOccurs="0">
- <xsd:complexType/>
- </xsd:element>
- <xsd:element name="union" minOccurs="0">
- <xsd:complexType/>
- </xsd:element>
- </xsd:sequence>
- </xsd:complexType>
- </xsd:element>
- </xsd:sequence>
- </xsd:complexType>
- </xsd:element>
- <xsd:element name="simpleTypes" minOccurs="0">
- <xsd:complexType>
- <xsd:sequence minOccurs="0">
- <xsd:element name="stringTypes" minOccurs="0">
- <xsd:complexType>
- <xsd:sequence minOccurs="0">
- <xsd:element name="string" minOccurs="0">
- <xsd:complexType/>
- </xsd:element>
- <xsd:element name="normalizedString" minOccurs="0">
- <xsd:complexType/>
- </xsd:element>
- <xsd:element name="token" minOccurs="0">
- <xsd:complexType/>
- </xsd:element>
- <xsd:element name="language" minOccurs="0">
- <xsd:complexType/>
- </xsd:element>
- <xsd:element name="Name" minOccurs="0">
- <xsd:complexType/>
- </xsd:element>
- <xsd:element name="NCName" minOccurs="0">
- <xsd:complexType/>
- </xsd:element>
- <xsd:element name="NMToken" minOccurs="0">
- <xsd:complexType/>
- </xsd:element>
- <xsd:element name="NMTokens" minOccurs="0">
- <xsd:complexType/>
- </xsd:element>
- <xsd:element name="ID" minOccurs="0">
- <xsd:complexType/>
- </xsd:element>
- <xsd:element name="IDREF" minOccurs="0">
- <xsd:complexType/>
- </xsd:element>
- <xsd:element name="IDREFS" minOccurs="0">
- <xsd:complexType/>
- </xsd:element>
- <xsd:element name="ENTITY" minOccurs="0">
- <xsd:complexType/>
- </xsd:element>
- <xsd:element name="ENTITIES" minOccurs="0">
- <xsd:complexType/>
- </xsd:element>
- </xsd:sequence>
- </xsd:complexType>
- </xsd:element>
- <xsd:element name="numericTypes" minOccurs="0">
- <xsd:complexType>
- <xsd:sequence minOccurs="0">
- <xsd:element name="float" minOccurs="0">
- <xsd:complexType/>
- </xsd:element>
- <xsd:element name="double" minOccurs="0">
- <xsd:complexType/>
- </xsd:element>
- <xsd:element name="decimal" minOccurs="0">
- <xsd:complexType/>
- </xsd:element>
- <xsd:element name="integerTypes" minOccurs="0">
- <xsd:complexType>
- <xsd:sequence minOccurs="0">
- <xsd:element name="integer" minOccurs="0">
- <xsd:complexType/>
- </xsd:element>
- <xsd:element name="long" minOccurs="0">
- <xsd:complexType/>
- </xsd:element>
- <xsd:element name="int" minOccurs="0"/>
- <xsd:element name="short" minOccurs="0">
- <xsd:complexType/>
- </xsd:element>
- <xsd:element name="byte" minOccurs="0">
- <xsd:complexType/>
- </xsd:element>
- <xsd:element name="positiveInteger" minOccurs="0">
- <xsd:complexType/>
- </xsd:element>
- <xsd:element name="nonPositiveInteger" minOccurs="0">
- <xsd:complexType/>
- </xsd:element>
- <xsd:element name="negativeInteger" minOccurs="0">
- <xsd:complexType/>
- </xsd:element>
- <xsd:element name="nonNegativeInteger" minOccurs="0">
- <xsd:complexType/>
- </xsd:element>
- <xsd:element name="unsignedLong" minOccurs="0">
- <xsd:complexType/>
- </xsd:element>
- <xsd:element name="unsignedInt" minOccurs="0">
- <xsd:complexType/>
- </xsd:element>
- <xsd:element name="unsignedShort" minOccurs="0">
- <xsd:complexType/>
- </xsd:element>
- <xsd:element name="unsignedByte" minOccurs="0">
- <xsd:complexType/>
- </xsd:element>
- </xsd:sequence>
- </xsd:complexType>
- </xsd:element>
- </xsd:sequence>
- </xsd:complexType>
- </xsd:element>
- <xsd:element name="dateTimeTypes" minOccurs="0">
- <xsd:complexType>
- <xsd:sequence minOccurs="0">
- <xsd:element name="duration" minOccurs="0">
- <xsd:complexType/>
- </xsd:element>
- <xsd:element name="dateTime" minOccurs="0">
- <xsd:complexType/>
- </xsd:element>
- <xsd:element name="time" minOccurs="0">
- <xsd:complexType/>
- </xsd:element>
- <xsd:element name="date" minOccurs="0">
- <xsd:complexType/>
- </xsd:element>
- <xsd:element name="gYearMonth" minOccurs="0">
- <xsd:complexType/>
- </xsd:element>
- <xsd:element name="gYear" minOccurs="0">
- <xsd:complexType/>
- </xsd:element>
- <xsd:element name="gMonthDay" minOccurs="0">
- <xsd:complexType/>
- </xsd:element>
- <xsd:element name="gDay" minOccurs="0">
- <xsd:complexType/>
- </xsd:element>
- <xsd:element name="gMonth" minOccurs="0">
- <xsd:complexType/>
- </xsd:element>
- </xsd:sequence>
- </xsd:complexType>
- </xsd:element>
- <xsd:element name="miscTypes" minOccurs="0">
- <xsd:complexType>
- <xsd:sequence minOccurs="0">
- <xsd:element name="boolean" minOccurs="0">
- <xsd:complexType/>
- </xsd:element>
- <xsd:element name="base64Binary" minOccurs="0">
- <xsd:complexType/>
- </xsd:element>
- <xsd:element name="hexBinary" minOccurs="0">
- <xsd:complexType/>
- </xsd:element>
- <xsd:element name="anyURI" minOccurs="0">
- <xsd:complexType/>
- </xsd:element>
- <xsd:element name="QName" minOccurs="0">
- <xsd:complexType/>
- </xsd:element>
- </xsd:sequence>
- </xsd:complexType>
- </xsd:element>
- </xsd:sequence>
- </xsd:complexType>
- </xsd:element>
- <xsd:element name="extension" minOccurs="0">
- <xsd:complexType/>
- </xsd:element>
- <xsd:element name="restriction" minOccurs="0">
- <xsd:complexType>
- <xsd:sequence minOccurs="0">
- <xsd:element name="minInclusive" minOccurs="0">
- <xsd:complexType/>
- </xsd:element>
- <xsd:element name="maxInclusive" minOccurs="0">
- <xsd:complexType/>
- </xsd:element>
- <xsd:element name="minExclusive" minOccurs="0">
- <xsd:complexType/>
- </xsd:element>
- <xsd:element name="maxExclusive" minOccurs="0">
- <xsd:complexType/>
- </xsd:element>
- <xsd:element name="fractionDigits" minOccurs="0">
- <xsd:complexType/>
- </xsd:element>
- <xsd:element name="totalDigits" minOccurs="0">
- <xsd:complexType/>
- </xsd:element>
- <xsd:element name="enumeration" minOccurs="0">
- <xsd:complexType/>
- </xsd:element>
- <xsd:element name="whiteSpace" minOccurs="0">
- <xsd:complexType/>
- </xsd:element>
- <xsd:element name="pattern" minOccurs="0">
- <xsd:complexType/>
- </xsd:element>
- <xsd:element name="length" minOccurs="0">
- <xsd:complexType/>
- </xsd:element>
- <xsd:element name="minLength" minOccurs="0">
- <xsd:complexType/>
- </xsd:element>
- <xsd:element name="maxLength" minOccurs="0">
- <xsd:complexType/>
- </xsd:element>
- </xsd:sequence>
- </xsd:complexType>
- </xsd:element>
- <xsd:element name="substitutionGroup" minOccurs="0">
- <xsd:complexType/>
- </xsd:element>
- <xsd:element name="constraints" minOccurs="0">
- <xsd:complexType>
- <xsd:sequence minOccurs="0">
- <xsd:element name="field" minOccurs="0">
- <xsd:complexType/>
- </xsd:element>
- <xsd:element name="selector" minOccurs="0">
- <xsd:complexType/>
- </xsd:element>
- <xsd:element name="unique" minOccurs="0">
- <xsd:complexType/>
- </xsd:element>
- <xsd:element name="key" minOccurs="0">
- <xsd:complexType/>
- </xsd:element>
- <xsd:element name="keyref" minOccurs="0">
- <xsd:complexType/>
- </xsd:element>
- </xsd:sequence>
- </xsd:complexType>
- </xsd:element>
- </xsd:sequence>
- </xsd:complexType>
- <xsd:complexType name="filterCapabilitiesType">
- <xsd:annotation>
- <xsd:documentation>A complete indication about what filter operators are supported by a
- service.</xsd:documentation>
- </xsd:annotation>
- <xsd:sequence>
- <xsd:element name="encoding" minOccurs="0">
- <xsd:complexType>
- <xsd:sequence>
- <xsd:element name="expression">
- <xsd:complexType>
- <xsd:sequence>
- <xsd:element name="concept">
- <xsd:complexType/>
- </xsd:element>
- <xsd:element name="literal">
- <xsd:complexType/>
- </xsd:element>
- <xsd:element name="parameter">
- <xsd:complexType/>
- </xsd:element>
- <xsd:element name="variable">
- <xsd:complexType/>
- </xsd:element>
- <xsd:element name="arithmetic">
- <xsd:annotation>
- <xsd:documentation>Support +-*/ in filter
- expressions.</xsd:documentation>
- </xsd:annotation>
- <xsd:complexType>
- <xsd:sequence>
- <xsd:element name="add" minOccurs="0">
- <xsd:complexType/>
- </xsd:element>
- <xsd:element name="sub" minOccurs="0">
- <xsd:complexType/>
- </xsd:element>
- <xsd:element name="div" minOccurs="0">
- <xsd:complexType/>
- </xsd:element>
- <xsd:element name="mul" minOccurs="0">
- <xsd:complexType/>
- </xsd:element>
- <xsd:element ref="custom" minOccurs="0"/>
- </xsd:sequence>
- </xsd:complexType>
- </xsd:element>
- <xsd:element ref="custom" minOccurs="0"/>
- </xsd:sequence>
- </xsd:complexType>
- </xsd:element>
- <xsd:element name="booleanOperators">
- <xsd:complexType>
- <xsd:sequence>
- <xsd:element name="logical">
- <xsd:annotation>
- <xsd:documentation>This includes all 3 operators. AND, OR,
- NOT</xsd:documentation>
- </xsd:annotation>
- <xsd:complexType>
- <xsd:sequence>
- <xsd:element name="not">
- <xsd:complexType/>
- </xsd:element>
- <xsd:element name="and">
- <xsd:complexType/>
- </xsd:element>
- <xsd:element name="or">
- <xsd:complexType/>
- </xsd:element>
- <xsd:element ref="custom" minOccurs="0"/>
- </xsd:sequence>
- </xsd:complexType>
- </xsd:element>
- <xsd:element name="comparative">
- <xsd:complexType>
- <xsd:sequence>
- <xsd:element name="equals">
- <xsd:annotation>
- <xsd:documentation>Recommended to be case
- sensitive.</xsd:documentation>
- </xsd:annotation>
- <xsd:complexType>
- <xsd:attribute name="caseSensitive" type="xsd:boolean" use="optional" default="true"/>
- </xsd:complexType>
- </xsd:element>
- <xsd:element name="greaterThan">
- <xsd:complexType/>
- </xsd:element>
- <xsd:element name="greaterThanOrEquals">
- <xsd:complexType/>
- </xsd:element>
- <xsd:element name="lessThan">
- <xsd:complexType/>
- </xsd:element>
- <xsd:element name="lessThanOrEquals">
- <xsd:complexType/>
- </xsd:element>
- <xsd:element name="in">
- <xsd:complexType/>
- </xsd:element>
- <xsd:element name="isNull">
- <xsd:complexType/>
- </xsd:element>
- <xsd:element name="like">
- <xsd:annotation>
- <xsd:documentation>Recommended to be case insensitive.
- Wildcard is always asterisk *.</xsd:documentation>
- </xsd:annotation>
- <xsd:complexType>
- <xsd:attribute name="caseSensitive" type="xsd:boolean" use="optional" default="false"/>
- </xsd:complexType>
- </xsd:element>
- <xsd:element ref="custom" minOccurs="0"/>
- </xsd:sequence>
- </xsd:complexType>
- </xsd:element>
- <xsd:element ref="custom" minOccurs="0"/>
- </xsd:sequence>
- </xsd:complexType>
- </xsd:element>
- </xsd:sequence>
- </xsd:complexType>
- </xsd:element>
- </xsd:sequence>
- </xsd:complexType>
- <!-- ===== METADATA ===== -->
- <xsd:element name="metadata" type="metadataResultType">
- <xsd:annotation>
- <xsd:documentation>Global element to validate external metadata XML
- files.</xsd:documentation>
- </xsd:annotation>
- </xsd:element>
- <xsd:complexType name="metadataResultType">
- <xsd:annotation>
- <xsd:documentation>Format of metadata operation result.</xsd:documentation>
- </xsd:annotation>
- <xsd:sequence>
- <xsd:element ref="dc:title">
- <xsd:annotation>
- <xsd:documentation>The name of this service possibly in different
- languages.</xsd:documentation>
- </xsd:annotation>
- </xsd:element>
- <xsd:element ref="dc:type">
- <xsd:annotation>
- <xsd:documentation>The nature or genre of the content of the resource.
- http://purl.org/dc/dcmitype/Service</xsd:documentation>
- </xsd:annotation>
- </xsd:element>
- <xsd:element name="accesspoint" type="xsd:anyURI">
- <xsd:annotation>
- <xsd:documentation>The URL of the access point of this
- service.</xsd:documentation>
- </xsd:annotation>
- </xsd:element>
- <xsd:element ref="dc:description">
- <xsd:annotation>
- <xsd:documentation>Description may include but is not limited to: an abstract,
- table of contents, reference to a graphical representation
- of content or a free-text account of the content.</xsd:documentation>
- </xsd:annotation>
- </xsd:element>
- <xsd:element ref="dc:language">
- <xsd:annotation>
- <xsd:documentation></xsd:documentation>
- </xsd:annotation>
- </xsd:element>
- <xsd:element ref="dc:subject" minOccurs="0">
- <xsd:annotation>
- <xsd:documentation>Subject and Keywords.Typically, a Subject will be expressed as keywords,
- key phrases or classification codes that describe a topic
- of the resource. Recommended best practice is to select
- a value from a controlled vocabulary or formal
- classification scheme</xsd:documentation>
- </xsd:annotation>
- </xsd:element>
- <xsd:element ref="dct:bibliographicCitation" minOccurs="0">
- <xsd:annotation>
- <xsd:documentation>Recommended practice is to include sufficient
- bibliographic detail to identify the resource as
- unambiguously as possible, whether or not the
- citation is in a standard form.</xsd:documentation>
- </xsd:annotation>
- </xsd:element>
- <xsd:element ref="dc:rights" minOccurs="0">
- <xsd:annotation>
- <xsd:documentation>Information about who can access the
- resource or an indication of its security status.</xsd:documentation>
- </xsd:annotation>
- </xsd:element>
- <xsd:element ref="dct:modified" minOccurs="0">
- <xsd:annotation>
- <xsd:documentation></xsd:documentation>
- </xsd:annotation>
- </xsd:element>
- <xsd:element ref="dct:created" minOccurs="0">
- <xsd:annotation>
- <xsd:documentation></xsd:documentation>
- </xsd:annotation>
- </xsd:element>
- <xsd:element name="indexingPreferences" minOccurs="0">
- <xsd:complexType>
- <xsd:attribute name="startTime" type="xsd:time"/>
- <xsd:attribute name="maxDuration" type="xsd:duration"/>
- <xsd:attribute name="frequency" type="xsd:duration" />
- </xsd:complexType>
- </xsd:element>
- <xsd:element name="relatedEntity" type="relatedEntityInformationType" maxOccurs="unbounded">
- <xsd:annotation>
- <xsd:documentation>Entities (companies, organisations, institutions) related to
- this service with their respective roles, e.g. publisher, data
- supplier</xsd:documentation>
- </xsd:annotation>
- </xsd:element>
- <xsd:element ref="custom" minOccurs="0"/>
- </xsd:sequence>
- <xsd:attribute ref="xml:lang" use="optional"/>
- </xsd:complexType>
- <xsd:complexType name="relatedEntityInformationType">
- <xsd:annotation>
- <xsd:documentation>Information about an entity that may have some relationship with the
- service being provided.</xsd:documentation>
- </xsd:annotation>
- <xsd:sequence>
- <xsd:element name="role" type="entityRoleExtensionType" maxOccurs="unbounded">
- <xsd:annotation>
- <xsd:documentation>Used to specify the roles of a related entity, such as "data
- supplier", "technical host", etc.</xsd:documentation>
- </xsd:annotation>
- </xsd:element>
- <xsd:element name="entity" type="entityInformationType"/>
- </xsd:sequence>
- </xsd:complexType>
- <xsd:simpleType name="entityRoleType">
- <xsd:restriction base="xsd:string">
- <xsd:enumeration value="data supplier"/>
- <xsd:enumeration value="technical host"/>
- </xsd:restriction>
- </xsd:simpleType>
- <xsd:simpleType name="entityRoleExtensionType">
- <xsd:union memberTypes="entityRoleType xsd:string"/>
- </xsd:simpleType>
- <xsd:element name="entity" type="entityInformationType">
- <xsd:annotation>
- <xsd:documentation>Global element to validate external XML representations of entities.
- An entity here could be a company, organisation, institution, or
- person.</xsd:documentation>
- </xsd:annotation>
- </xsd:element>
- <xsd:simpleType name="contactRoleType">
- <xsd:restriction base="xsd:string">
- <xsd:enumeration value="data administrator"/>
- <xsd:enumeration value="system administrator"/>
- </xsd:restriction>
- </xsd:simpleType>
- <xsd:simpleType name="contactRoleExtensionType">
- <xsd:union memberTypes="contactRoleType xsd:string"/>
- </xsd:simpleType>
- <xsd:complexType name="entityInformationType">
- <xsd:annotation>
- <xsd:documentation>Entity information.</xsd:documentation>
- </xsd:annotation>
- <xsd:sequence>
- <xsd:element name="identifier" type="xsd:string" minOccurs="0">
- <xsd:annotation>
- <xsd:documentation>A global unique identifier for the entity.</xsd:documentation>
- </xsd:annotation>
- </xsd:element>
- <xsd:element name="name" type="languageAwareElementType" maxOccurs="unbounded">
- <xsd:annotation>
- <xsd:documentation>The name of the entity possibly in different
- languages.</xsd:documentation>
- </xsd:annotation>
- </xsd:element>
- <xsd:element name="acronym" type="xsd:string" minOccurs="0">
- <xsd:annotation>
- <xsd:documentation>An acronym for the entity name</xsd:documentation>
- </xsd:annotation>
- </xsd:element>
- <xsd:element name="logoURL" type="xsd:anyURI" minOccurs="0">
- <xsd:annotation>
- <xsd:documentation>A URL to a small logo of the entity.</xsd:documentation>
- </xsd:annotation>
- </xsd:element>
- <xsd:element name="description" type="languageAwareElementType" minOccurs="0" maxOccurs="unbounded">
- <xsd:annotation>
- <xsd:documentation>The description of the entity possibly in different
- languages.</xsd:documentation>
- </xsd:annotation>
- </xsd:element>
- <xsd:element name="address" type="xsd:string" minOccurs="0"/>
- <xsd:element name="relatedInformation" type="xsd:anyURI" minOccurs="0" maxOccurs="unbounded">
- <xsd:annotation>
- <xsd:documentation>Other related information about this entity found at the
- specified URL.</xsd:documentation>
- </xsd:annotation>
- </xsd:element>
- <xsd:element name="hasContact" maxOccurs="unbounded">
- <xsd:complexType>
- <xsd:sequence>
- <xsd:element name="role" type="contactRoleExtensionType" maxOccurs="unbounded" />
- <xsd:element ref="vcard:VCARD"/>
- </xsd:sequence>
- </xsd:complexType>
- </xsd:element>
- <xsd:element ref="geo:Point" minOccurs="0">
- <xsd:annotation>
- <xsd:documentation>Location of the entity in decimal WGS84 latitude and longitude (and optional altitude) as defined by the W3C Basic Geo Vocabulary</xsd:documentation>
- </xsd:annotation>
- </xsd:element>
- <xsd:element ref="custom" minOccurs="0"/>
- </xsd:sequence>
- <xsd:attribute ref="xml:lang" use="optional"/>
- </xsd:complexType>
- <!-- ===== INVENTORY===== -->
- <xsd:element name="inventory" type="inventoryResultType" />
- <xsd:complexType name="inventoryResultType">
- <xsd:annotation>
- <xsd:documentation>Format of inventory operation result.</xsd:documentation>
- </xsd:annotation>
- <xsd:sequence>
- <xsd:element name="concepts">
- <xsd:complexType>
- <xsd:sequence>
- <xsd:element ref="concept" maxOccurs="unbounded"/>
- </xsd:sequence>
- </xsd:complexType>
- </xsd:element>
- <xsd:element name="record" minOccurs="0" maxOccurs="unbounded">
- <xsd:annotation>
- <xsd:documentation>A distinct combination of values for all "inventoried"
- concepts. The optional attribute "count" is used to count the number of
- occurrences for this distinct combination and will only be set if the count
- flag was used when requesting an inventory.</xsd:documentation>
- </xsd:annotation>
- <xsd:complexType>
- <xsd:sequence>
- <xsd:element name="value" maxOccurs="unbounded">
- <xsd:annotation>
- <xsd:documentation>A single value for a single concept. The sequence
- of the values should correspond to the sequence used in the
- request.</xsd:documentation>
- </xsd:annotation>
- <xsd:complexType>
- <xsd:simpleContent>
- <xsd:extension base="xsd:string"/>
- </xsd:simpleContent>
- </xsd:complexType>
- </xsd:element>
- </xsd:sequence>
- <xsd:attribute name="count" type="xsd:positiveInteger" use="optional"/>
- </xsd:complexType>
- </xsd:element>
- <xsd:element name="summary" type="resultSummaryType">
- <xsd:annotation>
- <xsd:documentation>Used to show information about the number of records for
- counting and paging purposes.</xsd:documentation>
- </xsd:annotation>
- </xsd:element>
- </xsd:sequence>
- </xsd:complexType>
- <!-- ===== SEARCH ===== -->
- <xsd:element name="search" type="searchResultType" />
- <xsd:complexType name="searchResultType">
- <xsd:annotation>
- <xsd:documentation>Format of search operation result.</xsd:documentation>
- </xsd:annotation>
- <xsd:sequence>
- <xsd:any/>
- <xsd:element name="summary" type="resultSummaryType">
- <xsd:annotation>
- <xsd:documentation>Used to show information about the number of records for
- counting and paging purposes.</xsd:documentation>
- </xsd:annotation>
- </xsd:element>
- </xsd:sequence>
- </xsd:complexType>
- <!-- ===== ERROR ===== -->
- <xsd:element name="error" type="diagnosticMessageType"/>
- <!-- ===== LOGGED ===== -->
- <xsd:element name="logged" type="loggedResultType"/>
- <xsd:complexType name="loggedResultType">
- <xsd:annotation>
- <xsd:documentation>Format of logged operation result indicated by setting a true logOnly attribute in the request.</xsd:documentation>
- </xsd:annotation>
- </xsd:complexType>
-</xsd:schema>
+<?xml version="1.0"?>
+<!-- $Id$ -->
+<xsd:schema targetNamespace="http://rs.tdwg.org/tapir/1.0"
+ xmlns="http://rs.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.
+ It is 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.
+ </xsd:documentation>
+ <xsd:appinfo>
+ <dc:title>TAPIR XML Schema</dc:title>
+ <dc:relation>http://www.tdwg.gbif.org/subgroups/tapir/</dc:relation>
+ </xsd:appinfo>
+ </xsd:annotation>
+ <!-- ============================================= -->
+ <!-- NAMESPACE IMPORTS -->
+ <!-- ============================================= -->
+ <xsd:import namespace="http://www.w3.org/XML/1998/namespace"
+ schemaLocation="http://www.w3.org/2001/03/xml.xsd"/>
+ <xsd:import namespace="http://purl.org/dc/elements/1.1/"
+ schemaLocation="dc.xsd"/>
+ <xsd:import namespace="http://purl.org/dc/terms/"
+ schemaLocation="dcterms.xsd"/>
+ <xsd:import namespace="http://www.w3.org/2003/01/geo/wgs84_pos#"
+ schemaLocation="w3c_geo.xsd"/>
+ <xsd:import namespace="http://www.w3.org/2001/vcard-rdf/3.0#"
+ schemaLocation="vcard.xsd"/>
+ <!-- ============================================= -->
+ <!-- SIMPLE TYPE DEFINITIONS-->
+ <!-- ============================================= -->
+ <xsd:simpleType name="simpleXPathType">
+ <xsd:annotation>
+ <xsd:documentation>A simple XPath expression used to reference XML nodes.
+ e.g. /dataset/specimen/identification/name</xsd:documentation>
+ </xsd:annotation>
+ <xsd:restriction base="xsd:string"/>
+ </xsd:simpleType>
+ <xsd:simpleType
+ name="qualifiedConceptIdType">
+ <xsd:annotation>
+ <xsd:documentation>Concept identifiers are just strings for TAPIR, so the protocol does
+ not enforce any pattern. However it is recommended to use globally, resolvable and
+ permanent unique identifiers for them. It is also recommended to avoid using
+ characters that are reserved in the "query" part of URLs, since concepts can be
+ referenced there by many TAPIR parameters and would need to be escaped. When
+ defining concepts based on xml schemas we recommend to simply concatenate the
+ namespace of the schema with the local xpath to the instance element. For example
+ /DataSets/DataSet/Units/Unit/InstitutionID in ABCD becomes
+ http://www.tdwg.org/schemas/abcd/2.06/DataSets/DataSet/Units/Unit/Instituti…
+ </xsd:documentation>
+ </xsd:annotation>
+ <xsd:restriction
+ base="xsd:string"/>
+ </xsd:simpleType>
+ <!-- ============================================= -->
+ <!-- GENERAL COMPLEX TYPE DEFINITIONS-->
+ <!-- ============================================= -->
+ <xsd:complexType name="externalResourceType">
+ <xsd:annotation>
+ <xsd:documentation>A URI that points to a document or schema referenced by TAPIR operations</xsd:documentation>
+ </xsd:annotation>
+ <xsd:attribute name="location" type="xsd:anyURI" use="required"/>
+ </xsd:complexType>
+ <xsd:complexType name="languageAwareElementType">
+ <xsd:annotation>
+ <xsd:documentation> String with a language attribute. A type for elements that may be language specific.</xsd:documentation>
+ </xsd:annotation>
+ <xsd:simpleContent>
+ <xsd:extension base="xsd:string">
+ <xsd:attribute ref="xml:lang" use="optional"/>
+ </xsd:extension>
+ </xsd:simpleContent>
+ </xsd:complexType>
+ <xsd:complexType name="nodeReferenceType">
+ <xsd:annotation>
+ <xsd:documentation>A reference to an XML node in a conceptual schema.
+ Uses a simple XPath stored as an attribute.</xsd:documentation>
+ </xsd:annotation>
+ <xsd:attribute name="path" type="simpleXPathType" use="required"/>
+ </xsd:complexType>
+ <xsd:complexType name="qualifiedConceptReferenceType">
+ <xsd:annotation>
+ <xsd:documentation>A qualified reference to a concept. Uses an attribute to hold a concept
+ and its namespace prefix or an alias as defined in qualifiedConceptIdType </xsd:documentation>
+ </xsd:annotation>
+ <xsd:attribute name="id" type="qualifiedConceptIdType" use="required"/>
+ </xsd:complexType>
+ <xsd:complexType name="softwareInformationType">
+ <xsd:annotation>
+ <xsd:documentation> Information about the software used to construct or relay a TAPIR request or response.
+ The software name and version are stored as simple string attributes.</xsd:documentation>
+ </xsd:annotation>
+ <xsd:attribute name="name" type="xsd:string" use="required"/>
+ <xsd:attribute name="version" type="xsd:string" use="required"/>
+ </xsd:complexType>
+ <xsd:complexType name="headerType">
+ <xsd:annotation>
+ <xsd:documentation>A Header is part of request and response messages. The Header describes the source of the request or response
+ and optionally its destination. It may also describe the software that sent the request or response
+ and there is a custom section for extending the information e.g. with information related to security or access.
+ The header can list several sources, where for instance, a request is cascaded through one or more portals. </xsd:documentation>
+ </xsd:annotation>
+ <xsd:sequence>
+ <xsd:element name="source" maxOccurs="unbounded">
+ <xsd:annotation>
+ <xsd:documentation>Source of this message. Repeatable to trace back all servers
+ of a possible cascading transaction, but always starting (first in the
+ sequence) with the original source, the client. Holds a URL or at least the
+ IP of the source with the timestamp when the message has been processed as
+ an attribute in ISO format.</xsd:documentation>
+ </xsd:annotation>
+ <xsd:complexType>
+ <xsd:sequence minOccurs="0">
+ <xsd:element name="software" minOccurs="0">
+ <xsd:annotation>
+ <xsd:documentation>The optional software element should indicate the
+ software including its version, used to generate or modify the
+ document. It may also list any dependencies on libraries and other software</xsd:documentation>
+ </xsd:annotation>
+ <xsd:complexType>
+ <xsd:complexContent>
+ <xsd:extension base="softwareInformationType">
+ <xsd:sequence minOccurs="0">
+ <xsd:element name="dependencies" minOccurs="0">
+ <xsd:annotation>
+ <xsd:documentation>Represents set of dependecies for this software.</xsd:documentation>
+ </xsd:annotation>
+ <xsd:complexType>
+ <xsd:sequence minOccurs="0">
+ <xsd:element name="dependency" type="softwareInformationType" minOccurs="0" maxOccurs="unbounded">
+ <xsd:annotation>
+ <xsd:documentation>A single dependency for the software, e.g. a library, framework, component, OS, etc.</xsd:documentation>
+ </xsd:annotation>
+ </xsd:element>
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ </xsd:sequence>
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+ </xsd:element>
+ </xsd:sequence>
+ <xsd:attribute name="accesspoint" type="xsd:anyURI" use="required"/>
+ <xsd:attribute name="sendtime" type="xsd:dateTime" use="required"/>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="destination" type="xsd:string" minOccurs="0">
+ <xsd:annotation>
+ <xsd:documentation>Destination of the message. Takes a string which usually will
+ be a URI but can be anything e.g. include resource names etc. It is optional
+ and an implementation is free to ignore it.</xsd:documentation>
+ </xsd:annotation>
+ </xsd:element>
+ <xsd:element ref="custom" minOccurs="0"/>
+ </xsd:sequence>
+ </xsd:complexType>
+ <xsd:complexType name="diagnosticMessageType">
+ <xsd:annotation>
+ <xsd:documentation>A diagnostic message from the service with message type and time presented as attributes
+ including code, level ( with enumerated types e.g. error, warning, additional
+ information, etc). and a time stamp</xsd:documentation>
+ </xsd:annotation>
+ <xsd:simpleContent>
+ <xsd:extension base="xsd:string">
+ <xsd:attribute name="code" type="xsd:string" use="optional"/>
+ <xsd:attribute name="level" use="required">
+ <xsd:simpleType>
+ <xsd:restriction base="xsd:string">
+ <xsd:enumeration value="debug"/>
+ <xsd:enumeration value="info"/>
+ <xsd:enumeration value="warn"/>
+ <xsd:enumeration value="error"/>
+ <xsd:enumeration value="fatal"/>
+ </xsd:restriction>
+ </xsd:simpleType>
+ </xsd:attribute>
+ <xsd:attribute name="time" type="xsd:dateTime" use="optional"/>
+ </xsd:extension>
+ </xsd:simpleContent>
+ </xsd:complexType>
+ <xsd:complexType name="diagnosticsListType">
+ <xsd:annotation>
+ <xsd:documentation>Provides the means to present a list of diagnostic messages from the service.</xsd:documentation>
+ </xsd:annotation>
+ <xsd:sequence minOccurs="0">
+ <xsd:element name="diagnostic" type="diagnosticMessageType" minOccurs="0" maxOccurs="unbounded"/>
+ </xsd:sequence>
+ </xsd:complexType>
+ <xsd:element name="custom">
+ <xsd:annotation>
+ <xsd:documentation>Extension slot for additional information not defined in the schema.</xsd:documentation>
+ </xsd:annotation>
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:any minOccurs="0" maxOccurs="unbounded">
+ <xsd:annotation>
+ <xsd:documentation>For any custom extension. E.g what security related
+ capabilities does the provider have? Encryption, access restriction,
+ etc.</xsd:documentation>
+ </xsd:annotation>
+ </xsd:any>
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <!-- ============================================= -->
+ <!--EXTERNAL QUERY TEMPLATE DEFINITIONS-->
+ <!-- ============================================= -->
+ <xsd:element name="outputModel">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:group ref="extResourceDocumentationGroup"/>
+ <xsd:group ref="outputModelGroup"/>
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:complexType name="outputModelType">
+ <xsd:annotation>
+ <xsd:documentation>Response structures are part of a model definition which
+ includes three sections: a record schema (structure), a mapping section for linking to the datasource model
+ and an indexing section that is used as a reference for record counting and paging responses.
+ The outputModel template is a separate, external XML document, called by a search operation,
+ that uses 'outputModel' as the root element. </xsd:documentation>
+ </xsd:annotation>
+ <xsd:group ref="outputModelGroup"/>
+ </xsd:complexType>
+ <xsd:group name="outputModelGroup">
+ <xsd:sequence>
+ <xsd:element name="structure">
+ <xsd:annotation>
+ <xsd:documentation>The response structure definition. By default this should be
+ a subset of the XML Schema language but others such as RELAX NG could be
+ supported in the future.</xsd:documentation>
+ </xsd:annotation>
+ <xsd:complexType>
+ <xsd:choice>
+ <xsd:element name="schema" type="externalResourceType"/>
+ <xsd:any namespace="##other">
+ <xsd:annotation>
+ <xsd:documentation>A structure represented through a subset of the
+ XML Schema language defining how elements should be
+ returned.</xsd:documentation>
+ </xsd:annotation>
+ </xsd:any>
+ </xsd:choice>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="indexingElement" maxOccurs="unbounded">
+ <xsd:annotation>
+ <xsd:documentation>A simple XPath pointing to a response structure node that
+ should be used as a reference for counting.</xsd:documentation>
+ </xsd:annotation>
+ <xsd:complexType>
+ <xsd:attribute name="path" type="simpleXPathType" use="required"/>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="mapping">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="node" minOccurs="0" maxOccurs="unbounded">
+ <xsd:annotation>
+ <xsd:documentation>Maps a node from the structure definition to a
+ list of qualified concepts, literals or environment variables,
+ which should be concatenated in the output. If the automapping attribute
+ is set to 'true' then the server application should match concepts with the same namespace and path.
+ For instance if the wrapper and the search request are both using a canonical ABCD model or Darwin Core Model,
+ then concepts will be automatically recognised.</xsd:documentation>
+ </xsd:annotation>
+ <xsd:complexType>
+ <xsd:choice maxOccurs="unbounded">
+ <xsd:annotation>
+ <xsd:documentation>Multiple mappings represent concatenation.</xsd:documentation>
+ </xsd:annotation>
+ <xsd:element ref="concept"/>
+ <xsd:element ref="literal"/>
+ <xsd:element ref="variable"/>
+ </xsd:choice>
+ <xsd:attribute name="path" type="simpleXPathType" use="required"/>
+ </xsd:complexType>
+ </xsd:element>
+ </xsd:sequence>
+ <xsd:attribute name="automapping" type="xsd:boolean" use="optional" default="false"/>
+ </xsd:complexType>
+ </xsd:element>
+ </xsd:sequence>
+ </xsd:group>
+ <xsd:element name="queryTemplate" abstract="true"/>
+ <xsd:complexType name="extResourceDocumentationType">
+ <xsd:group ref="extResourceDocumentationGroup"/>
+ </xsd:complexType>
+ <xsd:group name="extResourceDocumentationGroup">
+ <xsd:sequence>
+ <xsd:element name="label" type="xsd:string" minOccurs="0"/>
+ <xsd:element name="documentation" type="xsd:string" minOccurs="0"/>
+ </xsd:sequence>
+ </xsd:group>
+ <xsd:element name="searchTemplate" substitutionGroup="queryTemplate" type="searchTemplateType"/>
+ <xsd:group name="searchTemplateGroup">
+ <xsd:sequence>
+ <xsd:choice>
+ <xsd:element name="externalOutputModel" type="externalResourceType"></xsd:element>
+ <xsd:element name="outputModel" type="outputModelType"></xsd:element>
+ </xsd:choice>
+ <xsd:element name="partial" minOccurs="0">
+ <xsd:annotation>
+ <xsd:documentation>Select only a subset of the
+ entire response structure to be used in the
+ response. Useful for working with large cached
+ external structures referenced via URLs. Select
+ branch nodes if you want all concepts below
+ included. A partial search must take care that
+ response documents still validate. Thus
+ mandatory elements or attributes of the response
+ structure, which are not listed in the partial
+ search ,must be included in the response
+ content.</xsd:documentation>
+ </xsd:annotation>
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="node" type="nodeReferenceType" maxOccurs="unbounded">
+ <xsd:annotation>
+ <xsd:documentation>A node taken from the response structure definition.</xsd:documentation>
+ </xsd:annotation>
+ </xsd:element>
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element ref="filter" minOccurs="0"/>
+ <xsd:element name="orderBy" minOccurs="0">
+ <xsd:annotation>
+ <xsd:documentation>A list of qualified concepts to be used for ordering the model
+ results.</xsd:documentation>
+ </xsd:annotation>
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="concept" maxOccurs="unbounded">
+ <xsd:annotation>
+ <xsd:documentation>Repeatable element. One or more concepts to be used for ordering the
+ model. If the attribute "descend" is set to true, a descending
+ ordering will be used instead of the default ascending one.</xsd:documentation>
+ </xsd:annotation>
+ <xsd:complexType>
+ <xsd:complexContent>
+ <xsd:extension base="conceptType">
+ <xsd:attribute name="descend" type="xsd:boolean" use="optional" default="false"/>
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+ </xsd:element>
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ </xsd:sequence>
+ </xsd:group>
+ <xsd:complexType name="searchTemplateType">
+ <xsd:annotation>
+ <xsd:documentation>TAPIR can use a template for configuring search requests.
+ The Template is accessed, as an external document, by its URI</xsd:documentation>
+ </xsd:annotation>
+ <xsd:complexContent>
+ <xsd:extension base="extResourceDocumentationType">
+ <xsd:sequence>
+ <xsd:group ref="searchTemplateGroup" />
+ </xsd:sequence>
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+ <xsd:element name="inventoryTemplate" substitutionGroup="queryTemplate"
+ type="inventoryTemplateType"/>
+ <xsd:group name="inventoryTemplateGroup">
+ <xsd:annotation>
+ <xsd:documentation>TAPIR can use a template for configuring inventory requests.
+ The Template is accessed, as an external document, by its URI</xsd:documentation>
+ </xsd:annotation>
+ <xsd:sequence>
+ <xsd:element name="concepts">
+ <xsd:annotation>
+ <xsd:documentation>Used to specify a list of concepts to make an inventory on.</xsd:documentation>
+ </xsd:annotation>
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="concept" type="qualifiedConceptReferenceType" minOccurs="1" maxOccurs="unbounded">
+ <xsd:annotation>
+ <xsd:documentation>A single qualified concept</xsd:documentation>
+ </xsd:annotation>
+ </xsd:element>
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element ref="filter" minOccurs="0"/>
+ </xsd:sequence>
+ </xsd:group>
+ <xsd:complexType name="inventoryTemplateType">
+ <xsd:annotation>
+ <xsd:documentation>TAPIR can use a template for configuring inventory requests.
+ The Template is accessed, as an external document, by its URI</xsd:documentation>
+ </xsd:annotation>
+ <xsd:complexContent>
+ <xsd:extension base="extResourceDocumentationType">
+ <xsd:sequence>
+ <xsd:group ref="inventoryTemplateGroup" />
+ </xsd:sequence>
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+ <!-- ============================================= -->
+ <!-- FILTER DEFINITIONS-->
+ <!-- ============================================= -->
+ <xsd:element name="filter">
+ <xsd:annotation>
+ <xsd:documentation>An abstract filter encoding that could be translated to other local
+ query languages. Can be used by search and inventory operations to specify
+ searching conditions.</xsd:documentation>
+ </xsd:annotation>
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element ref="booleanOP"/>
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <!-- ===== EXPRESSIONS ===== -->
+ <xsd:element name="expression" abstract="true">
+ <xsd:annotation>
+ <xsd:documentation>An abstract element representing any expression (literal, parameter
+ or concept).</xsd:documentation>
+ </xsd:annotation>
+ </xsd:element>
+ <!-- ===== SIMPLE EXPRESSIONS ===== -->
+ <xsd:element name="simpleExpression" abstract="true" substitutionGroup="expression"/>
+ <xsd:element name="literal" substitutionGroup="simpleExpression">
+ <xsd:annotation>
+ <xsd:documentation>An element to represent literals / values. Substitutes an abstract
+ expression element.</xsd:documentation>
+ </xsd:annotation>
+ <xsd:complexType>
+ <xsd:attribute name="value" type="xsd:string" use="required"/>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="parameter" substitutionGroup="simpleExpression">
+ <xsd:annotation>
+ <xsd:documentation>An element to represent external parameters e.g. via CGI. Substitutes
+ an abstract expression element.</xsd:documentation>
+ </xsd:annotation>
+ <xsd:complexType>
+ <xsd:attribute name="name" type="xsd:string" use="required"/>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="concept" type="conceptType" substitutionGroup="simpleExpression">
+ <xsd:annotation>
+ <xsd:documentation>An element to represent a concept of one specific conceptual schema.
+ Substitutes an abstract expression element.</xsd:documentation>
+ </xsd:annotation>
+ </xsd:element>
+ <xsd:complexType name="conceptType">
+ <xsd:complexContent>
+ <xsd:extension base="qualifiedConceptReferenceType"/>
+ </xsd:complexContent>
+ </xsd:complexType>
+ <!-- ===== COMPLEX EXPRESSIONS ===== -->
+ <xsd:element name="complexExpression" abstract="true" substitutionGroup="expression"/>
+ <!-- === ARITHMETIC EXPRESSION OPERATORS ===-->
+ <xsd:element name="AOP" abstract="true" substitutionGroup="complexExpression">
+ <xsd:annotation>
+ <xsd:documentation>An abstract element representing any Arithmetic operator.</xsd:documentation>
+ </xsd:annotation>
+ </xsd:element>
+ <xsd:complexType name="binaryAOPType">
+ <xsd:annotation>
+ <xsd:documentation>A binary arithmetic operator with the first expression argument being
+ the left argument of the operation.</xsd:documentation>
+ </xsd:annotation>
+ <xsd:sequence>
+ <xsd:element ref="expression"/>
+ <xsd:element ref="expression"/>
+ </xsd:sequence>
+ </xsd:complexType>
+ <xsd:element name="add" type="binaryAOPType" substitutionGroup="AOP">
+ <xsd:annotation>
+ <xsd:documentation>The arithmetic addition (+) operator.</xsd:documentation>
+ </xsd:annotation>
+ </xsd:element>
+ <xsd:element name="sub" type="binaryAOPType" substitutionGroup="AOP">
+ <xsd:annotation>
+ <xsd:documentation>The arithmetic subtraction (-) operator.</xsd:documentation>
+ </xsd:annotation>
+ </xsd:element>
+ <xsd:element name="mul" type="binaryAOPType" substitutionGroup="AOP">
+ <xsd:annotation>
+ <xsd:documentation>The arithmetic multiplication (*) operator.</xsd:documentation>
+ </xsd:annotation>
+ </xsd:element>
+ <xsd:element name="div" type="binaryAOPType" substitutionGroup="AOP">
+ <xsd:annotation>
+ <xsd:documentation>The arithmetic division (/) operator.</xsd:documentation>
+ </xsd:annotation>
+ </xsd:element>
+ <!-- ===== ABSTRACT OPERATOR BASE TYPE ===== -->
+ <xsd:element name="booleanOP" abstract="true">
+ <xsd:annotation>
+ <xsd:documentation>An abstract element representing any logical operator.</xsd:documentation>
+ </xsd:annotation>
+ </xsd:element>
+ <!-- ===== COMPARATIVE OPERATORS ===== -->
+ <xsd:element name="COP" abstract="true" substitutionGroup="booleanOP">
+ <xsd:annotation>
+ <xsd:documentation>An abstract element representing any comparison operator.</xsd:documentation>
+ </xsd:annotation>
+ </xsd:element>
+ <!-- === unary === -->
+ <xsd:element name="unaryCOP" abstract="true" substitutionGroup="COP">
+ <xsd:annotation>
+ <xsd:documentation>An abstract element representing any unary comparison operator.</xsd:documentation>
+ </xsd:annotation>
+ </xsd:element>
+ <xsd:complexType name="unaryCOPType">
+ <xsd:annotation>
+ <xsd:documentation>A complex type for unary comparison operators.</xsd:documentation>
+ </xsd:annotation>
+ <xsd:sequence>
+ <xsd:element ref="concept"/>
+ </xsd:sequence>
+ </xsd:complexType>
+ <xsd:element name="isNull" type="unaryCOPType" substitutionGroup="unaryCOP">
+ <xsd:annotation>
+ <xsd:documentation>Compares if a concept is null. Use equals element to compare for empty strings.</xsd:documentation>
+ </xsd:annotation>
+ </xsd:element>
+ <!-- === binary === -->
+ <xsd:element name="binaryCOP" abstract="true" substitutionGroup="COP">
+ <xsd:annotation>
+ <xsd:documentation>An abstract element representing any binary comparison operator.</xsd:documentation>
+ </xsd:annotation>
+ </xsd:element>
+ <xsd:complexType name="binaryCOPType">
+ <xsd:annotation>
+ <xsd:documentation>A complex type for binary comparison operators.</xsd:documentation>
+ </xsd:annotation>
+ <xsd:sequence>
+ <xsd:element ref="concept"/>
+ <xsd:element ref="expression"/>
+ </xsd:sequence>
+ </xsd:complexType>
+ <xsd:element name="equals" type="binaryCOPType" substitutionGroup="binaryCOP">
+ <xsd:annotation>
+ <xsd:documentation>The equals (=) comparison operator.</xsd:documentation>
+ </xsd:annotation>
+ </xsd:element>
+ <xsd:element name="lessThan" type="binaryCOPType" substitutionGroup="binaryCOP">
+ <xsd:annotation>
+ <xsd:documentation>The less than (<) comparison operator.</xsd:documentation>
+ </xsd:annotation>
+ </xsd:element>
+ <xsd:element name="lessThanOrEquals" type="binaryCOPType" substitutionGroup="binaryCOP">
+ <xsd:annotation>
+ <xsd:documentation>The less than or equals (<=) comparison operator.</xsd:documentation>
+ </xsd:annotation>
+ </xsd:element>
+ <xsd:element name="greaterThan" type="binaryCOPType" substitutionGroup="binaryCOP">
+ <xsd:annotation>
+ <xsd:documentation>The greater than (>) comparison operator.</xsd:documentation>
+ </xsd:annotation>
+ </xsd:element>
+ <xsd:element name="greaterThanOrEquals" type="binaryCOPType" substitutionGroup="binaryCOP">
+ <xsd:annotation>
+ <xsd:documentation>The greater than or equals (>=) comparison operator.</xsd:documentation>
+ </xsd:annotation>
+ </xsd:element>
+ <xsd:element name="like" type="binaryCOPType" substitutionGroup="binaryCOP">
+ <xsd:annotation>
+ <xsd:documentation>The like (LIKE) comparison operator.</xsd:documentation>
+ </xsd:annotation>
+ </xsd:element>
+ <!-- === multiple === -->
+ <xsd:element name="multiCOP" abstract="true" substitutionGroup="COP">
+ <xsd:annotation>
+ <xsd:documentation>An abstract element representing any multiple comparison operator.</xsd:documentation>
+ </xsd:annotation>
+ </xsd:element>
+ <xsd:complexType name="multiCOPType">
+ <xsd:annotation>
+ <xsd:documentation>A complex type for multiple comparison operators.</xsd:documentation>
+ </xsd:annotation>
+ <xsd:sequence>
+ <xsd:element ref="concept"/>
+ <xsd:element name="values">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element ref="simpleExpression" maxOccurs="unbounded"/>
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ </xsd:sequence>
+ </xsd:complexType>
+ <xsd:element name="in" type="multiCOPType" substitutionGroup="multiCOP">
+ <xsd:annotation>
+ <xsd:documentation>The in (IN) comparison operator.</xsd:documentation>
+ </xsd:annotation>
+ </xsd:element>
+ <!-- ===== LOGICAL OPERATORS ===== -->
+ <xsd:element name="LOP" abstract="true" substitutionGroup="booleanOP">
+ <xsd:annotation>
+ <xsd:documentation>An abstract element representing any logical
+ operator.</xsd:documentation>
+ </xsd:annotation>
+ </xsd:element>
+ <!-- === unary === -->
+ <xsd:element name="unaryLOP" abstract="true" substitutionGroup="LOP">
+ <xsd:annotation>
+ <xsd:documentation>An abstract element representing any unary logical
+ operator.</xsd:documentation>
+ </xsd:annotation>
+ </xsd:element>
+ <xsd:complexType name="unaryLOPType">
+ <xsd:annotation>
+ <xsd:documentation>A complex type for unary logical operators.</xsd:documentation>
+ </xsd:annotation>
+ <xsd:sequence>
+ <xsd:element ref="booleanOP"/>
+ </xsd:sequence>
+ </xsd:complexType>
+ <xsd:element name="not" substitutionGroup="unaryLOP">
+ <xsd:annotation>
+ <xsd:documentation>The not logical operator.</xsd:documentation>
+ </xsd:annotation>
+ <xsd:complexType>
+ <xsd:complexContent>
+ <xsd:extension base="unaryLOPType"/>
+ </xsd:complexContent>
+ </xsd:complexType>
+ </xsd:element>
+ <!-- === multiple === -->
+ <xsd:element name="multiLOP" abstract="true" substitutionGroup="LOP">
+ <xsd:annotation>
+ <xsd:documentation>An abstract element representing any multiple logical
+ operator.</xsd:documentation>
+ </xsd:annotation>
+ </xsd:element>
+ <xsd:complexType name="multiLOPType">
+ <xsd:annotation>
+ <xsd:documentation>A complex type for multiple logical operators.</xsd:documentation>
+ </xsd:annotation>
+ <xsd:sequence minOccurs="2" maxOccurs="unbounded">
+ <xsd:element ref="booleanOP"/>
+ </xsd:sequence>
+ </xsd:complexType>
+ <xsd:element name="and" type="multiLOPType" substitutionGroup="multiLOP">
+ <xsd:annotation>
+ <xsd:documentation>The and logical operator.</xsd:documentation>
+ </xsd:annotation>
+ </xsd:element>
+ <xsd:element name="or" type="multiLOPType" substitutionGroup="multiLOP">
+ <xsd:annotation>
+ <xsd:documentation>The or logical operator.</xsd:documentation>
+ </xsd:annotation>
+ </xsd:element>
+ <!-- ===== ENVIRONMENT VARIABLE EXPRESSIONS ===== -->
+ <xsd:element name="variable" abstract="true" substitutionGroup="expression">
+ <xsd:annotation>
+ <xsd:documentation>An abstract element to represent datasource specific values taken
+ from the datasource environment by the wrapper.</xsd:documentation>
+ </xsd:annotation>
+ </xsd:element>
+ <xsd:element name="date" substitutionGroup="variable">
+ <xsd:annotation>
+ <xsd:documentation>An element to represent ISO date like 2005-07-21. Substitutes an
+ abstract environment variable element.</xsd:documentation>
+ </xsd:annotation>
+ <xsd:complexType/>
+ </xsd:element>
+ <xsd:element name="timestamp" substitutionGroup="variable">
+ <xsd:annotation>
+ <xsd:documentation>An element to represent an ISO timestamp like 2005-07-20 17:01:38.
+ Substitutes an abstract environment variable element.</xsd:documentation>
+ </xsd:annotation>
+ <xsd:complexType/>
+ </xsd:element>
+ <xsd:element name="datasourceName" substitutionGroup="variable">
+ <xsd:annotation>
+ <xsd:documentation>An element to represent the name of the datasource. Substitutes an
+ abstract environment variable element.</xsd:documentation>
+ </xsd:annotation>
+ <xsd:complexType/>
+ </xsd:element>
+ <xsd:element name="accessPoint" substitutionGroup="variable">
+ <xsd:annotation>
+ <xsd:documentation>An element to represent the access point of the datasource.
+ Substitutes an abstract environment variable element.</xsd:documentation>
+ </xsd:annotation>
+ <xsd:complexType/>
+ </xsd:element>
+ <xsd:element name="lastUpdate" substitutionGroup="variable">
+ <xsd:annotation>
+ <xsd:documentation>An element to represent the timestamp of the last update of the
+ datasource. Substitutes an abstract variable expression
+ element.</xsd:documentation>
+ </xsd:annotation>
+ <xsd:complexType/>
+ </xsd:element>
+ <!-- ============================================= -->
+ <!--REQUEST TYPE DEFINITIONS-->
+ <!-- ============================================= -->
+ <xsd:element name="request" type="requestType">
+ <xsd:annotation>
+ <xsd:documentation>Global element representing a request. This is a root element
+ and must contain reference to the schema and namespaces used.</xsd:documentation>
+ </xsd:annotation>
+ </xsd:element>
+ <xsd:complexType name="requestType">
+ <xsd:annotation>
+ <xsd:documentation>Request message format. Must always contain header and operation
+ specific parameters.</xsd:documentation>
+ </xsd:annotation>
+ <xsd:sequence>
+ <xsd:element name="header" type="headerType"/>
+ <xsd:choice>
+ <xsd:element name="ping">
+ <xsd:complexType>
+ <xsd:attributeGroup ref="globalParametersGroup"/>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="capabilities">
+ <xsd:complexType>
+ <xsd:attributeGroup ref="globalParametersGroup"/>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="metadata">
+ <xsd:complexType>
+ <xsd:attributeGroup ref="globalParametersGroup"/>
+ </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="globalParametersGroup"/>
+ <xsd:attributeGroup ref="pagingParametersGroup"/>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="search">
+ <xsd:complexType>
+ <xsd:choice>
+ <xsd:element name="template" type="externalResourceType"/>
+ <xsd:group ref="searchTemplateGroup"/>
+ </xsd:choice>
+ <xsd:attributeGroup ref="globalParametersGroup"/>
+ <xsd:attributeGroup ref="pagingParametersGroup"/>
+ <xsd:attribute name="envelope" type="xsd:boolean" use="optional" default="true"/>
+ </xsd:complexType>
+ </xsd:element>
+ </xsd:choice>
+ </xsd:sequence>
+ </xsd:complexType>
+ <xsd:attributeGroup name="globalParametersGroup">
+ <xsd:attribute name="xslt" type="xsd:anyURI" use="optional"/>
+ <xsd:attribute name="xslt-apply" type="xsd:boolean" use="optional" default="false"/>
+ <xsd:attribute name="log-only" type="xsd:boolean" use="optional" default="false"/>
+ </xsd:attributeGroup>
+ <xsd:attributeGroup name="pagingParametersGroup">
+ <xsd:attribute name="count" type="xsd:boolean" use="optional" default="false"/>
+ <xsd:attribute name="start" type="xsd:nonNegativeInteger" use="optional" default="0"/>
+ <xsd:attribute name="limit" type="xsd:nonNegativeInteger" use="optional" default="1"/>
+ </xsd:attributeGroup>
+ <!-- ============================================= -->
+ <!--RESPONSE TYPE DEFINITIONS-->
+ <!-- ============================================= -->
+ <xsd:element name="response" type="responseType">
+ <xsd:annotation>
+ <xsd:documentation>Global element representing a response. This is a root element
+ and must contain reference to the schema and namespaces used</xsd:documentation>
+ </xsd:annotation>
+ </xsd:element>
+ <xsd:complexType name="responseType">
+ <xsd:annotation>
+ <xsd:documentation>Response message format. Must always contain header, results from the
+ requested operation and possible diagnostic messages.</xsd:documentation>
+ </xsd:annotation>
+ <xsd:sequence>
+ <xsd:element name="header" type="headerType"/>
+ <xsd:choice>
+ <xsd:element ref="pong"/>
+ <xsd:element ref="metadata"/>
+ <xsd:element ref="capabilities"/>
+ <xsd:element ref="inventory" />
+ <xsd:element ref="search" />
+ <xsd:element ref="error" />
+ <xsd:element ref="logged" />
+ </xsd:choice>
+ <xsd:element name="diagnostics" type="diagnosticsListType" minOccurs="0">
+ <xsd:annotation>
+ <xsd:documentation>The diagnostics element is an optional part of TAPIR requests and response messages.
+ Diagnostics may contain many pieces of information used for debugging and providing warnings or error messages.
+ Individual diagnostics are held in a diagnosticList with an enumerated attribute for level and attributes for code and time.
+ </xsd:documentation>
+ </xsd:annotation>
+ </xsd:element>
+ </xsd:sequence>
+ </xsd:complexType>
+ <xsd:complexType name="resultSummaryType">
+ <xsd:annotation>
+ <xsd:documentation>Summary about inventory and search results. The first index of a
+ record is 0. The number of records actually being returned is given in totalReturned.
+ If counting was requested the totalMatched gives the "estimated" number of total
+ matching records - not necessarily the number of valid records that can possibly be
+ returned by paging through the entire record set.</xsd:documentation>
+ </xsd:annotation>
+ <xsd:attribute name="start" type="xsd:integer" use="required"/>
+ <xsd:attribute name="next" type="xsd:integer" use="optional"/>
+ <xsd:attribute name="totalReturned" type="xsd:integer" use="required"/>
+ <xsd:attribute name="totalMatched" type="xsd:integer" use="optional"/>
+ </xsd:complexType>
+ <!-- ===== PING ===== -->
+ <xsd:element name="pong" type="pingResultType"/>
+ <xsd:complexType name="pingResultType">
+ <xsd:annotation>
+ <xsd:documentation>Format of ping operation result.</xsd:documentation>
+ </xsd:annotation>
+ </xsd:complexType>
+ <!-- ===== CAPABILITIES ===== -->
+ <xsd:element name="capabilities" type="capabilitiesResultType"/>
+ <xsd:complexType name="capabilitiesResultType">
+ <xsd:annotation>
+ <xsd:documentation>Format of capabilities operation result.</xsd:documentation>
+ </xsd:annotation>
+ <xsd:sequence>
+ <xsd:element name="operations">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="ping">
+ <xsd:complexType/>
+ </xsd:element>
+ <xsd:element name="metadata">
+ <xsd:complexType/>
+ </xsd:element>
+ <xsd:element name="capabilities">
+ <xsd:complexType/>
+ </xsd:element>
+ <xsd:element name="inventory" minOccurs="0">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="templates" type="templatesCapabilitiesType" minOccurs="0"/>
+ <xsd:element name="anyConcepts" minOccurs="0"><xsd:complexType/></xsd:element>
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="search" minOccurs="0">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="templates" type="templatesCapabilitiesType" minOccurs="0" />
+ <xsd:element name="outputModels" minOccurs="0">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="knownOutputModels" minOccurs="0" >
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="outputModel" type="externalResourceType" maxOccurs="unbounded"/>
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="anyOutputModels" minOccurs="0">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="responseStructure" type="responseStructureCapabilitiesType">
+ <xsd:annotation>
+ <xsd:documentation>The supported subset of the XML Schema language.</xsd:documentation>
+ </xsd:annotation>
+ </xsd:element>
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="requests">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="encoding">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="kvp"><xsd:complexType/></xsd:element>
+ <xsd:element name="xml" minOccurs="0"><xsd:complexType/></xsd:element>
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="globalParameters">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="logOnly">
+ <xsd:simpleType>
+ <xsd:restriction base="xsd:string">
+ <xsd:enumeration value="required"/>
+ <xsd:enumeration value="accepted"/>
+ <xsd:enumeration value="denied"/>
+ </xsd:restriction>
+ </xsd:simpleType>
+ </xsd:element>
+ <xsd:element name="xlst" minOccurs="0"><xsd:complexType/></xsd:element>
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="filter" type="filterCapabilitiesType">
+ <xsd:annotation>
+ <xsd:documentation>Information about the supported filter operators of this
+ service.</xsd:documentation>
+ </xsd:annotation>
+ </xsd:element>
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="concepts">
+ <xsd:annotation>
+ <xsd:documentation>The list of known conceptual schemas and their mapped
+ concepts.</xsd:documentation>
+ </xsd:annotation>
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="conceptNameServers">
+ <xsd:annotation>
+ <xsd:documentation>The location of the alias file or
+ ConceptNameServer to define simple aliases for fully qualified
+ concept ids.</xsd:documentation>
+ </xsd:annotation>
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="server" type="externalResourceType" minOccurs="0" maxOccurs="unbounded">
+ <xsd:annotation>
+ <xsd:documentation>Multiple servers allowed. Ordered list with the first server(s) having priority over the following ones.</xsd:documentation>
+ </xsd:annotation>
+ </xsd:element>
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="schema" maxOccurs="unbounded">
+ <xsd:annotation>
+ <xsd:documentation>Namespace and location of a supported
+ schema.</xsd:documentation>
+ </xsd:annotation>
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="mappedConcept" maxOccurs="unbounded">
+ <xsd:annotation>
+ <xsd:documentation>Each known and mapped concept of a
+ schema listed with a boolean flag indicating if its
+ searchable (default = true). The mandatory flag can
+ be used to indicate that some concepts need to be
+ present in response structures
+ (default=false).</xsd:documentation>
+ </xsd:annotation>
+ <xsd:complexType>
+ <xsd:complexContent>
+ <xsd:extension base="qualifiedConceptReferenceType">
+ <xsd:attribute name="searchable" type="xsd:boolean" use="optional" default="true"/>
+ <xsd:attribute name="required" type="xsd:boolean" use="optional" default="false"/>
+ <xsd:attribute name="alias" type="xsd:string" use="optional"/>
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+ </xsd:element>
+ </xsd:sequence>
+ <xsd:attribute name="namespace" type="xsd:anyURI" use="required"/>
+ <xsd:attribute name="location" type="xsd:anyURI" use="required"/>
+ </xsd:complexType>
+ </xsd:element>
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="variables">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="environment" minOccurs="0">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element ref="variable" minOccurs="0" maxOccurs="unbounded"/>
+ <xsd:element ref="custom" minOccurs="0">
+ <xsd:annotation>
+ <xsd:documentation>Extension slot for other variables.</xsd:documentation>
+ </xsd:annotation>
+ </xsd:element>
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="settings">
+ <xsd:annotation>
+ <xsd:documentation>Information about the local configuration of a
+ datasource.</xsd:documentation>
+ </xsd:annotation>
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="minQueryTermLength" type="xsd:integer" minOccurs="0">
+ <xsd:annotation>
+ <xsd:documentation>Indicates the minimum length for wild-card
+ strings used in like comparisons.</xsd:documentation>
+ </xsd:annotation>
+ </xsd:element>
+ <xsd:element name="maxElementRepetitions" type="xsd:integer" minOccurs="0">
+ <xsd:annotation>
+ <xsd:documentation>Indicates the maximum number of repetitions
+ allowed in responses for each repeatable element defined in
+ response structures.</xsd:documentation>
+ </xsd:annotation>
+ </xsd:element>
+ <xsd:element name="maxElementLevels" type="xsd:integer" minOccurs="0">
+ <xsd:annotation>
+ <xsd:documentation>Indicates the maximum number of allowed levels
+ (depth) for response elements.</xsd:documentation>
+ </xsd:annotation>
+ </xsd:element>
+ <xsd:element name="maxResponseTags" type="xsd:integer" minOccurs="0">
+ <xsd:annotation>
+ <xsd:documentation>Indicates the maximum number of tags that can be
+ returned by responses.</xsd:documentation>
+ </xsd:annotation>
+ </xsd:element>
+ <xsd:element name="maxResponseSize" type="xsd:integer" minOccurs="0">
+ <xsd:annotation>
+ <xsd:documentation>Indicates the maximum size in kilobytes allowed
+ to be returned by responses.</xsd:documentation>
+ </xsd:annotation>
+ </xsd:element>
+ <xsd:element ref="custom" minOccurs="0"/>
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element ref="custom" minOccurs="0"/>
+ </xsd:sequence>
+ </xsd:complexType>
+
+ <xsd:complexType name="templatesCapabilitiesType">
+ <xsd:sequence>
+ <xsd:element name="template" maxOccurs="unbounded">
+ <xsd:complexType>
+ <xsd:complexContent>
+ <xsd:extension base="externalResourceType">
+ <xsd:attribute name="wsdl" type="xsd:anyURI">
+ <xsd:annotation><xsd:documentation>URL pointing to a WSDL file describing this template interface</xsd:documentation></xsd:annotation>
+ </xsd:attribute>
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+ </xsd:element>
+ </xsd:sequence>
+ </xsd:complexType>
+ <xsd:complexType name="responseStructureCapabilitiesType">
+ <xsd:annotation>
+ <xsd:documentation>A complete indication about what subset of the response structure
+ specification is supported by a service.</xsd:documentation>
+ </xsd:annotation>
+ <xsd:sequence>
+ <xsd:element name="basicSchemaLanguage">
+ <xsd:annotation>
+ <xsd:documentation>This includes the following xml schema tags: schema incl
+ target namespace, element incl min/maxOccurs, attribute incl minOccurs,
+ sequence, all If defined locally it should also include complexType +
+ simpleType definitions incl complexContent +
+ simpleContent</xsd:documentation>
+ </xsd:annotation>
+ <xsd:complexType/>
+ </xsd:element>
+ <xsd:element name="choice" minOccurs="0">
+ <xsd:complexType/>
+ </xsd:element>
+ <xsd:element name="group" minOccurs="0">
+ <xsd:annotation>
+ <xsd:documentation>local group definitions without global referencing</xsd:documentation>
+ </xsd:annotation>
+ <xsd:complexType/>
+ </xsd:element>
+ <xsd:element name="import" minOccurs="0">
+ <xsd:complexType/>
+ </xsd:element>
+ <xsd:element name="references" minOccurs="0">
+ <xsd:annotation>
+ <xsd:documentation>The global use of the tags grouped here when locally
+ referenced via the "ref" attribute.</xsd:documentation>
+ </xsd:annotation>
+ <xsd:complexType>
+ <xsd:sequence minOccurs="0">
+ <xsd:element name="element" minOccurs="0">
+ <xsd:complexType/>
+ </xsd:element>
+ <xsd:element name="attribute" minOccurs="0">
+ <xsd:complexType/>
+ </xsd:element>
+ <xsd:element name="group" minOccurs="0">
+ <xsd:complexType/>
+ </xsd:element>
+ <xsd:element name="attributeGroup" minOccurs="0">
+ <xsd:complexType/>
+ </xsd:element>
+ <xsd:element name="complexType" minOccurs="0">
+ <xsd:complexType/>
+ </xsd:element>
+ <xsd:element name="simpleType" minOccurs="0">
+ <xsd:complexType>
+ <xsd:sequence minOccurs="0">
+ <xsd:element name="list" minOccurs="0">
+ <xsd:complexType/>
+ </xsd:element>
+ <xsd:element name="union" minOccurs="0">
+ <xsd:complexType/>
+ </xsd:element>
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="simpleTypes" minOccurs="0">
+ <xsd:complexType>
+ <xsd:sequence minOccurs="0">
+ <xsd:element name="stringTypes" minOccurs="0">
+ <xsd:complexType>
+ <xsd:sequence minOccurs="0">
+ <xsd:element name="string" minOccurs="0">
+ <xsd:complexType/>
+ </xsd:element>
+ <xsd:element name="normalizedString" minOccurs="0">
+ <xsd:complexType/>
+ </xsd:element>
+ <xsd:element name="token" minOccurs="0">
+ <xsd:complexType/>
+ </xsd:element>
+ <xsd:element name="language" minOccurs="0">
+ <xsd:complexType/>
+ </xsd:element>
+ <xsd:element name="Name" minOccurs="0">
+ <xsd:complexType/>
+ </xsd:element>
+ <xsd:element name="NCName" minOccurs="0">
+ <xsd:complexType/>
+ </xsd:element>
+ <xsd:element name="NMToken" minOccurs="0">
+ <xsd:complexType/>
+ </xsd:element>
+ <xsd:element name="NMTokens" minOccurs="0">
+ <xsd:complexType/>
+ </xsd:element>
+ <xsd:element name="ID" minOccurs="0">
+ <xsd:complexType/>
+ </xsd:element>
+ <xsd:element name="IDREF" minOccurs="0">
+ <xsd:complexType/>
+ </xsd:element>
+ <xsd:element name="IDREFS" minOccurs="0">
+ <xsd:complexType/>
+ </xsd:element>
+ <xsd:element name="ENTITY" minOccurs="0">
+ <xsd:complexType/>
+ </xsd:element>
+ <xsd:element name="ENTITIES" minOccurs="0">
+ <xsd:complexType/>
+ </xsd:element>
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="numericTypes" minOccurs="0">
+ <xsd:complexType>
+ <xsd:sequence minOccurs="0">
+ <xsd:element name="float" minOccurs="0">
+ <xsd:complexType/>
+ </xsd:element>
+ <xsd:element name="double" minOccurs="0">
+ <xsd:complexType/>
+ </xsd:element>
+ <xsd:element name="decimal" minOccurs="0">
+ <xsd:complexType/>
+ </xsd:element>
+ <xsd:element name="integerTypes" minOccurs="0">
+ <xsd:complexType>
+ <xsd:sequence minOccurs="0">
+ <xsd:element name="integer" minOccurs="0">
+ <xsd:complexType/>
+ </xsd:element>
+ <xsd:element name="long" minOccurs="0">
+ <xsd:complexType/>
+ </xsd:element>
+ <xsd:element name="int" minOccurs="0"/>
+ <xsd:element name="short" minOccurs="0">
+ <xsd:complexType/>
+ </xsd:element>
+ <xsd:element name="byte" minOccurs="0">
+ <xsd:complexType/>
+ </xsd:element>
+ <xsd:element name="positiveInteger" minOccurs="0">
+ <xsd:complexType/>
+ </xsd:element>
+ <xsd:element name="nonPositiveInteger" minOccurs="0">
+ <xsd:complexType/>
+ </xsd:element>
+ <xsd:element name="negativeInteger" minOccurs="0">
+ <xsd:complexType/>
+ </xsd:element>
+ <xsd:element name="nonNegativeInteger" minOccurs="0">
+ <xsd:complexType/>
+ </xsd:element>
+ <xsd:element name="unsignedLong" minOccurs="0">
+ <xsd:complexType/>
+ </xsd:element>
+ <xsd:element name="unsignedInt" minOccurs="0">
+ <xsd:complexType/>
+ </xsd:element>
+ <xsd:element name="unsignedShort" minOccurs="0">
+ <xsd:complexType/>
+ </xsd:element>
+ <xsd:element name="unsignedByte" minOccurs="0">
+ <xsd:complexType/>
+ </xsd:element>
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="dateTimeTypes" minOccurs="0">
+ <xsd:complexType>
+ <xsd:sequence minOccurs="0">
+ <xsd:element name="duration" minOccurs="0">
+ <xsd:complexType/>
+ </xsd:element>
+ <xsd:element name="dateTime" minOccurs="0">
+ <xsd:complexType/>
+ </xsd:element>
+ <xsd:element name="time" minOccurs="0">
+ <xsd:complexType/>
+ </xsd:element>
+ <xsd:element name="date" minOccurs="0">
+ <xsd:complexType/>
+ </xsd:element>
+ <xsd:element name="gYearMonth" minOccurs="0">
+ <xsd:complexType/>
+ </xsd:element>
+ <xsd:element name="gYear" minOccurs="0">
+ <xsd:complexType/>
+ </xsd:element>
+ <xsd:element name="gMonthDay" minOccurs="0">
+ <xsd:complexType/>
+ </xsd:element>
+ <xsd:element name="gDay" minOccurs="0">
+ <xsd:complexType/>
+ </xsd:element>
+ <xsd:element name="gMonth" minOccurs="0">
+ <xsd:complexType/>
+ </xsd:element>
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="miscTypes" minOccurs="0">
+ <xsd:complexType>
+ <xsd:sequence minOccurs="0">
+ <xsd:element name="boolean" minOccurs="0">
+ <xsd:complexType/>
+ </xsd:element>
+ <xsd:element name="base64Binary" minOccurs="0">
+ <xsd:complexType/>
+ </xsd:element>
+ <xsd:element name="hexBinary" minOccurs="0">
+ <xsd:complexType/>
+ </xsd:element>
+ <xsd:element name="anyURI" minOccurs="0">
+ <xsd:complexType/>
+ </xsd:element>
+ <xsd:element name="QName" minOccurs="0">
+ <xsd:complexType/>
+ </xsd:element>
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="extension" minOccurs="0">
+ <xsd:complexType/>
+ </xsd:element>
+ <xsd:element name="restriction" minOccurs="0">
+ <xsd:complexType>
+ <xsd:sequence minOccurs="0">
+ <xsd:element name="minInclusive" minOccurs="0">
+ <xsd:complexType/>
+ </xsd:element>
+ <xsd:element name="maxInclusive" minOccurs="0">
+ <xsd:complexType/>
+ </xsd:element>
+ <xsd:element name="minExclusive" minOccurs="0">
+ <xsd:complexType/>
+ </xsd:element>
+ <xsd:element name="maxExclusive" minOccurs="0">
+ <xsd:complexType/>
+ </xsd:element>
+ <xsd:element name="fractionDigits" minOccurs="0">
+ <xsd:complexType/>
+ </xsd:element>
+ <xsd:element name="totalDigits" minOccurs="0">
+ <xsd:complexType/>
+ </xsd:element>
+ <xsd:element name="enumeration" minOccurs="0">
+ <xsd:complexType/>
+ </xsd:element>
+ <xsd:element name="whiteSpace" minOccurs="0">
+ <xsd:complexType/>
+ </xsd:element>
+ <xsd:element name="pattern" minOccurs="0">
+ <xsd:complexType/>
+ </xsd:element>
+ <xsd:element name="length" minOccurs="0">
+ <xsd:complexType/>
+ </xsd:element>
+ <xsd:element name="minLength" minOccurs="0">
+ <xsd:complexType/>
+ </xsd:element>
+ <xsd:element name="maxLength" minOccurs="0">
+ <xsd:complexType/>
+ </xsd:element>
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="substitutionGroup" minOccurs="0">
+ <xsd:complexType/>
+ </xsd:element>
+ <xsd:element name="constraints" minOccurs="0">
+ <xsd:complexType>
+ <xsd:sequence minOccurs="0">
+ <xsd:element name="field" minOccurs="0">
+ <xsd:complexType/>
+ </xsd:element>
+ <xsd:element name="selector" minOccurs="0">
+ <xsd:complexType/>
+ </xsd:element>
+ <xsd:element name="unique" minOccurs="0">
+ <xsd:complexType/>
+ </xsd:element>
+ <xsd:element name="key" minOccurs="0">
+ <xsd:complexType/>
+ </xsd:element>
+ <xsd:element name="keyref" minOccurs="0">
+ <xsd:complexType/>
+ </xsd:element>
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ </xsd:sequence>
+ </xsd:complexType>
+ <xsd:complexType name="filterCapabilitiesType">
+ <xsd:annotation>
+ <xsd:documentation>A complete indication about what filter operators are supported by a
+ service.</xsd:documentation>
+ </xsd:annotation>
+ <xsd:sequence>
+ <xsd:element name="encoding" minOccurs="0">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="expression">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="concept">
+ <xsd:complexType/>
+ </xsd:element>
+ <xsd:element name="literal">
+ <xsd:complexType/>
+ </xsd:element>
+ <xsd:element name="parameter">
+ <xsd:complexType/>
+ </xsd:element>
+ <xsd:element name="variable">
+ <xsd:complexType/>
+ </xsd:element>
+ <xsd:element name="arithmetic">
+ <xsd:annotation>
+ <xsd:documentation>Support +-*/ in filter
+ expressions.</xsd:documentation>
+ </xsd:annotation>
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="add" minOccurs="0">
+ <xsd:complexType/>
+ </xsd:element>
+ <xsd:element name="sub" minOccurs="0">
+ <xsd:complexType/>
+ </xsd:element>
+ <xsd:element name="div" minOccurs="0">
+ <xsd:complexType/>
+ </xsd:element>
+ <xsd:element name="mul" minOccurs="0">
+ <xsd:complexType/>
+ </xsd:element>
+ <xsd:element ref="custom" minOccurs="0"/>
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element ref="custom" minOccurs="0"/>
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="booleanOperators">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="logical">
+ <xsd:annotation>
+ <xsd:documentation>This includes all 3 operators. AND, OR,
+ NOT</xsd:documentation>
+ </xsd:annotation>
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="not">
+ <xsd:complexType/>
+ </xsd:element>
+ <xsd:element name="and">
+ <xsd:complexType/>
+ </xsd:element>
+ <xsd:element name="or">
+ <xsd:complexType/>
+ </xsd:element>
+ <xsd:element ref="custom" minOccurs="0"/>
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="comparative">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="equals">
+ <xsd:annotation>
+ <xsd:documentation>Recommended to be case
+ sensitive.</xsd:documentation>
+ </xsd:annotation>
+ <xsd:complexType>
+ <xsd:attribute name="caseSensitive" type="xsd:boolean" use="optional" default="true"/>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="greaterThan">
+ <xsd:complexType/>
+ </xsd:element>
+ <xsd:element name="greaterThanOrEquals">
+ <xsd:complexType/>
+ </xsd:element>
+ <xsd:element name="lessThan">
+ <xsd:complexType/>
+ </xsd:element>
+ <xsd:element name="lessThanOrEquals">
+ <xsd:complexType/>
+ </xsd:element>
+ <xsd:element name="in">
+ <xsd:complexType/>
+ </xsd:element>
+ <xsd:element name="isNull">
+ <xsd:complexType/>
+ </xsd:element>
+ <xsd:element name="like">
+ <xsd:annotation>
+ <xsd:documentation>Recommended to be case insensitive.
+ Wildcard is always asterisk *.</xsd:documentation>
+ </xsd:annotation>
+ <xsd:complexType>
+ <xsd:attribute name="caseSensitive" type="xsd:boolean" use="optional" default="false"/>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element ref="custom" minOccurs="0"/>
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element ref="custom" minOccurs="0"/>
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ </xsd:sequence>
+ </xsd:complexType>
+ <!-- ===== METADATA ===== -->
+ <xsd:element name="metadata" type="metadataResultType">
+ <xsd:annotation>
+ <xsd:documentation>Global element to validate external metadata XML
+ files.</xsd:documentation>
+ </xsd:annotation>
+ </xsd:element>
+ <xsd:complexType name="metadataResultType">
+ <xsd:annotation>
+ <xsd:documentation>Format of metadata operation result.</xsd:documentation>
+ </xsd:annotation>
+ <xsd:sequence>
+ <xsd:element ref="dc:title">
+ <xsd:annotation>
+ <xsd:documentation>The name of this service possibly in different
+ languages.</xsd:documentation>
+ </xsd:annotation>
+ </xsd:element>
+ <xsd:element ref="dc:type">
+ <xsd:annotation>
+ <xsd:documentation>The nature or genre of the content of the resource.
+ http://purl.org/dc/dcmitype/Service</xsd:documentation>
+ </xsd:annotation>
+ </xsd:element>
+ <xsd:element name="accesspoint" type="xsd:anyURI">
+ <xsd:annotation>
+ <xsd:documentation>The URL of the access point of this
+ service.</xsd:documentation>
+ </xsd:annotation>
+ </xsd:element>
+ <xsd:element ref="dc:description">
+ <xsd:annotation>
+ <xsd:documentation>Description may include but is not limited to: an abstract,
+ table of contents, reference to a graphical representation
+ of content or a free-text account of the content.</xsd:documentation>
+ </xsd:annotation>
+ </xsd:element>
+ <xsd:element ref="dc:language">
+ <xsd:annotation>
+ <xsd:documentation></xsd:documentation>
+ </xsd:annotation>
+ </xsd:element>
+ <xsd:element ref="dc:subject" minOccurs="0">
+ <xsd:annotation>
+ <xsd:documentation>Subject and Keywords.Typically, a Subject will be expressed as keywords,
+ key phrases or classification codes that describe a topic
+ of the resource. Recommended best practice is to select
+ a value from a controlled vocabulary or formal
+ classification scheme</xsd:documentation>
+ </xsd:annotation>
+ </xsd:element>
+ <xsd:element ref="dct:bibliographicCitation" minOccurs="0">
+ <xsd:annotation>
+ <xsd:documentation>Recommended practice is to include sufficient
+ bibliographic detail to identify the resource as
+ unambiguously as possible, whether or not the
+ citation is in a standard form.</xsd:documentation>
+ </xsd:annotation>
+ </xsd:element>
+ <xsd:element ref="dc:rights" minOccurs="0">
+ <xsd:annotation>
+ <xsd:documentation>Information about who can access the
+ resource or an indication of its security status.</xsd:documentation>
+ </xsd:annotation>
+ </xsd:element>
+ <xsd:element ref="dct:modified" minOccurs="0">
+ <xsd:annotation>
+ <xsd:documentation></xsd:documentation>
+ </xsd:annotation>
+ </xsd:element>
+ <xsd:element ref="dct:created" minOccurs="0">
+ <xsd:annotation>
+ <xsd:documentation></xsd:documentation>
+ </xsd:annotation>
+ </xsd:element>
+ <xsd:element name="indexingPreferences" minOccurs="0">
+ <xsd:complexType>
+ <xsd:attribute name="startTime" type="xsd:time"/>
+ <xsd:attribute name="maxDuration" type="xsd:duration"/>
+ <xsd:attribute name="frequency" type="xsd:duration" />
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="relatedEntity" type="relatedEntityInformationType" maxOccurs="unbounded">
+ <xsd:annotation>
+ <xsd:documentation>Entities (companies, organisations, institutions) related to
+ this service with their respective roles, e.g. publisher, data
+ supplier</xsd:documentation>
+ </xsd:annotation>
+ </xsd:element>
+ <xsd:element ref="custom" minOccurs="0"/>
+ </xsd:sequence>
+ <xsd:attribute ref="xml:lang" use="optional"/>
+ </xsd:complexType>
+ <xsd:complexType name="relatedEntityInformationType">
+ <xsd:annotation>
+ <xsd:documentation>Information about an entity that may have some relationship with the
+ service being provided.</xsd:documentation>
+ </xsd:annotation>
+ <xsd:sequence>
+ <xsd:element name="role" type="entityRoleExtensionType" maxOccurs="unbounded">
+ <xsd:annotation>
+ <xsd:documentation>Used to specify the roles of a related entity, such as "data
+ supplier", "technical host", etc.</xsd:documentation>
+ </xsd:annotation>
+ </xsd:element>
+ <xsd:element name="entity" type="entityInformationType"/>
+ </xsd:sequence>
+ </xsd:complexType>
+ <xsd:simpleType name="entityRoleType">
+ <xsd:restriction base="xsd:string">
+ <xsd:enumeration value="data supplier"/>
+ <xsd:enumeration value="technical host"/>
+ </xsd:restriction>
+ </xsd:simpleType>
+ <xsd:simpleType name="entityRoleExtensionType">
+ <xsd:union memberTypes="entityRoleType xsd:string"/>
+ </xsd:simpleType>
+ <xsd:element name="entity" type="entityInformationType">
+ <xsd:annotation>
+ <xsd:documentation>Global element to validate external XML representations of entities.
+ An entity here could be a company, organisation, institution, or
+ person.</xsd:documentation>
+ </xsd:annotation>
+ </xsd:element>
+ <xsd:simpleType name="contactRoleType">
+ <xsd:restriction base="xsd:string">
+ <xsd:enumeration value="data administrator"/>
+ <xsd:enumeration value="system administrator"/>
+ </xsd:restriction>
+ </xsd:simpleType>
+ <xsd:simpleType name="contactRoleExtensionType">
+ <xsd:union memberTypes="contactRoleType xsd:string"/>
+ </xsd:simpleType>
+ <xsd:complexType name="entityInformationType">
+ <xsd:annotation>
+ <xsd:documentation>Entity information.</xsd:documentation>
+ </xsd:annotation>
+ <xsd:sequence>
+ <xsd:element name="identifier" type="xsd:string" minOccurs="0">
+ <xsd:annotation>
+ <xsd:documentation>A global unique identifier for the entity.</xsd:documentation>
+ </xsd:annotation>
+ </xsd:element>
+ <xsd:element name="name" type="languageAwareElementType" maxOccurs="unbounded">
+ <xsd:annotation>
+ <xsd:documentation>The name of the entity possibly in different
+ languages.</xsd:documentation>
+ </xsd:annotation>
+ </xsd:element>
+ <xsd:element name="acronym" type="xsd:string" minOccurs="0">
+ <xsd:annotation>
+ <xsd:documentation>An acronym for the entity name</xsd:documentation>
+ </xsd:annotation>
+ </xsd:element>
+ <xsd:element name="logoURL" type="xsd:anyURI" minOccurs="0">
+ <xsd:annotation>
+ <xsd:documentation>A URL to a small logo of the entity.</xsd:documentation>
+ </xsd:annotation>
+ </xsd:element>
+ <xsd:element name="description" type="languageAwareElementType" minOccurs="0" maxOccurs="unbounded">
+ <xsd:annotation>
+ <xsd:documentation>The description of the entity possibly in different
+ languages.</xsd:documentation>
+ </xsd:annotation>
+ </xsd:element>
+ <xsd:element name="address" type="xsd:string" minOccurs="0"/>
+ <xsd:element name="relatedInformation" type="xsd:anyURI" minOccurs="0" maxOccurs="unbounded">
+ <xsd:annotation>
+ <xsd:documentation>Other related information about this entity found at the
+ specified URL.</xsd:documentation>
+ </xsd:annotation>
+ </xsd:element>
+ <xsd:element name="hasContact" maxOccurs="unbounded">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="role" type="contactRoleExtensionType" maxOccurs="unbounded" />
+ <xsd:element ref="vcard:VCARD"/>
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element ref="geo:Point" minOccurs="0">
+ <xsd:annotation>
+ <xsd:documentation>Location of the entity in decimal WGS84 latitude and longitude (and optional altitude) as defined by the W3C Basic Geo Vocabulary</xsd:documentation>
+ </xsd:annotation>
+ </xsd:element>
+ <xsd:element ref="custom" minOccurs="0"/>
+ </xsd:sequence>
+ <xsd:attribute ref="xml:lang" use="optional"/>
+ </xsd:complexType>
+ <!-- ===== INVENTORY===== -->
+ <xsd:element name="inventory" type="inventoryResultType" />
+ <xsd:complexType name="inventoryResultType">
+ <xsd:annotation>
+ <xsd:documentation>Format of inventory operation result.</xsd:documentation>
+ </xsd:annotation>
+ <xsd:sequence>
+ <xsd:element name="concepts">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element ref="concept" maxOccurs="unbounded"/>
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="record" minOccurs="0" maxOccurs="unbounded">
+ <xsd:annotation>
+ <xsd:documentation>A distinct combination of values for all "inventoried"
+ concepts. The optional attribute "count" is used to count the number of
+ occurrences for this distinct combination and will only be set if the count
+ flag was used when requesting an inventory.</xsd:documentation>
+ </xsd:annotation>
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="value" maxOccurs="unbounded">
+ <xsd:annotation>
+ <xsd:documentation>A single value for a single concept. The sequence
+ of the values should correspond to the sequence used in the
+ request.</xsd:documentation>
+ </xsd:annotation>
+ <xsd:complexType>
+ <xsd:simpleContent>
+ <xsd:extension base="xsd:string"/>
+ </xsd:simpleContent>
+ </xsd:complexType>
+ </xsd:element>
+ </xsd:sequence>
+ <xsd:attribute name="count" type="xsd:positiveInteger" use="optional"/>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="summary" type="resultSummaryType">
+ <xsd:annotation>
+ <xsd:documentation>Used to show information about the number of records for
+ counting and paging purposes.</xsd:documentation>
+ </xsd:annotation>
+ </xsd:element>
+ </xsd:sequence>
+ </xsd:complexType>
+ <!-- ===== SEARCH ===== -->
+ <xsd:element name="search" type="searchResultType" />
+ <xsd:complexType name="searchResultType">
+ <xsd:annotation>
+ <xsd:documentation>Format of search operation result.</xsd:documentation>
+ </xsd:annotation>
+ <xsd:sequence>
+ <xsd:any/>
+ <xsd:element name="summary" type="resultSummaryType">
+ <xsd:annotation>
+ <xsd:documentation>Used to show information about the number of records for
+ counting and paging purposes.</xsd:documentation>
+ </xsd:annotation>
+ </xsd:element>
+ </xsd:sequence>
+ </xsd:complexType>
+ <!-- ===== ERROR ===== -->
+ <xsd:element name="error" type="diagnosticMessageType"/>
+ <!-- ===== LOGGED ===== -->
+ <xsd:element name="logged" type="loggedResultType"/>
+ <xsd:complexType name="loggedResultType">
+ <xsd:annotation>
+ <xsd:documentation>Format of logged operation result indicated by setting a true logOnly attribute in the request.</xsd:documentation>
+ </xsd:annotation>
+ </xsd:complexType>
+</xsd:schema>
1
0
Dear TDWG GUID group members,
As we have also mentioned in an earlier message, we have produced a
roadmap that describes our priorities for the next 6 to 9 months for
LSID work.
We would like ask you to to please take a look at it and provide
feedback. The document is available at:
http://www.tdwg.gbif.org/uploads/media/LSID_Roadmap_11_10_2006.doc
To provide feedback, please follow the instructions at:
http://wiki.gbif.org/guidwiki/wikka.php?wakka=LSIDRoadmapOct2006
Please make sure to point out any tasks that you consider important
and that have not been listed on the roadmap.
Thank you very much in advance for your help.
Best regards,
The TDWG Infrastructure Team (TIP)
3
2
10 Oct '06
Author: renato
Date: 2006-10-10 14:28:12 +0200 (Tue, 10 Oct 2006)
New Revision: 584
Modified:
trunk/protocol/tapir.xsd
Log:
* Removed <diagnostics> element from requestType.
* Updated TAPIR web address.
* Removed authors from appinfo (complete list will appear in the specs).
* Updated some of the annotations.
Modified: trunk/protocol/tapir.xsd
===================================================================
--- trunk/protocol/tapir.xsd 2006-10-10 12:15:40 UTC (rev 583)
+++ trunk/protocol/tapir.xsd 2006-10-10 12:28:12 UTC (rev 584)
@@ -12,17 +12,14 @@
<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
+ It is 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.
+ structure.
</xsd:documentation>
<xsd:appinfo>
<dc:title>TAPIR XML Schema</dc:title>
- <dc:creator>Markus Döring [m.doering(a)bgbm.org]</dc:creator>
- <dc:creator>Renato De Giovanni [renato(a)cria.org.br]</dc:creator>
- <dc:relation>http://ww3.bgbm.org/protocolwiki</dc:relation>
- <dc:contributor>Charles Copp [eim(a)globalnet.co.uk]</dc:contributor>
+ <dc:relation>http://www.tdwg.gbif.org/subgroups/tapir/</dc:relation>
</xsd:appinfo>
</xsd:annotation>
<!-- ============================================= -->
@@ -111,8 +108,7 @@
<xsd:documentation>A Header is part of request and response messages. The Header describes the source of the request or response
and optionally its destination. It may also describe the software that sent the request or response
and there is a custom section for extending the information e.g. with information related to security or access.
- If the noresponse attribute is set to true the request is meant for logging only and no response should be generated.
- The header can list several sources, where for instance, a request is cascaded through one or more portals. </xsd:documentation>
+ 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">
@@ -143,7 +139,7 @@
<xsd:sequence minOccurs="0">
<xsd:element name="dependency" type="softwareInformationType" minOccurs="0" maxOccurs="unbounded">
<xsd:annotation>
- <xsd:documentation>A singledependency for the software,e.g. a library, framework, component, OS,...</xsd:documentation>
+ <xsd:documentation>A single dependency for the software, e.g. a library, framework, component, OS, etc.</xsd:documentation>
</xsd:annotation>
</xsd:element>
</xsd:sequence>
@@ -195,7 +191,7 @@
</xsd:complexType>
<xsd:complexType name="diagnosticsListType">
<xsd:annotation>
- <xsd:documentation>Provides the means to present a list of diagnostic messages from the service.</xsd:documentation>
+ <xsd:documentation>Provides the means to present a list of diagnostic messages from the service.</xsd:documentation>
</xsd:annotation>
<xsd:sequence minOccurs="0">
<xsd:element name="diagnostic" type="diagnosticMessageType" minOccurs="0" maxOccurs="unbounded"/>
@@ -740,9 +736,6 @@
</xsd:complexType>
</xsd:element>
<xsd:element name="search">
- <xsd:annotation>
- <xsd:documentation>A search with TBD... </xsd:documentation>
- </xsd:annotation>
<xsd:complexType>
<xsd:choice>
<xsd:element name="template" type="externalResourceType"/>
@@ -754,7 +747,6 @@
</xsd:complexType>
</xsd:element>
</xsd:choice>
- <xsd:element name="diagnostics" type="diagnosticsListType" minOccurs="0"/>
</xsd:sequence>
</xsd:complexType>
<xsd:attributeGroup name="globalParametersGroup">
@@ -772,7 +764,7 @@
<!-- ============================================= -->
<xsd:element name="response" type="responseType">
<xsd:annotation>
- <xsd:documentation>Global element representing a response.This is a root element
+ <xsd:documentation>Global element representing a response. This is a root element
and must contain reference to the schema and namespaces used</xsd:documentation>
</xsd:annotation>
</xsd:element>
@@ -795,8 +787,8 @@
<xsd:element name="diagnostics" type="diagnosticsListType" minOccurs="0">
<xsd:annotation>
<xsd:documentation>The diagnostics element is an optional part of TAPIR requests and response messages.
- Diagnostics may contain many pieces of information used for debugging and providing warnings or error messages.
- Individual diagnostics are held in a diagnosticList with an enumerated attribute for level and attributes for code and time.
+ 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>
1
0
Yes but some aren't replaced by anything, i.e. if a record was simply
entered in error
I could say isReplacedBy and then put a null ID in but that's a
little subtle ...
Sally
> Sally,
>
> Do you need anything more than dc:isReplacedBy? The presence of this in
> itself says the record has been suppressed/replaced.
>
> Regards
>
> Rod
>
> On 2 Oct 2006, at 15:12, Sally Hinchcliffe wrote:
>
> > Apologies for cross-posting but I'm trying to get a reasonably quick
> > response ...
> >
> > I'm trying to finalise the IPNI LSID server as far as I can. One of
> > the issues that was raised at the GUIDs workshop was how to handle
> > deleted records. In IPNI we suppress records where they have been
> > duplicated. There are a high number of duplicates in IPNI and as we
> > start identifying true duplicates and linking them, the number of
> > suppressed or deprecated records will rise and the chances of someone
> > having an id which resolves to a now suppressed record will become
> > quite high
> >
> > What I'd like to do if someone asks for a suppressed record is to
> > return metadata which just indicates the record is suppressed (or
> > deleted) plus if relevant a pointer to the preferred record
> >
> > For the latter we can use <dc:isReplacedBy> which I think is what IF
> > are using
> >
> > For the former - I couldn't find any really obvious existing tag in
> > use out there. What are other people using? Or do you have any
> > suggestions or examples of deleted records?
> >
> > Sally
> > *** Sally Hinchcliffe
> > *** Computer section, Royal Botanic Gardens, Kew
> > *** tel: +44 (0)20 8332 5708
> > *** S.Hinchcliffe(a)rbgkew.org.uk
> >
> >
> > _______________________________________________
> > TDWG-GUID mailing list
> > TDWG-GUID(a)mailman.nhm.ku.edu
> > http://mailman.nhm.ku.edu/mailman/listinfo/tdwg-guid
> >
> >
> ------------------------------------------------------------------------
> ----------------------------------------
> Professor Roderic D. M. Page
> Editor, Systematic Biology
> DEEB, IBLS
> Graham Kerr Building
> University of Glasgow
> Glasgow G12 8QP
> United Kingdom
>
> Phone: +44 141 330 4778
> Fax: +44 141 330 2792
> email: r.page(a)bio.gla.ac.uk
> web: http://taxonomy.zoology.gla.ac.uk/rod/rod.html
> iChat: aim://rodpage1962
> reprints: http://taxonomy.zoology.gla.ac.uk/rod/pubs.html
>
> Subscribe to Systematic Biology through the Society of Systematic
> Biologists Website: http://systematicbiology.org
> Search for taxon names: http://darwin.zoology.gla.ac.uk/~rpage/portal/
> Find out what we know about a species: http://ispecies.org
> Rod's rants on phyloinformatics: http://iphylo.blogspot.com
> Rod's rants on ants: http://semant.blogspot.com
>
*** Sally Hinchcliffe
*** Computer section, Royal Botanic Gardens, Kew
*** tel: +44 (0)20 8332 5708
*** S.Hinchcliffe(a)rbgkew.org.uk
4
8
Hi Everyone,
Does anyone have/or know of any good examples of using Jena to output
RDF metadata with non-typical namespaces such as TCS/RDF?
Currently I have the following code for my metadata method(I know it's
wrong!).
String TN_NS = "http://tdwg.org/2006/03/12/TaxonNames/";
ByteArrayOutputStream byteStream = new ByteArrayOutputStream();
Model model = ModelFactory.createDefaultModel();
Resource res = model.createResource("http://test");
res.addProperty(model.createProperty(TN_NS,"testProperty"),"test");
model.write(byteStream, "RDF/XML-ABBREV");
return new MetadataResponse(new
ByteArrayInputStream(byteStream.toByteArray()),null,MetadataResponse.RDF
_FORMAT);
...which gives me.
<rdf:RDF
xmlns:j.0="http://tdwg.org/2006/03/12/TaxonNames/"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
<rdf:Description rdf:about="http://test">
<j.0:testProperty >test</j.0:testProperty>
</rdf:Description>
</rdf:RDF>
...whereas I could really do with something along the lines of the IPNI
metadata.
<rdf:RDF xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:dcterms="http://purl.org/dc/terms/"
xmlns:tn="http://tdwg.org/2006/03/12/TaxonNames/"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
<!-- example family (has an unlinked typifying name with
non-standard format data)-->
<tn:TaxonName
rdf:about="urn:lsid:ipni.org:names:30000959-2:1.1.2.1">
<tn:nomenclaturalCode rdf:resource="&tn;#botanical" />
<dc:title>Amaryllidaceae J.St.-Hil.</dc:title>
<dcterms:created>2004-01-20 00:00:00.0</dcterms:created>
<dcterms:modified>2005-06-23
15:45:33.0</dcterms:modified>
<tn:rankString>fam.</tn:rankString>
<tn:nameComplete>Amaryllidaceae</tn:nameComplete>
<tn:uninomial>Amaryllidaceae</tn:uninomial>
<tn:authorship>J.St.-Hil.</tn:authorship>
<tn:publishedIn>Expos. Fam. Nat. 1: 134. 1805 [Feb-Apr
1805]</tn:publishedIn>
<tn:year>1805</tn:year>
<tn:typifiedBy>
<tn:NomenclaturalType>
<dc:title>Amaryllis Linnaeus, nom.
cons.</dc:title>
</tn:NomenclaturalType>
</tn:typifiedBy>
</tn:TaxonName>
I think the main problem I have is creating resources that aren't
defined as vocabularies within Jena already. I can't seem to find a way
to create that <tn:TaxonName root resource element.
I'm starting to think that just outputting vanilla text could be the
best option here, or am I barking up the wrong tree?
Many thanks, Peter.
Peter Hollas MSc BSc(hons) (Peter.Hollas(a)thomson.com)
Software Engineer /Systems Administrator
Thomson Zoological
Innovation Centre
York Science Park
Heslington
York
YO10 5DG
Tel: 01904-435113
Fax: 01904-435114
7
16
Apologies for cross-posting but I'm trying to get a reasonably quick
response ...
I'm trying to finalise the IPNI LSID server as far as I can. One of
the issues that was raised at the GUIDs workshop was how to handle
deleted records. In IPNI we suppress records where they have been
duplicated. There are a high number of duplicates in IPNI and as we
start identifying true duplicates and linking them, the number of
suppressed or deprecated records will rise and the chances of someone
having an id which resolves to a now suppressed record will become
quite high
What I'd like to do if someone asks for a suppressed record is to
return metadata which just indicates the record is suppressed (or
deleted) plus if relevant a pointer to the preferred record
For the latter we can use <dc:isReplacedBy> which I think is what IF
are using
For the former - I couldn't find any really obvious existing tag in
use out there. What are other people using? Or do you have any
suggestions or examples of deleted records?
Sally
*** Sally Hinchcliffe
*** Computer section, Royal Botanic Gardens, Kew
*** tel: +44 (0)20 8332 5708
*** S.Hinchcliffe(a)rbgkew.org.uk
2
1