<?xml version="1.0" encoding="UTF-8"?>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:ns1="http://www.promostandards.org/WSDL/Invoice/1.0.0/" xmlns:ns2="http://www.promostandards.org/WSDL/Invoice/1.0.0/SharedObjects/" xmlns:ns4="http://www.isotc211.org/iso4217/" xmlns:ns5="http://www.codesynthesis.com/xmlns/xsstl" targetNamespace="http://www.promostandards.org/WSDL/Invoice/1.0.0/SharedObjects/" elementFormDefault="qualified">
  <xsd:import namespace="http://www.codesynthesis.com/xmlns/xsstl" schemaLocation="iso3166-country-code.xsd"/>
  <xsd:import namespace="http://www.isotc211.org/iso4217/" schemaLocation="iso4217-currency-code.xsd"/>
  <xsd:simpleType name="addressLine">
    <xsd:restriction base="xsd:string">
      <xsd:minLength value="1"/>
      <xsd:maxLength value="64"/>
    </xsd:restriction>
  </xsd:simpleType>
  <xsd:simpleType name="invoiceTypeType">
    <xsd:restriction base="xsd:string">
      <xsd:enumeration value="INVOICE"/>
      <xsd:enumeration value="CREDIT MEMO"/>
    </xsd:restriction>
  </xsd:simpleType>
  <xsd:simpleType name="quantityUOMType">
    <xsd:restriction base="xsd:string">
      <xsd:enumeration value="BX"/>
      <xsd:enumeration value="CA"/>
      <xsd:enumeration value="DZ"/>
      <xsd:enumeration value="EA"/>
      <xsd:enumeration value="KT"/>
      <xsd:enumeration value="PR"/>
      <xsd:enumeration value="PK"/>
      <xsd:enumeration value="RL"/>
      <xsd:enumeration value="ST"/>
      <xsd:enumeration value="SL"/>
      <xsd:enumeration value="TH"/>
    </xsd:restriction>
  </xsd:simpleType>
  <xsd:simpleType name="queryTypeType">
    <xsd:restriction base="xsd:int">
      <xsd:enumeration value="1"/>
      <xsd:enumeration value="2"/>
      <xsd:enumeration value="3"/>
      <xsd:enumeration value="4"/>
    </xsd:restriction>
  </xsd:simpleType>
  <xsd:simpleType name="SeverityType">
    <xsd:restriction base="xsd:string">
      <xsd:enumeration value="Error"/>
      <xsd:enumeration value="Information"/>
      <xsd:enumeration value="Warning"/>
    </xsd:restriction>
  </xsd:simpleType>
  <xsd:simpleType name="taxTypeType">
    <xsd:restriction base="xsd:string">
      <xsd:enumeration value="SALES"/>
      <xsd:enumeration value="HST/GST"/>
      <xsd:enumeration value="PST"/>
      <xsd:enumeration value="VAT"/>
    </xsd:restriction>
  </xsd:simpleType>
  <xsd:element name="AccountInfo">
    <xsd:complexType>
      <xsd:sequence>
        <xsd:element ref="ns2:accountName" minOccurs="0"/>
        <xsd:element ref="ns2:accountNumber" minOccurs="0"/>
        <xsd:element name="Address1" type="ns2:addressLine" minOccurs="0"/>
        <xsd:element name="Address2" type="ns2:addressLine" minOccurs="0"/>
        <xsd:element name="Address3" type="ns2:addressLine" minOccurs="0"/>
        <xsd:element ref="ns2:city" minOccurs="0"/>
        <xsd:element ref="ns2:region" minOccurs="0"/>
        <xsd:element ref="ns2:postalCode" minOccurs="0"/>
        <xsd:element ref="ns2:country" minOccurs="0"/>
        <xsd:element ref="ns2:email" minOccurs="0"/>
        <xsd:element ref="ns2:phone" minOccurs="0"/>
      </xsd:sequence>
    </xsd:complexType>
  </xsd:element>
  <xsd:element name="accountName">
    <xsd:simpleType>
      <xsd:restriction base="xsd:string">
        <xsd:minLength value="1"/>
        <xsd:maxLength value="64"/>
      </xsd:restriction>
    </xsd:simpleType>
  </xsd:element>
  <xsd:element name="accountNumber">
    <xsd:simpleType>
      <xsd:restriction base="xsd:string">
        <xsd:minLength value="1"/>
        <xsd:maxLength value="64"/>
      </xsd:restriction>
    </xsd:simpleType>
  </xsd:element>
  <xsd:element name="advancePaymentAmount">
    <xsd:simpleType>
      <xsd:restriction base="xsd:decimal">
        <xsd:fractionDigits value="4"/>
      </xsd:restriction>
    </xsd:simpleType>
  </xsd:element>
  <xsd:element name="availableTimeStamp" type="xsd:dateTime"></xsd:element>
  <xsd:element name="backOrderedQuantity">
    <xsd:simpleType>
      <xsd:restriction base="xsd:decimal"/>
    </xsd:simpleType>
  </xsd:element>
  <xsd:element name="chargeId">
    <xsd:simpleType>
      <xsd:restriction base="xsd:string">
        <xsd:minLength value="1"/>
        <xsd:maxLength value="64"/>
      </xsd:restriction>
    </xsd:simpleType>
  </xsd:element>
  <xsd:element name="city">
    <xsd:simpleType>
      <xsd:restriction base="xsd:string">
        <xsd:minLength value="1"/>
        <xsd:maxLength value="64"/>
      </xsd:restriction>
    </xsd:simpleType>
  </xsd:element>
  <xsd:element name="country">
    <xsd:simpleType>
      <xsd:restriction base="ns5:ISO3166CountyCode">
        <xsd:maxLength value="2"/>
        <xsd:minLength value="2"/>
      </xsd:restriction>
    </xsd:simpleType>
  </xsd:element>
  <xsd:element name="currency" type="ns4:CurrencyCodeType"/>
  <xsd:element name="distributorPartId">
    <xsd:simpleType>
      <xsd:restriction base="xsd:string">
        <xsd:minLength value="1"/>
        <xsd:maxLength value="64"/>
      </xsd:restriction>
    </xsd:simpleType>
  </xsd:element>
  <xsd:element name="distributorProductId">
    <xsd:simpleType>
      <xsd:restriction base="xsd:string">
        <xsd:minLength value="1"/>
        <xsd:maxLength value="64"/>
      </xsd:restriction>
    </xsd:simpleType>
  </xsd:element>
  <xsd:element name="email">
    <xsd:simpleType>
      <xsd:restriction base="xsd:string">
        <xsd:minLength value="1"/>
        <xsd:maxLength value="128"/>
      </xsd:restriction>
    </xsd:simpleType>
  </xsd:element>
  <xsd:element name="extendedPrice">
    <xsd:simpleType>
      <xsd:restriction base="xsd:decimal">
        <xsd:fractionDigits value="4"/>
      </xsd:restriction>
    </xsd:simpleType>
  </xsd:element>
  <xsd:element name="fob">
    <xsd:simpleType>
      <xsd:restriction base="xsd:token">
        <xsd:minLength value="1"/>
        <xsd:maxLength value="64"/>
      </xsd:restriction>
    </xsd:simpleType>
  </xsd:element>
  <xsd:element name="handlingAmount">
    <xsd:simpleType>
      <xsd:restriction base="xsd:decimal">
        <xsd:fractionDigits value="4"/>
      </xsd:restriction>
    </xsd:simpleType>
  </xsd:element>
  <xsd:element name="id">
    <xsd:simpleType>
      <xsd:restriction base="xsd:token">
        <xsd:minLength value="1"/>
        <xsd:maxLength value="64"/>
      </xsd:restriction>
    </xsd:simpleType>
  </xsd:element>
  <xsd:element name="invoiceAmount">
    <xsd:simpleType>
      <xsd:restriction base="xsd:decimal">
        <xsd:fractionDigits value="4"/>
      </xsd:restriction>
    </xsd:simpleType>
  </xsd:element>
  <xsd:element name="invoiceAmountDue">
    <xsd:simpleType>
      <xsd:restriction base="xsd:decimal">
        <xsd:fractionDigits value="4"/>
      </xsd:restriction>
    </xsd:simpleType>
  </xsd:element>
  <xsd:element name="invoiceDate" type="xsd:date"></xsd:element>
  <xsd:element name="InvoiceLineItem">
    <xsd:complexType>
      <xsd:sequence>
        <xsd:element ref="ns2:invoiceLineItemNumber" minOccurs="0"/>
        <xsd:element ref="ns2:productId" minOccurs="0"/>
        <xsd:element ref="ns2:partId" minOccurs="0"/>
        <xsd:element ref="ns2:chargeId" minOccurs="0"/>
        <xsd:element ref="ns2:purchaseOrderLineItemNumber" minOccurs="0"/>
        <xsd:element ref="ns2:orderedQuantity" minOccurs="0"/>
        <xsd:element ref="ns2:invoiceQuantity"/>
        <xsd:element ref="ns2:backOrderedQuantity" minOccurs="0"/>
        <xsd:element ref="ns2:quantityUOM"/>
        <xsd:element ref="ns2:lineItemDescription"/>
        <xsd:element ref="ns2:unitPrice"/>
        <xsd:element ref="ns2:extendedPrice"/>
        <xsd:element ref="ns2:distributorProductId" minOccurs="0"/>
        <xsd:element ref="ns2:distributorPartId" minOccurs="0"/>
      </xsd:sequence>
    </xsd:complexType>
  </xsd:element>
  <xsd:element name="invoiceLineItemNumber">
    <xsd:simpleType>
      <xsd:restriction base="xsd:decimal">
        <xsd:fractionDigits value="4"/>
      </xsd:restriction>
    </xsd:simpleType>
  </xsd:element>
  <xsd:element name="invoiceNumber">
    <xsd:simpleType>
      <xsd:restriction base="xsd:token">
        <xsd:minLength value="1"/>
        <xsd:maxLength value="64"/>
      </xsd:restriction>
    </xsd:simpleType>
  </xsd:element>
  <xsd:element name="invoiceQuantity">
    <xsd:simpleType>
      <xsd:restriction base="xsd:decimal"/>
    </xsd:simpleType>
  </xsd:element>
  <xsd:element name="invoiceType">
    <xsd:simpleType>
      <xsd:restriction base="ns2:invoiceTypeType">
        <xsd:minLength value="1"/>
        <xsd:maxLength value="64"/>
      </xsd:restriction>
    </xsd:simpleType>
  </xsd:element>
  <xsd:element name="invoiceVoidedDate" type="xsd:dateTime"></xsd:element>
  <xsd:element name="invoiceVoidedAvailableTimeStamp" type="xsd:date"></xsd:element>
  <xsd:element name="lineItemDescription">
    <xsd:simpleType>
      <xsd:restriction base="xsd:string">
        <xsd:minLength value="1"/>
        <xsd:maxLength value="1024"/>
      </xsd:restriction>
    </xsd:simpleType>
  </xsd:element>
  <xsd:element name="localizationCountry">
    <xsd:simpleType>
      <xsd:restriction base="ns5:ISO3166CountyCode">
        <xsd:maxLength value="2"/>
        <xsd:minLength value="2"/>
      </xsd:restriction>
    </xsd:simpleType>
  </xsd:element>
  <xsd:element name="localizationLanguage">
    <xsd:simpleType>
      <xsd:restriction base="xsd:string">
        <xsd:minLength value="2"/>
        <xsd:maxLength value="2"/>
      </xsd:restriction>
    </xsd:simpleType>
  </xsd:element>
  <xsd:element name="orderedQuantity">
    <xsd:simpleType>
      <xsd:restriction base="xsd:decimal"/>
    </xsd:simpleType>
  </xsd:element>
  <xsd:element name="partId">
    <xsd:simpleType>
      <xsd:restriction base="xsd:string">
        <xsd:minLength value="1"/>
        <xsd:maxLength value="64"/>
      </xsd:restriction>
    </xsd:simpleType>
  </xsd:element>
  <xsd:element name="password">
    <xsd:simpleType>
      <xsd:restriction base="xsd:token">
        <xsd:minLength value="1"/>
        <xsd:maxLength value="64"/>
      </xsd:restriction>
    </xsd:simpleType>
  </xsd:element>
  <xsd:element name="paymentDueDate" type="xsd:date">
  </xsd:element>
  <xsd:element name="paymentTerms">
    <xsd:simpleType>
      <xsd:restriction base="xsd:string">
        <xsd:minLength value="1"/>
        <xsd:maxLength value="64"/>
      </xsd:restriction>
    </xsd:simpleType>
  </xsd:element>
  <xsd:element name="phone">
    <xsd:simpleType>
      <xsd:restriction base="xsd:string">
        <xsd:minLength value="1"/>
        <xsd:maxLength value="32"/>
      </xsd:restriction>
    </xsd:simpleType>
  </xsd:element>
  <xsd:element name="postalCode">
    <xsd:simpleType>
      <xsd:restriction base="xsd:string">
        <xsd:minLength value="1"/>
        <xsd:maxLength value="64"/>
      </xsd:restriction>
    </xsd:simpleType>
  </xsd:element>
  <xsd:element name="productId">
    <xsd:simpleType>
      <xsd:restriction base="xsd:string">
        <xsd:minLength value="1"/>
        <xsd:maxLength value="64"/>
      </xsd:restriction>
    </xsd:simpleType>
  </xsd:element>
  <xsd:element name="purchaseOrderLineItemNumber">
    <xsd:simpleType>
      <xsd:restriction base="xsd:decimal">
        <xsd:fractionDigits value="4"/>
      </xsd:restriction>
    </xsd:simpleType>
  </xsd:element>
  <xsd:element name="purchaseOrderNumber">
    <xsd:simpleType>
      <xsd:restriction base="xsd:string">
        <xsd:minLength value="1"/>
        <xsd:maxLength value="64"/>
      </xsd:restriction>
    </xsd:simpleType>
  </xsd:element>
  <xsd:element name="purchaseOrderVersion">
    <xsd:simpleType>
      <xsd:restriction base="xsd:string">
        <xsd:minLength value="1"/>
        <xsd:maxLength value="64"/>
      </xsd:restriction>
    </xsd:simpleType>
  </xsd:element>
  <xsd:element name="quantityUOM">
    <xsd:simpleType>
      <xsd:restriction base="ns2:quantityUOMType">
        <xsd:minLength value="2"/>
        <xsd:maxLength value="2"/>
      </xsd:restriction>
    </xsd:simpleType>
  </xsd:element>
  <xsd:element name="queryType">
    <xsd:simpleType>
      <xsd:restriction base="ns2:queryTypeType"/>
    </xsd:simpleType>
  </xsd:element>
  <xsd:element name="referenceNumber">
    <xsd:simpleType>
      <xsd:restriction base="xsd:string">
        <xsd:minLength value="1"/>
        <xsd:maxLength value="64"/>
      </xsd:restriction>
    </xsd:simpleType>
  </xsd:element>
  <xsd:element name="region">
    <xsd:simpleType>
      <xsd:restriction base="xsd:string">
        <xsd:minLength value="1"/>
        <xsd:maxLength value="3"/>
      </xsd:restriction>
    </xsd:simpleType>
  </xsd:element>
  <xsd:element name="requestedDate" type="xsd:date"></xsd:element>
  <xsd:element name="salesAmount">
    <xsd:simpleType>
      <xsd:restriction base="xsd:decimal">
        <xsd:fractionDigits value="4"/>
      </xsd:restriction>
    </xsd:simpleType>
  </xsd:element>
  <xsd:element name="salesOrderNumber">
    <xsd:annotation>
      <xsd:documentation>
        The sales order number
      </xsd:documentation>
    </xsd:annotation>
    <xsd:simpleType>
      <xsd:restriction base="xsd:string">
        <xsd:minLength value="1"/>
        <xsd:maxLength value="64"/>
      </xsd:restriction>
    </xsd:simpleType>
  </xsd:element>
  <xsd:element name="ServiceMessageArray">
    <xsd:complexType>
      <xsd:sequence>
        <xsd:element ref="ns2:ServiceMessage" maxOccurs="unbounded"/>
      </xsd:sequence>
    </xsd:complexType>
  </xsd:element>
  <xsd:element name="ServiceMessage">
    <xsd:complexType>
      <xsd:sequence>
        <xsd:element name="code" type="xsd:int"></xsd:element>
        <xsd:element name="description">
          <xsd:simpleType>
            <xsd:restriction base="xsd:token">
              <xsd:maxLength value="256"/>
              <xsd:minLength value="1"/>
            </xsd:restriction>
          </xsd:simpleType>
        </xsd:element>
        <xsd:element name="severity">
          <xsd:simpleType>
            <xsd:restriction base="ns2:SeverityType">
              <xsd:maxLength value="64"/>
              <xsd:minLength value="1"/>
            </xsd:restriction>
          </xsd:simpleType>
        </xsd:element>
      </xsd:sequence>
    </xsd:complexType>
  </xsd:element>
  <xsd:element name="shippingAmount">
    <xsd:simpleType>
      <xsd:restriction base="xsd:decimal">
        <xsd:fractionDigits value="4"/>
      </xsd:restriction>
    </xsd:simpleType>
  </xsd:element>
  <xsd:element name="tax">
    <xsd:complexType>
      <xsd:sequence>
        <xsd:element name="taxType" type="ns2:taxTypeType"/>
        <xsd:element ref="ns2:taxJurisdiction"/>
        <xsd:element ref="ns2:taxAmount"/>
      </xsd:sequence>
    </xsd:complexType>
  </xsd:element>
  <xsd:element name="taxAmount">
    <xsd:simpleType>
      <xsd:restriction base="xsd:decimal">
        <xsd:fractionDigits value="4"/>
      </xsd:restriction>
    </xsd:simpleType>
  </xsd:element>
  <xsd:element name="taxJurisdiction">
    <xsd:simpleType>
      <xsd:restriction base="xsd:string">
        <xsd:minLength value="1"/>
        <xsd:maxLength value="64"/>
      </xsd:restriction>
    </xsd:simpleType>
  </xsd:element>
  <xsd:element name="unitPrice">
    <xsd:simpleType>
      <xsd:restriction base="xsd:decimal">
        <xsd:fractionDigits value="4"/>
      </xsd:restriction>
    </xsd:simpleType>
  </xsd:element>
  <xsd:element name="voidDate" type="xsd:date">
  </xsd:element>
  <xsd:element name="wsVersion">
    <xsd:simpleType>
      <xsd:restriction base="xsd:token">
        <xsd:minLength value="1"/>
        <xsd:maxLength value="64"/>
      </xsd:restriction>
    </xsd:simpleType>
  </xsd:element>
</xsd:schema>
