<?xml version="1.0" encoding="UTF-8"?>
<!-- ********************************************************************************

    This XML document was originally developed in the course of development of the ISO/IEC
    15938 standard (MPEG-7). This XML document contains either a part of the MPEG-7 schema
    implementation for one or more MPEG-7 tools as specified by the MPEG-7 Requirements or
    MPEG-7 description examples conformant to the MPEG-7 schema.

    ISO/IEC gives users of MPEG-7 free license to this XML document or modifications thereof
    for use in hardware or software products claiming conformance to MPEG-7.

    Those intending to use this XML document in hardware or software products are advised that
    its use may infringe existing patents. The original developers of this XML document and his/her
    company, the subsequent editors and their companies, and ISO/IEC have no liability for use of
    this XML document or modifications thereof in an implementation.

    Copyright is not released for non MPEG-7 conforming products. The organizations who
    contributed to this XML document retain the full right to use the code for their own purpose,
    assign or donate their contribution to a third party and inhibit third parties from using their
    contribution for non MPEG-7 conforming products.

    Copyright (c) 1999-2002 ISO/IEC. 

    This XML document is provided for informative purposes only. If any parts of this XML
    document contradict the normative part of the corresponding standard document then the
    normative part should be used as the definitive specification.

    This notice must be included in all copies or derivative works.
************************************************************************************* -->
<schema xmlns="http://www.w3.org/2001/XMLSchema" xmlns:mpeg7="urn:mpeg:mpeg7:schema:2001" targetNamespace="urn:mpeg:mpeg7:schema:2001" elementFormDefault="qualified" attributeFormDefault="unqualified">
	<annotation>
		<documentation>This schema is composed of a subset of MPEG-7 tools in the proposed MPEG-7 User Description (UD) Profile that are used by the DVB BlueBook A176 Multicast session configuration schema. Global attribute groups are defined first, followed by simple types and then complex types (ordered alphabetically within each category).</documentation>
	</annotation>
	<import namespace="http://www.w3.org/XML/1998/namespace" schemaLocation="./xml_2001.xsd"/>
	<!-- #################################################################### -->
	<annotation>
		<documentation>MODULE 1A. GLOBAL ATTRIBUTE GROUPS</documentation>
	</annotation>
	<!--  Definition of mediaTimeProperty attribute group (ISO/IEC 15938-5: 6.4.16)  -->
	<attributeGroup name="mediaTimePropertyGrp">
		<attribute name="mediaTimeBase" type="mpeg7:xPathRefType" use="optional"/>
		<attribute name="mediaTimeUnit" type="mpeg7:mediaDurationType" use="optional"/>
	</attributeGroup>
	<!-- Definition of referenceGrp attribute group (ISO/IEC 15938-5: 6.2.1) -->
	<attributeGroup name="referenceGrp">
		<attribute name="idref" type="IDREF" use="optional"/>
		<attribute name="xpath" type="mpeg7:xPathRefType" use="optional"/>
		<attribute name="href" type="anyURI" use="optional"/>
	</attributeGroup>
	<!-- Definition of timePropertyGrp attribute group (ISO/IEC 15938-5: 6.4.8) -->
	<attributeGroup name="timePropertyGrp">
		<attribute name="timeBase" type="mpeg7:xPathRefType" use="optional"/>
		<attribute name="timeUnit" type="mpeg7:durationType" use="optional"/>
	</attributeGroup>
	<!-- #################################################################### -->
	<annotation>
		<documentation>MODULE 1B. SIMPLE TYPES</documentation>
	</annotation>
	<!-- definition of basicDuration datatype (ISO/IEC 15938-2) -->
	<simpleType name="basicDurationType">
		<restriction base="string">
			<pattern value="\-?P(\d+D)?(T(\d+H)?(\d+M)?(\d+S)?(\d+N)?(\d{2}f)?)?(\d+F)?((\-|\+)\d{2}:\d{2}Z)?"/>
		</restriction>
	</simpleType>
	<!-- definition of basicTimePoint datatype (ISO/IEC 15938-2) -->
	<simpleType name="basicTimePointType">
		<restriction base="string">
			<pattern value="\-?(\d+(\-\d{2}(\-\d{2})?)?)?(T\d{2}(:\d{2}(:\d{2}(:\d+(\.\d{2})?)?)?)?)?(F\d+)?((\-|\+)\d{2}:\d{2})?"/>
		</restriction>
	</simpleType>
	<!-- Definition of countryCode datatype (ISO/IEC 15938-5: 5.6.3) -->
	<simpleType name="countryCode">
		<restriction base="string">
			<whiteSpace value="collapse"/>
			<pattern value="[a-zA-Z]{2}"/>
		</restriction>
	</simpleType>
	<!-- Definition of duration datatype (ISO/IEC 15938-5: 6.4.4) -->
	<simpleType name="durationType">
		<restriction base="mpeg7:basicDurationType">
			<pattern value="\-?P(\d+D)?(T(\d+H)?(\d+M)?(\d+S)?(\d+N)?)?(\d+F)?((\-|\+)\d{2}:\d{2}Z)?"/>
		</restriction>
	</simpleType>
	<!-- Definition of mediaDuration datatype (ISO/IEC 15938-5: 6.4.12) -->
	<simpleType name="mediaDurationType">
		<restriction base="mpeg7:basicDurationType">
			<pattern value="\-?P(\d+D)?(T(\d+H)?(\d+M)?(\d+S)?(\d+N)?)?(\d+F)?"/>
		</restriction>
	</simpleType>
	<!-- Definition of mediaTimeOffset datatype (ISO/IEC 15938-5: 6.4.14) -->
	<simpleType name="mediaTimeOffsetType">
		<restriction base="mpeg7:basicDurationType">
			<pattern value="\-?P(\d+D)?(T(\d+H)?(\d+M)?(\d+S)?(\d+N)?)?(\d+F)?"/>
		</restriction>
	</simpleType>
	<!-- Definition of mediaTimePoint datatype (ISO/IEC 15938-5: 6.4.11) -->
	<simpleType name="mediaTimePointType">
		<restriction base="mpeg7:basicTimePointType">
			<pattern value="(\-?\d+(\-\d{2}(\-\d{2})?)?)?(T\d{2}(:\d{2}(:\d{2}(:\d+)?)?)?)?(F\d+)?"/>
		</restriction>
	</simpleType>
	<!-- Definition of mimeType datatype (ISO/IEC 15938-5: 5.6.2) -->
	<simpleType name="mimeType">
		<restriction base="string">
			<whiteSpace value="collapse"/>
			<pattern value='[&#x21;-&#x7f;-[\(\)&lt;&gt;@,;:\\"/\[\]\?=]]+/[&#x21;-&#x7f;-[\(\)&lt;&gt;@,;:\\"/\[\]\?=]]+'/>
		</restriction>
	</simpleType>
	<!-- Definition of regionCode datatype (ISO/IEC 15938-5: 5.6.4) -->
	<simpleType name="regionCode">
		<restriction base="string">
			<whiteSpace value="collapse"/>
			<pattern value="[a-zA-Z]{2}(-[a-zA-Z0-9]{1,3})?"/>
		</restriction>
	</simpleType>
	<!-- Definition of termReference datatype (ISO/IEC 15938-5: 7.3.6) -->
	<simpleType name="termReferenceType">
		<union>
			<simpleType>
				<restriction base="NMTOKEN">
					<whiteSpace value="collapse"/>
					<pattern value=":[^:]+:[^:]+"/>
				</restriction>
			</simpleType>
			<simpleType>
				<restriction base="anyURI"/>
			</simpleType>
		</union>
	</simpleType>
	<!-- Definition of timePoint datatype (ISO/IEC 15938-5: 6.4.3) -->
	<simpleType name="timePointType">
		<restriction base="mpeg7:basicTimePointType">
			<pattern value="(\-?\d+(\-\d{2}(\-\d{2})?)?)?(T\d{2}(:\d{2}(:\d{2}(:\d+)?)?)?)?(F\d+)?((\-|\+)\d{2}:\d{2})?"/>
		</restriction>
	</simpleType>
	<!-- Definition of xPathAbsoluteSelector datatype (ISO/IEC 15938-5: 6.2.2) -->
	<simpleType name="xPathAbsoluteSelectorType">
		<restriction base="mpeg7:xPathSelectorType">
			<pattern value="(/|((//|/)(((child::)?((\i\c*:)?(\i\c*|\*)))|\.))*)(\|(/|((//|/)(((child::)?((\i\c*:)?(\i\c*|\*)))|\.))*))*"/>
		</restriction>
	</simpleType>
	<!-- Definition of xPathRef datatype (ISO/IEC 15938-5: 6.2.2) -->
	<simpleType name="xPathRefType">
		<restriction base="mpeg7:xPathType">
			<pattern value="/?((((child::)?((\i\c*:)?(\i\c*)(\[\d+\])?))|\.|(\.\.))/)*((((child::)?((\i\c*:)?(\i\c*)(\[\d+\])?))|\.)|((attribute::|@)((\i\c*:)?(\i\c*|\*))))"/>
		</restriction>
	</simpleType>
	<!-- Definition of xPathSelector datatype (ISO/IEC 15938-5: 6.2.2) -->
	<simpleType name="xPathSelectorType">
		<restriction base="mpeg7:xPathType">
			<pattern value="(/|((//|/)?(((child::)?((\i\c*:)?(\i\c*|\*)))|\.|\.\.)((//|/)(((child::)?((\i\c*:)?(\i\c*|\*)))|\.|\.\.))*))(\|/|((//|/)?(((child::)?((\i\c*:)?(\i\c*|\*)))|\.|\.\.)((//|/)(((child::)?((\i\c*:)?(\i\c*|\*)))|\.|\.\.))*))*"/>
		</restriction>
	</simpleType>
	<!-- Definition of xPath datatype (ISO/IEC 15938-5: 6.2.2) -->
	<simpleType name="xPathType">
		<restriction base="token"/>
	</simpleType>
</schema>
