<?xml version="1.0" encoding="UTF-8"?>
<!-- edited with XML Spy v4.0.1 (http://www.xmlspy.com) by D. Casey (User Technology Associates, Inc.) -->
<xs:schema targetNamespace="http://www.loc.gov/AMD/" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns="http://www.loc.gov/AMD/" elementFormDefault="qualified">
	<!--============================================================

  AUDIOMD: Audio Technical Metadata Extension Schema  
  Initial Version:  AMD_020322.xsd (obtained from Carl's webpage on 03/27/2002)

  Changes 03/27/2002:
  DKC- Removed duplicate elements "note" and "num_channels" from the 
        complexType node "physical_dataType".
     - Removed "calibration" from "file_data" due to its inclusion in 
        "calibration_info".
     - Removed "duration" from "physical_data" due to its inclusion in 
        "time_info".
  Changes 04/03/2002:
  DKC- Duplicated the AUDIOMD node to create the AUDIOSRC node.  Removed 
        "physical_data" from AUDIOMD and "file_data" from AUDIOSRC.
     - Created a "audio_info" node and moved the following nodes into it: note, 
        num_channels, sound_field, sound_channel_map, duration
  Changes 07/25/2002
  DKC- Abstracted the root element in order to provide support for both analog 
        and digital sources.
     - Simplified the structure to eliminate the unecessary element references 
        and complex types.
  Changes 08/22/2002
  DKC- Cleaned up much of the documentation and definitions.  This should 
        continue.
  
============================================================ -->
	<xs:element name="AUDIOMD" type="audioType"/>
	<xs:element name="AUDIOSRC" type="audioType"/>
	<xs:element name="file_data" type="file_dataType"/>
	<xs:element name="physical_data" type="physical_dataType"/>
	<xs:element name="audio_info" type="audio_infoType"/>
	<xs:element name="calibration_info" type="calibrationType"/>
	<xs:annotation>
		<xs:documentation>AMD: LC-AV Audio Metadata Extension Schema.
			AMD contains technical metadata that describes either a digital file or a physical source object.  It is 
			based upon metadata elements developed by both LC and AES.  AMD is an interim schema being used 
			until a final extension schema is adopted.  AUDIOMD and AUDIOSRC both complex types named "audioType" 
			and contain 4 top-level elements and 2 attributes,
		        	ID: (XML ID)
        			ANALOGDIGITALFLAG:  A major indicator of the type of audio object i.e Analog, PhysDigital, or FileDigital.
    </xs:documentation>
	</xs:annotation>
	<xs:complexType name="audioType">
		<xs:annotation>
			<xs:documentation>audioType: complexType for encapsulating and organizing within a singleparent element 
				the individual audio metadata elements that describe an object or portion of an object.  The four individual 
				elements that comprise an audio object are documented under their corresponding types.</xs:documentation>
		</xs:annotation>
		<xs:sequence>
			<xs:element name="file_data" type="file_dataType" minOccurs="0"/>
			<xs:element name="physical_data" type="physical_dataType" minOccurs="0"/>
			<xs:element name="audio_info" type="audio_infoType" minOccurs="0"/>
			<xs:element name="calibration_info" type="calibrationType" minOccurs="0"/>
		</xs:sequence>
		<xs:attribute name="ID" type="xs:ID"/>
		<xs:attribute name="ANALOGDIGITALFLAG" use="required">
			<xs:simpleType>
				<xs:restriction base="xs:NMTOKEN">
					<xs:enumeration value="Analog"/>
					<xs:enumeration value="PhysDigital"/>
					<xs:enumeration value="FileDigital"/>
				</xs:restriction>
			</xs:simpleType>
		</xs:attribute>
	</xs:complexType>
	<xs:complexType name="file_dataType">
		<xs:annotation>
			<xs:documentation>file_data: The file_data element is used to describe technical characteristics of an audio 
				file.</xs:documentation>
		</xs:annotation>
		<xs:sequence>
			<xs:element name="audio_block_size" type="xs:int" minOccurs="0" maxOccurs="unbounded">
				<xs:annotation>
					<xs:documentation>audio_block_size: This is the simple element which provides a place to store the 
						size of an audio block (frame or sample) in bytes.</xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element name="audio_data_encoding" type="xs:string" minOccurs="0" maxOccurs="unbounded">
				<xs:annotation>
					<xs:documentation>audio_data_encoding: This is the simple element which provides a place to store 
						the encoding scheme of audio data,  e.g., pulse code modulation (PCM).</xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element name="bits_per_sample" type="xs:int" minOccurs="0" maxOccurs="unbounded">
				<xs:annotation>
					<xs:documentation>bits_per_sample: This is the simple element which provides a place to store the 
						size of a single digital audio sample in bits.</xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element name="byte_order" minOccurs="0" maxOccurs="unbounded">
				<xs:annotation>
					<xs:documentation>byte_order: This is the simple element which provides a place to store the order 
						of bit significance in a byte from left to right.  i.e. 0-least-to-most, 1-most-to-least.</xs:documentation>
				</xs:annotation>
				<xs:simpleType>
					<xs:restriction base="xs:int">
						<xs:enumeration value="0"/>
						<xs:enumeration value="1"/>
					</xs:restriction>
				</xs:simpleType>
			</xs:element>
			<xs:element name="checksum" type="checksumType" minOccurs="0" maxOccurs="unbounded"/>
			<xs:element name="compression" type="compressionType" minOccurs="0" maxOccurs="unbounded"/>
			<xs:element name="data_rate" type="xs:int" minOccurs="0" maxOccurs="unbounded">
				<xs:annotation>
					<xs:documentation>data-_rate: This is the simple element which provides a place to store the data rate 
						(e.g. 1.5 Mbps, 4Mbps, etc...) of a digital audio file.</xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element name="data_rate_mode" minOccurs="0" maxOccurs="unbounded">
				<xs:annotation>
					<xs:documentation>data_rate_mode: This is the simple element which provides a place to store the data 
						rate mode of the audio file, e.g., fixed or variable.</xs:documentation>
				</xs:annotation>
				<xs:simpleType>
					<xs:restriction base="xs:string">
						<xs:enumeration value="Fixed"/>
						<xs:enumeration value="Variable"/>
					</xs:restriction>
				</xs:simpleType>
			</xs:element>
			<xs:element name="first_sample_offset" type="xs:int" minOccurs="0" maxOccurs="unbounded">
				<xs:annotation>
					<xs:documentation>first_sample_offset: This is the simple element which provides a place to store the 
						location of the first valid sound sample in the file.</xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element name="first_valid_byte_block" type="xs:int" minOccurs="0" maxOccurs="unbounded">
				<xs:annotation>
					<xs:documentation>first_valid_byte_block: This is the simple element which provides a place to store 
						the location of the first valid sound byte in the block.</xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element name="format_name" type="xs:string" minOccurs="0" maxOccurs="unbounded">
				<xs:annotation>
					<xs:documentation>format_name: This is the simple element which provides a place to store the official 
						name for the file format taken from the format documentation,  e.g.  "Broadcast Wave Format" or 
						"Raw".</xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element name="format_note" type="xs:string" minOccurs="0" maxOccurs="unbounded">
				<xs:annotation>
					<xs:documentation>format_note: This is the simple element which provides a place to store application 
						specific information about the audio file.  e.g. SoundForge 5.0, WaveLab 3.0, etc....</xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element name="format_version" type="xs:string" minOccurs="0" maxOccurs="unbounded">
				<xs:annotation>
					<xs:documentation>format_version: This is the simple element which provides a place to store the version 
						of the audio format specified in format_name e.g. for format_name="Broadcast Wave Format" 
						format_version="3.0".</xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element name="last_valid_byte_block" type="xs:int" minOccurs="0" maxOccurs="unbounded">
				<xs:annotation>
					<xs:documentation>last_valid_byte_block: This is the simple element which provides a place to store the 
						location of the last valid sound byte in the block.</xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element name="num_sample_frames" type="xs:int" minOccurs="0" maxOccurs="unbounded">
				<xs:annotation>
					<xs:documentation>num_sample_frames: This is the simple element which provides a place to store the 
						sample point value for a frame in the audio file.</xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element name="sampling_frequency" type="xs:float" minOccurs="0" maxOccurs="unbounded">
				<xs:annotation>
					<xs:documentation>sampling_frequency: This is the simple element which provides a place to store the 
						sampling frequency of a digital audio file.</xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element name="security" type="xs:string" minOccurs="0" maxOccurs="unbounded">
				<xs:annotation>
					<xs:documentation>security: This is the simple element which provides a place to store the type of 
						security precautions applied to the file e.g. password, encryption, hidden, etc.</xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element name="use" minOccurs="0" maxOccurs="unbounded">
				<xs:annotation>
					<xs:documentation>use: This is the simple element which provides a place to store the use of a digital 
						audio file, e.g., Master, Service High, Service Low, Preview.</xs:documentation>
				</xs:annotation>
				<xs:simpleType>
					<xs:restriction base="xs:string">
						<xs:enumeration value="Master"/>
						<xs:enumeration value="Service"/>
						<xs:enumeration value="Service_High"/>
						<xs:enumeration value="Service_Low"/>
						<xs:enumeration value="Preview"/>
					</xs:restriction>
				</xs:simpleType>
			</xs:element>
			<xs:element name="word_size" type="xs:int" minOccurs="0" maxOccurs="unbounded">
				<xs:annotation>
					<xs:documentation>word_size: This is the simple element which provides a place to store the numberof 
						bytes that comprise a single sample of audio data; may be greater than actual significant sample size 
						expressed in bits.</xs:documentation>
				</xs:annotation>
			</xs:element>
		</xs:sequence>
		<xs:attribute name="ID" type="xs:ID"/>
	</xs:complexType>
	<xs:complexType name="physical_dataType">
		<xs:annotation>
			<xs:documentation>physical_data: The physical_data element describes the physical nature of an audio object if 
				it exists as such (i.e. it is not a file).  This will generally apply to analog items but may also be used to describe 
				digital formats such as open reel digital, DAT, ADAT tape, CD-R, etc....</xs:documentation>
		</xs:annotation>
		<xs:sequence>
			<xs:element name="condition" type="xs:string" minOccurs="0" maxOccurs="unbounded">
				<xs:annotation>
					<xs:documentation>condition: This is the simple element which provides a place to store the physical 
						condition of an audio item.</xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element name="dimensions" type="dimensionsType" minOccurs="0" maxOccurs="unbounded"/>
			<xs:element name="disposition" type="xs:string" minOccurs="0" maxOccurs="unbounded">
				<xs:annotation>
					<xs:documentation>disposition: This is the simple element which provides a place to store what became 
						of an audio source item.</xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element name="equalization" type="xs:string" minOccurs="0" maxOccurs="unbounded">
				<xs:annotation>
					<xs:documentation>equalization:This is the simple element which provides a place to store the 
						equalization specifications or characteristics of an audio source item.</xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element name="generation" type="xs:string" minOccurs="0" maxOccurs="unbounded">
				<xs:annotation>
					<xs:documentation>generation: This is the simple element which provides a place to store the generation 
						of an audio source item.</xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element name="groove" type="xs:string" minOccurs="0" maxOccurs="unbounded">
				<xs:annotation>
					<xs:documentation>groove: This is the simple element which provides a place to store the type of disc 
						groove of an audio source item.</xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element name="material" type="materialType" minOccurs="0" maxOccurs="unbounded"/>
			<xs:element name="noise_reduction" type="xs:string" minOccurs="0" maxOccurs="unbounded">
				<xs:annotation>
					<xs:documentation>noise_reduction: This is the simple element which provides a place to store the type 
						of noise reduction used in an audio source item, if any.</xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element name="phys_format" type="xs:string" minOccurs="0" maxOccurs="unbounded">
				<xs:annotation>
					<xs:documentation>phys_format: This is the simple element which provides a place to store the 
						physical format of the audio item.  e.g. reel-to-reel tape, 1/4 inch cassette, etc...</xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element name="speed" type="xs:string" minOccurs="0" maxOccurs="unbounded">
				<xs:annotation>
					<xs:documentation>speed: This is the simple element which provides a place to store the nominal 
						playback speed of an audio source item.</xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element name="speed_adjustment" type="xs:string" minOccurs="0" maxOccurs="unbounded">
				<xs:annotation>
					<xs:documentation>speed_adjustment: This is the simple element which provides a place to store the 
						speed adjustment required to playback an audio source item at its nominal speed.</xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element name="speed_note" type="xs:string" minOccurs="0" maxOccurs="unbounded">
				<xs:annotation>
					<xs:documentation>speed_note: This is the simple element which provides a place to store the 
						miscellaneous information about the speed of an audio source item.</xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element name="track_format" type="xs:string" minOccurs="0" maxOccurs="unbounded">
				<xs:annotation>
					<xs:documentation>track_format: This is the simple element which provides a place to store the track 
						format of an audio source item.</xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element name="tracking" type="trackingType" minOccurs="0" maxOccurs="unbounded"/>
		</xs:sequence>
		<xs:attribute name="ID" type="xs:ID"/>
	</xs:complexType>
	<xs:complexType name="audio_infoType">
		<xs:annotation>
			<xs:documentation>audio_info: The audio_info element is used to describe audio characteristics of an object 
				that not specific to either the physical object or a digital representation.</xs:documentation>
		</xs:annotation>
		<xs:sequence>
			<xs:element name="duration" type="xs:string" minOccurs="0" maxOccurs="unbounded">
				<xs:annotation>
					<xs:documentation>duration: This is the simple element which provides a place to store the 
						duration of a digital audio file.</xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element name="note" type="xs:string" minOccurs="0" maxOccurs="unbounded">
				<xs:annotation>
					<xs:documentation>note: This is the simple element which provides a place to store miscellaneous 
						information about the audio item.  e.g. digital alterations or enhancements to improve 
						quality.</xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element name="num_channels" type="xs:string" minOccurs="0" maxOccurs="unbounded">
				<xs:annotation>
					<xs:documentation>num_channels: This is the simple element which provides a place to store the 
						number of channels of audio in the audio item.  e.g. 1, 2, 5, 6, etc...</xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element name="sound_channel_map" type="sound_channel_mapType" minOccurs="0" maxOccurs="unbounded"/>
			<xs:element name="sound_field" type="xs:string" minOccurs="0" maxOccurs="unbounded">
				<xs:annotation>
					<xs:documentation>sound_field: This is the simple element which provides a place to store the 
						aural space of the item or portion of an item.</xs:documentation>
				</xs:annotation>
			</xs:element>
		</xs:sequence>
		<xs:attribute name="ID" type="xs:ID"/>
	</xs:complexType>
	<xs:complexType name="calibrationType">
		<xs:annotation>
			<xs:documentation>calibrationType: complexType for storing the type of calibration related characteristics of 
				an audio object, regardless of physical or digital format.
				calibrationType has 1 attribute and 4 elements. 
	       	 		ID: (XML ID) 
       	 			- calibration_ext_int: indicates whether the calibration data is within digital audio file or in a separate file; 
		        		- calibration_location: the location of the calibration file if it is external  e.g. URN, URL, etc...; 
        				- calibration_time_stamp: the start time of the calibration file if it is internal  i.e. HH:MM:SSss...;
		        		- calibration_type: defines the type of calibration data.
			</xs:documentation>
		</xs:annotation>
		<xs:sequence>
			<xs:element name="calibration_ext_int" type="xs:string" minOccurs="0"/>
			<xs:element name="calibration_location" type="xs:string" minOccurs="0"/>
			<xs:element name="calibration_time_stamp" type="xs:string" minOccurs="0"/>
			<xs:element name="calibration_track_type" type="xs:string" minOccurs="0"/>
		</xs:sequence>
		<xs:attribute name="ID" type="xs:ID"/>
	</xs:complexType>
	<xs:complexType name="checksumType">
		<xs:annotation>
			<xs:documentation>checksumType: complexType for recording the type of checksum used for a digital audio file.  
				In most cases, this will be an md5 checksum as this is the only checksum allowed within the METS schema.
				checksumType has 1 attribute and 3 elements. 
		        		ID: (XML ID) 
        				- checksum_datetime: datetime the checksum was calculated and applied; 
		        		- checksum_type: the type of checksum used;
        				- checksum_value: the checksum value.
      		</xs:documentation>
		</xs:annotation>
		<xs:sequence>
			<xs:element name="checksum_datetime" type="xs:dateTime" minOccurs="0"/>
			<xs:element name="checksum_type" type="xs:string" minOccurs="0"/>
			<xs:element name="checksum_value" type="xs:string" minOccurs="0"/>
		</xs:sequence>
		<xs:attribute name="ID" type="xs:ID"/>
	</xs:complexType>
	<xs:complexType name="compressionType">
		<xs:annotation>
			<xs:documentation>compressionType: complexType for recording the type of compression used for a digital 
			audio file.
			compressionType has 1 attribute and 3 elements. 
	        		ID: (XML ID) 
       	 		- codec_creator_app: name of the creator of the compression application e.g. SoundForge, etc...; 
        			- codec_creator_app_version: version of the compression application  e.g. 5.0, etc...; 
        			- codec_name: the name of the compression algorithm used e.g. Fraunhofer, Huffman, etc..;
	        		- codec_quality: impact of the  compression on quality  e.g. lossless or lossy.
      		</xs:documentation>
		</xs:annotation>
		<xs:sequence>
			<xs:element name="codec_creator_app" type="xs:string" minOccurs="0"/>
			<xs:element name="codec_creator_app_version" type="xs:string" minOccurs="0"/>
			<xs:element name="codec_name" type="xs:string" minOccurs="0"/>
			<xs:element name="codec_quality" minOccurs="0">
				<xs:simpleType>
					<xs:restriction base="xs:NMTOKEN">
						<xs:enumeration value="lossless"/>
						<xs:enumeration value="lossy"/>
					</xs:restriction>
				</xs:simpleType>
			</xs:element>
		</xs:sequence>
		<xs:attribute name="ID" type="xs:ID"/>
	</xs:complexType>
	<xs:complexType name="dimensionsType">
		<xs:annotation>
			<xs:documentation>dimensionsType: Complex Type for recording the dimensions of an object. 
			dimensionsType has the following attributes:
	        		1. DEPTH: the depth as a floating point number;
       	 		2. DIAMETER: The diameter of a circular item as a floating point number;
        			3. GAUGE: The width of the medium unwound (e.g. tape);
        			4. HEIGHT: The height as a floating point number;
	        		5. LENGTH: The length of the medium unwound (e.g. tape);
       	 		6. NOTE: Miscellaneous information about the dimensions;
        			7. THICKNESS: the thickness of the medium unwound (e.g. tape);
	        		8. UNITS: the unit of measurement;
       	 		9. WIDTH: the width as a floating point number.
			</xs:documentation>
		</xs:annotation>
		<xs:attribute name="DEPTH" type="xs:float"/>
		<xs:attribute name="DIAMETER" type="xs:float"/>
		<xs:attribute name="GAUGE" type="xs:string"/>
		<xs:attribute name="HEIGHT" type="xs:float"/>
		<xs:attribute name="LENGTH" type="xs:string"/>
		<xs:attribute name="NOTE" type="xs:string"/>
		<xs:attribute name="THICKNESS" type="xs:string"/>
		<xs:attribute name="UNITS" type="xs:string"/>
		<xs:attribute name="WIDTH" type="xs:float"/>
	</xs:complexType>
	<xs:complexType name="materialType">
		<xs:annotation>
			<xs:documentation>materialType: Complex Type for recording the physical characteristics of the construction and 
				material of an audio source item.
				materialType has 1 attribute and 6 elements. 
		        		ID: (XML ID)
       		 		- base_material: type of material used in the recording carrier  e.g plastic, glass, vinyl, mylar, etc...
        				- binder: type of adhesive used to bind the recording surface to the substrate 
		        		- disc_surface: the type of recording surface aluminium, celluloid etc..
        				- oxide: type of oxide used on the recording surface,  e.g. cobalt, chromium dioxide, ferrous oxide
		        		- reflective_layer: type of material used on the recording surface, e.g. dye, tellurium-selenium alloy, etc..
        				- stock_brand: name of the manufacturer of the recording medium, e.g. Scotch, Maxell, Sony, etc...
      		</xs:documentation>
		</xs:annotation>
		<xs:sequence>
			<xs:element name="base_material" type="xs:string" minOccurs="0"/>
			<xs:element name="binder" type="xs:string" minOccurs="0"/>
			<xs:element name="disc_surface" type="xs:string" minOccurs="0"/>
			<xs:element name="oxide" type="xs:string" minOccurs="0"/>
			<xs:element name="reflective_layer" type="xs:string" minOccurs="0"/>
			<xs:element name="stock_brand" type="xs:string" minOccurs="0"/>
		</xs:sequence>
		<xs:attribute name="ID" type="xs:ID"/>
	</xs:complexType>
	<xs:complexType name="sound_channel_mapType">
		<xs:annotation>
			<xs:documentation>sound_channel_mapType:  Complex type for describing the aural layout of any audio tracks.  
				The sound_channel_map element is used to wrap any number of channel_assignment elements.  This 
				structure is used to describe the relationship of sound channels to their destination.  Generally, the destination 
				will be a location on the sound stage though it could also be something more specialized such as a time code 
				reader or even the channels of a mixing board.  The channel_assignment element maps a sound channel to 
				its destination.  There are 2 required attributes. The channe_num identifies the sound channel of this audio 
				object. Note that the first channel_num is 0 while each subsequent channel is incremented by 1.  
				The map_location attribute specifies the destination.</xs:documentation>
		</xs:annotation>
		<xs:sequence>
			<xs:element name="channel_assignment" minOccurs="0">
				<xs:complexType>
					<xs:attribute name="CHANNELNUM" type="xs:nonNegativeInteger"/>
					<xs:attribute name="MAPLOCATION" type="xs:string"/>
				</xs:complexType>
			</xs:element>
		</xs:sequence>
	</xs:complexType>
	<xs:complexType name="trackingType">
		<xs:annotation>
			<xs:documentation>trackingType: Complex Type for recording tracking information about an audio source item.  
			trackingType has 1 attribute and 2 elements. 
        			ID: (XML ID) 
				- tracking_type: The type of tracking code, e.g., MAVIS number, actual shelf numbers, bar-code, etc.;
	        		- tracking_value: Shelf number or other identifier for source, e.g., MAVIS number, actual shelf numbers, etc..
      		</xs:documentation>
		</xs:annotation>
		<xs:sequence>
			<xs:element name="tracking_type" type="xs:string" minOccurs="0"/>
			<xs:element name="tracking_value" type="xs:string" minOccurs="0"/>
		</xs:sequence>
		<xs:attribute name="ID" type="xs:ID"/>
	</xs:complexType>
</xs:schema>
