<?xml version="1.0" encoding="UTF-8"?>
<xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
targetNamespace="urn:3gpp:ns:mcvideoServiceConfig:1.0"
xmlns:mcvideosc="urn:3gpp:ns:mcvideoServiceConfig:1.0">

<!-- the root element -->
  <xs:element name="service-configuration-info" type="mcvideosc:service-configuration-info-Type"/>

<!-- the root type -->
<!-- this is refined with one or more sub-types -->
  <xs:complexType name="service-configuration-info-Type">
    <xs:sequence>
      <xs:element name="service-configuration-params" type="mcvideosc:service-configuration-params-Type" minOccurs="0"/>
      <xs:element name="anyExt" type="mcvideosc:anyExtType" minOccurs="0"/>
      <xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
     </xs:sequence>
    <xs:anyAttribute namespace="##any" processContents="lax"/>
  </xs:complexType>

<!-- definition of the service-configuration-params-Type subtype-->
  <xs:complexType name="service-configuration-params-Type">
    <xs:sequence>
      <xs:element name="common" type="mcvideosc:commonType" minOccurs="0" maxOccurs="unbounded"/>
      <xs:element name="on-network" type="mcvideosc:on-networkType" minOccurs="0" maxOccurs="unbounded"/>
      <xs:element name="off-network" type="mcvideosc:off-networkType" minOccurs="0" maxOccurs="unbounded"/>
      <xs:element name="anyExt" type="mcvideosc:anyExtType" minOccurs="0"/>
      <xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
    </xs:sequence>
    <xs:attribute name="domain" type="xs:anyURI" use="required"/>
    <xs:anyAttribute namespace="##any" processContents="lax"/>
  </xs:complexType>

  <xs:complexType name="commonType">
    <xs:sequence>
      <xs:element name="min-length-alias" type="xs:unsignedShort" minOccurs="0"/>
      <xs:element name="broadcast-group" type="mcvideosc:broadcast-groupType" minOccurs="0"/>
      <xs:element name="anyExt" type="mcvideosc:anyExtType" minOccurs="0"/>
      <xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
    </xs:sequence>
    <xs:anyAttribute namespace="##any" processContents="lax"/>
  </xs:complexType>

  <xs:complexType name="on-networkType">
    <xs:sequence>
      <xs:element name="signalling-protection" type="mcvideosc:signalling-protectionType" minOccurs="0"/>
      <xs:element name="protection-between-mcvideo-servers" type="mcvideosc:server-protectionType" minOccurs="0"/>
      <xs:element name="anyExt" type="mcvideosc:anyExtType" minOccurs="0"/>
      <xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
    </xs:sequence>
    <xs:anyAttribute namespace="##any" processContents="lax"/>
  </xs:complexType>

  <xs:complexType name="off-networkType">
    <xs:sequence>
      <xs:element name="default-prose-per-packet-priority" type="mcvideosc:default-prose-per-packet-priorityType" minOccurs="0"/>
      <xs:element name="private-call" type="mcvideosc:private-callType" minOccurs="0"/>
      <xs:element name="num-levels-priority-hierarchy" type="mcvideosc:priorityhierarchyType" minOccurs="0"/>
      <xs:element name="anyExt" type="mcvideosc:anyExtType" minOccurs="0"/>
      <xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
    </xs:sequence>
    <xs:anyAttribute namespace="##any" processContents="lax"/>
  </xs:complexType>

  <xs:complexType name="broadcast-groupType">
    <xs:sequence>
      <xs:element name="num-levels-group-hierarchy" type="xs:unsignedShort" minOccurs="0"/>
      <xs:element name="num-levels-user-hierarchy" type="xs:unsignedShort" minOccurs="0"/>
      <xs:element name="anyExt" type="mcvideosc:anyExtType" minOccurs="0"/>
      <xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
    </xs:sequence>
    <xs:anyAttribute namespace="##any" processContents="lax"/>
  </xs:complexType>

  <xs:complexType name="default-prose-per-packet-priorityType">
    <xs:sequence>
      <xs:element name="mcvideo-private-call-signalling" type="xs:unsignedShort" minOccurs="0"/>
      <xs:element name="mcvideo-private-call-media" type="xs:unsignedShort" minOccurs="0"/>
      <xs:element name="mcvideo-emergency-private-call-signalling" type="xs:unsignedShort" minOccurs="0"/>
      <xs:element name="mcvideo-emergency-private-call-media" type="xs:unsignedShort" minOccurs="0"/>
      <xs:element name="anyExt" type="mcvideosc:anyExtType" minOccurs="0"/>
      <xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
    </xs:sequence>
    <xs:anyAttribute namespace="##any" processContents="lax"/>
  </xs:complexType>

  <xs:complexType name="private-callType">
    <xs:sequence>
      <xs:element name="mcvideo-max-duration" type="xs:unsignedShort" minOccurs="0"/>
      <xs:element name="anyExt" type="mcvideosc:anyExtType" minOccurs="0"/>
      <xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
    </xs:sequence>
    <xs:anyAttribute namespace="##any" processContents="lax"/>
  </xs:complexType>

  <xs:simpleType name="priorityhierarchyType">
    <xs:restriction base="xs:unsignedShort">
      <xs:minInclusive value="4"/>
      <xs:maxInclusive value="256"/>
    </xs:restriction>
  </xs:simpleType>

  <xs:complexType name="signalling-protectionType">
    <xs:sequence>
      <xs:element name="confidentiality-protection" type="xs:boolean" minOccurs="0" default="true"/>
      <xs:element name="integrity-protection" type="xs:boolean" minOccurs="0" default="true"/>
      <xs:element name="anyExt" type="mcvideosc:anyExtType" minOccurs="0"/>
      <xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
    </xs:sequence>
    <xs:anyAttribute namespace="##any" processContents="lax"/>
  </xs:complexType>

  <xs:complexType name="server-protectionType">
    <xs:sequence>
      <xs:element name="allow-signalling-protection" type="xs:boolean" minOccurs="0" default="true"/>
      <xs:element name="allow-transmission-control-protection" type="xs:boolean" minOccurs="0" default="true"/>
      <xs:element name="anyExt" type="mcvideosc:anyExtType" minOccurs="0"/>
      <xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
    </xs:sequence>
    <xs:anyAttribute namespace="##any" processContents="lax"/>
  </xs:complexType>

  <xs:complexType name="anyExtType">
    <xs:sequence>
      <xs:any namespace="##any" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
    </xs:sequence>
  </xs:complexType>

</xs:schema>