<?xml version="1.0" encoding="UTF-8"?>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <xsd:element name="PurchaseOrder">
    <xsd:annotation>
      <xsd:documentation>This is the Root Element for the schema.</xsd:documentation>
    </xsd:annotation>
    <xsd:complexType>
      <xsd:sequence>
        <xsd:element name="SubmitterParty" type="SubmitterType">
          <xsd:annotation>
            <xsd:documentation>This element group is for information about the submitter of the message.</xsd:documentation>
          </xsd:annotation>
        </xsd:element>
        <xsd:element name="ProgramCode" type="xsd:string" minOccurs="0">
          <xsd:annotation>
            <xsd:documentation>This element is for the marketing program code provided by the seller.</xsd:documentation>
          </xsd:annotation>
        </xsd:element>
        <xsd:element name="PaymentMethod" type="xsd:string">
          <xsd:annotation>
            <xsd:documentation>This element is for the method the buyer wants to use for payment.</xsd:documentation>
          </xsd:annotation>
        </xsd:element>
        <xsd:element name="CreditInformation" minOccurs="0">
          <xsd:annotation>
            <xsd:documentation>This element group is for iinformation necessary to use a credit card for payment.</xsd:documentation>
          </xsd:annotation>
          <xsd:complexType>
            <xsd:sequence>
              <xsd:element name="CreditCardNumber" type="xsd:string">
                <xsd:annotation>
                  <xsd:documentation>This element is for placement of the credit card account number.</xsd:documentation>
                </xsd:annotation>
              </xsd:element>
              <xsd:element name="CreditCardType" type="xsd:string">
                <xsd:annotation>
                  <xsd:documentation>This element is for the type of credit card being used.</xsd:documentation>
                </xsd:annotation>
              </xsd:element>
              <xsd:element name="CreditCardName" type="xsd:string">
                <xsd:annotation>
                  <xsd:documentation>This element is for name of the owner(s) as shown on the credit card.</xsd:documentation>
                </xsd:annotation>
              </xsd:element>
              <xsd:element name="ExpirationDate" type="xsd:string">
                <xsd:annotation>
                  <xsd:documentation>This element is for placement of the credit card expiration date (month &amp; year).</xsd:documentation>
                </xsd:annotation>
              </xsd:element>
              <xsd:element name="BillingAddress" type="xsd:string">
                <xsd:annotation>
                  <xsd:documentation>This element is for the billing address of record for the credit card.</xsd:documentation>
                </xsd:annotation>
              </xsd:element>
              <xsd:element name="VerificationCode" type="xsd:string">
                <xsd:annotation>
                  <xsd:documentation>This element is for the three digit verification code that follows the credit card account number shown on the back of the credit card.</xsd:documentation>
                </xsd:annotation>
              </xsd:element>
            </xsd:sequence>
          </xsd:complexType>
        </xsd:element>
        <xsd:element name="Reference" type="ReferenceType">
          <xsd:annotation>
            <xsd:documentation>This re-usable element group is for specifying reference source information that will be helpful to any party. It can include supporting documentation such as a Rebate Coupon number and may be used for identification of other supporting information.</xsd:documentation>
          </xsd:annotation>
        </xsd:element>
        <xsd:element name="ShipInstructions" minOccurs="0">
          <xsd:annotation>
            <xsd:documentation>This element is for a grouping of elements specifying shipping requests. Shipping request information must apply to all line items in this order.</xsd:documentation>
          </xsd:annotation>
          <xsd:complexType>
            <xsd:sequence>
              <xsd:element name="FreightPaymentMethod" type="xsd:string" minOccurs="0">
                <xsd:annotation>
                  <xsd:documentation>This element is for method of payment information regarding freight and shipping charges.</xsd:documentation>
                </xsd:annotation>
              </xsd:element>
              <xsd:element name="DeliveryDateTime" type="xsd:string" minOccurs="0">
                <xsd:annotation>
                  <xsd:documentation>This element is for requested delivery date and time.</xsd:documentation>
                </xsd:annotation>
              </xsd:element>
              <xsd:element name="CarrierDetail" minOccurs="0">
                <xsd:annotation>
                  <xsd:documentation>This grouping is for information about the requested carrier and routing.</xsd:documentation>
                </xsd:annotation>
                <xsd:complexType>
                  <xsd:sequence>
                    <xsd:element name="CarrierName" type="xsd:string" minOccurs="0">
                      <xsd:annotation>
                        <xsd:documentation>This element is for the name of the requested carrier.</xsd:documentation>
                      </xsd:annotation>
                    </xsd:element>
                    <xsd:element name="CarrierId" type="xsd:string" minOccurs="0">
                      <xsd:annotation>
                        <xsd:documentation>This element is for the SCAC code of the requested carrier.</xsd:documentation>
                      </xsd:annotation>
                    </xsd:element>
                    <xsd:element name="ServiceLevel" type="xsd:string" minOccurs="0">
                      <xsd:annotation>
                        <xsd:documentation>This element is for the service level requested.</xsd:documentation>
                      </xsd:annotation>
                    </xsd:element>
                  </xsd:sequence>
                </xsd:complexType>
              </xsd:element>
              <xsd:element name="Note" type="xsd:string" minOccurs="0">
                <xsd:annotation>
                  <xsd:documentation>This element is for a text note regarding shipping instructions.</xsd:documentation>
                </xsd:annotation>
              </xsd:element>
            </xsd:sequence>
          </xsd:complexType>
        </xsd:element>
        <xsd:element name="ShipToParty" minOccurs="0" maxOccurs="unbounded">
          <xsd:annotation>
            <xsd:documentation>This element group contains information about the location the buyer wants the goods shipped to if other than the buyer&apos;s location of record. This is specifically for support of &quot;Drop Shipments&quot;.</xsd:documentation>
          </xsd:annotation>
          <xsd:complexType>
            <xsd:sequence>
              <xsd:element name="ShipToId" type="xsd:string" minOccurs="0">
                <xsd:annotation>
                  <xsd:documentation>This element is for the ID provided to the ship to location by the host of the web service or a commonly recognized party.</xsd:documentation>
                </xsd:annotation>
              </xsd:element>
              <xsd:element name="ShipToInfo" type="PartyInfoType" minOccurs="0">
                <xsd:annotation>
                  <xsd:documentation>This element is for use in specifying the ship to location and information about that location such as address, phone, e-mail, etc.</xsd:documentation>
                </xsd:annotation>
              </xsd:element>
            </xsd:sequence>
          </xsd:complexType>
        </xsd:element>
        <xsd:element name="ItemOrder" type="LineItemType" maxOccurs="unbounded">
          <xsd:annotation>
            <xsd:documentation>This element is for specific information about the product (Line Item) ordered. It must be repeated for every product.</xsd:documentation>
          </xsd:annotation>
        </xsd:element>
      </xsd:sequence>
    </xsd:complexType>
  </xsd:element>
  <xsd:complexType name="DocRefType">
    <xsd:annotation>
      <xsd:documentation>This element group is for reference to a document such as a &quot;Rebate Coupon&quot;, or any other document pertinent to this transaction.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="DocType" type="xsd:string" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>This element is for a text description of the type of document being referred to, such as &quot;invoice&quot;, &quot;Work order&quot;, &quot;photo&quot;.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="DocId" type="xsd:string" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>This element is for the Id of the reference document, ideally a control number assigned to it.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="LineItemType">
    <xsd:annotation>
      <xsd:documentation>This element is for specific information about the product (Line Item) ordered. It must be repeated for every product.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="LineNumber" type="xsd:string">
        <xsd:annotation>
          <xsd:documentation>This element is for use by the submitter in assigning an identifier (typically a numeric sequence number) to each line item in this order.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="ProductID" type="xsd:string">
        <xsd:annotation>
          <xsd:documentation>This element is for the product Id of the item which was assigned by the manufacturer.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="PartManufacturer" type="xsd:string">
        <xsd:annotation>
          <xsd:documentation>This element is for specifying the manufacturer of the item.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="Quantity">
        <xsd:annotation>
          <xsd:documentation>This element is for specifying how many of each part were used.</xsd:documentation>
        </xsd:annotation>
        <xsd:complexType>
          <xsd:simpleContent>
            <xsd:extension base="xsd:int">
              <xsd:attribute name="Measure" type="xsd:string" use="required">
                <xsd:annotation>
                  <xsd:documentation>This attribute is for specifying the unit of measure based on a code list.</xsd:documentation>
                </xsd:annotation>
              </xsd:attribute>
            </xsd:extension>
          </xsd:simpleContent>
        </xsd:complexType>
      </xsd:element>
      <xsd:element name="UnitCost" type="xsd:decimal" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>This element is for the unit cost of the item if the submitter chooses to specify it. The intention here is for special usage only, that is when the submitter knows they have the ability to submit a bid price, or they have been granted a special arrangement with the supplier (i.e. government contracts).</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="BinLocation" type="xsd:string" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>This element is for the submitter to specify a &quot;Bin Location&quot; with the understanding that the seller will attach this information to the shipment so the buyer knows readily where the shipment is to be forwarded upon receipt.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="RefNumber" type="xsd:string" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>This element is for the submitter to propvide other information to be attached to the shipment, such as &quot;Work Order Number XXX&quot;. This will facilitate the buyer in quickly directing the shipment to the correct location or person upon receipt.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="PartyInfoType">
    <xsd:annotation>
      <xsd:documentation>This re-usable element group includes all contact information for a party.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="CompanyLastName" type="xsd:string">
        <xsd:annotation>
          <xsd:documentation>This element is for name of the receiving company or the last name of the recipient if an individual.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="FirstName" type="xsd:string" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>This element is for the first name of the individual if the recipient is not a company.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="AddrLine1" type="xsd:string">
        <xsd:annotation>
          <xsd:documentation>This element is for the first address line.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="AddrLine2" type="xsd:string" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>This element is for a second address line.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="City" type="xsd:string">
        <xsd:annotation>
          <xsd:documentation>This element is for the location city.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="StateProvince" type="xsd:string">
        <xsd:annotation>
          <xsd:documentation>This element is for the state or province of the location.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="MailCode" type="xsd:string">
        <xsd:annotation>
          <xsd:documentation>This element is for the mail or &quot;Zip&quot; code.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="Country" type="xsd:string" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>This element is for the country if needed.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="Phone" type="xsd:string" minOccurs="0" maxOccurs="unbounded">
        <xsd:annotation>
          <xsd:documentation>This element is for a phone number at the location.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="Fax" type="xsd:string" minOccurs="0" maxOccurs="unbounded">
        <xsd:annotation>
          <xsd:documentation>This element is for a fax number at the location.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="Email" type="xsd:anyURI" minOccurs="0" maxOccurs="unbounded">
        <xsd:annotation>
          <xsd:documentation>This element is for an e-mail address at the location.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="ReferenceType">
    <xsd:annotation>
      <xsd:documentation>This re-usable element group is for specifying reference source information that will be helpful to any party. It can include supporting documentation such as a Rebate Coupon number and may be used for identification of other supporting documents.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="SubmitId" type="xsd:string">
        <xsd:annotation>
          <xsd:documentation>This element is for the submitter to assign a number or other unique identifier to this message so the receiver knows how to refer to it in return communications.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="SubmitDate" type="xsd:string">
        <xsd:annotation>
          <xsd:documentation>This element is for the submitter to specify the date of generation of this message.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="SubmissionType" type="xsd:string" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>This element is for a standard code designating the type of transaction this message calls for.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="AuthorizationNumber" type="xsd:string" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>This element is for an authorization number or code provided to the submitter by the manufacturer or distributor as an authorization for this transaction. In this location, it applies to the entire message. There may also be authorization codes used elsewhere relating to specific parts of the transaction.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="DocRef" type="DocRefType" minOccurs="0"/>
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="SubmitterType">
    <xsd:annotation>
      <xsd:documentation>This element group is for information about the submitter of the message.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="Proxy" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>This element group is for identifying the &quot;Proxy&quot; submitter of the message on behalf of someone else.</xsd:documentation>
        </xsd:annotation>
        <xsd:complexType>
          <xsd:sequence>
            <xsd:element name="ProxyId" type="xsd:string">
              <xsd:annotation>
                <xsd:documentation>This element is for the Id code assigned to the proxy submitter by the web service host or a commonly recognized party.</xsd:documentation>
              </xsd:annotation>
            </xsd:element>
            <xsd:element name="ProxyName" type="xsd:string" minOccurs="0">
              <xsd:annotation>
                <xsd:documentation>This element is for the name of the proxy submitter of the message.</xsd:documentation>
              </xsd:annotation>
            </xsd:element>
          </xsd:sequence>
        </xsd:complexType>
      </xsd:element>
      <xsd:element name="SubmitterID" type="xsd:string">
        <xsd:annotation>
          <xsd:documentation>This element is for the Id code assigned to the submitter by the web service host or a commonly recognized party.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="SubmitterName" type="xsd:string">
        <xsd:annotation>
          <xsd:documentation>This element is for the name of an individual responsible for submitting the claim.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="EMail" type="xsd:string" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>This element is for an E-Mail address where the Submitter can be contacted.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="Currency" type="xsd:string" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>This element is for specifying the currency used for all charge amounts. The currency identifier used here must comply with the ISO international currency code list.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
    </xsd:sequence>
  </xsd:complexType>
</xsd:schema>

