<?xml version="1.0" encoding="UTF-8"?>
<xs:schema attributeFormDefault="unqualified"
    elementFormDefault="qualified"
    targetNamespace="http://ws.easylink.com/JobDocumentTransmit/2011/01"
    xmlns:xoajdt="http://ws.easylink.com/JobDocumentTransmit/2011/01" xmlns:xs="http://www.w3.org/2001/XMLSchema">
    <xs:simpleType name="DocEncodingFormat">
        <xs:restriction base="xs:string">
            <xs:enumeration value="text"/>
            <xs:enumeration value="base64"/>
        </xs:restriction>
    </xs:simpleType>
    <xs:complexType name="DocDataType">
        <xs:simpleContent>
            <xs:extension base="xs:string">
                <xs:attribute name="format"
                    type="xoajdt:DocEncodingFormat" use="required"/>
            </xs:extension>
        </xs:simpleContent>
    </xs:complexType>
    <xs:complexType name="DocumentId">
        <xs:sequence>
            <xs:element name="XDN" type="xs:string"/>
            <xs:element name="DocNo" type="xs:unsignedInt"/>
        </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="SegmentType">
        <xs:sequence>
            <xs:element maxOccurs="unbounded" name="Property">
                <xs:complexType>
                    <xs:simpleContent>
                        <xs:extension base="xs:string">
                            <xs:attribute name="name" type="xs:string" use="required"/>
                            <xs:attribute name="b64charset"
                                type="xs:string" use="optional"/>
                        </xs:extension>
                    </xs:simpleContent>
                </xs:complexType>
            </xs:element>
        </xs:sequence>
        <xs:attribute name="name" type="xs:string"/>
    </xs:complexType>
    <xs:complexType name="JobDocumentInfoType">
        <xs:sequence>
            <xs:element minOccurs="0" name="JobDocumentType" type="xs:string"/>
            <xs:element minOccurs="0" name="DocumentNumber" type="xoajdt:DocumentId"/>
            <xs:element minOccurs="0" name="Filename" type="xs:string"/>
            <xs:element minOccurs="0" name="CharacterSet" type="xs:string"/>
            <xs:element minOccurs="0" name="DocType" type="xs:string"/>
            <xs:element maxOccurs="unbounded" minOccurs="0"
                name="DocumentInfoExtension" type="xoajdt:SegmentType"/>
            <xs:element name="FileData" type="xoajdt:DocDataType"/>
        </xs:sequence>
    </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="RecStatusType">
        <xs:simpleContent>
            <xs:extension base="xs:string">
                <xs:attribute name="code" type="xs:int" use="required"/>
            </xs:extension>
        </xs:simpleContent>
    </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:complexType name="TransactionInfoType">
        <xs:sequence>
            <xs:element minOccurs="0" name="CallDate" type="xs:dateTime"/>
            <xs:element minOccurs="0" name="ConnectTime" type="xs:unsignedInt"/>
            <xs:element minOccurs="0" name="BaudRate" type="xs:unsignedInt"/>
            <xs:element minOccurs="0" name="PageCount" type="xs:unsignedInt"/>
            <xs:element minOccurs="0" name="Mode" type="xs:string"/>
            <xs:element minOccurs="0" name="InternalFaxId" type="xs:string"/>
            <xs:element minOccurs="0" name="TSID" type="xs:string"/>
            <xs:element minOccurs="0" name="ANI" type="xs:string"/>
            <xs:element minOccurs="0" name="DNIS" type="xs:string"/>
        </xs:sequence>
    </xs:complexType>
    <xs:element name="JobDocumentTransmitRequest">
        <xs:complexType>
            <xs:sequence>
                <xs:element minOccurs="0" name="SubmitId" type="xs:string"/>
                <xs:element maxOccurs="unbounded" name="JobDocument">
                    <xs:complexType>
                        <xs:sequence>
                            <xs:element name="JobId" type="xoajdt:JobIdType"/>
                            <xs:element minOccurs="0"
                                name="JobDocumentType" type="xs:string"/>
                        </xs:sequence>
                    </xs:complexType>
                </xs:element>
                <xs:element maxOccurs="unbounded" minOccurs="0"
                    name="TransmitRequestExtension" type="xoajdt:SegmentType"/>
            </xs:sequence>
        </xs:complexType>
    </xs:element>
    <xs:element name="JobDocumentTransmitResult">
        <xs:complexType>
            <xs:sequence>
                <xs:element name="Status" type="xoajdt:StatusType"/>
                <xs:element minOccurs="0" name="SubmitId" type="xs:string"/>
                <xs:element maxOccurs="unbounded" minOccurs="0" name="JobDocuments">
                    <xs:complexType>
                        <xs:sequence>
                            <xs:element name="RecStatus" type="xoajdt:RecStatusType"/>
                            <xs:element name="JobId" type="xoajdt:JobIdType">
                                <xs:annotation>
                                    <xs:documentation>echoing request</xs:documentation>
                                </xs:annotation>
                            </xs:element>
                            <xs:element minOccurs="0"
                                name="JobDocumentType" type="xs:string">
                                <xs:annotation>
                                    <xs:documentation>echoing request</xs:documentation>
                                </xs:annotation>
                            </xs:element>
                            <xs:element minOccurs="0" name="UserId" type="xs:string"/>
                            <xs:element minOccurs="0" name="ServiceType" type="xs:string"/>
                            <xs:element minOccurs="0" name="CustomerRef" type="xoajdt:EncodableStringType"/>
                            <xs:element minOccurs="0" name="BillingCode" type="xoajdt:EncodableStringType"/>
                            <xs:element maxOccurs="unbounded"
                                minOccurs="0"
                                name="JobDocumentsExtension" type="xoajdt:SegmentType"/>
                            <xs:element maxOccurs="unbounded"
                                minOccurs="0" name="JobDocumentData">
                                <xs:complexType>
                                    <xs:sequence>
                                    <xs:element minOccurs="0"
                                    name="TransactionInfo" type="xoajdt:TransactionInfoType"/>
                                    <xs:element
                                    maxOccurs="unbounded"
                                    minOccurs="0"
                                    name="JobDocumentDataExtension" type="xoajdt:SegmentType"/>
                                    <xs:element
                                    maxOccurs="unbounded"
                                    minOccurs="0"
                                    name="DocumentInfo" type="xoajdt:JobDocumentInfoType"/>
                                    </xs:sequence>
                                </xs:complexType>
                            </xs:element>
                        </xs:sequence>
                    </xs:complexType>
                </xs:element>
            </xs:sequence>
        </xs:complexType>
    </xs:element>
</xs:schema>
