<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:pcmm="http://www.cablelabs.com/PCMM/1.0/xsd/reg/CLAB-PCMM-WS-I02" xmlns:tns="http://www.cablelabs.com/PCMM/1.0/xsd/reg/CLAB-PCMM-WS-I02" targetNamespace="http://www.cablelabs.com/PCMM/1.0/xsd/reg/CLAB-PCMM-WS-I02" elementFormDefault="qualified" attributeFormDefault="unqualified">
    <xs:simpleType name="IPPortNumber">
        <xs:restriction base="xs:nonNegativeInteger">
            <xs:minInclusive value="0"/>
            <xs:maxInclusive value="65535"/>
        </xs:restriction>
    </xs:simpleType>
    <xs:simpleType name="IPv4Address">
        <xs:restriction base="xs:string">
            <xs:pattern value="(([0-9]{1,2}|[1][0-9]{2}|[2][0-4][0-9]|[2][5][0-5])\.){3}([0-9]{1,2}|[1][0-9]{2}|[2][0-4][0-9]|[2][5][0-5])"/>
        </xs:restriction>
    </xs:simpleType>
    <xs:simpleType name="IPv6Address">
        <xs:annotation>
            <xs:documentation>An IPv6 Address in string format (See RFC 1884, sec 2.2)</xs:documentation>
        </xs:annotation>
        <xs:restriction base="xs:string">
            <xs:minLength value="0"/>
            <xs:maxLength value="39"/>
        </xs:restriction>
    </xs:simpleType>
    <xs:simpleType name="MACAddress">
        <xs:restriction base="xs:hexBinary">
            <xs:length value="6"/>
        </xs:restriction>
    </xs:simpleType>
    <xs:simpleType name="CorrelationKeyType">
        <xs:annotation>
            <xs:documentation>An Opaque type used to communicate correlation keys.</xs:documentation> 
        </xs:annotation>
        <xs:restriction base="xs:hexBinary" /> 
    </xs:simpleType> 
    <xs:simpleType name="IPHostname">
        <xs:restriction base="xs:string">
            <xs:maxLength value="256"/>
        </xs:restriction>
    </xs:simpleType>
    <xs:complexType name="IPAddress">
        <xs:sequence>
            <xs:choice>
                <xs:element name="ipv4" type="tns:IPv4Address"/>
            </xs:choice>
        </xs:sequence>
    </xs:complexType>
    <!--=========
        Direction
        =========  -->
    <xs:simpleType name="Direction">
        <xs:restriction base="xs:string">
            <xs:enumeration value="upstream"/>
            <xs:enumeration value="downstream"/>
            <xs:enumeration value="bidirectional"/>
        </xs:restriction>
    </xs:simpleType>
    <!--=========
        Classifier
        =========  -->

    <xs:complexType name="IPv4Classifier">
        <xs:sequence>
            <xs:element name="protocol" default="0" minOccurs="0">
                <xs:simpleType>
                    <xs:restriction base="xs:int">
                        <xs:minInclusive value="0"/>
                        <xs:maxInclusive value="257"/>
                    </xs:restriction>
                </xs:simpleType>
            </xs:element>
            <xs:element name="sourceIpAddress" type="tns:IPv4Address" default="0.0.0.0" minOccurs="0"/>
            <xs:element name="sourceIpMask" type="tns:IPv4Address" default="255.255.255.255" minOccurs="0"/>
            <xs:element name="sourcePortStart" type="tns:IPPortNumber" default="0" minOccurs="0"/>
            <xs:element name="sourcePortEnd" type="tns:IPPortNumber" default="65535" minOccurs="0"/>
            <xs:element name="destinationIpAddress" type="tns:IPv4Address" default="0.0.0.0" minOccurs="0"/>
            <xs:element name="destinationIpMask" type="tns:IPv4Address" default="255.255.255.255" minOccurs="0"/>
            <xs:element name="destinationPortStart" type="tns:IPPortNumber" default="0" minOccurs="0"/>
            <xs:element name="destinationPortEnd" type="tns:IPPortNumber" default="65535" 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="IPv6Classifier">
        <xs:sequence>
            <xs:element name="nextHeader" default="0">
                <xs:annotation>
                    <xs:documentation>This field in IPv6 represents the next protocol header type value and has a similar function to the protocol type value in IPv4</xs:documentation>
                </xs:annotation>
                <xs:simpleType>
                    <xs:restriction base="xs:int">
                        <xs:minInclusive value="0"/>
                        <xs:maxInclusive value="257"/>
                    </xs:restriction>
                </xs:simpleType>
            </xs:element>
            <xs:element name="sourceIpAddress" type="tns:IPv6Address"/>
            <xs:element name="sourcePrefixLen" default="128" minOccurs="0">
                <xs:simpleType>
                    <xs:restriction base="xs:int">
                        <xs:minInclusive value="0"/>
                        <xs:maxInclusive value="128"/>
                    </xs:restriction>
                </xs:simpleType>
            </xs:element>
            <xs:element name="sourcePortStart" type="tns:IPPortNumber" default="0" minOccurs="0"/>
            <xs:element name="sourcePortEnd" type="tns:IPPortNumber" default="65535" minOccurs="0"/>
            <xs:element name="destinationIpAddress" type="tns:IPv6Address"/>
            <xs:element name="destinationPrefixLen" default="128" minOccurs="0">
                <xs:simpleType>
                    <xs:restriction base="xs:int">
                        <xs:minInclusive value="0"/>
                        <xs:maxInclusive value="128"/>
                    </xs:restriction>
                </xs:simpleType>
            </xs:element>
            <xs:element name="destinationPortStart" type="tns:IPPortNumber" default="0" minOccurs="0"/>
            <xs:element name="destinationPortEnd" type="tns:IPPortNumber" default="65535" minOccurs="0"/>
            <xs:element name="trafficClassLow" default="0" minOccurs="0">
                <xs:simpleType>
                    <xs:restriction base="xs:int">
                        <xs:minInclusive value="0"/>
                        <xs:maxInclusive value="255"/>
                    </xs:restriction>
                </xs:simpleType>
            </xs:element>
            <xs:element name="trafficClassHigh" default="255" minOccurs="0">
                <xs:simpleType>
                    <xs:restriction base="xs:int">
                        <xs:minInclusive value="0"/>
                        <xs:maxInclusive value="255"/>
                    </xs:restriction>
                </xs:simpleType>
            </xs:element>
            <xs:element name="trafficClassMask" default="255" minOccurs="0">
                <xs:simpleType>
                    <xs:restriction base="xs:int">
                        <xs:minInclusive value="0"/>
                        <xs:maxInclusive value="255"/>
                    </xs:restriction>
                </xs:simpleType>
            </xs:element>
            <xs:element name="flowLabel" default="0" minOccurs="0">
                <xs:simpleType>
                    <xs:restriction base="xs:int">
                        <xs:minInclusive value="0"/>
                        <xs:maxInclusive value="1048576"/>
                    </xs:restriction>
                </xs:simpleType>
            </xs:element>
            <xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
        </xs:sequence>
        <xs:anyAttribute namespace="##any" processContents="lax"/>
    </xs:complexType>
    <xs:complexType name="Classifier">
        <xs:annotation>
            <xs:documentation>The Classifier element allows the AS to identify the traffic flow for which it is requesting resources for. (Section 6.2.1.3)</xs:documentation>
        </xs:annotation>
        <xs:sequence>
            <xs:choice>
                <xs:element name="IPv4Classifier" type="tns:IPv4Classifier"/>
                <xs:element name="IPv6Classifier" type="tns:IPv6Classifier"/>
            </xs:choice>
            <xs:any namespace="##any" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
        </xs:sequence>
        <xs:anyAttribute namespace="##any" processContents="lax"/>
    </xs:complexType>    <!--=========
        ContextID
        =========  -->
    <xs:complexType name="ContextID">
        <xs:annotation>
            <xs:documentation>
The ContextID element is the identifier that associates the resources of a given session. The ContextID element consists of a baseId element and optional idExtension elements. (Section 6.2.1.4)
            </xs:documentation>
        </xs:annotation>
        <xs:sequence>
            <xs:element name="idExtension" type="xs:string" minOccurs="0" maxOccurs="unbounded"/>
            <xs:element name="baseId" type="xs:string"/>
            <xs:any namespace="##any" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
        </xs:sequence>
        <xs:attribute name="wildcard" type="xs:boolean" use="optional" default="false"/>
        <xs:anyAttribute namespace="##any" processContents="lax"/>
    </xs:complexType>
    <!--=========
        ContextInfo
        =========  -->
    <xs:complexType name="ContextInfo">
        <xs:annotation>
            <xs:documentation>
The ContextInfo element contains the ContextID element, described in 6.2.1.4, and the element ContextStatus, which identifies the status of the associated PacketCable Multimedia gates for the session. A context can be in a reserved or committed state.
            </xs:documentation>
        </xs:annotation>
        <xs:sequence>
            <xs:element name="contextId" type="tns:ContextID"/>
            <xs:element ref="tns:ContextStatus" maxOccurs="unbounded"/>
            <xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
        </xs:sequence>
        <xs:anyAttribute namespace="##any" processContents="lax"/>
    </xs:complexType>
    <xs:complexType name="ContextStatus">
        <xs:sequence>
            <xs:element name="status" type="tns:QoSStatus"/>
            <xs:element name="direction" type="tns:Direction"/>
            <xs:any namespace="##any" processContents="lax" minOccurs="0"
                    maxOccurs="unbounded"/>
        </xs:sequence>
        <xs:anyAttribute namespace="##any" processContents="lax"/>
    </xs:complexType>
    <xs:simpleType name="QoSStatus">
        <xs:restriction base="xs:string">
            <xs:enumeration value="reserved"/>
            <xs:enumeration value="committed"/>
            <xs:enumeration value="unknown"/>
        </xs:restriction>
    </xs:simpleType>
    <!--=========
        QosChangeEvent
        =========  -->
    <xs:complexType name="QosChangeEvent">
        <xs:sequence>
            <xs:element name="direction" type="tns:Direction"/>
            <xs:element name="changeType">
                <xs:simpleType>
                    <xs:restriction base="xs:string">
                        <xs:enumeration value="Idle"/>
                        <xs:enumeration value="Authorized"/>
                        <xs:enumeration value="Reserved"/>
                        <xs:enumeration value="Committed"/>
                        <xs:enumeration value="Committed-Recovery"/>
                    </xs:restriction>
                </xs:simpleType>
            </xs:element>
            <xs:element name="reason">
                <xs:simpleType>
                    <xs:restriction base="xs:string">
                        <xs:pattern value="[0-9]{5}"/>
                    </xs:restriction>
                </xs:simpleType>
            </xs:element>
            <!-- xs:element name="message" type="xs:string" minOccurs="0"/ -->
            <xs:any namespace="##any" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
        </xs:sequence>
        <xs:anyAttribute namespace="##any" processContents="lax"/>
    </xs:complexType>
    <!--=========
        ServiceName
        =========  -->
    <xs:simpleType name="ServiceName">
        <xs:restriction base="xs:string">
            <xs:maxLength value="255"/>
        </xs:restriction>
    </xs:simpleType>
    <!--=========
        SubscriberID
        =========  -->
    <xs:complexType name="SubscriberID">
        <xs:annotation>
            <xs:documentation>  
            Identifies the network boundary address for the subscriber. See subscriber ID in PKT-SP-MM-I03-102909 [MM].
            </xs:documentation>
        </xs:annotation>
        <xs:sequence>
            <xs:choice>
                <xs:element name="IPv4Address" type="tns:IPv4Address"/>
                <xs:element name="hostname" type="tns:IPHostname"/>
                <xs:element name="IPv6Address" type="tns:IPv6Address"/>
                <xs:element name="MACAddress" type="tns:MACAddress"/>
            </xs:choice>
            <xs:any namespace="##any" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
        </xs:sequence>
        <xs:anyAttribute namespace="##any" processContents="lax"/>
    </xs:complexType>
    <!--=========
        Timeout
        =========  -->
    <xs:simpleType name="Timeout">
        <xs:restriction base="xs:integer"/>
    </xs:simpleType>
    <!--=========
        TimeUsageLimit
        =========  -->
    <xs:simpleType name="TimeUsageLimit">
        <xs:annotation>
            <xs:documentation>
The TimeUsageLimit is specified in seconds. This element also has a 'direction' attribute indicating whether the limit is for the upstream or downstream directions or for both direction.
            </xs:documentation>
        </xs:annotation>
        <xs:restriction base="xs:integer"/>
    </xs:simpleType>
    <!--=========
        TrafficProfile
        =========  -->
    <xs:simpleType name="TrafficProfileBandwidth">
        <xs:restriction base="xs:float"/>
    </xs:simpleType>
    <xs:complexType name="TrafficProfileFlowSpec">
        <xs:sequence>
            <xs:element name="serviceNumber">
                <xs:simpleType>
                    <xs:restriction base="xs:int">
                        <xs:enumeration value="2"/>
                        <xs:enumeration value="5"/>
                    </xs:restriction>
                </xs:simpleType>
            </xs:element>
            <xs:element name="bucketRate" type="xs:float"/>
            <xs:element name="bucketDepth" type="xs:float"/>
            <xs:element name="peakRate" type="xs:float"/>
            <xs:element name="maxDatagramSize" type="xs:integer"/>
            <xs:element name="minPolicedUnit" type="xs:integer"/>
            <xs:element name="reservedRate" type="xs:float"/>
            <xs:element name="slackTerm" type="xs:integer"/>
            <xs:any namespace="##any" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
        </xs:sequence>
    </xs:complexType>
    <xs:simpleType name="TrafficProfileTrafficClass">
        <xs:restriction base="xs:string">
            <xs:enumeration value="NetworkControl"/>
            <xs:enumeration value="StreamingControl"/>
            <xs:enumeration value="Voice"/>
            <xs:enumeration value="AV"/>
            <xs:enumeration value="Data"/>
            <xs:enumeration value="Audio"/>
            <xs:enumeration value="Images"/>
            <xs:enumeration value="Gaming"/>
            <xs:enumeration value="Other"/>
            <xs:enumeration value="Background"/>
        </xs:restriction>
    </xs:simpleType>
    <xs:simpleType name="TrafficProfilePriority">
        <xs:restriction base="xs:int">
            <xs:minInclusive value="0"/>
            <xs:maxInclusive value="7"/>
        </xs:restriction>
    </xs:simpleType>
    <xs:complexType name="TrafficProfileUpstreamDrop">
        <xs:sequence>
            <xs:any namespace="##any" minOccurs="0" maxOccurs="unbounded"/>
        </xs:sequence>
    </xs:complexType>
    <xs:complexType name="TrafficProfile">
        <xs:sequence>
            <xs:element name="priority" type="tns:TrafficProfilePriority" default="0" minOccurs="0"/>
            <xs:element name="direction" type="tns:Direction"/>
            <xs:choice>
                <xs:element name="bandwidth" type="tns:TrafficProfileBandwidth"/>
                <xs:element name="trafficClass" type="tns:TrafficProfileTrafficClass"/>
                <xs:element name="flowSpec" type="tns:TrafficProfileFlowSpec"/>
                <xs:element name="upstreamDrop" type="tns:TrafficProfileUpstreamDrop"/>
            </xs:choice>

            <xs:any namespace="##any" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
        </xs:sequence>
    </xs:complexType>
    <!--=========
        UserName
        =========  -->
    <xs:simpleType name="UserName">
        <xs:annotation>
            <xs:documentation>
An identifier for the subscriber using a service
            </xs:documentation>
        </xs:annotation>
        <xs:restriction base="xs:string">
            <xs:maxLength value="256"/>
        </xs:restriction>
    </xs:simpleType>
    <!--=========
        VolumeUsageLimit
        =========  -->
    <xs:complexType name="VolumeUsageLimit">
        <xs:sequence>
            <xs:element name="limit" type="xs:integer"/>
            <xs:element name="direction" type="tns:Direction"/>
            <xs:any namespace="##any" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
        </xs:sequence>
    </xs:complexType>
    <!--=========
        ResourceStateNotification
        ========= -->
    <xs:simpleType name="NotificationCause">
        <xs:restriction base="xs:string">
            <xs:enumeration value="Deleted"/>
            <xs:enumeration value="Partially Deleted"/>
            <xs:enumeration value="Informational"/>
        </xs:restriction>
    </xs:simpleType>
    <xs:complexType name="ResourceStateNotification">
        <xs:sequence>
            <xs:element name="contextID" type="tns:ContextID"/>
            <xs:element name="cause" type="tns:NotificationCause"/>
            <xs:element name="statusChange" type="tns:QosChangeEvent" minOccurs="0"/>
        </xs:sequence>
    </xs:complexType>
    <xs:complexType name="PCMMFault">
        <xs:sequence>
            <xs:element name="error-code" type="xs:string"/>
            <xs:element name="error-type" type="xs:string"/>
            <xs:element name="error-message" type="xs:string"/>
        </xs:sequence>
    </xs:complexType>
    <!--=========
        Global element declarations
        =========  -->
    <xs:element name="AppCorrelationKey" type="tns:CorrelationKeyType"/>
    <xs:element name="AMCorrelationKey" type="tns:CorrelationKeyType"/>
    <xs:element name="QosChangeEvent" type="tns:QosChangeEvent"/>
    <xs:element name="PCMMFault" type="tns:PCMMFault"/>
    <xs:element name="ContextStatus" type="tns:ContextStatus"/>
    <!--=========
        WSDL message type definitions
        ========= -->
    <xs:element name="ReserveResourcesReq">
        <xs:complexType>
            <xs:sequence>
                <xs:element name="SubscriberID" type="pcmm:SubscriberID"/>
                <xs:element name="ServiceName" type="pcmm:ServiceName"/>
                <xs:element name="ContextID" type="pcmm:ContextID" minOccurs="0"/>
                <xs:element name="Classifier" type="pcmm:Classifier" minOccurs="0"/>
                <xs:element name="TrafficProfile" type="pcmm:TrafficProfile" minOccurs="0" maxOccurs="unbounded"/>
                <xs:element name="VolumeUsageLimit" type="pcmm:VolumeUsageLimit" minOccurs="0" maxOccurs="unbounded"/>
                <xs:element name="TimeUsageLimit" type="pcmm:TimeUsageLimit" minOccurs="0"/>
                <xs:element name="Timeout" type="pcmm:Timeout" minOccurs="0"/>
                <xs:element name="UserName" type="pcmm:UserName" minOccurs="0"/>
                <xs:element ref="tns:AppCorrelationKey" minOccurs="0"/>
                <xs:element name="Extension" minOccurs="0" >
                    <xs:complexType>
                        <xs:sequence>
                            <xs:any namespace="##any" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
                        </xs:sequence>
                        <xs:anyAttribute namespace="##any" processContents="lax"/>
                    </xs:complexType>
                </xs:element>
                <xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
            </xs:sequence>
        </xs:complexType>
    </xs:element>
    <xs:element name="ReserveResourcesRsp">
        <xs:complexType>
            <xs:sequence>
                <xs:element name="ContextID" type="pcmm:ContextID"/>
                <xs:element ref="tns:AMCorrelationKey" minOccurs="0"/>
                <xs:element name="Extension" minOccurs="0" >
                    <xs:complexType>
                        <xs:sequence>
                            <xs:any namespace="##any" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
                        </xs:sequence>
                        <xs:anyAttribute namespace="##any" processContents="lax"/>
                    </xs:complexType>
                </xs:element>
                <xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
            </xs:sequence>
        </xs:complexType>
    </xs:element>
    <xs:element name="CommitResourcesReq">
        <xs:complexType>
            <xs:sequence>
                <xs:element name="SubscriberID" type="pcmm:SubscriberID"/>
                <xs:element name="ServiceName" type="pcmm:ServiceName"/>
                <xs:element name="ContextID" type="pcmm:ContextID" minOccurs="0"/>
                <xs:element name="Classifier" type="pcmm:Classifier" minOccurs="0"/>
                <xs:element name="TrafficProfile" type="pcmm:TrafficProfile" minOccurs="0" maxOccurs="unbounded"/>
                <xs:element name="VolumeUsageLimit" type="pcmm:VolumeUsageLimit" minOccurs="0" maxOccurs="unbounded"/>
                <xs:element name="TimeUsageLimit" type="pcmm:TimeUsageLimit" minOccurs="0"/>
                <xs:element name="Timeout" type="pcmm:Timeout" minOccurs="0"/>
                <xs:element name="UserName" type="pcmm:UserName" minOccurs="0"/>
                <xs:element ref="tns:AppCorrelationKey" minOccurs="0"/>
                <xs:element name="Extension" minOccurs="0" >
                    <xs:complexType>
                        <xs:sequence>
                            <xs:any namespace="##any" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
                        </xs:sequence>
                        <xs:anyAttribute namespace="##any" processContents="lax"/>
                    </xs:complexType>
                </xs:element>
                <xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
            </xs:sequence>
        </xs:complexType>
    </xs:element>
    <xs:element name="CommitResourcesRsp">
        <xs:complexType>
            <xs:sequence>
                <xs:element name="ContextID" type="pcmm:ContextID"/>
                <xs:element ref="tns:AMCorrelationKey" minOccurs="0"/>
                <xs:element name="Extension" minOccurs="0" >
                    <xs:complexType>
                        <xs:sequence>
                            <xs:any namespace="##any" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
                        </xs:sequence>
                        <xs:anyAttribute namespace="##any" processContents="lax"/>
                    </xs:complexType>
                </xs:element>
                <xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
            </xs:sequence>
        </xs:complexType>
    </xs:element>
    <xs:element name="QueryAvailableServicesReq">
        <xs:complexType>
            <xs:sequence>
                <xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
            </xs:sequence>
        </xs:complexType>
    </xs:element>
    <xs:element name="QueryAvailableServicesRsp">
        <xs:complexType>
            <xs:sequence>
                <xs:element name="ServiceName" type="pcmm:ServiceName" maxOccurs="unbounded"/>
                <xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
            </xs:sequence>
        </xs:complexType>
    </xs:element>
    <xs:element name="ReleaseResourcesReq">
        <xs:complexType>
            <xs:sequence>
                <xs:element name="SubscriberID" type="pcmm:SubscriberID"/>
                <xs:element name="ServiceName" type="pcmm:ServiceName" minOccurs="0"/>
                <xs:element name="ContextID" type="pcmm:ContextID" minOccurs="0"/>
                <xs:element name="UserName" type="pcmm:UserName" minOccurs="0"/>
                <xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
            </xs:sequence>
        </xs:complexType>
    </xs:element>
    <xs:element name="ReleaseResourcesRsp">
        <xs:complexType>
            <xs:sequence>
                <xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
            </xs:sequence>
        </xs:complexType>
    </xs:element>
    <xs:element name="QueryContextsReq">
        <xs:complexType>
            <xs:sequence>
                <xs:element name="SubscriberID" type="pcmm:SubscriberID" minOccurs="0"/>
                <xs:element name="ServiceName" type="pcmm:ServiceName" minOccurs="0"/>
                <xs:element name="ContextID" type="pcmm:ContextID" minOccurs="0"/>
                <xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
            </xs:sequence>
        </xs:complexType>
    </xs:element>
    <xs:element name="QueryContextsRsp">
        <xs:complexType>
            <xs:sequence>
                <xs:element name="ContextInfo" type="pcmm:ContextInfo" minOccurs="0" maxOccurs="unbounded"/>
                <xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
            </xs:sequence>
        </xs:complexType>
    </xs:element>
</xs:schema>

