<?xml version="1.0" encoding="UTF-8"?>
<xs:schema attributeFormDefault="unqualified"
    elementFormDefault="qualified"
    targetNamespace="http://ws.easylink.com/Resubmit/2011/01"
    xmlns:xoarsb="http://ws.easylink.com/Resubmit/2011/01" xmlns:xs="http://www.w3.org/2001/XMLSchema">
    <!-- =====================
	<xs:include schemaLocation="AddressType.xsd"/>
	<xs:include schemaLocation="EncodableStringType.xsd"/>
	<xs:include schemaLocation="DestinationType.xsd"/>
	<xs:include schemaLocation="JobIdType.xsd"/>
	<xs:include schemaLocation="RecStatusType.xsd"/>
	<xs:include schemaLocation="ReportTypes.xsd"/>
	<xs:include schemaLocation="ScheduleType.xsd"/>
	<xs:include schemaLocation="StatusType.xsd"/>
	<xs:include schemaLocation="YesNo.xsd"/>
	<xs:include schemaLocation="OwnershipLevelType.xsd"/>
	<xs:include schemaLocation="AddressType.xsd"/>
	<xs:include schemaLocation="SegmentType.xsd"/>
	<xs:include schemaLocation="SecurityType.xsd"/>
	<xs:include schemaLocation="Document.xsd"/>
	<xs:include schemaLocation="ExtDataType.xsd"/>
	========================= -->
    <xs:simpleType name="EformatType">
        <xs:restriction base="xs:string">
            <xs:enumeration value="text"/>
            <xs:enumeration value="html"/>
            <xs:enumeration value="htmllite"/>
            <xs:enumeration value="default"/>
        </xs:restriction>
    </xs:simpleType>
    <xs:simpleType name="UseExpirationEnumType">
        <xs:restriction base="xs:string">
            <xs:enumeration value="orig_job_expiration_interval"/>
            <xs:enumeration value="orig_job_expiration_time"/>
        </xs:restriction>
    </xs:simpleType>
    <xs:simpleType name="HTMLOpenTrackingType">
        <xs:restriction base="xs:string">
            <xs:enumeration value="none"/>
            <xs:enumeration value="top"/>
            <xs:enumeration value="bottom"/>
        </xs:restriction>
    </xs:simpleType>
    <xs:simpleType name="EmailType">
        <xs:restriction base="xs:string">
            <xs:minLength value="2"/>
        </xs:restriction>
    </xs:simpleType>
    <xs:simpleType name="DeDupOptionType">
        <xs:restriction base="xs:string">
            <xs:enumeration value="default"/>
            <xs:enumeration value="none"/>
        </xs:restriction>
    </xs:simpleType>
    <xs:complexType name="DeDuplicateFieldType">
        <xs:simpleContent>
            <xs:extension base="xs:string">
                <xs:attribute name="segment" type="xs:string"/>
            </xs:extension>
        </xs:simpleContent>
    </xs:complexType>
    <xs:complexType name="DeDuplicateType">
        <xs:sequence>
            <xs:element maxOccurs="unbounded" minOccurs="0"
                name="DeDuplicateField" type="xoarsb:DeDuplicateFieldType"/>
        </xs:sequence>
        <xs:attribute name="deDupOption" type="xoarsb:DeDupOptionType"/>
    </xs:complexType>
    <xs:complexType name="InsertListType">
        <xs:sequence>
            <xs:element maxOccurs="unbounded" name="Insert">
                <xs:complexType>
                    <xs:simpleContent>
                        <xs:extension base="xs:string">
                            <xs:attribute name="number" type="xs:integer"/>
                            <xs:attribute name="b64charset"
                                type="xs:string" use="optional"/>
                        </xs:extension>
                    </xs:simpleContent>
                </xs:complexType>
            </xs:element>
        </xs:sequence>
    </xs:complexType>
    <xs:complexType name="PullfileOptionsType">
        <xs:all>
            <xs:element minOccurs="0" name="Security" type="xoarsb:SecurityType"/>
            <xs:element minOccurs="0" name="AutoPull" type="xoarsb:YesNo"/>
            <xs:element minOccurs="0" name="PasswordNeeded" type="xoarsb:YesNo"/>
            <xs:element minOccurs="0" name="PasswordLimit" type="xs:int"/>
        </xs:all>
    </xs:complexType>
    <xs:complexType name="ExtensionType">
        <xs:choice maxOccurs="unbounded">
            <xs:element name="Segment" type="xoarsb:SegmentType"/>
        </xs:choice>
    </xs:complexType>
    <xs:complexType name="FieldMappingType">
        <xs:sequence>
            <xs:element maxOccurs="unbounded" name="Map">
                <xs:complexType>
                    <xs:sequence>
                        <xs:element name="FieldName" type="xs:string"/>
                        <xs:element minOccurs="0" name="SegmentName" type="xs:string"/>
                        <xs:element name="PropertyName" type="xs:string"/>
                        <xs:element minOccurs="0" name="IsBase64Encoded" type="xs:boolean"/>
                    </xs:sequence>
                </xs:complexType>
            </xs:element>
        </xs:sequence>
    </xs:complexType>
    <xs:complexType abstract="true" name="DeliveryItemType">
        <xs:attribute name="ref" type="xs:string" use="optional"/>
        <xs:attribute name="refb64" type="xs:string" use="optional"/>
    </xs:complexType>
    <xs:complexType name="DeliveryItemGenericType">
        <xs:sequence>
            <xs:element minOccurs="0" name="Alternate" type="xoarsb:AlternateType"/>
            <xs:element minOccurs="0" name="InsertList" type="xoarsb:InsertListType"/>
            <xs:element minOccurs="0" name="Extension" type="xoarsb:ExtensionType"/>
            <xs:element name="Address" type="xs:string"/>
        </xs:sequence>
        <xs:attribute name="ref" type="xs:string" use="optional"/>
        <xs:attribute name="refb64" type="xs:string" use="optional"/>
        <xs:attribute name="type" type="xoarsb:AddressType" use="required"/>
    </xs:complexType>
    <xs:complexType name="MboxType">
        <xs:sequence>
            <xs:element minOccurs="0" name="Alternate" type="xoarsb:AlternateType"/>
            <xs:element name="UserId" type="xs:string"/>
        </xs:sequence>
        <xs:attribute name="ref" type="xs:string" use="optional"/>
        <xs:attribute name="refb64" type="xs:string" use="optional"/>
    </xs:complexType>
    <xs:complexType name="TelexType">
        <xs:sequence>
            <xs:element minOccurs="0" name="Alternate" type="xoarsb:AlternateType"/>
            <xs:element name="Number" type="xs:string"/>
        </xs:sequence>
        <xs:attribute name="ref" type="xs:string" use="optional"/>
        <xs:attribute name="refb64" type="xs:string" use="optional"/>
    </xs:complexType>
    <xs:complexType name="FodType">
        <xs:sequence>
            <xs:element minOccurs="0" name="Alternate" type="xoarsb:AlternateType"/>
            <xs:element name="Address" type="xs:string"/>
        </xs:sequence>
        <xs:attribute name="ref" type="xs:string" use="optional"/>
        <xs:attribute name="refb64" type="xs:string" use="optional"/>
    </xs:complexType>
    <xs:complexType name="SmsType">
        <xs:sequence>
            <xs:element minOccurs="0" name="Alternate" type="xoarsb:AlternateType"/>
            <xs:element name="Phone" type="xs:string"/>
        </xs:sequence>
        <xs:attribute name="ref" type="xs:string" use="optional"/>
        <xs:attribute name="refb64" type="xs:string" use="optional"/>
    </xs:complexType>
    <xs:complexType name="FaxType">
        <xs:sequence>
            <xs:element minOccurs="0" name="Alternate" type="xoarsb:AlternateType"/>
            <xs:element minOccurs="0" name="InsertList" type="xoarsb:InsertListType"/>
            <xs:element minOccurs="0" name="Extension" type="xoarsb:ExtensionType"/>
            <xs:element name="Phone" type="xs:string"/>
            <xs:element minOccurs="0" name="Att" type="xoarsb:EncodableStringType"/>
            <xs:element minOccurs="0" name="From" type="xoarsb:EncodableStringType"/>
            <xs:element minOccurs="0" name="To" type="xoarsb:EncodableStringType"/>
            <xs:element minOccurs="0" name="Salutation" type="xs:string"/>
        </xs:sequence>
        <xs:attribute name="ref" type="xs:string" use="optional"/>
        <xs:attribute name="refb64" type="xs:string" use="optional"/>
    </xs:complexType>
    <xs:complexType name="VoiceType">
        <xs:sequence>
            <xs:element minOccurs="0" name="Alternate" type="xoarsb:AlternateType"/>
            <xs:element minOccurs="0" name="InsertList" type="xoarsb:InsertListType"/>
            <xs:element minOccurs="0" name="Extension" type="xoarsb:ExtensionType"/>
            <xs:element name="Phone" type="xs:string"/>
        </xs:sequence>
        <xs:attribute name="ref" type="xs:string" use="optional"/>
        <xs:attribute name="refb64" type="xs:string" use="optional"/>
    </xs:complexType>
    <xs:complexType name="InternetType">
        <xs:sequence>
            <xs:element minOccurs="0" name="Alternate" type="xoarsb:AlternateType"/>
            <xs:element minOccurs="0" name="InsertList" type="xoarsb:InsertListType"/>
            <xs:element minOccurs="0" name="Extension" type="xoarsb:ExtensionType"/>
            <xs:element name="Email" type="xoarsb:EmailType"/>
            <xs:element minOccurs="0" name="Subject" type="xoarsb:EncodableStringType"/>
            <xs:element minOccurs="0" name="From" type="xoarsb:EncodableStringType"/>
            <xs:element minOccurs="0" name="Eformat" type="xoarsb:EformatType"/>
            <xs:element minOccurs="0" name="Password" type="xs:string">
                <xs:annotation>
                    <xs:documentation>
			Only used in messageREACH. The password used
			by this recipient to retrieve pull
			attachments.
		     </xs:documentation>
                </xs:annotation>
            </xs:element>
        </xs:sequence>
        <xs:attribute name="ref" type="xs:string" use="optional"/>
        <xs:attribute name="refb64" type="xs:string" use="optional"/>
    </xs:complexType>
    <xs:complexType name="ListType">
        <xs:sequence>
            <xs:element name="Name" type="xs:string"/>
        </xs:sequence>
        <xs:attribute name="ref" type="xs:string" use="optional"/>
        <xs:attribute name="refb64" type="xs:string" use="optional"/>
        <xs:attribute name="ownershipLevel" type="xoarsb:OwnershipLevelType"/>
    </xs:complexType>
    <xs:complexType name="SmQueryType">
        <xs:sequence>
            <xs:element name="Name" type="xs:string"/>
        </xs:sequence>
        <xs:attribute name="ref" type="xs:string" use="optional"/>
        <xs:attribute name="refb64" type="xs:string" use="optional"/>
        <xs:attribute name="ownershipLevel" type="xoarsb:OwnershipLevelType"/>
    </xs:complexType>
    <xs:complexType name="TableType">
        <xs:sequence>
            <xs:element minOccurs="0" name="FieldMapping" type="xoarsb:FieldMappingType"/>
            <xs:choice>
                <xs:element name="DocRef" type="xs:string"/>
                <xs:element name="Document" type="xoarsb:DocumentType"/>
            </xs:choice>
        </xs:sequence>
        <xs:attribute name="ref" type="xs:string" use="optional"/>
        <xs:attribute name="refb64" type="xs:string" use="optional"/>
    </xs:complexType>
    <xs:complexType name="AlternateType">
        <xs:choice>
            <xs:element name="Fax" type="xoarsb:FaxType"/>
            <xs:element name="Internet" type="xoarsb:InternetType"/>
            <xs:element name="Voice" type="xoarsb:VoiceType"/>
            <xs:element name="Fod" type="xoarsb:FodType"/>
            <xs:element name="Mbox" type="xoarsb:MboxType"/>
            <xs:element name="Sms" type="xoarsb:SmsType"/>
            <xs:element name="Telex" type="xoarsb:TelexType"/>
            <xs:element name="DeliveryItemGeneric" type="xoarsb:DeliveryItemGenericType"/>
        </xs:choice>
    </xs:complexType>
    <!-- ======================= -->
    <xs:complexType name="ReportSpecType">
        <xs:all>
            <xs:element minOccurs="0" name="DeliveryReport">
                <xs:annotation>
                    <xs:documentation>
		  This item has different meanings for different
		  systems. For faxREACH and voiceREACH, it means
		  completion report, i.e. report sent after the job
		  completes. For messageREACH, this means posting
		  report, i.e. report sent after job is posted. To
		  order a completion report for messageREACH, one must
		  specify the "FinalReport" element.
	    </xs:documentation>
                </xs:annotation>
                <xs:complexType>
                    <xs:sequence>
                        <xs:element name="DeliveryReportType" type="xoarsb:MainReportTypeEnum"/>
                        <xs:element minOccurs="0" name="ReportTemplate" type="xs:string"/>
                        <xs:element minOccurs="0"
                            name="ReportDestination" type="xoarsb:DestinationType"/>
                    </xs:sequence>
                </xs:complexType>
            </xs:element>
            <xs:element minOccurs="0" name="FriendReport">
                <xs:complexType>
                    <xs:sequence>
                        <xs:element name="FriendReportType" type="xoarsb:FriendReportTypeEnum"/>
                        <xs:element minOccurs="0"
                            name="ReportDestination" type="xoarsb:DestinationType"/>
                        <xs:element minOccurs="0"
                            name="FriendReportTemplate" type="xs:string"/>
                    </xs:sequence>
                </xs:complexType>
            </xs:element>
            <xs:element minOccurs="0" name="FinalReport">
                <xs:complexType>
                    <xs:sequence>
                        <xs:element name="ReportType" type="xoarsb:AllReportTypeEnum"/>
                        <xs:element minOccurs="0" name="ReportTemplate" type="xs:string"/>
                        <xs:element minOccurs="0"
                            name="ReportDestination" type="xoarsb:DestinationType"/>
                    </xs:sequence>
                </xs:complexType>
            </xs:element>
            <xs:element minOccurs="0" name="ProgressReport">
                <xs:complexType>
                    <xs:sequence>
                        <xs:element name="ProgressReportType" type="xoarsb:AllReportTypeEnum"/>
                        <xs:element minOccurs="0"
                            name="ProgressReportTemplate" type="xs:string"/>
                        <xs:element minOccurs="0"
                            name="ProgressReportIntervals" type="xs:string">
                            <xs:annotation>
                                <xs:documentation>sequence of minute intervals</xs:documentation>
                            </xs:annotation>
                        </xs:element>
                        <xs:element minOccurs="0"
                            name="ProgressReportBase" type="xs:dateTime"/>
                        <xs:element minOccurs="0"
                            name="ReportDestination" type="xoarsb:DestinationType"/>
                    </xs:sequence>
                </xs:complexType>
            </xs:element>
        </xs:all>
    </xs:complexType>
    <xs:complexType name="DeliveryItemListType">
        <xs:choice maxOccurs="unbounded">
            <xs:element name="List" type="xoarsb:ListType"/>
            <xs:element name="SmQuery" type="xoarsb:SmQueryType"/>
            <xs:element name="Table" type="xoarsb:TableType"/>
            <xs:element name="DeliveryItemGeneric" type="xoarsb:DeliveryItemGenericType"/>
            <xs:element name="Fax" type="xoarsb:FaxType"/>
            <xs:element name="Internet" type="xoarsb:InternetType"/>
            <xs:element name="Voice" type="xoarsb:VoiceType"/>
            <xs:element name="Fod" type="xoarsb:FodType"/>
            <xs:element name="Mbox" type="xoarsb:MboxType"/>
            <xs:element name="Sms" type="xoarsb:SmsType"/>
            <xs:element name="Telex" type="xoarsb:TelexType"/>
        </xs:choice>
    </xs:complexType>
    <xs:complexType name="ResubmitSpecType">
        <xs:sequence>
            <xs:element minOccurs="0" name="StartTime" type="xs:dateTime"/>
            <xs:choice minOccurs="0">
                <xs:element minOccurs="0" name="ExpirationTime" type="xs:dateTime"/>
                <xs:element minOccurs="0" name="ExpirationDays" type="xs:decimal"/>
                <xs:element minOccurs="0" name="UseOriginalExpiration" type="xoarsb:UseExpirationEnumType"/>
            </xs:choice>
            <xs:element minOccurs="0" name="Schedule" type="xoarsb:ScheduleType"/>
            <xs:element minOccurs="0" name="RecipientTimezoneOption" type="xoarsb:YesNo"/>
            <xs:element minOccurs="0" name="DeDuplicate" type="xoarsb:DeDuplicateType"/>
            <xs:element minOccurs="0" name="HTMLOpenTracking" type="xoarsb:HTMLOpenTrackingType"/>
            <xs:element minOccurs="0" name="Report" type="xoarsb:ReportSpecType"/>
            <xs:element minOccurs="0" name="Subject" type="xoarsb:EncodableStringType"/>
            <xs:element minOccurs="0" name="CustomerReference" type="xoarsb:EncodableStringType"/>
            <xs:element minOccurs="0" name="BillingCode" type="xoarsb:EncodableStringType"/>
            <xs:element minOccurs="0" name="IncludeOrigDestinations" type="xs:boolean">
                <xs:annotation>
                    <xs:documentation>True or False</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element minOccurs="0" name="Destinations" type="xoarsb:DeliveryItemListType"/>
            <xs:element minOccurs="0" name="PullfileOptions" type="xoarsb:PullfileOptionsType"/>
            <xs:element minOccurs="0" name="ResubmitExtension" type="xoarsb:ExtDataFilterType"/>
        </xs:sequence>
    </xs:complexType>
    <xs:complexType name="ResubmitStatusType">
        <xs:sequence>
            <xs:element minOccurs="0" name="MessageId" type="xs:string"/>
            <xs:element name="RecStatus" type="xoarsb:RecStatusType"/>
            <xs:element minOccurs="0" name="JobId" type="xoarsb:JobIdType"/>
        </xs:sequence>
    </xs:complexType>
    <xs:element name="ResubmitRequest">
        <xs:complexType>
            <xs:sequence>
                <xs:element minOccurs="0" name="SubmitId" type="xs:string"/>
                <xs:element maxOccurs="unbounded" name="Resubmit">
                    <xs:complexType>
                        <xs:sequence>
                            <xs:element minOccurs="0" name="MessageId" type="xs:string"/>
                            <xs:element name="JobId" type="xoarsb:JobIdType"/>
                            <xs:element name="ResubmitSpec" type="xoarsb:ResubmitSpecType"/>
                        </xs:sequence>
                    </xs:complexType>
                </xs:element>
            </xs:sequence>
        </xs:complexType>
    </xs:element>
    <xs:element name="ResubmitResult">
        <xs:complexType>
            <xs:sequence>
                <xs:element name="Status" type="xoarsb:StatusType"/>
                <xs:element minOccurs="0" name="SubmitID" type="xs:string"/>
                <xs:element maxOccurs="unbounded" minOccurs="0"
                    name="ResubmitStatus" type="xoarsb:ResubmitStatusType"/>
            </xs:sequence>
        </xs:complexType>
    </xs:element>
    <!-- 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="xoarsb:AddressType"/>
            </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>
    <!-- All report types -->
    <xs:simpleType name="MainReportTypeEnum">
        <xs:restriction base="xs:string">
            <xs:enumeration value="none"/>
            <xs:enumeration value="summary"/>
            <xs:enumeration value="detail"/>
            <xs:enumeration value="exception"/>
            <xs:enumeration value="conditional"/>
            <xs:enumeration value="pull"/>
            <xs:enumeration value="enhanced"/>
        </xs:restriction>
    </xs:simpleType>
    <!-- Friend report types enum -->
    <xs:simpleType name="FriendReportTypeEnum">
        <xs:restriction base="xs:string">
            <xs:enumeration value="none"/>
            <xs:enumeration value="summary"/>
            <xs:enumeration value="detail"/>
            <xs:enumeration value="exception"/>
            <xs:enumeration value="conditional"/>
            <xs:enumeration value="pull"/>
            <xs:enumeration value="enhanced"/>
        </xs:restriction>
    </xs:simpleType>
    <!-- Progres report types -->
    <xs:simpleType name="AllReportTypeEnum">
        <xs:restriction base="xs:string">
            <xs:enumeration value="none"/>
            <xs:enumeration value="summary"/>
            <xs:enumeration value="detail"/>
            <xs:enumeration value="exception"/>
            <xs:enumeration value="conditional"/>
            <xs:enumeration value="pull"/>
            <xs:enumeration value="badaddress"/>
            <xs:enumeration value="enhanced"/>
        </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:simpleType name="YesNo">
        <xs:restriction base="xs:string">
            <xs:enumeration value="yes"/>
            <xs:enumeration value="no"/>
        </xs:restriction>
    </xs:simpleType>
    <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>
    <!-- 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:restriction>
    </xs:simpleType>
    <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: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: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: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:element name="CharacterSet" type="xs:string">
        <xs:annotation>
            <xs:documentation>use ISO names</xs:documentation>
        </xs:annotation>
    </xs:element>
    <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="xoarsb:DocEncodingFormat" use="required"/>
            </xs:extension>
        </xs:simpleContent>
    </xs:complexType>
    <xs:complexType name="SosObjectIdType">
        <xs:simpleContent>
            <xs:extension base="xs:string">
                <xs:attribute name="sosType" type="xs:string" use="required"/>
                <xs:attribute name="ownershipLevel" type="xoarsb:OwnershipLevelType"/>
            </xs:extension>
        </xs:simpleContent>
    </xs:complexType>
    <xs:complexType name="DocumentType">
        <xs:sequence>
            <xs:element name="DocType" type="xs:string">
                <xs:annotation>
                    <xs:documentation>Value restricted by application to recognized values</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element minOccurs="0" name="Filename" type="xs:string"/>
            <xs:choice>
                <xs:element name="DocData" type="xoarsb:DocDataType"/>
                <xs:element name="DocCfs" type="xs:string"/>
                <xs:element name="DocUrl" type="xs:anyURI"/>
                <xs:element name="SosObject" type="xoarsb:SosObjectIdType"/>
            </xs:choice>
            <xs:element minOccurs="0" ref="xoarsb:CharacterSet"/>
        </xs:sequence>
        <xs:attribute name="ref" type="xs:string" use="optional"/>
    </xs:complexType>
    <xs:complexType name="DocumentSetType">
        <xs:sequence>
            <xs:element maxOccurs="unbounded" minOccurs="0"
                name="Document" type="xoarsb:DocumentType"/>
        </xs:sequence>
    </xs:complexType>
    <xs:complexType name="ExtPropType">
        <xs:choice minOccurs="0">
            <xs:element name="ExtString" type="xoarsb: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="xoarsb: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:schema>
