<?xml version="1.0" encoding="UTF-8"?><!-- Via XMLSpy,  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 3.4                                     *                                                                     *                              DRAFT                                        *                                                                    *                 Last Modified: August 28, 2009                  *                                                                    *                                                                                *                                                                    **************************************************************************************************Changes from version 3.3  (so far)********************************1. The schema is rewritten in namespace-normalized form, and the definitions and sections are reorganized.  2.   <note> and <form> as sublements of <location><holdingsSimple><copyInformation> are changed to conform to the note element defined for the MODS namespace.  The effect of these change are: (1) attributes xlink, language, and ID are now allowed for <note>; and (2) attribute ID is now allowed for <form>. Since they are optional this will not affect existing instances.  3. The attribute 'displayLabel' has been added to the definitions of several top level elements, so that all top level elements now have this attribute. Specifically 'displayLabel' has been added to the definitions of: <extension>, <genre>, <location>, <language>, <name>, <originInfo>, <part>, <physicalDescription>, <recordInfo>, <subject>, <targetAudience>, <typeOfResource>.4. Attributes "references"  and  "reviewOf" are defined for <relatedItem>.5. Attribute ""shareable" is defined and added to <tableOfContents> and <abstract>.  It has a single value: "no" .5. Attribute ""supplied" is defined and added to  <originInfo><edition>, <originInfo><place>, <originInfo><publisher>, <physicalDescription><extent>, and <titleInfo>.  It has a single value: "yes" .6. The version attribute now enumerates all 3.x versions (3.0, 3.1, 3.2, 3.3, and 3.4). In earlier versions of the schema, only the latest version was allowed. (E.g. in version 3.3, the only allowable value for the version attribute was "3.3".)7. For the type attribute for <name>, the value "family" is added to the list of possible values. 8. For dates, "edtf" and "temper" are added to the list values that may be used for the "encoding" attribute.9. The languageAttributeGroup (lang, xml:lang, script and transliteration) now applies to every text element.  This is accomplished by use of the newly defined  "xsString" type, replacing the assignment of "xs:string" wherever applicable. 10. The values "single-part item", "multipart monograph", "serial", "integrating resource" are added to <originInfo><issuance>.******* Temporary note: The above list covers all items listed at:  http://modsedcmte.pbworks.com/MODS+3+4+approved+changes  except:- Define <scriptTerm> under <language>:  http://modsedcmte.pbworks.com/Define-%3CscriptTerm%3E-under-%3Clanguage%3EThis isn't completely resolved yet.- Update definition of dateCaptured to match RDA date of capture: elementhttp://modsedcmte.pbworks.com/Update-definition-of-dateCaptured-to-match-RDA-date-of-capture-elementThis requires no schema change.**********************************************************The schema has the following four sections:(1)   Preliminary declarations and definitions (2)   Type definitions.  (3)   Element declarations(4)  Auxiliary Definitions for AttributesThe MODS namespace consists of  type names and element names:  (2) and (3)**********************************************************************************************************************************************************************************                        Part 1:    Preliminary Declarations and Definitions - Instance declarations. - modsGroup, listing the top level MODS elements- Definition of a single MODS record  and a MODS collection                                                                       	***************************************************************************************************************************************************************************************  An instance of this schema is  (1) a single MODS record:  	 -->	<xs:element name="mods" type="modsDefinition"/>	<!--  or (2) a collection of MODS records:  -->	<xs:element name="modsCollection" type="modsCollectionDefinition"/>	<!--  *****  End of "instance" definition******* 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>	<!-- *************************************************************************      Definition of a single MODS record                           ************************************************************************-->	<xs:complexType name="modsDefinition">		<xs:group ref="modsGroup" maxOccurs="unbounded"/>		<xs:attribute name="ID" type="xs:ID"/>		<xs:attribute name="version" type="modsVersionAttributeDefinition"/>	</xs:complexType>	<!-- *************************************************************************      Definition of a MODS collection                                ************************************************************************-->	<xs:complexType name="modsCollectionDefinition">		<xs:sequence>			<xs:element ref="mods" maxOccurs="unbounded"/>		</xs:sequence>	</xs:complexType>	<!--	**********************************************************************************************************************************************************************************                                Part 2:  Type Definitions  -   Data type definitions for top level elements                                   -   subordinate type definitions                                  	**********************************************************************************************************************************************************************************All type names are part of the MODS namespace                                  	*************************************************************************       Data type definitions for top level elements              *************************************************************************-->	<!--   ********** abstractDefinition   **********               -->	<xs:complexType name="abstractDefinition">		<xs:simpleContent>			<xs:extension base="unstructuredTextDefinition">				<xs:attribute name="shareable" type="no"/>			</xs:extension>		</xs:simpleContent>	</xs:complexType>	<!--********** accessConditionDefinition   **********            -->	<xs:complexType name="accessConditionDefinition">		<xs:complexContent>			<xs:extension base="extensionDefinition">				<xs:attributeGroup ref="xlink:simpleLink"/>				<xs:attributeGroup ref="language"/>				<!-- attribute "displayLabel" was here is 3.3, removed in 3.4 because it has been added to the <extension> definition. -->				<xs:attribute name="type" type="xs:string"/>			</xs:extension>		</xs:complexContent>	</xs:complexType>	<!--**********   classificationDefinition  **********  	 -->	<xs:complexType name="classificationDefinition">		<xs:simpleContent>			<xs:extension base="stringPlusAuthorityPlusEdition">				<xs:attribute name="displayLabel" type="xs:string"/>			</xs:extension>		</xs:simpleContent>	</xs:complexType>	<!-- ********** extensionType  **********  -->	<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"/>		<!-- attribute "displayLabel" added in 3.4. -->	</xs:complexType>	<!--  ********** genreDefinition **********  	-->	<xs:complexType name="genreDefinition">		<xs:simpleContent>			<xs:extension base="stringPlusAuthorityPlusTypePlusDisplayLabel"/>			<!-- attribute "displayLabel" added in 3.4. -->		</xs:simpleContent>	</xs:complexType>	<!--********** identifierDefinition   **********  	                     	-->	<xs:complexType name="identifierDefinition">		<xs:simpleContent>			<xs:extension base="xsString">				<xs:attribute name="type" type="xs:string"/>				<xs:attribute name="displayLabel" type="xs:string"/>				<xs:attribute name="invalid" type="yes"/>			</xs:extension>		</xs:simpleContent>	</xs:complexType>	<!--  ********** languageDefinition   **********  	                      	-->	<xs:complexType name="languageDefinition">		<xs:sequence>			<xs:element ref="languageTerm" maxOccurs="unbounded"/>		</xs:sequence>		<xs:attribute name="objectPart" type="xs:string"/>		<xs:attribute name="displayLabel" type="xs:string"/>		<!-- attribute "displayLabel" added in 3.4. -->	</xs:complexType>	<!--********** 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" maxOccurs="unbounded"/>			<xs:element ref="holdingExternal" minOccurs="0" maxOccurs="unbounded"/>		</xs:sequence>		<xs:attribute name="displayLabel" type="xs:string"/>		<!-- attribute "displayLabel" added in 3.4. -->	</xs:complexType>	<!--  **********  nameDefinition    **********   		-->	<xs:complexType name="nameDefinition">		<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" type="nameTypeAttributeDefinition"/>		<xs:attributeGroup ref="idAuthorityXlinkLanguageDisplayLabel"/>		<!-- attribute "displayLabel" added in 3.4. -->	</xs:complexType>	<!--   ********** noteDefinition   **********               -->	<xs:complexType name="noteDefinition">		<xs:simpleContent>			<xs:extension base="unstructuredTextDefinition">				<xs:attribute name="ID" type="xs:ID"/>			</xs:extension>		</xs:simpleContent>	</xs:complexType>	<!--   ********** 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="frequency"/>			<xs:element ref="issuance"/>		</xs:choice>		<xs:attributeGroup ref="languagePlusDisplayLabel"/>		<!-- attribute "displayLabel" added in 3.4. -->	</xs:complexType>	<!--********** partDefinition  **********  -->	<xs:complexType name="partDefinition">		<xs:choice minOccurs="0" maxOccurs="unbounded">			<!--minOccurs="0" allows <part> to be optionally empty, when the ID and type attribute values contain all the information needed about the part. -->			<xs:element ref="detail"/>			<xs:element name="extent" type="extentDefinition"/>			<!-- <extent> of <part> is not part of the namespace, because it conflicts with <extent> of  <physicalDescription> -->			<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:attribute name="displayLabel" type="xs:string"/>		<!-- attribute "displayLabel" added in 3.4. -->	</xs:complexType>	<!-- ********** physicalDescriptionDefinition  **********  		 		 -->	<xs:complexType name="physicalDescriptionDefinition">		<xs:choice maxOccurs="unbounded">			<xs:element ref="form"/>			<xs:element ref="reformattingQuality"/>			<xs:element ref="internetMediaType"/>			<xs:element ref="extent"/>			<xs:element ref="digitalOrigin"/>			<xs:element ref="note"/>		</xs:choice>		<xs:attributeGroup ref="languagePlusDisplayLabel"/>		<!-- attribute "displayLabel" added in 3.4. -->	</xs:complexType>	<!--  **********  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="languagePlusDisplayLabel"/>		<!-- attribute "displayLabel" added in 3.4. -->	</xs:complexType>	<!-- **********   relatedItemDefinition  **********  -->	<xs:complexType name="relatedItemDefinition">		<xs:group ref="modsGroup" minOccurs="0" maxOccurs="unbounded"/>		<xs:attribute name="type" type="relatedItemTypeAttributeDefinition"/>		<xs:attribute name="displayLabel" type="xs:string"/>		<xs:attribute name="ID" type="xs:ID"/>		<xs:attributeGroup ref="xlink:simpleLink"/>	</xs:complexType>	<!--   ********** 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 ref="titleInfo"/>			<xs:element ref="name"/>			<xs:element ref="geographicCode"/>			<xs:element ref="hierarchicalGeographic"/>			<xs:element ref="cartographics"/>			<xs:element ref="occupation"/>			<xs:element ref="genre"/>		</xs:choice>		<xs:attributeGroup ref="idAuthorityXlinkLanguageDisplayLabel"/>		<!-- attribute "displayLabel" added in 3.4. -->	</xs:complexType>	<!--   ********** tableOfContentsDefinition   **********               -->	<xs:complexType name="tableOfContentsDefinition">		<xs:simpleContent>			<xs:extension base="unstructuredTextDefinition">				<xs:attribute name="shareable" type="no"/>			</xs:extension>		</xs:simpleContent>	</xs:complexType>	<!--   ********** targetAudienceDefinition   **********               -->	<xs:complexType name="targetAudienceDefinition">		<xs:simpleContent>			<xs:extension base="stringPlusAuthorityPlusDisplayLabel"/>			<!-- attribute "displayLabel" added in 3.4. -->		</xs:simpleContent>	</xs:complexType>	<!-- ********** titleInfoDefinition  ********** -->	<xs:complexType name="titleInfoDefinition">		<xs:complexContent>			<xs:extension base="titleInfoBaseDefinition">				<xs:attribute name="type" type="titleInfoTypeAttributeDefinition"/>				<xs:attribute name="supplied" type="yes"/>				<!-- attribute "supplied" added in 3.4 -->			</xs:extension>		</xs:complexContent>	</xs:complexType>	<!--********** typeOfResourceDefinition   **********   	   -->	<xs:complexType name="typeOfResourceDefinition">		<xs:simpleContent>			<xs:extension base="resourceTypeDefinition">				<xs:attribute name="collection" type="yes"/>				<xs:attribute name="manuscript" type="yes"/>				<xs:attribute name="displayLabel" type="xs:string"/>				<!-- attribute "displayLabel" added in 3.4. -->			</xs:extension>		</xs:simpleContent>	</xs:complexType>	<!--  ***** End  data type definitions for top level elements.   *************************************************************************     Subordinate Type Definitions                                      *************************************************************************-->	<!--  ********** dateBaseDefinition   **********  Referenced by partDefinition (as well as dateType)-->	<xs:complexType name="dateBaseDefinition">		<xs:simpleContent>			<xs:extension base="xsString">				<xs:attribute name="encoding" type="dateEncodingAttributeDefinition"/>				<xs:attribute name="qualifier" type="dateQualifierAttributeType"/>				<xs:attribute name="point" type="datePointAttributeType"/>			</xs:extension>		</xs:simpleContent>	</xs:complexType>	<!--  ********** dateOtherDefinition  **********  -->	<xs:complexType name="dateOtherDefinition">		<xs:simpleContent>			<xs:extension base="dateDefinition">				<xs:attribute name="type" type="xs:string"/>			</xs:extension>		</xs:simpleContent>	</xs:complexType>	<!--   ********** 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:complexType>	<!--**********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 ref="note" minOccurs="0" maxOccurs="unbounded"/>			<!-- changed in 3.4.  In 3.3 <note> as a sublement of <copyInformation> was defined as type "stringPlusDisplayLabelPlusType". Here it is changed to conform to the note element defined for the MODS namespace.   The effect of this change is that attributes xlink, language, and ID	are now allowed - they were not allowed in earlier versions. Since they are optional this will not affect existing instances.			-->			<xs:element ref="enumerationAndChronology" minOccurs="0" maxOccurs="unbounded"/>		</xs:sequence>	</xs:complexType>	<!--  ********** dateDefinition  **********  -->	<xs:complexType name="dateDefinition">		<xs:simpleContent>			<xs:extension base="dateBaseDefinition">				<xs:attribute name="keyDate" type="yes"/>			</xs:extension>		</xs:simpleContent>	</xs:complexType>	<!-- ********** 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>	<!--********** 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>	<!--  **********enumerationAndChronologyDefinition  **********               -->	<xs:complexType name="enumerationAndChronologyDefinition">		<xs:simpleContent>			<xs:extension base="xsString">				<xs:attribute name="unitType" type="enumerationAndChronologyUnitTypeAttributeDefinition"/>			</xs:extension>		</xs:simpleContent>	</xs:complexType>	<!--***************** extentDefinition *** -->	<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"/>	</xs:complexType>	<!--   ********** geographicCodeDefinition **********  	 	-->	<xs:complexType name="geographicCodeDefinition">		<xs:simpleContent>			<xs:extension base="xs:string">				<xs:attribute name="authority" type="placeAuthorityAttributeDefinition"/>			</xs:extension>		</xs:simpleContent>	</xs:complexType>	<!--   ********** 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:complexType>	<!--  ********** holdingSimpleDefinition   **********               -->	<xs:complexType name="holdingSimpleDefinition">		<xs:sequence>			<xs:element ref="copyInformation" maxOccurs="unbounded"/>		</xs:sequence>	</xs:complexType>	<!--  ********** issuanceDefinition **********  	-->	<xs:simpleType name="issuanceDefinition">		<xs:restriction base="xs:string">			<xs:enumeration value="continuing"/>			<xs:enumeration value="monographic"/>			<!-- single-part item, multipart monograph, serial, integrating resource  added in 3.4 -->			<xs:enumeration value="single-part item"/>			<xs:enumeration value="multipart monographic"/>			<xs:enumeration value="serial"/>			<xs:enumeration value="integrating resource"/>		</xs:restriction>	</xs:simpleType>	<!-- ***languageTermDefinition ***-->	<xs:complexType name="languageTermDefinition">		<xs:simpleContent>			<xs:extension base="xsString">				<xs:attribute name="authority" type="languageAuthorityAttributeDefinition"/>				<xs:attribute name="type" type="codeOrText"/>			</xs:extension>		</xs:simpleContent>	</xs:complexType>	<!--  **namePartDefinition-->	<xs:complexType name="namePartDefinition">		<xs:simpleContent>			<xs:extension base="xsString">				<xs:attribute name="type" type="namePartTypeAttributeDefinition"/>			</xs:extension>		</xs:simpleContent>	</xs:complexType>	<!-- *** placeDefinition ***-->	<xs:complexType name="placeDefinition">		<xs:sequence>			<xs:element ref="placeTerm" maxOccurs="unbounded"/>		</xs:sequence>		<xs:attribute name="supplied" type="yes"/>		<!-- attribute "supplied" added in 3.4 -->	</xs:complexType>	<!-- *** placeTermDefinition ***-->	<xs:complexType name="placeTermDefinition">		<xs:simpleContent>			<xs:extension base="xsString">				<xs:attribute name="authority" type="placeAuthorityAttributeDefinition"/>				<xs:attribute name="type" type="codeOrText"/>			</xs:extension>		</xs:simpleContent>	</xs:complexType>	<!--	  ********** physicalLocationDefinition    **********               -->	<xs:complexType name="physicalLocationDefinition">		<xs:simpleContent>			<xs:extension base="stringPlusAuthorityPlusTypePlusDisplayLabelPlusXlink"/>		</xs:simpleContent>	</xs:complexType>	<!--********** recordIdentifierDefinition  used by <recordInfo> **********  -->	<xs:complexType name="recordIdentifierDefinition">		<xs:simpleContent>			<xs:extension base="xsString">				<xs:attribute name="source" type="xs:string"/>			</xs:extension>		</xs:simpleContent>	</xs:complexType>	<!-- **********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>	<!--  ******* 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>	<!--  ******** roleDefinition *********************-->	<xs:complexType name="roleDefinition">		<xs:sequence maxOccurs="unbounded">			<xs:element ref="roleTerm"/>		</xs:sequence>	</xs:complexType>	<!--  ***************roleTermDefinition ***********************-->	<xs:complexType name="roleTermDefinition">		<xs:simpleContent>			<xs:extension base="stringPlusAuthority">				<xs:attribute name="type" type="codeOrText"/>			</xs:extension>		</xs:simpleContent>	</xs:complexType>	<!-- ********** titleInfoBaseDefinition  **********  -->	<xs:complexType name="titleInfoBaseDefinition">		<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:attributeGroup ref="idAuthorityXlinkLanguageDisplayLabel"/>	</xs:complexType>	<!--********** unstructuredTextDefinition ********** -->	<xs:complexType name="unstructuredTextDefinition">		<xs:simpleContent>			<xs:extension base="stringPlusDisplayLabelPlusType">				<xs:attributeGroup ref="xlink:simpleLink"/>			</xs:extension>		</xs:simpleContent>	</xs:complexType>	<!-- ********** 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" type="urlAccessAttributeDefinition"/>				<xs:attribute name="usage" type="urlUsageAttributeDefinition"/>			</xs:extension>		</xs:simpleContent>	</xs:complexType>	<!--   ********** xsString used where xs:string would otherwise be used "**********  	   -->	<xs:complexType name="xsString">		<xs:simpleContent>			<xs:extension base="xs:string">				<xs:attributeGroup ref="language"/>			</xs:extension>		</xs:simpleContent>	</xs:complexType>	<!--********************* End of type definitions *********************There are a few more supporting definitions later; in part 4.**********************************************************************************************************************************************************************************                              Part 3:    Element Declarations                                                                    	**********************************************************************************************************************************************************************************All Element names are part of the MODS namespace-->	<xs:element name="abstract" type="abstractDefinition"/>	<xs:element name="accessCondition" type="accessConditionDefinition"/>	<xs:element name="affiliation" type="xsString"/>	<xs:element name="area" type="xsString"/>	<xs:element name="caption" type="xsString"/>	<xs:element name="cartographics" type="cartographicsDefinition"/>	<xs:element name="city" type="xsString"/>	<xs:element name="citySection" type="xsString"/>	<xs:element name="classification" type="classificationDefinition"/>	<xs:element name="continent" type="xsString"/>	<xs:element name="coordinates" type="xsString"/>	<xs:element name="copyInformation" type="copyInformationDefinition"/>	<xs:element name="copyrightDate" type="dateDefinition"/>	<xs:element name="country" type="xsString"/>	<xs:element name="county" type="xsString"/>	<xs:element name="date" type="dateBaseDefinition"/>	<xs:element name="dateCaptured" type="dateDefinition"/>	<xs:element name="dateCreated" type="dateDefinition"/>	<xs:element name="dateIssued" type="dateDefinition"/>	<xs:element name="dateModified" type="dateDefinition"/>	<xs:element name="dateOther" type="dateOtherDefinition"/>	<xs:element name="dateValid" type="dateDefinition"/>	<xs:element name="description" type="xsString"/>	<xs:element name="descriptionStandard" type="stringPlusAuthority"/>	<xs:element name="detail" type="detailDefinition"/>	<xs:element name="digitalOrigin" type="digitalOriginDefinition"/>	<xs:element name="displayForm" type="xsString"/>	<xs:element name="edition" type="stringPlusSupplied"/>	<!-- attribute "supplied" added in 3.4 -->	<xs:element name="electronicLocator" type="xsString"/>	<xs:element name="end" type="xsString"/>	<xs:element name="enumerationAndChronology" type="enumerationAndChronologyDefinition"/>	<xs:element name="extension" type="extensionDefinition"/>	<xs:element name="extent" type="stringPlusSupplied"/>	<!-- attribute "supplied" added in 3.4 -->	<xs:element name="extraterrestrialArea" type="xsString"/>	<xs:element name="form" type="stringPlusAuthorityPlusType"/>	<xs:element name="frequency" type="stringPlusAuthority"/>	<xs:element name="genre" type="genreDefinition"/>	<xs:element name="geographic" type="xsString"/>	<xs:element name="geographicCode" type="geographicCodeDefinition"/>	<xs:element name="hierarchicalGeographic" type="hierarchicalGeographicDefinition"/>	<xs:element name="holdingExternal" type="extensionDefinition"/>	<xs:element name="holdingSimple" type="holdingSimpleDefinition"/>	<xs:element name="identifier" type="identifierDefinition"/>	<xs:element name="internetMediaType" type="xsString"/>	<xs:element name="island" type="xsString"/>	<xs:element name="issuance" type="issuanceDefinition"/>	<xs:element name="language" type="languageDefinition"/>	<xs:element name="languageOfCataloging" type="languageDefinition"/>	<xs:element name="languageTerm" type="languageTermDefinition"/>	<xs:element name="list" type="xsString"/>	<xs:element name="location" type="locationDefinition"/>	<xs:element name="name" type="nameDefinition"/>	<xs:element name="namePart" type="namePartDefinition"/>	<xs:element name="nonSort" type="xsString"/>	<xs:element name="note" type="noteDefinition"/>	<xs:element name="number" type="xsString"/>	<xs:element name="occupation" type="xsString"/>	<xs:element name="originInfo" type="originInfoDefinition"/>	<xs:element name="part" type="partDefinition"/>	<xs:element name="partName" type="xsString"/>	<xs:element name="partNumber" type="xsString"/>	<xs:element name="physicalDescription" type="physicalDescriptionDefinition"/>	<xs:element name="physicalLocation" type="physicalLocationDefinition"/>	<xs:element name="place" type="placeDefinition"/>	<xs:element name="placeTerm" type="placeTermDefinition"/>	<xs:element name="projection" type="xsString"/>	<xs:element name="province" type="xsString"/>	<xs:element name="publisher" type="stringPlusSupplied"/>	<!-- attribute "supplied" added in 3.4 -->	<xs:element name="recordChangeDate" type="dateDefinition"/>	<xs:element name="recordContentSource" type="stringPlusAuthority"/>	<xs:element name="recordCreationDate" type="dateDefinition"/>	<xs:element name="recordIdentifier" type="recordIdentifierDefinition"/>	<xs:element name="recordInfo" type="recordInfoDefinition"/>	<xs:element name="recordOrigin" type="xsString"/>	<xs:element name="reformattingQuality" type="reformattingQualityDefinition"/>	<xs:element name="region" type="xsString"/>	<xs:element name="relatedItem" type="relatedItemDefinition"/>	<xs:element name="role" type="roleDefinition"/>	<xs:element name="roleTerm" type="roleTermDefinition"/>	<xs:element name="scale" type="xsString"/>	<xs:element name="shelfLocator" type="xsString"/>	<xs:element name="start" type="xsString"/>	<xs:element name="state" type="xsString"/>	<xs:element name="subject" type="subjectDefinition"/>	<xs:element name="subLocation" type="xsString"/>	<xs:element name="subTitle" type="xsString"/>	<xs:element name="tableOfContents" type="tableOfContentsDefinition"/>	<xs:element name="targetAudience" type="targetAudienceDefinition"/>	<xs:element name="temporal" type="dateDefinition"/>	<xs:element name="territory" type="xsString"/>	<xs:element name="text" type="unstructuredTextDefinition"/>	<xs:element name="title" type="xsString"/>	<xs:element name="titleInfo" type="titleInfoDefinition"/>	<xs:element name="topic" type="xsString"/>	<xs:element name="total" type="xs:positiveInteger"/>	<xs:element name="typeOfResource" type="typeOfResourceDefinition"/>	<xs:element name="url" type="urlDefinition"/>	<!-- ******************** end of element declarations**********************************************************************************************************************************************************************************Part 4:    Auxiliary Definitions for Attributes                     -  Auxiliary types for attribute combinations                     - Attribute Group Definitions                      - Attribute definitions (simpleTypes)                                                                    	**********************************************************************************************************************************************************************************-->	<!--****************************************************-  Auxiliary types for attribute combinations*****************************************************-->		<!--                     ************************* stringPlusAuthority  *************************     	   -->	<xs:complexType name="stringPlusAuthority">		<xs:simpleContent>			<xs:extension base="xsString">				<xs:attribute name="authority" type="xs:string"/>			</xs:extension>		</xs:simpleContent>	</xs:complexType>	<!--                     ************************* stringPlusSupplied  *************************     	   -->	<xs:complexType name="stringPlusSupplied">		<xs:simpleContent>			<xs:extension base="xsString">				<xs:attribute name="supplied" type="yes"/>			</xs:extension>		</xs:simpleContent>	</xs:complexType>	<!--	********************** stringPlusAuthorityPlusDisplayLabel  *************************     	   -->	<xs:complexType name="stringPlusAuthorityPlusDisplayLabel">		<xs:simpleContent>			<xs:extension base="stringPlusAuthority">				<xs:attribute name="displayLabel" type="xs:string"/>			</xs:extension>		</xs:simpleContent>	</xs:complexType>	<!--                     ************************* stringPlusAuthorityPlusEdition  *************************     	   -->	<xs:complexType name="stringPlusAuthorityPlusEdition">		<xs:simpleContent>			<xs:extension base="stringPlusAuthority">				<xs:attribute name="edition" type="xs:string"/>			</xs:extension>		</xs:simpleContent>	</xs:complexType>	<!--                     ************************* stringPlusAuthorityPlusType  *************************     	   -->	<xs:complexType name="stringPlusAuthorityPlusType">		<xs:simpleContent>			<xs:extension base="stringPlusAuthority">				<xs:attribute name="type" type="xs:string"/>			</xs:extension>		</xs:simpleContent>	</xs:complexType>	<!--                     ************************* stringPlusAuthorityPlusTypePlusDisplayLabel  *************************     	   -->	<xs:complexType name="stringPlusAuthorityPlusTypePlusDisplayLabel">		<xs:simpleContent>			<xs:extension base="stringPlusAuthorityPlusType">				<xs:attribute name="displayLabel" type="xs:string"/>			</xs:extension>		</xs:simpleContent>	</xs:complexType>	<!--                     ************************* stringPlusAuthorityPlusTypePlusDisplayLabelPlusXlink  *************************     	   -->	<xs:complexType name="stringPlusAuthorityPlusTypePlusDisplayLabelPlusXlink">		<xs:simpleContent>			<xs:extension base="stringPlusAuthorityPlusTypePlusDisplayLabel">				<xs:attributeGroup ref="xlink:simpleLink"/>			</xs:extension>		</xs:simpleContent>	</xs:complexType>	<!--                     ************************* stringPlusDisplayLabel  *************************     	   -->	<xs:complexType name="stringPlusDisplayLabel">		<xs:simpleContent>			<xs:extension base="xsString">				<xs:attribute name="displayLabel" type="xs:string"/>			</xs:extension>		</xs:simpleContent>	</xs:complexType>	<!--                     ************************* stringPlusDisplayLabelPlusType *************************     	   -->	<xs:complexType name="stringPlusDisplayLabelPlusType">		<xs:simpleContent>			<xs:extension base="stringPlusDisplayLabel">				<xs:attribute name="type" type="xs:string"/>			</xs:extension>		</xs:simpleContent>	</xs:complexType>	<!-- *************************************************************            Attribute Group Definitions *************************************************************-->	<!--    ********** idAuthorityXlinkLanguage attribute group   **********  	                       	     -->	<xs:attributeGroup name="idAuthorityXlinkLanguage">		<xs:attribute name="ID" type="xs:ID"/>		<xs:attribute name="authority" type="xs:string"/>		<xs:attributeGroup ref="xlink:simpleLink"/>		<xs:attributeGroup ref="language"/>	</xs:attributeGroup>	<!--    ********** idAuthorityXlinkLanguageDisplayLabel attribute group   **********  	                       	     -->	<xs:attributeGroup name="idAuthorityXlinkLanguageDisplayLabel">		<xs:attributeGroup ref="idAuthorityXlinkLanguage"/>		<xs:attribute name="displayLabel" type="xs:string"/>	</xs:attributeGroup>	<!--   ********** language attribute group   **********  	                       	  -->	<xs:attributeGroup name="language">		<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>	<!--   ********** languagePlusDisplayLabel attribute group   **********  	                       	  -->	<xs:attributeGroup name="languagePlusDisplayLabel">		<xs:attributeGroup ref="language"/>		<xs:attribute name="displayLabel" type="xs:string"/>	</xs:attributeGroup>	<!--****************************************************  - Attribute definitions (simpleTypes)*****************************************************-->	<!--     ********** codeOrText used by type attribute  for elements that distinguish code from text  **********  	                       	   -->	<xs:simpleType name="codeOrText">		<xs:restriction base="xs:string">			<xs:enumeration value="code"/>			<xs:enumeration value="text"/>		</xs:restriction>	</xs:simpleType>	<!-- ********** dateEncodingAttributeDefinition  **********  -->	<xs:simpleType name="dateEncodingAttributeDefinition">		<xs:restriction base="xs:string">			<xs:enumeration value="w3cdtf"/>			<xs:enumeration value="iso8601"/>			<xs:enumeration value="marc"/>			<!-- following two, "edft" and "temper", new in 3.4 -->			<xs:enumeration value="edtf"/>			<xs:enumeration value="temper"/>		</xs:restriction>	</xs:simpleType>	<!-- ********** datePointAttributeDefinition  **********  -->	<xs:simpleType name="datePointAttributeType">		<xs:restriction base="xs:string">			<xs:enumeration value="start"/>			<xs:enumeration value="end"/>		</xs:restriction>	</xs:simpleType>	<!-- ********** dateQualifierAttributeDefinition  **********  -->	<xs:simpleType name="dateQualifierAttributeType">		<xs:restriction base="xs:string">			<xs:enumeration value="approximate"/>			<xs:enumeration value="inferred"/>			<xs:enumeration value="questionable"/>		</xs:restriction>	</xs:simpleType>	<!--      ********** enumerationAndChronologyUnitTypeAttributeDefinition -->	<xs:simpleType name="enumerationAndChronologyUnitTypeAttributeDefinition">		<xs:restriction base="xs:string">			<xs:enumeration value="1"/>			<xs:enumeration value="2"/>			<xs:enumeration value="3"/>		</xs:restriction>	</xs:simpleType>	<!--                     ************************* languageAuthorityAttributeDefinition  *************************     	   -->	<xs:simpleType name="languageAuthorityAttributeDefinition">		<xs:restriction base="xs:string">			<xs:enumeration value="rfc3066"/>			<xs:enumeration value="iso639-2b"/>			<xs:enumeration value="iso639-3"/>			<xs:enumeration value="rfc4646"/>		</xs:restriction>	</xs:simpleType>	<!--	 **********modsVersionAttributeDefinition**********  	                       	   -->	<xs:simpleType name="modsVersionAttributeDefinition">		<xs:restriction base="xs:string">			<!-- The version attribute now enumerates all 3.x versions. In earlier versions of the schema, only the latest version was allowed. (E.g. in version 3.3, the only allowable value for the version attribute was "3.3".) -->			<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>	<!--      ********** namePartTypeAttributeDefinition -->	<xs:simpleType name="namePartTypeAttributeDefinition">		<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>	<!--      ********** nameTypeAttributeDefinitionused by name attribute       -->	<xs:simpleType name="nameTypeAttributeDefinition">		<xs:restriction base="xs:string">			<xs:enumeration value="personal"/>			<xs:enumeration value="corporate"/>			<xs:enumeration value="conference"/>			<xs:enumeration value="family"/>			<!-- "family" is new in 3.4 -->		</xs:restriction>	</xs:simpleType>	<!--     ********** no used by various attributes whose only values may be "no" *********  		                       	   -->	<xs:simpleType name="no">		<xs:restriction base="xs:string">			<xs:enumeration value="no"/>		</xs:restriction>	</xs:simpleType>	<!--      ********** placeAuthorityAttributeDefinition used by authority attribute   for  placeDefinition and geographic  **********  	                       	   -->	<xs:simpleType name="placeAuthorityAttributeDefinition">		<xs:restriction base="xs:string">			<xs:enumeration value="marcgac"/>			<xs:enumeration value="marccountry"/>			<xs:enumeration value="iso3166"/>		</xs:restriction>	</xs:simpleType>	<!--                     ************************* relatedItemTypeAttributeDefinition  *************************     	   -->	<xs:simpleType name="relatedItemTypeAttributeDefinition">		<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"/>			<!-- following two added in 3.4. -->			<xs:enumeration value="references"/>			<xs:enumeration value="reviewOf"/>		</xs:restriction>	</xs:simpleType>		<!--  ***************titleInfoTypeAttributeDefinition ***********************-->	<xs:simpleType name="titleInfoTypeAttributeDefinition">		<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>	<!--   ********** urlAccessAttributeDefinition"**********  	   -->	<xs:simpleType name="urlAccessAttributeDefinition">		<xs:restriction base="xs:string">			<xs:enumeration value="preview"/>			<xs:enumeration value="raw object"/>			<xs:enumeration value="object in context"/>		</xs:restriction>	</xs:simpleType>	<!--   ********** urlUsageAttributeDefinition"**********  	   -->	<xs:simpleType name="urlUsageAttributeDefinition">		<xs:restriction base="xs:string">			<xs:enumeration value="primary display"/>		</xs:restriction>	</xs:simpleType>	<!--   ********** yes used by various attributes whose only values may be "yes"**********  	   -->	<xs:simpleType name="yes">		<xs:restriction base="xs:string">			<xs:enumeration value="yes"/>		</xs:restriction>	</xs:simpleType>	<!-- --></xs:schema>
