<?xml version="1.0" encoding="UTF-8"?>
<xs:schema attributeFormDefault="unqualified"
    elementFormDefault="qualified"
    targetNamespace="http://ws.easylink.com/JobSummary/2011/01"
    xmlns:xoajs="http://ws.easylink.com/JobSummary/2011/01" xmlns:xs="http://www.w3.org/2001/XMLSchema">
    <!-- ================================= 
	<xs:include schemaLocation="JobSummaryCountsType.xsd"/>
	<xs:include schemaLocation="ExtDataType.xsd"/>
	<xs:include schemaLocation="AttachmentInfoType.xsd"/>
	<xs:include schemaLocation="FaxModeType.xsd"/>
	<xs:include schemaLocation="JobGroupStatusType.xsd"/>
	<xs:include schemaLocation="TransferNumType.xsd"/>
	<xs:include schemaLocation="EncodableStringType.xsd"/>
	<xs:include schemaLocation="AddressType.xsd"/>
	<xs:include schemaLocation="DestinationType.xsd"/>
	<xs:include schemaLocation="ListIdType.xsd"/>
	<xs:include schemaLocation="OwnershipLevelType.xsd"/>
	<xs:include schemaLocation="ScheduleType.xsd"/>
	<xs:include schemaLocation="SecurityType.xsd"/>
	<xs:include schemaLocation="JobIdType.xsd"/>
	<xs:include schemaLocation="StatusType.xsd"/>
	 ================================== -->
    <xs:complexType name="ErrorInfoType">
        <xs:annotation>
            <xs:documentation>Information for Error state</xs:documentation>
        </xs:annotation>
        <xs:sequence>
            <xs:element name="ErrorCategory" type="xs:string"/>
            <xs:element minOccurs="0" name="ErrorProcessingCode" type="xs:string">
                <xs:annotation>
                    <xs:documentation>named to avoid confusion with Status ErrorCode</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element minOccurs="0" name="ErrorDetail" type="xs:string"/>
        </xs:sequence>
    </xs:complexType>
    <xs:simpleType name="StatusScopeType">
        <xs:annotation>
            <xs:documentation>May be used for Auxiliary Status</xs:documentation>
        </xs:annotation>
        <xs:restriction base="xs:string">
            <xs:enumeration value="System"/>
            <xs:enumeration value="Job"/>
            <xs:enumeration value="Subjob"/>
        </xs:restriction>
    </xs:simpleType>
    <xs:element name="JobSummaryRequest">
        <xs:annotation>
            <xs:documentation>The job summary request</xs:documentation>
        </xs:annotation>
        <xs:complexType>
            <xs:sequence>
                <xs:element minOccurs="0" name="SubmitId" type="xs:string"/>
                <xs:element minOccurs="0" name="JobSummaryOptions">
                    <xs:complexType>
                        <xs:sequence>
                            <xs:element minOccurs="0" name="UseBase64" type="xs:boolean"/>
                            <xs:element minOccurs="0" name="UseBinary" type="xs:boolean"/>
                            <xs:element minOccurs="0"
                                name="IncludeExtendedJobData" type="xoajs:ExtDataFilterType"/>
                        </xs:sequence>
                    </xs:complexType>
                </xs:element>
                <xs:element maxOccurs="unbounded" name="JobId" type="xoajs:JobIdType"/>
            </xs:sequence>
        </xs:complexType>
    </xs:element>
    <xs:complexType name="JobSummaryDataType">
        <xs:annotation>
            <xs:documentation>Type for result of job summary operation</xs:documentation>
        </xs:annotation>
        <xs:sequence>
            <xs:element name="JobId" type="xoajs:JobIdType"/>
            <xs:element name="Status" type="xoajs:StatusType"/>
            <xs:element minOccurs="0" name="UserId" type="xs:string"/>
            <xs:element minOccurs="0" name="EntryTime" type="xs:dateTime"/>
            <xs:element minOccurs="0" name="StartTime" type="xs:dateTime"/>
            <xs:element minOccurs="0" name="CompletionTime" type="xs:dateTime"/>
            <xs:element minOccurs="0" name="BillingCode" type="xoajs:EncodableStringType"/>
            <xs:element minOccurs="0" name="CustomerReference" type="xoajs:EncodableStringType"/>
            <xs:element minOccurs="0" name="DeliveryPriority" type="xs:string"/>
            <xs:element minOccurs="0" name="ListsUsed">
                <xs:complexType>
                    <xs:sequence>
                        <xs:element maxOccurs="unbounded" name="ListId" type="xoajs:ListIdType"/>
                    </xs:sequence>
                </xs:complexType>
            </xs:element>
            <xs:element minOccurs="0" name="DestinationCount" type="xs:integer"/>
            <xs:element minOccurs="0" name="PostedTime" type="xs:dateTime"/>
            <xs:element minOccurs="0" name="ExpirationTime" type="xs:dateTime"/>
            <xs:element minOccurs="0" name="ServiceType" type="xs:string">
                <xs:annotation>
                    <xs:documentation>possible values include but are not limited to: FR, VR, MR, SR</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element minOccurs="0" name="Fax2MailService" type="xs:string"/>
            <xs:element minOccurs="0" name="JobGroupStatus" type="xoajs:JobGroupStatusTypeType"/>
            <xs:element minOccurs="0" name="Preview" type="xs:boolean"/>
            <xs:element minOccurs="0" name="PreviewResult" type="xs:string"/>
            <xs:element minOccurs="0" name="ComplianceResult" type="xs:string"/>
            <xs:element minOccurs="0" name="JobFlags" type="xs:integer"/>
            <xs:element minOccurs="0" name="JobFlags2" type="xs:integer"/>
            <xs:element minOccurs="0" name="JobWasPaused" type="xs:boolean"/>
            <xs:element minOccurs="0" name="FaxCoverSheet" type="xs:boolean"/>
            <xs:element minOccurs="0" name="Att" type="xoajs:EncodableStringType"/>
            <xs:element minOccurs="0" name="FaxTo" type="xoajs:EncodableStringType"/>
            <xs:element minOccurs="0" name="Subject" type="xoajs:EncodableStringType"/>
            <xs:element minOccurs="0" name="EmailFrom" type="xoajs:EncodableStringType"/>
            <xs:element minOccurs="0" name="Filename" type="xoajs:EncodableStringType"/>
            <xs:element minOccurs="0" name="FaxMode" type="xoajs:FaxModeType"/>
            <xs:element minOccurs="0" name="Class" type="xs:string"/>
            <xs:element minOccurs="0" name="GroupName" type="xs:string"/>
            <xs:element minOccurs="0" name="CharacterSet" type="xs:string"/>
            <xs:element maxOccurs="unbounded" minOccurs="0"
                name="TransferNum" type="xoajs:TransferNumType"/>
            <xs:element minOccurs="0" name="Paced" type="xs:boolean"/>
            <xs:element minOccurs="0" name="DeliveryPaces" type="xs:string"/>
            <xs:element minOccurs="0" name="FaxInFaxID" type="xs:string"/>
            <xs:element minOccurs="0" name="FaxInDNIS" type="xs:string"/>
            <xs:element minOccurs="0" name="FaxInConnectTime" type="xs:int"/>
            <xs:element minOccurs="0" name="FaxInPageCount" type="xs:int"/>
            <xs:element minOccurs="0" name="AreaCodeRecipOmitted" type="xs:string"/>
            <xs:element minOccurs="0" name="RetryAlgorithm" type="xs:string"/>
            <xs:element minOccurs="0" name="RecipientLocaleStartTime" type="xs:dateTime">
                <xs:annotation>
                    <xs:documentation>the return value should NOT contain a time zone</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element minOccurs="0" name="DropCopyTo" type="xoajs:EncodableStringType"/>
            <xs:element minOccurs="0" name="DropCopyFrom" type="xoajs:EncodableStringType"/>
            <xs:element minOccurs="0" name="ExtendedJobData" type="xoajs:ExtDataType"/>
            <xs:element maxOccurs="unbounded" minOccurs="0" name="JobState">
                <xs:complexType>
                    <xs:sequence>
                        <xs:element minOccurs="0"
                            name="ExpectedSetupStart" type="xs:dateTime">
                            <xs:annotation>
                                <xs:documentation>time setup expected to start - applies to AwaitingSetup</xs:documentation>
                            </xs:annotation>
                        </xs:element>
                        <xs:element minOccurs="0" name="ItemsProcessed" type="xs:integer">
                            <xs:annotation>
                                <xs:documentation># dests or job group members processed - applies to SettingUp</xs:documentation>
                            </xs:annotation>
                        </xs:element>
                        <xs:element minOccurs="0"
                            name="ExpectedDeliveryStart" nillable="true">
                            <xs:annotation>
                                <xs:documentation>time delivery expected to tstart; may be empty iff offpeak=true - applies to Processing and AwaitingDelivery</xs:documentation>
                            </xs:annotation>
                            <xs:complexType>
                                <xs:simpleContent>
                                    <xs:extension base="xs:dateTime">
                                    <xs:attribute default="false"
                                    name="offpeak"
                                    type="xs:boolean" use="optional"/>
                                    </xs:extension>
                                </xs:simpleContent>
                            </xs:complexType>
                        </xs:element>
                        <xs:element minOccurs="0" name="ErrorInfo" type="xoajs:ErrorInfoType">
                            <xs:annotation>
                                <xs:documentation>applies to Error</xs:documentation>
                            </xs:annotation>
                        </xs:element>
                        <xs:element minOccurs="0" name="ReportType" type="xs:string">
                            <xs:annotation>
                                <xs:documentation>applies to Reporting</xs:documentation>
                            </xs:annotation>
                        </xs:element>
                        <xs:element minOccurs="0" name="ReportStarted" type="xs:dateTime">
                            <xs:annotation>
                                <xs:documentation>applies to Reporting</xs:documentation>
                            </xs:annotation>
                        </xs:element>
                        <xs:element minOccurs="0"
                            name="JobSummaryCounts" type="xoajs:JobSummaryCountsType">
                            <xs:annotation>
                                <xs:documentation>applies to Delivering, Posted, Reporting, Complete; NB significance of count values differs between jobs and job groups</xs:documentation>
                            </xs:annotation>
                        </xs:element>
                        <xs:element maxOccurs="unbounded" minOccurs="0" name="AuxiliaryStatus">
                            <xs:annotation>
                                <xs:documentation>optional additional information - transient condition, partial error, ...</xs:documentation>
                            </xs:annotation>
                            <xs:complexType>
                                <xs:sequence>
                                    <xs:element minOccurs="0"
                                    name="AuxCode" type="xs:string"/>
                                    <xs:element minOccurs="0"
                                    name="AuxDetail" type="xs:string"/>
                                </xs:sequence>
                                <xs:attribute name="scope"
                                    type="xoajs:StatusScopeType" use="optional"/>
                            </xs:complexType>
                        </xs:element>
                    </xs:sequence>
                    <xs:attribute name="state" type="xs:string" use="required"/>
                </xs:complexType>
            </xs:element>
            <xs:element maxOccurs="unbounded" minOccurs="0"
                name="AttachmentInfo" type="xoajs:AttachmentInfoType">
                <xs:annotation>
                    <xs:documentation>new in 2.1</xs:documentation>
                </xs:annotation>
            </xs:element>
        </xs:sequence>
        <xs:attribute default="false" name="jobGroup" type="xs:boolean" use="optional"/>
    </xs:complexType>
    <xs:element name="JobSummaryResult">
        <xs:annotation>
            <xs:documentation>Result of job summary operation</xs:documentation>
        </xs:annotation>
        <xs:complexType>
            <xs:sequence>
                <xs:element name="Status" type="xoajs:StatusType"/>
                <xs:element minOccurs="0" name="SubmitId" type="xs:string"/>
                <xs:element maxOccurs="unbounded" minOccurs="0"
                    name="JobSummaryData" type="xoajs:JobSummaryDataType"/>
            </xs:sequence>
        </xs:complexType>
    </xs:element>
    <!-- address type enum -->
    <xs:simpleType name="AddressType">
        <xs:restriction base="xs:string">
            <xs:enumeration value="fax"/>
            <xs:enumeration value="internet"/>
            <xs:enumeration value="mbox"/>
            <xs:enumeration value="x400"/>
            <xs:enumeration value="telex"/>
            <xs:enumeration value="cablegram"/>
            <xs:enumeration value="mailgram"/>
            <xs:enumeration value="ddd"/>
            <xs:enumeration value="dedLine"/>
            <xs:enumeration value="softswitch"/>
            <xs:enumeration value="voice"/>
            <xs:enumeration value="sms"/>
            <xs:enumeration value="fod"/>
            <xs:enumeration value="list"/>
            <xs:enumeration value="smQuery"/>
            <xs:enumeration value="URL"/>
            <xs:enumeration value="other"/>
        </xs:restriction>
    </xs:simpleType>
    <!-- =================================
<xs:include schemaLocation="SecurityType.xsd"/>
   ================================== -->
    <xs:simpleType name="AttachmentFlagsType">
        <xs:restriction base="xs:string">
            <xs:enumeration value="push"/>
            <xs:enumeration value="pull"/>
            <xs:enumeration value="clickto"/>
            <xs:enumeration value="trackable"/>
            <xs:enumeration value="untrackable"/>
            <xs:enumeration value="open"/>
            <xs:enumeration value="image"/>
            <xs:enumeration value="embedded"/>
        </xs:restriction>
    </xs:simpleType>
    <xs:complexType name="AttachmentInfoType">
        <xs:sequence>
            <xs:element name="FileName" type="xs:string"/>
            <xs:element name="Size" type="xs:integer"/>
            <xs:element maxOccurs="unbounded" minOccurs="0"
                name="AttachmentFlags" type="xoajs:AttachmentFlagsType"/>
            <xs:element minOccurs="0" name="Security" type="xoajs:SecurityType"/>
            <xs:element minOccurs="0" name="ContentType" type="xs:string"/>
            <xs:element minOccurs="0" name="TotalPulls" type="xs:integer"/>
            <xs:element minOccurs="0" name="DistinctPulls" type="xs:integer"/>
        </xs:sequence>
        <xs:attribute name="attachmentNum" type="xs:int" use="required"/>
    </xs:complexType>
    <!-- includes for standalone validation
	<xs:include schemaLocation="AddressType.xsd"/>
	================ -->
    <xs:complexType name="DestinationType">
        <xs:simpleContent>
            <xs:extension base="xs:string">
                <xs:attribute name="type" type="xoajs:AddressType"/>
            </xs:extension>
        </xs:simpleContent>
    </xs:complexType>
    <!-- ===========================================
	<xs:include schemaLocation="EncodableStringType.xsd"/>
   ============================================= -->
    <xs:complexType name="ExtPropType">
        <xs:choice minOccurs="0">
            <xs:element name="ExtString" type="xoajs:EncodableStringType"/>
            <xs:element name="ExtNumber" type="xs:decimal"/>
            <xs:element name="ExtDateTime" type="xs:dateTime"/>
        </xs:choice>
        <xs:attribute name="name" type="xs:string"/>
        <xs:attribute name="idnum" type="xs:string"/>
    </xs:complexType>
    <xs:complexType name="ExtDataType">
        <xs:sequence>
            <xs:element maxOccurs="unbounded" name="ExtSegment">
                <xs:complexType>
                    <xs:sequence minOccurs="0">
                        <xs:element maxOccurs="unbounded" name="ExtProp" type="xoajs:ExtPropType"/>
                    </xs:sequence>
                    <xs:attribute name="name" type="xs:string"/>
                </xs:complexType>
            </xs:element>
        </xs:sequence>
    </xs:complexType>
    <xs:complexType name="ExtDataFilterType">
        <xs:sequence>
            <xs:element maxOccurs="unbounded" minOccurs="0" name="ExtSegmentFilter">
                <xs:complexType>
                    <xs:sequence>
                        <xs:element maxOccurs="unbounded" minOccurs="0" name="ExtPropFilter">
                            <xs:complexType>
                                <xs:attribute name="name" type="xs:string"/>
                                <xs:attribute name="idnum" type="xs:string"/>
                            </xs:complexType>
                        </xs:element>
                    </xs:sequence>
                    <xs:attribute name="name" type="xs:string"/>
                </xs:complexType>
            </xs:element>
        </xs:sequence>
    </xs:complexType>
    <!-- =============================== -->
    <xs:simpleType name="FaxModeType">
        <xs:restriction base="xs:string">
            <xs:enumeration value="standard"/>
            <xs:enumeration value="fine"/>
        </xs:restriction>
    </xs:simpleType>
    <!-- ====================================== 
	<xs:include schemaLocation="OwnershipLevelType.xsd"/>
    
 ========================================= -->
    <xs:simpleType name="ListStoreType">
        <xs:annotation>
            <xs:documentation>indicate which system list is in</xs:documentation>
        </xs:annotation>
        <xs:restriction base="xs:string">
            <xs:enumeration value="XDDS"/>
            <xs:enumeration value="MR"/>
        </xs:restriction>
    </xs:simpleType>
    <xs:complexType name="ListIdType">
        <xs:simpleContent>
            <xs:extension base="xs:string">
                <xs:attribute name="ownership"
                    type="xoajs:OwnershipLevelType" use="optional"/>
                <xs:attribute name="liststore"
                    type="xoajs:ListStoreType" use="required"/>
            </xs:extension>
        </xs:simpleContent>
    </xs:complexType>
    <!-- =============================== -->
    <xs:simpleType name="JobGroupStatusTypeType">
        <xs:restriction base="xs:string">
            <xs:enumeration value="parent"/>
            <xs:enumeration value="child"/>
        </xs:restriction>
    </xs:simpleType>
    <!-- =============================== -->
    <xs:complexType name="TransferNumType">
        <xs:simpleContent>
            <xs:extension base="xs:string">
                <xs:attribute name="transferKey" type="xs:string"/>
            </xs:extension>
        </xs:simpleContent>
    </xs:complexType>
    <xs:complexType name="JobSummaryCountsType">
        <xs:sequence>
            <xs:element minOccurs="0" name="Total" type="xs:integer"/>
            <xs:element minOccurs="0" name="Pending" type="xs:integer"/>
            <xs:element minOccurs="0" name="Sent" type="xs:integer"/>
            <xs:element minOccurs="0" name="Error" type="xs:integer"/>
            <xs:element minOccurs="0" name="Cancelled" type="xs:integer"/>
            <xs:element minOccurs="0" name="TotalDSN" type="xs:integer"/>
            <xs:element minOccurs="0" name="NegativeDSN" type="xs:integer"/>
            <xs:element minOccurs="0" name="UnconfirmedDSN" type="xs:integer"/>
            <xs:element minOccurs="0" name="Blocked" type="xs:integer"/>
            <xs:element minOccurs="0" name="Read" type="xs:integer"/>
            <xs:element minOccurs="0" name="Pulls" type="xs:integer"/>
            <xs:element minOccurs="0" name="TotalTransfers" type="xs:integer"/>
            <xs:element minOccurs="0" name="FailedTransfers" type="xs:integer"/>
            <xs:element minOccurs="0" name="TransferPickupTime" type="xs:integer"/>
            <xs:element minOccurs="0" name="TotalTransferTime" type="xs:integer"/>
            <xs:element minOccurs="0" name="LiveDeliveries" type="xs:integer"/>
            <xs:element minOccurs="0" name="AnsweringMachineDeliveries" type="xs:integer"/>
            <xs:element minOccurs="0" name="PartialLiveDeliveries" type="xs:integer"/>
            <xs:element minOccurs="0"
                name="PartialAnsweringMachineDeliveries" type="xs:integer"/>
            <xs:element minOccurs="0" name="NoAnswer" type="xs:integer"/>
            <xs:element minOccurs="0" name="Busy" type="xs:integer"/>
            <xs:element minOccurs="0" name="Held" type="xs:integer"/>
            <xs:element minOccurs="0" name="TotalCompletedDeliveryTime" type="xs:integer"/>
            <xs:element maxOccurs="unbounded" minOccurs="0" name="SummaryCount">
                <xs:complexType>
                    <xs:simpleContent>
                        <xs:extension base="xs:integer">
                            <xs:attribute name="countName"
                                type="xs:string" use="required"/>
                        </xs:extension>
                    </xs:simpleContent>
                </xs:complexType>
            </xs:element>
        </xs:sequence>
    </xs:complexType>
    <xs:complexType name="EncodableStringType">
        <xs:simpleContent>
            <xs:extension base="xs:string">
                <xs:attribute name="b64charset" type="xs:string" use="optional"/>
            </xs:extension>
        </xs:simpleContent>
    </xs:complexType>
    <xs:complexType name="JobIdType">
        <xs:sequence>
            <xs:element name="XDN" type="xs:string"/>
            <xs:element name="MRN" type="xs:integer"/>
        </xs:sequence>
    </xs:complexType>
    <xs:complexType name="StatusType">
        <xs:sequence>
            <xs:element name="StatusCode" type="xs:integer">
                <xs:annotation>
                    <xs:documentation>0 = success, non-zero = error state TBD</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element minOccurs="0" name="StatusMessage" type="xs:string">
                <xs:annotation>
                    <xs:documentation>text description of StatusCode</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element minOccurs="0" name="ErrorList">
                <xs:annotation>
                    <xs:documentation>Container for Errors</xs:documentation>
                </xs:annotation>
                <xs:complexType>
                    <xs:sequence>
                        <xs:element maxOccurs="unbounded" name="Error">
                            <xs:annotation>
                                <xs:documentation>An Error</xs:documentation>
                            </xs:annotation>
                            <xs:complexType>
                                <xs:sequence>
                                    <xs:element name="ErrorCode" type="xs:integer">
                                    <xs:annotation>
                                    <xs:documentation>non-zero code</xs:documentation>
                                    </xs:annotation>
                                    </xs:element>
                                    <xs:element name="ErrorMessage" type="xs:string"/>
                                </xs:sequence>
                            </xs:complexType>
                        </xs:element>
                    </xs:sequence>
                </xs:complexType>
            </xs:element>
            <xs:element name="SubmissionTime" type="xs:dateTime">
                <xs:annotation>
                    <xs:documentation>The time the Request was received by the system</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element name="CompletionTime" type="xs:dateTime">
                <xs:annotation>
                    <xs:documentation>the time the Request was completed processing</xs:documentation>
                </xs:annotation>
            </xs:element>
        </xs:sequence>
    </xs:complexType>
    <xs:simpleType name="OwnershipLevelType">
        <xs:restriction base="xs:string">
            <xs:enumeration value="user"/>
            <xs:enumeration value="customer"/>
            <xs:enumeration value="group"/>
            <xs:enumeration value="system"/>
        </xs:restriction>
    </xs:simpleType>
    <xs:simpleType name="SecurityType">
        <xs:restriction base="xs:string">
            <xs:enumeration value="none"/>
            <xs:enumeration value="40bit"/>
            <xs:enumeration value="128bit"/>
        </xs:restriction>
    </xs:simpleType>
    <xs:simpleType name="ScheduleType">
        <xs:restriction base="xs:string">
            <xs:enumeration value="express"/>
            <xs:enumeration value="offpeak"/>
            <xs:enumeration value="scheduled"/>
        </xs:restriction>
    </xs:simpleType>
</xs:schema>
