<?xml version="1.0" encoding="UTF-8"?>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <xsd:element name="DocRef" type="DocRefType"/>
  <xsd:element name="Equipment" type="EquipmentType"/>
  <xsd:element name="ItemOrder" type="LineItemType"/>
  <xsd:element name="ItemResponse" type="ItemResponseType"/>
  <xsd:element name="PurchaseInfo" type="PurchaseInfoType"/>
  <xsd:element name="Reference" type="ReferenceType"/>
  <xsd:element name="Response" type="ResponseType"/>
  <xsd:element name="SubmitterParty" type="SubmitterType"/>
  <xsd:complexType name="DocRefType">
    <xsd:annotation>
      <xsd:documentation>This element group is for reference to a document such as a "Rebate Coupon", 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 "invoice", "Work order", "photo".</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="EquipmentType">
    <xsd:annotation>
      <xsd:documentation>This element group is for general information about the wholegood product which is the subject of this transaction.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="EquipManufacturer" type="xsd:string">
        <xsd:annotation>
          <xsd:documentation>This element is for designating the manufacturer of the wholegood.</xsd:documentation>
          <xsd:documentation>See the OPEI Manufacturer Code List.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="EquipmentType" type="xsd:string">
        <xsd:annotation>
          <xsd:documentation>This element is for wholegood "type" information required by the manufacturer.</xsd:documentation>
          <xsd:documentation>See the OPEI Equipment Type Code List.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="EquipModelNumber" type="xsd:string">
        <xsd:annotation>
          <xsd:documentation>This element is for the Model number assigned to the wholegood by the manufacturer.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="UnitSerialNumber" type="xsd:string">
        <xsd:annotation>
          <xsd:documentation>This element is for the serial number of the wholegood unit.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="ItemResponseType">
    <xsd:annotation>
      <xsd:documentation>This element is for specific response information about the product (Line Item) in the original message. 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 in identifying which line of the original message is being responded to.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="Status" type="xsd:string" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>This element is for indicating the status of this line item alone. If the SubmitStatus element in the response group above has been used to show the status of all line items, this element should not be used.</xsd:documentation>
          <xsd:documentation>This element will use a list of approved values. "Approved" means the transaction is accepted. "Rejected" means there was something wrong with it. "In Process" means it has been received and is yet to be processed.</xsd:documentation>
          <xsd:documentation>Suppliers that use the "In Process" status will have to advise their partners separately as to how the final disposition of the transaction will be communicated. They can do so with the following Note element if desired.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="Note" type="xsd:string" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>This element is for explaining the status of this line item alone, or for providing other human readable information unique to it.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="ProductID">
        <xsd:annotation>
          <xsd:documentation>This element is for the product Id  which was assigned by the manufacturer of the item.</xsd:documentation>
        </xsd:annotation>
        <xsd:complexType>
          <xsd:simpleContent>
            <xsd:extension base="xsd:string">
              <xsd:attribute name="Substituted" type="xsd:string">
                <xsd:annotation>
                  <xsd:documentation>This attribute is to be used to signify the part number in this element is that of a part substituted for the item originally requested.</xsd:documentation>
                </xsd:annotation>
              </xsd:attribute>
              <xsd:attribute name="Supercedes" type="xsd:string">
                <xsd:annotation>
                  <xsd:documentation>This attribute is to be used to signify that the part number in this element is that of a part that supercedes the item originally requested.</xsd:documentation>
                </xsd:annotation>
              </xsd:attribute>
            </xsd:extension>
          </xsd:simpleContent>
        </xsd:complexType>
      </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:documentation>See the OPEI Manufacturer Code List.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="Description" type="xsd:string" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>This element is for a text description of the part or product.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="Quantity">
        <xsd:annotation>
          <xsd:documentation>This element is for the quantity of this item specified in the original message (ie .. PO or Inquiry).</xsd:documentation>
          <xsd:documentation>See the Quantity subset of the OPEI Unit of Measure Code List for attribute values.</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="AvailableQuantity">
        <xsd:annotation>
          <xsd:documentation>This element is for specifying a quantity of this item immediately available.</xsd:documentation>
          <xsd:documentation>See the Quantity subset of the OPEI Unit of Measure Code List for attribute values.</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="RemainderDisposition" type="xsd:string" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>This element is for a disposition with regard to any remainder quantity not immediately available.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="EstimatedAvailableDate" type="xsd:date" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>This element is for an estimated date when the remainder quantity will be available.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="UnitCost" type="xsd:decimal" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>This element is for the actual unit cost specified by the seller.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="UnitList" type="xsd:decimal" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>This element is for the manufacturer's list price.</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:documentation>See the OPEI Manufacturer Code List.</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:documentation>See the Quantity subset of the OPEI Unit of Measure Code List for attribute values.</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 "Bin Location" 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 "Work Order Number XXX". 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 "Zip" 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="PurchaseInfoType">
    <xsd:annotation>
      <xsd:documentation>This element group is for information relating to the purchase of the subject product, such as the dealership or retailer that sold it and the date.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="PurchasedDate" type="xsd:string">
        <xsd:annotation>
          <xsd:documentation>This element is for the date the product was purchased or transferred to the "owner".</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="DealerId" type="xsd:string">
        <xsd:annotation>
          <xsd:documentation>This element is for the Id number assigned to the dealer by the manufacturer of the product if known, otherwise "unknown" may be used here.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="DealerName" type="xsd:string" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>This element is for the name of the dealership business.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="SalesmanName" type="xsd:string" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>This element is for the name of the person who conducted the sale for the dealership.</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="ResponseType">
    <xsd:annotation>
      <xsd:documentation>This element group is for basic response information from a web service host.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="SubmitId" type="xsd:string">
        <xsd:annotation>
          <xsd:documentation>This element is for the SubmitId that was provided in the original message. It is the number the submitter's system assigned.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="RecipientId" type="xsd:string" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>This element is for the internal Id assigned to the original message by the web service host. It is used to advise the original submitter how the host is identifying the original message within its system.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="SubmitStatus" type="xsd:string">
        <xsd:annotation>
          <xsd:documentation>This element is for advising the submitter of the status of the original message.</xsd:documentation>
          <xsd:documentation>This element will use a list of approved values. "Approved" means the transaction is accepted. "Rejected" means there was something wrong with it. "In Process" means it has been received and is yet to be processed.</xsd:documentation>
          <xsd:documentation>Suppliers that use the "In Process" status will have to advise their partners separately as to how the final disposition of the transaction will be communicated. They can do so with the following Note element if desired.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="Note" type="xsd:string" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>This element is for free text which will provide whatever additional information the web service host chooses to provide.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
    </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 "Proxy" 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>

