<?xml version="1.0" encoding="UTF-8"?>
<schema targetNamespace="urn:dmp:idp:mediastreaming:domainprotocol:extensions:2008"
		xmlns:dmp-msdpx="urn:dmp:idp:mediastreaming:domainprotocol:extensions:2008"
		xmlns="http://www.w3.org/2001/XMLSchema"  
		xmlns:dmp-msdx="urn:dmp:idp:mediastreaming:domain:extensions:2008"
		xmlns:msd="urn:mpeg:maf:schema:mediastreaming:domain:2007" 
		xmlns:msdp="urn:mpeg:maf:schema:mediastreaming:domainprotocol:2007" 
		xmlns:msbp="urn:mpeg:maf:schema:mediastreaming:baseprotocol:2007" 
		elementFormDefault="qualified" attributeFormDefault="unqualified">
	<import namespace="urn:mpeg:maf:schema:mediastreaming:domain:2007" schemaLocation="http://www.dmpf.org/schemas/msd.xsd"/>
	<import namespace="urn:mpeg:maf:schema:mediastreaming:domainprotocol:2007" schemaLocation="http://www.dmpf.org/schemas/msdp.xsd"/>
	<import namespace="urn:dmp:idp:mediastreaming:domain:extensions:2008" schemaLocation="http://www.dmpf.org/schemas/dmp-msdx.xsd"/>
	<import namespace="urn:mpeg:maf:schema:mediastreaming:baseprotocol:2007" schemaLocation="http://www.dmpf.org/schemas/msbp.xsd"/>
	<!-- **************************************************************** -->
	<!--                        RequestDomainPublicInfo                   -->
	<!-- **************************************************************** -->
	<element name="RequestDomainPublicInfo" type="dmp-msdpx:RequestDomainPublicInfoType"/>
	<complexType name="RequestDomainPublicInfoType">
		<complexContent>
			<extension base="msdp:DomainProtocolType">
				<sequence>
					<element ref="msd:DomainID"/>
					<element ref="msd:ContentGroupID" minOccurs="0" maxOccurs="unbounded"/>
				</sequence>
			</extension>
		</complexContent>
	</complexType>
	<!-- **************************************************************** -->
	<!--           RequestDomainPublicInfoResponse                   -->
	<!-- **************************************************************** -->
	<element name="RequestDomainPublicInfoResponse" type="dmp-msdpx:RequestDomainPublicInfoResponseType"/>
	<complexType name="RequestDomainPublicInfoResponseType">
		<complexContent>
			<extension base="msdp:DomainProtocolType">
				<sequence>
					<element ref="dmp-msdx:DomainPublicInfo"/>
				</sequence>
			</extension>
		</complexContent>
	</complexType>
	<!-- **************************************************************** -->
	<!--                        AddDomainRequest                          -->
	<!-- **************************************************************** -->
	<element name="AddDomainRequest" type="dmp-msdpx:DomainRelationType"/>
	<complexType name="DomainRelationType">
		<complexContent>
			<extension base="msdp:DomainProtocolType">
				<sequence>
					<element name="ChildDomainID" type="msd:DomainIDType"/>
					<element name="ChildDomainCredentials" type="msd:DomainCredentialType"/>
					<element name="ParentDomainID" type="msd:DomainIDType"/>
					<element name="ParentDomainCredentials" type="msd:DomainCredentialType"/>
				</sequence>
			</extension>
		</complexContent>
	</complexType>
	<!-- **************************************************************** -->
	<!--                        ConnectChildDomain                            -->
	<!-- **************************************************************** -->
	<element name="ConnectChildDomain" type="dmp-msdpx:ConnectChildDomainType"/>
	<complexType name="ConnectChildDomainType">
		<complexContent>
			<extension base="msdp:DomainProtocolType">
				<sequence>
					<element ref="dmp-msdx:ChildDomainInfo"/>
				</sequence>
			</extension>
		</complexContent>
	</complexType>
	<!-- **************************************************************** -->
	<!--                        ConnectParentDomain                          -->
	<!-- **************************************************************** -->
	<element name="ConnectParentDomain" type="dmp-msdpx:ConnectParentDomainType"/>
	<complexType name="ConnectParentDomainType">
		<complexContent>
			<extension base="msdp:DomainProtocolType">
				<sequence>
					<element ref="dmp-msdx:ParentDomainInfo"/>
				</sequence>
			</extension>
		</complexContent>
	</complexType>
	<!-- **************************************************************** -->
	<!--                        UpdateParentDomain                                -->
	<!-- **************************************************************** -->
	<element name="UpdateParentDomain" type="dmp-msdpx:UpdateParentDomainType"/>
	<complexType name="UpdateParentDomainType">
		<complexContent>
			<extension base="msdp:DomainProtocolType">
				<sequence>
					<element name="ParentDomainCredentials" type="msd:DomainCredentialType"/>
					<element ref="dmp-msdx:ChildDomainInfo"/>
				</sequence>
			</extension>
		</complexContent>
	</complexType>
	<!-- **************************************************************** -->
	<!--                        UpdateChildDomain                                -->
	<!-- **************************************************************** -->
	<element name="UpdateChildDomain" type="dmp-msdpx:UpdateChildDomainType"/>
	<complexType name="UpdateChildDomainType">
		<complexContent>
			<extension base="msdp:DomainProtocolType">
				<sequence>
					<element name="ChildDomainID" type="msd:DomainIDType"/>
					<element name="ChildDomainCredentials" type="msd:DomainCredentialType"/>
					<element ref="dmp-msdx:ParentDomainInfo"/>
				</sequence>
			</extension>
		</complexContent>
	</complexType>
	<!-- **************************************************************** -->
	<!--                        LeaveDomainRequest                                -->
	<!-- **************************************************************** -->
	<element name="LeaveDomainRequest" type="dmp-msdpx:DomainRelationType"/>
	<!-- The messages below are not ready yet -->
	<!-- **************************************************************** -->
	<!--                        DisconnectDomain                                -->
	<!-- **************************************************************** -->
	<element name="DisconnectDomain" type="dmp-msdpx:DomainRelationType"/>
	<!-- **************************************************************** -->
	<!--                        ShareDomainRequest                           -->
	<!-- **************************************************************** -->
	<element name="ShareDomainRequest" type="dmp-msdpx:DomainRelationType"/>
	<!-- **************************************************************** -->
	<!--                             ShareDomain                                  -->
	<!-- **************************************************************** -->
	<element name="ShareDomain" type="dmp-msdpx:ShareDomainType"/>
	<complexType name="ShareDomainType">
		<complexContent>
			<extension base="msdp:DomainProtocolType">
				<sequence>
					<element ref="dmp-msdx:DomainManageInfo"/>
				</sequence>
			</extension>
		</complexContent>
	</complexType>
	<!-- **************************************************************** -->
	<!--                         DomainDiscoveryRequest                   -->
	<!-- **************************************************************** -->	
	<element name="DomainDiscoveryRequest" type="dmp-msdpx:DomainDiscoveryRequestType"/>
	<complexType name="DomainDiscoveryRequestType">
		<complexContent>
			<extension base="msdp:DomainProtocolType">
				<sequence minOccurs="0" maxOccurs="unbounded">
					<element name="Condition">
						<complexType>
							<choice minOccurs="0" maxOccurs="unbounded">
								<element ref="msd:DomainID"/>
								<element ref="msd:DeviceID"/>
								<element ref="msd:UserID"/>
							</choice>
						</complexType>
					</element>
				</sequence>
			</extension>
		</complexContent>
	</complexType>
	<!-- **************************************************************** -->
	<!--                         DomainDiscoveryResponse                   -->
	<!-- **************************************************************** -->	
	<element name="DomainDiscoveryResponse" type="dmp-msdpx:DomainDiscoveryResponseType"/>
	<complexType name="DomainDiscoveryResponseType">
		<complexContent>
			<extension base="msdp:DomainProtocolType">
				<sequence>
					<element ref="msd:DomainManagerID"/>
					<element name="Location" type="anyURI" minOccurs="0"/>
					<element ref="msd:DomainID" maxOccurs="unbounded"/>
				</sequence>
			<attribute name="DMDStatus" type="dmp-msdpx:DMDStatusType"/>
			</extension>
		</complexContent>
	</complexType>	
	<simpleType name="DMDStatusType">
		<restriction base="string">
			<enumeration value="BUSY"/>
			<enumeration value="READY"/>
		</restriction>
	</simpleType>		
</schema>
