<?xml version="1.0"?>
<schema 
	targetNamespace="urn:mpeg:mpeg21:2006:07-DIDL-NS"
	xmlns:didl="urn:mpeg:mpeg21:2006:07-DIDL-NS" 
	xmlns="http://www.w3.org/2001/XMLSchema" 
	xmlns:didl-msx="urn:mpeg:maf:schema:mediastreaming:DIDLextensions" 
	xmlns:ipmpinfo="urn:mpeg:mpeg21:2004:01-IPMPINFO-NS" 
	xmlns:ipmpdidl="urn:mpeg:mpeg21:2004:01-IPMPDIDL-NS" 
	xmlns:didmodel="urn:mpeg:mpeg21:2002:02-DIDMODEL-NS" 
	xmlns:dii="urn:mpeg:mpeg21:2002:01-DII-NS" 
	xmlns:dsig="http://www.w3.org/2000/09/xmldsig#" 
	xmlns:rel-sx="urn:mpeg:mpeg21:2003:01-REL-SX-NS" 
	xmlns:rel-mx="urn:mpeg:mpeg21:2003:01-REL-MX-NS"
	xmlns:erl="urn:mpeg:mpeg21:2005:01-ERL-NS"
	elementFormDefault="qualified" attributeFormDefault="unqualified" version="0.1">
	<import namespace="urn:mpeg:mpeg21:2002:02-DIDMODEL-NS" schemaLocation="http://www.dmpf.org/schemas/didmodel.xsd"/>
	<import namespace="urn:mpeg:mpeg21:2002:01-DII-NS" schemaLocation="http://www.dmpf.org/schemas/dii.xsd"/>
	<import namespace="urn:mpeg:mpeg21:2004:01-IPMPINFO-NS" schemaLocation="http://www.dmpf.org/schemas/ipmpinfo.xsd"/>
	<import namespace="urn:mpeg:mpeg21:2004:01-IPMPDIDL-NS" schemaLocation="http://www.dmpf.org/schemas/ipmpdidl.xsd"/>
	<import namespace="urn:mpeg:maf:schema:mediastreaming:DIDLextensions" schemaLocation="http://www.dmpf.org/schemas/didl-msx.xsd"/>
	<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-SX-NS" schemaLocation="http://www.dmpf.org/schemas/rel-sx.xsd"/>
	<import namespace="urn:mpeg:mpeg21:2003:01-REL-MX-NS" schemaLocation="http://www.dmpf.org/schemas/rel-mx.xsd"/>
	<import namespace="urn:mpeg:mpeg21:2005:01-ERL-NS" schemaLocation="http://www.dmpf.org/schemas/erl.xsd"/>
	<!--=========================================================-->
	<attributeGroup name="ID_ATTRS">
		<attribute name="id" type="ID" use="optional"/>
	</attributeGroup>
	<element name="DIDL" type="didl:DIDLType"/>
	<complexType name="DIDLType">
		<sequence>
			<element ref="didl:DIDLInfo" minOccurs="0" maxOccurs="unbounded"/>
			<element ref="didmodel:Item"/>
		</sequence>
		<anyAttribute namespace="##other" processContents="lax"/>
	</complexType>
	<element name="DIDLInfo" type="didl:DIDLInfoType"/>
	<complexType name="DIDLInfoType">
		<sequence>
			<element name="DISignature" type="dsig:SignatureType"/>
		</sequence>
	</complexType>
	<element name="Item" type="didl:ItemType" substitutionGroup="didmodel:Item"/>
	<complexType name="ItemType">
		<complexContent>
			<extension base="didmodel:ItemType">
				<sequence>
					<element ref="didmodel:Descriptor" maxOccurs="unbounded"/>
					<choice minOccurs="0" maxOccurs="unbounded">
						<element ref="didmodel:Item"/>
						<element ref="didmodel:Component"/>
					</choice>
					<element ref="didmodel:Presentation" minOccurs="0" maxOccurs="unbounded"/>
				</sequence>
				<attributeGroup ref="didl:ID_ATTRS"/>
			</extension>
		</complexContent>
	</complexType>
	<element name="Descriptor" type="didl:DescriptorType" substitutionGroup="didmodel:Descriptor"/>
	<complexType name="DescriptorType">
		<complexContent>
			<extension base="didmodel:DescriptorType">
				<sequence>
					<element ref="didmodel:Statement"/>
				</sequence>
			</extension>
		</complexContent>
	</complexType>
	<element name="Statement" type="didl:StatementType" substitutionGroup="didmodel:Statement"/>
	<complexType name="StatementType" mixed="true">
		<complexContent mixed="true">
			<extension base="didmodel:StatementType">
				<sequence>
					<choice>
						<element ref="dii:Identifier"/>
						<element ref="dii:RelatedIdentifier"/>
						<element ref="didl-msx:Metadata"/>
						<element ref="ipmpinfo:IPMPGeneralInfoDescriptor"/>
						<element name="ContentElementSignature" type="dsig:SignatureType"/>
						<element name="LaserObject" type="base64Binary"/>
						<element ref="erl:ERR"/>						
					</choice>
				</sequence>
				<attribute name="mimeType" type="string"/>
				<attribute name="ref" type="anyURI"/>
			</extension>
		</complexContent>
	</complexType>
	<element name="Component" type="didl:ComponentType" substitutionGroup="didmodel:Component"/>
	<complexType name="ComponentType">
		<complexContent>
			<extension base="didmodel:ComponentType">
				<sequence>
					<element ref="didmodel:Resource" maxOccurs="unbounded"/>
				</sequence>
			</extension>
		</complexContent>
	</complexType>
	<element name="Resource" type="didl:ResourceType" substitutionGroup="didmodel:Resource"/>
	<complexType name="ResourceType" mixed="true">
		<complexContent mixed="true">
			<extension base="didmodel:ResourceType">
				<sequence>
					<any namespace="##any" processContents="lax" minOccurs="0"/>
				</sequence>
				<attribute name="mimeType" type="string" use="required"/>
				<attribute name="ref" type="anyURI"/>
				<attribute name="encoding" type="string"/>
				<attribute name="contentEncoding" type="NMTOKENS"/>
			</extension>
		</complexContent>
	</complexType>
	<element name="Choice" type="didl:ChoiceType" substitutionGroup="didmodel:Choice"/>
	<complexType name="ChoiceType">
		<complexContent>
			<extension base="didmodel:ChoiceType">
				<sequence>
					<element ref="didmodel:Condition" minOccurs="0" maxOccurs="unbounded"/>
					<element ref="didmodel:Descriptor" minOccurs="0" maxOccurs="unbounded"/>
					<element ref="didmodel:Selection" maxOccurs="unbounded"/>
				</sequence>
				<attribute name="minSelections" type="nonNegativeInteger"/>
				<attribute name="maxSelections" type="positiveInteger"/>
				<attribute name="default" type="IDREFS"/>
				<attribute name="choice_id" type="ID"/>
				<anyAttribute namespace="##other" processContents="lax"/>
			</extension>
		</complexContent>
	</complexType>
	<element name="Selection" type="didl:SelectionType" substitutionGroup="didmodel:Selection"/>
	<complexType name="SelectionType">
		<complexContent>
			<extension base="didmodel:SelectionType">
				<sequence>
					<element ref="didmodel:Condition" minOccurs="0" maxOccurs="unbounded"/>
					<element ref="didmodel:Descriptor" minOccurs="0" maxOccurs="unbounded"/>
				</sequence>
				<attribute name="select_id" type="ID" use="required"/>
				<anyAttribute namespace="##other" processContents="lax"/>
			</extension>
		</complexContent>
	</complexType>
	<element name="Condition" type="didl:ConditionType" substitutionGroup="didmodel:Condition"/>
	<complexType name="ConditionType">
		<complexContent>
			<extension base="didmodel:ConditionType">
				<attribute name="require" type="IDREFS"/>
				<attribute name="except" type="IDREFS"/>
			</extension>
		</complexContent>
	</complexType>
	<element name="Presentation" type="didl:PresentationType" substitutionGroup="didmodel:Presentation"/>
	<complexType name="PresentationType">
		<complexContent>
			<extension base="didmodel:PresentationType">
				<sequence>
					<any namespace="##any" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
				</sequence>
				<attribute name="mimeType" type="string" use="required"/>
				<attribute name="precedence" type="string"/>
				<attribute name="ref" type="anyURI"/>
			</extension>
		</complexContent>
	  </complexType>
</schema>
