<schema xmlns="http://www.w3.org/2000/10/XMLSchema"
         xmlns:oai="http://www.openarchives.org/OAI/1.0/OAI_GetRecord"
         targetNamespace="http://www.openarchives.org/OAI/1.0/OAI_GetRecord"
         elementFormDefault="qualified"
         attributeFormDefault="unqualified">

 <annotation>
  <documentation>
    Schema to verify validity of responses to GetRecord OAI-protocol request.
    This Schema validated at http://www.w3.org/2000/09/webdata/xsv on 2001-04-23
    with XSV 1.176/1.87 of 2001/02/16 16:38:43
  </documentation>
 </annotation>

 <element name="GetRecord" type="oai:GetRecordType"/>

 <!-- response to GetRecord-request -->

 <complexType name="GetRecordType">
  <sequence>
    <element name="responseDate" minOccurs="1" maxOccurs="1" type="timeInstant"/>
    <element name="requestURL" minOccurs="1" maxOccurs="1" type="string"/>
    <element name="record" minOccurs="0" maxOccurs="1" type="oai:recordType"/>
  </sequence>
 </complexType>

 <!-- define recordType -->
 <!-- a record has a header and a metadata part -->

 <complexType name="recordType">
  <sequence>
    <element name="header" minOccurs="1" maxOccurs="1" type="oai:headerType"/>
    <element name="metadata" minOccurs="0" maxOccurs="1" type="oai:metadataType"/>
    <element name="about" minOccurs="0" maxOccurs="1" type="oai:aboutType"/>
  </sequence>
    <attribute name="status" use="optional" type="oai:statusType"/>
 </complexType>

 <!-- define headerType -->
 <!-- a header has a unique identifier and a datestamp -->

 <complexType name="headerType">
  <sequence>
    <element name="identifier" minOccurs="1" maxOccurs="1" type="uriReference"/>
    <element name="datestamp" minOccurs="1" maxOccurs="1" type="date"/>
  </sequence>
 </complexType>

 <!-- define metadataType -->
 <!-- metadata must be expressed in XML that is compliant with another XML Schema -->
 <!-- metadata must be explicitely qualified in the response -->

 <complexType name="metadataType">
  <sequence>
   <any namespace="##any" processContents="lax"/>
  </sequence>
 </complexType>

 <!-- define aboutType -->
 <!-- data "about" the record must be expressed in XML -->
 <!-- that is compliant with an XML Schema defined by a community -->

 <complexType name="aboutType">
  <sequence>
   <any namespace="##any" processContents="lax" minOccurs="0" maxOccurs="1"/>
  </sequence>
 </complexType>

 <!-- define statusType -->
 <!-- a record can have a status of "deleted" -->

 <simpleType name="statusType">
   <restriction base="string">
    <enumeration value="deleted"/>
   </restriction>
  </simpleType>

 </schema>