<?xml version="1.0" encoding="UTF-8"?>
<!-- edited with XMLSPY v5 rel. 2 U (http://www.xmlspy.com) by bbc (BBC) -->
<!-- Media Dispatch Protocol 1.0rc3-->
<!-- Peter Brightwell, BBC Reaearch for SMPTE S22, yyyy-mm-dd -->
<xs:schema targetNamespace="http://www.smpte.org/xxx/mdp/xml/http/v1.0rc3/yyyy-mm-dd" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns="http://www.smpte.org/xxx/mdp/xml/http/v1.0rc3/yyyy-mm-dd" elementFormDefault="qualified" attributeFormDefault="unqualified">
	<xs:element name="fileid" type="xs:string">
		<xs:annotation>
			<xs:documentation>ID unique within the transactionid</xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:element name="file">
		<xs:annotation>
			<xs:documentation>Details of a file offered for transfer, being transferred, etc.</xs:documentation>
		</xs:annotation>
		<xs:complexType>
			<xs:all>
				<xs:element ref="fileid"/>
				<xs:element name="pathname" type="xs:string">
					<xs:annotation>
						<xs:documentation>Pathname of file relative to sender/receiver in transferoption</xs:documentation>
					</xs:annotation>
				</xs:element>
				<xs:element name="size" type="xs:nonNegativeInteger" minOccurs="0">
					<xs:annotation>
						<xs:documentation>Size of file in bytes</xs:documentation>
					</xs:annotation>
				</xs:element>
				<xs:element name="mimetype" type="xs:string" default="application/octet-stream" minOccurs="0">
					<xs:annotation>
						<xs:documentation>Mime type/sub-type of file</xs:documentation>
					</xs:annotation>
				</xs:element>
				<xs:element ref="hash" minOccurs="0"/>
				<xs:element name="isencrypted" type="xs:boolean" default="false" minOccurs="0">
					<xs:annotation>
						<xs:documentation>Whether file is encrypted</xs:documentation>
					</xs:annotation>
				</xs:element>
				<xs:element name="mustencrypt" type="xs:boolean" default="true" minOccurs="0">
					<xs:annotation>
						<xs:documentation>Whether transfer must use transferoption with encrypt set to true</xs:documentation>
					</xs:annotation>
				</xs:element>
				<xs:element name="mustauthenticate" type="xs:boolean" default="true" minOccurs="0">
					<xs:annotation>
						<xs:documentation>Whether transfer must use transferoption with authenticate set to true</xs:documentation>
					</xs:annotation>
				</xs:element>
				<xs:element name="mustintegritycheck" type="xs:boolean" default="true" minOccurs="0">
					<xs:annotation>
						<xs:documentation>Whether transfer must use transferoption with integritycheck set to true</xs:documentation>
					</xs:annotation>
				</xs:element>
				<xs:element name="startafter" type="xs:dateTime" minOccurs="0">
					<xs:annotation>
						<xs:documentation>Transfer must be initiated no earlier than this time</xs:documentation>
					</xs:annotation>
				</xs:element>
				<xs:element name="finishbefore" type="xs:dateTime" minOccurs="0">
					<xs:annotation>
						<xs:documentation>Transfer must be initiated no later than this time</xs:documentation>
					</xs:annotation>
				</xs:element>
				<xs:element name="priority" type="xs:integer" default="15" minOccurs="0">
					<xs:annotation>
						<xs:documentation>Transfer priority, lower numbers have higher priorty</xs:documentation>
					</xs:annotation>
				</xs:element>
				<xs:element name="bytestransferred" type="xs:nonNegativeInteger">
					<xs:annotation>
						<xs:documentation>Bytes transferred so far</xs:documentation>
					</xs:annotation>
				</xs:element>
				<xs:element ref="transferwith_list" minOccurs="0"/>
				<xs:element ref="details_list" minOccurs="0"/>
				<xs:element ref="comment_list" minOccurs="0"/>
				<xs:element ref="updated"/>
			</xs:all>
		</xs:complexType>
	</xs:element>
	<xs:element name="manifest">
		<xs:annotation>
			<xs:documentation>Encapsulation of information about an MDP Transaction - root element of Manifest</xs:documentation>
		</xs:annotation>
		<xs:complexType>
			<xs:all>
				<xs:element ref="initiator"/>
				<xs:element ref="target"/>
				<xs:element ref="transactionid"/>
				<xs:element ref="projectid"/>
				<xs:element ref="initiatoragent"/>
				<xs:element ref="targetagent"/>
				<xs:element ref="profile" minOccurs="0"/>
				<xs:element ref="usecase" minOccurs="0"/>
				<xs:element ref="details_list" minOccurs="0"/>
				<xs:element ref="comment_list" minOccurs="0"/>
				<xs:element ref="transferoption_list" minOccurs="0"/>
				<xs:element ref="file_list" minOccurs="0"/>
				<xs:element ref="updated"/>
			</xs:all>
		</xs:complexType>
		<xs:key name="transferoption_key">
			<xs:selector xpath="./transferoption_list/transferoption"/>
			<xs:field xpath="troptid"/>
		</xs:key>
		<xs:keyref name="transferwith_keyref" refer="transferoption_key">
			<xs:selector xpath="./file_list/file/transferwith_list/transferwith"/>
			<xs:field xpath="troptref"/>
		</xs:keyref>
	</xs:element>
	<xs:element name="transferoption">
		<xs:annotation>
			<xs:documentation>Details of an option for transferring files</xs:documentation>
		</xs:annotation>
		<xs:complexType>
			<xs:all>
				<xs:element name="troptid" type="xs:string">
					<xs:annotation>
						<xs:documentation>ID unique within the transactionid</xs:documentation>
					</xs:annotation>
				</xs:element>
				<xs:element ref="direction"/>
				<xs:element ref="protocol"/>
				<xs:element name="sender" type="xs:anyURI" minOccurs="0">
					<xs:annotation>
						<xs:documentation>Base URL of sender endpoint - file pathnames are added to this</xs:documentation>
					</xs:annotation>
				</xs:element>
				<xs:element name="receiver" type="xs:anyURI" minOccurs="0">
					<xs:annotation>
						<xs:documentation>Base URL of receiver endpoint - file pathnames are added to this</xs:documentation>
					</xs:annotation>
				</xs:element>
				<xs:element name="controller" type="xs:string">
					<xs:annotation>
						<xs:documentation>Organization initiating the transfer</xs:documentation>
					</xs:annotation>
				</xs:element>
				<xs:element name="availablefrom" type="xs:dateTime" minOccurs="0">
					<xs:annotation>
						<xs:documentation>Transfer will be initiated no earlier than this time</xs:documentation>
					</xs:annotation>
				</xs:element>
				<xs:element name="availableuntil" type="xs:dateTime" minOccurs="0">
					<xs:annotation>
						<xs:documentation>Transfer will be completed no later than this time</xs:documentation>
					</xs:annotation>
				</xs:element>
				<xs:element name="queryprogress" type="xs:boolean">
					<xs:annotation>
						<xs:documentation>Information about number of bytes transferred can be provided during transfer</xs:documentation>
					</xs:annotation>
				</xs:element>
				<xs:element name="canpause" type="xs:boolean">
					<xs:annotation>
						<xs:documentation>It is possible to pause and restart transfer</xs:documentation>
					</xs:annotation>
				</xs:element>
				<xs:element name="maxsize" type="xs:nonNegativeInteger">
					<xs:annotation>
						<xs:documentation>Transfer will support files of at least 2**maxsize-1 bytes</xs:documentation>
					</xs:annotation>
				</xs:element>
				<xs:element name="encrypt" type="xs:boolean">
					<xs:annotation>
						<xs:documentation>Transfer will be encrypted</xs:documentation>
					</xs:annotation>
				</xs:element>
				<xs:element name="authenticate" type="xs:boolean">
					<xs:annotation>
						<xs:documentation>Transfer will be authenticated</xs:documentation>
					</xs:annotation>
				</xs:element>
				<xs:element name="integritycheck" type="xs:boolean">
					<xs:annotation>
						<xs:documentation>Transfer will check file integrity</xs:documentation>
					</xs:annotation>
				</xs:element>
				<xs:element ref="details_list" minOccurs="0"/>
				<xs:element ref="comment_list" minOccurs="0"/>
				<xs:element ref="updated"/>
			</xs:all>
		</xs:complexType>
	</xs:element>
	<xs:element name="details" type="xs:anyURI">
		<xs:annotation>
			<xs:documentation>Allows a Manifest to reference external details</xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:element name="comment" type="xs:string">
		<xs:annotation>
			<xs:documentation>Human readable comment for use in Manifest and MDP messages</xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:element name="transferwith">
		<xs:annotation>
			<xs:documentation>Which TransferOptions can be used with a File</xs:documentation>
		</xs:annotation>
		<xs:complexType>
			<xs:all>
				<xs:element name="troptref" type="xs:string">
					<xs:annotation>
						<xs:documentation>Must match the troptid of the referenced transferoption</xs:documentation>
					</xs:annotation>
				</xs:element>
				<xs:element name="status">
					<xs:annotation>
						<xs:documentation>Status of the combination of the containing file and referenced transferoption</xs:documentation>
					</xs:annotation>
					<xs:simpleType>
						<xs:restriction base="xs:string">
							<xs:enumeration value="offered"/>
							<xs:enumeration value="accepted"/>
							<xs:enumeration value="rejected"/>
							<xs:enumeration value="in progress"/>
							<xs:enumeration value="paused"/>
							<xs:enumeration value="succeeded"/>
							<xs:enumeration value="failed"/>
						</xs:restriction>
					</xs:simpleType>
				</xs:element>
				<xs:element ref="updated"/>
			</xs:all>
		</xs:complexType>
	</xs:element>
	<xs:element name="updated">
		<xs:annotation>
			<xs:documentation>Information about the most recent update of an element in a manifest  document</xs:documentation>
		</xs:annotation>
		<xs:complexType>
			<xs:all>
				<xs:element name="by" type="xs:string">
					<xs:annotation>
						<xs:documentation>Organization that created or last modified the containing element</xs:documentation>
					</xs:annotation>
				</xs:element>
				<xs:element name="datetime" type="xs:dateTime">
					<xs:annotation>
						<xs:documentation>Time of creation or modification</xs:documentation>
					</xs:annotation>
				</xs:element>
				<xs:element ref="updatereason" minOccurs="0"/>
				<xs:element ref="comment" minOccurs="0"/>
			</xs:all>
		</xs:complexType>
	</xs:element>
	<xs:element name="updatereason" type="xs:string">
		<xs:annotation>
			<xs:documentation>Reason code used in updated properties</xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:element name="comment_list">
		<xs:annotation>
			<xs:documentation>Container element for comments</xs:documentation>
		</xs:annotation>
		<xs:complexType>
			<xs:sequence>
				<xs:element ref="comment" minOccurs="0" maxOccurs="unbounded"/>
			</xs:sequence>
		</xs:complexType>
	</xs:element>
	<xs:element name="details_list">
		<xs:annotation>
			<xs:documentation>Container element for details</xs:documentation>
		</xs:annotation>
		<xs:complexType>
			<xs:sequence>
				<xs:element ref="details" minOccurs="0" maxOccurs="unbounded"/>
			</xs:sequence>
		</xs:complexType>
	</xs:element>
	<xs:element name="transferwith_list">
		<xs:annotation>
			<xs:documentation>Container element for transferwith</xs:documentation>
		</xs:annotation>
		<xs:complexType>
			<xs:sequence>
				<xs:element ref="transferwith" minOccurs="0" maxOccurs="unbounded"/>
			</xs:sequence>
		</xs:complexType>
	</xs:element>
	<xs:element name="transferoption_list">
		<xs:annotation>
			<xs:documentation>Container element for transferoption</xs:documentation>
		</xs:annotation>
		<xs:complexType>
			<xs:sequence>
				<xs:element ref="transferoption" minOccurs="0" maxOccurs="unbounded"/>
			</xs:sequence>
		</xs:complexType>
	</xs:element>
	<xs:element name="file_list">
		<xs:annotation>
			<xs:documentation>Container element for file</xs:documentation>
		</xs:annotation>
		<xs:complexType>
			<xs:sequence>
				<xs:element ref="file" minOccurs="0" maxOccurs="unbounded"/>
			</xs:sequence>
		</xs:complexType>
	</xs:element>
	<xs:element name="fileid_list">
		<xs:annotation>
			<xs:documentation>Container element for fileid</xs:documentation>
		</xs:annotation>
		<xs:complexType>
			<xs:sequence>
				<xs:element ref="fileid" minOccurs="0" maxOccurs="unbounded"/>
			</xs:sequence>
		</xs:complexType>
	</xs:element>
	<xs:element name="capabilities">
		<xs:annotation>
			<xs:documentation>What is supported by an agent</xs:documentation>
		</xs:annotation>
		<xs:complexType>
			<xs:all>
				<xs:element name="agent" type="xs:anyURI">
					<xs:annotation>
						<xs:documentation>Message endpoint of agent whose capabilities are described</xs:documentation>
					</xs:annotation>
				</xs:element>
				<xs:element name="org" type="xs:string" minOccurs="0">
					<xs:annotation>
						<xs:documentation>Organization which the agent is representing </xs:documentation>
					</xs:annotation>
				</xs:element>
				<xs:element ref="profile_list" minOccurs="0"/>
				<xs:element ref="projectid" minOccurs="0"/>
				<xs:element ref="usecase_list" minOccurs="0"/>
				<xs:element ref="mapping_list" minOccurs="0"/>
				<xs:element ref="protocol_list" minOccurs="0"/>
				<xs:element ref="direction_list" minOccurs="0"/>
				<xs:element ref="hashtype_list" minOccurs="0"/>
				<xs:element name="maxmanifestbytes" type="xs:nonNegativeInteger" minOccurs="0">
					<xs:annotation>
						<xs:documentation>Largest supported manifest element, in bytes</xs:documentation>
					</xs:annotation>
				</xs:element>
				<xs:element name="maxfiles" type="xs:nonNegativeInteger" minOccurs="0">
					<xs:annotation>
						<xs:documentation>Maximum number of file elements supported in a manifest</xs:documentation>
					</xs:annotation>
				</xs:element>
				<xs:element name="maxtropts" type="xs:nonNegativeInteger" minOccurs="0">
					<xs:annotation>
						<xs:documentation>Maximum number of transferoption elements supported in a manifest</xs:documentation>
					</xs:annotation>
				</xs:element>
				<xs:element name="pause" type="xs:boolean" minOccurs="0">
					<xs:annotation>
						<xs:documentation>Agent can pause and resume transfers</xs:documentation>
					</xs:annotation>
				</xs:element>
				<xs:element name="stall" type="xs:boolean" minOccurs="0">
					<xs:annotation>
						<xs:documentation>Agent will signal stalled transfers</xs:documentation>
					</xs:annotation>
				</xs:element>
				<xs:element name="maxsize" type="xs:nonNegativeInteger" minOccurs="0">
					<xs:annotation>
						<xs:documentation>Agent supports transfers of at least 2**maxsize-1 bytes</xs:documentation>
					</xs:annotation>
				</xs:element>
				<xs:element name="encrypt" type="xs:boolean" minOccurs="0">
					<xs:annotation>
						<xs:documentation>Agent supports encrypted transfers</xs:documentation>
					</xs:annotation>
				</xs:element>
				<xs:element name="authenticate" type="xs:boolean" minOccurs="0">
					<xs:annotation>
						<xs:documentation>Agent supports authenticated transfers</xs:documentation>
					</xs:annotation>
				</xs:element>
				<xs:element name="integritycheck" type="xs:boolean">
					<xs:annotation>
						<xs:documentation>Agent supports checking of transfer integrity</xs:documentation>
					</xs:annotation>
				</xs:element>
			</xs:all>
		</xs:complexType>
	</xs:element>
	<xs:element name="profile_list">
		<xs:annotation>
			<xs:documentation>Container element for profile</xs:documentation>
		</xs:annotation>
		<xs:complexType>
			<xs:sequence>
				<xs:element ref="profile" minOccurs="0" maxOccurs="unbounded"/>
			</xs:sequence>
		</xs:complexType>
	</xs:element>
	<xs:element name="usecase_list">
		<xs:annotation>
			<xs:documentation>Container element for usecase</xs:documentation>
		</xs:annotation>
		<xs:complexType>
			<xs:sequence>
				<xs:element ref="usecase" minOccurs="0" maxOccurs="unbounded"/>
			</xs:sequence>
		</xs:complexType>
	</xs:element>
	<xs:element name="mapping_list">
		<xs:annotation>
			<xs:documentation>Container element for mapping</xs:documentation>
		</xs:annotation>
		<xs:complexType>
			<xs:sequence>
				<xs:element ref="mapping" minOccurs="0" maxOccurs="unbounded"/>
			</xs:sequence>
		</xs:complexType>
	</xs:element>
	<xs:element name="protocol_list">
		<xs:annotation>
			<xs:documentation>Container element for protocol</xs:documentation>
		</xs:annotation>
		<xs:complexType>
			<xs:sequence>
				<xs:element ref="protocol" minOccurs="0" maxOccurs="unbounded"/>
			</xs:sequence>
		</xs:complexType>
	</xs:element>
	<xs:element name="direction_list">
		<xs:annotation>
			<xs:documentation>Container element for direction</xs:documentation>
		</xs:annotation>
		<xs:complexType>
			<xs:sequence>
				<xs:element ref="direction" minOccurs="0" maxOccurs="unbounded"/>
			</xs:sequence>
		</xs:complexType>
	</xs:element>
	<xs:element name="hashtype_list">
		<xs:annotation>
			<xs:documentation>Container element for hashtype</xs:documentation>
		</xs:annotation>
		<xs:complexType>
			<xs:sequence>
				<xs:element ref="hashtype" minOccurs="0" maxOccurs="unbounded"/>
			</xs:sequence>
		</xs:complexType>
	</xs:element>
	<xs:element name="filetype_list">
		<xs:annotation>
			<xs:documentation>Container element for filetype</xs:documentation>
		</xs:annotation>
		<xs:complexType>
			<xs:sequence>
				<xs:element ref="filetype" minOccurs="0" maxOccurs="unbounded"/>
			</xs:sequence>
		</xs:complexType>
	</xs:element>
	<xs:element name="protocol" type="xs:string">
		<xs:annotation>
			<xs:documentation>Identifier for transfer protocol</xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:element name="direction" type="xs:string">
		<xs:annotation>
			<xs:documentation>Identifier for transfer direction</xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:element name="filetype" type="xs:string">
		<xs:annotation>
			<xs:documentation>Type of file - reserved for future use</xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:element name="hash">
		<xs:annotation>
			<xs:documentation>Details of hash / digest / checksum</xs:documentation>
		</xs:annotation>
		<xs:complexType>
			<xs:all>
				<xs:element name="hashvalue" type="xs:hexBinary">
					<xs:annotation>
						<xs:documentation>Hash value of file</xs:documentation>
					</xs:annotation>
				</xs:element>
				<xs:element ref="hashtype"/>
			</xs:all>
		</xs:complexType>
	</xs:element>
	<xs:element name="hashtype">
		<xs:annotation>
			<xs:documentation>Type of hash algorithm</xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:element name="ok">
		<xs:annotation>
			<xs:documentation>cnf_ok payload</xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:element name="error">
		<xs:annotation>
			<xs:documentation>cnf_error / rpl_error payload</xs:documentation>
		</xs:annotation>
		<xs:complexType>
			<xs:all>
				<xs:element ref="reason"/>
				<xs:element ref="comment" minOccurs="0"/>
			</xs:all>
		</xs:complexType>
	</xs:element>
	<xs:element name="abort">
		<xs:annotation>
			<xs:documentation>cmd_abortingtransaction payload</xs:documentation>
		</xs:annotation>
		<xs:complexType>
			<xs:all>
				<xs:element ref="reason"/>
				<xs:element ref="comment" minOccurs="0"/>
			</xs:all>
		</xs:complexType>
	</xs:element>
	<xs:element name="reason" type="xs:string">
		<xs:annotation>
			<xs:documentation>Reason code used in cnf_ and rpl_ messages</xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:element name="profile" type="xs:string">
		<xs:annotation>
			<xs:documentation>Profile of MDP Transaction</xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:element name="usecase" type="xs:string">
		<xs:annotation>
			<xs:documentation>Logical combination of transaction initiation and transfer direction</xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:element name="mapping" type="xs:string">
		<xs:annotation>
			<xs:documentation>Mapping of the MDP message set</xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:element name="initiator" type="xs:string">
		<xs:annotation>
			<xs:documentation>The organization represented by the initiator agent</xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:element name="target" type="xs:string">
		<xs:annotation>
			<xs:documentation>The organization represented by the target agent</xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:element name="transactionid" type="xs:string">
		<xs:annotation>
			<xs:documentation>ID for transaction, unique within the projectid</xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:element name="projectid" type="xs:string">
		<xs:annotation>
			<xs:documentation>Unique ID for the context</xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:element name="initiatoragent" type="xs:anyURI">
		<xs:annotation>
			<xs:documentation>Message endpoint of the initiator agent</xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:element name="targetagent" type="xs:anyURI">
		<xs:annotation>
			<xs:documentation>Message endpoint of the target agent</xs:documentation>
		</xs:annotation>
	</xs:element>
</xs:schema>
