-- XSD schema extracted from ITU-T H.741.1 (2012) Amd. 1 (01/2013)
<?xml version="1.0" encoding="UTF-8"?>
<schema xmlns:am1=" http://www.itu.int/xml-namespace/itu-t/h.741.1/servicediscovery" 
	xmlns:am2=" http://www.itu.int/xml-namespace/itu-t/h.741.2/datastructure" 
	xmlns="http://www.w3.org/2001/XMLSchema" 
	targetNamespace=" http://www.itu.int/xml-namespace/itu-t/h.741.1/servicediscovery" 
	elementFormDefault="qualified" 
	attributeFormDefault="unqualified">
  <annotation>
    <documentation xml:lang="en"><![CDATA[
      This schema (H.770-v1.xsd) contains the elements to be 
      included in [b-ITU-T H.770] for the discovery of AM services, 
      which are described in Appendix I of H.741.1.doc.
      The namespace of the schema is " http://www.itu.int/xml-namespace/itu-t/h.741.1/servicediscovery", and
      its preferred namespace prefix is "am1".]]>
    </documentation>
  </annotation>
  <import namespace=" http://www.itu.int/xml-namespace/itu-t/h.741.2/datastructureurn:itut:iptv:am:part2:2012" 
	schemaLocation=" http://www.itu.int/xml-namespace/itu-t/h.741.2/H.741.2-v1.xsd"/>
  <import namespace="http://www.w3.org/XML/1998/namespace" schemaLocation="http://www.w3.org/2001/03/xml.xsd"/>
  <!-- ================================================================ -->
  <!-- ================================================================ -->
  <!-- Data Elements for H.741 Part.1 -->
  <!-- ================================================================ -->
  <!-- ================================================================ -->
  <!-- ============================================== -->
  <!-- Elements for the discovery of AM services (Table I.1) -->
  <!-- ============================================== -->
  <element name="AMServiceDiscovery" type="am1:AMServiceDiscoveryType"/>
  <complexType name="AMServiceDiscoveryType">
    <sequence>
      <element name="PermissionOperationModes" type="am1:PermissionLevelType" maxOccurs="unbounded"/>
      <element name="Addresses" type="am1:AddressesType"/>
      <element name="ConfigurationModes" type="am1:ConfigurationModesType"/>
      <element name="MeasurementReportTransportProtocol" type="am1:ProtocolType" maxOccurs="unbounded"/>
      <element name="CryptographicProtocol" type="am1:CryptographicProtocolWithPreferredType" maxOccurs="unbounded"/>
      <element name="Compression" type="am1:CompressionWithPreferredType" minOccurs="0" maxOccurs="unbounded"/>
    </sequence>
    <attribute name="preferred" type="boolean" use="optional" default="false"/>
  </complexType>
  <!-- ============================================== -->
  <simpleType name="PermissionLevelType">
    <restriction base="NMTOKEN">
      <enumeration value="External"/>
      <enumeration value="Internal"/>
      <enumeration value="Hybrid"/>
    </restriction>
  </simpleType>
  <!-- ============================================== -->
  <complexType name="AddressesType">
    <sequence>
      <element name="Unicast" type="am1:UnicastType" minOccurs="0"/>
      <element name="Multicast" type="am1:MulticastType" minOccurs="0"/>
    </sequence>
  </complexType>
  <complexType name="UnicastType">
    <sequence>
      <element name="ConfigRequestAddress" type="am2:URL" minOccurs="0"/>
      <element name="ErrorAddress" type="am2:URL" minOccurs="0"/>
    </sequence>
  </complexType>
  <complexType name="MulticastType">
    <sequence>
      <element name="MulticastHybridAddress" type="am1:MulticastAddressType" minOccurs="0"/>
      <element name="MulticastPushAddress" type="am1:MulticastAddressType" minOccurs="0"/>
      <element name="ErrorAddress" type="am2:URL" minOccurs="0"/>
      <element name="AckAddress" type="am2:URL" minOccurs="0"/>
    </sequence>
  </complexType>
  <complexType name="MulticastAddressType">
    <simpleContent>
      <extension base="am2:IpAddressType">
        <attribute name="port" type="unsignedShort" use="required"/>
        <attribute name="sourceAddress" type="am2:IpAddressType" use="required"/>
      </extension>
    </simpleContent>
  </complexType>
  <!-- ============================================== -->
  <complexType name="ConfigurationModesType">
    <sequence>
      <element name="Push" type="am1:ConfigurationModeType" minOccurs="0"/>
      <element name="Pull" type="am1:ConfigurationModeType" minOccurs="0"/>
      <element name="Hybrid" type="am1:ConfigurationModeType" minOccurs="0"/>
    </sequence>
  </complexType>
  <complexType name="ConfigurationModeType">
    <sequence>
      <element name="TransportProtocol" type="am1:ProtocolType" maxOccurs="unbounded"/>
      <!-- The element name "TransportProtocols" is changed into "TransportProtocol" for consistency with the       -->
    </sequence>
    <attribute name="preferred" type="boolean" use="optional" default="false"/>
  </complexType>
  <complexType name="ProtocolType">
    <simpleContent>
      <extension base="NMTOKEN">
        <attribute name="preferred" type="boolean" use="optional" default="false"/>
      </extension>
    </simpleContent>
  </complexType>
  <!-- ============================================== -->
  <complexType name="CryptographicProtocolWithPreferredType">
    <simpleContent>
      <extension base="am2:CryptographicProtocolType">
        <attribute name="preferred" type="boolean" use="optional" default="false"/>
      </extension>
    </simpleContent>
  </complexType>
  <!-- ============================================== -->
  <complexType name="CompressionWithPreferredType">
    <simpleContent>
      <extension base="am2:CompressionType">
        <attribute name="preferred" type="boolean" use="optional" default="false"/>
      </extension>
    </simpleContent>
  </complexType>
</schema>