<?xml version="1.0"?>
<schema targetNamespace="urn:mpeg:maf:Schema:mediastreaming:IPMPINFOextensions:2007"
		xmlns:ipmpinfo-msx="urn:mpeg:maf:Schema:mediastreaming:IPMPINFOextensions:2007"		
		xmlns="http://www.w3.org/2001/XMLSchema" 
		xmlns:dsig="http://www.w3.org/2000/09/xmldsig#" 
		xmlns:rmsaf="urn:mpeg:mpeg21:2003:01-REL-R-NS" 
		xmlns:ipmpinfo="urn:mpeg:mpeg21:2004:01-IPMPINFO-NS" 
		xmlns:mpeg4ipmp="urn:mpeg:mpeg4:IPMPSchema:2002"   
		elementFormDefault="qualified" attributeFormDefault="unqualified" version="0.01">
	<import namespace="http://www.w3.org/2000/09/xmldsig#" schemaLocation="http://www.w3.org/TR/2002/REC-xmldsig-core-20020212/xmldsig-core-schema.xsd"/>
	<import namespace="urn:mpeg:mpeg21:2003:01-REL-R-NS" schemaLocation="http://www.dmpf.org/schemas/rel-r.xsd"/>
	<import namespace="urn:mpeg:mpeg4:IPMPSchema:2002" schemaLocation="http://www.dmpf.org/schemas/mpeg4ipmp.xsd"/>
	<!-- elements-->
	<!--********************************* -->
	<!-- 			ToolBody				   -->
	<!--********************************* -->
	<element name="ToolBody" type="ipmpinfo-msx:ToolBodyType"/>
	<complexType name="ToolBodyType">
		<sequence>
			<choice maxOccurs="unbounded">
				<element ref="ipmpinfo-msx:SingleTool"/>
				<element ref="ipmpinfo-msx:ToolPack"/>
			</choice>
			<element ref="dsig:Signature" minOccurs="0"/>
		</sequence>
	</complexType>
	<element name="ToolPack" type="ipmpinfo-msx:ToolPackType"/>
	<complexType name="ToolPackType">
		<sequence>
			<element ref="ipmpinfo-msx:ToolBodyID"/>
			<element ref="ipmpinfo-msx:DeviceInformation" minOccurs="0"/>
			<element name="ToolPackageType" type="string" minOccurs="0"/>
			<element name="ToolAgent" type="ipmpinfo-msx:ToolAgentType"/>
			<element name="ToolGroup" type="ipmpinfo-msx:ToolGroupType" minOccurs="0"/>
			<element ref="dsig:Signature" minOccurs="0"/>
		</sequence>
	</complexType>
	<element name="ToolAgent" type="ipmpinfo-msx:ToolAgentType"/>
	<complexType name="ToolAgentType">
		<sequence>
			<element name="ToolAgentID" type="anyURI"/>
			<element name="ToolAgentCode" type="base64Binary"/>
			<element ref="dsig:Signature" minOccurs="0"/>
		</sequence>
	</complexType>
	<element name="ToolGroup" type="ipmpinfo-msx:ToolGroupType"/>
	<complexType name="ToolGroupType">
		<sequence>
			<element name="ToolGroupID" type="anyURI"/>
			<element name="ToolGroupCode" type="base64Binary"/>
			<element ref="dsig:Signature" minOccurs="0"/>
		</sequence>
	</complexType>
	<element name="SingleTool" type="ipmpinfo-msx:DRMToolType"/>
	<complexType name="DRMToolType">
		<sequence>
			<element ref="ipmpinfo-msx:ToolBodyID"/>
			<element ref="ipmpinfo-msx:DeviceInformation" minOccurs="0"/>
			<element name="ToolPackageType" type="string" minOccurs="0"/>
			<element name="ToolCode" type="base64Binary"/>
			<element ref="dsig:Signature" minOccurs="0"/>
		</sequence>
	</complexType>
	<complexType name="ToolUpdateType"/>
	<element name="ToolBodyID" type="anyURI"/>
	<!--********************************* -->
	<!-- 		DeviceInformation		   -->
	<!--********************************* -->
	<element name="DeviceInformation" type="ipmpinfo-msx:DeviceType"/>
	<complexType name="DeviceType">
		<complexContent>
			<extension base="mpeg4ipmp:TerminalIDType">
				<sequence>
					<element ref="ipmpinfo-msx:ToolAPI_Config" minOccurs="0" maxOccurs="unbounded"/>
					<element ref="ipmpinfo-msx:Others" minOccurs="0"/>
				</sequence>
			</extension>
		</complexContent>
	</complexType>
	<element name="Others" type="ipmpinfo-msx:OtherTypes"/>
	<complexType name="OtherTypes">
		<sequence>
			<any namespace="##any" processContents="lax"/>
		</sequence>
		<attribute name="ref" type="anyURI" use="required"/>
	</complexType>
	<element name="ToolAPI_Config" type="ipmpinfo-msx:ToolAPI_ConfigType"/>
	<complexType name="ToolAPI_ConfigType">
		<sequence>
			<element name="Instantiation_API_ID" type="anyURI" minOccurs="0"/>
			<element name="Messaging_API_ID" type="anyURI" minOccurs="0"/>
			<element name="OpaqueData" type="hexBinary" minOccurs="0"/>
		</sequence>
	</complexType>
</schema>
