-<?xml version="1.0"?>\r
-<xsd:schema targetNamespace="http://www.loc.gov/MARC21/slim" xmlns="http://www.loc.gov/MARC21/slim" xmlns:xsd="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" attributeFormDefault="unqualified" version="1.1" xml:lang="en">\r
- <xsd:annotation>\r
- <xsd:documentation>\r
- MARCXML: The MARC 21 XML Schema\r
- Prepared by Corey Keith\r
-\r
- August 4, 2003 - Version 1.1 - Removed import of xml namespace and the use of xml:space="preserve" attributes on the leader and controlfields. \r
- Whitespace preservation in these subfields is accomplished by the use of xsd:whiteSpace value="preserve"\r
-\r
- May 21, 2002 - Version 1.0 - Initial Release\r
-\r
- This schema supports XML markup of MARC21 records as specified in the MARC documentation (see www.loc.gov). It allows tags with\r
- alphabetics and subfield codes that are symbols, neither of which are as yet used in the MARC 21 communications formats, but are \r
- allowed by MARC 21 for local data. The schema accommodates all types of MARC 21 records: bibliographic, holdings, bibliographic \r
- with embedded holdings, authority, classification, and community information.\r
- </xsd:documentation>\r
- </xsd:annotation>\r
- <xsd:element name="record" type="recordType" nillable="true" id="record.e">\r
- <xsd:annotation>\r
- <xsd:documentation>record is a top level container element for all of the field elements which compose the record</xsd:documentation>\r
- </xsd:annotation>\r
- </xsd:element>\r
- <xsd:element name="collection" type="collectionType" nillable="true" id="collection.e">\r
- <xsd:annotation>\r
- <xsd:documentation>collection is a top level container element for 0 or many records</xsd:documentation>\r
- </xsd:annotation>\r
- </xsd:element>\r
- <xsd:complexType name="collectionType" id="collection.ct">\r
- <xsd:sequence minOccurs="0" maxOccurs="unbounded">\r
- <xsd:element ref="record"/>\r
- </xsd:sequence>\r
- <xsd:attribute name="id" type="idDataType" use="optional"/>\r
- </xsd:complexType>\r
- <xsd:complexType name="recordType" id="record.ct">\r
- <xsd:sequence minOccurs="0">\r
- <xsd:element name="leader" type="leaderFieldType"/>\r
- <xsd:element name="controlfield" type="controlFieldType" minOccurs="0" maxOccurs="unbounded"/>\r
- <xsd:element name="datafield" type="dataFieldType" minOccurs="0" maxOccurs="unbounded"/>\r
- </xsd:sequence>\r
- <xsd:attribute name="type" type="recordTypeType" use="optional"/>\r
- <xsd:attribute name="id" type="idDataType" use="optional"/>\r
- </xsd:complexType>\r
- <xsd:simpleType name="recordTypeType" id="type.st">\r
- <xsd:restriction base="xsd:NMTOKEN">\r
- <xsd:enumeration value="Bibliographic"/>\r
- <xsd:enumeration value="Authority"/>\r
- <xsd:enumeration value="Holdings"/>\r
- <xsd:enumeration value="Classification"/>\r
- <xsd:enumeration value="Community"/>\r
- </xsd:restriction>\r
- </xsd:simpleType>\r
- <xsd:complexType name="leaderFieldType" id="leader.ct">\r
- <xsd:annotation>\r
- <xsd:documentation>MARC21 Leader, 24 bytes</xsd:documentation>\r
- </xsd:annotation>\r
- <xsd:simpleContent>\r
- <xsd:extension base="leaderDataType">\r
- <xsd:attribute name="id" type="idDataType" use="optional"/>\r
- </xsd:extension>\r
- </xsd:simpleContent>\r
- </xsd:complexType>\r
- <xsd:simpleType name="leaderDataType" id="leader.st">\r
- <xsd:restriction base="xsd:string">\r
- <xsd:whiteSpace value="preserve"/>\r
- <xsd:pattern value="[\d ]{5}[\dA-Za-z ]{1}[\dA-Za-z]{1}[\dA-Za-z ]{3}(2| )(2| )[\d ]{5}[\dA-Za-z ]{3}(4500| )"/>\r
- </xsd:restriction>\r
- </xsd:simpleType>\r
- <xsd:complexType name="controlFieldType" id="controlfield.ct">\r
- <xsd:annotation>\r
- <xsd:documentation>MARC21 Fields 001-009</xsd:documentation>\r
- </xsd:annotation>\r
- <xsd:simpleContent>\r
- <xsd:extension base="controlDataType">\r
- <xsd:attribute name="id" type="idDataType" use="optional"/>\r
- <xsd:attribute name="tag" type="controltagDataType" use="required"/>\r
- </xsd:extension>\r
- </xsd:simpleContent>\r
- </xsd:complexType>\r
- <xsd:simpleType name="controlDataType" id="controlfield.st">\r
- <xsd:restriction base="xsd:string">\r
- <xsd:whiteSpace value="preserve"/>\r
- </xsd:restriction>\r
- </xsd:simpleType>\r
- <xsd:simpleType name="controltagDataType" id="controltag.st">\r
- <xsd:restriction base="xsd:string">\r
- <xsd:whiteSpace value="preserve"/>\r
- <xsd:pattern value="00[1-9A-Za-z]{1}"/>\r
- </xsd:restriction>\r
- </xsd:simpleType>\r
- <xsd:complexType name="dataFieldType" id="datafield.ct">\r
- <xsd:annotation>\r
- <xsd:documentation>MARC21 Variable Data Fields 010-999</xsd:documentation>\r
- </xsd:annotation>\r
- <xsd:sequence maxOccurs="unbounded">\r
- <xsd:element name="subfield" type="subfieldatafieldType"/>\r
- </xsd:sequence>\r
- <xsd:attribute name="id" type="idDataType" use="optional"/>\r
- <xsd:attribute name="tag" type="tagDataType" use="required"/>\r
- <xsd:attribute name="ind1" type="indicatorDataType" use="required"/>\r
- <xsd:attribute name="ind2" type="indicatorDataType" use="required"/>\r
- </xsd:complexType>\r
- <xsd:simpleType name="tagDataType" id="tag.st">\r
- <xsd:restriction base="xsd:string">\r
- <xsd:whiteSpace value="preserve"/>\r
- <xsd:pattern value="(0([1-9A-Z][0-9A-Z])|0([1-9a-z][0-9a-z]))|(([1-9A-Z][0-9A-Z]{2})|([1-9a-z][0-9a-z]{2}))"/>\r
- </xsd:restriction>\r
- </xsd:simpleType>\r
- <xsd:simpleType name="indicatorDataType" id="ind.st">\r
- <xsd:restriction base="xsd:string">\r
- <xsd:whiteSpace value="preserve"/>\r
- <xsd:pattern value="[\da-z ]{1}"/>\r
- </xsd:restriction>\r
- </xsd:simpleType>\r
- <xsd:complexType name="subfieldatafieldType" id="subfield.ct">\r
- <xsd:simpleContent>\r
- <xsd:extension base="subfieldDataType">\r
- <xsd:attribute name="id" type="idDataType" use="optional"/>\r
- <xsd:attribute name="code" type="subfieldcodeDataType" use="required"/>\r
- </xsd:extension>\r
- </xsd:simpleContent>\r
- </xsd:complexType>\r
- <xsd:simpleType name="subfieldDataType" id="subfield.st">\r
- <xsd:restriction base="xsd:string">\r
- <xsd:whiteSpace value="preserve"/>\r
- </xsd:restriction>\r
- </xsd:simpleType>\r
- <xsd:simpleType name="subfieldcodeDataType" id="code.st">\r
- <xsd:restriction base="xsd:string">\r
- <xsd:whiteSpace value="preserve"/>\r
- <xsd:pattern value="[\da-z!"#$%&'()*+,-./:;<=>?{}_^`~\[\]\\]{1}"/>\r
- </xsd:restriction>\r
- </xsd:simpleType>\r
- <xsd:simpleType name="idDataType" id="id.st">\r
- <xsd:restriction base="xsd:ID"/>\r
- </xsd:simpleType>\r
-</xsd:schema>\r
+<?xml version="1.0"?>
+<xsd:schema targetNamespace="http://www.loc.gov/MARC21/slim" xmlns="http://www.loc.gov/MARC21/slim" xmlns:xsd="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" attributeFormDefault="unqualified" version="1.1" xml:lang="en">
+ <xsd:annotation>
+ <xsd:documentation>
+ MARCXML: The MARC 21 XML Schema
+ Prepared by Corey Keith
+
+ August 4, 2003 - Version 1.1 - Removed import of xml namespace and the use of xml:space="preserve" attributes on the leader and controlfields.
+ Whitespace preservation in these subfields is accomplished by the use of xsd:whiteSpace value="preserve"
+
+ May 21, 2002 - Version 1.0 - Initial Release
+
+ This schema supports XML markup of MARC21 records as specified in the MARC documentation (see www.loc.gov). It allows tags with
+ alphabetics and subfield codes that are symbols, neither of which are as yet used in the MARC 21 communications formats, but are
+ allowed by MARC 21 for local data. The schema accommodates all types of MARC 21 records: bibliographic, holdings, bibliographic
+ with embedded holdings, authority, classification, and community information.
+ </xsd:documentation>
+ </xsd:annotation>
+ <xsd:element name="record" type="recordType" nillable="true" id="record.e">
+ <xsd:annotation>
+ <xsd:documentation>record is a top level container element for all of the field elements which compose the record</xsd:documentation>
+ </xsd:annotation>
+ </xsd:element>
+ <xsd:element name="collection" type="collectionType" nillable="true" id="collection.e">
+ <xsd:annotation>
+ <xsd:documentation>collection is a top level container element for 0 or many records</xsd:documentation>
+ </xsd:annotation>
+ </xsd:element>
+ <xsd:complexType name="collectionType" id="collection.ct">
+ <xsd:sequence minOccurs="0" maxOccurs="unbounded">
+ <xsd:element ref="record"/>
+ </xsd:sequence>
+ <xsd:attribute name="id" type="idDataType" use="optional"/>
+ </xsd:complexType>
+ <xsd:complexType name="recordType" id="record.ct">
+ <xsd:sequence minOccurs="0">
+ <xsd:element name="leader" type="leaderFieldType"/>
+ <xsd:element name="controlfield" type="controlFieldType" minOccurs="0" maxOccurs="unbounded"/>
+ <xsd:element name="datafield" type="dataFieldType" minOccurs="0" maxOccurs="unbounded"/>
+ </xsd:sequence>
+ <xsd:attribute name="type" type="recordTypeType" use="optional"/>
+ <xsd:attribute name="id" type="idDataType" use="optional"/>
+ </xsd:complexType>
+ <xsd:simpleType name="recordTypeType" id="type.st">
+ <xsd:restriction base="xsd:NMTOKEN">
+ <xsd:enumeration value="Bibliographic"/>
+ <xsd:enumeration value="Authority"/>
+ <xsd:enumeration value="Holdings"/>
+ <xsd:enumeration value="Classification"/>
+ <xsd:enumeration value="Community"/>
+ </xsd:restriction>
+ </xsd:simpleType>
+ <xsd:complexType name="leaderFieldType" id="leader.ct">
+ <xsd:annotation>
+ <xsd:documentation>MARC21 Leader, 24 bytes</xsd:documentation>
+ </xsd:annotation>
+ <xsd:simpleContent>
+ <xsd:extension base="leaderDataType">
+ <xsd:attribute name="id" type="idDataType" use="optional"/>
+ </xsd:extension>
+ </xsd:simpleContent>
+ </xsd:complexType>
+ <xsd:simpleType name="leaderDataType" id="leader.st">
+ <xsd:restriction base="xsd:string">
+ <xsd:whiteSpace value="preserve"/>
+ <xsd:pattern value="[\d ]{5}[\dA-Za-z ]{1}[\dA-Za-z]{1}[\dA-Za-z ]{3}(2| )(2| )[\d ]{5}[\dA-Za-z ]{3}(4500| )"/>
+ </xsd:restriction>
+ </xsd:simpleType>
+ <xsd:complexType name="controlFieldType" id="controlfield.ct">
+ <xsd:annotation>
+ <xsd:documentation>MARC21 Fields 001-009</xsd:documentation>
+ </xsd:annotation>
+ <xsd:simpleContent>
+ <xsd:extension base="controlDataType">
+ <xsd:attribute name="id" type="idDataType" use="optional"/>
+ <xsd:attribute name="tag" type="controltagDataType" use="required"/>
+ </xsd:extension>
+ </xsd:simpleContent>
+ </xsd:complexType>
+ <xsd:simpleType name="controlDataType" id="controlfield.st">
+ <xsd:restriction base="xsd:string">
+ <xsd:whiteSpace value="preserve"/>
+ </xsd:restriction>
+ </xsd:simpleType>
+ <xsd:simpleType name="controltagDataType" id="controltag.st">
+ <xsd:restriction base="xsd:string">
+ <xsd:whiteSpace value="preserve"/>
+ <xsd:pattern value="00[1-9A-Za-z]{1}"/>
+ </xsd:restriction>
+ </xsd:simpleType>
+ <xsd:complexType name="dataFieldType" id="datafield.ct">
+ <xsd:annotation>
+ <xsd:documentation>MARC21 Variable Data Fields 010-999</xsd:documentation>
+ </xsd:annotation>
+ <xsd:sequence maxOccurs="unbounded">
+ <xsd:element name="subfield" type="subfieldatafieldType"/>
+ </xsd:sequence>
+ <xsd:attribute name="id" type="idDataType" use="optional"/>
+ <xsd:attribute name="tag" type="tagDataType" use="required"/>
+ <xsd:attribute name="ind1" type="indicatorDataType" use="required"/>
+ <xsd:attribute name="ind2" type="indicatorDataType" use="required"/>
+ </xsd:complexType>
+ <xsd:simpleType name="tagDataType" id="tag.st">
+ <xsd:restriction base="xsd:string">
+ <xsd:whiteSpace value="preserve"/>
+ <xsd:pattern value="(0([1-9A-Z][0-9A-Z])|0([1-9a-z][0-9a-z]))|(([1-9A-Z][0-9A-Z]{2})|([1-9a-z][0-9a-z]{2}))"/>
+ </xsd:restriction>
+ </xsd:simpleType>
+ <xsd:simpleType name="indicatorDataType" id="ind.st">
+ <xsd:restriction base="xsd:string">
+ <xsd:whiteSpace value="preserve"/>
+ <xsd:pattern value="[\da-z ]{1}"/>
+ </xsd:restriction>
+ </xsd:simpleType>
+ <xsd:complexType name="subfieldatafieldType" id="subfield.ct">
+ <xsd:simpleContent>
+ <xsd:extension base="subfieldDataType">
+ <xsd:attribute name="id" type="idDataType" use="optional"/>
+ <xsd:attribute name="code" type="subfieldcodeDataType" use="required"/>
+ </xsd:extension>
+ </xsd:simpleContent>
+ </xsd:complexType>
+ <xsd:simpleType name="subfieldDataType" id="subfield.st">
+ <xsd:restriction base="xsd:string">
+ <xsd:whiteSpace value="preserve"/>
+ </xsd:restriction>
+ </xsd:simpleType>
+ <xsd:simpleType name="subfieldcodeDataType" id="code.st">
+ <xsd:restriction base="xsd:string">
+ <xsd:whiteSpace value="preserve"/>
+ <xsd:pattern value="[\da-z!"#$%&'()*+,-./:;<=>?{}_^`~\[\]\\]{1}"/>
+ </xsd:restriction>
+ </xsd:simpleType>
+ <xsd:simpleType name="idDataType" id="id.st">
+ <xsd:restriction base="xsd:ID"/>
+ </xsd:simpleType>
+</xsd:schema>