Invoice schema

Download Invoice-v2009.2.xsd

<?xml version="1.0" encoding="utf-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
  <xs:element name="NAMM_Invoice">
    <xs:complexType>
      <xs:sequence>
        <xs:element name="InvoiceHeader">
          <xs:complexType>
            <xs:sequence>
              <xs:element name="Id">
                <xs:simpleType>
                  <xs:restriction base="xs:string">
                    <xs:maxLength value="50" />
                  </xs:restriction>
                </xs:simpleType>
              </xs:element>
              <xs:element name="Timestamp" type="xs:string" />
              <xs:element name="SoldTo">
                <xs:complexType>
                  <xs:sequence>
                    <xs:element name="PartyId">
                      <xs:simpleType>
                        <xs:restriction base="xs:string">
                          <xs:maxLength value="25" />
                        </xs:restriction>
                      </xs:simpleType>
                    </xs:element>
                    <xs:element name="Name" minOccurs="0">
                        <xs:simpleType>
                        <xs:restriction base="xs:string">
                          <xs:maxLength value="35" />
                        </xs:restriction>
                      </xs:simpleType>
                    </xs:element>
                  </xs:sequence>
                </xs:complexType>
              </xs:element>
              <xs:element name="InvoiceId">
                <xs:simpleType>
                  <xs:restriction base="xs:string">
                    <xs:maxLength value="32" />
                  </xs:restriction>
                </xs:simpleType>
              </xs:element>
              <xs:element name="InvoiceType">
                <xs:simpleType>
                  <xs:restriction base="xs:string">
                    <xs:pattern value="C|D" />
                  </xs:restriction>
                </xs:simpleType>
              </xs:element>
              <xs:element name="Supplier">
                <xs:complexType>
                  <xs:sequence>
                    <xs:element name="PartyId">
                      <xs:simpleType>
                        <xs:restriction base="xs:string">
                          <xs:maxLength value="50" />
                        </xs:restriction>
                      </xs:simpleType>
                    </xs:element>
                    <xs:element name="Name" minOccurs="0">
                      <xs:simpleType>
                        <xs:restriction base="xs:string">
                          <xs:maxLength value="35" />
                        </xs:restriction>
                      </xs:simpleType>
                    </xs:element>
                    <xs:element name="Address">
                      <xs:complexType>
                        <xs:sequence>
                          <xs:element name="Attn" minOccurs="0">
                            <xs:simpleType>
                              <xs:restriction base="xs:string">
                                <xs:maxLength value="35" />
                              </xs:restriction>
                            </xs:simpleType>
                          </xs:element>
                          <xs:element name="Address1"
                                      minOccurs="0">
                            <xs:simpleType>
                              <xs:restriction base="xs:string">
                                <xs:maxLength value="35" />
                              </xs:restriction>
                            </xs:simpleType>
                          </xs:element>
                          <xs:element name="Address2"
                                      minOccurs="0">
                            <xs:simpleType>
                              <xs:restriction base="xs:string">
                                <xs:maxLength value="35" />
                              </xs:restriction>
                            </xs:simpleType>
                          </xs:element>
                          <xs:element name="Address3" minOccurs="0">
                            <xs:simpleType>
                              <xs:restriction base="xs:string">
                                <xs:maxLength value="35" />
                              </xs:restriction>
                            </xs:simpleType>
                          </xs:element>
                          <xs:element name="City" minOccurs="0">
                            <xs:simpleType>
                              <xs:restriction base="xs:string">
                                <xs:maxLength value="30" />
                              </xs:restriction>
                            </xs:simpleType>
                          </xs:element>
                          <xs:element name="State" minOccurs="0">
                            <xs:simpleType>
                              <xs:restriction base="xs:string">
                                <xs:maxLength value="2" />
                              </xs:restriction>
                            </xs:simpleType>
                          </xs:element>
                          <xs:element name="PostalCode" minOccurs="0">
                            <xs:simpleType>
                              <xs:restriction base="xs:string">
                                <xs:maxLength value="9" />
                              </xs:restriction>
                            </xs:simpleType>
                          </xs:element>
                          <xs:element name="Country" minOccurs="0">
                            <xs:simpleType>
                              <xs:restriction base="xs:string">
                                <xs:maxLength value="50" />
                              </xs:restriction>
                            </xs:simpleType>
                          </xs:element>
                          <xs:element name="CountryCode" minOccurs="0">
                            <xs:simpleType>
                              <xs:restriction base="xs:string">
                                <xs:maxLength value="2" />
                              </xs:restriction>
                            </xs:simpleType>
                          </xs:element>
                        </xs:sequence>
                      </xs:complexType>
                    </xs:element>
                  </xs:sequence>
                </xs:complexType>
              </xs:element>
              <xs:element name="RemitTo">
                <xs:complexType>
                  <xs:sequence>
                    <xs:element name="PartyId">
                      <xs:simpleType>
                        <xs:restriction base="xs:string">
                          <xs:maxLength value="50" />
                        </xs:restriction>
                      </xs:simpleType>
                    </xs:element>
                    <xs:element name="Name"  minOccurs="0">
                      <xs:simpleType>
                        <xs:restriction base="xs:string">
                          <xs:maxLength value="35" />
                        </xs:restriction>
                      </xs:simpleType>
                    </xs:element>
                    <xs:element name="Address">
                      <xs:complexType>
                        <xs:sequence>
                          <xs:element name="Attn" minOccurs="0">
                            <xs:simpleType>
                              <xs:restriction base="xs:string">
                                <xs:maxLength value="35" />
                              </xs:restriction>
                            </xs:simpleType>
                          </xs:element>
                          <xs:element name="Address1"  minOccurs="0">
                            <xs:simpleType>
                              <xs:restriction base="xs:string">
                                <xs:maxLength value="35" />
                              </xs:restriction>
                            </xs:simpleType>
                          </xs:element>
                          <xs:element name="Address2" minOccurs="0">
                            <xs:simpleType>
                              <xs:restriction base="xs:string">
                                <xs:maxLength value="35" />
                              </xs:restriction>
                            </xs:simpleType>
                          </xs:element>
                          <xs:element name="Address3" minOccurs="0">
                            <xs:simpleType>
                              <xs:restriction base="xs:string">
                                <xs:maxLength value="35" />
                              </xs:restriction>
                            </xs:simpleType>
                          </xs:element>
                          <xs:element name="City" minOccurs="0">
                            <xs:simpleType>
                              <xs:restriction base="xs:string">
                                <xs:maxLength value="30" />
                              </xs:restriction>
                            </xs:simpleType>
                          </xs:element>
                          <xs:element name="State" minOccurs="0">
                            <xs:simpleType>
                              <xs:restriction base="xs:string">
                                <xs:maxLength value="2" />
                              </xs:restriction>
                            </xs:simpleType>
                          </xs:element>
                          <xs:element name="PostalCode" minOccurs="0">
                            <xs:simpleType>
                              <xs:restriction base="xs:string">
                                <xs:maxLength value="9" />
                              </xs:restriction>
                            </xs:simpleType>
                          </xs:element>
                          <xs:element name="Country" minOccurs="0">
                            <xs:simpleType>
                              <xs:restriction base="xs:string">
                                <xs:maxLength value="50" />
                              </xs:restriction>
                            </xs:simpleType>
                          </xs:element>
                          <xs:element name="CountryCode"  minOccurs="0">
                            <xs:simpleType>
                              <xs:restriction base="xs:string">
                                <xs:maxLength value="2" />
                              </xs:restriction>
                            </xs:simpleType>
                          </xs:element>
                        </xs:sequence>
                      </xs:complexType>
                    </xs:element>
                  </xs:sequence>
                </xs:complexType>
              </xs:element>
              <xs:element name="BillTo">
                <xs:complexType>
                  <xs:sequence>
                    <xs:element name="PartyId">
                      <xs:simpleType>
                        <xs:restriction base="xs:string">
                          <xs:maxLength value="50" />
                        </xs:restriction>
                      </xs:simpleType>
                    </xs:element>
                    <xs:element name="Name"  minOccurs="0">
                      <xs:simpleType>
                        <xs:restriction base="xs:string">
                          <xs:maxLength value="35" />
                        </xs:restriction>
                      </xs:simpleType>
                    </xs:element>
                    <xs:element name="Address">
                      <xs:complexType>
                        <xs:sequence>
                          <xs:element name="Attn" minOccurs="0">
                            <xs:simpleType>
                              <xs:restriction base="xs:string">
                                <xs:maxLength value="35" />
                              </xs:restriction>
                            </xs:simpleType>
                          </xs:element>
                          <xs:element name="Address1" minOccurs="0">
                            <xs:simpleType>
                              <xs:restriction base="xs:string">
                                <xs:maxLength value="35" />
                              </xs:restriction>
                            </xs:simpleType>
                          </xs:element>
                          <xs:element name="Address2" minOccurs="0">
                            <xs:simpleType>
                              <xs:restriction base="xs:string">
                                <xs:maxLength value="35" />
                              </xs:restriction>
                            </xs:simpleType>
                          </xs:element>
                          <xs:element name="Address3" minOccurs="0">
                            <xs:simpleType>
                              <xs:restriction base="xs:string">
                                <xs:maxLength value="35" />
                              </xs:restriction>
                            </xs:simpleType>
                          </xs:element>
                          <xs:element name="City"  minOccurs="0">
                            <xs:simpleType>
                              <xs:restriction base="xs:string">
                                <xs:maxLength value="30" />
                              </xs:restriction>
                            </xs:simpleType>
                          </xs:element>
                          <xs:element name="State"  minOccurs="0">
                            <xs:simpleType>
                              <xs:restriction base="xs:string">
                                <xs:maxLength value="2" />
                              </xs:restriction>
                            </xs:simpleType>
                          </xs:element>
                          <xs:element name="PostalCode"
                                      minOccurs="0">
                            <xs:simpleType>
                              <xs:restriction base="xs:string">
                                <xs:maxLength value="9" />
                              </xs:restriction>
                            </xs:simpleType>
                          </xs:element>
                          <xs:element name="Country" minOccurs="0">
                            <xs:simpleType>
                              <xs:restriction base="xs:string">
                                <xs:maxLength value="50" />
                              </xs:restriction>
                            </xs:simpleType>
                          </xs:element>
                          <xs:element name="CountryCode" minOccurs="0">
                            <xs:simpleType>
                              <xs:restriction base="xs:string">
                                <xs:maxLength value="2" />
                              </xs:restriction>
                            </xs:simpleType>
                          </xs:element>
                        </xs:sequence>
                      </xs:complexType>
                    </xs:element>
                  </xs:sequence>
                </xs:complexType>
              </xs:element>
              <xs:element name="ShipTo">
                <xs:complexType>
                  <xs:sequence>
                    <xs:element name="PartyId">
                      <xs:simpleType>
                        <xs:restriction base="xs:string">
                          <xs:maxLength value="50" />
                        </xs:restriction>
                      </xs:simpleType>
                    </xs:element>
                    <xs:element name="Name"
                                minOccurs="0">
                      <xs:simpleType>
                        <xs:restriction base="xs:string">
                          <xs:maxLength value="35" />
                        </xs:restriction>
                      </xs:simpleType>
                    </xs:element>
                    <xs:element name="Address">
                      <xs:complexType>
                        <xs:sequence>
                          <xs:element name="Attn" minOccurs="0">
                            <xs:simpleType>
                              <xs:restriction base="xs:string">
                                <xs:maxLength value="35" />
                              </xs:restriction>
                            </xs:simpleType>
                          </xs:element>
                          <xs:element name="Address1" minOccurs="0">
                            <xs:simpleType>
                              <xs:restriction base="xs:string">
                                <xs:maxLength value="35" />
                              </xs:restriction>
                            </xs:simpleType>
                          </xs:element>
                          <xs:element name="Address2"  minOccurs="0">
                            <xs:simpleType>
                              <xs:restriction base="xs:string">
                                <xs:maxLength value="35" />
                              </xs:restriction>
                            </xs:simpleType>
                          </xs:element>
                          <xs:element name="Address3" minOccurs="0">
                            <xs:simpleType>
                              <xs:restriction base="xs:string">
                                <xs:maxLength value="35" />
                              </xs:restriction>
                            </xs:simpleType>
                          </xs:element>
                          <xs:element name="City"  minOccurs="0">
                            <xs:simpleType>
                              <xs:restriction base="xs:string">
                                <xs:maxLength value="30" />
                              </xs:restriction>
                            </xs:simpleType>
                          </xs:element>
                          <xs:element name="State" minOccurs="0">
                            <xs:simpleType>
                              <xs:restriction base="xs:string">
                                <xs:maxLength value="2" />
                              </xs:restriction>
                            </xs:simpleType>
                          </xs:element>
                          <xs:element name="PostalCode"  minOccurs="0">
                            <xs:simpleType>
                              <xs:restriction base="xs:string">
                                <xs:maxLength value="9" />
                              </xs:restriction>
                            </xs:simpleType>
                          </xs:element>
                          <xs:element name="Country" minOccurs="0">
                            <xs:simpleType>
                              <xs:restriction base="xs:string">
                                <xs:maxLength value="50" />
                              </xs:restriction>
                            </xs:simpleType>
                          </xs:element>
                          <xs:element name="CountryCode"   minOccurs="0">
                            <xs:simpleType>
                              <xs:restriction base="xs:string">
                                <xs:maxLength value="2" />
                              </xs:restriction>
                            </xs:simpleType>
                          </xs:element>
                        </xs:sequence>
                      </xs:complexType>
                    </xs:element>
                  </xs:sequence>
                </xs:complexType>
              </xs:element>
              <xs:element name="TermsCode">
                <xs:simpleType>
                  <xs:restriction base="xs:string">
                    <xs:maxLength value="15" />
                  </xs:restriction>
                </xs:simpleType>
              </xs:element>
              <xs:element name="TermsDays"
                          type="xs:integer"  minOccurs="0"></xs:element>
              <xs:element name="TermsDate"
                          type="xs:date"  minOccurs="0"></xs:element>
              <xs:element name="TermsPercent"
                          type="xs:decimal"  minOccurs="0"></xs:element>
              <xs:element name="TermsPercentDays"
                          type="xs:integer"  minOccurs="0"></xs:element>
              <xs:element name="ShipInstructions"  minOccurs="0">
                <xs:simpleType>
                  <xs:restriction base="xs:string">
                    <xs:maxLength value="250" />
                  </xs:restriction>
                </xs:simpleType>
              </xs:element>
              <xs:element name="TranspCode"   minOccurs="0">
                <xs:simpleType>
                  <xs:restriction base="xs:string">
                    <xs:maxLength value="15" />
                  </xs:restriction>
                </xs:simpleType>
              </xs:element>
              <xs:element name="TranspDesc" minOccurs="0">
                <xs:simpleType>
                  <xs:restriction base="xs:string">
                    <xs:maxLength value="50" />
                  </xs:restriction>
                </xs:simpleType>
              </xs:element>
              <xs:element name="TranspCarrier"   minOccurs="0">
                <xs:simpleType>
                  <xs:restriction base="xs:string">
                    <xs:maxLength value="15" />
                  </xs:restriction>
                </xs:simpleType>
              </xs:element>
              <xs:element name="TranspTime"
                          type="xs:integer"
                          minOccurs="0"></xs:element>
              <xs:element name="TranspTerms"
                          type="xs:string"
                          minOccurs="0"></xs:element>
              <xs:element name="IncoTermsCode"
                          minOccurs="0">
                <xs:simpleType>
                  <xs:restriction base="xs:string">
                    <xs:maxLength value="3" />
                  </xs:restriction>
                </xs:simpleType>
              </xs:element>
              <xs:element name="IncoTermsDesc"
                          minOccurs="0">
                <xs:simpleType>
                  <xs:restriction base="xs:string">
                    <xs:maxLength value="35" />
                  </xs:restriction>
                </xs:simpleType>
              </xs:element>
              <xs:element name="InvoiceDate"
                          type="xs:date"></xs:element>
              <xs:element name="InvoiceDueDate"
                          type="xs:date"></xs:element>
              <xs:element name="BuyerName"
                          minOccurs="0">
                <xs:simpleType>
                  <xs:restriction base="xs:string">
                    <xs:maxLength value="35" />
                  </xs:restriction>
                </xs:simpleType>
              </xs:element>
              <xs:element name="SalesRep"
                          minOccurs="0">
                <xs:simpleType>
                  <xs:restriction base="xs:string">
                    <xs:maxLength value="35" />
                  </xs:restriction>
                </xs:simpleType>
              </xs:element>
              <xs:element name="Comments"
                          minOccurs="0">
                <xs:simpleType>
                  <xs:restriction base="xs:string">
                    <xs:maxLength value="250" />
                  </xs:restriction>
                </xs:simpleType>
              </xs:element>
            </xs:sequence>
          </xs:complexType>
        </xs:element>
        <xs:element name="InvoiceSummary">
          <xs:complexType>
            <xs:sequence>
              <xs:element name="TotalItemLines"
                          type="xs:integer"></xs:element>
              <xs:element name="TotalItemQty"
                          type="xs:integer"></xs:element>
              <xs:element name="LineTotal"
                          type="xs:decimal"></xs:element>
              <xs:element name="FreightTotal"
                          type="xs:decimal"></xs:element>
              <xs:element name="SalesTax"
                          type="xs:decimal"></xs:element>
              <xs:element name="MiscCharge"
                          type="xs:decimal"></xs:element>
              <xs:element name="InvoiceTotal"
                          type="xs:decimal"></xs:element>
            </xs:sequence>
          </xs:complexType>
        </xs:element>
        <xs:element name="InvoiceDetail">
          <xs:complexType>
            <xs:sequence>
              <xs:element name="Items">
                <xs:complexType>
                  <xs:sequence>
                    <xs:element name="Item"
                                maxOccurs="unbounded">
                      <xs:complexType>
                        <xs:sequence>
                          <xs:element name="BuyerOrderId">
                            <xs:simpleType>
                              <xs:restriction base="xs:string">
                                <xs:maxLength value="25" />
                              </xs:restriction>
                            </xs:simpleType>
                          </xs:element>
                          <xs:element name="SupplierOrderId">
                            <xs:simpleType>
                              <xs:restriction base="xs:string">
                                <xs:maxLength value="25" />
                              </xs:restriction>
                            </xs:simpleType>
                          </xs:element>
                          <xs:element name="InvoiceLineNbr"
                                      type="xs:integer">
                                      </xs:element>
                          <xs:element name="POLineNbr"
                                      type="xs:integer">
                                      </xs:element>
                          <xs:element name="BuyerItemId">
                            <xs:simpleType>
                              <xs:restriction base="xs:string">
                                <xs:maxLength value="25" />
                              </xs:restriction>
                            </xs:simpleType>
                          </xs:element>
                          <xs:element name="Qty"
                                      type="xs:decimal">
                                      </xs:element>
                          <xs:element name="QtyUOM">
                            <xs:simpleType>
                              <xs:restriction base="xs:string">
                                <xs:maxLength value="5" />
                              </xs:restriction>
                            </xs:simpleType>
                          </xs:element>
                          <xs:element name="UCValue"
                                      type="xs:decimal">
                                      </xs:element>
                          <xs:element name="UCCurrencyCode">
                            <xs:simpleType>
                              <xs:restriction base="xs:string">
                                <xs:maxLength value="3" />
                              </xs:restriction>
                            </xs:simpleType>
                          </xs:element>
                          <xs:element name="ExtendedCostValue"
                                      type="xs:decimal">
                                      </xs:element>
                          <xs:element name="ExtendedCurrencyCode">
                            <xs:simpleType>
                              <xs:restriction base="xs:string">
                                <xs:maxLength value="3" />
                              </xs:restriction>
                            </xs:simpleType>
                          </xs:element>
                          <xs:element name="RetailValue"
                                      type="xs:decimal"
                                      minOccurs="0"></xs:element>
                          <xs:element name="RetailCurrencyCode"
                                      minOccurs="0">
                            <xs:simpleType>
                              <xs:restriction base="xs:string">
                                <xs:maxLength value="3" />
                              </xs:restriction>
                            </xs:simpleType>
                          </xs:element>
                          <xs:element name="SupplierItemId">
                            <xs:simpleType>
                              <xs:restriction base="xs:string">
                                <xs:maxLength value="25" />
                              </xs:restriction>
                            </xs:simpleType>
                          </xs:element>
                          <xs:element name="SupplierItemDesc">
                            <xs:simpleType>
                              <xs:restriction base="xs:string">
                                <xs:maxLength value="50" />
                              </xs:restriction>
                            </xs:simpleType>
                          </xs:element>
                          <xs:element name="PackListNbr"
                                      minOccurs="0">
                            <xs:simpleType>
                              <xs:restriction base="xs:string">
                                <xs:maxLength value="25" />
                              </xs:restriction>
                            </xs:simpleType>
                          </xs:element>
                          <xs:element name="ShipmentIds">
                            <xs:complexType>
                              <xs:sequence>
                                <xs:element name="ShipmentId"
                                            maxOccurs="unbounded">
                                  <xs:simpleType>
                                    <xs:restriction base="xs:string">
                                      <xs:maxLength value="25" />
                                    </xs:restriction>
                                  </xs:simpleType>
                                </xs:element>
                              </xs:sequence>
                            </xs:complexType>
                          </xs:element>
                          <xs:element name="DateShipped"
                                      type="xs:date"></xs:element>
                          <xs:element name="BarCodeId">
                            <xs:simpleType>
                              <xs:restriction base="xs:string">
                                <xs:maxLength value="14" />
                              </xs:restriction>
                            </xs:simpleType>
                          </xs:element>
                          <xs:element name="BarCodeType">
                            <xs:simpleType>
                              <xs:restriction base="xs:string">
                                <xs:enumeration value="GTIN-12" />
                                <xs:enumeration value="GTIN-13" />
                                <xs:enumeration value="GTIN-14" />
                                <xs:enumeration value="PartNumber" />
                              </xs:restriction>
                            </xs:simpleType>
                          </xs:element>
                        </xs:sequence>
                      </xs:complexType>
                    </xs:element>
                  </xs:sequence>
                </xs:complexType>
              </xs:element>
            </xs:sequence>
          </xs:complexType>
        </xs:element>
      </xs:sequence>
      <xs:attribute name="version"
                    use="required"
                    type="xs:decimal"
                    fixed="2009.2" />
    </xs:complexType>
  </xs:element>
</xs:schema>