<?xml version="1.0" encoding="UTF-8"?>

<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" attributeFormDefault="unqualified">
  <xs:element name="NeweggAPIResponse">
    <xs:complexType>
      <xs:all>
        <xs:element name="IsSuccess">
			<xs:simpleType>
				<xs:restriction base="xs:string">
					<xs:enumeration value="true"/>
				</xs:restriction>
			</xs:simpleType>
		</xs:element>       
		<xs:element name="OperationType">
			<xs:simpleType>
				<xs:restriction base="xs:string">
					<xs:enumeration value="IssueRMAResponse"/>
				</xs:restriction>
			</xs:simpleType>
		</xs:element>
        <xs:element name="SellerID">
          <xs:simpleType>
            <xs:restriction base="xs:string"/>
          </xs:simpleType>
        </xs:element>
        <xs:element name="ResponseBody">
          <xs:complexType>
            <xs:all>
              <xs:element name="RMAInfo">
                <xs:complexType>
                  <xs:all>
                    <xs:element name="RMANumber" type="xs:int" minOccurs="0"/>
                    <xs:element name="RMAType">
                      <xs:simpleType>
                        <xs:restriction base="xs:integer">
                          <xs:minInclusive value="1"/>
                          <xs:maxInclusive value="2"/>
                        </xs:restriction>
                      </xs:simpleType>
                    </xs:element>
                    <xs:element name="RMATypeDescription" type="xs:string"/>
					<xs:element name="SellerRMANumber" type="xs:string"/>
                    <xs:element name="IssueUser">
                      <xs:simpleType>
                        <xs:restriction base="xs:string"/>
                      </xs:simpleType>
                    </xs:element>
                    <xs:element name="RMADate" type="xs:string"/>
                    <xs:element name="RMAStatus" type="xs:integer"/>
                    <xs:element name="RMAStatusDescription" type="xs:string"/>
                    <xs:element name="RMAShipMethod" type="xs:string" minOccurs="0"/>
                    <xs:element name="RMAShipMethodDescription" type="xs:string" minOccurs="0"/>
                    <xs:element name="OrderNumber" type="xs:int"/>
                    <xs:element name="OrderDate" type="xs:string"/>
                    <xs:element name="InvoiceNumber" type="xs:integer"/>
                    <xs:element name="OrderAmount" type="xs:decimal"/>
                    <xs:element name="AvailableRefundAmount" type="xs:decimal"/>                   
					<xs:element name="RMAProcessedBy" minOccurs="0">
						<xs:simpleType>
							<xs:restriction base="xs:string">
								<xs:enumeration value="newegg"/>
								<xs:enumeration value="seller"/>
							</xs:restriction>
						</xs:simpleType>
					</xs:element>
                    <xs:element name="RMAReceiveDate" type="xs:string"/>
                    <xs:element name="RMANote" type="xs:string" minOccurs="0"/>
                    <xs:element name="PriorRefundAmount" type="xs:decimal"/>
                    <xs:element name="CustomerName" type="xs:string"/>
                    <xs:element name="CustomerPhoneNumber" type="xs:string"/>
                    <xs:element name="CustomerEmailAddress" type="xs:string"/>
                    <xs:element name="ShipToAddress1" type="xs:string"/>
                    <xs:element name="ShipToAddress2" type="xs:string"/>
                    <xs:element name="ShipToCityName" type="xs:string"/>
                    <xs:element name="ShipToStateCode" type="xs:string"/>
                    <xs:element name="ShipToZipCode" type="xs:string"/>
                    <xs:element name="ShipToLastName" type="xs:string"/>
                    <xs:element name="ShipToFirstName" type="xs:string"/>
                    <xs:element name="ShipToCompany" type="xs:string"/>
                    <xs:element name="RMATransactionList">
                      <xs:complexType>
                        <xs:sequence maxOccurs="unbounded">
                          <xs:element name="RMATransaction">
                            <xs:complexType>
                              <xs:all>
                                <xs:element name="SellerPartNumber">
                                  <xs:simpleType>
                                    <xs:restriction base="xs:string"/>
                                  </xs:simpleType>
                                </xs:element>
                                <xs:element name="MfrPartNumber" type="xs:string"/>
                                <xs:element name="NeweggItemNumber" type="xs:string"/>
                                <xs:element name="Description" type="xs:string"/>
                                <xs:element name="UnitPrice" type="xs:decimal"/>
                                <xs:element name="ReturnQuantity">
                                  <xs:simpleType>
                                    <xs:restriction base="xs:integer">
                                      <xs:minInclusive value="1"/>
                                    </xs:restriction>
                                  </xs:simpleType>
                                </xs:element>
                                <xs:element name="ReturnUnitPrice" type="xs:decimal" minOccurs="0"/>
                                <xs:element name="RefundShippingPrice" type="xs:decimal"/>                               
								<xs:element name="ShippedBy" minOccurs="0">
									<xs:simpleType>
										<xs:restriction base="xs:int">
											<xs:enumeration value="0"/>
											<xs:enumeration value="1"/>
										</xs:restriction>
									</xs:simpleType>
								</xs:element>
                                <xs:element name="RefundShipppingPrice" type="xs:decimal" minOccurs="0"/>
                                <xs:element name="RMAReason">
                                  <xs:simpleType>
                                    <xs:restriction base="xs:integer">
                                      <xs:minInclusive value="1"/>
                                      <xs:maxInclusive value="9"/>
                                    </xs:restriction>
                                  </xs:simpleType>
                                </xs:element>
                                <xs:element name="RMAReasonDescription" type="xs:string"/>
                              </xs:all>
                            </xs:complexType>
                          </xs:element>
                        </xs:sequence>
                      </xs:complexType>
                    </xs:element>
                  </xs:all>
                </xs:complexType>
              </xs:element>
            </xs:all>
          </xs:complexType>
        </xs:element>
        <xs:element name="Memo" type="xs:string" minOccurs="0"/>
        <xs:element name="ResponseDate" type="xs:string"/>
      </xs:all>
    </xs:complexType>
  </xs:element>
</xs:schema>
