OAI logo

Implementation Guidelines for the Open Archives Initiative Protocol for Metadata Harvesting

- An XML Schema to represent MARC records

Protocol Version 2.0 of 2002-06-14
Document Version 2002/06/09T16:43:00Z
http://www.openarchives.org/OAI/2.0/guidelines-oai_marc.htm

Editors

The OAI Executive:
Carl Lagoze <lagoze@cs.cornell.edu> -- Cornell University - Computer Science
Herbert Van de Sompel <herbertv@lanl.gov> -- Los Alamos National Laboratory - Research Library

From the OAI Technical Committee:
Michael Nelson <m.l.nelson@larc.nasa.gov> -- NASA - Langley Research Center
Simeon Warner <simeon@cs.cornell.edu> -- Cornell University - Computer Science

This document is one part of the Implementation Guidelines that accompany the Open Archives Initiative Protocol for Metadata Harvesting (OAI-PMH).

An XML Schema to represent MARC records

Since the release of the MARCXML Schema for MARC21 metadata by the Library of Congress, June 2002, usage of MARCXML instead of oai_marc (described hereafter) is strongly recommended. Also a stylesheet supporting migration from oai_marc to MARCXML is provided on the MARCXML pages of the Library of Congress.

The following schema may be used to express MARC records in an XML format. This schema has been successfully applied for MARC21 records and it is likely that it could also be used for older versions of USMARC and CANMARC. This schema was introduced in OAI-PMH version 1.0 and revised (because of changes to XML Schema) in OAI-PMH version 1.1.

It is recommended that the metadataPrefix "oai_marc" be used with this metadata format.

oai_marc

<schema xmlns="http://www.w3.org/2001/XMLSchema"
   targetNamespace="http://www.openarchives.org/OAI/1.1/oai_marc"
   xmlns:oai_marc="http://www.openarchives.org/OAI/1.1/oai_marc"
   elementFormDefault="qualified"
   attributeFormDefault="unqualified">

   <annotation>
     <documentation>
      Schema for MARC metadata format.
      MARC semantics available at http://www.loc.gov/marc/
      .....
      This Schema has been successfully applied for MARC21 records.  
      It is likely to also work for older versions of USMARC and CANMARC.  
      Application of this Schema for other MARC formats has not been 
      tested and may require some adjustments. 
      ..... 
      the Open Archives Initiative. 2000. 
      Herbert Van de Sompel
      MARC XML transportation format on which this schema is inspired 
           available at http://www.dlib.vt.edu/projects/OAi/marcxml/marcxml.html
     This Schema validated at http://www.w3.org/2001/03/webdata/xsv on 05-09-2001.
     </documentation>
    </annotation>

  <element name="oai_marc">
   <complexType>
     <sequence>
       <element ref="oai_marc:fixfield" minOccurs="1" maxOccurs="unbounded"/>
       <element ref="oai_marc:varfield" minOccurs="0" maxOccurs="unbounded"/>
     </sequence>
    <attribute name="status" type="string" use="optional"/>
    <attribute name="type" type="string" use="required"/>
    <attribute name="level" type="string" use="required"/>
    <attribute name="ctlType" type="string" use="optional"/>
    <attribute name="charEnc" type="string" use="optional"/>
    <attribute name="encLvl" type="string" use="optional"/>
    <attribute name="catForm" type="string" use="optional"/>
    <attribute name="lrRqrd" type="string" use="optional"/>
   </complexType>
  </element>

  <element name="fixfield">
   <complexType>
     <simpleContent>
        <extension base="oai_marc:fixfieldType">
        <attribute name="id" type="oai_marc:idType" use="required"/>
        </extension>
     </simpleContent>
   </complexType>
  </element>

  <simpleType name="fixfieldType">
    <restriction base="string">
    <!-- fixfield must be enclosed between quotes because spaces 
         are meaningfull -->
     <pattern value='[\n\r\t\s]*"[^"]*"[\n\r\t\s]*'/>
    </restriction>
  </simpleType>

  <element name="varfield">
   <complexType>
     <sequence>
       <element ref="oai_marc:subfield" minOccurs="1" maxOccurs="unbounded"/>
     </sequence>
    <attribute name="id" type="oai_marc:idType" use="required"/>
    <attribute name="i1" type="oai_marc:iType" use="required"/>
    <attribute name="i2" type="oai_marc:iType" use="required"/>
   </complexType>
  </element>

  <element name="subfield">
   <complexType>
     <simpleContent>
        <extension base="string">
        <attribute name="label" type="oai_marc:subfieldType" use="required"/>
        </extension>
     </simpleContent>
   </complexType>
  </element>

  <simpleType name="subfieldType">
    <restriction base="string">
    <!-- MARC subfield (the leading $ i not used)
         may be any lowercase alphabetic or numeric character  -->
     <pattern value="[0-9a-z]"/>
    </restriction>
  </simpleType>

  <simpleType name="idType">
    <restriction base="string">
    <!-- MARC tags are 1 to 3 digits -->
     <pattern value="[0-9]{1,3}"/>
    </restriction>
  </simpleType>

  <simpleType name="iType">
    <restriction base="string">
    <!-- MARC indicator may be any lowercase alphabetic or numeric character
         or a blank  -->
     <pattern value="[0-9a-z\s]?"/>
    </restriction>
  </simpleType>

 </schema>
This Schema is available at http://www.openarchives.org/OAI/1.1/oai_marc.xsd

Examples

An oai_marc formatted record:

<oai_marc
    status="n" type="a" level="m" encLvl="7" 
    catForm="a" xmlns="http://www.openarchives.org/OAI/1.1/oai_marc"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xsi:schemaLocation="http://www.openarchives.org/OAI/1.1/oai_marc 
                    http://www.openarchives.org/OAI/1.1/oai_marc.xsd">
<fixfield id="1">"   90178038 "</fixfield>
<fixfield id="3">"DLC"</fixfield>
<fixfield id="5">"19900814092959.1"</fixfield>
<fixfield id="8">"900724s1974    po af         000 0 fre  "</fixfield>
<varfield id="10" i1=" " i2=" ">
 <subfield label="a">90178038</subfield>
</varfield>
<varfield id="40" i1=" " i2=" ">
 <subfield label="a">DLC</subfield>
 <subfield label="c">DLC</subfield>
</varfield>
<varfield id="50" i1="0" i2="0">
 <subfield label="a">MLCL 90/00723 (Q)</subfield>
</varfield>
 <varfield id="100" i1="1" i2="0">
 <subfield label="a">Berthou, P. Y.</subfield>
 <subfield label="q">(Pierre Yves)</subfield>
</varfield>
 <varfield id="245" i1="1" i2="3">
 <subfield label="a">Le C&#x00E9;nomanien de l"Estr&#x00E9;madure 
                     portugaise /</subfield>
 <subfield label="c">par Pierre-Yves Berthou.</subfield>
</varfield>
<varfield id="260" i1="0" i2=" ">
 <subfield label="a">Lisboa :</subfield>
 <subfield label="b">Minist&#x00E9;rio da Economia, Secretaria de Estado
           da Ind&#x00FA;stria, Direc&#x00E7;&#x00E3;o-Geral de Minas e 
           Servi&#x00E7;os Geol&#x00F3;gicos, Servi&#x00E7;os 
           Geol&#x00F3;gicos de Portugal,</subfield>
 <subfield label="c">1973 [i.e. 1974]</subfield>
</varfield>
<varfield id="300" i1=" " i2=" ">
 <subfield label="a">168 p., 67 leaves of plates :</subfield>
 <subfield label="b">ill. ;</subfield>
 <subfield label="c">33 cm.</subfield>
</varfield>
<varfield id="490" i1="1" i2=" ">
 <subfield label="a">Mem&#x00F3;ria ;</subfield>
 <subfield label="v">no. 23 (Nova s&#x00E9;r.)</subfield>
</varfield>
<varfield id="653" i1="0" i2=" ">
 <subfield label="a">Stratigraphic geology;</subfield>
 <subfield label="a">Cenomanian deposits;</subfield>
 <subfield label="a">Portugal</subfield>
</varfield>
<varfield id="830" i1=" " i2="0">
 <subfield label="a">Mem&#x00F3;ria (Servi&#x00E7;os Geol&#x00F3;gicos 
           de Portugal) ;</subfield>
 <subfield label="v">nova s&#x00E9;r. no. 23.</subfield>
</varfield>
</oai_marc>

Acknowledgements

Support for the development of the OAI-PMH and for other Open Archives Initiative activities comes from the Digital Library Federation, the Coalition for Networked Information, and from the National Science Foundation through Grant No. IIS-9817416. Individuals who have played a significant role in the development of OAI-PMH version 2.0 are acknowledged in the protocol document.

Document History

2002-06-14: Release of this document, combined with the release of OAI-PMH version 2.0.