Skip to content
Snippets Groups Projects
Commit 2ab8f6b4 authored by Jens Steidl's avatar Jens Steidl :baby_chick: Committed by Andreas Romeyke
Browse files

- added flattened MODS

parent fd51f2c1
No related branches found
No related tags found
No related merge requests found
Pipeline #4312 failed
<?xml version="1.0" encoding="UTF-8"?>
<!--
Library of Congress
Editor: Ray Denenberg raydenenberg@gmail.com
-->
<xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified"
targetNamespace="http://www.loc.gov/mods/v3" xmlns="http://www.loc.gov/mods/v3"
xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xs="http://www.w3.org/2001/XMLSchema">
<!-- -->
<xs:import namespace="http://www.w3.org/XML/1998/namespace" schemaLocation="xml.xsd"/>
<xs:import namespace="http://www.w3.org/1999/xlink" schemaLocation="xlink.xsd"/>
<!--
MODS: Metadata Object Description Schema. See http://www.loc.gov/standards/mods/
*******************************************************************
*
* MODS 3.8
*
* September 16, 2022
*
*********************************************************************
********* November 10, 2022 the attribute @supplied has been added to the <name> definition.
*************** Changes in version 3.8
1. Controlled-list restriction removed on authority attribute
for <placeTerm> <geographic Code> and <languageTerm>.
2. Attributes @otherTypeAuth, @otherTypeAuthURI, and @otherTypeURI added for <titleInfo>.
3. Element <agent> added, subelement of <originInfo>.
4. Authority attributes added for <accessCondition> and for <affiliation>.
5. Attribute @usage added for <recordInfo>, value "primary".
6. Attribute @IDref added to any element that has the @ID attribute;
attributes @ID and @idref added to top-level elements that have neither.
7. Element <nameIdentifier> element added, subelement of <place>



.
8. Element <cartographics> added, subelement of <place>.
9. Attribute @stateType added, subelement of <subject><hierarchicalGeographic><state>
.
10. Element <displayDate> added, subelement of <originInfo>.
11. Attribute @eventTypeURI added to <originInfo>.
12. Attribute @usage of <location><url>, value "primary display" deprecated.
13. All occurrences of @fixed removed, replaced by a single-value controlled list,
where the value is the previous value of @fixed.
14. @type added to <extension>.
***************************************************
***************************************************
*************************************
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 maxOccurs="unbounded" ref="modsGroup"/>
<!--
****************** @IDREF added in 3.8 (@ID removed and replaced by the following)-->
<xs:attributeGroup ref="IDAttributeGroup"/>
<!-- -->
<xs:attribute name="version">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value="3.8"/>
<xs:enumeration value="3.7"/>
<xs:enumeration value="3.6"/>
<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 maxOccurs="unbounded" ref="mods"/>
</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"/>
<!--
@sharable definition corrected in 3.8.
See "Changes in version 3.8" #13-->
<xs:attribute name="shareable" type="no"/>
<!-- -->
<xs:attribute name="altRepGroup" type="xs:string"/>
<xs:attributeGroup ref="altFormatAttributeGroup"/>
<!--
****************** following attribute group added in 3.8-->
<xs:attributeGroup ref="IDAttributeGroup"/>
<!-- -->
</xs:extension>
</xs:simpleContent>
</xs:complexType>
<!--
****************************************************
* Top Level Element <accessCondition> *
*****************************************************
-->
<xs:element name="accessCondition" type="accessConditionDefinition"/>
<!-- -->
<xs:complexType mixed="true" name="accessConditionDefinition">
<xs:complexContent mixed="true">
<xs:extension base="extensionDefinition">
<xs:attributeGroup ref="xlink:simpleLink"/>
<xs:attributeGroup ref="languageAttributeGroup"/>
<!--
Previously attribute @type was here. It is
removed in 3.8 because it has been added
to the "extension" defintion; "accessCondition"
is based on the "extension definition" so @type is
thereby implicitly included in this definition.
-->
<xs:attribute name="altRepGroup" type="xs:string"/>
<xs:attributeGroup ref="altFormatAttributeGroup"/>
<!--
****************** following two attribute groups added in 3.8-->
<xs:attributeGroup ref="IDAttributeGroup"/>
<xs:attributeGroup ref="authorityAttributeGroup"/>
<!-- -->
</xs:extension>
</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"/>
<!--
@usage definition corrected in 3.8.
See "Changes in version 3.8" #13-->
<xs:attribute name="usage" type="usagePrimary"/>
<!-- -->
<xs:attribute name="generator" type="xs:string"/>
<!--
****************** following attribute group added in 3.8-->
<xs:attributeGroup ref="IDAttributeGroup"/>
<!-- -->
</xs:extension>
</xs:simpleContent>
</xs:complexType>
<!--
****************************************************
* Top Level Element <extension> *
*****************************************************
-->
<xs:element name="extension" type="extensionDefinition"/>
<!-- -->
<xs:complexType mixed="true" name="extensionDefinition">
<xs:sequence>
<xs:any maxOccurs="unbounded" minOccurs="0" processContents="lax"/>
</xs:sequence>
<xs:attribute name="displayLabel" type="xs:string"/>
<!--
****************** following attribute added in 3.8 -->
<xs:attribute name="type" type="xs:string"/>
<!--
****************** following attribute group added in 3.8-->
<xs:attributeGroup ref="IDAttributeGroup"/>
<!-- -->
</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"/>
<!--
@usage definition corrected in 3.8.
See "Changes in version 3.8" #13-->
<xs:attribute name="usage" type="usagePrimary"/>
<!--
****************** following attribute group added in 3.8 -->
<xs:attributeGroup ref="IDAttributeGroup"/>
<!-- -->
</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"/>
<!--
@invalid definition corrected in 3.8.
See "Changes in version 3.8" #13-->
<xs:attribute name="invalid" type="yes"/>
<!-- -->
<xs:attribute name="altRepGroup" type="xs:string"/>
<!--
****************** following attribute group added in 3.8 -->
<xs:attributeGroup ref="IDAttributeGroup"/>
<!-- -->
</xs:extension>
</xs:simpleContent>
</xs:complexType>
<!--
****************************************************
* Top Level Element <language> *
*****************************************************
-->
<xs:element name="language" type="languageDefinition"/>
<!-- -->
<xs:complexType name="languageDefinition">
<xs:sequence>
<xs:element maxOccurs="unbounded" ref="languageTerm"/>
<xs:element maxOccurs="unbounded" minOccurs="0" ref="scriptTerm"/>
</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"/>
<!--
@usage definition corrected in 3.8.
See "Changes in version 3.8" #13-->
<xs:attribute name="usage" type="usagePrimary"/>
<!--
****************** following attribute group added in 3.8 -->
<xs:attributeGroup ref="IDAttributeGroup"/>
<!-- -->
</xs:complexType>
<!--
******** Subordinate Elements for <language> ********
*****************languageTerm ************************
-->
<xs:element name="languageTerm" type="languageTermDefinition"/>
<!-- -->
<xs:complexType name="languageTermDefinition">
<xs:simpleContent>
<xs:extension base="stringPlusLanguagePlusAuthority">
<!-- ****** changed in 3.8 from "stringPlusLanguage" to
****** "stringPlusLanguagePlusAuthority". Previously,
****** @authority was restricted to specific values.
****** That restriction is removed in 3.8
-->
<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 maxOccurs="unbounded" minOccurs="0" ref="physicalLocation"/>
<xs:element maxOccurs="unbounded" minOccurs="0" ref="shelfLocator"/>
<xs:element maxOccurs="unbounded" minOccurs="0" ref="url"/>
<xs:element minOccurs="0" ref="holdingSimple"/>
<xs:element minOccurs="0" ref="holdingExternal"/>
</xs:sequence>
<xs:attributeGroup ref="languageAttributeGroup"/>
<xs:attribute name="displayLabel" type="xs:string"/>
<xs:attribute name="altRepGroup" type="xs:string"/>
<!--
****************** following attribute group added in 3.8 -->
<xs:attributeGroup ref="IDAttributeGroup"/>
<!-- -->
</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 maxOccurs="unbounded" ref="copyInformation"/>
</xs:sequence>
</xs:complexType>
<!--
**********copyInformation **********
-->
<xs:element name="copyInformation" type="copyInformationDefinition"/>
<!-- -->
<xs:complexType name="copyInformationDefinition">
<xs:sequence>
<xs:element minOccurs="0" ref="form"/>
<xs:element maxOccurs="unbounded" minOccurs="0" ref="subLocation"/>
<xs:element maxOccurs="unbounded" minOccurs="0" ref="shelfLocator"/>
<xs:element maxOccurs="unbounded" minOccurs="0" ref="electronicLocator"/>
<xs:element maxOccurs="unbounded" minOccurs="0" name="note">
<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"/>
<!--
****************** @IDREF added in 3.8 (@ID removed and replaced by the following)-->
<xs:attributeGroup ref="IDAttributeGroup"/>
<!-- -->
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
<xs:element maxOccurs="unbounded" minOccurs="0" ref="enumerationAndChronology"/>
<xs:element maxOccurs="unbounded" minOccurs="0" ref="itemIdentifier"/>
<!-- -->
</xs:sequence>
</xs:complexType>
<!--
**********itemIdentifier **********
-->
<xs:element name="itemIdentifier" type="itemIdentifierDefinition"/>
<xs:complexType name="itemIdentifierDefinition">
<xs:simpleContent>
<xs:extension base="stringPlusLanguage">
<xs:attribute name="type" type="xs:string"/>
</xs:extension>
</xs:simpleContent>
</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"/>
<!-- This value,"primary display”, is deprecated in version 3.8;
“primary” is the only value that should be used in 3.8 and beyond.
("primary display” remains a legal value in the schema,
for compatibility with earlier versions.)
-->
<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 gives two ways to do this.
The second way allows the element <etal>, to express "et. al."
Choice one. WITHOUT <etal>.
-->
<xs:choice maxOccurs="unbounded" minOccurs="0">
<xs:element ref="namePart"/>
<xs:element ref="displayForm"/>
<xs:element ref="affiliation"/>
<xs:element ref="role"/>
<xs:element ref="description"/>
<xs:element ref="nameIdentifier"/>
<xs:element ref="alternativeName"/>
<!-- -->
</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>, <displayForm>, and <identifier> 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.
<nameIdentifier> is not used with <etal>
-->
<xs:element ref="etal"/>
<xs:choice maxOccurs="unbounded" minOccurs="0">
<xs:element ref="affiliation"/>
<xs:element ref="role"/>
<xs:element ref="description"/>
</xs:choice>
</xs:sequence>
<!-- -->
</xs:choice>
<!--
****************** @IDREF added in 3.8 (@ID removed and replaced by the following)-->
<xs:attributeGroup ref="IDAttributeGroup"/>
<!-- -->
<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"/>
<!--
@usage definition corrected in 3.8.
See "Changes in version 3.8" #13-->
<xs:attribute name="usage" type="usagePrimary"/>
<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>
<!--
****************** Following line added 11/10/2022. Fixes a flaw.
-->
<xs:attribute name="supplied" type="yes"/>
<!-- -->
</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, alternativeName -->
<xs:element name="displayForm" type="stringPlusLanguage"/>
<!--
affiliation definition changed in 3.8. Authority attributes added -->
<xs:element name="affiliation" type="stringPlusLanguagePlusAuthority"/>
<!-- -->
<xs:element name="description" type="stringPlusLanguage"/>
<xs:element name="nameIdentifier" type="identifierDefinition"/>
<xs:element name="alternativeName" type="alternativeNameDefinition"/>
<!--
******** 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 ********
-->
<xs:element name="etal" type="stringPlusLanguage"/>
<!--
******** alternativeName ********
-->
<xs:complexType name="alternativeNameDefinition">
<xs:choice maxOccurs="unbounded" minOccurs="0">
<xs:element ref="namePart"/>
<xs:element ref="displayForm"/>
<xs:element ref="affiliation"/>
<xs:element ref="role"/>
<xs:element ref="description"/>
<xs:element ref="nameIdentifier"/>
</xs:choice>
<!-- -->
<xs:attributeGroup ref="xlink:simpleLink"/>
<xs:attributeGroup ref="languageAttributeGroup"/>
<xs:attribute name="displayLabel" type="xs:string"/>
<xs:attribute name="altType" type="xs:string"/>
</xs:complexType>
<!--
****************************************************
* 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"/>
<!--
****************** @IDREF added in 3.8 (@ID removed and replaced by the following)-->
<xs:attributeGroup ref="IDAttributeGroup"/>
<!-- -->
<xs:attribute name="altRepGroup" type="xs:string"/>
<!-- -->
</xs:extension>
</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"/>
<!--
following element, "displayDate", added in 3.8 -->
<xs:element ref="displayDate"/>
<!-- -->
<xs:element ref="edition"/>
<xs:element ref="issuance"/>
<xs:element ref="frequency"/>
<!--
following element, "agent", added in 3.8-->
<xs:element ref="agent"/>
<!-- -->
</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, @eventTypeURI, added in 3.8 -->
<xs:attribute name="eventTypeURI" type="xs:anyURI"/>
<!--
****************** following attribute group added in 3.8 -->
<xs:attributeGroup ref="IDAttributeGroup"/>
<!-- -->
</xs:complexType>
<!--
******** Subordinate Elements for <originInfo> -->
<!--
*** place ***
-->
<xs:element name="place" type="placeDefinition"/>
<!-- -->
<xs:complexType name="placeDefinition">
<xs:choice maxOccurs="unbounded" minOccurs="1">
<!--
Previously, place was simply one or more occurrences of placeTerm.
In 3.8, placeIdentifer and cartographics are added to placeDefinition.
placeIdentifier is a new element in 3.8; cartographics uses the
existing cartographicsDefinition.
So, now place is one or more of the following three subelements where
each may be any of the three.
-->
<xs:element ref="placeTerm"/>
<xs:element ref="placeIdentifier"/>
<xs:element ref="cartographics"/>
<!-- -->
</xs:choice>
<!--
@supplied definition corrected in 3.8.
See "Changes in version 3.8" #13 -->
<xs:attribute name="supplied" type="yes"/>
<!-- -->
</xs:complexType>
<!--
*** placeTerm ***
-->
<xs:element name="placeTerm" type="placeTermDefinition"/>
<!-- -->
<xs:complexType name="placeTermDefinition">
<xs:simpleContent>
<xs:extension base="stringPlusLanguagePlusAuthority">
<!--
****** changed in 3.8 from "stringPlusLanguage" to
****** "stringPlusLanguagePlusAuthority". Previously,
****** @authority was restricted to specific values.
****** That restriction is removed in 3.8
-->
<xs:attribute name="type" type="codeOrText"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
<!--
*** placeIdentifier *** (********new in 3.8)
-->
<xs:element name="placeIdentifier" type="xs:anyURI"/>
<!-- -->
<!--
*** publisher ***
-->
<xs:element name="publisher" type="publisherDefinition"/>
<!-- -->
<xs:complexType name="publisherDefinition">
<xs:simpleContent>
<xs:extension base="stringPlusLanguagePlusSupplied">
<xs:attributeGroup ref="authorityAttributeGroup"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
<!--
agent *** (********new in 3.8)
-->
<xs:element name="agent" type="nameDefinition"/>
<!--
********** 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"/>
<!-- following definition added 3.8 -->
<xs:element name="displayDate" type="xs:string"/>
<!-- -->
<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>
<!--
@keyDate definition corrected in 3.8.
See "Changes in version 3.8" #13-->
<xs:attribute name="keyDate" type="yes"/>
<!-- -->
<xs:attribute name="calendar" type="xs:string"/>
<!-- -->
</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 maxOccurs="unbounded" minOccurs="0">
<xs:element ref="detail"/>
<xs:element name="extent" type="extentDefinition"/>
<xs:element ref="date"/>
<xs:element ref="text"/>
</xs:choice>
<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"/>
<!--
****************** @IDREF added in 3.8 (@ID removed and replaced by the following)-->
<xs:attributeGroup ref="IDAttributeGroup"/>
<!-- -->
</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 minOccurs="0" ref="start"/>
<xs:element minOccurs="0" ref="end"/>
<xs:element minOccurs="0" ref="total"/>
<xs:element minOccurs="0" ref="list"/>
</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"/>
<!--
****************** following attribute group added in in 3.8-->
<xs:attributeGroup ref="IDAttributeGroup"/>
<!-- -->
</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>
</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"/>
<!--
****************** @IDREF added in 3.8 (@ID removed and replaced by the following)-->
<xs:attributeGroup ref="IDAttributeGroup"/>
<!-- -->
</xs:extension>
</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:element ref="recordInfoNote"/>
<!-- -->
</xs:choice>
<xs:attributeGroup ref="languageAttributeGroup"/>
<xs:attribute name="displayLabel" type="xs:string"/>
<xs:attribute name="altRepGroup" type="xs:string"/>
<!--
@usage added to recordInfo in 3.8. -->
<xs:attribute name="usage" type="usagePrimary"/>
<!--
****************** @IDREF added in 3.8 (@ID removed and replaced by the following) -->
<xs:attributeGroup ref="IDAttributeGroup"/>
<!-- -->
</xs:complexType>
<!--
******** Subordinate Elements for <recordInfo>
-->
<xs:element name="recordContentSource" type="stringPlusLanguagePlusAuthority"/>
<xs:element name="recordCreationDate" type="dateDefinition"/>
<xs:element name="recordChangeDate" type="dateDefinition"/>
<xs:element name="recordInfoNote" type="noteDefinition"/>
<!--
********** 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 maxOccurs="unbounded" minOccurs="0" ref="modsGroup"/>
<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="otherType" type="xs:string"/>
<xs:attribute name="otherTypeAuth" type="xs:string"/>
<xs:attribute name="otherTypeAuthURI" type="xs:string"/>
<xs:attribute name="otherTypeURI" type="xs:string"/>
<xs:attribute name="displayLabel" type="xs:string"/>
<xs:attributeGroup ref="xlink:simpleLink"/>
<!--
****************** @IDREF added in 3.8 (@ID removed and replaced by the following)-->
<xs:attributeGroup ref="IDAttributeGroup"/>
<!-- -->
</xs:complexType>
<!--
****************************************************
* Top Level Element <subject> *
*****************************************************
-->
<xs:element name="subject" type="subjectDefinition"/>
<!-- -->
<xs:complexType name="subjectDefinition">
<xs:choice maxOccurs="unbounded" minOccurs="0">
<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: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"/>
<!--
****************** @IDREF added in 3.8 (@ID removed and replaced by the following)-->
<xs:attributeGroup ref="IDAttributeGroup"/>
<!-- -->
<!--
@usage definition corrected in 3.8.
See "Changes in version 3.8" #13-->
<xs:attribute name="usage" type="usagePrimary"/>
</xs:complexType>
<!--
******** Subordinate Elements for <subject>
-->
<!-- topic, geographic -->
<xs:element name="topic" type="stringPlusLanguagePlusAuthority"/>
<xs:element name="geographic" type="stringPlusLanguagePlusAuthority"/>
<xs:element name="geographicCode" type="stringPlusLanguagePlusAuthority"/>
<!-- changed in 3.8 from "geographicCodeDefinition" to "stringPlusLanguagePlusAuthority".
Previously there had been a separate definition for geographicCode
to accomodate a controlled list restriction. That restriction is
dropped in 3.8
-->
<!--
*****************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 maxOccurs="unbounded" minOccurs="0">
<xs:element ref="title"/>
<xs:element ref="subTitle"/>
<xs:element ref="partNumber"/>
<xs:element ref="partName"/>
<xs:element ref="nonSort"/>
</xs:choice>
<!--
****************** @IDREF added in 3.8 (@ID removed and replaced by the following)-->
<xs:attributeGroup ref="IDAttributeGroup"/>
<!-- -->
<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>
<!--
Following four attributes added in 3.8 -->
<xs:attribute name="otherType"/>
<xs:attribute name="otherTypeAuth" type="xs:string"/>
<xs:attribute name="otherTypeAuthURI" type="xs:anyURI"/>
<xs:attribute name="otherTypeURI" type="xs:anyURI"/>
<!-- -->
</xs:complexType>
<!--
*****************subjectName ************************
-->
<xs:complexType name="subjectNameDefinition">
<xs:choice maxOccurs="unbounded" minOccurs="0">
<xs:element ref="namePart"/>
<xs:element ref="displayForm"/>
<xs:element ref="affiliation"/>
<xs:element ref="role"/>
<xs:element ref="description"/>
<xs:element ref="nameIdentifier"/>
<!-- -->
</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>
<!--
****************** @IDREF added in 3.8 (@ID removed and replaced by the following)-->
<xs:attributeGroup ref="IDAttributeGroup"/>
<!-- -->
<xs:attributeGroup ref="authorityAttributeGroup"/>
<xs:attributeGroup ref="xlink:simpleLink"/>
<xs:attributeGroup ref="languageAttributeGroup"/>
<xs:attribute name="displayLabel" type="xs:string"/>
</xs:complexType>
<!--
********** geographicCode **********
"geographicCode definition, here, prior to 3.8, is removed in 3.8;
it is now in "subordinate defitions for subject"
-->
<!--
********** 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"/>
<!-- province has been deprecated (in a previous version).
Use <state> instead of 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>
<!-- -->
<!-- ********** hierarchicalPart *** auxiliary definition -->
<xs:complexType name="hierarchicalPart">
<xs:simpleContent>
<xs:extension base="stringPlusLanguage">
<xs:attribute name="level"/>
<xs:attribute name="period"/>
<xs:attributeGroup ref="authorityAttributeGroup"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
<!--
Next, definitions for the place elements, starting with area, region, and citySection
-->
<!--
********** area
-->
<xs:element name="area" type="areaDefinition"/>
<!-- -->
<xs:complexType name="areaDefinition">
<xs:simpleContent>
<xs:extension base="hierarchicalPart">
<xs:attribute name="areaType"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
<!-- -->
<!--
********** region
-->
<xs:element name="region" type="regionDefinition"/>
<!-- -->
<xs:complexType name="regionDefinition">
<xs:simpleContent>
<xs:extension base="hierarchicalPart">
<xs:attribute name="regionType"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
<!--
********** citySection
-->
<xs:element name="citySection" type="citySectionDefinition"/>
<!-- -->
<xs:complexType name="citySectionDefinition">
<xs:simpleContent>
<xs:extension base="hierarchicalPart">
<xs:attribute name="citySectionType"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
<!-- -->
<!--
Next, definitions for state
-->
<!--
********** state
-->
<xs:element name="state" type="stateDefinition"/>
<!-- see stateDefinition, revised in 3.8: @stateType added. -->
<!--
The rest are all of type "hierarchicalPart" ......
-->
<xs:element name="extraTerrestrialArea" type="hierarchicalPart"/>
<xs:element name="city" type="hierarchicalPart"/>
<xs:element name="continent" type="hierarchicalPart"/>
<xs:element name="country" type="hierarchicalPart"/>
<xs:element name="county" type="hierarchicalPart"/>
<xs:element name="island" type="hierarchicalPart"/>
<!--
following removed in 3.8, replaced by new definition for state, below.
****REMOVED: <xs:element name="state" type="hierarchicalPart"/> ****REMOVED
-->
<xs:element name="territory" type="hierarchicalPart"/>
<!--
..... except for province (which was depricated in a previous version) -->
<xs:element name="province" type="stringPlusLanguage"/>
<!--
.... and (in 3.8) for state:
new state definition, 3.8. Before, state was simply hierarchicalPart.
Now @stateType is added-->
<xs:complexType name="stateDefinition">
<xs:simpleContent>
<xs:extension base="hierarchicalPart">
<xs:attribute name="stateType"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
<!--
********** cartographics **********
-->
<xs:element name="cartographics" type="cartographicsDefinition"/>
<!-- -->
<xs:complexType name="cartographicsDefinition">
<xs:sequence>
<xs:element minOccurs="0" ref="scale"/>
<xs:element minOccurs="0" ref="projection"/>
<xs:element maxOccurs="unbounded" minOccurs="0" ref="coordinates"/>
<xs:element maxOccurs="unbounded" minOccurs="0" ref="cartographicExtension"/>
<!-- -->
</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"/>
<xs:element name="cartographicExtension" type="extensionDefinition"/>
<!--
********** 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"/>
<!--
@sharable definition corrected in 3.8.
See "Changes in version 3.8" #13-->
<xs:attribute name="shareable" type="no"/>
<!-- -->
<xs:attribute name="altRepGroup" type="xs:string"/>
<xs:attributeGroup ref="altFormatAttributeGroup"/>
<!--
****************** @IDREF added in 3.8 (@ID removed and replaced by the following)-->
<xs:attributeGroup ref="IDAttributeGroup"/>
<!-- -->
</xs:extension>
</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"/>
<!--
****************** following attribute group added in 3.8-->
<xs:attributeGroup ref="IDAttributeGroup"/>
<!-- -->
</xs:extension>
</xs:simpleContent>
</xs:complexType>
<!--
****************************************************
* Top Level Element <titleInfo> *
*****************************************************
-->
<xs:element name="titleInfo" type="titleInfoDefinition"/>
<!-- -->
<xs:complexType name="titleInfoDefinition">
<xs:choice maxOccurs="unbounded" minOccurs="0">
<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"/>
<!--
Following three attributes added in 3.8
(For consistency with relatedItem.)
-->
<xs:attribute name="otherTypeAuth" type="xs:string"/>
<xs:attribute name="otherTypeAuthURI" type="xs:anyURI"/>
<xs:attribute name="otherTypeURI" type="xs:anyURI"/>
<!-- -->
<!--
@supplied definition corrected in 3.8.
See "Changes in version 3.8" #13-->
<xs:attribute name="supplied" type="yes"/>
<!-- -->
<xs:attribute name="altRepGroup" type="xs:string"/>
<xs:attributeGroup ref="altFormatAttributeGroup"/>
<xs:attribute name="nameTitleGroup" type="xs:string"/>
<!--
@usage definition corrected in 3.8.
See "Changes in version 3.8" #13-->
<xs:attribute name="usage" type="usagePrimary"/>
<!-- -->
<xs:attributeGroup ref="authorityAttributeGroup"/>
<xs:attributeGroup ref="xlink:simpleLink"/>
<xs:attributeGroup ref="languageAttributeGroup"/>
<xs:attribute name="displayLabel" type="xs:string"/>
<!--
****************** @IDREF added in 3.8 (@ID removed and replaced by the following)-->
<xs:attributeGroup ref="IDAttributeGroup"/>
<!-- -->
</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"/>
<!--
********* nonSort
-->
<xs:element name="nonSort">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="stringPlusLanguage">
<xs:attribute ref="xml:space"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
<!--
****************************************************
* Top Level Element <typeOfResource> *
*****************************************************
-->
<xs:element name="typeOfResource" type="typeOfResourceDefinition"/>
<!-- -->
<xs:complexType name="typeOfResourceDefinition">
<xs:simpleContent>
<xs:extension base="stringPlusLanguagePlusAuthority">
<!--
@collection, @manuscript, and @usage definitions changed.
See "Changes in version 3.8" #13-->
<xs:attribute name="collection" type="yes"/>
<xs:attribute name="manuscript" type="yes"/>
<xs:attribute name="usage" type="usagePrimary"/>
<!-- -->
<xs:attribute name="displayLabel" type="xs:string"/>
<xs:attribute name="altRepGroup" type="xs:string"/>
<!--
****************** following attribute group added in 3.8-->
<xs:attributeGroup ref="IDAttributeGroup"/>
<!-- -->
</xs:extension>
</xs:simpleContent>
</xs:complexType>
<!--
***** End of top level elements *****
*********************************
*********************************
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" type="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 **********
-->
<xs:attributeGroup name="altFormatAttributeGroup">
<xs:attribute name="altFormat" type="xs:anyURI"/>
<xs:attribute name="contentType" type="xs:string"/>
</xs:attributeGroup>
<!-- ********** IDAttributeGroup **********
-
This attribute group added in 3.8
-->
<xs:attributeGroup name="IDAttributeGroup">
<xs:attribute name="ID" type="xs:ID"/>
<xs:attribute name="IDREF" type="xs:IDREF"/>
</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>
<!--
all following attribute definitions added 3.8
-->
<xs:simpleType name="no">
<xs:restriction base="xs:string">
<xs:enumeration value="no"/>
</xs:restriction>
</xs:simpleType>
<!-- -->
<xs:simpleType name="yes">
<xs:restriction base="xs:string">
<xs:enumeration value="yes"/>
</xs:restriction>
</xs:simpleType>
<!-- -->
<xs:simpleType name="usagePrimary">
<xs:restriction base="xs:string">
<xs:enumeration value="primary"/>
</xs:restriction>
</xs:simpleType>
</xs:schema>
<?xml version="1.0" encoding="UTF-8"?>
<!-- METS XLink Schema, v. 2, Nov. 15, 2004 -->
<schema elementFormDefault="qualified" targetNamespace="http://www.w3.org/1999/xlink"
xmlns="http://www.w3.org/2001/XMLSchema" xmlns:xlink="http://www.w3.org/1999/xlink">
<!-- global attributes -->
<attribute name="href" type="anyURI"/>
<attribute name="role" type="string"/>
<attribute name="arcrole" type="string"/>
<attribute name="title" type="string"/>
<attribute name="show">
<simpleType>
<restriction base="string">
<enumeration value="new"/>
<enumeration value="replace"/>
<enumeration value="embed"/>
<enumeration value="other"/>
<enumeration value="none"/>
</restriction>
</simpleType>
</attribute>
<attribute name="actuate">
<simpleType>
<restriction base="string">
<enumeration value="onLoad"/>
<enumeration value="onRequest"/>
<enumeration value="other"/>
<enumeration value="none"/>
</restriction>
</simpleType>
</attribute>
<attribute name="label" type="string"/>
<attribute name="from" type="string"/>
<attribute name="to" type="string"/>
<attributeGroup name="simpleLink">
<attribute fixed="simple" form="qualified" name="type" type="string"/>
<attribute ref="xlink:href" use="optional"/>
<attribute ref="xlink:role" use="optional"/>
<attribute ref="xlink:arcrole" use="optional"/>
<attribute ref="xlink:title" use="optional"/>
<attribute ref="xlink:show" use="optional"/>
<attribute ref="xlink:actuate" use="optional"/>
</attributeGroup>
<attributeGroup name="extendedLink">
<attribute fixed="extended" form="qualified" name="type" type="string"/>
<attribute ref="xlink:role" use="optional"/>
<attribute ref="xlink:title" use="optional"/>
</attributeGroup>
<attributeGroup name="locatorLink">
<attribute fixed="locator" form="qualified" name="type" type="string"/>
<attribute ref="xlink:href" use="required"/>
<attribute ref="xlink:role" use="optional"/>
<attribute ref="xlink:title" use="optional"/>
<attribute ref="xlink:label" use="optional"/>
</attributeGroup>
<attributeGroup name="arcLink">
<attribute fixed="arc" form="qualified" name="type" type="string"/>
<attribute ref="xlink:arcrole" use="optional"/>
<attribute ref="xlink:title" use="optional"/>
<attribute ref="xlink:show" use="optional"/>
<attribute ref="xlink:actuate" use="optional"/>
<attribute ref="xlink:from" use="optional"/>
<attribute ref="xlink:to" use="optional"/>
</attributeGroup>
<attributeGroup name="resourceLink">
<attribute fixed="resource" form="qualified" name="type" type="string"/>
<attribute ref="xlink:role" use="optional"/>
<attribute ref="xlink:title" use="optional"/>
<attribute ref="xlink:label" use="optional"/>
</attributeGroup>
<attributeGroup name="titleLink">
<attribute fixed="title" form="qualified" name="type" type="string"/>
</attributeGroup>
<attributeGroup name="emptyLink">
<attribute fixed="none" form="qualified" name="type" type="string"/>
</attributeGroup>
</schema>
<?xml version="1.0"?>
<xs:schema targetNamespace="http://www.w3.org/XML/1998/namespace" xml:lang="en"
xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:annotation>
<xs:documentation> See http://www.w3.org/XML/1998/namespace.html and
http://www.w3.org/TR/REC-xml for information about this namespace. This schema
document describes the XML namespace, in a form suitable for import by other schema
documents. Note that local names in this namespace are intended to be defined
only by the World Wide Web Consortium or its subgroups. The following names are
currently defined in this namespace and should not be used with conflicting
semantics by any Working Group, specification, or document instance: base (as
an attribute name): denotes an attribute whose value provides a URI to be used
as the base for interpreting any relative URIs in the scope of the element on
which it appears; its value is inherited. This name is reserved by
virtue of its definition in the XML Base specification. id (as an attribute
name): denotes an attribute whose value should be interpreted as if declared to
be of type ID. The xml:id specification is not yet a W3C Recommendation,
but this attribute is included here to facilitate experimentation with the
mechanisms it proposes. Note that it is _not_ included in the specialAttrs
attribute group. lang (as an attribute name): denotes an attribute whose value
is a language code for the natural language of the content of any element; its
value is inherited. This name is reserved by virtue of its definition in the
XML specification. space (as an attribute name): denotes an attribute whose
value is a keyword indicating what whitespace processing discipline is intended
for the content of the element; its value is inherited. This name is reserved
by virtue of its definition in the XML specification. Father (in any
context at all): denotes Jon Bosak, the chair of the original XML Working
Group. This name is reserved by the following decision of the W3C XML Plenary
and XML Coordination groups: In appreciation for his vision,
leadership and dedication the W3C XML Plenary on this 10th day of February,
2000 reserves for Jon Bosak in perpetuity the XML name
xml:Father </xs:documentation>
</xs:annotation>
<xs:annotation>
<xs:documentation>This schema defines attributes and an attribute group suitable for
use by schemas wishing to allow xml:base, xml:lang, xml:space or xml:id
attributes on elements they define. To enable this, such a schema must import
this schema for the XML namespace, e.g. as follows: &lt;schema . . .&gt;
. . . &lt;import namespace="http://www.w3.org/XML/1998/namespace"
schemaLocation="http://www.w3.org/2001/xml.xsd"/&gt; Subsequently, qualified
reference to any of the attributes or the group defined below will have the
desired effect, e.g. &lt;type . . .&gt; . . . &lt;attributeGroup
ref="xml:specialAttrs"/&gt; will define a type which will schema-validate an
instance element with any of those attributes</xs:documentation>
</xs:annotation>
<xs:annotation>
<xs:documentation>In keeping with the XML Schema WG's standard versioning policy, this
schema document will persist at http://www.w3.org/2005/08/xml.xsd. At the date of
issue it can also be found at http://www.w3.org/2001/xml.xsd. The schema document
at that URI may however change in the future, in order to remain compatible with the
latest version of XML Schema itself, or with the XML namespace itself. In other
words, if the XML Schema or XML namespaces change, the version of this document at
http://www.w3.org/2001/xml.xsd will change accordingly; the version at
http://www.w3.org/2005/08/xml.xsd will not change. </xs:documentation>
</xs:annotation>
<xs:attribute name="lang">
<xs:annotation>
<xs:documentation>Attempting to install the relevant ISO 2- and 3-letter codes
as the enumerated possible values is probably never going to be a realistic
possibility. See RFC 3066 at http://www.ietf.org/rfc/rfc3066.txt and the
IANA registry at http://www.iana.org/assignments/lang-tag-apps.htm for
further information. The union allows for the 'un-declaration' of xml:lang
with the empty string.</xs:documentation>
</xs:annotation>
<xs:simpleType>
<xs:union memberTypes="xs:language">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value=""/>
</xs:restriction>
</xs:simpleType>
</xs:union>
</xs:simpleType>
</xs:attribute>
<xs:attribute name="space">
<xs:simpleType>
<xs:restriction base="xs:NCName">
<xs:enumeration value="default"/>
<xs:enumeration value="preserve"/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
<xs:attribute name="base" type="xs:anyURI">
<xs:annotation>
<xs:documentation>See http://www.w3.org/TR/xmlbase/ for information
about this attribute.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="id" type="xs:ID">
<xs:annotation>
<xs:documentation>See http://www.w3.org/TR/xml-id/ for information
about this attribute.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attributeGroup name="specialAttrs">
<xs:attribute ref="xml:base"/>
<xs:attribute ref="xml:lang"/>
<xs:attribute ref="xml:space"/>
</xs:attributeGroup>
</xs:schema>
......@@ -25,7 +25,7 @@
<entry schematype="relaxng" namespace="http://docbook.org/ns/docbook" schemauri="https://docbook.org/xml/5.1/rng/docbook.rng"/>
-->
<!-- <entry schematype="schema" namespace="http://www.loc.gov/mods/v3" schemauri="https://www.loc.gov/standards/mods/v3/mods-3-8.xsd" /> -->
<entry schematype="schema" namespace="http://www.loc.gov/mods/v3" schemauri="mods-3.8/mods-3-8.xsd" />
<entry schematype="schema" namespace="http://www.loc.gov/mods/v3" schemauri="mods-3.8/flatten/mods-3-8.xsd" />
<entry schematype="schema" namespace="http://www.lido-schema.org" schemauri="http://www.lido-schema.org/schema/v1.1/lido-v1.1.xsd" />
<entry schematype="schema" namespace="http://slubarchiv.slub-dresden.de/rights1" schemauri="https://slubarchiv.slub-dresden.de/fileadmin/groups/slubsite/slubarchiv/standards/rights/rights1.xsd" />
<!-- <entry schematype="schema" namespace="http://www.loc.gov/standards/alto/ns-v2#" schemauri="http://www.loc.gov/standards/alto/alto-v2.0.xsd" /> -->
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment