1 line
49 KiB
XML
1 line
49 KiB
XML
<?xml version="1.0" encoding="UTF-8"?>
|
|
<!-- Via XMLSpy. Editor: Ray Denenberg, Library of Congress; rden@loc.gov -->
|
|
<xs:schema xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns="http://www.loc.gov/mods/v3" targetNamespace="http://www.loc.gov/mods/v3" elementFormDefault="qualified" attributeFormDefault="unqualified">
|
|
<!-- -->
|
|
<xs:import namespace="http://www.w3.org/XML/1998/namespace" schemaLocation="http://www.loc.gov/mods/xml.xsd"/>
|
|
<xs:import namespace="http://www.w3.org/1999/xlink" schemaLocation="http://www.loc.gov/standards/xlink/xlink.xsd"/>
|
|
<!--
|
|
MODS: Metadata Object Description Schema. See http://www.loc.gov/standards/mods/
|
|
|
|
****************************************************************
|
|
*
|
|
* MODS 3.5
|
|
*
|
|
* July 8, 2013
|
|
*
|
|
*****************************************************************
|
|
|
|
|
|
***************************************************
|
|
Changes in version 3.5
|
|
|
|
1. Reorganization of the schema. To allow a reader to more easily understand the definition of a particular element,
|
|
by minimizing the number of places within the schema that the reader must look.
|
|
This in itself does not introduce any substantive changes.
|
|
|
|
2. Add attribute @unit to <extent> of <physicalDescription> ( @unit is already defined for <extent> of <part>).
|
|
|
|
3. Add value 'rfc5646' to the enumerated list of values for the authority attribute for languageTerm.
|
|
|
|
4. Define attributes @altFormat and @contentType attributes for <abstract>, <accessCondition>, <tableOfContents> and <titleInfo>.
|
|
|
|
5. Define attribute @eventType for <originInfo> (recomended values 'production', 'publication', 'distribution', 'manufacture').
|
|
|
|
6. Define attribute @typeURI for <identifier> and <note> (including <physicalDescription><note>).
|
|
|
|
7. Define attribute @generator for <classification>.
|
|
|
|
8. Define element <etal>, a subelement of <name>.
|
|
|
|
9. Define attribute @otherType for <titleInfo>.
|
|
|
|
|
|
|
|
*********************************************************************************************
|
|
|
|
*************************************
|
|
Organization of this schema
|
|
*************************************
|
|
The schema has three parts:
|
|
|
|
1. Structural declarations and definitions
|
|
2. Elements (top level elements and their subelements)
|
|
3. Auxiliary Definitions
|
|
|
|
***********************************************************************
|
|
***********************************************************************
|
|
Part 1: Structural Declarations and Definitions
|
|
***********************************************************************
|
|
***********************************************************************
|
|
- Definition of a single MODS record and a MODS collection
|
|
- modsGroup, listing the top level MODS elements
|
|
|
|
***********************************************************************
|
|
** Definition of a single MODS record **
|
|
**********************************************************************
|
|
-->
|
|
<xs:element name="mods" type="modsDefinition"/>
|
|
<!-- -->
|
|
<xs:complexType name="modsDefinition">
|
|
<xs:group ref="modsGroup" maxOccurs="unbounded"/>
|
|
<xs:attribute name="ID" type="xs:ID"/>
|
|
<xs:attribute name="version">
|
|
<xs:simpleType>
|
|
<xs:restriction base="xs:string">
|
|
<xs:enumeration value="3.5"/>
|
|
<xs:enumeration value="3.4"/>
|
|
<xs:enumeration value="3.3"/>
|
|
<xs:enumeration value="3.2"/>
|
|
<xs:enumeration value="3.1"/>
|
|
<xs:enumeration value="3.0"/>
|
|
</xs:restriction>
|
|
</xs:simpleType>
|
|
</xs:attribute>
|
|
</xs:complexType>
|
|
<!--
|
|
***********************************************************************
|
|
** Definition of a MODS collection **
|
|
**********************************************************************
|
|
-->
|
|
<xs:element name="modsCollection" type="modsCollectionDefinition"/>
|
|
<!-- -->
|
|
<xs:complexType name="modsCollectionDefinition">
|
|
<xs:sequence>
|
|
<xs:element ref="mods" maxOccurs="unbounded"/>
|
|
</xs:sequence>
|
|
</xs:complexType>
|
|
<!--
|
|
|
|
************************************************
|
|
** Group Definition
|
|
***********************************************
|
|
This forms the basis of the mods record definition, and also relatedItem. The difference between a MODS record and a relatedItem
|
|
(as they pertain to their usage of the group definition) is that mods requires at least one element and relatedItem does not.
|
|
The group definition is used by both, where relatedItem says minOccurs="0" and for the mods record definition minOccurs="1" (default).
|
|
|
|
-->
|
|
<xs:group name="modsGroup">
|
|
<xs:choice>
|
|
<!--
|
|
***********************************************************************
|
|
** These are the "top level" MODS elements **
|
|
**********************************************************************
|
|
-->
|
|
<xs:element ref="abstract"/>
|
|
<xs:element ref="accessCondition"/>
|
|
<xs:element ref="classification"/>
|
|
<xs:element ref="extension"/>
|
|
<xs:element ref="genre"/>
|
|
<xs:element ref="identifier"/>
|
|
<xs:element ref="language"/>
|
|
<xs:element ref="location"/>
|
|
<xs:element ref="name"/>
|
|
<xs:element ref="note"/>
|
|
<xs:element ref="originInfo"/>
|
|
<xs:element ref="part"/>
|
|
<xs:element ref="physicalDescription"/>
|
|
<xs:element ref="recordInfo"/>
|
|
<xs:element ref="relatedItem"/>
|
|
<xs:element ref="subject"/>
|
|
<xs:element ref="tableOfContents"/>
|
|
<xs:element ref="targetAudience"/>
|
|
<xs:element ref="titleInfo"/>
|
|
<xs:element ref="typeOfResource"/>
|
|
<!--
|
|
End list of "top level" MODS elements
|
|
-->
|
|
</xs:choice>
|
|
</xs:group>
|
|
<!--
|
|
***********************************************************************
|
|
***********************************************************************
|
|
Part 2: Elements (top level elements and their subelements)
|
|
************************************************************************
|
|
***********************************************************************
|
|
-->
|
|
<!--
|
|
*********************************************
|
|
* Top Level Element <abstract> *
|
|
*********************************************
|
|
-->
|
|
<xs:element name="abstract" type="abstractDefinition"/>
|
|
<!-- -->
|
|
<xs:complexType name="abstractDefinition">
|
|
<xs:simpleContent>
|
|
<xs:extension base="stringPlusLanguage">
|
|
<xs:attribute name="displayLabel" type="xs:string"/>
|
|
<xs:attribute name="type" type="xs:string"/>
|
|
<xs:attributeGroup ref="xlink:simpleLink"/>
|
|
<xs:attribute name="shareable" fixed="no"/>
|
|
<xs:attribute name="altRepGroup" type="xs:string"/>
|
|
<xs:attributeGroup ref="altFormatAttributeGroup"/>
|
|
</xs:extension>
|
|
<!-- -->
|
|
<!-- altFormat new in version 3.5 -->
|
|
</xs:simpleContent>
|
|
</xs:complexType>
|
|
<!--
|
|
|
|
****************************************************
|
|
* Top Level Element <accessCondition> *
|
|
*****************************************************
|
|
-->
|
|
<xs:element name="accessCondition" type="accessConditionDefinition"/>
|
|
<!-- -->
|
|
<xs:complexType name="accessConditionDefinition" mixed="true">
|
|
<xs:complexContent mixed="true">
|
|
<xs:extension base="extensionDefinition">
|
|
<xs:attributeGroup ref="xlink:simpleLink"/>
|
|
<xs:attributeGroup ref="languageAttributeGroup"/>
|
|
<xs:attribute name="type" type="xs:string"/>
|
|
<xs:attribute name="altRepGroup" type="xs:string"/>
|
|
<xs:attributeGroup ref="altFormatAttributeGroup"/>
|
|
</xs:extension>
|
|
<!-- -->
|
|
<!-- altFormat new in version 3.5 -->
|
|
</xs:complexContent>
|
|
</xs:complexType>
|
|
<!--
|
|
****************************************************
|
|
* Top Level Element <classification> *
|
|
*****************************************************
|
|
-->
|
|
<xs:element name="classification" type="classificationDefinition"/>
|
|
<!-- -->
|
|
<xs:complexType name="classificationDefinition">
|
|
<xs:simpleContent>
|
|
<xs:extension base="stringPlusLanguagePlusAuthority">
|
|
<xs:attribute name="edition" type="xs:string"/>
|
|
<xs:attribute name="displayLabel" type="xs:string"/>
|
|
<xs:attribute name="altRepGroup" type="xs:string"/>
|
|
<xs:attribute name="usage" fixed="primary"/>
|
|
<xs:attribute name="generator" type="xs:string"/>
|
|
</xs:extension>
|
|
<!-- The following attribute, generator, is new in version 3.5-->
|
|
<!-- @generator may be used to indicate that the classification is automatically generated,
|
|
and its value may indicate the nature of the generation, for example "lcc to ddc" -->
|
|
</xs:simpleContent>
|
|
</xs:complexType>
|
|
<!--
|
|
****************************************************
|
|
* Top Level Element <extension> *
|
|
*****************************************************
|
|
-->
|
|
<xs:element name="extension" type="extensionDefinition"/>
|
|
<!-- -->
|
|
<xs:complexType name="extensionDefinition" mixed="true">
|
|
<xs:sequence>
|
|
<xs:any processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
|
|
</xs:sequence>
|
|
<xs:attribute name="displayLabel" type="xs:string"/>
|
|
</xs:complexType>
|
|
<!--
|
|
****************************************************
|
|
* Top Level Element <genre> *
|
|
*****************************************************
|
|
-->
|
|
<xs:element name="genre" type="genreDefinition"/>
|
|
<!-- -->
|
|
<xs:complexType name="genreDefinition">
|
|
<xs:simpleContent>
|
|
<xs:extension base="stringPlusLanguagePlusAuthority">
|
|
<xs:attribute name="type" type="xs:string"/>
|
|
<xs:attribute name="displayLabel" type="xs:string"/>
|
|
<xs:attribute name="altRepGroup" type="xs:string"/>
|
|
<xs:attribute name="usage" fixed="primary"/>
|
|
</xs:extension>
|
|
</xs:simpleContent>
|
|
</xs:complexType>
|
|
<!--
|
|
****************************************************
|
|
* Top Level Element <identifier> *
|
|
*****************************************************
|
|
-->
|
|
<xs:element name="identifier" type="identifierDefinition"/>
|
|
<!-- -->
|
|
<xs:complexType name="identifierDefinition">
|
|
<xs:simpleContent>
|
|
<xs:extension base="stringPlusLanguage">
|
|
<xs:attribute name="displayLabel" type="xs:string"/>
|
|
<xs:attribute name="type" type="xs:string"/>
|
|
<xs:attribute name="typeURI" type="xs:anyURI"/>
|
|
<xs:attribute name="invalid" fixed="yes"/>
|
|
<xs:attribute name="altRepGroup" type="xs:string"/>
|
|
</xs:extension>
|
|
<!-- -->
|
|
<!-- typeURI attribute added in version 3.5 -->
|
|
</xs:simpleContent>
|
|
</xs:complexType>
|
|
<!--
|
|
****************************************************
|
|
* Top Level Element <language> *
|
|
*****************************************************
|
|
-->
|
|
<xs:element name="language" type="languageDefinition"/>
|
|
<!-- -->
|
|
<xs:complexType name="languageDefinition">
|
|
<xs:sequence>
|
|
<xs:element ref="languageTerm" maxOccurs="unbounded"/>
|
|
<xs:element ref="scriptTerm" minOccurs="0" maxOccurs="unbounded"/>
|
|
</xs:sequence>
|
|
<xs:attribute name="objectPart" type="xs:string"/>
|
|
<xs:attributeGroup ref="languageAttributeGroup"/>
|
|
<xs:attribute name="displayLabel" type="xs:string"/>
|
|
<xs:attribute name="altRepGroup" type="xs:string"/>
|
|
<xs:attribute name="usage" fixed="primary"/>
|
|
</xs:complexType>
|
|
<!--
|
|
|
|
******** Subordinate Elements for <language>
|
|
-->
|
|
<xs:element name="languageTerm" type="languageTermDefinition"/>
|
|
<!-- -->
|
|
<xs:complexType name="languageTermDefinition">
|
|
<xs:simpleContent>
|
|
<xs:extension base="stringPlusLanguage">
|
|
<xs:attribute name="authorityURI" type="xs:anyURI"/>
|
|
<xs:attribute name="valueURI" type="xs:anyURI"/>
|
|
<xs:attribute name="authority">
|
|
<xs:simpleType>
|
|
<xs:restriction base="xs:string">
|
|
<xs:enumeration value="rfc3066"/>
|
|
<xs:enumeration value="iso639-2b"/>
|
|
<xs:enumeration value="iso639-3"/>
|
|
<xs:enumeration value="rfc4646"/>
|
|
<xs:enumeration value="rfc5646"/>
|
|
<!-- -->
|
|
<!--
|
|
******* value rfc5646 new in version 3.5.
|
|
-->
|
|
</xs:restriction>
|
|
</xs:simpleType>
|
|
</xs:attribute>
|
|
<xs:attribute name="type" type="codeOrText"/>
|
|
</xs:extension>
|
|
</xs:simpleContent>
|
|
</xs:complexType>
|
|
<!--
|
|
*****************scriptTerm ************************
|
|
-->
|
|
<xs:element name="scriptTerm" type="scriptTermDefinition"/>
|
|
<!-- -->
|
|
<xs:complexType name="scriptTermDefinition">
|
|
<xs:simpleContent>
|
|
<xs:extension base="stringPlusLanguagePlusAuthority">
|
|
<xs:attribute name="type" type="codeOrText"/>
|
|
</xs:extension>
|
|
</xs:simpleContent>
|
|
</xs:complexType>
|
|
<!--
|
|
|
|
****************************************************
|
|
* Top Level Element <location> *
|
|
*****************************************************
|
|
-->
|
|
<xs:element name="location" type="locationDefinition"/>
|
|
<!-- -->
|
|
<xs:complexType name="locationDefinition">
|
|
<xs:sequence>
|
|
<xs:element ref="physicalLocation" minOccurs="0" maxOccurs="unbounded"/>
|
|
<xs:element ref="shelfLocator" minOccurs="0" maxOccurs="unbounded"/>
|
|
<xs:element ref="url" minOccurs="0" maxOccurs="unbounded"/>
|
|
<xs:element ref="holdingSimple" minOccurs="0"/>
|
|
<xs:element ref="holdingExternal" minOccurs="0"/>
|
|
</xs:sequence>
|
|
<xs:attributeGroup ref="languageAttributeGroup"/>
|
|
<xs:attribute name="displayLabel" type="xs:string"/>
|
|
<xs:attribute name="altRepGroup" type="xs:string"/>
|
|
</xs:complexType>
|
|
<!--
|
|
|
|
******** Subordinate Elements for <location>
|
|
-->
|
|
<!--
|
|
********** physicalLocation **********
|
|
-->
|
|
<xs:element name="physicalLocation" type="physicalLocationDefinition"/>
|
|
<!-- -->
|
|
<xs:complexType name="physicalLocationDefinition">
|
|
<xs:simpleContent>
|
|
<xs:extension base="stringPlusLanguagePlusAuthority">
|
|
<xs:attributeGroup ref="xlink:simpleLink"/>
|
|
<xs:attribute name="displayLabel" type="xs:string"/>
|
|
<xs:attribute name="type" type="xs:string"/>
|
|
</xs:extension>
|
|
</xs:simpleContent>
|
|
</xs:complexType>
|
|
<!-- -->
|
|
<xs:element name="shelfLocator" type="stringPlusLanguage"/>
|
|
<!--
|
|
********** holdingSimple **********
|
|
-->
|
|
<xs:element name="holdingSimple" type="holdingSimpleDefinition"/>
|
|
<!-- -->
|
|
<xs:complexType name="holdingSimpleDefinition">
|
|
<xs:sequence>
|
|
<xs:element ref="copyInformation" maxOccurs="unbounded"/>
|
|
</xs:sequence>
|
|
</xs:complexType>
|
|
<!--
|
|
**********copyInformation **********
|
|
-->
|
|
<xs:element name="copyInformation" type="copyInformationDefinition"/>
|
|
<!-- -->
|
|
<xs:complexType name="copyInformationDefinition">
|
|
<xs:sequence>
|
|
<xs:element ref="form" minOccurs="0"/>
|
|
<xs:element ref="subLocation" minOccurs="0" maxOccurs="unbounded"/>
|
|
<xs:element ref="shelfLocator" minOccurs="0" maxOccurs="unbounded"/>
|
|
<xs:element ref="electronicLocator" minOccurs="0" maxOccurs="unbounded"/>
|
|
<xs:element name="note" minOccurs="0" maxOccurs="unbounded">
|
|
<xs:complexType>
|
|
<xs:simpleContent>
|
|
<xs:extension base="stringPlusLanguage">
|
|
<xs:attribute name="displayLabel" type="xs:string"/>
|
|
<xs:attribute name="type" type="xs:string"/>
|
|
<xs:attributeGroup ref="xlink:simpleLink"/>
|
|
<xs:attribute name="ID" type="xs:ID"/>
|
|
</xs:extension>
|
|
</xs:simpleContent>
|
|
</xs:complexType>
|
|
</xs:element>
|
|
<xs:element ref="enumerationAndChronology" minOccurs="0" maxOccurs="unbounded"/>
|
|
</xs:sequence>
|
|
</xs:complexType>
|
|
<!--
|
|
**********form**********
|
|
-->
|
|
<xs:element name="form" type="formDefinition"/>
|
|
<!-- -->
|
|
<xs:complexType name="formDefinition">
|
|
<xs:simpleContent>
|
|
<xs:extension base="stringPlusLanguagePlusAuthority">
|
|
<xs:attribute name="type" type="xs:string"/>
|
|
</xs:extension>
|
|
</xs:simpleContent>
|
|
</xs:complexType>
|
|
<!-- -->
|
|
<xs:element name="subLocation" type="stringPlusLanguage"/>
|
|
<xs:element name="electronicLocator" type="stringPlusLanguage"/>
|
|
<!--
|
|
**********enumerationAndChronology **********
|
|
-->
|
|
<xs:element name="enumerationAndChronology" type="enumerationAndChronologyDefinition"/>
|
|
<!-- -->
|
|
<xs:complexType name="enumerationAndChronologyDefinition">
|
|
<xs:simpleContent>
|
|
<xs:extension base="stringPlusLanguage">
|
|
<xs:attribute name="unitType">
|
|
<xs:simpleType>
|
|
<xs:restriction base="xs:string">
|
|
<xs:enumeration value="1"/>
|
|
<xs:enumeration value="2"/>
|
|
<xs:enumeration value="3"/>
|
|
</xs:restriction>
|
|
</xs:simpleType>
|
|
</xs:attribute>
|
|
</xs:extension>
|
|
</xs:simpleContent>
|
|
</xs:complexType>
|
|
<!--
|
|
********** url **********
|
|
-->
|
|
<xs:element name="url" type="urlDefinition"/>
|
|
<!-- -->
|
|
<xs:complexType name="urlDefinition">
|
|
<xs:simpleContent>
|
|
<xs:extension base="xs:anyURI">
|
|
<xs:attribute name="dateLastAccessed" type="xs:string"/>
|
|
<xs:attribute name="displayLabel" type="xs:string"/>
|
|
<xs:attribute name="note" type="xs:string"/>
|
|
<xs:attribute name="access">
|
|
<xs:simpleType>
|
|
<xs:restriction base="xs:string">
|
|
<xs:enumeration value="preview"/>
|
|
<xs:enumeration value="raw object"/>
|
|
<xs:enumeration value="object in context"/>
|
|
</xs:restriction>
|
|
</xs:simpleType>
|
|
</xs:attribute>
|
|
<xs:attribute name="usage">
|
|
<xs:simpleType>
|
|
<xs:restriction base="xs:string">
|
|
<xs:enumeration value="primary display"/>
|
|
<xs:enumeration value="primary"/>
|
|
</xs:restriction>
|
|
</xs:simpleType>
|
|
</xs:attribute>
|
|
</xs:extension>
|
|
</xs:simpleContent>
|
|
</xs:complexType>
|
|
<!-- -->
|
|
<xs:element name="holdingExternal" type="extensionDefinition"/>
|
|
<!--
|
|
****************************************************
|
|
* Top Level Element <name> *
|
|
*****************************************************
|
|
-->
|
|
<xs:element name="name" type="nameDefinition"/>
|
|
<!-- -->
|
|
<xs:complexType name="nameDefinition">
|
|
<xs:choice>
|
|
<!-- this choice is introduced in version 3.5, with the introduction of <etal>. There are two "choices", one without <etal> (the old way) and one with <etal>.
|
|
|
|
Choice one. The old way.
|
|
-->
|
|
<xs:choice minOccurs="0" maxOccurs="unbounded">
|
|
<xs:element ref="namePart"/>
|
|
<xs:element ref="displayForm"/>
|
|
<xs:element ref="affiliation"/>
|
|
<xs:element ref="role"/>
|
|
<xs:element ref="description"/>
|
|
</xs:choice>
|
|
<!--
|
|
Choice two. With <etal>.
|
|
The presence of <etal> Indicates that there are names that cannot be explicitily included. It may be empty, or it may have simple content
|
|
- e.g. <etal>et al.</etal>. In the latter case the content is what is suggested for display. When <etal> occurs, <namePart> MAY NOT occur,
|
|
<displayForm> MAY NOT occur, <affiliation>, <role>, <description> MAY occur (but are not repeatable).
|
|
(<etal> is not repeatable within a given <name>, however there may be mutilple <etal> elements, each within in a separate <name> element.)
|
|
-->
|
|
<xs:sequence>
|
|
<!--
|
|
<etal> is mandatory, nonrepeatable, and must occur first.
|
|
After that <affiliation>, <role>, and <description> may occur, in any order or number.
|
|
-->
|
|
<xs:element ref="etal"/>
|
|
<xs:choice minOccurs="0" maxOccurs="unbounded">
|
|
<xs:element ref="affiliation"/>
|
|
<xs:element ref="role"/>
|
|
<xs:element ref="description"/>
|
|
</xs:choice>
|
|
</xs:sequence>
|
|
<!-- -->
|
|
</xs:choice>
|
|
<xs:attribute name="ID" type="xs:ID"/>
|
|
<xs:attributeGroup ref="authorityAttributeGroup"/>
|
|
<xs:attributeGroup ref="xlink:simpleLink"/>
|
|
<xs:attributeGroup ref="languageAttributeGroup"/>
|
|
<xs:attribute name="displayLabel" type="xs:string"/>
|
|
<xs:attribute name="altRepGroup" type="xs:string"/>
|
|
<xs:attribute name="nameTitleGroup" type="xs:string"/>
|
|
<xs:attribute name="usage" fixed="primary"/>
|
|
<xs:attribute name="type">
|
|
<xs:simpleType>
|
|
<xs:restriction base="xs:string">
|
|
<xs:enumeration value="personal"/>
|
|
<xs:enumeration value="corporate"/>
|
|
<xs:enumeration value="conference"/>
|
|
<xs:enumeration value="family"/>
|
|
</xs:restriction>
|
|
</xs:simpleType>
|
|
</xs:attribute>
|
|
</xs:complexType>
|
|
<!--
|
|
|
|
******** Subordinate Elements for <name>
|
|
-->
|
|
<!-- namePart-->
|
|
<xs:element name="namePart" type="namePartDefinition"/>
|
|
<!-- -->
|
|
<xs:complexType name="namePartDefinition">
|
|
<xs:simpleContent>
|
|
<xs:extension base="stringPlusLanguage">
|
|
<xs:attribute name="type">
|
|
<xs:simpleType>
|
|
<xs:restriction base="xs:string">
|
|
<xs:enumeration value="date"/>
|
|
<xs:enumeration value="family"/>
|
|
<xs:enumeration value="given"/>
|
|
<xs:enumeration value="termsOfAddress"/>
|
|
</xs:restriction>
|
|
</xs:simpleType>
|
|
</xs:attribute>
|
|
</xs:extension>
|
|
</xs:simpleContent>
|
|
</xs:complexType>
|
|
<!-- displayForm, affiliation, description -->
|
|
<xs:element name="displayForm" type="stringPlusLanguage"/>
|
|
<xs:element name="affiliation" type="stringPlusLanguage"/>
|
|
<xs:element name="description" type="stringPlusLanguage"/>
|
|
<!--
|
|
******** role *********************
|
|
-->
|
|
<xs:element name="role" type="roleDefinition"/>
|
|
<!-- -->
|
|
<xs:complexType name="roleDefinition">
|
|
<xs:sequence maxOccurs="unbounded">
|
|
<xs:element ref="roleTerm"/>
|
|
</xs:sequence>
|
|
</xs:complexType>
|
|
<!--
|
|
***************roleTerm ***********************
|
|
-->
|
|
<xs:element name="roleTerm" type="roleTermDefinition"/>
|
|
<!-- -->
|
|
<xs:complexType name="roleTermDefinition">
|
|
<xs:simpleContent>
|
|
<xs:extension base="stringPlusLanguagePlusAuthority">
|
|
<xs:attribute name="type" type="codeOrText"/>
|
|
</xs:extension>
|
|
</xs:simpleContent>
|
|
</xs:complexType>
|
|
<!--
|
|
******** etal (new in 3.5) ********
|
|
-->
|
|
<xs:element name="etal" type="stringPlusLanguage"/>
|
|
<!--
|
|
|
|
****************************************************
|
|
* Top Level Element <note> *
|
|
*****************************************************
|
|
-->
|
|
<xs:element name="note" type="noteDefinition"/>
|
|
<!-- -->
|
|
<xs:complexType name="noteDefinition">
|
|
<xs:simpleContent>
|
|
<xs:extension base="stringPlusLanguage">
|
|
<xs:attribute name="displayLabel" type="xs:string"/>
|
|
<xs:attribute name="type" type="xs:string"/>
|
|
<xs:attribute name="typeURI" type="xs:anyURI"/>
|
|
<xs:attributeGroup ref="xlink:simpleLink"/>
|
|
<xs:attribute name="ID" type="xs:ID"/>
|
|
<xs:attribute name="altRepGroup" type="xs:string"/>
|
|
</xs:extension>
|
|
<!-- -->
|
|
<!-- typeURI attribute added in version 3.5 -->
|
|
</xs:simpleContent>
|
|
</xs:complexType>
|
|
<!--
|
|
|
|
****************************************************
|
|
* Top Level Element <originInfo> *
|
|
*****************************************************
|
|
-->
|
|
<xs:element name="originInfo" type="originInfoDefinition"/>
|
|
<!-- -->
|
|
<xs:complexType name="originInfoDefinition">
|
|
<xs:choice maxOccurs="unbounded">
|
|
<xs:element ref="place"/>
|
|
<xs:element ref="publisher"/>
|
|
<xs:element ref="dateIssued"/>
|
|
<xs:element ref="dateCreated"/>
|
|
<xs:element ref="dateCaptured"/>
|
|
<xs:element ref="dateValid"/>
|
|
<xs:element ref="dateModified"/>
|
|
<xs:element ref="copyrightDate"/>
|
|
<xs:element ref="dateOther"/>
|
|
<xs:element ref="edition"/>
|
|
<xs:element ref="issuance"/>
|
|
<xs:element ref="frequency"/>
|
|
</xs:choice>
|
|
<xs:attributeGroup ref="languageAttributeGroup"/>
|
|
<xs:attribute name="displayLabel" type="xs:string"/>
|
|
<xs:attribute name="altRepGroup" type="xs:string"/>
|
|
<xs:attribute name="eventType" type="xs:string"/>
|
|
<!--
|
|
following attribute, @eventType, is new in version 3.5 -->
|
|
<!-- Recomended values are "production", "publication", "distribution", "manufacture"
|
|
So when eventType="production"
|
|
• <publisher> is the producer
|
|
• <dateIssued> is the date of production
|
|
• <place> is the place of production
|
|
etc.
|
|
Detailed usage rules are supplied in the guidelines.
|
|
-->
|
|
</xs:complexType>
|
|
<!--
|
|
|
|
******** Subordinate Elements for <originInfo>
|
|
-->
|
|
<!--
|
|
*** place ***
|
|
-->
|
|
<xs:element name="place" type="placeDefinition"/>
|
|
<!-- -->
|
|
<xs:complexType name="placeDefinition">
|
|
<xs:sequence>
|
|
<xs:element ref="placeTerm" maxOccurs="unbounded"/>
|
|
</xs:sequence>
|
|
<xs:attribute name="supplied" fixed="yes"/>
|
|
</xs:complexType>
|
|
<!--
|
|
*** placeTerm ***
|
|
-->
|
|
<xs:element name="placeTerm" type="placeTermDefinition"/>
|
|
<!-- -->
|
|
<xs:complexType name="placeTermDefinition">
|
|
<xs:simpleContent>
|
|
<xs:extension base="stringPlusLanguage">
|
|
<xs:attribute name="authorityURI" type="xs:anyURI"/>
|
|
<xs:attribute name="valueURI" type="xs:anyURI"/>
|
|
<xs:attribute name="authority">
|
|
<xs:simpleType>
|
|
<xs:restriction base="xs:string">
|
|
<xs:enumeration value="marcgac"/>
|
|
<xs:enumeration value="marccountry"/>
|
|
<xs:enumeration value="iso3166"/>
|
|
</xs:restriction>
|
|
</xs:simpleType>
|
|
</xs:attribute>
|
|
<xs:attribute name="type" type="codeOrText"/>
|
|
</xs:extension>
|
|
</xs:simpleContent>
|
|
</xs:complexType>
|
|
<!--
|
|
*** publisher ***
|
|
-->
|
|
<xs:element name="publisher" type="stringPlusLanguagePlusSupplied"/>
|
|
<!--
|
|
********** dates **********
|
|
-->
|
|
<xs:element name="dateIssued" type="dateDefinition"/>
|
|
<xs:element name="dateCreated" type="dateDefinition"/>
|
|
<xs:element name="dateCaptured" type="dateDefinition"/>
|
|
<xs:element name="dateValid" type="dateDefinition"/>
|
|
<xs:element name="dateModified" type="dateDefinition"/>
|
|
<xs:element name="copyrightDate" type="dateDefinition"/>
|
|
<xs:element name="dateOther" type="dateOtherDefinition"/>
|
|
<!-- -->
|
|
<xs:complexType name="dateDefinition">
|
|
<xs:simpleContent>
|
|
<xs:extension base="stringPlusLanguage">
|
|
<xs:attribute name="encoding">
|
|
<xs:simpleType>
|
|
<xs:restriction base="xs:string">
|
|
<xs:enumeration value="w3cdtf"/>
|
|
<xs:enumeration value="iso8601"/>
|
|
<xs:enumeration value="marc"/>
|
|
<xs:enumeration value="temper"/>
|
|
<xs:enumeration value="edtf"/>
|
|
</xs:restriction>
|
|
</xs:simpleType>
|
|
</xs:attribute>
|
|
<xs:attribute name="qualifier">
|
|
<xs:simpleType>
|
|
<xs:restriction base="xs:string">
|
|
<xs:enumeration value="approximate"/>
|
|
<xs:enumeration value="inferred"/>
|
|
<xs:enumeration value="questionable"/>
|
|
</xs:restriction>
|
|
</xs:simpleType>
|
|
</xs:attribute>
|
|
<xs:attribute name="point">
|
|
<xs:simpleType>
|
|
<xs:restriction base="xs:string">
|
|
<xs:enumeration value="start"/>
|
|
<xs:enumeration value="end"/>
|
|
</xs:restriction>
|
|
</xs:simpleType>
|
|
</xs:attribute>
|
|
<xs:attribute name="keyDate" fixed="yes"/>
|
|
</xs:extension>
|
|
</xs:simpleContent>
|
|
</xs:complexType>
|
|
<!--
|
|
********** dateOther **********
|
|
-->
|
|
<xs:complexType name="dateOtherDefinition">
|
|
<xs:simpleContent>
|
|
<xs:extension base="dateDefinition">
|
|
<xs:attribute name="type" type="xs:string"/>
|
|
</xs:extension>
|
|
</xs:simpleContent>
|
|
</xs:complexType>
|
|
<!--
|
|
********** edition **********
|
|
-->
|
|
<xs:element name="edition" type="stringPlusLanguagePlusSupplied"/>
|
|
<!--
|
|
********** issuance **********
|
|
-->
|
|
<xs:element name="issuance" type="issuanceDefinition"/>
|
|
<!-- -->
|
|
<xs:simpleType name="issuanceDefinition">
|
|
<xs:restriction base="xs:string">
|
|
<xs:enumeration value="continuing"/>
|
|
<xs:enumeration value="monographic"/>
|
|
<xs:enumeration value="single unit"/>
|
|
<xs:enumeration value="multipart monograph"/>
|
|
<xs:enumeration value="serial"/>
|
|
<xs:enumeration value="integrating resource"/>
|
|
</xs:restriction>
|
|
</xs:simpleType>
|
|
<!--
|
|
********** frequency**********
|
|
-->
|
|
<xs:element name="frequency" type="stringPlusLanguagePlusAuthority"/>
|
|
<!--
|
|
|
|
****************************************************
|
|
* Top Level Element <part> *
|
|
*****************************************************
|
|
-->
|
|
<xs:element name="part" type="partDefinition"/>
|
|
<!-- -->
|
|
<xs:complexType name="partDefinition">
|
|
<xs:choice minOccurs="0" maxOccurs="unbounded">
|
|
<xs:element ref="detail"/>
|
|
<xs:element name="extent" type="extentDefinition"/>
|
|
<xs:element ref="date"/>
|
|
<xs:element ref="text"/>
|
|
</xs:choice>
|
|
<xs:attribute name="ID" type="xs:ID"/>
|
|
<xs:attribute name="type" type="xs:string"/>
|
|
<xs:attribute name="order" type="xs:integer"/>
|
|
<xs:attributeGroup ref="languageAttributeGroup"/>
|
|
<xs:attribute name="displayLabel" type="xs:string"/>
|
|
<xs:attribute name="altRepGroup" type="xs:string"/>
|
|
</xs:complexType>
|
|
<!--
|
|
|
|
******** Subordinate Elements for <part>
|
|
-->
|
|
<!--
|
|
********** detail **********
|
|
-->
|
|
<xs:element name="detail" type="detailDefinition"/>
|
|
<!-- -->
|
|
<xs:complexType name="detailDefinition">
|
|
<xs:choice maxOccurs="unbounded">
|
|
<xs:element ref="number"/>
|
|
<xs:element ref="caption"/>
|
|
<xs:element ref="title"/>
|
|
</xs:choice>
|
|
<xs:attribute name="type" type="xs:string"/>
|
|
<xs:attribute name="level" type="xs:positiveInteger"/>
|
|
</xs:complexType>
|
|
<!-- -->
|
|
<xs:element name="number" type="stringPlusLanguage"/>
|
|
<xs:element name="caption" type="stringPlusLanguage"/>
|
|
<!--
|
|
********** extent **********
|
|
-->
|
|
<xs:complexType name="extentDefinition">
|
|
<xs:sequence>
|
|
<xs:element ref="start" minOccurs="0"/>
|
|
<xs:element ref="end" minOccurs="0"/>
|
|
<xs:element ref="total" minOccurs="0"/>
|
|
<xs:element ref="list" minOccurs="0"/>
|
|
</xs:sequence>
|
|
<xs:attribute name="unit" type="xs:string"/>
|
|
</xs:complexType>
|
|
<!-- -->
|
|
<xs:element name="start" type="stringPlusLanguage"/>
|
|
<xs:element name="end" type="stringPlusLanguage"/>
|
|
<xs:element name="total" type="xs:positiveInteger"/>
|
|
<xs:element name="list" type="stringPlusLanguage"/>
|
|
<!--
|
|
***************** date ***
|
|
-->
|
|
<xs:element name="date" type="dateDefinition"/>
|
|
<!--
|
|
***************** text ***
|
|
-->
|
|
<xs:element name="text">
|
|
<xs:complexType>
|
|
<xs:simpleContent>
|
|
<xs:extension base="stringPlusLanguage">
|
|
<xs:attribute name="displayLabel" type="xs:string"/>
|
|
<xs:attribute name="type" type="xs:string"/>
|
|
<xs:attributeGroup ref="xlink:simpleLink"/>
|
|
</xs:extension>
|
|
</xs:simpleContent>
|
|
</xs:complexType>
|
|
</xs:element>
|
|
<!--
|
|
|
|
****************************************************
|
|
* Top Level Element <physicalDescription> *
|
|
*****************************************************
|
|
-->
|
|
<xs:element name="physicalDescription" type="physicalDescriptionDefinition"/>
|
|
<!-- -->
|
|
<xs:complexType name="physicalDescriptionDefinition">
|
|
<xs:choice maxOccurs="unbounded">
|
|
<xs:element ref="form"/>
|
|
<!-- same definition as is used in copyInformation -->
|
|
<xs:element ref="reformattingQuality"/>
|
|
<xs:element ref="internetMediaType"/>
|
|
<xs:element ref="extent"/>
|
|
<xs:element ref="digitalOrigin"/>
|
|
<xs:element name="note" type="physicalDescriptionNote"/>
|
|
</xs:choice>
|
|
<xs:attributeGroup ref="languageAttributeGroup"/>
|
|
<xs:attribute name="displayLabel" type="xs:string"/>
|
|
<xs:attribute name="altRepGroup" type="xs:string"/>
|
|
</xs:complexType>
|
|
<!--
|
|
|
|
******** Subordinate Elements for <physicalDescription>
|
|
-->
|
|
<!--
|
|
**********reformattingQuality **********
|
|
-->
|
|
<xs:element name="reformattingQuality" type="reformattingQualityDefinition"/>
|
|
<!-- -->
|
|
<xs:simpleType name="reformattingQualityDefinition">
|
|
<xs:restriction base="xs:string">
|
|
<xs:enumeration value="access"/>
|
|
<xs:enumeration value="preservation"/>
|
|
<xs:enumeration value="replacement"/>
|
|
</xs:restriction>
|
|
</xs:simpleType>
|
|
<!--
|
|
**********internetMediaType **********
|
|
-->
|
|
<xs:element name="internetMediaType" type="stringPlusLanguage"/>
|
|
<!--
|
|
********** extent **********
|
|
-->
|
|
<xs:element name="extent">
|
|
<xs:complexType>
|
|
<xs:simpleContent>
|
|
<xs:extension base="stringPlusLanguagePlusSupplied">
|
|
<xs:attribute name="unit"/>
|
|
</xs:extension>
|
|
<!--
|
|
******************* unit is new in 3.5
|
|
-->
|
|
</xs:simpleContent>
|
|
</xs:complexType>
|
|
</xs:element>
|
|
<!--
|
|
********** digitalOrigin **********
|
|
-->
|
|
<xs:element name="digitalOrigin" type="digitalOriginDefinition"/>
|
|
<!-- -->
|
|
<xs:simpleType name="digitalOriginDefinition">
|
|
<xs:restriction base="xs:string">
|
|
<xs:enumeration value="born digital"/>
|
|
<xs:enumeration value="reformatted digital"/>
|
|
<xs:enumeration value="digitized microfilm"/>
|
|
<xs:enumeration value="digitized other analog"/>
|
|
</xs:restriction>
|
|
</xs:simpleType>
|
|
<!--
|
|
********** note **********
|
|
-->
|
|
<xs:complexType name="physicalDescriptionNote">
|
|
<xs:simpleContent>
|
|
<xs:extension base="stringPlusLanguage">
|
|
<xs:attribute name="displayLabel" type="xs:string"/>
|
|
<xs:attribute name="type" type="xs:string"/>
|
|
<xs:attribute name="typeURI" type="xs:anyURI"/>
|
|
<xs:attributeGroup ref="xlink:simpleLink"/>
|
|
<xs:attribute name="ID" type="xs:ID"/>
|
|
</xs:extension>
|
|
<!-- -->
|
|
<!-- typeURI attribute added in version 3.5 -->
|
|
</xs:simpleContent>
|
|
</xs:complexType>
|
|
<!--
|
|
****************************************************
|
|
* Top Level Element <recordInfo> *
|
|
*****************************************************
|
|
|
|
********** recordInfo **********
|
|
-->
|
|
<xs:element name="recordInfo" type="recordInfoDefinition"/>
|
|
<!-- -->
|
|
<xs:complexType name="recordInfoDefinition">
|
|
<xs:choice maxOccurs="unbounded">
|
|
<xs:element ref="recordContentSource"/>
|
|
<xs:element ref="recordCreationDate"/>
|
|
<xs:element ref="recordChangeDate"/>
|
|
<xs:element ref="recordIdentifier"/>
|
|
<xs:element ref="languageOfCataloging"/>
|
|
<xs:element ref="recordOrigin"/>
|
|
<xs:element ref="descriptionStandard"/>
|
|
</xs:choice>
|
|
<xs:attributeGroup ref="languageAttributeGroup"/>
|
|
<xs:attribute name="displayLabel" type="xs:string"/>
|
|
<xs:attribute name="altRepGroup" type="xs:string"/>
|
|
</xs:complexType>
|
|
<!--
|
|
|
|
******** Subordinate Elements for <recordInfo>
|
|
-->
|
|
<xs:element name="recordContentSource" type="stringPlusLanguagePlusAuthority"/>
|
|
<xs:element name="recordCreationDate" type="dateDefinition"/>
|
|
<xs:element name="recordChangeDate" type="dateDefinition"/>
|
|
<!--
|
|
********** recordIdentifier
|
|
-->
|
|
<xs:element name="recordIdentifier" type="recordIdentifierDefinition"/>
|
|
<!-- -->
|
|
<xs:complexType name="recordIdentifierDefinition">
|
|
<xs:simpleContent>
|
|
<xs:extension base="stringPlusLanguage">
|
|
<xs:attribute name="source" type="xs:string"/>
|
|
</xs:extension>
|
|
</xs:simpleContent>
|
|
</xs:complexType>
|
|
<!-- -->
|
|
<xs:element name="languageOfCataloging" type="languageDefinition"/>
|
|
<xs:element name="recordOrigin" type="stringPlusLanguage"/>
|
|
<xs:element name="descriptionStandard" type="stringPlusLanguagePlusAuthority"/>
|
|
<!--
|
|
|
|
****************************************************
|
|
* Top Level Element <relatedItem> *
|
|
*****************************************************
|
|
|
|
********** relatedItem **********
|
|
-->
|
|
<xs:element name="relatedItem" type="relatedItemDefinition"/>
|
|
<!-- -->
|
|
<xs:complexType name="relatedItemDefinition">
|
|
<xs:group ref="modsGroup" minOccurs="0" maxOccurs="unbounded"/>
|
|
<xs:attribute name="type">
|
|
<xs:simpleType>
|
|
<xs:restriction base="xs:string">
|
|
<xs:enumeration value="preceding"/>
|
|
<xs:enumeration value="succeeding"/>
|
|
<xs:enumeration value="original"/>
|
|
<xs:enumeration value="host"/>
|
|
<xs:enumeration value="constituent"/>
|
|
<xs:enumeration value="series"/>
|
|
<xs:enumeration value="otherVersion"/>
|
|
<xs:enumeration value="otherFormat"/>
|
|
<xs:enumeration value="isReferencedBy"/>
|
|
<xs:enumeration value="references"/>
|
|
<xs:enumeration value="reviewOf"/>
|
|
</xs:restriction>
|
|
</xs:simpleType>
|
|
</xs:attribute>
|
|
<xs:attribute name="displayLabel" type="xs:string"/>
|
|
<xs:attribute name="ID" type="xs:ID"/>
|
|
<xs:attributeGroup ref="xlink:simpleLink"/>
|
|
</xs:complexType>
|
|
<!--
|
|
|
|
****************************************************
|
|
* Top Level Element <subject> *
|
|
*****************************************************
|
|
-->
|
|
<xs:element name="subject" type="subjectDefinition"/>
|
|
<!-- -->
|
|
<xs:complexType name="subjectDefinition">
|
|
<xs:choice minOccurs="0" maxOccurs="unbounded">
|
|
<xs:element ref="topic"/>
|
|
<xs:element ref="geographic"/>
|
|
<xs:element ref="temporal"/>
|
|
<xs:element name="titleInfo" type="subjectTitleInfoDefinition"/>
|
|
<xs:element name="name" type="subjectNameDefinition"/>
|
|
<xs:element ref="geographicCode"/>
|
|
<xs:element ref="hierarchicalGeographic"/>
|
|
<xs:element ref="cartographics"/>
|
|
<xs:element ref="occupation"/>
|
|
<xs:element ref="genre"/>
|
|
<!-- uses top-level genre definition -->
|
|
</xs:choice>
|
|
<xs:attribute name="ID" type="xs:ID"/>
|
|
<xs:attributeGroup ref="authorityAttributeGroup"/>
|
|
<xs:attributeGroup ref="languageAttributeGroup"/>
|
|
<xs:attributeGroup ref="xlink:simpleLink"/>
|
|
<xs:attribute name="displayLabel" type="xs:string"/>
|
|
<xs:attribute name="altRepGroup" type="xs:string"/>
|
|
<xs:attribute name="usage" fixed="primary"/>
|
|
</xs:complexType>
|
|
<!--
|
|
|
|
******** Subordinate Elements for <subject>
|
|
-->
|
|
<!-- topic, geographic -->
|
|
<xs:element name="topic" type="stringPlusLanguagePlusAuthority"/>
|
|
<xs:element name="geographic" type="stringPlusLanguagePlusAuthority"/>
|
|
<!--
|
|
*****************temporal ************************
|
|
-->
|
|
<xs:element name="temporal" type="temporalDefinition"/>
|
|
<!-- -->
|
|
<xs:complexType name="temporalDefinition">
|
|
<xs:simpleContent>
|
|
<xs:extension base="dateDefinition">
|
|
<xs:attributeGroup ref="authorityAttributeGroup"/>
|
|
</xs:extension>
|
|
</xs:simpleContent>
|
|
</xs:complexType>
|
|
<!--
|
|
*****************subjectTitleInfo ************************
|
|
-->
|
|
<xs:complexType name="subjectTitleInfoDefinition">
|
|
<xs:choice minOccurs="0" maxOccurs="unbounded">
|
|
<xs:element ref="title"/>
|
|
<xs:element ref="subTitle"/>
|
|
<xs:element ref="partNumber"/>
|
|
<xs:element ref="partName"/>
|
|
<xs:element ref="nonSort"/>
|
|
</xs:choice>
|
|
<xs:attribute name="ID" type="xs:ID"/>
|
|
<xs:attributeGroup ref="authorityAttributeGroup"/>
|
|
<xs:attributeGroup ref="xlink:simpleLink"/>
|
|
<xs:attributeGroup ref="languageAttributeGroup"/>
|
|
<xs:attribute name="displayLabel" type="xs:string"/>
|
|
<xs:attribute name="type">
|
|
<xs:simpleType>
|
|
<xs:restriction base="xs:string">
|
|
<xs:enumeration value="abbreviated"/>
|
|
<xs:enumeration value="translated"/>
|
|
<xs:enumeration value="alternative"/>
|
|
<xs:enumeration value="uniform"/>
|
|
</xs:restriction>
|
|
</xs:simpleType>
|
|
</xs:attribute>
|
|
</xs:complexType>
|
|
<!--
|
|
*****************subjectName ************************
|
|
-->
|
|
<xs:complexType name="subjectNameDefinition">
|
|
<xs:choice minOccurs="0" maxOccurs="unbounded">
|
|
<xs:element ref="namePart"/>
|
|
<xs:element ref="displayForm"/>
|
|
<xs:element ref="affiliation"/>
|
|
<xs:element ref="role"/>
|
|
<xs:element ref="description"/>
|
|
</xs:choice>
|
|
<xs:attribute name="type">
|
|
<xs:simpleType>
|
|
<xs:restriction base="xs:string">
|
|
<xs:enumeration value="personal"/>
|
|
<xs:enumeration value="corporate"/>
|
|
<xs:enumeration value="conference"/>
|
|
<xs:enumeration value="family"/>
|
|
</xs:restriction>
|
|
</xs:simpleType>
|
|
</xs:attribute>
|
|
<xs:attribute name="ID" type="xs:ID"/>
|
|
<xs:attributeGroup ref="authorityAttributeGroup"/>
|
|
<xs:attributeGroup ref="xlink:simpleLink"/>
|
|
<xs:attributeGroup ref="languageAttributeGroup"/>
|
|
<xs:attribute name="displayLabel" type="xs:string"/>
|
|
</xs:complexType>
|
|
<!--
|
|
********** geographicCode **********
|
|
-->
|
|
<xs:element name="geographicCode" type="geographicCodeDefinition"/>
|
|
<!-- -->
|
|
<xs:complexType name="geographicCodeDefinition">
|
|
<xs:simpleContent>
|
|
<xs:extension base="stringPlusLanguage">
|
|
<xs:attribute name="authorityURI" type="xs:anyURI"/>
|
|
<xs:attribute name="valueURI" type="xs:anyURI"/>
|
|
<xs:attribute name="authority">
|
|
<xs:simpleType>
|
|
<xs:restriction base="xs:string">
|
|
<xs:enumeration value="marcgac"/>
|
|
<xs:enumeration value="marccountry"/>
|
|
<xs:enumeration value="iso3166"/>
|
|
</xs:restriction>
|
|
</xs:simpleType>
|
|
</xs:attribute>
|
|
</xs:extension>
|
|
</xs:simpleContent>
|
|
</xs:complexType>
|
|
<!--
|
|
********** hierarchicalGeographic **********
|
|
-->
|
|
<xs:element name="hierarchicalGeographic" type="hierarchicalGeographicDefinition"/>
|
|
<!-- -->
|
|
<xs:complexType name="hierarchicalGeographicDefinition">
|
|
<xs:choice maxOccurs="unbounded">
|
|
<xs:element ref="extraterrestrialArea"/>
|
|
<xs:element ref="continent"/>
|
|
<xs:element ref="country"/>
|
|
<xs:element ref="province"/>
|
|
<xs:element ref="region"/>
|
|
<xs:element ref="state"/>
|
|
<xs:element ref="territory"/>
|
|
<xs:element ref="county"/>
|
|
<xs:element ref="city"/>
|
|
<xs:element ref="citySection"/>
|
|
<xs:element ref="island"/>
|
|
<xs:element ref="area"/>
|
|
</xs:choice>
|
|
<xs:attributeGroup ref="authorityAttributeGroup"/>
|
|
</xs:complexType>
|
|
<!-- -->
|
|
<xs:element name="area" type="stringPlusLanguage"/>
|
|
<xs:element name="city" type="stringPlusLanguage"/>
|
|
<xs:element name="citySection" type="stringPlusLanguage"/>
|
|
<xs:element name="continent" type="stringPlusLanguage"/>
|
|
<xs:element name="country" type="stringPlusLanguage"/>
|
|
<xs:element name="county" type="stringPlusLanguage"/>
|
|
<xs:element name="extraterrestrialArea" type="stringPlusLanguage"/>
|
|
<xs:element name="island" type="stringPlusLanguage"/>
|
|
<xs:element name="province" type="stringPlusLanguage"/>
|
|
<xs:element name="state" type="stringPlusLanguage"/>
|
|
<xs:element name="region" type="stringPlusLanguage"/>
|
|
<xs:element name="territory" type="stringPlusLanguage"/>
|
|
<!--
|
|
********** cartographics **********
|
|
-->
|
|
<xs:element name="cartographics" type="cartographicsDefinition"/>
|
|
<!-- -->
|
|
<xs:complexType name="cartographicsDefinition">
|
|
<xs:sequence>
|
|
<xs:element ref="scale" minOccurs="0"/>
|
|
<xs:element ref="projection" minOccurs="0"/>
|
|
<xs:element ref="coordinates" minOccurs="0" maxOccurs="unbounded"/>
|
|
</xs:sequence>
|
|
<xs:attributeGroup ref="authorityAttributeGroup"/>
|
|
</xs:complexType>
|
|
<!-- -->
|
|
<xs:element name="scale" type="stringPlusLanguage"/>
|
|
<xs:element name="projection" type="stringPlusLanguage"/>
|
|
<xs:element name="coordinates" type="stringPlusLanguage"/>
|
|
<!--
|
|
********** occupation **********
|
|
-->
|
|
<xs:element name="occupation" type="stringPlusLanguagePlusAuthority"/>
|
|
<!--
|
|
****************************************************
|
|
* Top Level Element <tableOfContents> *
|
|
*****************************************************
|
|
-->
|
|
<xs:element name="tableOfContents" type="tableOfContentsDefinition"/>
|
|
<!-- -->
|
|
<xs:complexType name="tableOfContentsDefinition">
|
|
<xs:simpleContent>
|
|
<xs:extension base="stringPlusLanguage">
|
|
<xs:attribute name="displayLabel" type="xs:string"/>
|
|
<xs:attribute name="type" type="xs:string"/>
|
|
<xs:attributeGroup ref="xlink:simpleLink"/>
|
|
<xs:attribute name="shareable" fixed="no"/>
|
|
<xs:attribute name="altRepGroup" type="xs:string"/>
|
|
<xs:attributeGroup ref="altFormatAttributeGroup"/>
|
|
</xs:extension>
|
|
<!-- -->
|
|
<!-- altFormat new in version 3.5 -->
|
|
</xs:simpleContent>
|
|
</xs:complexType>
|
|
<!--
|
|
|
|
****************************************************
|
|
* Top Level Element <targetAudience> *
|
|
*****************************************************
|
|
-->
|
|
<xs:element name="targetAudience" type="targetAudienceDefinition"/>
|
|
<!-- -->
|
|
<xs:complexType name="targetAudienceDefinition">
|
|
<xs:simpleContent>
|
|
<xs:extension base="stringPlusLanguagePlusAuthority">
|
|
<xs:attribute name="displayLabel" type="xs:string"/>
|
|
<xs:attribute name="altRepGroup" type="xs:string"/>
|
|
</xs:extension>
|
|
</xs:simpleContent>
|
|
</xs:complexType>
|
|
<!--
|
|
****************************************************
|
|
* Top Level Element <titleInfo> *
|
|
*****************************************************
|
|
-->
|
|
<xs:element name="titleInfo" type="titleInfoDefinition"/>
|
|
<!-- -->
|
|
<xs:complexType name="titleInfoDefinition">
|
|
<xs:choice minOccurs="0" maxOccurs="unbounded">
|
|
<xs:element ref="title"/>
|
|
<xs:element ref="subTitle"/>
|
|
<xs:element ref="partNumber"/>
|
|
<xs:element ref="partName"/>
|
|
<xs:element ref="nonSort"/>
|
|
</xs:choice>
|
|
<xs:attribute name="type">
|
|
<xs:simpleType>
|
|
<xs:restriction base="xs:string">
|
|
<xs:enumeration value="abbreviated"/>
|
|
<xs:enumeration value="translated"/>
|
|
<xs:enumeration value="alternative"/>
|
|
<xs:enumeration value="uniform"/>
|
|
</xs:restriction>
|
|
</xs:simpleType>
|
|
</xs:attribute>
|
|
<xs:attribute name="otherType"/>
|
|
<xs:attribute name="supplied" fixed="yes"/>
|
|
<xs:attribute name="altRepGroup" type="xs:string"/>
|
|
<xs:attributeGroup ref="altFormatAttributeGroup"/>
|
|
<xs:attribute name="nameTitleGroup" type="xs:string"/>
|
|
<xs:attribute name="usage" fixed="primary"/>
|
|
<xs:attribute name="ID" type="xs:ID"/>
|
|
<xs:attributeGroup ref="authorityAttributeGroup"/>
|
|
<xs:attributeGroup ref="xlink:simpleLink"/>
|
|
<xs:attributeGroup ref="languageAttributeGroup"/>
|
|
<xs:attribute name="displayLabel" type="xs:string"/>
|
|
<!-- -->
|
|
<!-- otherType new in version 3.5 -->
|
|
<!-- -->
|
|
<!-- altFormat new in version 3.5 -->
|
|
</xs:complexType>
|
|
<!--
|
|
|
|
******** Subordinate Elements for <titleInfo>
|
|
-->
|
|
<xs:element name="title" type="stringPlusLanguage"/>
|
|
<xs:element name="subTitle" type="stringPlusLanguage"/>
|
|
<xs:element name="partNumber" type="stringPlusLanguage"/>
|
|
<xs:element name="partName" type="stringPlusLanguage"/>
|
|
<xs:element name="nonSort" type="stringPlusLanguage"/>
|
|
<!--
|
|
****************************************************
|
|
* Top Level Element <typeOfResource> *
|
|
*****************************************************
|
|
-->
|
|
<xs:element name="typeOfResource" type="typeOfResourceDefinition"/>
|
|
<!-- -->
|
|
<xs:complexType name="typeOfResourceDefinition">
|
|
<xs:simpleContent>
|
|
<xs:extension base="resourceTypeDefinition">
|
|
<xs:attribute name="collection" fixed="yes"/>
|
|
<xs:attribute name="manuscript" fixed="yes"/>
|
|
<xs:attribute name="displayLabel" type="xs:string"/>
|
|
<xs:attribute name="altRepGroup" type="xs:string"/>
|
|
<xs:attribute name="usage" fixed="primary"/>
|
|
</xs:extension>
|
|
</xs:simpleContent>
|
|
</xs:complexType>
|
|
<!--
|
|
|
|
******** Subordinate Definitions for <typeOfResource>
|
|
-->
|
|
<!--
|
|
******* resourceTypeDefinition ********
|
|
-->
|
|
<xs:simpleType name="resourceTypeDefinition">
|
|
<xs:restriction base="xs:string">
|
|
<xs:enumeration value="text"/>
|
|
<xs:enumeration value="cartographic"/>
|
|
<xs:enumeration value="notated music"/>
|
|
<xs:enumeration value="sound recording-musical"/>
|
|
<xs:enumeration value="sound recording-nonmusical"/>
|
|
<xs:enumeration value="sound recording"/>
|
|
<xs:enumeration value="still image"/>
|
|
<xs:enumeration value="moving image"/>
|
|
<xs:enumeration value="three dimensional object"/>
|
|
<xs:enumeration value="software, multimedia"/>
|
|
<xs:enumeration value="mixed material"/>
|
|
<xs:enumeration value=""/>
|
|
</xs:restriction>
|
|
</xs:simpleType>
|
|
<!--
|
|
*********************************
|
|
*********************************
|
|
Part 3: Auxiliary definitions
|
|
*********************************
|
|
*********************************
|
|
|
|
**********************************
|
|
String Definitions
|
|
**********************************
|
|
-->
|
|
<!--
|
|
********** stringPlusLanguage
|
|
-->
|
|
<xs:complexType name="stringPlusLanguage">
|
|
<xs:simpleContent>
|
|
<xs:extension base="xs:string">
|
|
<xs:attributeGroup ref="languageAttributeGroup"/>
|
|
</xs:extension>
|
|
</xs:simpleContent>
|
|
</xs:complexType>
|
|
<!--
|
|
************************* stringPlusLanguagePlusAuthority *************************
|
|
-->
|
|
<xs:complexType name="stringPlusLanguagePlusAuthority">
|
|
<xs:simpleContent>
|
|
<xs:extension base="stringPlusLanguage">
|
|
<xs:attributeGroup ref="authorityAttributeGroup"/>
|
|
</xs:extension>
|
|
</xs:simpleContent>
|
|
</xs:complexType>
|
|
<!--
|
|
************************* stringPlusLanguagePlusSupplied *************************
|
|
-->
|
|
<xs:complexType name="stringPlusLanguagePlusSupplied">
|
|
<xs:simpleContent>
|
|
<xs:extension base="stringPlusLanguage">
|
|
<xs:attribute name="supplied" fixed="yes"/>
|
|
</xs:extension>
|
|
</xs:simpleContent>
|
|
</xs:complexType>
|
|
<!--
|
|
**********************************
|
|
Attribute Group Definitions
|
|
**********************************
|
|
-->
|
|
<!--
|
|
********** authorityAttributeGroup **********
|
|
-->
|
|
<xs:attributeGroup name="authorityAttributeGroup">
|
|
<!-- new in 3.4 -->
|
|
<xs:attribute name="authority" type="xs:string"/>
|
|
<xs:attribute name="authorityURI" type="xs:anyURI"/>
|
|
<xs:attribute name="valueURI" type="xs:anyURI"/>
|
|
</xs:attributeGroup>
|
|
<!--
|
|
********** languageAttributeGroup **********
|
|
-->
|
|
<xs:attributeGroup name="languageAttributeGroup">
|
|
<xs:attribute name="lang" type="xs:string"/>
|
|
<xs:attribute ref="xml:lang"/>
|
|
<xs:attribute name="script" type="xs:string"/>
|
|
<xs:attribute name="transliteration" type="xs:string"/>
|
|
</xs:attributeGroup>
|
|
<!--
|
|
********** altFormatAttributeGroup **********
|
|
altFormat new in version 3.5
|
|
-->
|
|
<xs:attributeGroup name="altFormatAttributeGroup">
|
|
<xs:attribute name="altFormat" type="xs:anyURI"/>
|
|
<xs:attribute name="contentType" type="xs:string"/>
|
|
</xs:attributeGroup>
|
|
<!--
|
|
****************************************************
|
|
- Attribute definitions (simpleTypes)
|
|
*****************************************************
|
|
-->
|
|
<!--
|
|
********** codeOrText
|
|
******** used by type attribute for elements that distinguish code from text:
|
|
******** <languageTerm>, <placeTerm>, <roleTerm>, <scriptTerm>
|
|
-->
|
|
<xs:simpleType name="codeOrText">
|
|
<xs:restriction base="xs:string">
|
|
<xs:enumeration value="code"/>
|
|
<xs:enumeration value="text"/>
|
|
</xs:restriction>
|
|
</xs:simpleType>
|
|
<!-- -->
|
|
</xs:schema>
|