=========================================================== .___ __ __ _________________ __ __ __| _/|__|/ |_ / ___\_` __ \__ \ | | \/ __ | | \\_ __\ / /_/ > | \// __ \| | / /_/ | | || | \___ /|__| (____ /____/\____ | |__||__| /_____/ \/ \/ grep rough audit - static analysis tool v2.8 written by @Wireghoul =================================[justanotherhacker.com]=== libcatmandu-xsd-perl-0.05/t/demo/mods/mods-3-3.xsd:1:<?xml version="1.0" encoding="UTF-8"?><!-- edited with Altova Professional XML Suite 2006 (http://www.xmlspy.com) by Ray Denenberg (Library of Congress) --><xsd:schema xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://www.loc.gov/mods/v3" targetNamespace="http://www.loc.gov/mods/v3" elementFormDefault="qualified" attributeFormDefault="unqualified"> <xsd:import namespace="http://www.w3.org/XML/1998/namespace" schemaLocation="http://www.loc.gov/mods/xml.xsd"/> <!-- ********************* Formerly, schemaLocation="http://www.w3.org/2001/xml.xsd" changed above to schemaLocation="http://www.loc.gov/mods/xml.xsd" in version 3.3. ********* --> <xsd:import namespace="http://www.w3.org/1999/xlink" schemaLocation="http://www.loc.gov/standards/xlink/xlink.xsd"/> <!-- ********************* Formerly, schemaLocation="http://www.loc.gov/standards/xlink.xsd" changed above to schemaLocation="http://www.loc.gov/standards/xlink/xlink.xsd" in version 3.3. ********* ***************************************************************** MODS 3.3 January 15, 2008 ** ** Feb. 21 ID attribute error corrected: <xsd:attribute ref="ID"/> replaced by <xsd:attribute name="ID" type="xsd:ID"/>******************************************************************************************* List of substantive changes from 3.2:1. Increased support for Holdings. See http://www.loc.gov/standards/mods/v3/mods-holdings.html2. Increased support for rights schemas: extensibility mechanism added to accessCondition to allow for other more detailed rights schemas (e.g.CDL.s). 3. Allow typeOfResource to be empty.4. Add attribute 'authority' to <frequency> under <originInfo>.5. Add under <recordInfo>, a new element <descriptionStandard> with an authority attribute, e.g. <descriptionStandard authority="marcdescription">rak</descriptionStandard>.6. Add under hierarchicalGeographic (under subject): extraterrestrialArea, citySection. 7. Add Xlink attribute to physicalLocation.8. Add additional enumerated values for authority under <language>: ISO 639-3 and RFC4646.*************************** Non-substantive but notable changes.1. For the 'xml:' namespace the schemaLocation="http://www.w3.org/2001/xml.xsd" is changed to schemaLocation="http://www.loc.gov/mods/xml.xsd".2. For the 'xlink:' namespace the schemaLocation="http://www.loc.gov/standards/xlink.xsd" is changed to schemaLocation="http://www.loc.gov/standards/xlink/xlink.xsd".3. Attribute declarations are substantially consolidated. 4. References to authority lists removed. ********************** end list of changes from 3.2***** An instance of this schema is (1) a single MODS record: --> <xsd:element name="mods" type="modsType"/> <!-- or (2) a collection of MODS records: --> <xsd:element name="modsCollection"> <xsd:complexType> <xsd:sequence> <xsd:element ref="mods" maxOccurs="unbounded"/> </xsd:sequence> </xsd:complexType> </xsd:element> <!-- ***** 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 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).--> <xsd:group name="modsGroup"> <xsd:choice> <!-- These are the "top level" MODS elements --> <xsd:element name="titleInfo" type="titleInfoType"/> <xsd:element name="name" type="nameType"/> <xsd:element name="typeOfResource" type="typeOfResourceType"/> <xsd:element name="genre" type="genreType"/> <xsd:element name="originInfo" type="originInfoType"/> <xsd:element name="language" type="languageType"/> <xsd:element name="physicalDescription" type="physicalDescriptionType"/> <xsd:element name="abstract" type="abstractType"/> <xsd:element name="tableOfContents" type="tableOfContentsType"/> <xsd:element name="targetAudience" type="targetAudienceType"/> <xsd:element name="note" type="noteType"/> <xsd:element name="subject" type="subjectType"/> <xsd:element name="classification" type="classificationType"/> <xsd:element name="relatedItem" type="relatedItemType"/> <xsd:element name="identifier" type="identifierType"/> <xsd:element name="location" type="locationType"/> <xsd:element name="accessCondition" type="accessConditionType"/> <xsd:element name="part" type="partType"/> <xsd:element name="extension" type="extensionType"/> <xsd:element name="recordInfo" type="recordInfoType"/> <!-- End list of "top level" MODS elements --> </xsd:choice> </xsd:group> <!--***** Definition of a single MODS record--> <xsd:complexType name="modsType"> <xsd:group ref="modsGroup" maxOccurs="unbounded"/> <xsd:attribute name="ID" type="xsd:ID"/> <xsd:attribute name="version" type="versionType"/> </xsd:complexType> <!--***** End of definition of a MODS record. ***** Data type definitions for top level elements follow ********** titleInfoType definition ********** --> <xsd:complexType name="titleInfoType"> <xsd:complexContent> <xsd:extension base="baseTitleInfoType"> <xsd:attribute name="type"> <xsd:simpleType> <xsd:annotation> <xsd:documentation>if this attribute is omitted, then title relates to 245$a $b $n and $p</xsd:documentation> </xsd:annotation> <xsd:restriction base="xsd:string"> <xsd:enumeration value="abbreviated"> <xsd:annotation> <xsd:documentation>210</xsd:documentation> </xsd:annotation> </xsd:enumeration> <xsd:enumeration value="translated"> <xsd:annotation> <xsd:documentation>242</xsd:documentation> </xsd:annotation> </xsd:enumeration> <xsd:enumeration value="alternative"> <xsd:annotation> <xsd:documentation>246</xsd:documentation> </xsd:annotation> </xsd:enumeration> <xsd:enumeration value="uniform"> <xsd:annotation> <xsd:documentation>240, 130</xsd:documentation> </xsd:annotation> </xsd:enumeration> </xsd:restriction> </xsd:simpleType> </xsd:attribute> </xsd:extension> </xsd:complexContent> </xsd:complexType> <xsd:complexType name="baseTitleInfoType"> <xsd:choice minOccurs="0" maxOccurs="unbounded"> <xsd:element name="title" type="xsd:string"/> <xsd:element name="subTitle" type="xsd:string"/> <xsd:element name="partNumber" type="xsd:string"/> <xsd:element name="partName" type="xsd:string"/> <xsd:element name="nonSort" type="xsd:string"> <xsd:annotation> <xsd:documentation>All characters, including space, up to the first sort character.</xsd:documentation> </xsd:annotation> </xsd:element> </xsd:choice> <xsd:attribute name="displayLabel" type="xsd:string"/> <xsd:attributeGroup ref="idAuthorityXlinkLanguage"/> </xsd:complexType> <!-- ********** nameType definition ********** --> <xsd:complexType name="nameType"> <xsd:choice minOccurs="0" maxOccurs="unbounded"> <xsd:element name="namePart" type="namePartType"/> <xsd:element name="displayForm" type="xsd:string"> <xsd:annotation> <xsd:documentation>245$c</xsd:documentation> </xsd:annotation> </xsd:element> <xsd:element name="affiliation" type="xsd:string"> <xsd:annotation> <xsd:documentation>100, 700 $u</xsd:documentation> </xsd:annotation> </xsd:element> <xsd:element name="role" type="roleType"/> <xsd:element name="description" type="xsd:string"/> </xsd:choice> <xsd:attribute name="type" type="nameTypeAttribute"/> <xsd:attributeGroup ref="idAuthorityXlinkLanguage"/> </xsd:complexType> <!-- ***** Begin definition of subordinate types for nameType.**namePartType--> <xsd:complexType name="namePartType"> <xsd:simpleContent> <xsd:extension base="xsd:string"> <xsd:attribute name="type"> <xsd:simpleType> <xsd:restriction base="xsd:string"> <xsd:enumeration value="date"/> <xsd:enumeration value="family"/> <xsd:enumeration value="given"/> <xsd:enumeration value="termsOfAddress"/> </xsd:restriction> </xsd:simpleType> </xsd:attribute> </xsd:extension> </xsd:simpleContent> </xsd:complexType> <!-- ****roleType--> <xsd:complexType name="roleType"> <xsd:sequence maxOccurs="unbounded"> <xsd:element name="roleTerm"> <xsd:complexType> <xsd:annotation> <xsd:documentation>if it is a code: 100, 110, 111, 700, 710, 711 $4. If it is text:100, 110, 700, 710 $e. </xsd:documentation> </xsd:annotation> <xsd:simpleContent> <xsd:extension base="stringPlusAuthority"> <xsd:attribute name="type" type="codeOrText"/> </xsd:extension> </xsd:simpleContent> </xsd:complexType> </xsd:element> </xsd:sequence> </xsd:complexType> <!--***** End definition of nameType.********** typeOfResourceType definition ********** --> <xsd:complexType name="typeOfResourceType"> <xsd:annotation> <xsd:documentation>LDR/6</xsd:documentation> </xsd:annotation> <xsd:simpleContent> <xsd:extension base="resourceType"> <xsd:attribute name="collection" type="yes"/> <xsd:attribute name="manuscript" type="yes"/> </xsd:extension> </xsd:simpleContent> </xsd:complexType> <!-- ******* resourceType ******** --> <xsd:simpleType name="resourceType"> <xsd:restriction base="xsd:string"> <xsd:enumeration value="text"/> <xsd:enumeration value="cartographic"/> <xsd:enumeration value="notated music"/> <xsd:enumeration value="sound recording-musical"/> <xsd:enumeration value="sound recording-nonmusical"/> <xsd:enumeration value="sound recording"> <xsd:annotation> <xsd:documentation>Use for mixed musical and nonmusical, or when not specified whether musical or nonmusical.</xsd:documentation> </xsd:annotation> </xsd:enumeration> <xsd:enumeration value="still image"/> <xsd:enumeration value="moving image"/> <xsd:enumeration value="three dimensional object"/> <xsd:enumeration value="software, multimedia"/> <xsd:enumeration value="mixed material"/> <xsd:enumeration value=""/> <!-- *************************empty value, new in 3.3 ************************* --> </xsd:restriction> </xsd:simpleType> <!-- ********** genreType defintion ********** --> <xsd:complexType name="genreType"> <xsd:annotation> <xsd:documentation>008/26, 008/33, 008/29, 008/30, 008/24+, 008/21, 008/25, 655</xsd:documentation> </xsd:annotation> <xsd:simpleContent> <xsd:extension base="stringPlusAuthorityPlusTypePlusLanguage"/> </xsd:simpleContent> </xsd:complexType> <!-- ********** originInfoType definition ********** --> <xsd:complexType name="originInfoType"> <xsd:choice maxOccurs="unbounded"> <xsd:element name="place" type="placeType"/> <xsd:element name="publisher" type="xsd:string"> <xsd:annotation> <xsd:documentation>260 $b</xsd:documentation> </xsd:annotation> </xsd:element> <xsd:element name="dateIssued" type="dateType"> <xsd:annotation> <xsd:documentation>260$c, 008/07-14</xsd:documentation> </xsd:annotation> </xsd:element> <xsd:element name="dateCreated" type="dateType"/> <xsd:element name="dateCaptured" type="dateType"> <xsd:annotation> <xsd:documentation>033</xsd:documentation> </xsd:annotation> </xsd:element> <xsd:element name="dateValid" type="dateType"/> <xsd:element name="dateModified" type="dateType"> <xsd:annotation> <xsd:documentation>date resource modified, not record modified</xsd:documentation> </xsd:annotation> </xsd:element> <xsd:element name="copyrightDate" type="dateType"/> <xsd:element name="dateOther" type="dateOtherType"/> <xsd:element name="edition" type="xsd:string"> <xsd:annotation> <xsd:documentation>250</xsd:documentation> </xsd:annotation> </xsd:element> <xsd:element name="issuance"> <xsd:annotation> <xsd:documentation>LDR/7</xsd:documentation> </xsd:annotation> <xsd:simpleType> <xsd:restriction base="xsd:string"> <xsd:enumeration value="continuing"/> <xsd:enumeration value="monographic"/> </xsd:restriction> </xsd:simpleType> </xsd:element> <xsd:element name="frequency" type="stringPlusAuthority"/> <!-- ***************** revised in 3.3: authority attribute added ******************* --> </xsd:choice> <xsd:attributeGroup ref="language"/> </xsd:complexType> <!-- ***** Subordinate datatypes for originInfoplaceType--> <xsd:complexType name="placeType"> <xsd:sequence> <xsd:element name="placeTerm" type="placeTermType" maxOccurs="unbounded"/> </xsd:sequence> </xsd:complexType> <!-- *** placeTermType ***--> <xsd:complexType name="placeTermType"> <xsd:annotation> <xsd:documentation>260 $a if text. 008/15-17, 044 if a code</xsd:documentation> </xsd:annotation> <xsd:simpleContent> <xsd:extension base="xsd:string"> <xsd:attribute name="authority" type="placeAuthority"/> <xsd:attribute name="type" type="codeOrText"/> </xsd:extension> </xsd:simpleContent> </xsd:complexType> <!-- ***** End definition of originInfo.********** languageType definition ********** --> <xsd:complexType name="languageType"> <xsd:annotation> <xsd:documentation>008/35-37, 041</xsd:documentation> </xsd:annotation> <xsd:sequence> <xsd:element name="languageTerm" maxOccurs="unbounded"> <xsd:complexType> <xsd:simpleContent> <xsd:extension base="xsd:string"> <xsd:attribute name="authority"> <xsd:simpleType> <xsd:restriction base="xsd:string"> <xsd:enumeration value="rfc3066"/> <xsd:enumeration value="iso639-2b"/> <xsd:enumeration value="iso639-3"/> <!-- new in 3.3 --> <xsd:enumeration value="rfc4646"/> <!-- new in 3.3 --> </xsd:restriction> </xsd:simpleType> </xsd:attribute> <xsd:attribute name="type" type="codeOrText"/> </xsd:extension> </xsd:simpleContent> </xsd:complexType> </xsd:element> </xsd:sequence> <xsd:attribute name="objectPart" type="xsd:string"/> </xsd:complexType> <!-- ********** physicalDescriptionType definition ********** --> <xsd:complexType name="physicalDescriptionType"> <xsd:choice maxOccurs="unbounded"> <xsd:element name="form" type="stringPlusAuthorityPlusType"> <xsd:annotation> <xsd:documentation>008/23 or 29, 256</xsd:documentation> </xsd:annotation> </xsd:element> <xsd:element name="reformattingQuality"> <xsd:annotation> <xsd:documentation>007/13ER</xsd:documentation> </xsd:annotation> <xsd:simpleType> <xsd:restriction base="xsd:string"> <xsd:enumeration value="access"/> <xsd:enumeration value="preservation"/> <xsd:enumeration value="replacement"/> </xsd:restriction> </xsd:simpleType> </xsd:element> <xsd:element name="internetMediaType" type="xsd:string"> <xsd:annotation> <xsd:documentation>856 $q</xsd:documentation> </xsd:annotation> </xsd:element> <xsd:element name="extent" type="xsd:string"> <xsd:annotation> <xsd:documentation>300 $a and $c, and 306 $a</xsd:documentation> </xsd:annotation> </xsd:element> <xsd:element name="digitalOrigin"> <xsd:simpleType> <xsd:restriction base="xsd:string"> <xsd:enumeration value="born digital"/> <xsd:enumeration value="reformatted digital"> <xsd:annotation> <xsd:documentation>007ER code a</xsd:documentation> </xsd:annotation> </xsd:enumeration> <xsd:enumeration value="digitized microfilm"> <xsd:annotation> <xsd:documentation> 007/11ER MARC code b </xsd:documentation> </xsd:annotation> </xsd:enumeration> <xsd:enumeration value="digitized other analog"> <xsd:annotation> <xsd:documentation> 007/11ER MARC code d </xsd:documentation> </xsd:annotation> </xsd:enumeration> </xsd:restriction> </xsd:simpleType> </xsd:element> <xsd:element name="note" type="noteType"/> </xsd:choice> <xsd:attributeGroup ref="language"/> </xsd:complexType> <!-- ********** abstractType definition ********** --> <xsd:complexType name="abstractType"> <xsd:annotation> <xsd:documentation>520</xsd:documentation> </xsd:annotation> <xsd:simpleContent> <xsd:extension base="unstructuredText"/> </xsd:simpleContent> </xsd:complexType> <!-- ********** tableOfContentsType definition ********** --> <xsd:complexType name="tableOfContentsType"> <xsd:annotation> <xsd:documentation>505</xsd:documentation> </xsd:annotation> <xsd:simpleContent> <xsd:extension base="unstructuredText"/> </xsd:simpleContent> </xsd:complexType> <!-- ********** targetAudienceType definition ********** --> <xsd:complexType name="targetAudienceType"> <xsd:annotation> <xsd:documentation>008/22, 521</xsd:documentation> </xsd:annotation> <xsd:simpleContent> <xsd:extension base="stringPlusAuthorityPlusLanguage"/> </xsd:simpleContent> </xsd:complexType> <!-- ********** noteType definition ********** --> <xsd:complexType name="noteType"> <xsd:simpleContent> <xsd:extension base="unstructuredText"> <xsd:attribute name="ID" type="xsd:ID"/> </xsd:extension> </xsd:simpleContent> </xsd:complexType> <!-- ********** subjectType definition ********** --> <xsd:complexType name="subjectType"> <xsd:choice minOccurs="0" maxOccurs="unbounded"> <xsd:element name="topic" type="xsd:string"> <xsd:annotation> <xsd:documentation>650, 6xx $x</xsd:documentation> </xsd:annotation> </xsd:element> <xsd:element name="geographic" type="xsd:string"> <xsd:annotation> <xsd:documentation>651, 6xx $z</xsd:documentation> </xsd:annotation> </xsd:element> <xsd:element name="temporal" type="dateType"> <xsd:annotation> <xsd:documentation>648, 6xx $y</xsd:documentation> </xsd:annotation> </xsd:element> <xsd:element name="titleInfo" type="titleInfoType"> <xsd:annotation> <xsd:documentation>630</xsd:documentation> </xsd:annotation> </xsd:element> <xsd:element name="name" type="nameType"> <xsd:annotation> <xsd:documentation>600, 610, 611</xsd:documentation> </xsd:annotation> </xsd:element> <xsd:element name="geographicCode"> <xsd:complexType> <xsd:annotation> <xsd:documentation> 043</xsd:documentation> </xsd:annotation> <xsd:simpleContent> <xsd:extension base="xsd:string"> <xsd:attribute name="authority" type="placeAuthority"/> </xsd:extension> </xsd:simpleContent> </xsd:complexType> </xsd:element> <xsd:element name="hierarchicalGeographic" type="hierarchicalGeographicType"/> <xsd:element name="cartographics"> <xsd:complexType> <xsd:annotation> <xsd:documentation>255</xsd:documentation> </xsd:annotation> <xsd:sequence> <xsd:element name="scale" minOccurs="0" type="xsd:string"/> <xsd:element name="projection" minOccurs="0" type="xsd:string"/> <xsd:element name="coordinates" minOccurs="0" maxOccurs="unbounded" type="xsd:string"/> </xsd:sequence> </xsd:complexType> </xsd:element> <xsd:element name="occupation" type="xsd:string"> <xsd:annotation> <xsd:documentation> 656 </xsd:documentation> </xsd:annotation> </xsd:element> <xsd:element name="genre" type="xsd:string"/> </xsd:choice> <xsd:attributeGroup ref="idAuthorityXlinkLanguage"/> </xsd:complexType> <!-- --> <xsd:complexType name="hierarchicalGeographicType"> <xsd:annotation> <xsd:documentation>752</xsd:documentation> </xsd:annotation> <xsd:choice maxOccurs="unbounded"> <xsd:element name="extraterrestrialArea" type="xsd:string"> <!--extraterrestrialArea new in 3.3 --> <xsd:annotation> <xsd:documentation>752,662$h</xsd:documentation> </xsd:annotation> </xsd:element> <xsd:element name="continent" type="xsd:string"/> <xsd:element name="country" type="xsd:string"/> <xsd:element name="province" type="xsd:string"/> <xsd:element name="region" type="xsd:string"/> <xsd:element name="state" type="xsd:string"/> <xsd:element name="territory" type="xsd:string"/> <xsd:element name="county" type="xsd:string"/> <xsd:element name="city" type="xsd:string"/> <xsd:element name="citySection" type="xsd:string"> <!-- citySection new in 3.3 --> <xsd:annotation> <xsd:documentation>752,662$f</xsd:documentation> </xsd:annotation> </xsd:element> <xsd:element name="island" type="xsd:string"/> <xsd:element name="area" type="xsd:string"/> </xsd:choice> </xsd:complexType> <!--********** classificationType definition ********** --> <xsd:complexType name="classificationType"> <xsd:annotation> <xsd:documentation>050, 082, 080, 060, 086, 084</xsd:documentation> </xsd:annotation> <xsd:simpleContent> <xsd:extension base="stringPlusAuthorityPlusEdition"> <xsd:attributeGroup ref="language"/> <xsd:attribute name="displayLabel" type="xsd:string"/> </xsd:extension> </xsd:simpleContent> </xsd:complexType> <!-- ********** relatedItemType definition ********** --> <xsd:complexType name="relatedItemType"> <xsd:group ref="modsGroup" minOccurs="0" maxOccurs="unbounded"/> <xsd:attribute name="type"> <xsd:annotation> <xsd:documentation>if 787; or 700, 710, 711, 730 with $t and ind2 = blank; then omit type.</xsd:documentation> </xsd:annotation> <xsd:simpleType> <xsd:restriction base="xsd:string"> <xsd:enumeration value="preceding"> <xsd:annotation> <xsd:documentation>780</xsd:documentation> </xsd:annotation> </xsd:enumeration> <xsd:enumeration value="succeeding"> <xsd:annotation> <xsd:documentation>785</xsd:documentation> </xsd:annotation> </xsd:enumeration> <xsd:enumeration value="original"> <xsd:annotation> <xsd:documentation>534, 786</xsd:documentation> </xsd:annotation> </xsd:enumeration> <xsd:enumeration value="host"> <xsd:annotation> <xsd:documentation>772, 773</xsd:documentation> </xsd:annotation> </xsd:enumeration> <xsd:enumeration value="constituent"> <xsd:annotation> <xsd:documentation>770, 774, 700, 710, 711 with $t and ind2 = 2</xsd:documentation> </xsd:annotation> </xsd:enumeration> <xsd:enumeration value="series"> <xsd:annotation> <xsd:documentation>490, 440, 760, 800, 810, 811, 830</xsd:documentation> </xsd:annotation> </xsd:enumeration> <xsd:enumeration value="otherVersion"> <xsd:annotation> <xsd:documentation>775</xsd:documentation> </xsd:annotation> </xsd:enumeration> <xsd:enumeration value="otherFormat"> <xsd:annotation> <xsd:documentation>776</xsd:documentation> </xsd:annotation> </xsd:enumeration> <xsd:enumeration value="isReferencedBy"> <xsd:annotation> <xsd:documentation>510</xsd:documentation> </xsd:annotation> </xsd:enumeration> </xsd:restriction> </xsd:simpleType> </xsd:attribute> <xsd:attribute name="displayLabel" type="xsd:string"/> <xsd:attribute name="ID" type="xsd:ID"/> <xsd:attributeGroup ref="xlink:simpleLink"/> </xsd:complexType> <!--********** identifierType definition ********** --> <xsd:complexType name="identifierType"> <xsd:annotation> <xsd:documentation>010, 020, 022, 024, 028, 037, 856</xsd:documentation> </xsd:annotation> <xsd:simpleContent> <xsd:extension base="xsd:string"> <xsd:attribute name="type" type="xsd:string"/> <!--Suggested values include (but are not limited to): "hdl","doi","isbn", "isrc", "ismn" "issn", "issue number", "istc", "lccn", "local", "matrix number", "music publisher", "music plate", "sici", "uri", "upc", "videorecording identifier", "stock number" --> <xsd:attribute name="displayLabel" type="xsd:string"> <xsd:annotation> <xsd:documentation>856$3</xsd:documentation> </xsd:annotation> </xsd:attribute> <xsd:attribute name="invalid" type="yes"> <xsd:annotation> <xsd:documentation>$z in 0XX fields</xsd:documentation> </xsd:annotation> </xsd:attribute> <xsd:attributeGroup ref="language"/> </xsd:extension> </xsd:simpleContent> </xsd:complexType> <!-- *******************Begin definitions for location ************************* this includes holdings information, new in 3.3 see http://www.loc.gov/standards/mods/v3/mods-holdings.html ************************* ********** locationType definition ********** --> <xsd:complexType name="locationType"> <xsd:sequence> <xsd:element name="physicalLocation" type="physicalLocationType" minOccurs="0" maxOccurs="unbounded"/> <!-- ****************** the following element, shelfLocator, is new in 3.3 ******************** --> <xsd:element name="shelfLocator" type="xsd:string" minOccurs="0" maxOccurs="unbounded"/> <!-- --> <xsd:element name="url" type="urlType" minOccurs="0" maxOccurs="unbounded"/> <!-- ****************** the following two elements are new in 3.3 ******************** --> <xsd:element name="holdingSimple" type="holdingSimpleType" minOccurs="0"/> <xsd:element name="holdingExternal" type="extensionType" minOccurs="0"/> <!-- --> </xsd:sequence> </xsd:complexType> <!-- ******* Begin auxiliary definintions for <location>********** urlType definition (subordinate to locationType) ********** --> <xsd:complexType name="urlType"> <xsd:annotation> <xsd:documentation>856$u</xsd:documentation> </xsd:annotation> <xsd:simpleContent> <xsd:extension base="xsd:anyURI"> <xsd:attribute name="dateLastAccessed" type="xsd:string"/> <xsd:attribute name="displayLabel" type="xsd:string"> <xsd:annotation> <xsd:documentation>856$3</xsd:documentation> </xsd:annotation> </xsd:attribute> <xsd:attribute name="note" type="xsd:string"> <xsd:annotation> <xsd:documentation>856$z</xsd:documentation> </xsd:annotation> </xsd:attribute> <xsd:attribute name="access"> <xsd:simpleType> <xsd:restriction base="xsd:string"> <xsd:enumeration value="preview"/> <xsd:enumeration value="raw object"/> <xsd:enumeration value="object in context"/> </xsd:restriction> </xsd:simpleType> </xsd:attribute> <xsd:attribute name="usage"> <xsd:simpleType> <xsd:restriction base="xsd:string"> <xsd:enumeration value="primary display"/> </xsd:restriction> </xsd:simpleType> </xsd:attribute> </xsd:extension> </xsd:simpleContent> </xsd:complexType> <!-- ********** physicalLocationType definition (subordinate to locationType) ********** --> <xsd:complexType name="physicalLocationType"> <xsd:annotation> <xsd:documentation>852 </xsd:documentation> </xsd:annotation> <xsd:simpleContent> <xsd:extension base="stringPlusAuthorityPlusTypePlusLanguagePlusDisplayLabelPlusXlink"> <!-- XLink new in 3.3 --> <xsd:annotation> <xsd:documentation>852$3 for displayLabel</xsd:documentation> </xsd:annotation> </xsd:extension> </xsd:simpleContent> </xsd:complexType> <!-- ******************************************************************************************************** ************** Holding definitions new in 3.3 *************** ****************************************************************************************************************** holdingSimpleType definition (subordinate to locationType) ********** --> <xsd:complexType name="holdingSimpleType"> <xsd:sequence> <xsd:element name="copyInformation" type="copyInformationType" maxOccurs="unbounded"/> </xsd:sequence> </xsd:complexType> <!-- **********copyInformationType ********** --> <xsd:complexType name="copyInformationType"> <xsd:sequence> <xsd:element name="form" type="stringPlusAuthority" minOccurs="0"/> <xsd:element name="subLocation" minOccurs="0" maxOccurs="unbounded" type="xsd:string"/> <xsd:element name="shelfLocator" minOccurs="0" maxOccurs="unbounded" type="xsd:string"/> <xsd:element name="electronicLocator" minOccurs="0" maxOccurs="unbounded" type="xsd:string"/> <xsd:element name="note" type="stringPlusDisplayLabelPlusType" minOccurs="0" maxOccurs="unbounded"/> <xsd:element name="enumerationAndChronology" type="enumerationAndChronologyType" minOccurs="0" maxOccurs="unbounded"/> </xsd:sequence> </xsd:complexType> <!-- **********enumerationAndChronologyType definition (subordinate to modsholdingType) ********** --> <xsd:complexType name="enumerationAndChronologyType"> <xsd:annotation> <xsd:documentation>A textual description of the enumeration and chronology of the material, eg. volume details of a periodical. From MARC Holdings 866-868 or 853-855/863-865. </xsd:documentation> </xsd:annotation> <xsd:simpleContent> <xsd:extension base="xsd:string"> <xsd:attribute name="unitType"> <xsd:simpleType> <xsd:restriction base="xsd:string"> <xsd:enumeration value="1"> <xsd:annotation> <xsd:documentation> (basic bibliographic) 863 or 866</xsd:documentation> </xsd:annotation> </xsd:enumeration> <xsd:enumeration value="2"> <xsd:annotation> <xsd:documentation> (supplement) 864 or 867</xsd:documentation> </xsd:annotation> </xsd:enumeration> <xsd:enumeration value="3"> <xsd:annotation> <xsd:documentation> (index) 865 or 868</xsd:documentation> </xsd:annotation> </xsd:enumeration> </xsd:restriction> </xsd:simpleType> </xsd:attribute> </xsd:extension> </xsd:simpleContent> </xsd:complexType> <!-- ******************************************************************************************************** ************** End new holding definitions *************** ********************************************************************************************************************************** end definitions for location ********** accessConditionType definition ********** --> <xsd:complexType name="accessConditionType"> <xsd:annotation> <xsd:documentation>506, 540</xsd:documentation> </xsd:annotation> <xsd:complexContent> <xsd:extension base="extensionType"> <!-- ************************* definition revised in 3.3 ************************* ** base="extensionType" rather than string. extensionType is ** ** mixed content, and minOccurs=0 was added to its definition ** ** so the result is that this definition now supports a string (as ** ** before) or an extension. ** --> <xsd:attributeGroup ref="xlink:simpleLink"/> <xsd:attributeGroup ref="language"/> <xsd:attribute name="displayLabel" type="xsd:string"/> <xsd:attribute name="type" type="xsd:string"/> </xsd:extension> </xsd:complexContent> </xsd:complexType> <!-- ********** partType definition ********** --> <xsd:complexType name="partType"> <xsd: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. --> <xsd:element name="detail" type="detailType"/> <xsd:element name="extent" type="extentType"/> <xsd:element name="date" type="baseDateType"> <xsd:annotation> <xsd:documentation>Use only if different from date of resource being described in 'originInfo'</xsd:documentation> </xsd:annotation> </xsd:element> <xsd:element name="text" type="unstructuredText"/> </xsd:choice> <xsd:attribute name="ID" type="xsd:ID"/> <xsd:attribute name="type" type="xsd:string" use="optional"/> <xsd:attribute name="order" type="xsd:integer"/> </xsd:complexType> <!-- **** subordinate definitions for partType*** detailType ***--> <xsd:complexType name="detailType"> <xsd:choice maxOccurs="unbounded"> <xsd:element name="number" type="xsd:string"/> <xsd:element name="caption" type="xsd:string"/> <xsd:element name="title" type="xsd:string"> <xsd:annotation> <xsd:documentation>Use only if different than main title of resource being described</xsd:documentation> </xsd:annotation> </xsd:element> </xsd:choice> <xsd:attribute name="type" type="xsd:string"> <xsd:annotation> <xsd:documentation>Suggested values: part, volume, issue, chapter, section, paragraph, track. These values are used regardless of linguistic term)</xsd:documentation> </xsd:annotation> </xsd:attribute> <xsd:attribute name="level" type="xsd:positiveInteger"> <xsd:annotation> <xsd:documentation>Hierarchical level (level of enumeration) of a given detail element when there are multiple detail elements; top level is 1. For example assume two details, volume and issue; for volume (which is at a higher level hierarchically): type="volume" level="1"; for issue: type="issue" level="2".</xsd:documentation> </xsd:annotation> </xsd:attribute> </xsd:complexType> <!--*** extentType *** --> <xsd:complexType name="extentType"> <xsd:sequence> <xsd:annotation> <xsd:documentation> If 'start' but not 'end' is supplied, it should be assumed that the end page is unknown. A single page is indicated by presence of both 'start' and 'end' with same value. </xsd:documentation> </xsd:annotation> <xsd:element name="start" minOccurs="0" type="xsd:string"> <xsd:annotation> <xsd:documentation> Use for first page or begin minute</xsd:documentation> </xsd:annotation> </xsd:element> <xsd:element name="end" minOccurs="0" type="xsd:string"> <xsd:annotation> <xsd:documentation> Use for last page, end minutes, or (together with start element) single page</xsd:documentation> </xsd:annotation> </xsd:element> <xsd:element name="total" type="xsd:positiveInteger" minOccurs="0"> <xsd:annotation> <xsd:documentation> A cardinal rather than ordinal number. Use for a total number of pages or minutes. </xsd:documentation> </xsd:annotation> </xsd:element> <xsd:element name="list" minOccurs="0" type="xsd:string"> <xsd:annotation> <xsd:documentation> Use for an unparsed statement, e.g. p. 5-12. </xsd:documentation> </xsd:annotation> </xsd:element> </xsd:sequence> <xsd:attribute name="unit" type="xsd:string"> <xsd:annotation> <xsd:documentation> suggested values: pages, minutes</xsd:documentation> </xsd:annotation> </xsd:attribute> </xsd:complexType> <!-- ********** extensionType definition ********** --> <xsd:complexType name="extensionType" mixed="true"> <xsd:annotation> <xsd:documentation>use for local extensions or for extensions from other XML schemas</xsd:documentation> </xsd:annotation> <xsd:sequence> <xsd:any processContents="lax" minOccurs="0" maxOccurs="unbounded"/> <!-- ************************* minOccurs="0" added in version 3.3 ****************************** **This is to allow the definition to support a simple string without any "any" occurences ***** --> </xsd:sequence> </xsd:complexType> <!-- ********** recordInfoType definition ********** --> <xsd:complexType name="recordInfoType"> <xsd:choice maxOccurs="unbounded"> <xsd:element name="recordContentSource" type="stringPlusAuthorityPlusLanguage"> <xsd:annotation> <xsd:documentation>040 $a, $d</xsd:documentation> </xsd:annotation> </xsd:element> <xsd:element name="recordCreationDate" type="dateType"> <xsd:annotation> <xsd:documentation>008/00-05</xsd:documentation> </xsd:annotation> </xsd:element> <xsd:element name="recordChangeDate" type="dateType"> <xsd:annotation> <xsd:documentation>005</xsd:documentation> </xsd:annotation> </xsd:element> <xsd:element name="recordIdentifier"> <xsd:annotation> <xsd:documentation>001</xsd:documentation> </xsd:annotation> <xsd:complexType> <xsd:simpleContent> <xsd:extension base="xsd:string"> <xsd:attribute name="source" type="xsd:string"> <xsd:annotation> <xsd:documentation>Who supplied the identifier. From 003</xsd:documentation> </xsd:annotation> </xsd:attribute> </xsd:extension> </xsd:simpleContent> </xsd:complexType> </xsd:element> <xsd:element name="languageOfCataloging" type="languageType"> <xsd:annotation> <xsd:documentation>040$b</xsd:documentation> </xsd:annotation> <!-- This applies to the record at large. Any top level element can indicate a language, which overides this value for that element. --> </xsd:element> <xsd:element name="recordOrigin" type="xsd:string"/> <xsd:element name="descriptionStandard" type="stringPlusAuthority"/> <!-- ************************* descriptionStandard added in version 3.3 ****************************** --> </xsd:choice> <xsd:attributeGroup ref="language"/> <!-- This applies to the language of RecordInfo only. I.e. for recordContentSource and for source of identifier. --> </xsd:complexType> <!-- ***** End data type definitions for top level elements. ***** Begin global definitions. --> <!--********** unstructuredText Definition ********** --> <xsd:complexType name="unstructuredText"> <xsd:simpleContent> <xsd:extension base="stringPlusDisplayLabelPlusType"> <xsd:attributeGroup ref="xlink:simpleLink"> <xsd:annotation> <xsd:documentation>If the link is supplied it is in lieu of or in addition to the content.</xsd:documentation> </xsd:annotation> </xsd:attributeGroup> <xsd:attributeGroup ref="language"/> </xsd:extension> </xsd:simpleContent> </xsd:complexType> <!-- ********** dateType definition ********** --> <xsd:complexType name="dateType"> <xsd:simpleContent> <xsd:extension base="baseDateType"> <xsd:attribute name="keyDate" type="yes"> <xsd:annotation> <xsd:documentation>So that a particular date may be distinguished among several dates. Thus for example when sorting MODS records by date, a date with keyDate="yes" would be the date to sort on. It should occur only for one date at most in a given record.</xsd:documentation> </xsd:annotation> </xsd:attribute> </xsd:extension> </xsd:simpleContent> </xsd:complexType> <!-- ********** baseDateType ********** Referenced by partType (as well as dateType)--> <xsd:complexType name="baseDateType"> <xsd:simpleContent> <xsd:extension base="xsd:string"> <xsd:attribute name="encoding"> <xsd:annotation> <xsd:documentation>if omitted, free text is assumed</xsd:documentation> </xsd:annotation> <xsd:simpleType> <xsd:restriction base="xsd:string"> <xsd:enumeration value="w3cdtf"/> <xsd:enumeration value="iso8601"/> <xsd:enumeration value="marc"/> </xsd:restriction> </xsd:simpleType> </xsd:attribute> <xsd:attribute name="qualifier"> <xsd:simpleType> <xsd:restriction base="xsd:string"> <xsd:enumeration value="approximate"/> <xsd:enumeration value="inferred"/> <xsd:enumeration value="questionable"/> </xsd:restriction> </xsd:simpleType> </xsd:attribute> <xsd:attribute name="point"> <xsd:simpleType> <xsd:restriction base="xsd:string"> <xsd:enumeration value="start"/> <xsd:enumeration value="end"/> </xsd:restriction> </xsd:simpleType> </xsd:attribute> </xsd:extension> </xsd:simpleContent> </xsd:complexType> <!-- ********** dateOtherType ********** --> <xsd:complexType name="dateOtherType"> <xsd:simpleContent> <xsd:extension base="dateType"> <xsd:attribute name="type" type="xsd:string"/> </xsd:extension> </xsd:simpleContent> </xsd:complexType> <!-- ********** language attribute group definition ********** --> <xsd:attributeGroup name="language"> <xsd:attribute name="lang" type="xsd:string"> <xsd:annotation> <xsd:documentation>ISO 639-2b</xsd:documentation> </xsd:annotation> </xsd:attribute> <xsd:attribute ref="xml:lang"/> <xsd:attribute name="script" type="xsd:string"/> <xsd:attribute name="transliteration" type="xsd:string"/> </xsd:attributeGroup> <!-- ********** definition of codeOrText type used by type attribute for elements that distinguish code from text ********** --> <xsd:simpleType name="codeOrText"> <xsd:restriction base="xsd:string"> <xsd:enumeration value="code"/> <xsd:enumeration value="text"/> </xsd:restriction> </xsd:simpleType> <!-- ********** definition of placeAuthority type used by authority attribute for placeType and geographic ********** --> <xsd:simpleType name="placeAuthority"> <xsd:restriction base="xsd:string"> <xsd:enumeration value="marcgac"/> <xsd:enumeration value="marccountry"/> <xsd:enumeration value="iso3166"/> </xsd:restriction> </xsd:simpleType> <!-- ********** definition of nameTypeAttribute used by name attribute "type" ********** --> <xsd:simpleType name="nameTypeAttribute"> <xsd:restriction base="xsd:string"> <xsd:enumeration value="personal"> <xsd:annotation> <xsd:documentation>100, 700</xsd:documentation> </xsd:annotation> </xsd:enumeration> <xsd:enumeration value="corporate"> <xsd:annotation> <xsd:documentation>110, 710.</xsd:documentation> </xsd:annotation> </xsd:enumeration> <xsd:enumeration value="conference"> <xsd:annotation> <xsd:documentation>111, 711</xsd:documentation> </xsd:annotation> </xsd:enumeration> </xsd:restriction> </xsd:simpleType> <!-- ********** versionType ********** --> <xsd:simpleType name="versionType"> <xsd:restriction base="xsd:string"> <xsd:enumeration value="3.3"/> </xsd:restriction> </xsd:simpleType> <!-- ************************* all remaining below, new in 3.3 (attribute and related definitions) ************************* --> <xsd:complexType name="stringPlusAuthority"> <xsd:simpleContent> <xsd:extension base="xsd:string"> <xsd:attribute name="authority" type="xsd:string"/> </xsd:extension> </xsd:simpleContent> </xsd:complexType> <!-- --> <xsd:complexType name="stringPlusAuthorityPlusType"> <xsd:simpleContent> <xsd:extension base="stringPlusAuthority"> <xsd:attribute name="type" type="xsd:string"/> </xsd:extension> </xsd:simpleContent> </xsd:complexType> <!-- --> <xsd:complexType name="stringPlusAuthorityPlusEdition"> <xsd:simpleContent> <xsd:extension base="stringPlusAuthority"> <xsd:attribute name="edition" type="xsd:string"> <xsd:annotation> <xsd:documentation>edition qualifies authority, for authorities that have editions, e.g. DDC.</xsd:documentation> </xsd:annotation> </xsd:attribute> </xsd:extension> </xsd:simpleContent> </xsd:complexType> <!-- --> <xsd:complexType name="stringPlusAuthorityPlusDisplayLabel"> <xsd:simpleContent> <xsd:extension base="stringPlusAuthority"> <xsd:attribute name="displayLabel" type="xsd:string"/> </xsd:extension> </xsd:simpleContent> </xsd:complexType> <!-- --> <xsd:complexType name="stringPlusAuthorityPlusLanguage"> <xsd:simpleContent> <xsd:extension base="stringPlusAuthority"> <xsd:attributeGroup ref="language"/> </xsd:extension> </xsd:simpleContent> </xsd:complexType> <!-- --> <xsd:complexType name="stringPlusAuthorityPlusTypePlusLanguage"> <xsd:simpleContent> <xsd:extension base="stringPlusAuthorityPlusLanguage"> <xsd:attribute name="type" type="xsd:string"/> </xsd:extension> </xsd:simpleContent> </xsd:complexType> <!-- --> <xsd:complexType name="stringPlusAuthorityPlusTypePlusLanguagePlusDisplayLabelPlusXlink"> <xsd:simpleContent> <xsd:extension base="stringPlusAuthorityPlusTypePlusLanguage"> <xsd:attribute name="displayLabel" type="xsd:string"/> <xsd:attributeGroup ref="xlink:simpleLink"/> </xsd:extension> </xsd:simpleContent> </xsd:complexType> <!-- --> <xsd:complexType name="stringPlusDisplayLabel"> <xsd:simpleContent> <xsd:extension base="xsd:string"> <xsd:attribute name="displayLabel" type="xsd:string"/> </xsd:extension> </xsd:simpleContent> </xsd:complexType> <!-- --> <xsd:complexType name="stringPlusDisplayLabelPlusType"> <xsd:simpleContent> <xsd:extension base="stringPlusDisplayLabel"> <xsd:attribute name="type" type="xsd:string"/> </xsd:extension> </xsd:simpleContent> </xsd:complexType> <!-- --> <xsd:attributeGroup name="idAuthorityXlinkLanguage"> <xsd:attribute name="ID" type="xsd:ID"/> <xsd:attribute name="authority" type="xsd:string"/> <xsd:attributeGroup ref="xlink:simpleLink"/> <xsd:attributeGroup ref="language"/> </xsd:attributeGroup> <!-- --> <xsd:simpleType name="yes"> <xsd:restriction base="xsd:string"> <xsd:enumeration value="yes"/> </xsd:restriction> </xsd:simpleType> </xsd:schema>