XML Schema "OAI-PMH.xsd"
Target Namespace:
http://www.openarchives.org/OAI/2.0/
Defined Components:
1 global element, 33 local elements, 17 complexTypes, 12 simpleTypes
Default Namespace-Qualified Form:
Local Elements: qualified; Local Attributes: unqualified
Schema Location:
/home/msdemlei/gavo/trunk/gavo/resources/schemata/OAI-PMH.xsd; see XML source
Annotation
XML Schema which can be used to validate replies to all OAI-PMH v2.0 requests. Herbert Van de Sompel, 2002-05-13. Validated with XML Spy v.4.3 on 2002-05-13. Validated with XSV 1.203.2.45/1.106.2.22 on 2002-05-13. Added definition of protocolVersionType instead of using anonymous type. No change of function. Simeon Warner, 2004-03-29. Tightened definition of UTCdatetimeType to enforce the restriction to UTC Z notation. Simeon Warner, 2004-09-14. Corrected pattern matches for setSpecType and metedataPrefixType to agree with protocol specification. Simeon Warner, 2004-10-12. $Date: 2004/10/12 15:20:29 $
XML Source
<?xml version="1.0" encoding="UTF-8"?>
<schema attributeFormDefault="unqualified" elementFormDefault="qualified" targetNamespace="http://www.openarchives.org/OAI/2.0/" xmlns="http://www.w3.org/2001/XMLSchema" xmlns:oai="http://www.openarchives.org/OAI/2.0/">
<annotation>
<documentation>
XML Schema which can be used to validate replies to all OAI-PMH
v2.0 requests. Herbert Van de Sompel, 2002-05-13.
Validated with XML Spy v.4.3 on 2002-05-13.
Validated with XSV 1.203.2.45/1.106.2.22 on 2002-05-13.
Added definition of protocolVersionType instead of using anonymous
type. No change of function. Simeon Warner, 2004-03-29.
Tightened definition of UTCdatetimeType to enforce the restriction
to UTC Z notation. Simeon Warner, 2004-09-14.
Corrected pattern matches for setSpecType and metedataPrefixType
to agree with protocol specification. Simeon Warner, 2004-10-12.
$Date: 2004/10/12 15:20:29 $
</documentation>
</annotation>
<element name="OAI-PMH" type="oai:OAI-PMHtype"/>
<complexType name="OAI-PMHtype">
<sequence>
<element name="responseDate" type="dateTime"/>
<element name="request" type="oai:requestType"/>
<choice>
<element maxOccurs="unbounded" name="error" type="oai:OAI-PMHerrorType"/>
<element name="Identify" type="oai:IdentifyType"/>
<element name="ListSets" type="oai:ListSetsType"/>
<element name="GetRecord" type="oai:GetRecordType"/>
<element name="ListIdentifiers" type="oai:ListIdentifiersType"/>
<element name="ListRecords" type="oai:ListRecordsType"/>
</choice>
</sequence>
</complexType>
<complexType name="requestType">
<annotation>
<documentation>
Define requestType, indicating the protocol request that
led to the response. Element content is BASE-URL, attributes are arguments
of protocol request, attribute-values are values of arguments of protocol
request
</documentation>
</annotation>
<simpleContent>
<extension base="anyURI">
<attribute name="verb" type="oai:verbType" use="optional"/>
<attribute name="identifier" type="oai:identifierType" use="optional"/>
<attribute name="metadataPrefix" type="oai:metadataPrefixType" use="optional"/>
<attribute name="from" type="oai:UTCdatetimeType" use="optional"/>
<attribute name="until" type="oai:UTCdatetimeType" use="optional"/>
<attribute name="set" type="oai:setSpecType" use="optional"/>
<attribute name="resumptionToken" type="string" use="optional"/>
</extension>
</simpleContent>
</complexType>
<simpleType name="verbType">
<restriction base="string">
<enumeration value="Identify"/>
<enumeration value="ListMetadataFormats"/>
<enumeration value="ListSets"/>
<enumeration value="GetRecord"/>
<enumeration value="ListIdentifiers"/>
<enumeration value="ListRecords"/>
</restriction>
</simpleType>
<!-- define OAI-PMH error conditions -->
<!-- =============================== -->
<complexType name="OAI-PMHerrorType">
<simpleContent>
<extension base="string">
<attribute name="code" type="oai:OAI-PMHerrorcodeType" use="required"/>
</extension>
</simpleContent>
</complexType>
<simpleType name="OAI-PMHerrorcodeType">
<restriction base="string">
<enumeration value="cannotDisseminateFormat"/>
<enumeration value="idDoesNotExist"/>
<enumeration value="badArgument"/>
<enumeration value="badVerb"/>
<enumeration value="noMetadataFormats"/>
<enumeration value="noRecordsMatch"/>
<enumeration value="badResumptionToken"/>
<enumeration value="noSetHierarchy"/>
</restriction>
</simpleType>
<!-- define OAI-PMH verb containers -->
<!-- ============================== -->
<complexType name="IdentifyType">
<sequence>
<element name="repositoryName" type="string"/>
<element name="baseURL" type="anyURI"/>
<element name="protocolVersion" type="oai:protocolVersionType"/>
<element maxOccurs="unbounded" name="adminEmail" type="oai:emailType"/>
<element name="earliestDatestamp" type="oai:UTCdatetimeType"/>
<element name="deletedRecord" type="oai:deletedRecordType"/>
<element name="granularity" type="oai:granularityType"/>
<element maxOccurs="unbounded" minOccurs="0" name="compression" type="string"/>
<element maxOccurs="unbounded" minOccurs="0" name="description" type="oai:descriptionType"/>
</sequence>
</complexType>
<complexType name="ListMetadataFormatsType">
<sequence>
<element maxOccurs="unbounded" name="metadataFormat" type="oai:metadataFormatType"/>
</sequence>
</complexType>
<complexType name="ListSetsType">
<sequence>
<element maxOccurs="unbounded" name="set" type="oai:setType"/>
<element minOccurs="0" name="resumptionToken" type="oai:resumptionTokenType"/>
</sequence>
</complexType>
<complexType name="GetRecordType">
<sequence>
<element name="record" type="oai:recordType"/>
</sequence>
</complexType>
<complexType name="ListRecordsType">
<sequence>
<element maxOccurs="unbounded" name="record" type="oai:recordType"/>
<element minOccurs="0" name="resumptionToken" type="oai:resumptionTokenType"/>
</sequence>
</complexType>
<complexType name="ListIdentifiersType">
<sequence>
<element maxOccurs="unbounded" name="header" type="oai:headerType"/>
<element minOccurs="0" name="resumptionToken" type="oai:resumptionTokenType"/>
</sequence>
</complexType>
<!-- define basic types used in replies to
GetRecord, ListRecords, ListIdentifiers
-->
<!-- ======================================= -->
<complexType name="recordType">
<annotation>
<documentation>
A record has a header, a metadata part, and
an optional about container
</documentation>
</annotation>
<sequence>
<element name="header" type="oai:headerType"/>
<element minOccurs="0" name="metadata" type="oai:metadataType"/>
<element maxOccurs="unbounded" minOccurs="0" name="about" type="oai:aboutType"/>
</sequence>
</complexType>
<complexType name="headerType">
<annotation>
<documentation>
A header has a unique identifier, a datestamp,
and setSpec(s) in case the item from which
the record is disseminated belongs to set(s).
the header can carry a deleted status indicating
that the record is deleted.
</documentation>
</annotation>
<sequence>
<element name="identifier" type="oai:identifierType"/>
<element name="datestamp" type="oai:UTCdatetimeType"/>
<element maxOccurs="unbounded" minOccurs="0" name="setSpec" type="oai:setSpecType"/>
</sequence>
<attribute name="status" type="oai:statusType" use="optional"/>
</complexType>
<simpleType name="identifierType">
<restriction base="anyURI"/>
</simpleType>
<simpleType name="statusType">
<restriction base="string">
<enumeration value="deleted"/>
</restriction>
</simpleType>
<complexType name="metadataType">
<annotation>
<documentation>
Metadata must be expressed in XML that complies
with another XML Schema (namespace=#other). Metadata must be
explicitly qualified in the response.
</documentation>
</annotation>
<sequence>
<any namespace="##other" processContents="strict"/>
</sequence>
</complexType>
<complexType name="aboutType">
<annotation>
<documentation>
Data "about" the record must be expressed in XML
that is compliant with an XML Schema defined by a community.
</documentation>
</annotation>
<sequence>
<any namespace="##other" processContents="strict"/>
</sequence>
</complexType>
<complexType name="resumptionTokenType">
<annotation>
<documentation>
A resumptionToken may have 3 optional attributes
and can be used in ListSets, ListIdentifiers, ListRecords
responses.
</documentation>
</annotation>
<simpleContent>
<extension base="string">
<attribute name="expirationDate" type="dateTime" use="optional"/>
<attribute name="completeListSize" type="positiveInteger" use="optional"/>
<attribute name="cursor" type="nonNegativeInteger" use="optional"/>
</extension>
</simpleContent>
</complexType>
<complexType name="descriptionType">
<annotation>
<documentation>
The descriptionType is used for the description
element in Identify and for setDescription element in ListSets.
Content must be compliant with an XML Schema defined by a
community.
</documentation>
</annotation>
<sequence>
<any namespace="##other" processContents="strict"/>
</sequence>
</complexType>
<simpleType name="UTCdatetimeType">
<annotation>
<documentation>
Datestamps are to either day (type date)
or to seconds granularity (type oai:UTCdateTimeZType)
</documentation>
</annotation>
<union memberTypes="date oai:UTCdateTimeZType"/>
</simpleType>
<simpleType name="UTCdateTimeZType">
<restriction base="dateTime">
<pattern value=".*Z"/>
</restriction>
</simpleType>
<!-- define types used for Identify verb only -->
<!-- ======================================== -->
<simpleType name="protocolVersionType">
<restriction base="string">
<enumeration value="2.0"/>
</restriction>
</simpleType>
<simpleType name="emailType">
<restriction base="string">
<pattern value="\S+@(\S+\.)+\S+"/>
</restriction>
</simpleType>
<simpleType name="deletedRecordType">
<restriction base="string">
<enumeration value="no"/>
<enumeration value="persistent"/>
<enumeration value="transient"/>
</restriction>
</simpleType>
<simpleType name="granularityType">
<restriction base="string">
<enumeration value="YYYY-MM-DD"/>
<enumeration value="YYYY-MM-DDThh:mm:ssZ"/>
</restriction>
</simpleType>
<!-- define types used for ListMetadataFormats verb only -->
<!-- =================================================== -->
<complexType name="metadataFormatType">
<sequence>
<element name="metadataPrefix" type="oai:metadataPrefixType"/>
<element name="schema" type="anyURI"/>
<element name="metadataNamespace" type="anyURI"/>
</sequence>
</complexType>
<simpleType name="metadataPrefixType">
<restriction base="string">
<pattern value="[A-Za-z0-9\-_\.!~\*'\(\)]+"/>
</restriction>
</simpleType>
<!-- define types used for ListSets verb -->
<!-- =================================== -->
<complexType name="setType">
<sequence>
<element name="setSpec" type="oai:setSpecType"/>
<element name="setName" type="string"/>
<element maxOccurs="unbounded" minOccurs="0" name="setDescription" type="oai:descriptionType"/>
</sequence>
</complexType>
<simpleType name="setSpecType">
<restriction base="string">
<pattern value="([A-Za-z0-9\-_\.!~\*'\(\)])+(:[A-Za-z0-9\-_\.!~\*'\(\)]+)*"/>
</restriction>
</simpleType>
</schema>

This XML schema documentation has been generated with DocFlex/XML RE 1.8.0 using DocFlex/XML XSDDoc 2.2.0 template set.
DocFlex/XML RE is a reduced edition of DocFlex/XML, which is a tool for programming and running highly sophisticated documentation and reports generators by the data obtained from any kind of XML files. The actual doc-generators are implemented in the form of special templates that are designed visually using a high quality Template Designer GUI basing on the XML schema (or DTD) files describing the data source XML.
DocFlex/XML XSDDoc is a commercial template application of DocFlex/XML that implements a high-end XML Schema documentation generator with simultaneous support of framed multi-file HTML, single-file HTML and RTF output formats. (More formats are planned in the future).
A commercial license for "DocFlex/XML XSDDoc" will allow you:
  • To configure the generated documentation so much as you want. Thanks to our template technology, it was possible to support more than 300 template parameters (working the same as "options" of an ordinary doc-gen), which will give you an unprecedented control over the generated content!
  • To use certain features disabled in the free mode (such as the full documenting of substitution groups).
  • To enable/disable documenting of the initial, imported, included and redefined XML schemas selectively.
  • To document local element components both globally and locally (similar to attributes).
  • To enable/disable reproducing of namespace prefixes.
  • To format your annotations with XHTML tags and reproduce that formatting both in HTML and RTF output.
  • To insert images in your annotations using XHTML <img> tags (supported both in HTML and RTF output).
  • To use PlainDoc.tpl main template to generate all the XML schema documentation in the form of a single HTML file.
  • To use the same template to generate the incredible quality RTF documentation.
  • To document only selected XML schema components specified by name.
  • To remove this very advertisement text
Once having only such a license, you will be able to run the fully-featured XML schema documentation generator both with DocFlex/XML SDK and with DocFlex/XML RE, which is a reduced free edition containing only the template interpretor / output generator. No other licenses will be required!
But this is not all. In addition to it, a commercial license for DocFlex/XML SDK will allow you to modify the XSDDoc templates themselves as much as you want. You will be able to achieve whatever was impossible to do with the template parameters only. And, of course, you could develop any template applications by your own!
Please note: By purchasing a license for this software, you not only acquire a useful tool, you will also make an important investment in its future development, the result of which you could enjoy later by yourself. Every single your purchase matters and makes a difference for us!
To buy a license, please follow this link: http://www.filigris.com/shop/