Data export web service 6.0 response XSD

You can download the XSD file from here: GpnDataExportService60.xsd. The file content is as follows.

 

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

Description : GPN DATA EXPORT WEB SERVICE v4.0

Created     : 11.11.2009

Revision    : 1.1 - 11.11.2009 - Initial
              1.2 - 11.24.2009 - Mobile Extensions Added

********************************************************
-->
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified">

    <!--
    ***************************************************
    Top Level Service Response
    ***************************************************
    -->
    <xs:element name="GpnResponseData" type="CGpnUniversalXmlDocResponse" nillable="true"/>
    <xs:complexType name="CGpnUniversalXmlDocResponse">
        <xs:sequence>
            <!-- Response Status -->
            <xs:element name="Status" type="COpStatusData" minOccurs="0"/>
            <!-- Number of Data Records Contained in the Response -->
            <xs:element name="NumRecords" type="xs:int"/>
            <!-- Availability Data Payload -->
            <xs:element name="Availability" type="AvailabilityType" minOccurs="0"/>
            <!-- Server Time Response Generated -->
            <xs:element name="CurrentTime" type="xs:string" minOccurs="0"/>
            <!-- Response Data Payload -->
            <xs:element name="XmlDocument" type="XmlDocumentType"
                        minOccurs="0"/>            
        </xs:sequence>
    </xs:complexType>

    <!--
    ***************************************************
    Top Level Response Data Payload
    ***************************************************
    -->
    <xs:complexType name="XmlDocumentType">
        <xs:sequence minOccurs="0">
            <xs:element name="GpnResponseData" type="GpnResponseDataType"/>
        </xs:sequence>
    </xs:complexType>

    <!--
    ***************************************************
    Top Level Availability Data Payload
    ***************************************************
    -->
    <xs:complexType name="AvailabilityType">
        <xs:sequence minOccurs="0">
            <xs:element name="STREAMAVAILABLITY" type="GpnStreamAvailabilityDataType"/>
        </xs:sequence>
    </xs:complexType>

    <!--
    ***************************************************
    Response Data Payload Type
    ***************************************************
    -->
    <xs:complexType name="GpnResponseDataType">
        <xs:sequence>
            <!-- Monitor Designator - Reflects Requested Type -->
            <xs:element name="MonitorDesignator" type="MonitorClassDesignatorType"/>
            <!-- Specific Data Schema Type -->
            <xs:choice minOccurs="0" maxOccurs="unbounded">
                <!-- Transaction Test Data Type -->
                <xs:element name="TXTEST" type="TxTestType"/>
                <!-- Transaction Time Group Data Type -->
                <xs:element name="TXTIMEGROUP" type="TxTimegroupType"/>
                <!-- Stream Test Data Type -->
                <xs:element name="STREAMTEST" type="StreamTestType"/>
                <!-- Single Url Test Data Type-->
                <xs:element name="SINGLEURLTEST" type="SingleUrlTestType"/>
                <!-- Data Cut Data Type -->
                <xs:element name="DATACUT" type="DataCutTestType"/>
                <!-- General Message Data Type -->
                <xs:element name="MESSAGE" type="MessageType" minOccurs="0"/>
            </xs:choice>
        </xs:sequence>
    </xs:complexType>

    <!--
    ***************************************************
    Availability Data Payload Type
    ***************************************************
    -->
    <xs:complexType name="GpnStreamAvailabilityDataType">
        <xs:attribute name="mid" type="xs:int"/>
        <xs:attribute name="avail" type="xs:string"/>
        <xs:attribute name="total_count" type="xs:int"/>
        <xs:attribute name="failed_count" type="xs:int"/>
    </xs:complexType>

    <!--
    ***************************************************
    Transaction Timegroup Response Type       
    Applies to Backbone Transactions Only
    ***************************************************
    -->
    <xs:complexType name="TxTimegroupType">
        <xs:attribute name="monitor_id" type="xs:int" use="required"/>
        <xs:attribute name="avail" type="xs:float" use="required"/>
        <xs:attribute name="avgresp" type="xs:float" use="required"/>
        <xs:attribute name="avgDNS" type="xs:float" use="required"/>
        <xs:attribute name="avgConnect" type="xs:float" use="required"/>
        <xs:attribute name="avgFirstByte" type="xs:float" use="required"/>
        <xs:attribute name="avgContent" type="xs:float" use="required"/>
    </xs:complexType>

    <!--
    **************************************
    Transaction Response Type
    *************************************
    -->
    <xs:complexType name="TxTestType">
        <xs:sequence>
            <!-- Mobile Extension Element -->
            <xs:element name="MOBILEEXT" minOccurs="0" maxOccurs="1">
                <xs:complexType>      
                    <xs:attribute name="carrier">
                        <xs:simpleType>
                            <xs:restriction base="xs:string">
                                <xs:maxLength value="200"/>
                            </xs:restriction>
                        </xs:simpleType>
                    </xs:attribute>
                    <xs:attribute name="location">
                        <xs:simpleType>
                            <xs:restriction base="xs:string">
                                <xs:maxLength value="200"/>
                            </xs:restriction>
                        </xs:simpleType>
                    </xs:attribute>
                    <xs:attribute name="connspeed">
                        <xs:simpleType>
                            <xs:restriction base="xs:string">
                                <xs:maxLength value="30"/>
                            </xs:restriction>
                        </xs:simpleType>
                    </xs:attribute>
                    <xs:attribute name="conntype">
                        <xs:simpleType>
                            <xs:restriction base="xs:string">
                                <xs:maxLength value="30"/>
                            </xs:restriction>
                        </xs:simpleType>
                    </xs:attribute>
                    <xs:attribute name="signalstrength" type="xs:int"/>
                    <xs:attribute name="popid" type="xs:int"/>
                </xs:complexType>
            </xs:element>  
            <!-- LM Peer Machine Info -->
            <xs:element name="MACHINEINFO" type="MachineInfo" minOccurs="0" maxOccurs="1"/>
            <!-- Transaction Page Element -->
            <xs:element name="PAGE" minOccurs="0" maxOccurs="unbounded">
                <xs:complexType>
                    <xs:sequence>
                        <!-- Transaction Object Element -->
                        <xs:element name="OBJECT" minOccurs="0"
                                    maxOccurs="unbounded">            
                            <xs:complexType>
                                <!-- LM Object Header  -->
                                <xs:sequence>
                                    <!-- Request Header -->
                                    <xs:element name="OBJECTREQHEADER" type="ObjectHeader"
                                                minOccurs="0" maxOccurs="unbounded"/>
                                    <!-- Response Header -->
                                    <xs:element name="OBJECTRESPEADER" type="ObjectHeader"
                                                minOccurs="0" maxOccurs="unbounded"/>
                                </xs:sequence>
                                <!-- Site Id, For LastMile only -->
                                <xs:attribute name="siteid" type="xs:int" use="optional"/>
                                <!-- Unique Object Sequence Id -->
                                <xs:attribute name="oseq" type="xs:int"
                                              use="required"/>               
                                <!-- Host Id (Reference to HOST.hid)-->
                                <xs:attribute name="hid" type="xs:int"/>
                                <!-- Connection Id (Reference to CONN.connid) -->
                                <xs:attribute name="connid" type="xs:int"/>
                                <!-- Return Status Code for Object -->
                                <xs:attribute name="rc" type="xs:int"/>
                                <!-- MIME Content Type of the Object (when rc < 300) -->
                                <xs:attribute name="ctype">
                                    <xs:simpleType>
                                        <xs:restriction base="xs:string">
                                            <xs:maxLength value="32"/>
                                        </xs:restriction>
                                    </xs:simpleType>
                                </xs:attribute>
                                <!-- Response Time of the Object in Milliseconds -->
                                <xs:attribute name="rtime" type="xs:int"/>
                                <!-- Total Number of Object Bytes Downloaded -->
                                <xs:attribute name="nbyte" type="xs:int"/>
                                <!-- Start Timestamp when first "byte" (packet) was
                                     received for the object in GMT
                                     {yyyy-MM-dd hh:mm:ss.fff} -->
                                <xs:attribute name="fbstart">
                                    <xs:simpleType>
                                        <xs:restriction base="xs:string">
                                            <xs:maxLength value="32"/>
                                        </xs:restriction>
                                    </xs:simpleType>
                                </xs:attribute>
                                <!-- Time to download the first "byte" (packet) for the
                                     object in milliseconds -->
                                <xs:attribute name="fbtime" type="xs:int"/>
                                <!-- Start Timestamp when second "byte" (packet) was
                                     received for the object in GMT
                                     {yyyy-MM-dd hh:mm:ss.fff} -->
                                <xs:attribute name="contstart">
                                    <xs:simpleType>
                                        <xs:restriction base="xs:string">
                                            <xs:maxLength value="32"/>
                                        </xs:restriction>
                                    </xs:simpleType>
                                </xs:attribute>
                                <!-- Time to download the second "byte" (packet) for the
                                     object in milliseconds -->
                                <xs:attribute name="conttime" type="xs:int"/>
                                <!-- Root Url of the Host from which the object was
                                     downloaded (scheme + host) -->
                                <xs:attribute name="uhost">
                                    <xs:simpleType>
                                        <xs:restriction base="xs:string">
                                            <xs:maxLength value="256"/>
                                        </xs:restriction>
                                    </xs:simpleType>
                                </xs:attribute>
                                <!-- Url of the object -->
                                <xs:attribute name="upage">
                                    <xs:simpleType>
                                        <xs:restriction base="xs:string">
                                            <xs:maxLength value="2048"/>
                                        </xs:restriction>
                                    </xs:simpleType>
                                </xs:attribute>
                                <!-- URL Object request parameters -->
                                <xs:attribute name="uparam">
                                    <xs:simpleType>
                                        <xs:restriction base="xs:string">
                                            <xs:maxLength value="2048"/>
                                        </xs:restriction>
                                    </xs:simpleType>
                                </xs:attribute>
                                <!-- If a redirect, the object ID of the redirection
                                     (References OBJECT.oseq) -->
                                <xs:attribute name="redirobjid" type="xs:int"/>
                                <xs:attribute name="csum" type="xs:int"/>   
                                <xs:attribute name="spdy" type="xs:int"/>   
                                <!-- LM Population id -->
                                <xs:attribute name="popid" type="xs:int"/>
                            </xs:complexType>
                        </xs:element>
                    </xs:sequence>
                    <!-- Unique Page Sequence Id -->
                    <xs:attribute name="pseq" type="xs:int" use="required"/>
                    <!-- Page description -->
                    <xs:attribute name="pname" use="optional">
                        <xs:simpleType>
                            <xs:restriction base="xs:string">
                                <xs:maxLength value="600" />
                            </xs:restriction>
                        </xs:simpleType>
                    </xs:attribute>
                    <!-- Page URL -->
                    <xs:attribute name="url" use="optional">
                        <xs:simpleType>
                            <xs:restriction base="xs:string">
                                <xs:maxLength value="2048" />
                            </xs:restriction>
                        </xs:simpleType>
                    </xs:attribute>
                    <!-- Response time of the page in milliseconds -->
                    <xs:attribute name="rtime" type="xs:int"/>
                    <!-- Count of objects downloaded on the page -->
                    <xs:attribute name="nobj" type="xs:int"/>
                    <!-- Count of object with a return code in the range between 200 and
                         299 (inclusive) -->
                    <xs:attribute name="rc200" type="xs:int"/>
                    <!-- Count of object with a return code in the range between 300 and
                         399 (inclusive) -->
                    <xs:attribute name="rc300" type="xs:int"/>
                    <!-- Count of object with a return code in the range between 400 and
                         499 (inclusive) -->
                    <xs:attribute name="rc400" type="xs:int"/>
                    <!-- Count of object with a return code in the range between 500 and
                         599 (inclusive) -->
                    <xs:attribute name="rc500" type="xs:int"/>
                    <!-- Binary flag to indicate network related errors. Default is 0 -->
                    <xs:attribute name="rcnet" type="xs:int"/>
                    <!-- Binary flag to indicate (internal) site related errors.
                         Default is 0 -->
                    <xs:attribute name="rcint" type="xs:int"/>
                    <!-- Count of bytes downloaded for the page -->
                    <xs:attribute name="nbyte" type="xs:int"/>
                    <!-- Count of unique hosts referenced on the page -->
                    <xs:attribute name="nhost" type="xs:int"/>
                    <!-- Count of unique connections referenced on the page -->
                    <xs:attribute name="nconn" type="xs:int"/>
                    <!-- Content Match Text (where applicable). Contains match source text  
                    -->
                    <xs:attribute name="cmtext">
                        <xs:simpleType>
                            <xs:restriction base="xs:string">
                                <xs:maxLength value="512"/>
                            </xs:restriction>
                        </xs:simpleType>
                    </xs:attribute>
                    <!-- Binary Content Match Status Indicator (where applicable).
                         0 = Not Matched, 1 = Matched -->
                    <xs:attribute name="cmstat" type="xs:int"/>
                    <!-- Binary flag to indicate a socket time-out error -->
                    <xs:attribute name="tostat" type="xs:int"/>
                    <!-- Binary flag to indicate a User Script error -->
                    <xs:attribute name="usstat" type="xs:int"/>
                    <!-- User Script error detail -->
                    <xs:attribute name="userr" use="optional" >
                        <xs:simpleType>
                            <xs:restriction base="xs:string">
                                <xs:maxLength value="512"/>
                            </xs:restriction>
                        </xs:simpleType>
                    </xs:attribute>
                    <!-- Binary flag to indicate a byte limit exceeded error -->
                    <xs:attribute name="blstat" type="xs:int"/>
                    <!-- Root object sequence number of the first object with a 200 return
                         code. This id can be used to determine which object caused the
                         page to fail (References OBJECT.oseq) -->
                    <xs:attribute name="rtobjseq" type="xs:int"/>
                    <!-- Sum of all DNS lookup times (HOST.dnstime) for all the connections
                         associated with this page in milliseconds -->
                    <xs:attribute name="dnssum" type="xs:int"/>
                    <!-- Count of all hosts for all the connections associated with this
                         page -->
                    <xs:attribute name="ndns" type="xs:int"/>
                    <!-- Sum of all vonnection times (CONN.conntime) for all the
                         connections associated with this page in milliseconds -->
                    <xs:attribute name="connsum" type="xs:int"/>
                    <!-- Count of all vonnections associated with this page -->
                    <xs:attribute name="nconn1" type="xs:int"/>
                    <!-- Sum of all SSL times (CONN.ssltime) for all the secure
                         connections associated with this page in milliseconds -->
                    <xs:attribute name="sslsum" type="xs:int"/>
                    <!-- Count of all secure connections associated with this page -->
                    <xs:attribute name="nssl" type="xs:int"/>
                    <!-- Sum of all first "byte" (packet) for all the objects associated
                         with this page in milliseconds -->
                    <xs:attribute name="fbsum" type="xs:int"/>
                    <!-- Count of all first "byte" (packet) objects associated with
                         this page -->
                    <xs:attribute name="nfb" type="xs:int"/>
                    <!-- Sum of all second "byte" (packet) + subseqent for all the objects
                         associated with this page in milliseconds -->
                    <xs:attribute name="contsum" type="xs:int"/>
                    <!-- Count of all second "byte" (packet) + subsequenct objects
                         associated with this page -->
                    <xs:attribute name="ncont" type="xs:int"/>
                    <!-- Processing / Client Time Time in Milliseconds -->
                    <xs:attribute name="ptime" type="xs:int"/>
                    <!-- LM Population id -->
                    <xs:attribute name="popid" type="xs:int"/>
                </xs:complexType>
            </xs:element>
            <!-- Transaction W3C Page Element -->
            <xs:element name="W3CPAGE" minOccurs="0" maxOccurs="unbounded">
                <xs:complexType>
                    <!-- Sequence number of first step associated with the w3c page -->
                    <xs:attribute name="rootstepseq" type="xs:int"/>
                    <!-- Sequence number of the w3c page -->
                    <xs:attribute name="w3cseq" type="xs:int"/>
                    <!-- Sequence numbers of all steps associated with the w3c page -->
                    <xs:attribute name="stepseqs">
                        <xs:simpleType>
                            <xs:restriction base="xs:string">
                                <xs:maxLength value="2000"/>
                            </xs:restriction>
                        </xs:simpleType>
                    </xs:attribute>
                    <!-- window.performance.timing.navigationStart -->
                    <xs:attribute name="navstart">
                        <xs:simpleType>
                            <xs:restriction base="xs:string">
                                <xs:maxLength value="32"/>
                            </xs:restriction>
                        </xs:simpleType>
                    </xs:attribute>
                    <!-- Offset of window.performance.timing.unloadEventStart -->
                    <xs:attribute name="uldstart" type="xs:int"/>
                    <!-- Offset of window.performance.timing.unloadEventEnd -->
                    <xs:attribute name="uldend" type="xs:int"/>
                    <!-- Offset of window.performance.timing.redirectStart -->
                    <xs:attribute name="rdstart" type="xs:int"/>
                    <!-- Offset of window.performance.timing.redirectEnd -->
                    <xs:attribute name="rdend" type="xs:int"/>
                    <!-- Offset of window.performance.timing.fetchStart -->
                    <xs:attribute name="fchstart" type="xs:int"/>
                    <!-- Offset of window.performance.timing.domainLookupStart -->
                    <xs:attribute name="dlkstart" type="xs:int"/>
                    <!-- Offset of window.performance.timing.domainLookupEnd -->
                    <xs:attribute name="dlkend" type="xs:int"/>
                    <!-- Offset of window.performance.timing.connectStart -->
                    <xs:attribute name="constart" type="xs:int"/>
                    <!-- Offset of window.performance.timing.connectEnd -->
                    <xs:attribute name="conend" type="xs:int"/>
                    <!-- Offset of window.performance.timing.secureConnectionStart -->
                    <xs:attribute name="sconstart" type="xs:int"/>
                    <!-- Offset of window.performance.timing.requestStart -->
                    <xs:attribute name="reqstart" type="xs:int"/>
                    <!-- Offset of window.performance.timing.responseStart -->
                    <xs:attribute name="rspstart" type="xs:int"/>
                    <!-- Offset of window.performance.timing.responseEnd -->
                    <xs:attribute name="rspend" type="xs:int"/>
                    <!-- Offset of window.performance.timing.domLoading -->
                    <xs:attribute name="domld" type="xs:int"/>
                    <!-- Offset of window.performance.timing.domInteractive -->
                    <xs:attribute name="domint" type="xs:int"/>
                    <!-- Offset of window.performance.timing.domContentLoadedEventStart -->
                    <xs:attribute name="dcldstart" type="xs:int"/>
                    <!-- Offset of window.performance.timing.domContentLoadedEventEnd -->
                    <xs:attribute name="dcldend" type="xs:int"/>
                    <!-- Offset of window.performance.timing.domComplete -->
                    <xs:attribute name="domcmpl" type="xs:int"/>
                    <!-- Offset of window.performance.timing.loadEventStart -->
                    <xs:attribute name="ldstart" type="xs:int"/>
                    <!-- Offset of window.performance.timing.loadEventEnd -->
                    <xs:attribute name="ldend" type="xs:int"/>
                    <!-- unload time = unloadEventEnd - unloadEventStart -->
                    <xs:attribute name="uldtime" type="xs:int"/>
                    <!-- fetch time = domainLookupStart - fetchStart -->
                    <xs:attribute name="fchtime" type="xs:int"/>
                    <!-- DNS time of the w3c page -->
                    <xs:attribute name="dnstime" type="xs:int"/>
                    <!-- connect time = connectEnd - connectStart -->
                    <xs:attribute name="contime" type="xs:int"/>
                    <!-- request time = responseStart - requestStart -->
                    <xs:attribute name="reqtime" type="xs:int"/>
                    <!-- request time = responseEnd - responseStart -->
                    <xs:attribute name="rsptime" type="xs:int"/>
                    <!-- SSL time of the w3c page -->
                    <xs:attribute name="ssltime" type="xs:int"/>
                    <!-- Offset of the first paint event of the w3c page -->
                    <xs:attribute name="firtpaint" type="xs:int"/>
                </xs:complexType>
            </xs:element>
            <!-- Transaction Host Element -->
            <xs:element name="HOST" minOccurs="0" maxOccurs="unbounded">
                <xs:complexType>
                    <xs:sequence>
                        <!-- Transaction Connection Element -->
                        <xs:element name="CONN" minOccurs="0" maxOccurs="unbounded">
                            <xs:complexType>
                                <!-- Unique Connection Id (Referenced from OBJECT.connid)
                                -->
                                <xs:attribute name="connid" type="xs:int" use="required"/>
                                <!-- Unique Page Sequence Id (References PAGE.pseq) -->
                                <xs:attribute name="page" type="xs:int"/>
                                <!-- Response time to download all objects on this
                                     connection in milliseconds -->
                                <xs:attribute name="rtime" type="xs:int"/>
                                <!-- Start Timestamp when connection was established in GMT
                                     {yyyy-MM-dd hh:mm:ss.fff} -->
                                <xs:attribute name="connstart">
                                    <xs:simpleType>
                                        <xs:restriction base="xs:string">
                                            <xs:maxLength value="32"/>
                                        </xs:restriction>
                                    </xs:simpleType>
                                </xs:attribute>
                                <!-- Time to establish the connection in milliseconds -->
                                <xs:attribute name="conntime" type="xs:int"/>
                                <!-- Start Timestamp when SSL handshake was established in
                                     GMT {yyyy-MM-dd hh:mm:ss.fff} -->
                                <xs:attribute name="sslstart">
                                    <xs:simpleType>
                                        <xs:restriction base="xs:string">
                                            <xs:maxLength value="32"/>
                                        </xs:restriction>
                                    </xs:simpleType>
                                </xs:attribute>
                                <!-- Time to complete the SSL handshake phase of the
                                     connection in milliseconds -->
                                <xs:attribute name="ssltime" type="xs:int"/>
                                <!-- Total number of bytes downloaded on this connection -->
                                <xs:attribute name="nbyte" type="xs:int"/>
                                <!-- Total number of errors occurring on this connection -->
                                <xs:attribute name="nerr" type="xs:int"/>
                                <!-- Total number of objects downloaded on this connection
                                -->
                                <xs:attribute name="nobj" type="xs:int"/>
                                <xs:attribute name="popid" type="xs:int"/>
                            </xs:complexType>
                        </xs:element>
                    </xs:sequence>
                    <!-- Unique Host Id (Referenced from OBJECT.hid) -->
                    <xs:attribute name="hid" type="xs:int" use="required"/>
                    <!-- Unique Page Sequence Id (References PAGE.pseq) -->
                    <xs:attribute name="page" type="xs:int"/>
                    <!-- Start Timestamp when DNS lookup was completed in GMT
                         {yyyy-MM-dd hh:mm:ss.fff} -->
                    <xs:attribute name="dnsstart">
                        <xs:simpleType>
                            <xs:restriction base="xs:string">
                                <xs:maxLength value="32"/>
                            </xs:restriction>
                        </xs:simpleType>
                    </xs:attribute>
                    <!-- Time to complete the DNS lookup in milliseconds -->
                    <xs:attribute name="dnstime" type="xs:int"/>
                    <!-- Total number of bytes downloaded from this host -->
                    <xs:attribute name="nbyte" type="xs:int"/>
                    <!-- Total number of errors detected from this host -->
                    <xs:attribute name="nerr" type="xs:int"/>
                    <!-- Total number of errors downloaded from this host -->
                    <xs:attribute name="nobj" type="xs:int"/>
                    <!-- Total number of connections established to this host -->
                    <xs:attribute name="nconn" type="xs:int"/>
                    <!-- IP Address of this host -->
                    <xs:attribute name="ip">
                        <xs:simpleType>
                            <xs:restriction base="xs:string">
                                <xs:maxLength value="50"/>
                            </xs:restriction>
                        </xs:simpleType>
                    </xs:attribute>
                    <xs:attribute name="isipv6" type="xs:boolean" />
                    <xs:attribute name="popid" type="xs:int"/>
                </xs:complexType>
            </xs:element>
        </xs:sequence>
        <!-- Test Id : Monitor Id (Backbone), Monitor Instance Id
             (Last Mile / Private Peer / Mobile) -->
        <xs:attribute name="mid" type="xs:int" use="required"/>
        <xs:attribute name="tname" use="optional">
            <xs:simpleType>
                <xs:restriction base="xs:string">
                    <xs:maxLength value="600"/>
                </xs:restriction>
            </xs:simpleType>
        </xs:attribute>
        <!-- Location Id : Site Id (Backbone), Population Id
             (Last Mile / Private Peer / Mobile) -->
        <xs:attribute name="sid" type="xs:int" use="required"/>
        <!-- Test Timestamp in GMT. {yyyy-MM-dd hh:mm:ss.fff} -->
        <xs:attribute name="ttime">
            <xs:simpleType>
                <xs:restriction base="xs:string">
                    <xs:maxLength value="32"/>
                </xs:restriction>
            </xs:simpleType>
        </xs:attribute>
        <!-- Backbone Site Name -->
        <xs:attribute name="sname" use="optional">
            <xs:simpleType>
                <xs:restriction base="xs:string">
                    <xs:maxLength value="600"/>
                </xs:restriction>
            </xs:simpleType>
        </xs:attribute>
        <!-- Last Mile / Private Peer / Mobile Population Name -->
        <xs:attribute name="popname" use="optional">
            <xs:simpleType>
                <xs:restriction base="xs:string">
                    <xs:maxLength value="600"/>
                </xs:restriction>
            </xs:simpleType>
        </xs:attribute>
        <!-- Population country -->
        <xs:attribute name="popcountry" use="optional">
            <xs:simpleType>
                <xs:restriction base="xs:string">
                    <xs:maxLength value="4000"/>
                </xs:restriction>
            </xs:simpleType>
        </xs:attribute>
        <!-- End-To-End Response Time in Milliseconds -->
        <xs:attribute name="rtime" type="xs:int"/>
        <!-- Count of Total Pages Tested -->
        <xs:attribute name="tpt" type="xs:int"/>
        <!-- Count of Total Pages Successful -->
        <xs:attribute name="tps" type="xs:int"/>
        <!-- Ciybt if Total Pages Failed -->
        <xs:attribute name="tpf" type="xs:int"/>
        <!-- Count of Total Object Tested -->
        <xs:attribute name="tot" type="xs:int"/>
        <!-- Count of Total Objects Successful -->
        <xs:attribute name="tos" type="xs:int"/>
        <!-- Count of Total Objects Failed -->
        <xs:attribute name="tof" type="xs:int"/>
        <!-- Total Number of Bytes Downloaded -->
        <xs:attribute name="nbyte" type="xs:int"/>
        <!-- Collection Agent Type Discriminator -->
        <xs:attribute name="browsertype">
            <xs:simpleType>
                <xs:restriction base="xs:string">
                    <xs:maxLength value="50"/>
                    <xs:pattern value="UTA|IE7|FF35|CH23"/>
                </xs:restriction>
            </xs:simpleType>
        </xs:attribute>
        <!-- Is site capable of ipv6 -->
        <xs:attribute name="sipv6ready" type="xs:boolean" />
        <!-- IPV6 preference -->
        <xs:attribute name="testipv6pref" type="ipversionType" use="optional"/>
        <!-- Population id -->
        <xs:attribute name="popid" type="xs:int"/>
        <!-- pre Test Bandwidth-->
        <xs:attribute name="prebw" type="xs:int"/>
        <!-- Post Test Bandwidth -->
        <xs:attribute name="postbw" type="xs:int"/>
        <!-- Actual Bandwidth -->
        <xs:attribute name="actualbw" type="xs:int"/>
        <!-- Unique Peer id -->
        <xs:attribute name="prid" type="xs:int"/>
        <!-- Peer region -->
        <xs:attribute name="prreg" type="xs:string"/>
        <!-- Peer ISP -->
        <xs:attribute name="prisp" type="xs:string"/>
        <!-- Peer IP -->
        <xs:attribute name="prip">
            <xs:simpleType>
                <xs:restriction base="xs:string">
                    <xs:maxLength value="50"/>
                </xs:restriction>
            </xs:simpleType>
        </xs:attribute>
    </xs:complexType>

    <!--
    ***********************************
    Data Cut Response Type      
    ***********************************
    -->
    <xs:complexType name="DataCutTestType">
        <xs:sequence>
            <!-- LM Peer Machine Info -->
            <xs:element name="MACHINEINFO" type="MachineInfo" minOccurs="0" maxOccurs="1"/>
        </xs:sequence>
        <!-- Test Cut Event Timestamp in GMT. {yyyy-MM-dd hh:mm:ss.fff}-->
        <xs:attribute name="cutdate">
            <xs:simpleType>
                <xs:restriction base="xs:string">
                    <xs:maxLength value="32"/>
                </xs:restriction>
            </xs:simpleType>
        </xs:attribute>
        <!-- Test Id : Monitor Id (Backbone), Monitor Instance Id
             (Last Mile / Private Peer / Mobile) -->
        <xs:attribute name="mid" type="xs:int" use="required"/>
        <!-- Location Id : Site Id (Backbone), Population Id
             (Last Mile / Private Peer / Mobile) -->
        <xs:attribute name="sid" type="xs:int" use="required"/>
        <!-- Test Timestamp in GMT. {yyyy-MM-dd hh:mm:ss.fff}-->
        <xs:attribute name="ttime">
            <xs:simpleType>
                <xs:restriction base="xs:string">
                    <xs:maxLength value="32"/>
                </xs:restriction>
            </xs:simpleType>
        </xs:attribute>   
    </xs:complexType>

    <!--
    ***********************************
    Message Response Type
    ***********************************
    -->
    <xs:complexType name="MessageType">
        <!-- Test Id : Monitor Id (Backbone), Monitor Instance Id
             (Last Mile / Private Peer / Mobile) -->
        <xs:attribute name="mid" type="xs:int" use="required"/>
        <!-- General Message Text -->
        <xs:attribute name="Msg" type="xs:string" use="required"/>
    </xs:complexType>

    <!--
    ***********************************
    Monitor Class Designator Type
    Common element in all responses.
    ***********************************
    -->
    <xs:complexType name="MonitorClassDesignatorType">
        <xs:attribute name="MonitorClassDesignator">
            <xs:simpleType>
                <xs:restriction base="xs:string">
                    <xs:maxLength value="20"/>
                </xs:restriction>
            </xs:simpleType>
        </xs:attribute>
    </xs:complexType>

    <!--
    ***********************************
    Streaming Response Type
    ***********************************
    -->
    <xs:complexType name="StreamTestType">
        <xs:sequence>
            <!-- Event Element -->
            <xs:element name="EVENT" minOccurs="0" maxOccurs="unbounded">
                <xs:complexType>
                    <!-- Unique event id -->
                    <xs:attribute name="sevt_id" type="xs:int" use="required"/>
                    <!-- Event name -->
                    <xs:attribute name="name">
                        <xs:simpleType>
                            <xs:restriction base="xs:string">
                                <xs:maxLength value="100"/>
                            </xs:restriction>
                        </xs:simpleType>
                    </xs:attribute>
                    <!-- Offset of event occurrence from start of test in milliseconds -->
                    <xs:attribute name="offset" type="xs:int"/>
                </xs:complexType>
            </xs:element>
            <!-- Metadata Element -->
            <xs:element name="META" minOccurs="0" maxOccurs="unbounded">
                <xs:complexType>
                    <!-- Unique sequence id of metadata element -->
                    <xs:attribute name="metaseq" type="xs:int" use="required"/>
                    <!--
                    Unique metadata key name for metadata element
                    Common key values:
                        'mediaFormat'
                        'frameSize'
                        'totalBytes'
                        'frameRate'
                        'recommendedFrameRate'
                        'recommendedBandwidth'
                        'recommendedDuration'                        
                    -->
                    <xs:attribute name="smetakey">
                        <xs:simpleType>
                            <xs:restriction base="xs:string">
                                <xs:maxLength value="255"/>
                            </xs:restriction>
                        </xs:simpleType>
                    </xs:attribute>
                    <!--
                    Metadata value for metadata element. Type depends on metadata key
                        'mediaFormat' - Data type is string(255)
                        'frameSize' - Data type is unsigned long
                        'totalBytes' - Data type is unsigned long
                        'frameRate' - Data type is unsigned long
                        'recommendedFrameRate' - Data type is unsigned long
                        'recommendedBandwidth' - Data type is unsigned long
                        'recommendedDuration' - Data type is unsigned long
                    -->
                    <xs:attribute name="smetaval">
                        <xs:simpleType>
                            <xs:restriction base="xs:string">
                                <xs:maxLength value="255"/>
                            </xs:restriction>
                        </xs:simpleType>
                    </xs:attribute>
                </xs:complexType>
            </xs:element>
            <!-- Trace Route Element -->
            <xs:element name="TRACE" minOccurs="0" maxOccurs="unbounded">
                <xs:complexType>
                    <!-- Unique trace sequence / hop id-->
                    <xs:attribute name="hopnum" type="xs:int" use="required"/>
                    <!-- IP address of destination -->
                    <xs:attribute name="ip">
                        <xs:simpleType>
                            <xs:restriction base="xs:string">
                                <xs:maxLength value="50"/>
                            </xs:restriction>
                        </xs:simpleType>
                    </xs:attribute>
                    <!-- Host name of destination -->
                    <xs:attribute name="host">
                        <xs:simpleType>
                            <xs:restriction base="xs:string">
                                <xs:maxLength value="100"/>
                            </xs:restriction>
                        </xs:simpleType>
                    </xs:attribute>
                    <!-- Time delay in milliseconds -->
                    <xs:attribute name="delay" type="xs:int"/>
                </xs:complexType>
            </xs:element>
        </xs:sequence>
        <!-- Test Id : Monitor Id (Backbone), Monitor Instance Id
             (Last Mile / Private Peer / Mobile) -->        
        <xs:attribute name="mid" type="xs:int" use="required"/>
        <!-- Backbone Site Id -->
        <xs:attribute name="sid" type="xs:int" use="required"/>
        <!-- Test Timestamp in GMT. {yyyy-MM-dd hh:mm:ss.fff}-->
        <xs:attribute name="ttime" type="xs:dateTime" use="required"/>
        <!-- Page sequence id for transaction integrated streaming tests. -1 for
             standalone tests. -->
        <xs:attribute name="pseq" type="xs:int" use="required"/>
        <!-- Unique stream sequence id -->
        <xs:attribute name="sseq" type="xs:int" use="required"/>
        <!-- Start Timestamp in GMT. {yyyy-MM-dd hh:mm:ss.fff}-->
        <xs:attribute name="stime" type="xs:dateTime" use="required"/>
        <!-- System (high-level) error code -->
        <xs:attribute name="errrsyscode" type="xs:int" use="required"/>
        <!-- System error description -->
        <xs:attribute name="errdesc">
            <xs:simpleType>
                <xs:restriction base="xs:string">
                    <xs:maxLength value="1000"/>
                </xs:restriction>
            </xs:simpleType>
        </xs:attribute>
        <!-- Raw (low-level) System error description -->
        <xs:attribute name="errrawcode" type="xs:int"/>
        <!-- Stream protocol. Sample values include (but not limited to):
             {'http'|'rtmp'|'rtspt'|'rtspu'} -->
        <xs:attribute name="sproto">
            <xs:simpleType>
                <xs:restriction base="xs:string">
                    <xs:maxLength value="100"/>
                </xs:restriction>
            </xs:simpleType>
        </xs:attribute>
        <!-- IP Address of target host -->
        <xs:attribute name="ip">
            <xs:simpleType>
                <xs:restriction base="xs:string">
                    <xs:maxLength value="50"/>
                </xs:restriction>
            </xs:simpleType>
        </xs:attribute>
        <!-- Url of tested stream -->
        <xs:attribute name="url">
            <xs:simpleType>
                <xs:restriction base="xs:string">
                    <xs:maxLength value="4365"/>
                </xs:restriction>
            </xs:simpleType>
        </xs:attribute>
        <!-- Duration of stream test in milliseconds -->
        <xs:attribute name="durinms" type="xs:int"/>
        <!-- Frames per second -->
        <xs:attribute name="fps" type="xs:int"/>
        <!--
            Stream End Type Designator
            SUCCESS - Test completed successfully
            EXPIRED - Stream expired before end of test was reached
            FAILED  - Test Failed
        -->
        <xs:attribute name="endtype">
            <xs:simpleType>
                <xs:restriction base="xs:string">
                    <xs:maxLength value="7"/>
                    <xs:pattern value="SUCCESS|EXPIRED|FAILED"/>
                </xs:restriction>
            </xs:simpleType>
        </xs:attribute>
        <!-- Bites per second -->
        <xs:attribute name="bps" type="xs:int"/>
        <!-- Media Server Type -->
        <xs:attribute name="stype">
            <xs:simpleType>
                <xs:restriction base="xs:string">
                    <xs:maxLength value="100"/>
                </xs:restriction>
            </xs:simpleType>
        </xs:attribute>
        <!-- Server Platform -->
        <xs:attribute name="splat">
            <xs:simpleType>
                <xs:restriction base="xs:string">
                    <xs:maxLength value="100"/>
                </xs:restriction>
            </xs:simpleType>
        </xs:attribute>
        <!-- Server Version -->
        <xs:attribute name="sver">
            <xs:simpleType>
                <xs:restriction base="xs:string">
                    <xs:maxLength value="100"/>
                </xs:restriction>
            </xs:simpleType>
        </xs:attribute>
        <!-- DNS Offset Time from start of test in milliseconds -->
        <xs:attribute name="dnsoffset" type="xs:int"/>
        <!-- Total DNS time in milliseconds -->
        <xs:attribute name="dnstime" type="xs:int"/>
        <!-- Connection Offset Time from start of test in milliseconds -->
        <xs:attribute name="connoffset" type="xs:int"/>
        <!-- Total connection time in milliseconds -->
        <xs:attribute name="conntime" type="xs:int"/>
        <!-- Initial buffer time in milliseconds -->
        <xs:attribute name="initbuftime" type="xs:int"/>
        <!-- Total re-buffer time in milliseconds -->
        <xs:attribute name="rebuftime" type="xs:int"/>
        <!-- Count of rebuffer events -->
        <xs:attribute name="rebufcnt" type="xs:int"/>
        <!-- Initial play time in milliseconds -->
        <xs:attribute name="initplytime" type="xs:int"/>
        <!-- Start play time in milliseconds -->
        <xs:attribute name="spt" type="xs:int"/>
        <!-- Initial re-buffer time in milliseconds -->
        <xs:attribute name="initrebuftime" type="xs:int"/>
        <!-- Count of PLAY events -->
        <xs:attribute name="plycnt" type="xs:int"/>
        <xs:attribute name="initialdatareceivetime" type="xs:int"/>
    </xs:complexType>

    <!--
    *************************************
    Single Url Response Type
    **************************************
    -->
    <xs:complexType name="SingleUrlTestType">
        <xs:sequence>
            <!-- Object element -->
            <xs:element name="OBJECT" minOccurs="0" maxOccurs="unbounded">
                <xs:complexType>
                    <!-- Object Url -->
                    <xs:attribute name="url">
                        <xs:simpleType>
                            <xs:restriction base="xs:string">
                                <xs:maxLength value="800"/>
                            </xs:restriction>
                        </xs:simpleType>
                    </xs:attribute>
                    <!-- Return Code -->
                    <xs:attribute name="rc" type="xs:int"/>
                    <!-- MIME Content Type of the Object (when rc < 300) -->
                    <xs:attribute name="ctype">
                        <xs:simpleType>
                            <xs:restriction base="xs:string">
                                <xs:maxLength value="32"/>
                            </xs:restriction>
                        </xs:simpleType>
                    </xs:attribute>
                    <!-- Referencing URL for this object -->
                    <xs:attribute name="refurl">
                        <xs:simpleType>
                            <xs:restriction base="xs:string">
                                <xs:maxLength value="3000"/>
                            </xs:restriction>
                        </xs:simpleType>
                    </xs:attribute>
                    <!-- Redirect URL for this object -->
                    <xs:attribute name="redirurl">
                        <xs:simpleType>
                            <xs:restriction base="xs:string">
                                <xs:maxLength value="3000"/>
                            </xs:restriction>
                        </xs:simpleType>
                    </xs:attribute>
                    <!-- Number of bytes downloaded for this object -->
                    <xs:attribute name="nbytes" type="xs:int"/>
                    <!-- Start Timestamp when DNS lookup was completed in GMT {yyyy-MM-dd
                         hh:mm:ss.fff} -->
                    <xs:attribute name="dnsstart">
                        <xs:simpleType>
                            <xs:restriction base="xs:string">
                                <xs:maxLength value="32"/>
                            </xs:restriction>
                        </xs:simpleType>
                    </xs:attribute>
                    <!-- Time to complete the DNS lookup in milliseconds -->
                    <xs:attribute name="dnstime" type="xs:int"/>
                    <!-- Start Timestamp when connection was established in GMT {yyyy-MM-dd
                         hh:mm:ss.fff}-->
                    <xs:attribute name="connstart">
                        <xs:simpleType>
                            <xs:restriction base="xs:string">
                                <xs:maxLength value="32"/>
                            </xs:restriction>
                        </xs:simpleType>
                    </xs:attribute>
                    <!-- Time to establish the connection in milliseconds -->
                    <xs:attribute name="conntime" type="xs:int"/>
                    <!-- Start Timestamp when first "byte" (packet) was received for the
                         object in GMT {yyyy-MM-dd hh:mm:ss.fff}-->
                    <xs:attribute name="fbstart">
                        <xs:simpleType>
                            <xs:restriction base="xs:string">
                                <xs:maxLength value="32"/>
                            </xs:restriction>
                        </xs:simpleType>
                    </xs:attribute>
                    <!-- Time to download the first "byte" (packet) for the object in
                         milliseconds -->
                    <xs:attribute name="fbtime" type="xs:int"/>
                    <!-- Start Timestamp when second "byte" (packet) was received for the
                         object in GMT {yyyy-MM-dd hh:mm:ss.fff} -->
                    <xs:attribute name="contstart">
                        <xs:simpleType>
                            <xs:restriction base="xs:string">
                                <xs:maxLength value="32"/>
                            </xs:restriction>
                        </xs:simpleType>
                    </xs:attribute>
                    <!-- Time to download the second "byte" (packet) for the object in
                         milliseconds -->
                    <xs:attribute name="conttime" type="xs:int"/>
                    <!-- Start Timestamp when redirect was started for the object in GMT
                         {yyyy-MM-dd hh:mm:ss.fff} -->
                    <xs:attribute name="relocstart">
                        <xs:simpleType>
                            <xs:restriction base="xs:string">
                                <xs:maxLength value="32"/>
                            </xs:restriction>
                        </xs:simpleType>
                    </xs:attribute>
                    <!-- Time to execute all redirects in milliseconds -->
                    <xs:attribute name="reloctime" type="xs:int"/>
                    <!-- IP Address of targeted object -->
                    <xs:attribute name="ip">
                        <xs:simpleType>
                            <xs:restriction base="xs:string">
                                <xs:maxLength value="100"/>
                            </xs:restriction>
                        </xs:simpleType>
                    </xs:attribute>
                </xs:complexType>
            </xs:element>
        </xs:sequence>
        <!-- Test Id : Monitor Id (Backbone), Monitor Instance Id
             (Last Mile / Private Peer / Mobile) -->
        <xs:attribute name="mid" type="xs:int" use="required"/>
        <!-- Location Id : Site Id (Backbone) -->
        <xs:attribute name="sid" type="xs:int" use="required"/>
        <!-- Test Timestamp in GMT. {yyyy-MM-dd hh:mm:ss.fff}-->
        <xs:attribute name="ttime">
            <xs:simpleType>
                <xs:restriction base="xs:string">
                    <xs:maxLength value="32"/>
                </xs:restriction>
            </xs:simpleType>
        </xs:attribute>
        <!-- Backbone Site Name -->
        <xs:attribute name="sname" use="required">
            <xs:simpleType>
                <xs:restriction base="xs:string">
                    <xs:maxLength value="600"/>
                </xs:restriction>
            </xs:simpleType>
        </xs:attribute>
        <!-- Response time of the page in milliseconds -->
        <xs:attribute name="rtime" type="xs:int"/>
        <!-- Total objects tested -->
        <xs:attribute name="tot" type="xs:int"/>
        <!-- Total objects successful -->
        <xs:attribute name="tos" type="xs:int"/>
        <!-- Binary Content Match Status Indicator (where applicable).
             0 = Not Matched, 1 = Matched -->
        <xs:attribute name="cmstat">
            <xs:simpleType>
                <xs:restriction base="xs:string">
                    <xs:maxLength value="1"/>
                </xs:restriction>
            </xs:simpleType>
        </xs:attribute>
        <!-- Content Match Text (where applicable). Contains match source text  -->
        <xs:attribute name="cmtext">
            <xs:simpleType>
                <xs:restriction base="xs:string">
                    <xs:maxLength value="255"/>
                </xs:restriction>
            </xs:simpleType>
        </xs:attribute>
    </xs:complexType>

    <!--
    **************************************
    Status Response Type
    **************************************
    -->
    <xs:complexType name="COpStatusData">
        <xs:sequence>
            <!-- Status Type Indicator -->
            <xs:element name="eStatus" type="StatusType"/>
            <!-- Error message when eStatus == "STATUS_FAILED" -->
            <xs:element name="sErrorMessage" type="xs:string" minOccurs="0"/>
        </xs:sequence>
    </xs:complexType>
    <xs:simpleType name="StatusType">
        <xs:restriction base="xs:string">
            <!-- Operation Successful -->
            <xs:enumeration value="STATUS_SUCCESS"/>
            <!-- Operation Failed - see ErrorMessage for details -->
            <xs:enumeration value="STATUS_FAILED"/>
        </xs:restriction>
    </xs:simpleType>
    <!--
  ***********
  LastMile DNSINFO Type based on Machine level
  ***********
  -->
    <xs:complexType name="DnsInfo">   
        <!-- Sequence number-->
        <xs:attribute name="dseq" type="xs:int" use="required"/>
        <!-- DNS IP Address -->
        <xs:attribute name="dip">
            <xs:simpleType>
                <xs:restriction base="xs:string">
                    <xs:maxLength value="30"/>
                </xs:restriction>
            </xs:simpleType>
        </xs:attribute>   
    </xs:complexType>
    <!--
  ***********
  LastMile Object HEADER Type based on Object level
  ***********
  -->
    <xs:complexType name="ObjectHeader">
        <xs:attribute name="hseq" type="xs:int" use="required"/>
        <xs:attribute name="hname">
            <xs:simpleType>
                <xs:restriction base="xs:string">
                    <xs:maxLength value="512"/>
                </xs:restriction>
            </xs:simpleType>
        </xs:attribute>
        <xs:attribute name="hvalue">
            <xs:simpleType>
                <xs:restriction base="xs:string">
                    <xs:maxLength value="1024"/>
                </xs:restriction>
            </xs:simpleType>
        </xs:attribute>
    </xs:complexType>
    <!--
        ********
        LastMile/Private/Mobile PEER MachineInfo Type
        ********
     -->
    <xs:complexType name="MachineInfo">
        <xs:sequence>
            <!-- LM Peer side DNS Info, based on MachineInfo -->   
            <xs:element name="DNSINFO" type="DnsInfo" minOccurs="0" maxOccurs="unbounded"/>     
        </xs:sequence>
        <xs:attribute name="siteId" type="xs:int" use="optional" />
        <!--(Public / Private/ Mobile) Peer Machine Id -->
        <xs:attribute name="machineid" type="xs:int" use="required" />
        <!--(Public / Private/ Mobile) Peer Machine Name -->
        <xs:attribute name="machinename" use="required">
            <xs:simpleType>
                <xs:restriction base="xs:string">
                    <xs:maxLength value="30"/>
                </xs:restriction>
            </xs:simpleType>
        </xs:attribute>
        <!-- (Public / Private/ Mobile) Peer Machine IP Address -->
        <xs:attribute name="mipaddress" use="optional">
            <xs:simpleType>
                <xs:restriction base="xs:string">
                    <xs:maxLength value="30"/>
                </xs:restriction>
            </xs:simpleType>
        </xs:attribute>
        <!-- (Public / Private/ Mobile) Peer Machine country -->
        <xs:attribute name="mcountry" use="optional">
            <xs:simpleType>
                <xs:restriction base="xs:string">
                    <xs:maxLength value="50"/>
                </xs:restriction>
            </xs:simpleType>
        </xs:attribute>
        <!-- (Public / Private/ Mobile) Peer Machine region -->
        <xs:attribute name="mregion" use="optional">
            <xs:simpleType>
                <xs:restriction base="xs:string">
                    <xs:maxLength value="50"/>
                </xs:restriction>
            </xs:simpleType>
        </xs:attribute>   
        <!-- (Public / Private/ Mobile) Peer Machine ISP name -->
        <xs:attribute name="misp" use="optional">
            <xs:simpleType>
                <xs:restriction base="xs:string">
                    <xs:maxLength value="128"/>
                </xs:restriction>
            </xs:simpleType>
        </xs:attribute>
        <!-- (Public / Private/ Mobile) Peer Machine available Bandwidth category -->
        <xs:attribute name="mbandwidthcategory" use="optional">
            <xs:simpleType>
                <xs:restriction base="xs:string">
                    <xs:maxLength value="50"/>
                </xs:restriction>
            </xs:simpleType>
        </xs:attribute>
        <!-- (Public / Private/ Mobile) Peer Machine ConnectionType -->
        <xs:attribute name="mconnectionType" use="optional">
            <xs:simpleType>
                <xs:restriction base="xs:string">
                    <xs:maxLength value="30"/>
                </xs:restriction>
            </xs:simpleType>
        </xs:attribute>
        <!-- (Private/ Mobile) Peer Machine USYS_USERDEF1 -->
        <xs:attribute name="muserdef1" use="optional">
            <xs:simpleType>
                <xs:restriction base="xs:string">
                    <xs:maxLength value="50"/>
                </xs:restriction>
            </xs:simpleType>
        </xs:attribute>
        <!-- (Private/ Mobile) Peer Machine USYS_USERDEF2 -->
        <xs:attribute name="muserdef2" use="optional">
            <xs:simpleType>
                <xs:restriction base="xs:string">
                    <xs:maxLength value="50"/>
                </xs:restriction>
            </xs:simpleType>
        </xs:attribute>
        <!-- (Private/ Mobile) Peer Machine USYS_USERDEF3 -->
        <xs:attribute name="muserdef3" use="optional">
            <xs:simpleType>
                <xs:restriction base="xs:string">
                    <xs:maxLength value="50"/>
                </xs:restriction>
            </xs:simpleType>
        </xs:attribute>        
    </xs:complexType>
    <xs:simpleType name="ipversionType">
        <xs:restriction base="xs:string">
            <xs:enumeration value="IPv4_only"/>
            <xs:enumeration value="IPv6_only"/>
            <xs:enumeration value="IPv6_preferred"/>
        </xs:restriction>
    </xs:simpleType>
</xs:schema>

 

You can download the XSD file from here: GpnDataExportService60.xsd. The file content is as follows.

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

Description : GPN DATA EXPORT WEB SERVICE v4.0

Created     : 11.11.2009

Revision    : 1.1 - 11.11.2009 - Initial
              1.2 - 11.24.2009 - Mobile Extensions Added

********************************************************
-->
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified">

    <!--
    ***************************************************
    Top Level Service Response
    ***************************************************
    -->
    <xs:element name="GpnResponseData" type="CGpnUniversalXmlDocResponse" nillable="true"/>
    <xs:complexType name="CGpnUniversalXmlDocResponse">
        <xs:sequence>
            <!-- Response Status -->
            <xs:element name="Status" type="COpStatusData" minOccurs="0"/>
            <!-- Number of Data Records Contained in the Response -->
            <xs:element name="NumRecords" type="xs:int"/>
            <!-- Availability Data Payload -->
            <xs:element name="Availability" type="AvailabilityType" minOccurs="0"/>
            <!-- Server Time Response Generated -->
            <xs:element name="CurrentTime" type="xs:string" minOccurs="0"/>
            <!-- Response Data Payload -->
            <xs:element name="XmlDocument" type="XmlDocumentType"
                        minOccurs="0"/>            
        </xs:sequence>
    </xs:complexType>

    <!--
    ***************************************************
    Top Level Response Data Payload
    ***************************************************
    -->
    <xs:complexType name="XmlDocumentType">
        <xs:sequence minOccurs="0">
            <xs:element name="GpnResponseData" type="GpnResponseDataType"/>
        </xs:sequence>
    </xs:complexType>

    <!--
    ***************************************************
    Top Level Availability Data Payload
    ***************************************************
    -->
    <xs:complexType name="AvailabilityType">
        <xs:sequence minOccurs="0">
            <xs:element name="STREAMAVAILABLITY" type="GpnStreamAvailabilityDataType"/>
        </xs:sequence>
    </xs:complexType>

    <!--
    ***************************************************
    Response Data Payload Type
    ***************************************************
    -->
    <xs:complexType name="GpnResponseDataType">
        <xs:sequence>
            <!-- Monitor Designator - Reflects Requested Type -->
            <xs:element name="MonitorDesignator" type="MonitorClassDesignatorType"/>
            <!-- Specific Data Schema Type -->
            <xs:choice minOccurs="0" maxOccurs="unbounded">
                <!-- Transaction Test Data Type -->
                <xs:element name="TXTEST" type="TxTestType"/>
                <!-- Transaction Time Group Data Type -->
                <xs:element name="TXTIMEGROUP" type="TxTimegroupType"/>
                <!-- Stream Test Data Type -->
                <xs:element name="STREAMTEST" type="StreamTestType"/>
                <!-- Single Url Test Data Type-->
                <xs:element name="SINGLEURLTEST" type="SingleUrlTestType"/>
                <!-- Data Cut Data Type -->
                <xs:element name="DATACUT" type="DataCutTestType"/>
                <!-- General Message Data Type -->
                <xs:element name="MESSAGE" type="MessageType" minOccurs="0"/>
            </xs:choice>
        </xs:sequence>
    </xs:complexType>

    <!--
    ***************************************************
    Availability Data Payload Type
    ***************************************************
    -->
    <xs:complexType name="GpnStreamAvailabilityDataType">
        <xs:attribute name="mid" type="xs:int"/>
        <xs:attribute name="avail" type="xs:string"/>
        <xs:attribute name="total_count" type="xs:int"/>
        <xs:attribute name="failed_count" type="xs:int"/>
    </xs:complexType>

    <!--
    ***************************************************
    Transaction Timegroup Response Type       
    Applies to Backbone Transactions Only
    ***************************************************
    -->
    <xs:complexType name="TxTimegroupType">
        <xs:attribute name="monitor_id" type="xs:int" use="required"/>
        <xs:attribute name="avail" type="xs:float" use="required"/>
        <xs:attribute name="avgresp" type="xs:float" use="required"/>
        <xs:attribute name="avgDNS" type="xs:float" use="required"/>
        <xs:attribute name="avgConnect" type="xs:float" use="required"/>
        <xs:attribute name="avgFirstByte" type="xs:float" use="required"/>
        <xs:attribute name="avgContent" type="xs:float" use="required"/>
    </xs:complexType>

    <!--
    **************************************
    Transaction Response Type
    *************************************
    -->
    <xs:complexType name="TxTestType">
        <xs:sequence>
            <!-- Mobile Extension Element -->
            <xs:element name="MOBILEEXT" minOccurs="0" maxOccurs="1">
                <xs:complexType>      
                    <xs:attribute name="carrier">
                        <xs:simpleType>
                            <xs:restriction base="xs:string">
                                <xs:maxLength value="200"/>
                            </xs:restriction>
                        </xs:simpleType>
                    </xs:attribute>
                    <xs:attribute name="location">
                        <xs:simpleType>
                            <xs:restriction base="xs:string">
                                <xs:maxLength value="200"/>
                            </xs:restriction>
                        </xs:simpleType>
                    </xs:attribute>
                    <xs:attribute name="connspeed">
                        <xs:simpleType>
                            <xs:restriction base="xs:string">
                                <xs:maxLength value="30"/>
                            </xs:restriction>
                        </xs:simpleType>
                    </xs:attribute>
                    <xs:attribute name="conntype">
                        <xs:simpleType>
                            <xs:restriction base="xs:string">
                                <xs:maxLength value="30"/>
                            </xs:restriction>
                        </xs:simpleType>
                    </xs:attribute>
                    <xs:attribute name="signalstrength" type="xs:int"/>
                    <xs:attribute name="popid" type="xs:int"/>
                </xs:complexType>
            </xs:element>  
            <!-- LM Peer Machine Info -->
            <xs:element name="MACHINEINFO" type="MachineInfo" minOccurs="0" maxOccurs="1"/>
            <!-- Transaction Page Element -->
            <xs:element name="PAGE" minOccurs="0" maxOccurs="unbounded">
                <xs:complexType>
                    <xs:sequence>
                        <!-- Transaction Object Element -->
                        <xs:element name="OBJECT" minOccurs="0"
                                    maxOccurs="unbounded">            
                            <xs:complexType>
                                <!-- LM Object Header  -->
                                <xs:sequence>
                                    <!-- Request Header -->
                                    <xs:element name="OBJECTREQHEADER" type="ObjectHeader"
                                                minOccurs="0" maxOccurs="unbounded"/>
                                    <!-- Response Header -->
                                    <xs:element name="OBJECTRESPEADER" type="ObjectHeader"
                                                minOccurs="0" maxOccurs="unbounded"/>
                                </xs:sequence>
                                <!-- Site Id, For LastMile only -->
                                <xs:attribute name="siteid" type="xs:int" use="optional"/>
                                <!-- Unique Object Sequence Id -->
                                <xs:attribute name="oseq" type="xs:int"
                                              use="required"/>               
                                <!-- Host Id (Reference to HOST.hid)-->
                                <xs:attribute name="hid" type="xs:int"/>
                                <!-- Connection Id (Reference to CONN.connid) -->
                                <xs:attribute name="connid" type="xs:int"/>
                                <!-- Return Status Code for Object -->
                                <xs:attribute name="rc" type="xs:int"/>
                                <!-- MIME Content Type of the Object (when rc < 300) -->
                                <xs:attribute name="ctype">
                                    <xs:simpleType>
                                        <xs:restriction base="xs:string">
                                            <xs:maxLength value="32"/>
                                        </xs:restriction>
                                    </xs:simpleType>
                                </xs:attribute>
                                <!-- Response Time of the Object in Milliseconds -->
                                <xs:attribute name="rtime" type="xs:int"/>
                                <!-- Total Number of Object Bytes Downloaded -->
                                <xs:attribute name="nbyte" type="xs:int"/>
                                <!-- Start Timestamp when first "byte" (packet) was
                                     received for the object in GMT
                                     {yyyy-MM-dd hh:mm:ss.fff} -->
                                <xs:attribute name="fbstart">
                                    <xs:simpleType>
                                        <xs:restriction base="xs:string">
                                            <xs:maxLength value="32"/>
                                        </xs:restriction>
                                    </xs:simpleType>
                                </xs:attribute>
                                <!-- Time to download the first "byte" (packet) for the
                                     object in milliseconds -->
                                <xs:attribute name="fbtime" type="xs:int"/>
                                <!-- Start Timestamp when second "byte" (packet) was
                                     received for the object in GMT
                                     {yyyy-MM-dd hh:mm:ss.fff} -->
                                <xs:attribute name="contstart">
                                    <xs:simpleType>
                                        <xs:restriction base="xs:string">
                                            <xs:maxLength value="32"/>
                                        </xs:restriction>
                                    </xs:simpleType>
                                </xs:attribute>
                                <!-- Time to download the second "byte" (packet) for the
                                     object in milliseconds -->
                                <xs:attribute name="conttime" type="xs:int"/>
                                <!-- Root Url of the Host from which the object was
                                     downloaded (scheme + host) -->
                                <xs:attribute name="uhost">
                                    <xs:simpleType>
                                        <xs:restriction base="xs:string">
                                            <xs:maxLength value="256"/>
                                        </xs:restriction>
                                    </xs:simpleType>
                                </xs:attribute>
                                <!-- Url of the object -->
                                <xs:attribute name="upage">
                                    <xs:simpleType>
                                        <xs:restriction base="xs:string">
                                            <xs:maxLength value="2048"/>
                                        </xs:restriction>
                                    </xs:simpleType>
                                </xs:attribute>
                                <!-- URL Object request parameters -->
                                <xs:attribute name="uparam">
                                    <xs:simpleType>
                                        <xs:restriction base="xs:string">
                                            <xs:maxLength value="2048"/>
                                        </xs:restriction>
                                    </xs:simpleType>
                                </xs:attribute>
                                <!-- If a redirect, the object ID of the redirection
                                     (References OBJECT.oseq) -->
                                <xs:attribute name="redirobjid" type="xs:int"/>
                                <xs:attribute name="csum" type="xs:int"/>   
                                <xs:attribute name="spdy" type="xs:int"/>   
                                <!-- LM Population id -->
                                <xs:attribute name="popid" type="xs:int"/>
                            </xs:complexType>
                        </xs:element>
                    </xs:sequence>
                    <!-- Unique Page Sequence Id -->
                    <xs:attribute name="pseq" type="xs:int" use="required"/>
                    <!-- Page description -->
                    <xs:attribute name="pname" use="optional">
                        <xs:simpleType>
                            <xs:restriction base="xs:string">
                                <xs:maxLength value="600" />
                            </xs:restriction>
                        </xs:simpleType>
                    </xs:attribute>
                    <!-- Page URL -->
                    <xs:attribute name="url" use="optional">
                        <xs:simpleType>
                            <xs:restriction base="xs:string">
                                <xs:maxLength value="2048" />
                            </xs:restriction>
                        </xs:simpleType>
                    </xs:attribute>
                    <!-- Response time of the page in milliseconds -->
                    <xs:attribute name="rtime" type="xs:int"/>
                    <!-- Count of objects downloaded on the page -->
                    <xs:attribute name="nobj" type="xs:int"/>
                    <!-- Count of object with a return code in the range between 200 and
                         299 (inclusive) -->
                    <xs:attribute name="rc200" type="xs:int"/>
                    <!-- Count of object with a return code in the range between 300 and
                         399 (inclusive) -->
                    <xs:attribute name="rc300" type="xs:int"/>
                    <!-- Count of object with a return code in the range between 400 and
                         499 (inclusive) -->
                    <xs:attribute name="rc400" type="xs:int"/>
                    <!-- Count of object with a return code in the range between 500 and
                         599 (inclusive) -->
                    <xs:attribute name="rc500" type="xs:int"/>
                    <!-- Binary flag to indicate network related errors. Default is 0 -->
                    <xs:attribute name="rcnet" type="xs:int"/>
                    <!-- Binary flag to indicate (internal) site related errors.
                         Default is 0 -->
                    <xs:attribute name="rcint" type="xs:int"/>
                    <!-- Count of bytes downloaded for the page -->
                    <xs:attribute name="nbyte" type="xs:int"/>
                    <!-- Count of unique hosts referenced on the page -->
                    <xs:attribute name="nhost" type="xs:int"/>
                    <!-- Count of unique connections referenced on the page -->
                    <xs:attribute name="nconn" type="xs:int"/>
                    <!-- Content Match Text (where applicable). Contains match source text  
                    -->
                    <xs:attribute name="cmtext">
                        <xs:simpleType>
                            <xs:restriction base="xs:string">
                                <xs:maxLength value="512"/>
                            </xs:restriction>
                        </xs:simpleType>
                    </xs:attribute>
                    <!-- Binary Content Match Status Indicator (where applicable).
                         0 = Not Matched, 1 = Matched -->
                    <xs:attribute name="cmstat" type="xs:int"/>
                    <!-- Binary flag to indicate a socket time-out error -->
                    <xs:attribute name="tostat" type="xs:int"/>
                    <!-- Binary flag to indicate a User Script error -->
                    <xs:attribute name="usstat" type="xs:int"/>
                    <!-- User Script error detail -->
                    <xs:attribute name="userr" use="optional" >
                        <xs:simpleType>
                            <xs:restriction base="xs:string">
                                <xs:maxLength value="512"/>
                            </xs:restriction>
                        </xs:simpleType>
                    </xs:attribute>
                    <!-- Binary flag to indicate a byte limit exceeded error -->
                    <xs:attribute name="blstat" type="xs:int"/>
                    <!-- Root object sequence number of the first object with a 200 return
                         code. This id can be used to determine which object caused the
                         page to fail (References OBJECT.oseq) -->
                    <xs:attribute name="rtobjseq" type="xs:int"/>
                    <!-- Sum of all DNS lookup times (HOST.dnstime) for all the connections
                         associated with this page in milliseconds -->
                    <xs:attribute name="dnssum" type="xs:int"/>
                    <!-- Count of all hosts for all the connections associated with this
                         page -->
                    <xs:attribute name="ndns" type="xs:int"/>
                    <!-- Sum of all vonnection times (CONN.conntime) for all the
                         connections associated with this page in milliseconds -->
                    <xs:attribute name="connsum" type="xs:int"/>
                    <!-- Count of all vonnections associated with this page -->
                    <xs:attribute name="nconn1" type="xs:int"/>
                    <!-- Sum of all SSL times (CONN.ssltime) for all the secure
                         connections associated with this page in milliseconds -->
                    <xs:attribute name="sslsum" type="xs:int"/>
                    <!-- Count of all secure connections associated with this page -->
                    <xs:attribute name="nssl" type="xs:int"/>
                    <!-- Sum of all first "byte" (packet) for all the objects associated
                         with this page in milliseconds -->
                    <xs:attribute name="fbsum" type="xs:int"/>
                    <!-- Count of all first "byte" (packet) objects associated with
                         this page -->
                    <xs:attribute name="nfb" type="xs:int"/>
                    <!-- Sum of all second "byte" (packet) + subseqent for all the objects
                         associated with this page in milliseconds -->
                    <xs:attribute name="contsum" type="xs:int"/>
                    <!-- Count of all second "byte" (packet) + subsequenct objects
                         associated with this page -->
                    <xs:attribute name="ncont" type="xs:int"/>
                    <!-- Processing / Client Time Time in Milliseconds -->
                    <xs:attribute name="ptime" type="xs:int"/>
                    <!-- LM Population id -->
                    <xs:attribute name="popid" type="xs:int"/>
                </xs:complexType>
            </xs:element>
            <!-- Transaction W3C Page Element -->
            <xs:element name="W3CPAGE" minOccurs="0" maxOccurs="unbounded">
                <xs:complexType>
                    <!-- Sequence number of first step associated with the w3c page -->
                    <xs:attribute name="rootstepseq" type="xs:int"/>
                    <!-- Sequence number of the w3c page -->
                    <xs:attribute name="w3cseq" type="xs:int"/>
                    <!-- Sequence numbers of all steps associated with the w3c page -->
                    <xs:attribute name="stepseqs">
                        <xs:simpleType>
                            <xs:restriction base="xs:string">
                                <xs:maxLength value="2000"/>
                            </xs:restriction>
                        </xs:simpleType>
                    </xs:attribute>
                    <!-- window.performance.timing.navigationStart -->
                    <xs:attribute name="navstart">
                        <xs:simpleType>
                            <xs:restriction base="xs:string">
                                <xs:maxLength value="32"/>
                            </xs:restriction>
                        </xs:simpleType>
                    </xs:attribute>
                    <!-- Offset of window.performance.timing.unloadEventStart -->
                    <xs:attribute name="uldstart" type="xs:int"/>
                    <!-- Offset of window.performance.timing.unloadEventEnd -->
                    <xs:attribute name="uldend" type="xs:int"/>
                    <!-- Offset of window.performance.timing.redirectStart -->
                    <xs:attribute name="rdstart" type="xs:int"/>
                    <!-- Offset of window.performance.timing.redirectEnd -->
                    <xs:attribute name="rdend" type="xs:int"/>
                    <!-- Offset of window.performance.timing.fetchStart -->
                    <xs:attribute name="fchstart" type="xs:int"/>
                    <!-- Offset of window.performance.timing.domainLookupStart -->
                    <xs:attribute name="dlkstart" type="xs:int"/>
                    <!-- Offset of window.performance.timing.domainLookupEnd -->
                    <xs:attribute name="dlkend" type="xs:int"/>
                    <!-- Offset of window.performance.timing.connectStart -->
                    <xs:attribute name="constart" type="xs:int"/>
                    <!-- Offset of window.performance.timing.connectEnd -->
                    <xs:attribute name="conend" type="xs:int"/>
                    <!-- Offset of window.performance.timing.secureConnectionStart -->
                    <xs:attribute name="sconstart" type="xs:int"/>
                    <!-- Offset of window.performance.timing.requestStart -->
                    <xs:attribute name="reqstart" type="xs:int"/>
                    <!-- Offset of window.performance.timing.responseStart -->
                    <xs:attribute name="rspstart" type="xs:int"/>
                    <!-- Offset of window.performance.timing.responseEnd -->
                    <xs:attribute name="rspend" type="xs:int"/>
                    <!-- Offset of window.performance.timing.domLoading -->
                    <xs:attribute name="domld" type="xs:int"/>
                    <!-- Offset of window.performance.timing.domInteractive -->
                    <xs:attribute name="domint" type="xs:int"/>
                    <!-- Offset of window.performance.timing.domContentLoadedEventStart -->
                    <xs:attribute name="dcldstart" type="xs:int"/>
                    <!-- Offset of window.performance.timing.domContentLoadedEventEnd -->
                    <xs:attribute name="dcldend" type="xs:int"/>
                    <!-- Offset of window.performance.timing.domComplete -->
                    <xs:attribute name="domcmpl" type="xs:int"/>
                    <!-- Offset of window.performance.timing.loadEventStart -->
                    <xs:attribute name="ldstart" type="xs:int"/>
                    <!-- Offset of window.performance.timing.loadEventEnd -->
                    <xs:attribute name="ldend" type="xs:int"/>
                    <!-- unload time = unloadEventEnd - unloadEventStart -->
                    <xs:attribute name="uldtime" type="xs:int"/>
                    <!-- fetch time = domainLookupStart - fetchStart -->
                    <xs:attribute name="fchtime" type="xs:int"/>
                    <!-- DNS time of the w3c page -->
                    <xs:attribute name="dnstime" type="xs:int"/>
                    <!-- connect time = connectEnd - connectStart -->
                    <xs:attribute name="contime" type="xs:int"/>
                    <!-- request time = responseStart - requestStart -->
                    <xs:attribute name="reqtime" type="xs:int"/>
                    <!-- request time = responseEnd - responseStart -->
                    <xs:attribute name="rsptime" type="xs:int"/>
                    <!-- SSL time of the w3c page -->
                    <xs:attribute name="ssltime" type="xs:int"/>
                    <!-- Offset of the first paint event of the w3c page -->
                    <xs:attribute name="firtpaint" type="xs:int"/>
                </xs:complexType>
            </xs:element>
            <!-- Transaction Host Element -->
            <xs:element name="HOST" minOccurs="0" maxOccurs="unbounded">
                <xs:complexType>
                    <xs:sequence>
                        <!-- Transaction Connection Element -->
                        <xs:element name="CONN" minOccurs="0" maxOccurs="unbounded">
                            <xs:complexType>
                                <!-- Unique Connection Id (Referenced from OBJECT.connid)
                                -->
                                <xs:attribute name="connid" type="xs:int" use="required"/>
                                <!-- Unique Page Sequence Id (References PAGE.pseq) -->
                                <xs:attribute name="page" type="xs:int"/>
                                <!-- Response time to download all objects on this
                                     connection in milliseconds -->
                                <xs:attribute name="rtime" type="xs:int"/>
                                <!-- Start Timestamp when connection was established in GMT
                                     {yyyy-MM-dd hh:mm:ss.fff} -->
                                <xs:attribute name="connstart">
                                    <xs:simpleType>
                                        <xs:restriction base="xs:string">
                                            <xs:maxLength value="32"/>
                                        </xs:restriction>
                                    </xs:simpleType>
                                </xs:attribute>
                                <!-- Time to establish the connection in milliseconds -->
                                <xs:attribute name="conntime" type="xs:int"/>
                                <!-- Start Timestamp when SSL handshake was established in
                                     GMT {yyyy-MM-dd hh:mm:ss.fff} -->
                                <xs:attribute name="sslstart">
                                    <xs:simpleType>
                                        <xs:restriction base="xs:string">
                                            <xs:maxLength value="32"/>
                                        </xs:restriction>
                                    </xs:simpleType>
                                </xs:attribute>
                                <!-- Time to complete the SSL handshake phase of the
                                     connection in milliseconds -->
                                <xs:attribute name="ssltime" type="xs:int"/>
                                <!-- Total number of bytes downloaded on this connection -->
                                <xs:attribute name="nbyte" type="xs:int"/>
                                <!-- Total number of errors occurring on this connection -->
                                <xs:attribute name="nerr" type="xs:int"/>
                                <!-- Total number of objects downloaded on this connection
                                -->
                                <xs:attribute name="nobj" type="xs:int"/>
                                <xs:attribute name="popid" type="xs:int"/>
                            </xs:complexType>
                        </xs:element>
                    </xs:sequence>
                    <!-- Unique Host Id (Referenced from OBJECT.hid) -->
                    <xs:attribute name="hid" type="xs:int" use="required"/>
                    <!-- Unique Page Sequence Id (References PAGE.pseq) -->
                    <xs:attribute name="page" type="xs:int"/>
                    <!-- Start Timestamp when DNS lookup was completed in GMT
                         {yyyy-MM-dd hh:mm:ss.fff} -->
                    <xs:attribute name="dnsstart">
                        <xs:simpleType>
                            <xs:restriction base="xs:string">
                                <xs:maxLength value="32"/>
                            </xs:restriction>
                        </xs:simpleType>
                    </xs:attribute>
                    <!-- Time to complete the DNS lookup in milliseconds -->
                    <xs:attribute name="dnstime" type="xs:int"/>
                    <!-- Total number of bytes downloaded from this host -->
                    <xs:attribute name="nbyte" type="xs:int"/>
                    <!-- Total number of errors detected from this host -->
                    <xs:attribute name="nerr" type="xs:int"/>
                    <!-- Total number of errors downloaded from this host -->
                    <xs:attribute name="nobj" type="xs:int"/>
                    <!-- Total number of connections established to this host -->
                    <xs:attribute name="nconn" type="xs:int"/>
                    <!-- IP Address of this host -->
                    <xs:attribute name="ip">
                        <xs:simpleType>
                            <xs:restriction base="xs:string">
                                <xs:maxLength value="50"/>
                            </xs:restriction>
                        </xs:simpleType>
                    </xs:attribute>
                    <xs:attribute name="isipv6" type="xs:boolean" />
                    <xs:attribute name="popid" type="xs:int"/>
                </xs:complexType>
            </xs:element>
        </xs:sequence>
        <!-- Test Id : Monitor Id (Backbone), Monitor Instance Id
             (Last Mile / Private Peer / Mobile) -->
        <xs:attribute name="mid" type="xs:int" use="required"/>
        <xs:attribute name="tname" use="optional">
            <xs:simpleType>
                <xs:restriction base="xs:string">
                    <xs:maxLength value="600"/>
                </xs:restriction>
            </xs:simpleType>
        </xs:attribute>
        <!-- Location Id : Site Id (Backbone), Population Id
             (Last Mile / Private Peer / Mobile) -->
        <xs:attribute name="sid" type="xs:int" use="required"/>
        <!-- Test Timestamp in GMT. {yyyy-MM-dd hh:mm:ss.fff} -->
        <xs:attribute name="ttime">
            <xs:simpleType>
                <xs:restriction base="xs:string">
                    <xs:maxLength value="32"/>
                </xs:restriction>
            </xs:simpleType>
        </xs:attribute>
        <!-- Backbone Site Name -->
        <xs:attribute name="sname" use="optional">
            <xs:simpleType>
                <xs:restriction base="xs:string">
                    <xs:maxLength value="600"/>
                </xs:restriction>
            </xs:simpleType>
        </xs:attribute>
        <!-- Last Mile / Private Peer / Mobile Population Name -->
        <xs:attribute name="popname" use="optional">
            <xs:simpleType>
                <xs:restriction base="xs:string">
                    <xs:maxLength value="600"/>
                </xs:restriction>
            </xs:simpleType>
        </xs:attribute>
        <!-- Population country -->
        <xs:attribute name="popcountry" use="optional">
            <xs:simpleType>
                <xs:restriction base="xs:string">
                    <xs:maxLength value="4000"/>
                </xs:restriction>
            </xs:simpleType>
        </xs:attribute>
        <!-- End-To-End Response Time in Milliseconds -->
        <xs:attribute name="rtime" type="xs:int"/>
        <!-- Count of Total Pages Tested -->
        <xs:attribute name="tpt" type="xs:int"/>
        <!-- Count of Total Pages Successful -->
        <xs:attribute name="tps" type="xs:int"/>
        <!-- Ciybt if Total Pages Failed -->
        <xs:attribute name="tpf" type="xs:int"/>
        <!-- Count of Total Object Tested -->
        <xs:attribute name="tot" type="xs:int"/>
        <!-- Count of Total Objects Successful -->
        <xs:attribute name="tos" type="xs:int"/>
        <!-- Count of Total Objects Failed -->
        <xs:attribute name="tof" type="xs:int"/>
        <!-- Total Number of Bytes Downloaded -->
        <xs:attribute name="nbyte" type="xs:int"/>
        <!-- Collection Agent Type Discriminator -->
        <xs:attribute name="browsertype">
            <xs:simpleType>
                <xs:restriction base="xs:string">
                    <xs:maxLength value="50"/>
                    <xs:pattern value="UTA|IE7|FF35|CH23"/>
                </xs:restriction>
            </xs:simpleType>
        </xs:attribute>
        <!-- Is site capable of ipv6 -->
        <xs:attribute name="sipv6ready" type="xs:boolean" />
        <!-- IPV6 preference -->
        <xs:attribute name="testipv6pref" type="ipversionType" use="optional"/>
        <!-- Population id -->
        <xs:attribute name="popid" type="xs:int"/>
        <!-- pre Test Bandwidth-->
        <xs:attribute name="prebw" type="xs:int"/>
        <!-- Post Test Bandwidth -->
        <xs:attribute name="postbw" type="xs:int"/>
        <!-- Actual Bandwidth -->
        <xs:attribute name="actualbw" type="xs:int"/>
        <!-- Unique Peer id -->
        <xs:attribute name="prid" type="xs:int"/>
        <!-- Peer region -->
        <xs:attribute name="prreg" type="xs:string"/>
        <!-- Peer ISP -->
        <xs:attribute name="prisp" type="xs:string"/>
        <!-- Peer IP -->
        <xs:attribute name="prip">
            <xs:simpleType>
                <xs:restriction base="xs:string">
                    <xs:maxLength value="50"/>
                </xs:restriction>
            </xs:simpleType>
        </xs:attribute>
    </xs:complexType>

    <!--
    ***********************************
    Data Cut Response Type      
    ***********************************
    -->
    <xs:complexType name="DataCutTestType">
        <xs:sequence>
            <!-- LM Peer Machine Info -->
            <xs:element name="MACHINEINFO" type="MachineInfo" minOccurs="0" maxOccurs="1"/>
        </xs:sequence>
        <!-- Test Cut Event Timestamp in GMT. {yyyy-MM-dd hh:mm:ss.fff}-->
        <xs:attribute name="cutdate">
            <xs:simpleType>
                <xs:restriction base="xs:string">
                    <xs:maxLength value="32"/>
                </xs:restriction>
            </xs:simpleType>
        </xs:attribute>
        <!-- Test Id : Monitor Id (Backbone), Monitor Instance Id
             (Last Mile / Private Peer / Mobile) -->
        <xs:attribute name="mid" type="xs:int" use="required"/>
        <!-- Location Id : Site Id (Backbone), Population Id
             (Last Mile / Private Peer / Mobile) -->
        <xs:attribute name="sid" type="xs:int" use="required"/>
        <!-- Test Timestamp in GMT. {yyyy-MM-dd hh:mm:ss.fff}-->
        <xs:attribute name="ttime">
            <xs:simpleType>
                <xs:restriction base="xs:string">
                    <xs:maxLength value="32"/>
                </xs:restriction>
            </xs:simpleType>
        </xs:attribute>   
    </xs:complexType>

    <!--
    ***********************************
    Message Response Type
    ***********************************
    -->
    <xs:complexType name="MessageType">
        <!-- Test Id : Monitor Id (Backbone), Monitor Instance Id
             (Last Mile / Private Peer / Mobile) -->
        <xs:attribute name="mid" type="xs:int" use="required"/>
        <!-- General Message Text -->
        <xs:attribute name="Msg" type="xs:string" use="required"/>
    </xs:complexType>

    <!--
    ***********************************
    Monitor Class Designator Type
    Common element in all responses.
    ***********************************
    -->
    <xs:complexType name="MonitorClassDesignatorType">
        <xs:attribute name="MonitorClassDesignator">
            <xs:simpleType>
                <xs:restriction base="xs:string">
                    <xs:maxLength value="20"/>
                </xs:restriction>
            </xs:simpleType>
        </xs:attribute>
    </xs:complexType>

    <!--
    ***********************************
    Streaming Response Type
    ***********************************
    -->
    <xs:complexType name="StreamTestType">
        <xs:sequence>
            <!-- Event Element -->
            <xs:element name="EVENT" minOccurs="0" maxOccurs="unbounded">
                <xs:complexType>
                    <!-- Unique event id -->
                    <xs:attribute name="sevt_id" type="xs:int" use="required"/>
                    <!-- Event name -->
                    <xs:attribute name="name">
                        <xs:simpleType>
                            <xs:restriction base="xs:string">
                                <xs:maxLength value="100"/>
                            </xs:restriction>
                        </xs:simpleType>
                    </xs:attribute>
                    <!-- Offset of event occurrence from start of test in milliseconds -->
                    <xs:attribute name="offset" type="xs:int"/>
                </xs:complexType>
            </xs:element>
            <!-- Metadata Element -->
            <xs:element name="META" minOccurs="0" maxOccurs="unbounded">
                <xs:complexType>
                    <!-- Unique sequence id of metadata element -->
                    <xs:attribute name="metaseq" type="xs:int" use="required"/>
                    <!--
                    Unique metadata key name for metadata element
                    Common key values:
                        'mediaFormat'
                        'frameSize'
                        'totalBytes'
                        'frameRate'
                        'recommendedFrameRate'
                        'recommendedBandwidth'
                        'recommendedDuration'                        
                    -->
                    <xs:attribute name="smetakey">
                        <xs:simpleType>
                            <xs:restriction base="xs:string">
                                <xs:maxLength value="255"/>
                            </xs:restriction>
                        </xs:simpleType>
                    </xs:attribute>
                    <!--
                    Metadata value for metadata element. Type depends on metadata key
                        'mediaFormat' - Data type is string(255)
                        'frameSize' - Data type is unsigned long
                        'totalBytes' - Data type is unsigned long
                        'frameRate' - Data type is unsigned long
                        'recommendedFrameRate' - Data type is unsigned long
                        'recommendedBandwidth' - Data type is unsigned long
                        'recommendedDuration' - Data type is unsigned long
                    -->
                    <xs:attribute name="smetaval">
                        <xs:simpleType>
                            <xs:restriction base="xs:string">
                                <xs:maxLength value="255"/>
                            </xs:restriction>
                        </xs:simpleType>
                    </xs:attribute>
                </xs:complexType>
            </xs:element>
            <!-- Trace Route Element -->
            <xs:element name="TRACE" minOccurs="0" maxOccurs="unbounded">
                <xs:complexType>
                    <!-- Unique trace sequence / hop id-->
                    <xs:attribute name="hopnum" type="xs:int" use="required"/>
                    <!-- IP address of destination -->
                    <xs:attribute name="ip">
                        <xs:simpleType>
                            <xs:restriction base="xs:string">
                                <xs:maxLength value="50"/>
                            </xs:restriction>
                        </xs:simpleType>
                    </xs:attribute>
                    <!-- Host name of destination -->
                    <xs:attribute name="host">
                        <xs:simpleType>
                            <xs:restriction base="xs:string">
                                <xs:maxLength value="100"/>
                            </xs:restriction>
                        </xs:simpleType>
                    </xs:attribute>
                    <!-- Time delay in milliseconds -->
                    <xs:attribute name="delay" type="xs:int"/>
                </xs:complexType>
            </xs:element>
        </xs:sequence>
        <!-- Test Id : Monitor Id (Backbone), Monitor Instance Id
             (Last Mile / Private Peer / Mobile) -->        
        <xs:attribute name="mid" type="xs:int" use="required"/>
        <!-- Backbone Site Id -->
        <xs:attribute name="sid" type="xs:int" use="required"/>
        <!-- Test Timestamp in GMT. {yyyy-MM-dd hh:mm:ss.fff}-->
        <xs:attribute name="ttime" type="xs:dateTime" use="required"/>
        <!-- Page sequence id for transaction integrated streaming tests. -1 for
             standalone tests. -->
        <xs:attribute name="pseq" type="xs:int" use="required"/>
        <!-- Unique stream sequence id -->
        <xs:attribute name="sseq" type="xs:int" use="required"/>
        <!-- Start Timestamp in GMT. {yyyy-MM-dd hh:mm:ss.fff}-->
        <xs:attribute name="stime" type="xs:dateTime" use="required"/>
        <!-- System (high-level) error code -->
        <xs:attribute name="errrsyscode" type="xs:int" use="required"/>
        <!-- System error description -->
        <xs:attribute name="errdesc">
            <xs:simpleType>
                <xs:restriction base="xs:string">
                    <xs:maxLength value="1000"/>
                </xs:restriction>
            </xs:simpleType>
        </xs:attribute>
        <!-- Raw (low-level) System error description -->
        <xs:attribute name="errrawcode" type="xs:int"/>
        <!-- Stream protocol. Sample values include (but not limited to):
             {'http'|'rtmp'|'rtspt'|'rtspu'} -->
        <xs:attribute name="sproto">
            <xs:simpleType>
                <xs:restriction base="xs:string">
                    <xs:maxLength value="100"/>
                </xs:restriction>
            </xs:simpleType>
        </xs:attribute>
        <!-- IP Address of target host -->
        <xs:attribute name="ip">
            <xs:simpleType>
                <xs:restriction base="xs:string">
                    <xs:maxLength value="50"/>
                </xs:restriction>
            </xs:simpleType>
        </xs:attribute>
        <!-- Url of tested stream -->
        <xs:attribute name="url">
            <xs:simpleType>
                <xs:restriction base="xs:string">
                    <xs:maxLength value="4365"/>
                </xs:restriction>
            </xs:simpleType>
        </xs:attribute>
        <!-- Duration of stream test in milliseconds -->
        <xs:attribute name="durinms" type="xs:int"/>
        <!-- Frames per second -->
        <xs:attribute name="fps" type="xs:int"/>
        <!--
            Stream End Type Designator
            SUCCESS - Test completed successfully
            EXPIRED - Stream expired before end of test was reached
            FAILED  - Test Failed
        -->
        <xs:attribute name="endtype">
            <xs:simpleType>
                <xs:restriction base="xs:string">
                    <xs:maxLength value="7"/>
                    <xs:pattern value="SUCCESS|EXPIRED|FAILED"/>
                </xs:restriction>
            </xs:simpleType>
        </xs:attribute>
        <!-- Bites per second -->
        <xs:attribute name="bps" type="xs:int"/>
        <!-- Media Server Type -->
        <xs:attribute name="stype">
            <xs:simpleType>
                <xs:restriction base="xs:string">
                    <xs:maxLength value="100"/>
                </xs:restriction>
            </xs:simpleType>
        </xs:attribute>
        <!-- Server Platform -->
        <xs:attribute name="splat">
            <xs:simpleType>
                <xs:restriction base="xs:string">
                    <xs:maxLength value="100"/>
                </xs:restriction>
            </xs:simpleType>
        </xs:attribute>
        <!-- Server Version -->
        <xs:attribute name="sver">
            <xs:simpleType>
                <xs:restriction base="xs:string">
                    <xs:maxLength value="100"/>
                </xs:restriction>
            </xs:simpleType>
        </xs:attribute>
        <!-- DNS Offset Time from start of test in milliseconds -->
        <xs:attribute name="dnsoffset" type="xs:int"/>
        <!-- Total DNS time in milliseconds -->
        <xs:attribute name="dnstime" type="xs:int"/>
        <!-- Connection Offset Time from start of test in milliseconds -->
        <xs:attribute name="connoffset" type="xs:int"/>
        <!-- Total connection time in milliseconds -->
        <xs:attribute name="conntime" type="xs:int"/>
        <!-- Initial buffer time in milliseconds -->
        <xs:attribute name="initbuftime" type="xs:int"/>
        <!-- Total re-buffer time in milliseconds -->
        <xs:attribute name="rebuftime" type="xs:int"/>
        <!-- Count of rebuffer events -->
        <xs:attribute name="rebufcnt" type="xs:int"/>
        <!-- Initial play time in milliseconds -->
        <xs:attribute name="initplytime" type="xs:int"/>
        <!-- Start play time in milliseconds -->
        <xs:attribute name="spt" type="xs:int"/>
        <!-- Initial re-buffer time in milliseconds -->
        <xs:attribute name="initrebuftime" type="xs:int"/>
        <!-- Count of PLAY events -->
        <xs:attribute name="plycnt" type="xs:int"/>
        <xs:attribute name="initialdatareceivetime" type="xs:int"/>
    </xs:complexType>

    <!--
    *************************************
    Single Url Response Type
    **************************************
    -->
    <xs:complexType name="SingleUrlTestType">
        <xs:sequence>
            <!-- Object element -->
            <xs:element name="OBJECT" minOccurs="0" maxOccurs="unbounded">
                <xs:complexType>
                    <!-- Object Url -->
                    <xs:attribute name="url">
                        <xs:simpleType>
                            <xs:restriction base="xs:string">
                                <xs:maxLength value="800"/>
                            </xs:restriction>
                        </xs:simpleType>
                    </xs:attribute>
                    <!-- Return Code -->
                    <xs:attribute name="rc" type="xs:int"/>
                    <!-- MIME Content Type of the Object (when rc < 300) -->
                    <xs:attribute name="ctype">
                        <xs:simpleType>
                            <xs:restriction base="xs:string">
                                <xs:maxLength value="32"/>
                            </xs:restriction>
                        </xs:simpleType>
                    </xs:attribute>
                    <!-- Referencing URL for this object -->
                    <xs:attribute name="refurl">
                        <xs:simpleType>
                            <xs:restriction base="xs:string">
                                <xs:maxLength value="3000"/>
                            </xs:restriction>
                        </xs:simpleType>
                    </xs:attribute>
                    <!-- Redirect URL for this object -->
                    <xs:attribute name="redirurl">
                        <xs:simpleType>
                            <xs:restriction base="xs:string">
                                <xs:maxLength value="3000"/>
                            </xs:restriction>
                        </xs:simpleType>
                    </xs:attribute>
                    <!-- Number of bytes downloaded for this object -->
                    <xs:attribute name="nbytes" type="xs:int"/>
                    <!-- Start Timestamp when DNS lookup was completed in GMT {yyyy-MM-dd
                         hh:mm:ss.fff} -->
                    <xs:attribute name="dnsstart">
                        <xs:simpleType>
                            <xs:restriction base="xs:string">
                                <xs:maxLength value="32"/>
                            </xs:restriction>
                        </xs:simpleType>
                    </xs:attribute>
                    <!-- Time to complete the DNS lookup in milliseconds -->
                    <xs:attribute name="dnstime" type="xs:int"/>
                    <!-- Start Timestamp when connection was established in GMT {yyyy-MM-dd
                         hh:mm:ss.fff}-->
                    <xs:attribute name="connstart">
                        <xs:simpleType>
                            <xs:restriction base="xs:string">
                                <xs:maxLength value="32"/>
                            </xs:restriction>
                        </xs:simpleType>
                    </xs:attribute>
                    <!-- Time to establish the connection in milliseconds -->
                    <xs:attribute name="conntime" type="xs:int"/>
                    <!-- Start Timestamp when first "byte" (packet) was received for the
                         object in GMT {yyyy-MM-dd hh:mm:ss.fff}-->
                    <xs:attribute name="fbstart">
                        <xs:simpleType>
                            <xs:restriction base="xs:string">
                                <xs:maxLength value="32"/>
                            </xs:restriction>
                        </xs:simpleType>
                    </xs:attribute>
                    <!-- Time to download the first "byte" (packet) for the object in
                         milliseconds -->
                    <xs:attribute name="fbtime" type="xs:int"/>
                    <!-- Start Timestamp when second "byte" (packet) was received for the
                         object in GMT {yyyy-MM-dd hh:mm:ss.fff} -->
                    <xs:attribute name="contstart">
                        <xs:simpleType>
                            <xs:restriction base="xs:string">
                                <xs:maxLength value="32"/>
                            </xs:restriction>
                        </xs:simpleType>
                    </xs:attribute>
                    <!-- Time to download the second "byte" (packet) for the object in
                         milliseconds -->
                    <xs:attribute name="conttime" type="xs:int"/>
                    <!-- Start Timestamp when redirect was started for the object in GMT
                         {yyyy-MM-dd hh:mm:ss.fff} -->
                    <xs:attribute name="relocstart">
                        <xs:simpleType>
                            <xs:restriction base="xs:string">
                                <xs:maxLength value="32"/>
                            </xs:restriction>
                        </xs:simpleType>
                    </xs:attribute>
                    <!-- Time to execute all redirects in milliseconds -->
                    <xs:attribute name="reloctime" type="xs:int"/>
                    <!-- IP Address of targeted object -->
                    <xs:attribute name="ip">
                        <xs:simpleType>
                            <xs:restriction base="xs:string">
                                <xs:maxLength value="100"/>
                            </xs:restriction>
                        </xs:simpleType>
                    </xs:attribute>
                </xs:complexType>
            </xs:element>
        </xs:sequence>
        <!-- Test Id : Monitor Id (Backbone), Monitor Instance Id
             (Last Mile / Private Peer / Mobile) -->
        <xs:attribute name="mid" type="xs:int" use="required"/>
        <!-- Location Id : Site Id (Backbone) -->
        <xs:attribute name="sid" type="xs:int" use="required"/>
        <!-- Test Timestamp in GMT. {yyyy-MM-dd hh:mm:ss.fff}-->
        <xs:attribute name="ttime">
            <xs:simpleType>
                <xs:restriction base="xs:string">
                    <xs:maxLength value="32"/>
                </xs:restriction>
            </xs:simpleType>
        </xs:attribute>
        <!-- Backbone Site Name -->
        <xs:attribute name="sname" use="required">
            <xs:simpleType>
                <xs:restriction base="xs:string">
                    <xs:maxLength value="600"/>
                </xs:restriction>
            </xs:simpleType>
        </xs:attribute>
        <!-- Response time of the page in milliseconds -->
        <xs:attribute name="rtime" type="xs:int"/>
        <!-- Total objects tested -->
        <xs:attribute name="tot" type="xs:int"/>
        <!-- Total objects successful -->
        <xs:attribute name="tos" type="xs:int"/>
        <!-- Binary Content Match Status Indicator (where applicable).
             0 = Not Matched, 1 = Matched -->
        <xs:attribute name="cmstat">
            <xs:simpleType>
                <xs:restriction base="xs:string">
                    <xs:maxLength value="1"/>
                </xs:restriction>
            </xs:simpleType>
        </xs:attribute>
        <!-- Content Match Text (where applicable). Contains match source text  -->
        <xs:attribute name="cmtext">
            <xs:simpleType>
                <xs:restriction base="xs:string">
                    <xs:maxLength value="255"/>
                </xs:restriction>
            </xs:simpleType>
        </xs:attribute>
    </xs:complexType>

    <!--
    **************************************
    Status Response Type
    **************************************
    -->
    <xs:complexType name="COpStatusData">
        <xs:sequence>
            <!-- Status Type Indicator -->
            <xs:element name="eStatus" type="StatusType"/>
            <!-- Error message when eStatus == "STATUS_FAILED" -->
            <xs:element name="sErrorMessage" type="xs:string" minOccurs="0"/>
        </xs:sequence>
    </xs:complexType>
    <xs:simpleType name="StatusType">
        <xs:restriction base="xs:string">
            <!-- Operation Successful -->
            <xs:enumeration value="STATUS_SUCCESS"/>
            <!-- Operation Failed - see ErrorMessage for details -->
            <xs:enumeration value="STATUS_FAILED"/>
        </xs:restriction>
    </xs:simpleType>
    <!--
  ***********
  LastMile DNSINFO Type based on Machine level
  ***********
  -->
    <xs:complexType name="DnsInfo">   
        <!-- Sequence number-->
        <xs:attribute name="dseq" type="xs:int" use="required"/>
        <!-- DNS IP Address -->
        <xs:attribute name="dip">
            <xs:simpleType>
                <xs:restriction base="xs:string">
                    <xs:maxLength value="30"/>
                </xs:restriction>
            </xs:simpleType>
        </xs:attribute>   
    </xs:complexType>
    <!--
  ***********
  LastMile Object HEADER Type based on Object level
  ***********
  -->
    <xs:complexType name="ObjectHeader">
        <xs:attribute name="hseq" type="xs:int" use="required"/>
        <xs:attribute name="hname">
            <xs:simpleType>
                <xs:restriction base="xs:string">
                    <xs:maxLength value="512"/>
                </xs:restriction>
            </xs:simpleType>
        </xs:attribute>
        <xs:attribute name="hvalue">
            <xs:simpleType>
                <xs:restriction base="xs:string">
                    <xs:maxLength value="1024"/>
                </xs:restriction>
            </xs:simpleType>
        </xs:attribute>
    </xs:complexType>
    <!--
        ********
        LastMile/Private/Mobile PEER MachineInfo Type
        ********
     -->
    <xs:complexType name="MachineInfo">
        <xs:sequence>
            <!-- LM Peer side DNS Info, based on MachineInfo -->   
            <xs:element name="DNSINFO" type="DnsInfo" minOccurs="0" maxOccurs="unbounded"/>     
        </xs:sequence>
        <xs:attribute name="siteId" type="xs:int" use="optional" />
        <!--(Public / Private/ Mobile) Peer Machine Id -->
        <xs:attribute name="machineid" type="xs:int" use="required" />
        <!--(Public / Private/ Mobile) Peer Machine Name -->
        <xs:attribute name="machinename" use="required">
            <xs:simpleType>
                <xs:restriction base="xs:string">
                    <xs:maxLength value="30"/>
                </xs:restriction>
            </xs:simpleType>
        </xs:attribute>
        <!-- (Public / Private/ Mobile) Peer Machine IP Address -->
        <xs:attribute name="mipaddress" use="optional">
            <xs:simpleType>
                <xs:restriction base="xs:string">
                    <xs:maxLength value="30"/>
                </xs:restriction>
            </xs:simpleType>
        </xs:attribute>
        <!-- (Public / Private/ Mobile) Peer Machine country -->
        <xs:attribute name="mcountry" use="optional">
            <xs:simpleType>
                <xs:restriction base="xs:string">
                    <xs:maxLength value="50"/>
                </xs:restriction>
            </xs:simpleType>
        </xs:attribute>
        <!-- (Public / Private/ Mobile) Peer Machine region -->
        <xs:attribute name="mregion" use="optional">
            <xs:simpleType>
                <xs:restriction base="xs:string">
                    <xs:maxLength value="50"/>
                </xs:restriction>
            </xs:simpleType>
        </xs:attribute>   
        <!-- (Public / Private/ Mobile) Peer Machine ISP name -->
        <xs:attribute name="misp" use="optional">
            <xs:simpleType>
                <xs:restriction base="xs:string">
                    <xs:maxLength value="128"/>
                </xs:restriction>
            </xs:simpleType>
        </xs:attribute>
        <!-- (Public / Private/ Mobile) Peer Machine available Bandwidth category -->
        <xs:attribute name="mbandwidthcategory" use="optional">
            <xs:simpleType>
                <xs:restriction base="xs:string">
                    <xs:maxLength value="50"/>
                </xs:restriction>
            </xs:simpleType>
        </xs:attribute>
        <!-- (Public / Private/ Mobile) Peer Machine ConnectionType -->
        <xs:attribute name="mconnectionType" use="optional">
            <xs:simpleType>
                <xs:restriction base="xs:string">
                    <xs:maxLength value="30"/>
                </xs:restriction>
            </xs:simpleType>
        </xs:attribute>
        <!-- (Private/ Mobile) Peer Machine USYS_USERDEF1 -->
        <xs:attribute name="muserdef1" use="optional">
            <xs:simpleType>
                <xs:restriction base="xs:string">
                    <xs:maxLength value="50"/>
                </xs:restriction>
            </xs:simpleType>
        </xs:attribute>
        <!-- (Private/ Mobile) Peer Machine USYS_USERDEF2 -->
        <xs:attribute name="muserdef2" use="optional">
            <xs:simpleType>
                <xs:restriction base="xs:string">
                    <xs:maxLength value="50"/>
                </xs:restriction>
            </xs:simpleType>
        </xs:attribute>
        <!-- (Private/ Mobile) Peer Machine USYS_USERDEF3 -->
        <xs:attribute name="muserdef3" use="optional">
            <xs:simpleType>
                <xs:restriction base="xs:string">
                    <xs:maxLength value="50"/>
                </xs:restriction>
            </xs:simpleType>
        </xs:attribute>        
    </xs:complexType>
    <xs:simpleType name="ipversionType">
        <xs:restriction base="xs:string">
            <xs:enumeration value="IPv4_only"/>
            <xs:enumeration value="IPv6_only"/>
            <xs:enumeration value="IPv6_preferred"/>
        </xs:restriction>
    </xs:simpleType>
</xs:schema>