<?xml version="1.0" ?>
<!--<!DOCTYPE xs:schema PUBLIC "-//W3C//DTD XMLSCHEMA 200102//EN" "XMLSchema.dtd">-->
<!-- 9/6/2005 - Moved several elements into the admin wrapper which do not describe the bibliographic data. -->
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xmlns="http://digital.uflib.ufl.edu/metadata/dloc/" targetNamespace="http://digital.uflib.ufl.edu/metadata/dloc/"
	elementFormDefault="qualified" 
	attributeFormDefault="unqualified" 
	xsi:schemaLocation="http://www.w3.org/2001/XMLSchema http://www.w3.org/2001/XMLSchema.xsd"
	version="1.4">
	<xs:annotation>
		<xs:documentation xml:lang="en">
			Schema defining metadata elements to be used for dLOC projects. 	
			This schema has been designed as an extension schema to the METS format. 
			Components defined and declared here may be used in a METS mdWrap/xmlData section. 
			Developer: Mark Sullivan (MarSull@uflib.ufl.edu)
			Creation Date: 08/08/2005
			
			Version 1.1 - SortDate and SortTitle were added ( January 2006 - MVS )
			Version 1.2 - URL and Copyrighted added. 
						  Language attribute added to Alternate Title..
						  Scheme attribute added to Genre. 
						  Affilitaion attribute added to Creator and Contributor. ( February 2006 - MVS )
			Version 1.3 - Added Affiliation complex type
						  Added formatted citation (string)
						  Added series hierarchy information ( April 2006 - MVS )
			Version 1.4 - Removed legacy data elements which have been moved into MODS. ( May 2006 - MVS )
	    </xs:documentation>
	</xs:annotation>
	
	<!-- All elements which describe how to handle this item will be in an procParam wrapper. -->
	<!-- This element should appear in a descriptive (dmdSec) wrapper in the METS file        -->
	<xs:element name="procParam">
		<xs:complexType>
			<xs:sequence>
				<!-- These are elements which tell which collecton (and subcollections) to build this into -->
				<xs:element name="Collection.Primary" type="xs:string" minOccurs="1" maxOccurs="1" />
				<xs:element name="Collection.Alternate" type="xs:string" minOccurs="0" maxOccurs="unbounded" />
				<xs:element name="SubCollection" type="xs:string" minOccurs="0" maxOccurs="unbounded" />
				
				<!-- These are elements which tell how to display this item in UFDC -->
				<xs:element name="TextDisplayable" type="xs:boolean" minOccurs="0" maxOccurs="1" />
				<xs:element name="TextSearchable" type="xs:boolean" minOccurs="0" maxOccurs="1" />
				<xs:element name="MainThumbnail" type="xs:string" minOccurs="0" maxOccurs="1" />
				<xs:element name="IndexSheet" type="xs:string" minOccurs="0" maxOccurs="1" />
				<xs:element name="Icon" type="dlocIcon" minOccurs="0" maxOccurs="unbounded" />
				
				<!-- This element points to any downloads available for this item -->
				<xs:element name="Download" type="dlocDownload" minOccurs="0" maxOccurs="unbounded" />
				
				<!-- This element points to the URL of the item, if this points to an existing resource -->
				<xs:element name="URL" type="xs:string" minOccurs="0" maxOccurs="unbounded" />
			</xs:sequence>
		</xs:complexType>
	</xs:element>
	
	<!-- All elements which describe the bibliographic item will be in a bibDesc wrapper. -->
	<!-- This element should appear in a descriptive (dmdSec) wrapper in the METS file.   -->
	<!-- MODS can be used for all of the other data fields.                               -->
	<xs:element name="bibDesc">
		<xs:complexType>
			<xs:sequence>
				<!-- These items are primary local identifiers for this item -->
				<xs:element name="BibID" type="xs:string" minOccurs="1" maxOccurs="1" />
				<xs:element name="VID" type="xs:string" minOccurs="1" maxOccurs="1" />
				
				<!-- These are the elements which are ingested directly into the UFDC custom metadata in Greenstone during the build process -->
				<xs:element name="Affiliation" type="dlocAffiliation" minOccurs="0" maxOccurs="unbounded" />
				<xs:element name="Copyrighted" type="xs:boolean" minOccurs="0" maxOccurs="1" />
				<xs:element name="FormattedCitation" type="xs:string" minOccurs="0" maxOccurs="1" />
				<xs:element name="Holding" type="dlocHolding" minOccurs="0" maxOccurs="1" />
				<xs:element name="Source" type="dlocSource" minOccurs="1" maxOccurs="1" />
				<xs:element name="Temporal" type="dlocTemporal" minOccurs="0" maxOccurs="unbounded" />
				<xs:element name="Type" minOccurs="1" maxOccurs="1">
					<xs:simpleType>
						<xs:restriction base="xs:NMTOKEN">
							<xs:enumeration value="SERIAL" />
							<xs:enumeration value="AUDIO" />
							<xs:enumeration value="VIDEO" />
							<xs:enumeration value="IMAGE" />
							<xs:enumeration value="TEXT" />
							<xs:enumeration value="NEWSPAPER" />
							<xs:enumeration value="ARCHIVES" />
							<xs:enumeration value="PHOTOGRAPH" />
						</xs:restriction>
					</xs:simpleType>
				</xs:element>
				<xs:element name="SortDate" type="xs:string" minOccurs="0" maxOccurs="1" />
				<xs:element name="SortTitle" type="xs:string" minOccurs="0" maxOccurs="1" />
			</xs:sequence>
		</xs:complexType>
	</xs:element>
	
	<!-- This object holds information about how this item in a serial should display  -->
	<!-- hierarchically with the other volumes within the series.                      -->
	<xs:element name="serial">
		<xs:complexType>
			<xs:sequence>
				<!-- These items are primary local identifiers for this item -->
				<xs:element name="SerialHierarchy" type="dlocSerialHierarchy" minOccurs="1" maxOccurs="unbounded" />
			</xs:sequence>
		</xs:complexType>
	</xs:element>
	
	<!-- This object is very project specific and must be passed through to Greenstone. -->
	<!-- This element should appear in a descriptive (dmdSec) wrapper in the METS file. -->
	<xs:element name="gsa">
		<xs:complexType>
			<xs:sequence>
				<!-- These items are primary local identifiers for this item -->
				<xs:element name="gsaData" type="dlocGsaData" minOccurs="0" maxOccurs="unbounded" />
			</xs:sequence>
		</xs:complexType>
	</xs:element>
	
	<!-- Define the complex affiliation type.  This can either be a single term, or	 -->
	<!-- a hierarchical affiliation statement.                                       -->
	<xs:complexType name="dlocAffiliation">
		<xs:choice maxOccurs="1">
			<xs:element name="AffiliationTerm" type="xs:string" />
			<xs:element name="HierarchicalAffiliation" type="dlocAffiliationHierarchy" />
		</xs:choice>
	</xs:complexType>
	
	<!-- Define the complex affiliation hierarchy type -->
	<xs:complexType name="dlocAffiliationHierarchy">
		<xs:choice maxOccurs="unbounded">
			<xs:element name="University" /> 
			<xs:element name="Campus" /> 
			<xs:element name="College" /> 
			<xs:element name="Unit" /> 
			<xs:element name="Department" /> 
			<xs:element name="Institute" /> 
			<xs:element name="Center" /> 
			<xs:element name="Section" /> 
			<xs:element name="Subsection" /> 
		</xs:choice>
	</xs:complexType>
	
	<!-- Define the complex Download type -->
	<xs:complexType name="dlocDownload">
		<xs:choice>
			<xs:element name="url">
				<xs:complexType>
					<xs:simpleContent>
						<xs:extension base="xs:string">
							<xs:attribute name="type" type="xs:string" />
							<xs:attribute name="size" type="xs:string" />
						</xs:extension>
					</xs:simpleContent>
				</xs:complexType>
			</xs:element>
			<xs:element name="fptr">
				<xs:complexType>
					<xs:simpleContent>
						<xs:extension base="xs:string">
							<xs:attribute name="FILEID" type="xs:string" />
						</xs:extension>
					</xs:simpleContent>
				</xs:complexType>
			</xs:element>
			<xs:element name="name" type="xs:string" />
		</xs:choice>
	</xs:complexType>
	
	<!-- Define the complex GsaData type -->
	<xs:complexType name="dlocGsaData">
		<xs:simpleContent>
			<xs:extension base="xs:string">
				<xs:attribute name="namespace" type="xs:string" />
				<xs:attribute name="element" type="xs:string" />
			</xs:extension>
		</xs:simpleContent>
	</xs:complexType>
	
	<!-- Define the complex Holding type -->
	<xs:complexType name="dlocHolding">
		<xs:sequence>
			<xs:element name="statement" minOccurs="0" maxOccurs="unbounded">
				<xs:complexType>
					<xs:simpleContent>
						<xs:extension base="xs:string">
							<xs:attribute name="code" type="xs:string" />
						</xs:extension>
					</xs:simpleContent>
				</xs:complexType>
			</xs:element>
			<xs:element name="html" type="xs:string" minOccurs="0" maxOccurs="1" />
		</xs:sequence>
	</xs:complexType>
	
	<!-- Define the complex Icon type -->
	<xs:complexType name="dlocIcon">
		<xs:sequence>
			<xs:element name="url" minOccurs="0" maxOccurs="unbounded">
				<xs:complexType>
					<xs:simpleContent>
						<xs:extension base="xs:string">
							<xs:attribute name="name" type="xs:string" />
						</xs:extension>
					</xs:simpleContent>
				</xs:complexType>
			</xs:element>
		</xs:sequence>
	</xs:complexType>

	<!-- Define the complex Temporal type -->
	<xs:complexType name="dlocTemporal">
		<xs:sequence>
			<xs:element name="period" minOccurs="0" maxOccurs="unbounded">
				<xs:complexType>
					<xs:simpleContent>
						<xs:extension base="xs:string">
							<xs:attribute name="start" type="xs:gYear" />
							<xs:attribute name="end" type="xs:gYear" />
						</xs:extension>
					</xs:simpleContent>
				</xs:complexType>
			</xs:element>
		</xs:sequence>
	</xs:complexType>
	
	<!-- Define the complex GsaData type -->
	<xs:complexType name="dlocSerialHierarchy">
		<xs:simpleContent>
			<xs:extension base="xs:string">
				<xs:attribute name="level" type="xs:int" />
				<xs:attribute name="order" type="xs:int" />
			</xs:extension>
		</xs:simpleContent>
	</xs:complexType>
	
	<!-- Define the complex Source type -->
	<xs:complexType name="dlocSource">
		<xs:sequence>
			<xs:element name="statement" minOccurs="0" maxOccurs="1">
				<xs:complexType>
					<xs:simpleContent>
						<xs:extension base="xs:string">
							<xs:attribute name="code">
								<xs:simpleType>
									<xs:restriction base="xs:NMTOKEN">
										<xs:enumeration value="EK" />
										<xs:enumeration value="AM" />
										<xs:enumeration value="UF" />
										<xs:enumeration value="FSU" />
										<xs:enumeration value="UWF" />
										<xs:enumeration value="UNF" />
										<xs:enumeration value="UCF" />
										<xs:enumeration value="USF" />
										<xs:enumeration value="FIU" />
										<xs:enumeration value="CARICOM" />
										<xs:enumeration value="ANH" />
										<xs:enumeration value="AUF" />
										<xs:enumeration value="BHPSE" />
										<xs:enumeration value="BHFIC" />
										<xs:enumeration value="BNH" />
										<xs:enumeration value="BNPHU" />
										<xs:enumeration value="FUNGLODE" />
										<xs:enumeration value="IFH" />
										<xs:enumeration value="NLJ" />
										<xs:enumeration value="PUCMMA" />
										<xs:enumeration value="OAS" />
										<xs:enumeration value="UOV" />
										<xs:enumeration value="UVI" />
										<xs:enumeration value="UNPHU" />	
										<xs:enumeration value="MHM" />	
										<xs:enumeration value="UASD" />															
										<xs:enumeration value="NLG" />	
										<xs:enumeration value="SWFLN" />	
										<xs:enumeration value="SW" />	
									</xs:restriction>
								</xs:simpleType>
							</xs:attribute>
						</xs:extension>
					</xs:simpleContent>
				</xs:complexType>
			</xs:element>
			<xs:element name="html" type="xs:string" minOccurs="0" maxOccurs="1" />
		</xs:sequence>
	</xs:complexType>
</xs:schema>
