<?xml version="1.0" encoding="UTF-8"?>
<xs:schema attributeFormDefault="unqualified"
    elementFormDefault="qualified"
    targetNamespace="http://ws.easylink.com/ListRetrieveTable/2011/01"
    xmlns:xoalra="http://ws.easylink.com/ListRetrieveTable/2011/01" xmlns:xs="http://www.w3.org/2001/XMLSchema">
    <!--includes for standalone validation
	<xs:include schemaLocation="Table.xsd"/>
	<xs:include schemaLocation="ListIdType.xsd"/>
	<xs:include schemaLocation="OwnershipLevelType.xsd"/>
	<xs:include schemaLocation="StatusType.xsd"/>
	<xs:include schemaLocation="HistoryType.xsd"/>
	================ -->
    <xs:element name="ListRetrieveTableRequest">
        <xs:complexType>
            <xs:sequence>
                <xs:element minOccurs="0" name="SubmitId" type="xs:string"/>
                <xs:element minOccurs="0" name="CharacterSet" type="xs:string"/>
                <xs:element minOccurs="0" name="UseBinary" type="xs:boolean"/>
                <xs:element name="ListId" type="xoalra:ListIdType"/>
            </xs:sequence>
        </xs:complexType>
    </xs:element>
    <xs:element name="ListRetrieveTableResult">
        <xs:complexType>
            <xs:sequence>
                <xs:element name="Status" type="xoalra:StatusType"/>
                <xs:element minOccurs="0" name="SubmitId" type="xs:string"/>
                <xs:element minOccurs="0" name="ListId" type="xoalra:ListIdType"/>
                <xs:element minOccurs="0" name="Table" type="xoalra:TableType"/>
                <xs:element minOccurs="0" name="History">
                    <xs:complexType>
                        <xs:sequence>
                            <xs:element minOccurs="0" name="Created" type="xs:dateTime"/>
                            <xs:element minOccurs="0" name="Template" type="xs:string"/>
                            <xs:element minOccurs="0" name="Sort" type="xs:string"/>
                            <xs:element minOccurs="0" name="CopiedFrom" type="xs:string"/>
                            <xs:element minOccurs="0" name="CreatedFrom" type="xs:string"/>
                            <xs:element maxOccurs="unbounded"
                                minOccurs="0" name="Action" type="xoalra:HistoryType"/>
                        </xs:sequence>
                    </xs:complexType>
                </xs:element>
            </xs:sequence>
        </xs:complexType>
    </xs:element>
    <!-- ===============================
	<xs:include schemaLocation="AddressType.xsd"/>
	<xs:include schemaLocation="Document.xsd"/>
	<xs:include schemaLocation="EncodableStringType.xsd"/>
	<xs:include schemaLocation="OwnershipLevelType.xsd"/>
	<xs:include schemaLocation="SegmentType.xsd"/>
	<xs:include schemaLocation="StatusType.xsd"/>
	=============================== -->
    <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: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="xoalra:DocEncodingFormat" use="required"/>
            </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 name="DocData" type="xoalra:DocDataType"/>
            <xs:element minOccurs="0" name="CharacterSet" type="xs:string"/>
        </xs:sequence>
    </xs:complexType>
    <xs:complexType name="TableType">
        <xs:sequence>
            <xs:element minOccurs="0" name="FieldMapping" type="xoalra:FieldMappingType"/>
            <xs:element name="Document" type="xoalra:DocumentType"/>
        </xs:sequence>
        <xs:attribute name="ref" type="xs:string" use="optional"/>
        <xs:attribute name="refb64" type="xs:string" use="optional"/>
    </xs:complexType>
    <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="xoalra:OwnershipLevelType" use="optional"/>
                <xs:attribute name="liststore"
                    type="xoalra:ListStoreType" use="required"/>
                <xs:attribute name="xdn" 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="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>
    <!--includes for standalone validation
	================ -->
    <xs:simpleType name="HistoryActionType">
        <xs:restriction base="xs:string">
            <xs:enumeration value="inserted"/>
            <xs:enumeration value="updated"/>
            <xs:enumeration value="deleted"/>
        </xs:restriction>
    </xs:simpleType>
    <xs:complexType name="ItemCountType">
        <xs:simpleContent>
            <xs:extension base="xs:integer">
                <xs:attribute name="type" type="xoalra:HistoryActionType"/>
            </xs:extension>
        </xs:simpleContent>
    </xs:complexType>
    <xs:complexType name="HistoryType">
        <xs:sequence>
            <xs:element name="Action" type="xs:string"/>
            <xs:element name="Operator" type="xs:string"/>
            <xs:element name="Agent" type="xs:string"/>
            <xs:element name="Time" type="xs:dateTime"/>
            <xs:element name="ItemCount" type="xoalra:ItemCountType"/>
        </xs:sequence>
    </xs:complexType>
</xs:schema>
