<?xml version="1.0"?>
<schema xmlns="http://www.w3.org/2001/XMLSchema" targetNamespace="http://www.cablelabs.com/namespaces/CBI/2.0/xsd/CBI" xmlns:CBI="http://www.cablelabs.com/namespaces/CBI/2.0/xsd/CBI" xmlns:ipdr="http://www.ipdr.org/namespaces/ipdr">
    <import namespace="http://www.ipdr.org/namespaces/ipdr" schemaLocation="http://www.ipdr.org/public/IPDRDoc3.5.1.xsd"/>
    <include schemaLocation="http://www.ipdr.org/public/IPDRTypes.xsd"/>
    <element name="AccessDevice">
        <complexType>
            <sequence>
                <element ref="CBI:AccessDeviceType"/>
                <element ref="CBI:AccessDeviceID"/>
            </sequence>
        </complexType>
    </element>
    <element name="AccessSessionCharacteristics">
        <simpleType>
            <restriction base="string"/>
        </simpleType>
    </element>
    <element name="AccessSessionId">
        <simpleType>
            <restriction base="integer"/>
        </simpleType>
    </element>
    <element name="CaseIdentity">
        <simpleType>
            <restriction base="string"/>
        </simpleType>
    </element>
    <element name="Hash">
        <simpleType>
            <restriction base="hexBinary">
                <minLength value="32"/>
            </restriction>
        </simpleType>
    </element>
    <element name="DeviceAddress">
        <simpleType>
            <restriction base="ipdr:macAddress"/>
        </simpleType>
    </element>
    <element name="LocationInformation">
        <simpleType>
            <restriction base="string">
                <enumeration value="home"/>
                <enumeration value="remoteAccess"/>
                <enumeration value="offNetwork"/>
                <enumeration value="other"/>
            </restriction>
        </simpleType>
    </element>
    <element name="MFSystemIdentity">
        <simpleType>
            <restriction base="string"/>
        </simpleType>
    </element>
    <element name="CMTSID">
        <simpleType>
            <restriction base="string"/>
        </simpleType>
    </element>
    <element name="FailureReason">
        <simpleType>
            <restriction base="string">
                <enumeration value="DHCPv4NAK"/>
                <enumeration value="DHCPv4DECLINE"/>
            </restriction>
        </simpleType>
    </element>
    <element name="SignalCaptureFileName">
        <simpleType>
            <restriction base="string"/>
        </simpleType>
    </element>
    <element name="Status">
        <complexType>
            <sequence>
                <element ref="CBI:StatusCode"/>
                <element ref="CBI:StatusDetails" minOccurs="0"/>
            </sequence>
        </complexType>
    </element>
    <element name="SubscriberIdentity">
        <simpleType>
            <restriction base="string"/>
        </simpleType>
    </element>
    <element name="TimeStamp">
        <simpleType>
            <restriction base="ipdr:dateTimeUsec"/>
        </simpleType>
    </element>
    <element name="AccessDeviceType">
        <simpleType>
            <restriction base="string">
                <enumeration value="cm"/>
                <enumeration value="emta"/>
                <enumeration value="dsg"/>
                <enumeration value="other"/>
            </restriction>
        </simpleType>
    </element>
    <element name="LeaseDuration">
        <simpleType>
            <restriction base="nonNegativeInteger"/>
        </simpleType>
    </element>
    <element name="IAPSystemIdentity">
        <simpleType>
            <restriction base="string"/>
        </simpleType>
    </element>
    <element name="AccessDeviceID">
        <simpleType>
            <restriction base="ipdr:macAddress">
                <length value="6"/>
            </restriction>
        </simpleType>
    </element>
    <element name="sourceAddress" type="ipdr:ipAddr"/>
    <element name="destAddress" type="ipdr:ipAddr"/>
    <element name="sourcePort" type="unsignedInt"/>
    <element name="destPort" type="unsignedInt"/>
    <element name="protocol" type="unsignedByte"/>
    <element name="NumPktsSinceLastReport">
        <simpleType>
            <restriction base="unsignedInt"/>
        </simpleType>
    </element>
    <element name="StatusCode">
        <simpleType>
            <restriction base="string">
                <enumeration value="Up"/>
                <enumeration value="Down"/>
                <enumeration value="Unknown"/>
                <enumeration value="Heartbeat"/>
            </restriction>
        </simpleType>
    </element>
    <element name="StatusDetails" type="string"/>
    <element name="PacketSignature">
        <complexType>
            <sequence>
                <element ref="CBI:sourceAddress"/>
                <element ref="CBI:destAddress"/>
                <element ref="CBI:sourcePort"/>
                <element ref="CBI:destPort"/>
                <element ref="CBI:protocol"/>
                <element ref="CBI:NumPktsSinceLastReport"/>
            </sequence>
        </complexType>
    </element>
    <element name="AccessAttempt">
        <complexType>
            <sequence>
                <element ref="CBI:CaseIdentity"/>
                <element ref="CBI:MFSystemIdentity"/>
                <element ref="CBI:TimeStamp"/>
                <element ref="CBI:SubscriberIdentity"/>
                <element ref="CBI:AccessDevice"/>
                <element ref="CBI:CMTSID"/>
                <element ref="CBI:SignalCaptureFileName" minOccurs="1"/>
                <element ref="CBI:Hash" minOccurs="1"/>
            </sequence>
        </complexType>
    </element>
    <element name="AccessAccepted">
        <complexType>
            <sequence>
                <element ref="CBI:CaseIdentity"/>
                <element ref="CBI:MFSystemIdentity"/>
                <element ref="CBI:TimeStamp"/>
                <element ref="CBI:SubscriberIdentity"/>
                <element ref="CBI:AccessDevice"/>
                <element ref="CBI:CMTSID"/>
                <element ref="CBI:DeviceAddress"/>
                <element ref="CBI:AccessSessionId"/>
                <element ref="CBI:AccessSessionCharacteristics"/>
                <element ref="CBI:LocationInformation"/>
                <element ref="CBI:LeaseDuration"/>
                <element ref="CBI:SignalCaptureFileName" minOccurs="1"/>
                <element ref="CBI:Hash" minOccurs="1" maxOccurs="1"/>
            </sequence>
        </complexType>
    </element>
    <element name="AccessFailed">
        <complexType>
            <sequence>
                <element ref="CBI:CaseIdentity"/>
                <element ref="CBI:MFSystemIdentity"/>
                <element ref="CBI:TimeStamp"/>
                <element ref="CBI:SubscriberIdentity"/>
                <element ref="CBI:DeviceAddress"/>
                <element ref="CBI:FailureReason"/>
                <element ref="CBI:SignalCaptureFileName" minOccurs="1"/>
                <element ref="CBI:Hash" minOccurs="0"/>
            </sequence>
        </complexType>
    </element>
    <element name="AccessSessionEnd">
        <complexType>
            <sequence>
                <element ref="CBI:CaseIdentity"/>
                <element ref="CBI:MFSystemIdentity"/>
                <element ref="CBI:TimeStamp"/>
                <element ref="CBI:SubscriberIdentity"/>
                <element ref="CBI:DeviceAddress"/>
                <element ref="CBI:AccessSessionId"/>
                <element ref="CBI:SignalCaptureFileName" minOccurs="1"/>
                <element ref="CBI:Hash" minOccurs="1"/>
            </sequence>
        </complexType>
    </element>
    <element name="PacketDataSummaryReport">
        <complexType>
            <sequence>
                <element ref="CBI:CaseIdentity"/>
                <element ref="CBI:IAPSystemIdentity"/>
                <element ref="CBI:TimeStamp"/>
                <element ref="CBI:AccessSessionId"/>
                <element ref="CBI:PacketSignature" maxOccurs="unbounded"/>
            </sequence>
        </complexType>
    </element>
    <element name="SurveillanceStatusReport">
        <complexType>
            <sequence>
                <element ref="CBI:CaseIdentity"/>
                <element ref="CBI:MFSystemIdentity"/>
                <element ref="CBI:TimeStamp"/>
                <element ref="CBI:AccessSessionId"/>
                <element ref="CBI:Status"/>
            </sequence>
        </complexType>
    </element>
    <element name="CBISMessage">
        <complexType>
            <choice>
                <element ref="CBI:AccessAttempt"/>
                <element ref="CBI:AccessAccepted"/>
                <element ref="CBI:AccessFailed"/>
                <element ref="CBI:AccessSessionEnd"/>
                <element ref="CBI:SurveillanceStatusReport"/>
            </choice>
        </complexType>
    </element>
    <element name="CBISMessages">
        <complexType>
            <sequence>
                <element ref="CBI:CBISMessage" maxOccurs="unbounded"/>
            </sequence>
        </complexType>
    </element>
</schema >