<?xml version="1.0" encoding="UTF-8"?>

<!--  From: http://www.loc.gov/standards/rights/METSRights.xsd -->

<!-- edited with XMLSPY v5 U (http://www.xmlspy.com) by Nancy J. 

Hoebelheinrich (Stanford University Libraries) -->

<!--added target namespace June 2, 2004-->

<xs:schema 
    targetNamespace="http://cosimo.stanford.edu/sdr/metsrights/" 
    xmlns="http://cosimo.stanford.edu/sdr/metsrights/" 
    xmlns:xs="http://www.w3.org/2001/XMLSchema" 

elementFormDefault="qualified" attributeFormDefault="unqualified">

  <xs:element name="RightsDeclarationMD" type="RightsDeclareMDTYPE">

    <xs:annotation>

      <xs:documentation>The RightsDeclarationMD Extension Schema allows the 

      documentation of minimal administrative metadata about the intellectual 

      rights associated with a digital object or its parts, and is to be used 

      as an extension to the Metadata Encoding and Transmission Standard 

      (METS).  RightsDeclarationMD contains the following top level elements:  

      1. RightsDeclaration:  intellectual property rights associated with 

      digital asset or part of a digital asset; 2. RightsHolder:  person or 

      organization holding some intellectual property rights to a given 

      digital asset or part of a digital asset;  3.  Context: contains a 

      description of specific circumstances associated with who has what 

      permissions and constraints. RightsDeclarationMD also contains three 

      attributes, "RIGHTSDECID",  "RIGHTSCATEGORY"  and "OTHERCATEGORYTYPE".  

      "RIGHTSDECID provides a unique identifier for the right declaration 

      described.  "RIGHTSCATEGORY" specifies whether the resource is 

      COPYRIGHTED, LICENSED,  in the PUBLIC DOMAIN, CONTRACTUAL,  or OTHER 

      which can be more fully described in the "OTHERCATEGORYTYPE" attribute.  



      </xs:documentation>

    </xs:annotation>

  </xs:element>

  <xs:complexType name="RightsDeclareMDTYPE">

    <xs:sequence>

      <xs:element name="RightsDeclaration" minOccurs="0" 

maxOccurs="unbounded">

	<xs:annotation>

	  <xs:documentation>Broad declaration of rights associated with 

	  digital asset which would provide the public notice to user community of 

	  the intellectual property rights associated with a given asset or part 

	  thereof.   Further explanation of specific circumstances can be 

	  described within the Context element.  RightsDeclarationTYPE 	has no 

	  attribute.  </xs:documentation>

	</xs:annotation>

      </xs:element>

      <xs:element name="RightsHolder" type="RightsHolderTYPE" 

minOccurs="0" maxOccurs="unbounded"/>

      <xs:element name="Context" type="ContextTYPE" minOccurs="0" 

maxOccurs="unbounded"/>

    </xs:sequence>

    <xs:attribute name="RIGHTSDECID" type="xs:string" 

use="optional"/>

    <xs:attribute name="RIGHTSCATEGORY">

      <xs:simpleType>

	<xs:restriction base="xs:string">

	  <xs:enumeration value="COPYRIGHTED"/>

	  <xs:enumeration value="LICENSED"/>

	  <xs:enumeration value="PUBLIC DOMAIN"/>

	  <xs:enumeration value="CONTRACTUAL"/>

	  <xs:enumeration value="OTHER"/>

	</xs:restriction>

      </xs:simpleType>

    </xs:attribute>

    <xs:attribute name="OTHERCATEGORYTYPE" type="xs:string" 

use="optional"/>

  </xs:complexType>

  <xs:complexType name="RightsHolderTYPE">

    <xs:annotation>

      <xs:documentation> Characteristics of person or institution holding 

      some rights to a given digital asset or part thereof. Has two attributes 

      "RIGHTSHOLDERID" used to uniquely identify the rights holder, and 

      CONTEXTIDS which provides a way to specifically link one or more context 

      situations as described within the CONTEXT element. </xs:documentation>

    </xs:annotation>

    <xs:sequence>

      <xs:element name="RightsHolderName" minOccurs="0" 

maxOccurs="unbounded">

	<xs:annotation>

	  <xs:documentation>Name of rights holder organization, as identified 

	  by the RIGHTSHOLDERID						</xs:documentation>

	</xs:annotation>

      </xs:element>

      <xs:element name="RightsHolderComments" minOccurs="0" 

maxOccurs="unbounded">

	<xs:annotation>

	  <xs:documentation>Any comments necessary to explain, not covered 

	  elsewhere 							</xs:documentation>

	</xs:annotation>

      </xs:element>

      <xs:element name="RightsHolderContact" 

type="RightsHolderContactTYPE" minOccurs="0" 

maxOccurs="unbounded"/>

    </xs:sequence>

    <xs:attribute name="RIGHTSHOLDERID" type="xs:ID" 

use="optional"/>

    <xs:attribute name="CONTEXTIDS" type="xs:IDREFS" 

use="optional"/>

  </xs:complexType>

  <xs:complexType name="RightsHolderContactTYPE">

    <xs:annotation>

      <xs:documentation>Information about the contact point for rights 

      holder organization, as identified by the RIGHTSHOLDERID.  The contact 

      point for a resource may be an agency or organization representing the 

      rights holder rather than the rights holder per se.  Each 

      RightsHolderContactTYPE may contain a RightsHolderContactDesignation, 

      RightsHolderContactAddress element, a RightsHolderContactPhone element, 

      and a RightsHolderContactEmail element.  </xs:documentation>

    </xs:annotation>

    <xs:sequence>

      <xs:element name="RightsHolderContactDesignation" minOccurs="0" 

maxOccurs="unbounded">

	<xs:annotation>

	  <xs:documentation>Name or title of a contact person or institution 

	  holding rights to a given digital asset, as identified by the 

	  RIGHTSHOLDERID.</xs:documentation>

	</xs:annotation>

      </xs:element>

      <xs:element name="RightsHolderContactAddress" minOccurs="0" 

maxOccurs="unbounded">

	<xs:annotation>

	  <xs:documentation>Mailing address of contact person or institution 

	  holding rights to a given digital asset, as identified by the 

	  RIGHTSHOLDERID.</xs:documentation>

	</xs:annotation>

      </xs:element>

      <xs:element name="RightsHolderContactPhone" minOccurs="0" 

maxOccurs="unbounded">

	<xs:annotation>

	  <xs:documentation>Telephone number of contact person or institution 

	  holding rights to a given digital asset or part thereof, as identified 

	  by the RIGHTSHOLDERID. The PHONETYPE attribute has enumerated values of 

	  "FAX", "BUSINESS", and "MOBILE".</xs:documentation>

	</xs:annotation>

	<xs:complexType>

	  <xs:simpleContent>

	    <xs:extension base="xs:string">

	      <xs:attribute name="PHONETYPE">

		<xs:simpleType>

		  <xs:restriction base="xs:string">

		    <xs:enumeration value="FAX"/>

		    <xs:enumeration value="BUSINESS"/>

		    <xs:enumeration value="MOBILE"/>

		  </xs:restriction>

		</xs:simpleType>

	      </xs:attribute>

	    </xs:extension>

	  </xs:simpleContent>

	</xs:complexType>

      </xs:element>

      <xs:element name="RightsHolderContactEmail" minOccurs="0" 

maxOccurs="unbounded">

	<xs:annotation>

	  <xs:documentation>Email address of contact person or institution 

	  holding rights to a digital asset or part thereof, as identified by the 

	  RIGHTSHOLDERID.  </xs:documentation>

	</xs:annotation>

      </xs:element>

    </xs:sequence>

  </xs:complexType>

  <xs:complexType name="ContextTYPE">

    <xs:annotation>

      <xs:documentation>The "Context" element describes who has what 

      permissions and contraints within a specific set of circumstances. 

      "Context" includes four attributes,  " CONTEXTID" an optional attribute 

      which can be used to assign a unique identifier for the circumstance 

      described, "RIGHTSHOLDERIDS", an optional attribute which provides a 

      means to specifically list the unique identifiers of one or more 

      RightsHolders who are involved in the Context scenario to be described,  

      "CONTEXTCLASS", and "OTHERCONTEXTTYPE".    By means of the required 

      "CONTEXTCLASS" attribute, the group is defined to which a given context 

      relates.  Enumerated values for this attribute include "ACADEMIC USER", 

      "GENERAL PUBLIC","REPOSITORY MGR", "MANAGED GRP", "INSTITUTIONAL 

      AFFILIATE", "OTHER".  Local extensions to "OTHER" context classes can be 

      described in the "OTHERCONTEXTTYPE" attribute, as desired.   "Context" 

      also contains three elements which further describe a specified context. 

      The element "UserName" allows the naming of the typical user or group 

      who would use the digital object within the described context.  The kind 

      of user being named can be described by means of the attribute 

      "USERTYPE" which has values "INDIVIDUAL", "GROUP", "BOTH", or  

      "UNDEFINED".  The element "Permissions" describes a set of uses to which 

      a digital object or part thereof can be put as defined by the rights 

      holder in a given context. "Permissions" has nine attributes which 

      describe the type of permissions including "DISCOVER", "DISPLAY", 

      "COPY", "DUPLICATE", "MODIFY", "DELETE", "PRINT", "OTHER", and 

      "OTHERPERMITTYPE" which allows the addition of local types of 

      permissions not included in the general list.  Any restrictions that 

      need to be placed upon a set of permissions are described by the use of 

      the "Constraints" element.  The "Constraints" element contains a 

      "ConstraintDescription" sub-element in which a narrative explanation can 

      be given about the constraint.  The "Constraints" element has an 

      attribute "CONSTRAINTTYPE" which characterize the type of restrictions 

      imposed upon the users within a given context.  Enumerated values for 

      the CONSTRAINTTYPE attributes include "QUALITY", "FORMAT", "UNIT", 

      "WATERMARK", "PAYMENT", "COUNT", "ATTRIBUTION", "RE-USE", "TIME", 

      "TRANSFERPERMISSIONS", "OTHER".  Local extensions to "OTHER" can be 

      described in the "OTHERCONSTRAINTTYPE" attribute, as desired.  

      </xs:documentation>

    </xs:annotation>

    <xs:sequence>

      <xs:element name="UserName" type="UserNameTYPE" minOccurs="0" 

maxOccurs="unbounded"/>

      <xs:element name="Permissions" type="PermissionsTYPE" 

minOccurs="0" maxOccurs="unbounded"/>

      <xs:element name="Constraints" type="ConstraintsTYPE" 

minOccurs="0" maxOccurs="unbounded"/>

    </xs:sequence>

    <xs:attribute name="CONTEXTID" type="xs:ID" use="optional"/>

    <xs:attribute name="RIGHTSHOLDERIDS" type="xs:IDREFS" 

use="optional"/>

    <xs:attribute name="CONTEXTCLASS" use="required">

      <xs:simpleType>

	<xs:restriction base="xs:string">

	  <xs:enumeration value="ACADEMIC USER"/>

	  <xs:enumeration value="GENERAL PUBLIC"/>

	  <xs:enumeration value="REPOSITORY MGR"/>

	  <xs:enumeration value="MANAGED GRP"/>

	  <xs:enumeration value="INSTITUTIONAL AFFILIATE"/>

	  <xs:enumeration value="OTHER"/>

	</xs:restriction>

      </xs:simpleType>

    </xs:attribute>

    <xs:attribute name="OTHERCONTEXTTYPE" type="xs:string" 

use="optional"/>

  </xs:complexType>

  <xs:complexType name="UserNameTYPE">

    <xs:simpleContent>

      <xs:extension base="xs:string">

	<xs:attribute name="USERTYPE">

	  <xs:simpleType>

	    <xs:restriction base="xs:string">

	      <xs:enumeration value="INDIVIDUAL"/>

	      <xs:enumeration value="GROUP"/>

	      <xs:enumeration value="BOTH"/>

	      <xs:enumeration value="UNDEFINED"/>

	    </xs:restriction>

	  </xs:simpleType>

	</xs:attribute>

      </xs:extension>

    </xs:simpleContent>

  </xs:complexType>

  <xs:complexType name="PermissionsTYPE">

    <xs:attribute name="DISCOVER" type="xs:boolean">

      <!--Resource is available for searching or other discovery 

activities.  -->

    </xs:attribute>

    <xs:attribute name="DISPLAY" type="xs:boolean">

      <!--Rendering, playing, executing the resource.-->

    </xs:attribute>

    <xs:attribute name="COPY" type="xs:boolean">

      <!--Making verbatim copy  for purposes of re-use of whole or part of 

the resource and creation of new resource.  -->

    </xs:attribute>

    <xs:attribute name="DUPLICATE" type="xs:boolean">

      <!--Make exact copy of resource for file or repository management 

purposes.-->

    </xs:attribute>

    <xs:attribute name="MODIFY" type="xs:boolean">

      <!--Annotate, edit, excerpt, embed, extract resource for purposes of 

re-use or preservation.-->

    </xs:attribute>

    <xs:attribute name="DELETE" type="xs:boolean">

      <!--Remove resource from repository for purposes of resource or 

repository management.-->

    </xs:attribute>

    <xs:attribute name="PRINT" type="xs:boolean">

      <!--Rendering the resource onto paper or hard copy.-->

    </xs:attribute>

    <xs:attribute name="OTHER" type="xs:boolean"/>

    <xs:attribute name="OTHERPERMITTYPE" type="xs:string" 

use="optional"/>

    <!--Allows for localized permission types.  -->

    <!--Naming of localized permission types.-->

  </xs:complexType>

  <xs:complexType name="ConstraintsTYPE">

    <xs:sequence>

      <xs:element name="ConstraintDescription" minOccurs="0" 

maxOccurs="unbounded"/>

    </xs:sequence>

    <xs:attribute name="CONSTRAINTTYPE">

      <xs:simpleType>

	<xs:restriction base="xs:string">

	  <xs:enumeration value="QUALITY"/>

	  <xs:enumeration value="FORMAT"/>

	  <xs:enumeration value="UNIT"/>

	  <xs:enumeration value="WATERMARK"/>

	  <xs:enumeration value="PAYMENT"/>

	  <xs:enumeration value="COUNT"/>

	  <xs:enumeration value="RE-USE"/>

	  <xs:enumeration value="ATTRIBUTION"/>

	  <xs:enumeration value="TIME"/>

	  <xs:enumeration value="TRANSFERPERMISSIONS"/>

	  <xs:enumeration value="OTHER"/>

	</xs:restriction>

      </xs:simpleType>

    </xs:attribute>

    <xs:attribute name="OTHERCONSTRAINTTYPE" type="xs:string" 

use="optional">

      <!--Naming of localized constraint types.-->

    </xs:attribute>

  </xs:complexType>

</xs:schema>