Implementation Guide

In today’s challenging and uncertain economy, finding efficiencies and cost savings in your business processes is imperative, and the shortest path to savings is the adoption of standard transaction formats. Whether you are a manufacturer, a distributor, or a retailer, you can streamline and automate the production of orders, product catalogs, shipping documents, and forecasts using industry standards.

Five Reasons to Adopt Industry Technology Standards

  1. Your business will benefit from increased efficiency. Trading partners who share information through standardized data exchange enjoy reduced operational costs as a result of less human interaction in business transactions.

  2. Your business will profit from higher accuracy. Using standardized transaction formats allows business trading partners to easily share information, thereby preventing costly mistakes.

  3. You will be able to provide better customer service. Access to timely information in known, predictable formats allows for faster response time and better service to your customers.

  4. You will be able to make better decisions. Timely, accurate, and complete information gives you the "big picture" you need to make informed business decisions.

  5. Your business communications will be simpler. A standardized, agreed-upon data transfer format simplifies transactions between business partners and removes obstacles imposed by the businesses' individual systems.

Product vendors, suppliers, and purchasers use different computer hardware and software systems to process their business transactions. These systems all have their own proprietary internal data formats, and yet they all need to process the same kinds of data. Thus, the need for a "common language" for sharing data among business trading partners becomes critical. More efficient and reliable data transfer means fewer errors in your business transactions, and that means a better bottom line!

The common format that makes this possible is called XML (eXtensible Markup Language). XML is a method of semantically classifying, annotating, and storing data so that it can be shared among dissimilar systems, yet interpreted and processed identically by them. XML data conforms to formatting rules that are agreed to by all parties to a transaction, and thus can be freely exchanged among disparate hardware and software systems without fear of misinterpretation, data loss, or exposure of proprietary information.

XML is the de facto data storage and communication format in business today, and it is the format used by NAMM's Business to Business (B2B) document set. Using XML-based data, business trading partners can exchange information consistently and precisely, improving efficiency and accuracy while reducing operational costs and enhancing all levels of customer service. XML's common data format facilitates the ability to share information among business partners throughout the supply chain.

For example, XML data:

For the past several years, experts from across all channels of the Music Products Industry have partnered together to design a tool to enhance your business practices. That tool is the NAMM B2B XML standard, the most widely used standard in the Global Music Products Industry. This document details the information necessary for trading partners like you to begin to implement and automate transactions using this standard. NAMM encourages you and your business partners to adopt and use these standardized data transfer formats.

Introduction

Abstract

This document is intended as a conceptual and practical guide to NAMM’s Business-to-Business (B2B) XML data exchange standard, and specifically a reference to the XML files defined by the standard.

Audience

The target audience for this document is the technical team in a musical products merchandising company whose responsibility includes internal software management, configuration, and integration, especially as relates to interfacing with external data sources. These companies may supply musical products, consume them, or both.

Overview

In the course of providing musical products from one company to another, certain data must be exchanged between suppliers and buyers. While the specific software systems of each company will necessarily differ in platform, connectivity, and functionality, it is highly advantageous to both parties that the structure of the data exchanged be consistent from transaction to transaction. It is this need for structural consistency that is addressed and provided by the NAMM B2B standard.

Implementation

Transaction Definition

The NAMM B2B standard comprises a set of XML files containing data in a predefined, consistent format. Each XML file is designed to precisely define the data required to complete one common transaction between parties, e.g., Purchase Order, Invoice, Shipment Notification, and so on. These documents are described in “XML Files”, below.

Transaction Sequence

A typical sequence of events between a product supplier and product buyer and the associated documents, in chronological order, might be as follows.

  1. Both supplier and buyer complete and release mutually-available identification information in a Party document.

  2. The supplier sends a catalog of available products to the buyer in an Item document.

  3. The buyer acknowledges receipt of the Item document with a Functional Acknowledgement document.

  4. The supplier sends a price list for available products to the buyer in a PriceBook document (optional).

  5. The buyer acknowledges receipt of the PriceBook document with a Functional Acknowledgement document.

  6. The buyer decides to purchase items from the catalog and sends a request for them to the supplier in a Purchase Order document.

  7. The supplier acknowledges receipt of the Purchase Order with a Functional Acknowledgement document.

  8. The buyer requests the status of their order with a PO Status Request document.

  9. The seller provides the status of the order in a PO Status Acknowledgement document.

  10. The supplier makes one or more product shipments to the buyer and sends detailed information for each shipment in an Advanced Shipment Notification document.

  11. The buyer acknowledges receipt of the Advanced Shipment Notification with a Functional Acknowledgement document.

  12. The supplier sends a request for payment to the buyer in an Invoice document.

  13. The buyer acknowledges receipt of the Invoice with a Functional Acknowledgement document.

  14. The supplier sends a report to the buyer indicating which products have been sold in a SellThrough document (optional).

  15. The buyer acknowledges receipt of the SellThrough with a Functional Acknowledgement document.

Below is a diagram of this process, referencing the step/document numbers above.

[image]

A typical B2B document transaction sequence

Transport Options

In the B2B scenario described above, the XML documents must be electronically transmitted between partners in order for data sharing to take place. Therefore, the transmission method used, called a transport protocol, must be understood and implemented by both parties to a transaction.

The set of protocols used for Internet communications is called the Internet Protocol Suite, commonly known as TCP/IP (Transmission Control Protocol/Internet Protocol). The two most popular transport protocols in use today are HTTP and FTP, discussed below.

HTTP

HTTP (HyperText Transfer Protocol) can be used to upload (send) files from a local computer to a remote web server. This is the method used to download web pages from a server into a web browser for viewing, and to download auxiliary files from web pages to your local computer. In this scenario, a programmer must implement a system that runs a script or application so the sender can use it to upload a file. When the transfer is complete, the receiving system might then run another program to process the data (e.g., to input it into the company's accounting system). HTTP supports immediate in-session response, enabling the receiving party to validate the transmitted XML and respond by transmitting an XML document of its own (such as a Functional Acknowledgement) back to the sender. This type of transfer is typically used to send one file at a time (or multiple documents in an envelope).

FTP

FTP (File Transfer Protocol) can also be used to upload files from a local computer to a remote location. In this scenario, the sender runs a specific kind of third-party application called an FTP client on their local computer to contact the recipient's server; the FTP client then lets the user select one or more files to transfer and sends them. FTP does not support immediate response; instead, transmitted files may be detected later by other software and managed in groups (batch processing). This type of transfer is typically used to send several files at a time.

HTTP/FTP Comparison

Transfer speed: Both protocols have features that increase and decrease transmission speed. For example, while FTP does not take the time to "chunk" files as HTTP does, it uses two connections (one for commands and another for transfers) to accomplish its task. Conversely, while HTTP automatically compresses transmitted data, it adds metadata elements to the transmission stream. Ultimately, when transferring a small number of files that are not individually large (such as those in NAMM's B2B process), the speed difference is negligible.

Security: Neither standard HTTP nor FTP supports secure transmission, so each protocol has a secure version – HTTPS and SFTP – that can be used to provide secure file transfer between systems. Because FTP/SFTP, once connected, gives an authorized sender relatively broad access to the recipient's file system, where HTTP/HTTPS does not, additional software safeguards or strictly limited navigation permissions may be required. NAMM members are strongly encouraged to use the secure protocols (HTTPS/SFTP) in their B2B transactions to ensure the security and privacy of their communications.

Popularity: FTP is a much older system than HTTP, by a decade or more. Thus, historically speaking, FTP is more popular. However, because today virtually every page – and virtually every upload and download link – on the web is now served via HTTP, it is accurate to say that HTTP is by far the more popular protocol in terms of raw usage. Further, while there are many excellent and free FTP clients available (FireFTP, FileZilla, CoffeeCup Free FTP, WinSCP, etc.), HTTP/HTTPS is significantly easier to control and customize programmatically via browser scripting or programming languages, making it the most popular choice for developers of modern file transfer applications.

Conclusion

XML files contain only "plain text" data, and thus are compatible with any transfer protocol. Which protocol you use is ultimately up to you and your business partners. You may in fact use both protocols to share data among partners, FTP for some and HTTP for others; or you might use FTP to send files and HTTP to receive them. The choice depends on what software you and your partner companies have available or are willing to develop.

Resource Requirements

Implementing the NAMM B2B standard is not difficult and does not require specialized resources. Most likely, your company already has the basic facilities and resources required for implementation, such as:

  • a web server that supports FTP or HTTP transport services

  • an internet connection/hosting facility

  • a domain name (or IP address)

  • commercial or proprietary accounting software

  • a software and/or web developer

You can get additional help with B2B planning and implementation at the NAMM web site (http://www.namm.org), through independent consultants, and from current B2B members. Certain third-party software packages such as point-of-sale products are popular with NAMM member organizations.

There are also many completely free XML tutorials, services, and utilities available online, such as the World Wide Web Consortium's (W3C) W3Schools training site (http://w3schools.com/xml/default.asp), XML editors like Microsoft's XML Notepad (http://www.microsoft.com/download/en/details.aspx?id=7973), and web-based validation tools such as DecisionSoft's online XML Schema Validator (http://tools.decisionsoft.com/schemaValidate/).

For more information or to ask specific questions, please email us at

XML Files

Usage Note

Below are descriptions and discussions of the XML documents currently defined by the NAMM standard. Note that, as with any XML implementation, these files merely define the structure of the data and do not require nor support any specific processing agents (i.e., application software). The responsibility for creating, validating, transmitting, receiving, and parsing the files and their content therefore rests solely with the business entities (suppliers and buyers) using them. To facilitate validation, each XML document has an accompanying file that contains the document's specific, clearly defined rules, called an XSD schema; see “XML Schemas”.

Party Document

The Party document, Party-v2009.1.xml, contains general information about the parties involved in the B2B transactions that the parties wish to share with each other. Each party, also called a trading partner, creates a Party document.

The Party document contains public identifying information about one trading partner. However, for added flexibility, multiple trading locations for the partner may be specified in the same document. These locations might be such things as different branch offices, product warehouses, or shipping destinations. Each party and each location includes a unique ID, which may be in GLN (Global Location Number) or NAMM format, plus the partner entity’s name, address, phone, email, and other contact information.

Item Document

The Item document, Item-v2015.1.xml, essentially contains a catalog of items available for sale. The supplier creates this document and provides it to prospective buyers.

The Item document structure is reasonably “flat”, presenting salable items in a simple hierarchy with few levels. Each item has many possible descriptive characteristics, most of which are optional, but which provide ease of description for virtually any product, including packaging, origin, and warranty information.

Extended Attributes

Extended Attributes are a fundamental part of identifying products.  They are also useful for searching across categories that may not be grouped together.  

Extended Attributes essentiall are a way of 'Tagging' a product with a quality that helps identify it. 

There are a number of 'Standard' attributes that are recommended but the use of extended attributes is not limited to this set.

Recommended Extended Attributes (use where applicable)

Color

Scale

...

Examples:

 

Functional Acknowledgement

The Functional Acknowledgement document, FunAck-v2009.1.xml, is a simple notification from party to party acknowledging the receipt of another transaction such as an item document, purchase order, advanced shipment notice, or invoice. It may also provide information indicating the status of the transactional document. This document is used repeatedly throughout the supply chain.

Price Book

The Price Book document, Pricebook-v2015.1.xml, contains pricing information for various items offered by the supplier. It can specify price changes (breaks) at different purchase tiers (e.g., 1-100 units, 101-500 units, etc.) as well as indicate units of measure (UOM) for the tiers.

This document is optional, and is in beta testing as of this writing.

Purchase Order

The Purchase Order document, PO_v2015.1.xml, contains a list of items the buyer has selected for purchase from the supplier.

The Purchase Order document first provides basic information about the proposed sale, such as buyer, billing, and supplier data. It then provides overall sale specifics, such as terms and shipping instructions. Finally, it provides a shipping location and a list of ordered items.

PO Status Request

The Purchase Order Status Request document, POStatusRequest-v2015.1.xml, requests from the supplier the status of an outstanding Purchase Order. In fact, the status of multiple Purchase Orders may be requested in one transaction, thus obviating the need for multiple requests. This document is in beta testing as of this writing.

Purchase Order Status / Detail Acknowledgement

As evidenced by its name, the Purchase Order Status / Detail Acknowledgement document, POStatus_v2015.1.xml, is a dual-purpose transactional document. It may be transmitted from supplier to buyer as a detailed acknowledgement of a submitted Purchase Order (in lieu of a Functional Acknowledgment as shown in step 7, above). It may also be sent as a status report for a buyer's Purchase Orders, generated either periodically or in specific response to a Purchase Order Status Request, This document is in beta testing as of this writing.

Advanced Shipping Notice

The Advanced Shipping Notice document, ASN_v2015.1.xml, contains detailed information about one or more orders in progress from supplier to buyer. It may be requested via the Purchase Order document, and provides specific partial or full order shipment details, enabling the buyer to reconcile items ordered with those actually received.

Invoice

The Invoice document, Invoice-v2009.2.xml, is a supplier’s request for payment from the buyer. It contains information about the supplier, payee, and buyer, as well as invoice terms and detailed information about the referenced purchase, down to the individual items.

Sell Through

The Sell Through document, SellThrough-v2012.1.xml, is an optional post-transaction report sent by the buyer to the supplier, indicating what products have been sold, to which locations, for what price, etc. This document is discretionary and informational only, and thus does not trigger any further action, acknowledgement, or event.

XML Tag Reference

Coding Note

Below are tag-by-tag listings of each XML document in the NAMM B2B standard. Each tag is followed by a brief description and a flag indicating whether the tag is required in the particular document. Nested tags are indented to indicate the hierarchical structure of the documents.

Complex (parent) elements are shown here as separate start and end tags (e.g., <Location> ... </Location>), while simple (child) elements are shown as “empty” tags (e.g., <Name/>) for improved readability in this document. These tags would of course be coded in live documents with start tags, data, and end tags (e.g., <Name>MusicMax Corporation</Name>).

While most pertinent metadata in these documents is coded as nested tags (e.g., <Barcode> <ID>4959112079274</ID> <Type>GTIN-13</Type> </Barcode>), some metadata is coded instead as attribute/value pairs (e.g., <Price type="MSRP" Currency="USD">980.00</Price>). Attributes are shown here on separate lines below the tags to which they belong (as nested tags would be, except without enclosing <>s), and their descriptions begin with the notation "Attribute:".

Elements and attributes required by the XSD schemas are marked with an X in the Req column. If a child element or attribute is marked required but its parent element is not, it means that the parent is still optional but, if used, it must contain the required child elements or attributes.



Important Note:
Most of the XML tags used in these files are mixed-case, as in <PartyIdType>; this coding technique is valid XML, and is used by design to improve human readability. However, XML code is case-sensitive, so users must be exceptionally careful to maintain proper tag case when creating and processing these files within their own editors, applications, and systems.

Party Document

Party – party-v2009.1.xml

Tag

Description

Req

<?xml version="1.0" encoding="UTF-8"?>

XML declaration

X

<NAMM_PARTY version="2009.1">

File-level Start tag

X

<RevisionDate/>

Revision date

X

<TradingPartner>

Top-level Start tag

X

<PartyId/>

GLN/NAMM partner ID

X

<PartyIdType/>

ID type

X

<Name/>

Partner company name

X

<DBA/>

Partner Doing Business As name

 

<URL/>

Partner company website

 

<Locations>

Start tag

X

<Location>

Start tag

X

<PartyId/>

GLN/NAMM location ID

X

<PartyIdType/>

ID type designation

X

<Description/>

Partner location description

 

<Name/>

Partner location name

 

<DBA/>

Location Doing Business As name

 

<Address>

Start tag

 

<Attn/>

Location contact person

 

<Address1/>

Location address line 1

 

<Address2/>

Location address line 2

 

<Address3/>

Location addressl ine 3

 

<City/>

Location city

 

<State/>

Location state

 

<PostalCode/>

Location zip/postal code

 

<Country/>

Location country

 

<CountryCode/>

Location country code

 

</Address>

End tag

 

<Phone/>

Location phone number

 

<Fax/>

Location fax number

 

<Email/>

Location email address

 

<StartDate/>

Address valid as of date

 

<EndDate/>

Address invalid as of date

 

</Location>

End tag

X

</Locations>

End tag

X

</TradingPartner>

End tag

X

</NAMM_PARTY>

End tag

X

Item Document

Item – item-v2011.1.xml

Tag

Description

Req

<?xml version="1.0" encoding="utf-8"?>

XML declaration

X

<NAMM_ITEM version="2011.1">

File-level Start tag

X

<Timestamp/>

Date/time stamp for this document

X

<Id/>

Document ID

X

<SupplierId/>

GLN/NAMM partner ID

X

<Items>

Start tag

X

<Item>

Start tag

X

<SupplierItemId/>

Supplier product identifier

X

<SupplierModel/>

Supplier model identifier

X

<SupplierItemDesc/>

Supplier item description

X

<Kit/>

Item SKU made up of other SKUs

X

<Serialized/>

Item has a serial number

X

<BrandName/>

Item brand name

X

<CountryOrigin/>

Country of origin

 

<Length/>

Item length

X

<Width/>

Item width

X

<Height/>

Item height

X

<DimUOM/>

Dimension unit of measure (1)

X

<Weight/>

Item weight

X

<WeightUOM/>

Weight unit of measure (1)

X

<AnnounceDate/>

Item announcement date

X

<AvailableDate/>

Item availability date

X

<UnavailableDate/>

Item unavailability date

 

<EndOfProductionDate/>

Item end of production date

 

<ReplacementID/>

Item replacement ID

 

<WarrantyPartTerm/>

Parts warranty term (length)

X

<WarrantyPartUOM/>

Parts warranty unit of measure (1)

X

<WarrantyLabTerm/>

Labor warranty term (length)

X

<WarrantyLabUOM/>

Labor warranty unit of measure (1)

X

<Condition/>

Item condition

 

<Barcodes>

Start tag

X

<Barcode>

Start tag

X

<ID/>

Item numeric barcode

X

<Type/>

Item barcode type

X

</Barcode>

End tag

X

</Barcodes>

End tag

X

<Pricing>

Start tag

 

<Price/>

Item price

 

type

Attribute: price type

X

Currency

Attribute: price Currency

X

Qty

Attribute: price quantity

 

</Pricing>

End tag

 

<Containers>

Start tag

X

<Container>

Start tag

X

<Type/>

Container type

X

<Length/>

Container length

X

<Width/>

Container width

X

<Height/>

Container height

X

<DimUOM/>

Dimensions unit of measure (1)

X

<Weight/>

Container weight

X

<WeightUOM/>

Weight unit of measure (1)

X

<UOM/>

Container unit of measure (1)

X

<QtyPerUOM/>

Item quantity per unit of measure

X

<Barcodes>

Start tag

 

<Barcode>

Start tag

 

<ID/>

Container numeric barcode

X

<Type/>

Container barcode type

X

</Barcode>

End tag

 

</Barcodes>

End tag

 

</Container>

End tag

X

</Containers>

End tag

X

<MarketingInfo>

Start tag

X

<PrimaryCategory/>

Item primary category

X

<ProductURL/>

Item URL

 

<ItemDescLong/>

Item long description

 

<SecondaryCategories>

Start tag

 

<Category/>

Item secondary category

 

</SecondaryCategories>

End tag

 

<Bullets>

Start tag

 

<Bullet/>

Item bullet point

 

</Bullets>

End tag

 

<Media>

Start tag

 

<Images>

Start tag

 

<Image/>

Item image

 

Audience

Attribute: image intended audience

 

View

Attribute: image intended view

 

Caption

Attribute: image caption

 

CarouselSequence

Attribute: image carousel sequence

 

</Images>

End tag

 

<Videos>

Start tag

 

<Video/>

Item video

 

Audience

Attribute: video intended audience

 

type

Attribute: video type

X

Caption

Attribute: video caption

 

</Videos>

End tag

 

<Documents>

Start tag

 

<Document/>

Item document

 

Audience

Attribute: document intended audience

 

type

Attribute: document type

X

Caption

Attribute: document caption

 

</Documents>

End tag

 

<Audios>

Start tag

 

<Audio/>

Item audio

 

Audience

Attribute: audio intended audience

 

type

Attribute: audio type

X

Caption

Attribute: audio caption

 

</Audios>

End tag

 

</Media>

End tag

X

<Keywords>

Start tag

 

<Keyword/>

Item marketing keyword

 

</Keywords>

End tag

 

</MarketingInfo>

End tag

X

<ExtendedAttributes>

Start tag

 

<Data>

Start tag

 

Name

Attribute: data name

X

<Topic>

Start tag

 

<SuperTitle/>

Item supertitle

 

<Title/>

Item title

 

<SubTitle/>

Item subtitle

 

<Credits/>

Item credits

 

<Contributor/>

Item contributor

 

primary

Attribute: primary credit

X

Contribution

Attribute: primary contribution

X

ContributorName

Attribute: contributor name

X

ContributorNameReversed

Attribute: contributor name reversed

X

<Copyright>

Start tag

 

<CopyrightLine/>

Topic copyright text

 

</Copyright>

End tag

 

</Topic>

End tag

 

<Contributor/>

Other contributor

 

primary

Attribute: primary credit

X

Contribution

Attribute: primary contribution

X

ContributorName

Attribute: contributor name

X

ContributorNameReversed

Attribute: contributor name reversed

X

</Data>

End tag

 

</ExtendedAttributes>

End tag

 

<RelatedItems>

Start tag

 

<RelatedItem>

Start tag

 

type

Attribute: related item type

X

included

Attribute: related item included

 

<SupplierItemID/>

Related item supplier item ID

X

<Barcode>

Start tag

 

<ID>

Related item numeric barcode

X

<Type>

Related item barcode type

X

</Barcode>

End tag

 

</RelatedItem>

End tag

 

</RelatedItems>

End tag

 

<ItemFamily/>

Item family

 

property

Attribute: family property

X

code

Attribute: family code

X

<Availability>

Start tag

 

<QtyOnHand/>

Item quantity on hand

 

<Available/>

Item availability

X

<QueryURL/>

Item query URL

 

</Availability>

End tag

 

</Item>

End tag

X

</Items>

End tag

X

</NAMM_ITEM>

End tag

X

(1) See Appendix A, "Codes Tables".

Functional Acknowledgement

Functional Acknowledgement – funack-v2009.1.xml

Tag

Description

Req

<?xml version="1.0" encoding="UTF-8" ?>

XML declaration

X

<NAMM_FunctionalAcknowledgement version="2009.1">

File-level Start tag

X

<Timestamp/>

Date/time stamp for this document

X

<Id/>

Document ID

X

<Supplier>

Start tag

X

<PartyId/>

Supplier GLN/NAMM ID

X

</Supplier>

End tag

X

<SoldTo>

Start tag

X

<PartyId/>

Buyer GLN/NAMM ID

X

</SoldTo>

End tag

X

<StatusCode/>

Status indicator code (1)

X

<StatusMessage/>

Status message/description (1)

X

</NAMM_FunctionalAcknowledgement>

End tag

X

(1) SeeAppendix A, "Codes Tables".

Pricebook

Price Book – pricebook-v2011.0.xml

Tag

Description

Req

<?xml version="1.0" encoding="UTF-8" ?>

XML declaration

X

<NAMM_PRICEBOOK version="2011.0">

File-level Start tag

X

<Timestamp/>

Date/time stamp for this document

X

<Supplier>

Start tag

X

<PartyId/>

Supplier GLN/NAMM ID

X

<Name/>

Supplier company name

 

<Address>

Start tag

 

<Address1/>

Supplier address line 1

 

<Address2/>

Supplier address line 2

 

<Address3/>

Supplier address line 3

 

<City/>

Supplier city

 

<State/>

Supplier state

 

<PostalCode/>

Supplier postal code

 

<Country/>

Supplier country

 

<CountryCode/>

Supplier country code

 

</Address>

End tag

 

</Supplier>

End tag

X

<SoldTo>

Start tag

X

<PartyId/>

Buyer GLN/NAMM ID

X

<Name/>

Buyer company name

 

<Address>

Start tag

 

<Address1/>

Buyer address line 1

 

<Address2/>

Buyer address line 2

 

<Address3/>

Buyer address line 3

 

<City/>

Buyer city

 

<State/>

Buyer state

 

<PostalCode/>

Buyer postal code

 

<Country/>

Buyer country

 

<CountryCode/>

Buyer country code

 

</Address>

End tag

 

</SoldTo>

End tag

X

<Items>

Start tag

X

<Item/>

Item info

X

EffectiveDate

Attribute: item effective date/time

 

<BarCodeId/>

Item digital barcode representation

X

<BarCodeType/>

Item barcode type

X

<SupplierItemId/>

Supplier item ID

 

<Levels/>

Start tag

X

<Level/>

Start tag

X

<Price/>

Price

X

Currency

Attribute: price currency code

X

type

Attribute: price type

X

<LevelMin/>

Level minimum

X

<LevelMax/>

Level maximum

X

<LevelUOM/>

Level unit of measure

X

</Level>

End tag

X

</Levels>

End tag

X

</Item>

End tag

X

</Items>

End tag

X

</NAMM_PRICEBOOK>

End tag

X

Purchase Order

Purchase Order – po-v2009.2.xml

Tag

Description

Req

<?xml version="1.0" encoding="UTF-8" ?>

XML declaration

X

<NAMM_PO version="2009.2">

File-level Start tag

X

<Id/>

Document ID

X

<Timestamp/>

Date/time stamp for this document

X

<POHeader>

Start tag

X

<SoldTo>

Start tag

X

<PartyId/>

Buyer GLN/NAMM ID

X

<Name/>

Buyer company name

 

<Address>

Start tag

 

<Attn/>

Buyer contact person

 

<Address1/>

Buyer address line 1

 

<Address2/>

Buyer address line 2

 

<Address3/>

Buyer address line 3

 

<City/>

Buyer city

 

<State/>

Buyer state

 

<PostalCode/>

Buyer postal code

 

<Country/>

Buyer country

 

<CountryCode/>

Buyer country code

 

</Address>

End tag

 

</SoldTo>

End tag

X

<BillTo>

Start tag

X

<PartyId/>

Payor GLN/NAMM ID

X

<Name/>

Payor company name

 

<Address>

Start tag

 

<Attn/>

Payor contact person

 

<Address1/>

Payor address line 1

 

<Address2/>

Payor address line 2

 

<Address3/>

Payor address line 3

 

<City/>

Payor city

 

<State/>

Payor state

 

<PostalCode/>

Payor postal code

 

<Country/>

Payor country

 

<CountryCode/>

Payor country code

 

</Address>

End tag

 

</BillTo>

End tag

X

<BuyerOrderId/>

Buyer purchase order number/ID

X

<Supplier>

Start tag

X

<PartyId/>

Supplier GLN/NAMM ID

X

<Name/>

Supplier company name

 

<Address>

Start tag

 

<Attn/>

Supplier contact person

 

<Address1/>

Supplier address line 1

 

<Address2/>

Supplier address line 2

 

<Address3/>

Supplier address line 3

 

<City/>

Supplier city

 

<State/>

Supplier state

 

<PostalCode/>

Supplier postal code

 

<Country/>

Supplier country

 

<CountryCode/>

Supplier country code

 

</Address>

End tag

 

</Supplier>

End tag

X

<TermsCode/>

Terms code (1)

X

<TermsDays/>

Number of days for payment

 

<TermsDate/>

Date payment is due

 

<TermsPercent/>

Percentage terms

 

<TermsPercentDays/>

Number of days for percentage terms

 

<ShipInstructions/>

Shipping instructions

 

<TranspCode/>

Transport method code (1)

X

<TranspDesc/>

Transport description (1)

 

<TranspCarrier/>

Transport carrier name

 

<TranspTime/>

Expected transport time

 

<TranspTerms/>

Transport terms

 

<IncoTermsCode/>

International terms code (1)

 

<IncoTermsDesc/>

International terms description (1)

 

<POComments/>

Buyer comments

 

<DateOrdered/>

Order date

X

<DateBeginShip/>

Date to begin shipment

 

<DateEndShip/>

Date to end shipment

 

<DateCancel/>

Date to cancel order if not shipped

 

<Backorder/>

Allow backorder

X

<BuyerName/>

Individual buyer name

 

<PORevisionNumber/>

Purchase Order revision number

X

<POStatusIndicator/>

New or Updated PO

X

<ASNRequirement/>

Require ASN

X

<POFileType/>

Pre-accepted or Accepted PO

X

<ShipTo>

Start tag

X

<PartyId/>

Receiver GLN/NAMM ID

X

<Name/>

Receiver company name

 

<Address>

Start tag

 

<Attn/>

Receiver contact person

 

<Address1/>

Receiver address line 1

 

<Address2/>

Receiver address line 2

 

<Address3/>

Receiver address line 3

 

<City/>

Receiver city

 

<State/>

Receiver state

 

<PostalCode/>

Receiver postal code

 

<Country/>

Receiver country

 

<CountryCode/>

Receiver country code

 

</Address>

End tag

 

</ShipTo>

End tag

X

</POHeader>

End tag

X

<PODetail>

Start tag

X

<Items>

Start tag

X

<Item>

Start tag

X

<POLineNbr/>

Purchase Order line number

X

<BuyerItemId/>

Buyer item ID

X

<BuyerItemDesc/>

Buyer item description

 

<Qty/>

Quantity

X

<QtyUOM/>

Quantity unit of measure (1)

X

<UCValue/>

Unit cost value

X

<UCCurrencyCode/>

Unit cost currency code

X

<RetailValue/>

Retail value

 

<RetailCurrencyCode/>

Retail currency code

 

<ICQtyPerUOM/>

Inner Carton quantity per Unit of Measure

 

<ICOUM/>

Inner Carton Unit of Measure

 

<MCQtyPerUOM/>

Master Carton quantity per Unit of Measure

 

<MCUOM/>

Master Carton Unit of Measure

 

<SupplierItemId/>

Supplier item ID

 

<BarCodeId/>

Digital barcode representation

X

<BarCodeType/>

Barcode description

X

<DateBeginShip/>

Item beginning shiping date

 

<DateEndShip/>

Item end shipping date

 

<DateCancel/>

Item cancel date

 

</Item>

End tag

X

</Items>

End tag

X

</PODetail>

End tag

X

</NAMM_PO>

End tag

X

(1) See Appendix A, "Codes Tables".

PO Status Request

PO Status Request – postatusrequest-v2011.0.xml

Tag

Description

Req

<?xml version="1.0" encoding="UTF-8" ?>

XML declaration

X

<NAMM_POStatusRequest version="2011.0">

File-level Start tag

X

<Timestamp/>

Date/time stamp for this document

X

<Id/>

Document ID

X

<Supplier>

Start tag

X

<PartyId/>

Supplier GLN/NAMM ID

X

</Supplier>

End tag

X

<SoldTo>

Start tag

X

<PartyId/>

Buyer GLN/NAMM ID

X

</SoldTo>

End tag

X

<BuyerOrderIds>

Start tag

X

<BuyerOrderId/>

Buyer order ID

X

</BuyerOrderIds>

End tag

X

</NAMM_POStatusRequest>

End tag

X

PO Status / Det Ack

PO Status / Detailed Acknowledgement – postatus-v2011.0.xml

Tag

Description

Req

<?xml version="1.0" encoding="UTF-8" ?>

XML declaration

X

<NAMM_POStatus version="2011.0">

File-level Start tag

X

<POStatusRequestId/>

PO ID of status request

X

<Timestamp/>

Date/time stamp for this document

X

<BuyerOrderId/>

Buyer order ID

X

<DateOrdered/>

Date ordered

X

<BuyerName/>

Buyer name

 

<Supplier>

Start tag

X

<PartyId/>

Supplier GLN/NAMM ID

X

<Name/>

Supplier company name

 

<Address>

Start tag

 

<Attn/>

Supplier contact person

 

<Address1/>

Supplier address line 1

 

<Address2/>

Supplier address line 2

 

<Address3/>

Supplier address line 3

 

<City/>

Supplier city

 

<State/>

Supplier state

 

<PostalCode/>

Supplier postal code

 

<Country/>

Supplier country

 

<CountryCode/>

Supplier country code

 

</Address>

End tag

 

</Supplier>

End tag

X

<SoldTo>

Start tag

X

<PartyId/>

Buyer GLN/NAMM ID

X

<Name/>

Buyer company name

 

<Address>

Start tag

 

<Attn/>

Buyer contact person

 

<Address1/>

Buyer address line 1

 

<Address2/>

Buyer address line 2

 

<Address3/>

Buyer address line 3

 

<City/>

Buyer city

 

<State/>

Buyer state

 

<PostalCode/>

Buyer postal code

 

<Country/>

Buyer country

 

<CountryCode/>

Buyer country code

 

</Address>

End tag

 

</SoldTo>

End tag

X

<StatusCode/>

Status code

X

<PaymentTerms>

Start tag

X

<StatusCode/>

Payment status code (1)

X

<StatusMessage/>

Payment status message

 

<TermsCode/>

Payment terms code (1)

 

<TermsPercent/>

Payment terms percent

 

</PaymentTerms>

End tag

X

<ShipmentTerms>

Start tag

X

<StatusCode/>

Shipment status code (1)

X

</ShipmentTerms>

End tag

X

<Items>

Start tag

X

<Item>

Start tag

X

<POLineNbr/>

Item line number

X

<SequenceNbr/>

Item sequence number

X

<StatusCode/>

Item status code (1)

X

<StatusMessage/>

Item status message

 

<Qty/>

Item quantity

 

<RetailValue/>

Item retail value

 

<UCValue/>

Item UC value

 

<EstimatedShipDate/>

Item estimated ship date

 

<ShipDate/>

Item ship date

 

type

Attribute: item ship date type

 

<SupplierOrderId/>

Item supplier order ID

 

</Item>

End tag

X

</Items>

End tag

X

</NAMM_POStatus>

End tag

X

(1) See Appendix A, "Codes Tables".

Advanced Shipping Notice

Advanced Shipping Notice – asn-v2009.2.xml

Tag

Description

Req

<?xml version="1.0" encoding="UTF-8"?>

XML declaration

X

<NAMM_ASN version="2009.2">

File-level Start tag

X

<Id/>

Document ID

X

<Timestamp/>

Date/time stamp for this document

X

<ShipmentHeader>

Start tag

X

<ShipmentType/>

Shipment type description

 

<ShipmentId/>

Supplier ASN document number

X

<Shipped/>

Shipment date

 

<EstDeliver/>

Estimated delivery date

 

<Supplier>

Start tag

X

<PartyId/>

Supplier GLN/NAMM ID

X

<Name/>

Supplier company name

 

<Address>

Start tag

 

<Attn/>

Supplier contact person

 

<Address1/>

Supplier address line 1

 

<Address2/>

Supplier address line 2

<Address3/>

Supplier address line 3

 

<City/>

Supplier city

 

<State/>

Supplier state

 

<PostalCode/>

Supplier postal code

 

<Country/>

Supplier country

 

<CountryCode/>

Supplier country code

 

</Address>

End tag

 

</Supplier>

End tag

X

<ShipFrom>

Start tag

X

<PartyId/>

Shipper GLN/NAMM ID

X

<Name/>

Shipper company name

 

<Address>

Start tag

 

<Attn/>

Shipper contact person

 

<Address1/>

Shipper address line 1

 

<Address2/>

Shipper address line 2

 

<Address3/>

Shipper address line 3

 

<City/>

Shipper city

 

<State/>

Shipper state

 

<PostalCode/>

Shipper postal code

 

<Country/>

Shipper country

 

<CountryCode/>

Shipper country code

 

</Address>

End tag

 

</ShipFrom>

End tag

X

<ShipmentRefs>

Start tag

 

<MasterBOL/>

Shipment master Bill Of Lading number

 

<PRONbr/>

Shipment PRO number

 

<ConfNbr/>

Shipment confirmation number

 

</ShipmentRefs>

End tag

 

<ShipmentQty>

Start tag

X

<ContainerQty/>

Number of units per container

X

<ShipmentItemQty/>

Number of units in shipment

 

</ShipmentQty>

End tag

X

<Volume>

Start tag

 

<VolumeValue/>

Shipment volume value

 

<VolumeUOMCode/>

Volume unit of measure (1)

 

<VolumeUOMDesc/>

Volume unit of measure description (1)

 

</Volume>

End tag

 

<Weight>

Start tag

 

<WeightValue/>

Shipment weight value

 

<WeightUOMCode/>

Weight unit of measure (1)

 

<WeightUOMDesc/>

Weight unit of measure description (1)

 

</Weight>

End tag

 

<TranspCode/>

Transportation code (1)

 

<TranspDesc/>

Transportation description (1)

 

<SoldTo>

Start tag

X

<PartyId/>

Buyer GLN/NAMM ID

X

<Name/>

Buyer company name

 

<Address>

Start tag

 

<Attn/>

Buyer contact person

 

<Address1/>

Buyer address line 1

 

<Address2/>

Buyer address line 2

 

<Address3/>

Buyer address line 3

 

<City/>

Buyer city

 

<State/>

Buyer state

 

<PostalCode/>

Buyer postal code

 

<Country/>

Buyer country

 

<CountryCode/>

Buyer country code

 

</Address>

End tag

 

</SoldTo>

End tag

X

<ShipTo>

Start tag

X

<PartyId/>

Receiver GLN/NAMM ID

X

<Name/>

Receiver company name

 

<Address>

Start tag

 

<Attn/>

Receiver contact person

 

<Address1/>

Receiver address line 1

 

<Address2/>

Receiver address line 2

 

<Address3/>

Receiver address line 3

 

<City/>

Receiver city

 

<State/>

Receiver state

 

<PostalCode/>

Receiver postal code

 

<Country/>

Receiver country

 

<CountryCode/>

Receiver country code

 

</Address>

End tag

 

</ShipTo>

End tag

X

<Vehicle>

Start tag

 

<VehicleId/>

Shipper vehicle ID

 

<VehicleType/>

Shipper vehicle type

 

<SealId/>

Shipper container seal ID

 

</Vehicle>

End tag

 

</ShipmentHeader>

End tag

X

<Orders>

Start tag

X

<Order>

Start tag

X

<BuyerOrderId/>

Buyer purchase order ID

X

<Containers>

Start tag

X

<Container>

Start tag

X

<ContainerId/>

Shipper container ID

 

<ShipperTrackingNumber/>

Shipper tracking number

 

<Item>

Start tag

X

<ItemId>

Start tag

X

<BarCodeId/>

Item digital barcode representation

X

<BarCodeType/>

Item barcode type

X

<BuyerItemId/>

Item buyer ID

X

<BuyerItemDesc/>

Item buyer description

 

<SupplierItemId/>

Supplier item ID

X

<SupplierItemDesc/>

Supplier item description

 

</ItemId>

End tag

X

<POLineNbr/>

Purchase Order line number

X

<ItemQty>

Start tag

X

<Qty/>

Item quantity

X

<ItemUOMCode/>

Item unit of measure (1)

 

<ItemUOMDesc/>

Item unit of measure description (1)

 

</ItemQty>

End tag

X

<ItemAttrs>

Start tag

 

<SerialNbrs>

Start tag

 

<SerialNbr/>

Item serial number

 

</SerialNbrs>

End tag

 

<StdPack>

Start tag

 

<ICQtyPerUOM/>

Inner Carton quantity per Unit of Measure

 

<ICOUM/>

Inner Carton Unit of Measure

 

<StdPackType/>

Item package type

 

</StdPack>

End tag

 

<StdContainer>

Start tag

 

<MCQtyPerUOM/>

Master Carton quantity per Unit of Measure

 

<MCUOM/>

Master Carton Unit of Measure

 

<StdContainerType/>

Item container type

 

</StdContainer>

End tag

 

</ItemAttrs>

End tag

 

</Item>

End tag

 

</Container>

End tag

X

</Containers>

End tag

X

</Order>

End tag

X

</Orders>

End tag

X

</NAMM_ASN>

End tag

X

(1) See Appendix A, "Codes Tables".

Invoice

Invoice – invoice-v2009.2.xml

Tag

Description

Req

<?xml version="1.0" encoding="UTF-8"?>

XML declaration

X

<NAMM_Invoice version="2009.2">

File-level Start tag

X

<InvoiceHeader>

Start tag

X

<Id/>

Document ID

X

<Timestamp/>

Date/time stamp for this document

X

<SoldTo>

Start tag

X

<PartyId/>

Buyer GLN/NAMM ID

X

<Name/>

Buyer company name

 

</SoldTo>

End tag

X

<InvoiceId/>

Vendor invoice number

X

<InvoiceType/>

Invoice type

X

<Supplier>

Start tag

X

<PartyId/>

Supplier GLN/NAMM ID

X

<Name/>

Supplier company name

 

<Address>

Start tag

 

<Attn/>

Supplier contact person

 

<Address1/>

Supplier address line 1

 

<Address2/>

Supplier address line 2

 

<Address3/>

Supplier address line 3

 

<City/>

Supplier city

 

<State/>

Supplier state

 

<PostalCode/>

Supplier postal code

 

<Country/>

Supplier country

 

<CountryCode/>

Supplier country code

 

</Address>

End tag

 

</Supplier>

End tag

X

<RemitTo>

Start tag

X

<PartyId/>

Payee GLN/NAMM ID

X

<Name/>

Payee company name

 

<Address>

Start tag

 

<Attn/>

Payee contact person

 

<Address1/>

Payee address line 1

 

<Address2/>

Payee address line 2

 

<Address3/>

Payee address line 3

 

<City/>

Payee city

 

<State/>

Payee state

 

<PostalCode/>

Payee postal code

 

<Country/>

Payee country

 

<CountryCode/>

Payee country code

 

</Address>

End tag

 

</RemitTo>

End tag

X

<BillTo>

Start tag

X

<PartyId/>

Payor GLN/NAMM ID

X

<Name/>

Payor company name

 

<Address>

Start tag

 

<Attn/>

Payor contact person

 

<Address1/>

Payor address line 1

 

<Address2/>

Payor address line 2

 

<Address3/>

Payor address line 3

 

<City/>

Payor city

 

<State/>

Payor state

 

<PostalCode/>

Payor postal code

 

<Country/>

Payor country

 

<CountryCode/>

Payor country code

 

</Address>

End tag

 

</BillTo>

End tag

X

<ShipTo>

Start tag

X

<PartyId/>

Receiver GLN/NAMM ID

X

<Name/>

Receiver company name

 

<Address>

Start tag

 

<Attn/>

Receiver contact person

 

<Address1/>

Receiver address line 1

 

<Address2/>

Receiver address line 2

 

<Address3/>

Receiver address line 3

 

<City/>

Receiver city

 

<State/>

Receiver state

 

<PostalCode/>

Receiver postal code

 

<Country/>

Receiver country

 

<CountryCode/>

Receiver country code

 

</Address>

End tag

 

</ShipTo>

End tag

X

<TermsCode/>

Terms code (1)

X

<TermsDays/>

Number of days for payment

 

<TermsDate/>

Date payment is due

 

<TermsPercent/>

Percentage terms

 

<TermsPercentDays/>

Number of days for percentage terms

 

<ShipInstructions/>

Shipping instructions

 

<TranspCode/>

Transport method code (1)

 

<TranspDesc/>

Transport description (1)

 

<TranspCarrier/>

Transport carrier name

 

<TranspTime/>

Expected transport time

 

<TranspTerms/>

Transport terms

 

<IncoTermsCode/>

International terms code (1)

 

<IncoTermsDesc/>

International terms description (1)

 

<InvoiceDate/>

Invoice date

X

<InvoiceDueDate/>

Date payment is due

X

<BuyerName/>

Buyer company name

 

<SalesRep/>

Supplier sales representative name

 

<Comments/>

Comments

 

</InvoiceHeader>

End tag

X

<InvoiceSummary>

Start tag

X

<TotalItemLines/>

Invoice number of item lines

X

<TotalItemQty/>

Invoice item quantity

X

<LineTotal/>

Value of all item lines

X

<FreightTotal/>

Freight total amount

X

<SalesTax/>

Sales tax amount

X

<MiscCharge/>

Miscellaneous charges

X

<InvoiceTotal/>

Total invoice amount

X

</InvoiceSummary>

End tag

X

<InvoiceDetail>

Start tag

X

<Items>

Start tag

X

<Item>

Start tag

X

<BuyerOrderId/>

Buyer order ID

X

<SupplierOrderId/>

Supplier order ID

X

<InvoiceLineNbr/>

Invoice item line number

X

<POLineNbr/>

Purchase Order line number

X

<BuyerItemId/>

Buyer item ID

X

<Qty/>

Quantity

X

<QtyUOM/>

Quantity unit of measure (1)

X

<UCValue/>

Unit cost

X

<UCCurrencyCode/>

Unit cost currency code

X

<ExtendedCostValue/>

Extended cost

X

<ExtendedCurrencyCode/>

Extended cost currency code

X

<RetailValue/>

Unit retail value

 

<RetailCurrencyCode/>

Retail value currency code

 

<SupplierItemId/>

Supplier item ID

X

<SupplierItemDesc/>

Supplier item description

X

<PackListNbr/>

Packing list number

 

<ShipmentIds>

Start tag

X

<ShipmentId/>

Shipment ID

X

</ShipmentIds>

End tag

X

<DateShipped/>

Date of shipment

X

<BarCodeId/>

Digital barcode representation

X

<BarCodeType/>

Barcode type

X

</Item>

End tag

X

</Items>

End tag

X

</InvoiceDetail>

End tag

X

</NAMM_Invoice>

End tag

X

(1) See Appendix A, "Codes Tables".

Sell Through

Sell Through – sellthrough-v2012.1.xml

Tag

Description

Req

<?xml version="1.0" encoding="UTF-8" ?>

XML declaration

X

<NAMM_SELLTHROUGH version="2012.1">

File-level Start tag

X

<Id/>

Document ID

X

<Timestamp/>

Date/time stamp for this document

X

<StartDate/>

Start date

X

<EndDate/>

End date

X

<SoldTo>

Start tag

X

<PartyId/>

Buyer GLN/NAMM ID

X

<Name/>

Buyer company name

<Address>

Start tag

 

<Attn/>

Buyer contact person

 

<Address1/>

Buyer address line 1

 

<Address2/>

Buyer address line 2

 

<Address3/>

Buyer address line 3

 

<City/>

Buyer city

 

<State/>

Buyer state

 

<PostalCode/>

Buyer postal code

 

<Country/>

Buyer country

 

<CountryCode/>

Buyer country code

 

</Address>

End tag

 

</SoldTo>

End tag

X

<Supplier>

Start tag

X

<PartyId/>

Supplier GLN/NAMM ID

X

<Name/>

Supplier company name

 

<Address>

Start tag

 

<Attn/>

Supplier contact person

 

<Address1/>

Supplier address line 1

 

<Address2/>

Supplier address line 2

 

<Address3/>

Supplier address line 3

 

<City/>

Supplier city

 

<State/>

Supplier state

 

<PostalCode/>

Supplier postal code

 

<Country/>

Supplier country

 

<CountryCode/>

Supplier country code

 

</Address>

End tag

 

</Supplier>

End tag

X

<Locations>

Start tag

X

<Location>

Start tag

X

LocationID

Attribute: location ID

X

<Items>

Start tag

X

<Item>

Start tag

X

<BuyerItemId/>

Buyer item ID

X

<SupplierItemId/>

Supplier item ID

X

<BarCodeId/>

Item digital barcode representation

X

<BarCodeType/>

Item barcode type

X

<Qty/>

Item quantity

X

<QtyUOM/>

Item quantity per unit of measure

X

<SalesTotal/>

Sales total amount

X

<SalesTotalCurrencyCode/>

Sales total currency code

X

<QtyOnHand/>

Item quantity on hand

</Item>

End tag

X

</Items>

End tag

X

</Location>

End tag

X

</Locations>

End tag

X

</NAMM_SELLTHROUGH>

End tag

X

XML Schemas

Usage Note

An XML Schema Definition (XSD) describes the valid structure of an XML document. The schema is the successor to the Document Type Definition (DTD), and is the current recommendation of the World Wide Web Consortium (W3C). Below are the XSD files associated with each document type in the NAMM B2B standard. These schemas should be used for validation when creating/modifying, sending, receiving, and reading/importing the XML documents in order to avoid transmitting an invalid document to, or receiving one from, another business partner.

The schemas as presented here do not use the optional targetNamespace attribute on the schema tag; they have only the xmlns:xs attribute, defining the “xs” prefix, like this:

.

Therefore, when referencing the schemas from a NAMM B2B XML data document, you should use the xsi:noNamespaceSchemaLocation attribute instead of the xsi:schemaLocation attribute on the top-level tag to specify the location of the schema.

 

For example, assume that the schemas all reside in a folder on the NAMM web site called http://b2b.namm.org/B2B/Schemas. If the schema for the Party document is named party-v2009.1.xsd, then the reference to it in the Party document’s top-level tag would look like this:

Such a reference would allow connection to and validation through the associated schema.

One additional coding note: Because the default value for both the minOccurs and maxOccurs attributes is “1”, minOccurs="0" has been included only when necessary, to indicate optional elements.

Party Schema

Download Party-v2009.1.xsd

<?xml version="1.0" encoding="utf-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
  <xs:element name="NAMM_PARTY">
    <xs:complexType>
      <xs:sequence>
        <xs:element name="RevisionDate"
                    type="xs:dateTime" />
        <xs:element name="TradingPartner">
          <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="PartyIdType">
                <xs:simpleType>
                  <xs:restriction base="xs:string">
                    <xs:pattern value="GLN|NAMM" />
                  </xs:restriction>
                </xs:simpleType>
              </xs:element>
              <xs:element name="Name">
                <xs:simpleType>
                  <xs:restriction base="xs:string">
                    <xs:maxLength value="35" />
                  </xs:restriction>
                </xs:simpleType>
              </xs:element>
              <xs:element name="DBA"
                          minOccurs="0">
                <xs:simpleType>
                  <xs:restriction base="xs:string">
                    <xs:maxLength value="35" />
                  </xs:restriction>
                </xs:simpleType>
              </xs:element>
              <xs:element name="URL"
                          minOccurs="0">
                <xs:simpleType>
                  <xs:restriction base="xs:anyURI">
                    <xs:maxLength value="500" />
                  </xs:restriction>
                </xs:simpleType>
              </xs:element>
              <xs:element name="Locations">
                <xs:complexType>
                  <xs:sequence>
                    <xs:element name="Location"
                                maxOccurs="unbounded">
                      <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="PartyIdType">
                            <xs:simpleType>
                              <xs:restriction base="xs:string">
                                <xs:pattern value="GLN|NAMM" />
                              </xs:restriction>
                            </xs:simpleType>
                          </xs:element>
                          <xs:element name="Description"
                                      type="xs:string"
                                      minOccurs="0" />
                          <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="DBA"
                                      minOccurs="0">
                            <xs:simpleType>
                              <xs:restriction base="xs:string">
                                <xs:maxLength value="35" />
                              </xs:restriction>
                            </xs:simpleType>
                          </xs:element>
                          <xs:element name="Address"
                                      minOccurs="0">
                            <xs:complexType>
                              <xs:sequence>
                                <xs:element name="Attn"
                                            type="xs:string"
                                            minOccurs="0" />
                                <xs:element name="Address1"
                                            type="xs:string"
                                            minOccurs="0" />
                                <xs:element name="Address2"
                                            type="xs:string"
                                            minOccurs="0" />
                                <xs:element name="Address3"
                                            type="xs:string"
                                            minOccurs="0" />
                                <xs:element name="City"
                                            type="xs:string"
                                            minOccurs="0" />
                                <xs:element name="State"
                                            type="xs:string"
                                            minOccurs="0" />
                                <xs:element name="PostalCode"
                                            type="xs:string"
                                            minOccurs="0" />
                                <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:length value="2" />
                                    </xs:restriction>
                                  </xs:simpleType>
                                </xs:element>
                              </xs:sequence>
                            </xs:complexType>
                          </xs:element>
                          <xs:element name="Phone"
                                      minOccurs="0">
                            <xs:simpleType>
                              <xs:restriction base="xs:string">
                                <xs:maxLength value="24" />
                              </xs:restriction>
                            </xs:simpleType>
                          </xs:element>
                          <xs:element name="Fax"
                                      minOccurs="0">
                            <xs:simpleType>
                              <xs:restriction base="xs:string">
                                <xs:maxLength value="24" />
                              </xs:restriction>
                            </xs:simpleType>
                          </xs:element>
                          <xs:element name="Email"
                                      minOccurs="0">
                            <xs:simpleType>
                              <xs:restriction base="xs:string">
                                <xs:maxLength value="100" />
                              </xs:restriction>
                            </xs:simpleType>
                          </xs:element>
                          <xs:element name="StartDate"
                                      type="xs:date"
                                      minOccurs="0" />
                          <xs:element name="EndDate"
                                      type="xs:date"
                                      minOccurs="0"></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.1" />
    </xs:complexType>
  </xs:element>
</xs:schema>

Item Schema

Download Item-v2015.1.xsd

<?xml version="1.0" encoding="utf-8"?>
<xs:schema xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" attributeFormDefault="unqualified"
           elementFormDefault="qualified" targetNamespace="http://namm.org/b2b/2015/schemas" 
           xmlns:xs="http://www.w3.org/2001/XMLSchema">
  <xs:element name="NAMM_ITEM">
    <xs:complexType>
      <xs:sequence>
        <xs:element name="Timestamp"
                    type="xs:dateTime" />
        <xs:element name="Id"
                    type="xs:string" />
        <xs:element name="SupplierId"
                    type="xs:unsignedLong" />
        <xs:element name="Items">
          <xs:complexType>
            <xs:sequence>
              <xs:element maxOccurs="unbounded"
                          name="Item">
                <xs:complexType>
                  <xs:sequence>
                    <xs:element name="SupplierItemId"
                                type="xs:string" />
                    <xs:element name="SupplierModel"
                                type="xs:string" />
                    <xs:element name="SupplierItemDesc"
                                type="xs:string" />
                    <xs:element name="Kit"
                                type="xs:string" />
		<xs:element minOccurs="0" name="KitComponentOnly" type="xs:string" />
                    <xs:element name="Serialized"
                                type="xs:string" minOccurs="0"/>
                    <xs:element name="BrandName"
                                type="xs:string" />
                    <xs:element minOccurs="0"
                                name="CountryOrigin"
                                type="xs:string" />
                    <xs:element name="Length"
                                type="xs:decimal" minOccurs="0"/>
                    <xs:element name="Width"
                                type="xs:decimal" minOccurs="0"/>
                    <xs:element name="Height"
                                type="xs:decimal" minOccurs="0"/>
                    <xs:element name="DimUOM"
                                type="xs:string" minOccurs="0"/>
                    <xs:element name="Weight"
                                type="xs:decimal" minOccurs="0"/>
                    <xs:element name="WeightUOM"
                                type="xs:string" minOccurs="0"/>
                    <xs:element name="AnnounceDate"
                                type="xs:date" />
                    <xs:element name="AvailableDate"
                                type="xs:date" />
                    <xs:element minOccurs="0"
                                name="UnavailableDate"
                                type="xs:date" />
                    <xs:element minOccurs="0"
                                name="EndOfProductionDate"
                                type="xs:date" />
                    <xs:element minOccurs="0"
                                name="ReplacementID"
                                type="xs:string" />
                    <xs:element name="WarrantyPartTerm"
                                type="xs:unsignedShort" />
                    <xs:element name="WarrantyPartUOM"
                                type="xs:string" />
                    <xs:element name="WarrantyLabTerm"
                                type="xs:unsignedByte" />
                    <xs:element name="WarrantyLabUOM"
                                type="xs:string" />
                    <xs:element name="Condition"
                                minOccurs="0"
                                type="xs:string" />
                    <xs:element name="Barcodes">
                      <xs:complexType>
                        <xs:sequence>
                          <xs:element maxOccurs="unbounded"
                                      name="Barcode">
                            <xs:complexType>
                              <xs:sequence>
                                <xs:element name="ID"
                                            type="xs:string" />
                                <xs:element name="Type"
                                            type="xs:string" />
                              </xs:sequence>
                            </xs:complexType>
                          </xs:element>
                        </xs:sequence>
                      </xs:complexType>
                    </xs:element>
                    <xs:element minOccurs="0"
                                name="Pricing">
                      <xs:complexType>
                        <xs:sequence>
                          <xs:element maxOccurs="unbounded"
                                      name="Price">
                            <xs:complexType>
                              <xs:simpleContent>
                                <xs:extension base="xs:decimal">
                                  <xs:attribute name="type"
                                                type="xs:string"
                                                use="required" />
                                  <xs:attribute name="Currency"
                                                type="xs:string"
                                                use="required" />
                                  <xs:attribute name="Qty"
                                                type="xs:unsignedByte"
                                                use="optional" />
                                </xs:extension>
                              </xs:simpleContent>
                            </xs:complexType>
                          </xs:element>
                        </xs:sequence>
                      </xs:complexType>
                    </xs:element>
                    <xs:element name="Containers" minOccurs="0">
                      <xs:complexType>
                        <xs:sequence>
                          <xs:element maxOccurs="unbounded"
                                      name="Container">
                            <xs:complexType>
                              <xs:sequence>
                                <xs:element name="Type"
                                            type="xs:string" />
                                <xs:element name="Length"
                                            type="xs:decimal" />
                                <xs:element name="Width"
                                            type="xs:decimal" />
                                <xs:element name="Height"
                                            type="xs:decimal" />
                                <xs:element name="DimUOM"
                                            type="xs:string" />
                                <xs:element name="Weight"
                                            type="xs:decimal" />
                                <xs:element name="WeightUOM"
                                            type="xs:string" />
                                <xs:element name="UOM"
                                            type="xs:string" />
                                <xs:element name="QtyPerUOM"
                                            type="xs:unsignedShort" />
                                <xs:element minOccurs="0"
                                            name="Barcodes">
                                  <xs:complexType>
                                    <xs:sequence>
                                      <xs:element maxOccurs="unbounded"
                                                  name="Barcode">
                                        <xs:complexType>
                                          <xs:sequence>
                                            <xs:element name="ID"
                                                        type="xs:string" />
                                            <xs:element name="Type"
                                                        type="xs:string" />
                                          </xs:sequence>
                                        </xs:complexType>
                                      </xs:element>
                                    </xs:sequence>
                                  </xs:complexType>
                                </xs:element>
                              </xs:sequence>
                            </xs:complexType>
                          </xs:element>
                        </xs:sequence>
                      </xs:complexType>
                    </xs:element>


		<xs:element minOccurs="0" name="KitItems">
                      <xs:complexType>
                        <xs:sequence>
                          <xs:element maxOccurs="unbounded" name="KitItem">
                            <xs:complexType>
                              <xs:sequence>
                                <xs:element name="SupplierItemId" type="xs:string" />
                                <xs:element name="Qty" type="xs:decimal" />
                                <xs:element name="UOM" type="xs:string" />
                               

			<xs:element name="Barcodes">
                      <xs:complexType>
                        <xs:sequence>
                          <xs:element maxOccurs="unbounded"
                                      name="Barcode">
                            <xs:complexType>
                              <xs:sequence>
                                <xs:element name="ID"
                                            type="xs:string" />
                                <xs:element name="Type"
                                            type="xs:string" />
                              </xs:sequence>
                            </xs:complexType>
                          </xs:element>
                        </xs:sequence>
                      </xs:complexType>
                    </xs:element>


                              </xs:sequence>
                            </xs:complexType>
                          </xs:element>
                        </xs:sequence>
                      </xs:complexType>
                    </xs:element>
                    <xs:element name="MarketingInfo">
                      <xs:complexType>
                        <xs:sequence>
                          <xs:element name="PrimaryCategory"
                                      type="xs:string" />
                          <xs:element minOccurs="0"
                                      name="ProductURL"
                                      type="xs:string" />
                          <xs:element minOccurs="0"
                                      name="ItemDescLong"
                                      type="xs:string" />
                          <xs:element minOccurs="0"
                                      name="SecondaryCategories">
                            <xs:complexType>
                              <xs:sequence>
                                <xs:element maxOccurs="unbounded"
                                            name="Category"
                                            type="xs:string" />
                              </xs:sequence>
                            </xs:complexType>
                          </xs:element>
                          <xs:element name="Bullets">
                            <xs:complexType>
                              <xs:sequence minOccurs="0">
                                <xs:element maxOccurs="unbounded"
                                            name="Bullet"
                                            type="xs:string" />
                              </xs:sequence>
                            </xs:complexType>
                          </xs:element>
                          <xs:element minOccurs="0"
                                      name="Media">
                            <xs:complexType>
                              <xs:sequence>
                                <xs:element minOccurs="0"
                                            name="Images">
                                  <xs:complexType>
                                    <xs:sequence>
                                      <xs:element maxOccurs="unbounded"
                                                  name="Image">
                                        <xs:complexType>
                                          <xs:simpleContent>
                                            <xs:extension base="xs:string">
                                              <xs:attribute name="Audience"
                                                            use="optional">
                                                <xs:simpleType>
                                                  <xs:restriction
                                                          base="xs:string">
                                                    <xs:enumeration
                                                        value="Consumer" />
                                                    <xs:enumeration
                                                          value="Dealer" />
                                                  </xs:restriction>
                                                </xs:simpleType>
                                              </xs:attribute>
                                              <xs:attribute name="View"
                                                            type="xs:string"
                                                            use="optional" />
                                              <xs:attribute name="Caption"
                                                            type="xs:string"
                                                            use="optional" />
                                              <xs:attribute
                                                      name="CarouselSequence"
                                                            type="xs:integer"
                                                            use="optional" />
                                            </xs:extension>
                                          </xs:simpleContent>
                                        </xs:complexType>
                                      </xs:element>
                                    </xs:sequence>
                                  </xs:complexType>
                                </xs:element>
                                <xs:element minOccurs="0"
                                            name="Videos">
                                  <xs:complexType>
                                    <xs:sequence>
                                      <xs:element maxOccurs="unbounded"
                                                  name="Video">
                                        <xs:complexType>
                                          <xs:simpleContent>
                                            <xs:extension base="xs:string">
                                              <xs:attribute name="Audience"
                                                            type="xs:string"
                                                            use="optional" />
                                              <xs:attribute name="type"
                                                            type="xs:string"
                                                            use="required" />
                                              <xs:attribute name="Caption"
                                                            type="xs:string"
                                                            use="optional" />
                                            </xs:extension>
                                          </xs:simpleContent>
                                        </xs:complexType>
                                      </xs:element>
                                    </xs:sequence>
                                  </xs:complexType>
                                </xs:element>
                                <xs:element minOccurs="0"
                                            name="Documents">
                                  <xs:complexType>
                                    <xs:sequence>
                                      <xs:element maxOccurs="unbounded"
                                                  name="Document">
                                        <xs:complexType>
                                          <xs:simpleContent>
                                            <xs:extension base="xs:string">
                                              <xs:attribute name="Audience"
                                                            type="xs:string"
                                                            use="optional" />
                                              <xs:attribute name="type"
                                                            type="xs:string"
                                                            use="required" />
                                              <xs:attribute name="Caption"
                                                            type="xs:string"
                                                            use="optional" />
                                            </xs:extension>
                                          </xs:simpleContent>
                                        </xs:complexType>
                                      </xs:element>
                                    </xs:sequence>
                                  </xs:complexType>
                                </xs:element>
                                <xs:element minOccurs="0"
                                            name="Audios">
                                  <xs:complexType>
                                    <xs:sequence>
                                      <xs:element maxOccurs="unbounded"
                                                  name="Audio">
                                        <xs:complexType>
                                          <xs:simpleContent>
                                            <xs:extension base="xs:string">
                                              <xs:attribute name="Audience"
                                                            type="xs:string"
                                                            use="optional" />
                                              <xs:attribute name="type"
                                                            type="xs:string"
                                                            use="required" />
                                              <xs:attribute name="Caption"
                                                            type="xs:string"
                                                            use="optional" />
                                            </xs:extension>
                                          </xs:simpleContent>
                                        </xs:complexType>
                                      </xs:element>
                                    </xs:sequence>
                                  </xs:complexType>
                                </xs:element>
                              </xs:sequence>
                            </xs:complexType>
                          </xs:element>
                          <xs:element minOccurs="0"
                                      name="Keywords">
                            <xs:complexType>
                              <xs:sequence>
                                <xs:element maxOccurs="unbounded"
                                            name="Keyword"
                                            type="xs:string" />
                              </xs:sequence>
                            </xs:complexType>
                          </xs:element>
                        </xs:sequence>
                      </xs:complexType>
                    </xs:element>
                    <xs:element minOccurs="0"
                                name="ExtendedAttributes">
                      <xs:complexType>
                        <xs:sequence>
                          <xs:element maxOccurs="unbounded"
                                      name="Data">
                            <xs:complexType mixed="true">
                              <xs:sequence minOccurs="0">
                                <xs:element minOccurs="0"
                                            name="Topic">
                                  <xs:complexType>
                                    <xs:sequence>
                                      <xs:element name="SuperTitle"
                                                  type="xs:string" />
                                      <xs:element name="Title"
                                                  type="xs:string" />
                                      <xs:element name="SubTitle"
                                                  type="xs:string" />
                                      <xs:element minOccurs="0"
                                                  name="Credits">
                                        <xs:complexType>
                                          <xs:sequence>
                                            <xs:element maxOccurs="unbounded"
                                                        name="Contributor">
                                              <xs:complexType>
                                                <xs:attribute name="primary"
                                                           type="xs:boolean"
                                                           use="required" />
                                                <xs:attribute
                                                         name="Contribution"
                                                            type="xs:string"
                                                           use="required" />
                                                <xs:attribute
                                                      name="ContributorName"
                                                            type="xs:string"
                                                           use="required" />
                                                <xs:attribute
                                              name="ContributorNameReversed"
                                                            type="xs:string"
                                                           use="required" />
                                              </xs:complexType>
                                            </xs:element>
                                          </xs:sequence>
                                        </xs:complexType>
                                      </xs:element>
                                      <xs:element minOccurs="0"
                                                  name="Copyright">
                                        <xs:complexType>
                                          <xs:sequence>
                                            <xs:element maxOccurs="unbounded"
                                                        name="CopyrightLine"
                                                        type="xs:string" />
                                          </xs:sequence>
                                        </xs:complexType>
                                      </xs:element>
                                    </xs:sequence>
                                  </xs:complexType>
                                </xs:element>
                                <xs:element minOccurs="0"
                                            maxOccurs="unbounded"
                                            name="Contributor">
                                  <xs:complexType>
                                    <xs:attribute name="primary"
                                                  type="xs:boolean"
                                                  use="required" />
                                    <xs:attribute name="Contribution"
                                                  type="xs:string"
                                                  use="required" />
                                    <xs:attribute name="ContributorName"
                                                  type="xs:string"
                                                  use="required" />
                                    <xs:attribute
                                               name="ContributorNameReversed"
                                                  type="xs:string"
                                                  use="required" />
                                  </xs:complexType>
                                </xs:element>
                              </xs:sequence>
                              <xs:attribute name="Name"
                                            type="xs:string"
                                            use="required" />
                            </xs:complexType>
                          </xs:element>
                        </xs:sequence>
                      </xs:complexType>
                    </xs:element>
                    <xs:element minOccurs="0"
                                name="RelatedItems">
                      <xs:complexType>
                        <xs:sequence>
                          <xs:element maxOccurs="unbounded"
                                      name="RelatedItem">
                            <xs:complexType>
                              <xs:sequence>
                                <xs:element name="SupplierItemId"
                                            type="xs:string" />
                                <xs:element minOccurs="0"
                                            name="Barcode">
                                  <xs:complexType>
                                    <xs:sequence>
                                      <xs:element name="ID"
                                                  type="xs:unsignedLong" />
                                      <xs:element name="Type"
                                                  type="xs:string" />
                                    </xs:sequence>
                                  </xs:complexType>
                                </xs:element>
                              </xs:sequence>
                              <xs:attribute name="type"
                                            use="required">
                                <xs:simpleType>
                                  <xs:restriction base="xs:string">
                                    <xs:enumeration value="similar" />
                                    <xs:enumeration value="accessory" />
                                    <xs:enumeration value="ThirdParty" />
                                  </xs:restriction>
                                </xs:simpleType>
                              </xs:attribute>
                              <xs:attribute name="included"
                                            use="optional">
                                <xs:simpleType>
                                  <xs:restriction base="xs:string">
                                    <xs:enumeration value="Y" />
                                    <xs:enumeration value="N" />
                                  </xs:restriction>
                                </xs:simpleType>
                              </xs:attribute>
                            </xs:complexType>
                          </xs:element>
                        </xs:sequence>
                      </xs:complexType>
                    </xs:element>
                    <xs:element minOccurs="0"
                                name="ItemFamily">
                      <xs:complexType>
                        <xs:simpleContent>
                          <xs:extension base="xs:string">
                            <xs:attribute name="property"
                                          type="xs:string"
                                          use="required" />
                            <xs:attribute name="code"
                                          type="xs:string"
                                          use="required" />
                          </xs:extension>
                        </xs:simpleContent>
                      </xs:complexType>
                    </xs:element>
                    <xs:element minOccurs="0"
                                name="Availability">
                      <xs:complexType>
                        <xs:sequence>
                          <xs:element minOccurs="0"
                                      name="QtyOnHand"
                                      type="xs:unsignedByte" />
                          <xs:element name="Available">
                            <xs:simpleType>
                              <xs:restriction base="xs:string">
                                <xs:enumeration value="YES" />
                                <xs:enumeration value="NO" />
                                <xs:enumeration value="LOW" />
                                <xs:enumeration value="MEDIUM" />
                                <xs:enumeration value="HIGH" />
                              </xs:restriction>
                            </xs:simpleType>
                          </xs:element>
                          <xs:element minOccurs="0"
                                      name="QueryURL"
                                      type="xs:string" />
                        </xs:sequence>
                      </xs:complexType>
                    </xs:element>
                  </xs:sequence>
                </xs:complexType>
              </xs:element>
            </xs:sequence>
          </xs:complexType>
        </xs:element>
      </xs:sequence>
      <xs:attribute name="version"
                    type="xs:decimal"
                    use="required"
                    fixed="2015.1" />
    </xs:complexType>
  </xs:element>
</xs:schema>

Functional Acknowledgement Schema

Download FunAck-v2009.1.xsd

<?xml version="1.0" encoding="utf-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
  <xs:element name="NAMM_FunctionalAcknowledgement">
    <xs:complexType>
      <xs:sequence>
        <xs:element name="Timestamp"
                    type="xs:dateTime" />
        <xs:element name="Id"
                    type="xs:string" />
        <xs:element name="Supplier">
          <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:sequence>
          </xs:complexType>
        </xs:element>
        <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:sequence>
          </xs:complexType>
        </xs:element>
        <xs:element name="StatusCode">
          <xs:simpleType>
            <xs:restriction base="xs:string">
              <xs:enumeration value="C01" />
              <xs:enumeration value="C02" />
            </xs:restriction>
          </xs:simpleType>
        </xs:element>
        <xs:element name="StatusMessage">
          <xs:simpleType>
            <xs:restriction base="xs:string">
              <xs:maxLength value="10" />
            </xs:restriction>
          </xs:simpleType>
        </xs:element>
      </xs:sequence>
      <xs:attribute name="version"
                    use="required"
                    type="xs:decimal"
                    fixed="2009.1" />
    </xs:complexType>
  </xs:element>
</xs:schema>

Price Book Schema

Download Pricebook-v2015.1.xsd

<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns="http://namm.org/b2b/2015/schemas"
           targetNamespace="http://namm.org/b2b/2015/schemas" elementFormDefault="qualified">
  <xs:element name="NAMM_PRICEBOOK">
    <xs:complexType>
      <xs:sequence>
        <xs:element name="Id"
                    type="xs:string" />
        <xs:element name="Timestamp"
                    type="xs:dateTime" />
        <xs:element name="Supplier">
          <xs:complexType>
            <xs:sequence>
              <xs:element name="PartyId"
                          type="xs:string" />
              <xs:element name="Name"
                          type="xs:string"
                          minOccurs="0" />
              <xs:element name="Address"
                          minOccurs="0">
                <xs:complexType>
                  <xs:sequence>
                    <xs:element name="Attn"
                                minOccurs="0"
                                type="xs:string" />
                    <xs:element name="Address1"
                                minOccurs="0"
                                type="xs:string" />
                    <xs:element name="Address2"
                                minOccurs="0"
                                type="xs:string" />
                    <xs:element name="Address3"
                                minOccurs="0"
                                type="xs:string" />
                    <xs:element name="City"
                                minOccurs="0"
                                type="xs:string" />
                    <xs:element name="State"
                                minOccurs="0"
                                type="xs:string" />
                    <xs:element name="PostalCode"
                                minOccurs="0"
                                type="xs:int" />
                    <xs:element name="Country"
                                minOccurs="0"
                                type="xs:string" />
                    <xs:element name="CountryCode"
                                minOccurs="0"
                                type="xs:string" />
                  </xs:sequence>
                </xs:complexType>
              </xs:element>
            </xs:sequence>
          </xs:complexType>
        </xs:element>
        <xs:element name="Group" minOccurs="0"
                        type="xs:string" />  
        <xs:element name="SoldTo" minOccurs="0">
          <xs:complexType>
            <xs:sequence>
              <xs:element name="PartyId"
                          type="xs:string" />
              <xs:element name="Name"
                          type="xs:string"
                          minOccurs="0" />
              <xs:element name="Address"
                          minOccurs="0">
                <xs:complexType>
                  <xs:sequence>
                    <xs:element name="Attn"
                                minOccurs="0"
                                type="xs:string" />
                    <xs:element name="Address1"
                                minOccurs="0"
                                type="xs:string" />
                    <xs:element name="Address2"
                                minOccurs="0"
                                type="xs:string" />
                    <xs:element name="Address3"
                                minOccurs="0"
                                type="xs:string" />
                    <xs:element name="City"
                                minOccurs="0"
                                type="xs:string" />
                    <xs:element name="State"
                                minOccurs="0"
                                type="xs:string" />
                    <xs:element name="PostalCode"
                                minOccurs="0"
                                type="xs:int" />
                    <xs:element name="Country"
                                minOccurs="0"
                                type="xs:string" />
                    <xs:element name="CountryCode"
                                minOccurs="0"
                                type="xs:string" />
                  </xs:sequence>
                </xs:complexType>
              </xs:element>
            </xs:sequence>
          </xs:complexType>
        </xs:element>
        <xs:element name="Items">
          <xs:complexType>
            <xs:sequence>
              <xs:element maxOccurs="unbounded"
                          name="Item">
                <xs:complexType>
                  <xs:sequence>
                    <xs:element name="BarCodeId"
                                type="xs:decimal" />
                    <xs:element name="BarCodeType"
                                type="xs:string" />
                    <xs:element name="SupplierItemId"
                                type="xs:string" />
                    <xs:element name="Levels">
                      <xs:complexType>
                        <xs:sequence>
                          <xs:element maxOccurs="unbounded"
                                      name="Level">
                            <xs:complexType>
                              <xs:sequence>
                                <xs:element name="Price">
                                  <xs:complexType>
                                    <xs:simpleContent>
                                      <xs:extension base="xs:decimal">
                                        <xs:attribute name="Currency"
                                                      type="xs:string" />
                                        <xs:attribute name="type"
                                                      type="xs:string" />
                                      </xs:extension>
                                    </xs:simpleContent>
                                  </xs:complexType>
                                </xs:element>
                                <xs:element name="LevelMin"
                                            type="xs:int" />
                                <xs:element name="LevelMax"
                                            type="xs:int" />
                                <xs:element name="LevelUOM">
                                  <xs:complexType>
                                    <xs:simpleContent>
                                      <xs:extension base="xs:string">
                                        <xs:attribute name="type"
                                                      type="xs:string" />
                                      </xs:extension>
                                    </xs:simpleContent>
                                  </xs:complexType>
                                </xs:element>
                              </xs:sequence>
                            </xs:complexType>
                          </xs:element>
                        </xs:sequence>
                      </xs:complexType>
                    </xs:element>
                  </xs:sequence>
                  <xs:attribute name="EffectiveDate"
                                type="xs:dateTime" />
                </xs:complexType>
              </xs:element>
            </xs:sequence>
          </xs:complexType>
        </xs:element>
      </xs:sequence>
      <xs:attribute name="version"
                    use="required"
                    type="xs:decimal"
                    fixed="2015.1" />
    </xs:complexType>
  </xs:element>
</xs:schema> 

Purchase Order Schema

Download PO_v2015.1.xsd

<?xml version="1.0" encoding="utf-8"?>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:t="http://namm.org/b2b/2015/schemas" 
            targetNamespace="http://namm.org/b2b/2015/schemas" elementFormDefault="qualified">

  <xsd:element name="NAMM_PO">
    <xsd:complexType>
      <xsd:complexContent>
        <xsd:restriction base="xsd:anyType">
          <xsd:sequence>
            <xsd:element name="Id">
              <xsd:simpleType>
                <xsd:restriction base="xsd:string">
                  <xsd:maxLength value="50" />
                </xsd:restriction>
              </xsd:simpleType>
            </xsd:element>
            <xsd:element name="Timestamp" type="xsd:dateTime" />
            <xsd:element name="POHeader">
              <xsd:complexType>
                <xsd:complexContent>
                  <xsd:restriction base="xsd:anyType">
                    <xsd:sequence>
                      <xsd:element name="SoldTo">
                        <xsd:complexType>
                          <xsd:complexContent>
                            <xsd:restriction base="xsd:anyType">
                              <xsd:sequence>
                                <xsd:element name="PartyId">
                                  <xsd:simpleType>
                                    <xsd:restriction base="xsd:string">
                                      <xsd:maxLength value="50" />
                                    </xsd:restriction>
                                  </xsd:simpleType>
                                </xsd:element>
                                <xsd:element name="Name" minOccurs="0">
                                  <xsd:simpleType>
                                    <xsd:restriction base="xsd:string">
                                      <xsd:maxLength value="35" />
                                    </xsd:restriction>
                                  </xsd:simpleType>
                                </xsd:element>
                                <xsd:element name="Address">
                                  <xsd:complexType>
                                    <xsd:complexContent>
                                      <xsd:restriction base="xsd:anyType">
                                        <xsd:sequence>
                                          <xsd:element name="Attn" minOccurs="0">
                                            <xsd:simpleType>
                                              <xsd:restriction base="xsd:string">
                                                <xsd:maxLength value="35" />
                                              </xsd:restriction>
                                            </xsd:simpleType>
                                          </xsd:element>
                                          <xsd:element name="Address1" minOccurs="0">
                                            <xsd:simpleType>
                                              <xsd:restriction base="xsd:string">
                                                <xsd:maxLength value="35" />
                                              </xsd:restriction>
                                            </xsd:simpleType>
                                          </xsd:element>
                                          <xsd:element name="Address2" minOccurs="0">
                                            <xsd:simpleType>
                                              <xsd:restriction base="xsd:string">
                                                <xsd:maxLength value="35" />
                                              </xsd:restriction>
                                            </xsd:simpleType>
                                          </xsd:element>
                                          <xsd:element name="Address3" minOccurs="0">
                                            <xsd:simpleType>
                                              <xsd:restriction base="xsd:string">
                                                <xsd:maxLength value="35" />
                                              </xsd:restriction>
                                            </xsd:simpleType>
                                          </xsd:element>
                                          <xsd:element name="City" minOccurs="0">
                                            <xsd:simpleType>
                                              <xsd:restriction base="xsd:string">
                                                <xsd:maxLength value="30" />
                                              </xsd:restriction>
                                            </xsd:simpleType>
                                          </xsd:element>
                                          <xsd:element name="State" minOccurs="0">
                                            <xsd:simpleType>
                                              <xsd:restriction base="xsd:string">
                                                <xsd:maxLength value="2" />
                                              </xsd:restriction>
                                            </xsd:simpleType>
                                          </xsd:element>
                                          <xsd:element name="PostalCode" minOccurs="0">
                                            <xsd:simpleType>
                                              <xsd:restriction base="xsd:string">
                                                <xsd:maxLength value="9" />
                                              </xsd:restriction>
                                            </xsd:simpleType>
                                          </xsd:element>
                                          <xsd:element name="Country" minOccurs="0">
                                            <xsd:simpleType>
                                              <xsd:restriction base="xsd:string">
                                                <xsd:maxLength value="50" />
                                              </xsd:restriction>
                                            </xsd:simpleType>
                                          </xsd:element>
                                          <xsd:element name="CountryCode" minOccurs="0">
                                            <xsd:simpleType>
                                              <xsd:restriction base="xsd:string">
                                                <xsd:maxLength value="2" />
                                              </xsd:restriction>
                                            </xsd:simpleType>
                                          </xsd:element>
                                        </xsd:sequence>
                                      </xsd:restriction>
                                    </xsd:complexContent>
                                  </xsd:complexType>
                                </xsd:element>
                              </xsd:sequence>
                            </xsd:restriction>
                          </xsd:complexContent>
                        </xsd:complexType>
                      </xsd:element>
                      <xsd:element name="BillTo">
                        <xsd:complexType>
                          <xsd:complexContent>
                            <xsd:restriction base="xsd:anyType">
                              <xsd:sequence>
                                <xsd:element name="PartyId">
                                  <xsd:simpleType>
                                    <xsd:restriction base="xsd:string">
                                      <xsd:maxLength value="50" />
                                    </xsd:restriction>
                                  </xsd:simpleType>
                                </xsd:element>
                                <xsd:element name="Name" minOccurs="0">
                                  <xsd:simpleType>
                                    <xsd:restriction base="xsd:string">
                                      <xsd:maxLength value="35" />
                                    </xsd:restriction>
                                  </xsd:simpleType>
                                </xsd:element>
                                <xsd:element name="Address">
                                  <xsd:complexType>
                                    <xsd:complexContent>
                                      <xsd:restriction base="xsd:anyType">
                                        <xsd:sequence>
                                          <xsd:element name="Attn" minOccurs="0">
                                            <xsd:simpleType>
                                              <xsd:restriction base="xsd:string">
                                                <xsd:maxLength value="35" />
                                              </xsd:restriction>
                                            </xsd:simpleType>
                                          </xsd:element>
                                          <xsd:element name="Address1" minOccurs="0">
                                            <xsd:simpleType>
                                              <xsd:restriction base="xsd:string">
                                                <xsd:maxLength value="35" />
                                              </xsd:restriction>
                                            </xsd:simpleType>
                                          </xsd:element>
                                          <xsd:element name="Address2" minOccurs="0">
                                            <xsd:simpleType>
                                              <xsd:restriction base="xsd:string">
                                                <xsd:maxLength value="35" />
                                              </xsd:restriction>
                                            </xsd:simpleType>
                                          </xsd:element>
                                          <xsd:element name="Address3" minOccurs="0">
                                            <xsd:simpleType>
                                              <xsd:restriction base="xsd:string">
                                                <xsd:maxLength value="35" />
                                              </xsd:restriction>
                                            </xsd:simpleType>
                                          </xsd:element>
                                          <xsd:element name="City" minOccurs="0">
                                            <xsd:simpleType>
                                              <xsd:restriction base="xsd:string">
                                                <xsd:maxLength value="30" />
                                              </xsd:restriction>
                                            </xsd:simpleType>
                                          </xsd:element>
                                          <xsd:element name="State" minOccurs="0">
                                            <xsd:simpleType>
                                              <xsd:restriction base="xsd:string">
                                                <xsd:maxLength value="2" />
                                              </xsd:restriction>
                                            </xsd:simpleType>
                                          </xsd:element>
                                          <xsd:element name="PostalCode" minOccurs="0">
                                            <xsd:simpleType>
                                              <xsd:restriction base="xsd:string">
                                                <xsd:maxLength value="9" />
                                              </xsd:restriction>
                                            </xsd:simpleType>
                                          </xsd:element>
                                          <xsd:element name="Country" minOccurs="0">
                                            <xsd:simpleType>
                                              <xsd:restriction base="xsd:string">
                                                <xsd:maxLength value="50" />
                                              </xsd:restriction>
                                            </xsd:simpleType>
                                          </xsd:element>
                                          <xsd:element name="CountryCode" minOccurs="0">
                                            <xsd:simpleType>
                                              <xsd:restriction base="xsd:string">
                                                <xsd:maxLength value="2" />
                                              </xsd:restriction>
                                            </xsd:simpleType>
                                          </xsd:element>
                                        </xsd:sequence>
                                      </xsd:restriction>
                                    </xsd:complexContent>
                                  </xsd:complexType>
                                </xsd:element>
                              </xsd:sequence>
                            </xsd:restriction>
                          </xsd:complexContent>
                        </xsd:complexType>
                      </xsd:element>
                      <xsd:element name="BuyerOrderId">
                        <xsd:simpleType>
                          <xsd:restriction base="xsd:string">
                            <xsd:maxLength value="25" />
                          </xsd:restriction>
                        </xsd:simpleType>
                      </xsd:element>
                      <xsd:element name="Supplier">
                        <xsd:complexType>
                          <xsd:complexContent>
                            <xsd:restriction base="xsd:anyType">
                              <xsd:sequence>
                                <xsd:element name="PartyId">
                                  <xsd:simpleType>
                                    <xsd:restriction base="xsd:string">
                                      <xsd:maxLength value="50" />
                                    </xsd:restriction>
                                  </xsd:simpleType>
                                </xsd:element>
                                <xsd:element name="Name" minOccurs="0">
                                  <xsd:simpleType>
                                    <xsd:restriction base="xsd:string">
                                      <xsd:maxLength value="35" />
                                    </xsd:restriction>
                                  </xsd:simpleType>
                                </xsd:element>
                                <xsd:element name="Address">
                                  <xsd:complexType>
                                    <xsd:complexContent>
                                      <xsd:restriction base="xsd:anyType">
                                        <xsd:sequence>
                                          <xsd:element name="Attn" minOccurs="0">
                                            <xsd:simpleType>
                                              <xsd:restriction base="xsd:string">
                                                <xsd:maxLength value="35" />
                                              </xsd:restriction>
                                            </xsd:simpleType>
                                          </xsd:element>
                                          <xsd:element name="Address1" minOccurs="0">
                                            <xsd:simpleType>
                                              <xsd:restriction base="xsd:string">
                                                <xsd:maxLength value="35" />
                                              </xsd:restriction>
                                            </xsd:simpleType>
                                          </xsd:element>
                                          <xsd:element name="Address2" minOccurs="0">
                                            <xsd:simpleType>
                                              <xsd:restriction base="xsd:string">
                                                <xsd:maxLength value="35" />
                                              </xsd:restriction>
                                            </xsd:simpleType>
                                          </xsd:element>
                                          <xsd:element name="Address3" minOccurs="0">
                                            <xsd:simpleType>
                                              <xsd:restriction base="xsd:string">
                                                <xsd:maxLength value="35" />
                                              </xsd:restriction>
                                            </xsd:simpleType>
                                          </xsd:element>
                                          <xsd:element name="City" minOccurs="0">
                                            <xsd:simpleType>
                                              <xsd:restriction base="xsd:string">
                                                <xsd:maxLength value="30" />
                                              </xsd:restriction>
                                            </xsd:simpleType>
                                          </xsd:element>
                                          <xsd:element name="State" minOccurs="0">
                                            <xsd:simpleType>
                                              <xsd:restriction base="xsd:string">
                                                <xsd:maxLength value="2" />
                                              </xsd:restriction>
                                            </xsd:simpleType>
                                          </xsd:element>
                                          <xsd:element name="PostalCode" minOccurs="0">
                                            <xsd:simpleType>
                                              <xsd:restriction base="xsd:string">
                                                <xsd:maxLength value="9" />
                                              </xsd:restriction>
                                            </xsd:simpleType>
                                          </xsd:element>
                                          <xsd:element name="Country" minOccurs="0">
                                            <xsd:simpleType>
                                              <xsd:restriction base="xsd:string">
                                                <xsd:maxLength value="50" />
                                              </xsd:restriction>
                                            </xsd:simpleType>
                                          </xsd:element>
                                          <xsd:element name="CountryCode" minOccurs="0">
                                            <xsd:simpleType>
                                              <xsd:restriction base="xsd:string">
                                                <xsd:maxLength value="2" />
                                              </xsd:restriction>
                                            </xsd:simpleType>
                                          </xsd:element>
                                        </xsd:sequence>
                                      </xsd:restriction>
                                    </xsd:complexContent>
                                  </xsd:complexType>
                                </xsd:element>
                              </xsd:sequence>
                            </xsd:restriction>
                          </xsd:complexContent>
                        </xsd:complexType>
                      </xsd:element>
                      <xsd:element name="TermsCode">
                        <xsd:simpleType>
                          <xsd:restriction base="xsd:string">
                            <xsd:maxLength value="15" />
                          </xsd:restriction>
                        </xsd:simpleType>
                      </xsd:element>
                      <xsd:element name="TermsDays" type="xsd:integer" minOccurs="0" />
                      <xsd:element name="TermsDate" type="xsd:date" minOccurs="0" />
                      <xsd:element name="TermsPercent" type="xsd:decimal" minOccurs="0" />
                      <xsd:element name="TermsPercentDays" type="xsd:integer" minOccurs="0" />
                      <xsd:element name="ShipInstructions" minOccurs="0">
                        <xsd:simpleType>
                          <xsd:restriction base="xsd:string">
                            <xsd:maxLength value="250" />
                          </xsd:restriction>
                        </xsd:simpleType>
                      </xsd:element>
                      <xsd:element name="TranspCode">
                        <xsd:simpleType>
                          <xsd:restriction base="xsd:string">
                            <xsd:maxLength value="15" />
                          </xsd:restriction>
                        </xsd:simpleType>
                      </xsd:element>
                      <xsd:element name="TranspDesc" minOccurs="0">
                        <xsd:simpleType>
                          <xsd:restriction base="xsd:string">
                            <xsd:maxLength value="50" />
                          </xsd:restriction>
                        </xsd:simpleType>
                      </xsd:element>
                      <xsd:element name="TranspCarrier" minOccurs="0">
                        <xsd:simpleType>
                          <xsd:restriction base="xsd:string">
                            <xsd:maxLength value="15" />
                          </xsd:restriction>
                        </xsd:simpleType>
                      </xsd:element>
                      <xsd:element name="TranspTime" type="xsd:integer" minOccurs="0" />
                      <xsd:element name="TranspTerms" type="xsd:string" minOccurs="0" />
                      <xsd:element name="IncoTermsCode" minOccurs="0">
                        <xsd:simpleType>
                          <xsd:restriction base="xsd:string">
                            <xsd:maxLength value="3" />
                          </xsd:restriction>
                        </xsd:simpleType>
                      </xsd:element>
                      <xsd:element name="IncoTermsDesc" minOccurs="0">
                        <xsd:simpleType>
                          <xsd:restriction base="xsd:string">
                            <xsd:maxLength value="35" />
                          </xsd:restriction>
                        </xsd:simpleType>
                      </xsd:element>
                      <xsd:element name="POComments" minOccurs="0">
                        <xsd:simpleType>
                          <xsd:restriction base="xsd:string">
                            <xsd:maxLength value="250" />
                          </xsd:restriction>
                        </xsd:simpleType>
                      </xsd:element>
                      <xsd:element name="DateOrdered" type="xsd:date" />
                      <xsd:element name="DateBeginShip" type="xsd:date" minOccurs="0" />
                      <xsd:element name="DateEndShip" type="xsd:date" minOccurs="0" />
                      <xsd:element name="DateCancel" type="xsd:date" minOccurs="0" />
                      <xsd:element name="Backorder">
                        <xsd:simpleType>
                          <xsd:restriction base="xsd:string">
                            <xsd:pattern value="Y|N" />
                          </xsd:restriction>
                        </xsd:simpleType>
                      </xsd:element>
                      <xsd:element name="BuyerName" minOccurs="0">
                        <xsd:simpleType>
                          <xsd:restriction base="xsd:string">
                            <xsd:maxLength value="35" />
                          </xsd:restriction>
                        </xsd:simpleType>
                      </xsd:element>
                      <xsd:element name="PORevisionNumber" type="xsd:integer" />
                      <xsd:element name="POStatusIndicator">
                        <xsd:simpleType>
                          <xsd:restriction base="xsd:string">
                            <xsd:pattern value="N|U" />
                          </xsd:restriction>
                        </xsd:simpleType>
                      </xsd:element>
                      <xsd:element name="ASNRequirement">
                        <xsd:simpleType>
                          <xsd:restriction base="xsd:string">
                            <xsd:pattern value="Y|N" />
                          </xsd:restriction>
                        </xsd:simpleType>
                      </xsd:element>
                      <xsd:element name="POFileType">
                        <xsd:simpleType>
                          <xsd:restriction base="xsd:string">
                            <xsd:pattern value="P|A" />
                          </xsd:restriction>
                        </xsd:simpleType>
                      </xsd:element>
                      <xsd:element name="ShipTo">
                        <xsd:complexType>
                          <xsd:complexContent>
                            <xsd:restriction base="xsd:anyType">
                              <xsd:sequence>
                                <xsd:element name="PartyId">
                                  <xsd:simpleType>
                                    <xsd:restriction base="xsd:string">
                                      <xsd:maxLength value="50" />
                                    </xsd:restriction>
                                  </xsd:simpleType>
                                </xsd:element>
                                <xsd:element name="Name" minOccurs="0">
                                  <xsd:simpleType>
                                    <xsd:restriction base="xsd:string">
                                      <xsd:maxLength value="35" />
                                    </xsd:restriction>
                                  </xsd:simpleType>
                                </xsd:element>
                                <xsd:element name="Address">
                                  <xsd:complexType>
                                    <xsd:complexContent>
                                      <xsd:restriction base="xsd:anyType">
                                        <xsd:sequence>
                                          <xsd:element name="Attn" minOccurs="0">
                                            <xsd:simpleType>
                                              <xsd:restriction base="xsd:string">
                                                <xsd:maxLength value="35" />
                                              </xsd:restriction>
                                            </xsd:simpleType>
                                          </xsd:element>
                                          <xsd:element name="Address1" minOccurs="0">
                                            <xsd:simpleType>
                                              <xsd:restriction base="xsd:string">
                                                <xsd:maxLength value="35" />
                                              </xsd:restriction>
                                            </xsd:simpleType>
                                          </xsd:element>
                                          <xsd:element name="Address2" minOccurs="0">
                                            <xsd:simpleType>
                                              <xsd:restriction base="xsd:string">
                                                <xsd:maxLength value="35" />
                                              </xsd:restriction>
                                            </xsd:simpleType>
                                          </xsd:element>
                                          <xsd:element name="Address3" minOccurs="0">
                                            <xsd:simpleType>
                                              <xsd:restriction base="xsd:string">
                                                <xsd:maxLength value="35" />
                                              </xsd:restriction>
                                            </xsd:simpleType>
                                          </xsd:element>
                                          <xsd:element name="City" minOccurs="0">
                                            <xsd:simpleType>
                                              <xsd:restriction base="xsd:string">
                                                <xsd:maxLength value="30" />
                                              </xsd:restriction>
                                            </xsd:simpleType>
                                          </xsd:element>
                                          <xsd:element name="State" minOccurs="0">
                                            <xsd:simpleType>
                                              <xsd:restriction base="xsd:string">
                                                <xsd:maxLength value="2" />
                                              </xsd:restriction>
                                            </xsd:simpleType>
                                          </xsd:element>
                                          <xsd:element name="PostalCode" minOccurs="0">
                                            <xsd:simpleType>
                                              <xsd:restriction base="xsd:string">
                                                <xsd:maxLength value="9" />
                                              </xsd:restriction>
                                            </xsd:simpleType>
                                          </xsd:element>
                                          <xsd:element name="Country" minOccurs="0">
                                            <xsd:simpleType>
                                              <xsd:restriction base="xsd:string">
                                                <xsd:maxLength value="50" />
                                              </xsd:restriction>
                                            </xsd:simpleType>
                                          </xsd:element>
                                          <xsd:element name="CountryCode" minOccurs="0">
                                            <xsd:simpleType>
                                              <xsd:restriction base="xsd:string">
                                                <xsd:maxLength value="2" />
                                              </xsd:restriction>
                                            </xsd:simpleType>
                                          </xsd:element>
                                        </xsd:sequence>
                                      </xsd:restriction>
                                    </xsd:complexContent>
                                  </xsd:complexType>
                                </xsd:element>
                              </xsd:sequence>
                            </xsd:restriction>
                          </xsd:complexContent>
                        </xsd:complexType>
                      </xsd:element>
                    </xsd:sequence>
                  </xsd:restriction>
                </xsd:complexContent>
              </xsd:complexType>
            </xsd:element>
            <xsd:element name="PODetail">
              <xsd:complexType>
                <xsd:complexContent>
                  <xsd:restriction base="xsd:anyType">
                    <xsd:sequence>
                      <xsd:element name="Items">
                        <xsd:complexType>
                          <xsd:complexContent>
                            <xsd:restriction base="xsd:anyType">
                              <xsd:sequence>
                                <xsd:element name="Item" maxOccurs="unbounded">
                                  <xsd:complexType>
                                    <xsd:complexContent>
                                      <xsd:restriction base="xsd:anyType">
                                        <xsd:sequence>
                                          <xsd:element name="POLineNbr" type="xsd:integer" />
                                          <xsd:element name="BuyerItemId">
                                            <xsd:simpleType>
                                              <xsd:restriction base="xsd:string">
                                                <xsd:maxLength value="25" />
                                              </xsd:restriction>
                                            </xsd:simpleType>
                                          </xsd:element>
                                          <xsd:element name="BuyerItemDesc" minOccurs="0">
                                            <xsd:simpleType>
                                              <xsd:restriction base="xsd:string">
                                                <xsd:maxLength value="50" />
                                              </xsd:restriction>
                                            </xsd:simpleType>
                                          </xsd:element>
                                          <xsd:element name="Qty" type="xsd:decimal" />
                                          <xsd:element name="QtyUOM">
                                            <xsd:simpleType>
                                              <xsd:restriction base="xsd:string">
                                                <xsd:maxLength value="5" />
                                              </xsd:restriction>
                                            </xsd:simpleType>
                                          </xsd:element>
                                          <xsd:element name="UCValue" type="xsd:decimal" />
                                          <xsd:element name="UCCurrencyCode">
                                            <xsd:simpleType>
                                              <xsd:restriction base="xsd:string">
                                                <xsd:maxLength value="3" />
                                              </xsd:restriction>
                                            </xsd:simpleType>
                                          </xsd:element>
                                          <xsd:element name="RetailValue" type="xsd:decimal" minOccurs="0" />
                                          <xsd:element name="RetailCurrencyCode" minOccurs="0">
                                            <xsd:simpleType>
                                              <xsd:restriction base="xsd:string">
                                                <xsd:maxLength value="3" />
                                              </xsd:restriction>
                                            </xsd:simpleType>
                                          </xsd:element>
                                          <xsd:element name="ICQtyPerUOM" type="xsd:decimal" minOccurs="0" />
                                          <xsd:element name="ICUOM" minOccurs="0">
                                            <xsd:simpleType>
                                              <xsd:restriction base="xsd:string">
                                                <xsd:maxLength value="5" />
                                              </xsd:restriction>
                                            </xsd:simpleType>
                                          </xsd:element>
                                          <xsd:element name="MCQtyPerUOM" type="xsd:decimal" minOccurs="0" />
                                          <xsd:element name="MCUOM" minOccurs="0">
                                            <xsd:simpleType>
                                              <xsd:restriction base="xsd:string">
                                                <xsd:maxLength value="5" />
                                              </xsd:restriction>
                                            </xsd:simpleType>
                                          </xsd:element>
                                          <xsd:element name="SupplierItemId" minOccurs="0">
                                            <xsd:simpleType>
                                              <xsd:restriction base="xsd:string">
                                                <xsd:maxLength value="25" />
                                              </xsd:restriction>
                                            </xsd:simpleType>
                                          </xsd:element>
                                          <xsd:element name="BarCodeId">
                                            <xsd:simpleType>
                                              <xsd:restriction base="xsd:string">
                                                <xsd:maxLength value="14" />
                                              </xsd:restriction>
                                            </xsd:simpleType>
                                          </xsd:element>
                                          <xsd:element name="BarCodeType" minOccurs="0">
                                            <xsd:simpleType>
                                              <xsd:restriction base="xsd:string">
                                                <xsd:enumeration value="GTIN-12" />
                                                <xsd:enumeration value="GTIN-13" />
                                                <xsd:enumeration value="GTIN-14" />
                                                <xsd:enumeration value="PartNumber" />
                                              </xsd:restriction>
                                            </xsd:simpleType>
                                          </xsd:element>
                                          <xsd:element name="DateBeginShip" type="xsd:date" minOccurs="0" />
                                          <xsd:element name="DateEndShip" type="xsd:date" minOccurs="0" />
                                          <xsd:element name="DateCancel" type="xsd:date" minOccurs="0" />

			<xsd:element name="TranspCode" minOccurs="0">
                        <xsd:simpleType>
                          <xsd:restriction base="xsd:string">
                            <xsd:maxLength value="15" />
                          </xsd:restriction>
                        </xsd:simpleType>
                      </xsd:element>

					<xsd:element name="ShipTo" minOccurs="0">
								<xsd:complexType>
									<xsd:sequence>
										<xsd:element name="PartyId">
											<xsd:simpleType>
												<xsd:restriction base="xsd:string">
													<xsd:maxLength value="50"/>
												</xsd:restriction>
											</xsd:simpleType>
										</xsd:element>
										<xsd:element name="Name" minOccurs="0">
											<xsd:simpleType>
												<xsd:restriction base="xsd:string">
													<xsd:maxLength value="35"/>
												</xsd:restriction>
											</xsd:simpleType>
										</xsd:element>
										<xsd:element name="Address">
											<xsd:complexType>
												<xsd:sequence>
													<xsd:element name="Attn" minOccurs="0">
														<xsd:simpleType>
															<xsd:restriction base="xsd:string">
																<xsd:maxLength value="35"/>
															</xsd:restriction>
														</xsd:simpleType>
													</xsd:element>
													<xsd:element name="Address1" minOccurs="0">
														<xsd:simpleType>
															<xsd:restriction base="xsd:string">
																<xsd:maxLength value="35"/>
															</xsd:restriction>
														</xsd:simpleType>
													</xsd:element>
													<xsd:element name="Address2" minOccurs="0">
														<xsd:simpleType>
															<xsd:restriction base="xsd:string">
																<xsd:maxLength value="35"/>
															</xsd:restriction>
														</xsd:simpleType>
													</xsd:element>
													<xsd:element name="Address3" minOccurs="0">
														<xsd:simpleType>
															<xsd:restriction base="xsd:string">
																<xsd:maxLength value="35"/>
															</xsd:restriction>
														</xsd:simpleType>
													</xsd:element>
													<xsd:element name="City" minOccurs="0">
														<xsd:simpleType>
															<xsd:restriction base="xsd:string">
																<xsd:maxLength value="30"/>
															</xsd:restriction>
														</xsd:simpleType>
													</xsd:element>
													<xsd:element name="State" minOccurs="0">
														<xsd:simpleType>
															<xsd:restriction base="xsd:string">
																<xsd:maxLength value="2"/>
															</xsd:restriction>
														</xsd:simpleType>
													</xsd:element>
													<xsd:element name="PostalCode" minOccurs="0">
														<xsd:simpleType>
															<xsd:restriction base="xsd:string">
																<xsd:maxLength value="9"/>
															</xsd:restriction>
														</xsd:simpleType>
													</xsd:element>
													<xsd:element name="Country" minOccurs="0">
														<xsd:simpleType>
															<xsd:restriction base="xsd:string">
																<xsd:maxLength value="50"/>
															</xsd:restriction>
														</xsd:simpleType>
													</xsd:element>
													<xsd:element name="CountryCode" minOccurs="0">
														<xsd:simpleType>
															<xsd:restriction base="xsd:string">
																<xsd:maxLength value="2"/>
															</xsd:restriction>
														</xsd:simpleType>
													</xsd:element>
												</xsd:sequence>
											</xsd:complexType>
										</xsd:element>
									</xsd:sequence>
								</xsd:complexType>
							</xsd:element>
                                        </xsd:sequence>
                                      </xsd:restriction>
                                    </xsd:complexContent>
                                  </xsd:complexType>
                                </xsd:element>
                              </xsd:sequence>
                            </xsd:restriction>
                          </xsd:complexContent>
                        </xsd:complexType>
                      </xsd:element>
                    </xsd:sequence>
                  </xsd:restriction>
                </xsd:complexContent>
              </xsd:complexType>
            </xsd:element>
          </xsd:sequence>
          <xsd:attribute name="version" type="xsd:decimal" use="required" fixed="2015.1" />
        </xsd:restriction>
      </xsd:complexContent>
    </xsd:complexType>
  </xsd:element>
</xsd:schema>

PO Status Request Schema

Download POStatusRequest-v2015.1.xsd

<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns="http://namm.org/b2b/2015/schemas"
           targetNamespace="http://namm.org/b2b/2015/schemas" elementFormDefault="qualified">
  <xs:element name="NAMM_POStatusRequest">
    <xs:complexType>
      <xs:sequence>
        <xs:element name="Timestamp"
                    type="xs:dateTime" />
        <xs:element name="Id"
                    type="xs:string" />
        <xs:element name="Supplier">
          <xs:complexType>
            <xs:sequence>
              <xs:element name="PartyId"
                          type="xs:decimal" />
            </xs:sequence>
          </xs:complexType>
        </xs:element>
        <xs:element name="SoldTo">
          <xs:complexType>
            <xs:sequence>
              <xs:element name="PartyId"
                          type="xs:decimal" />
            </xs:sequence>
          </xs:complexType>
        </xs:element>
        <xs:element name="BuyerOrderIds">
          <xs:complexType>
            <xs:sequence>
              <xs:element maxOccurs="unbounded"
                          name="BuyerOrderId"
                          type="xs:int" />
            </xs:sequence>
          </xs:complexType>
        </xs:element>
      </xs:sequence>
      <xs:attribute name="version"
                    use="required"
                    type="xs:decimal"
                    fixed="2015.1" />
    </xs:complexType>
  </xs:element>
</xs:schema>

PO Status / Det Ack Schema

Download POStatus_v2015.1.xsd

<?xml version="1.0" encoding="utf-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns="http://namm.org/b2b/2015/schemas" targetNamespace="http://namm.org/b2b/2015/schemas" elementFormDefault="qualified">
  <xs:element name="NAMM_POStatus">
    <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="POStatusRequestId">
	<xs:simpleType>
		<xs:restriction base="xs:string">
		<xs:maxLength value="50"/>
		</xs:restriction>
	</xs:simpleType>
	</xs:element>
        <xs:element name="Timestamp" type="xs:dateTime" />
        <xs:element name="BuyerOrderId">
	<xs:simpleType>
		<xs:restriction base="xs:string">
		<xs:maxLength value="25"/>
		</xs:restriction>
	</xs:simpleType>
	</xs:element>
        <xs:element name="DateOrdered" type="xs:date" />
        <xs:element name="BuyerName" type="xs:string"/>
        <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" minOccurs="0">
											<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="SoldTo">
								<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" minOccurs="0">
											<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="StatusCode" type="xs:string"/>
        <xs:element name="PaymentTerms">
          <xs:complexType>
            <xs:sequence>
              <xs:element name="StatusCode" type="xs:string" />
              <xs:element name="StatusMessage" type="xs:string" />
              <xs:element name="TermsCode">
                <xs:simpleType>
                  <xs:restriction base="xs:string">
                    <xs:maxLength value="15"/>
                  </xs:restriction>
                </xs:simpleType>
              </xs:element>
            </xs:sequence>
          </xs:complexType>
        </xs:element>
        <xs:element name="ShipmentTerms">
          <xs:complexType>
            <xs:sequence>
              <xs:element name="StatusCode" type="xs:string" minOccurs="0"/>
            </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" minOccurs="0">
											<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="Items">
          <xs:complexType>
            <xs:sequence>
              <xs:element maxOccurs="unbounded" name="Item">
                <xs:complexType>
                  <xs:sequence>
                    <xs:element name="POLineNbr" type="xs:integer" />
                    <xs:element name="SequenceNbr" type="xs:integer" />
                    <xs:element name="StatusCode" type="xs:string" />
                    <xs:element name="StatusMessage" type="xs:string" />
                    <xs:element name="Qty" type="xs:decimal" />
                    <xs:element name="OriginalOrderQty" type="xs:decimal" />
                    <xs:element name="QtyUOM" type="xs:string" />
                    <xs:element name="UCValue" type="xs:decimal" />
                    <xs:element name="OriginalOrderUCValue" type="xs:decimal" />
                    <xs:element name="UCCurrencyCode" type="xs:string" />
                    <xs:element name="EstimatedShipDate" type="xs:date" minOccurs="0"/>
                    <xs:element name="SupplierOrderId" type="xs:string" />
                    <xs:element name="BuyerItemId" type="xs:string" />
                    <xs:element name="SupplierItemId" type="xs:string" />
                    <xs:element name="BarCodeId" type="xs:string" />
                    <xs:element name="BarCodeType" type="xs:string" />

                  <xs:element name="ShipTo" minOccurs="0">
								<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" minOccurs="0">
											<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:sequence>
                </xs:complexType>
              </xs:element>
            </xs:sequence>
          </xs:complexType>
        </xs:element>
      </xs:sequence>
      <xs:attribute name="version" type="xs:decimal" use="required" fixed="2015.1"/>
    </xs:complexType>
  </xs:element>
</xs:schema>

Advance Shipping Notice Schema

Download ASN_v2015.1.xsd

<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns="http://namm.org/b2b/2015/schemas" 
           targetNamespace="http://namm.org/b2b/2015/schemas" elementFormDefault="qualified">
	<xs:element name="NAMM_ASN">
		<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:dateTime"/>
				<xs:element name="ShipmentHeader">
					<xs:complexType>
						<xs:sequence>
							<xs:element name="ShipmentType" minOccurs="0">
								<xs:simpleType>
									<xs:restriction base="xs:string">
										<xs:maxLength value="25"/>
									</xs:restriction>
								</xs:simpleType>
							</xs:element>
							<xs:element name="ShipmentId">
								<xs:simpleType>
									<xs:restriction base="xs:string">
										<xs:maxLength value="25"/>
									</xs:restriction>
								</xs:simpleType>
							</xs:element>
							<xs:element name="Shipped" type="xs:date" minOccurs="0"/>
							<xs:element name="EstDeliver" type="xs:date" minOccurs="0"/>
							<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" minOccurs="0">
											<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="ShipFrom">
								<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="ShipmentRefs">
								<xs:complexType>
									<xs:sequence>
										<xs:element name="MasterBOL" minOccurs="0">
											<xs:simpleType>
												<xs:restriction base="xs:string">
													<xs:maxLength value="25"/>
												</xs:restriction>
											</xs:simpleType>
										</xs:element>
										<xs:element name="PRONbr" minOccurs="0">
											<xs:simpleType>
												<xs:restriction base="xs:string">
													<xs:maxLength value="25"/>
												</xs:restriction>
											</xs:simpleType>
										</xs:element>
										<xs:element name="ConfNbr" minOccurs="0">
											<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="ShipmentQty">
								<xs:complexType>
									<xs:sequence>
										<xs:element name="ContainerQty" type="xs:integer"/>
										<xs:element name="ShipmentItemQty" type="xs:integer" minOccurs="0"/>
									</xs:sequence>
								</xs:complexType>
							</xs:element>
							<xs:element name="Volume" minOccurs="0">
								<xs:complexType>
									<xs:sequence>
										<xs:element name="VolumeValue" type="xs:decimal" minOccurs="0"/>
										<xs:element name="VolumeUOMCode" minOccurs="0">
											<xs:simpleType>
												<xs:restriction base="xs:string">
													<xs:maxLength value="5"/>
												</xs:restriction>
											</xs:simpleType>
										</xs:element>
										<xs:element name="VolumeUOMDesc" minOccurs="0">
											<xs:simpleType>
												<xs:restriction base="xs:string">
													<xs:maxLength value="15"/>
												</xs:restriction>
											</xs:simpleType>
										</xs:element>
									</xs:sequence>
								</xs:complexType>
							</xs:element>
							<xs:element name="Weight" minOccurs="0">
								<xs:complexType>
									<xs:sequence>
										<xs:element name="WeightValue" type="xs:decimal" minOccurs="0"/>
										<xs:element name="WeightUOMCode" minOccurs="0">
											<xs:simpleType>
												<xs:restriction base="xs:string">
													<xs:maxLength value="5"/>
												</xs:restriction>
											</xs:simpleType>
										</xs:element>
										<xs:element name="WeightUOMDesc" minOccurs="0">
											<xs:simpleType>
												<xs:restriction base="xs:string">
													<xs:maxLength value="15"/>
												</xs:restriction>
											</xs:simpleType>
										</xs:element>
									</xs:sequence>
								</xs:complexType>
							</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="SoldTo">
								<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="Vehicle" minOccurs="0">
								<xs:complexType>
									<xs:sequence>
										<xs:element name="VehicleId" minOccurs="0">
											<xs:simpleType>
												<xs:restriction base="xs:string">
													<xs:maxLength value="25"/>
												</xs:restriction>
											</xs:simpleType>
										</xs:element>
										<xs:element name="VehicleType" type="xs:string" minOccurs="0"/>
										<xs:element name="SealId" minOccurs="0">
											<xs:simpleType>
												<xs:restriction base="xs:string">
													<xs:maxLength value="25"/>
												</xs:restriction>
											</xs:simpleType>
										</xs:element>
									</xs:sequence>
								</xs:complexType>
							</xs:element>
						</xs:sequence>
					</xs:complexType>
				</xs:element>
				<xs:element name="Orders">
					<xs:complexType>
						<xs:sequence>
							<xs:element name="Order" 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="Containers">
											<xs:complexType>
												<xs:sequence>
													<xs:element name="Container" maxOccurs="unbounded">
														<xs:complexType>
															<xs:sequence>
																<xs:element name="ContainerId" minOccurs="0">
																	<xs:simpleType>
																		<xs:restriction base="xs:string">
																			<xs:maxLength value="25"/>
																		</xs:restriction>
																	</xs:simpleType>
																</xs:element>
																<xs:element name="ShipperTrackingNumber" minOccurs="0">
																	<xs:simpleType>
																		<xs:restriction base="xs:string">
																			<xs:maxLength value="25"/>
																		</xs:restriction>
																	</xs:simpleType>
																</xs:element>
																<xs:element minOccurs="0" name="Length" type="xs:decimal" />
                    														<xs:element minOccurs="0" name="Width" type="xs:decimal" />
                    														<xs:element minOccurs="0" name="Height" type="xs:decimal" />
                    														<xs:element minOccurs="0" name="DimUOM" type="xs:string" />
																<xs:element minOccurs="0" name="Weight" type="xs:decimal" />
                    														<xs:element minOccurs="0" name="WeightUOM" type="xs:string" />

																<xs:element name="Item" maxOccurs="unbounded">
																	<xs:complexType>
																		<xs:sequence>
																			<xs:element name="ItemId">
																				<xs:complexType>
																					<xs:sequence>
																						<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:element name="BuyerItemId">
																							<xs:simpleType>
																								<xs:restriction base="xs:string">
																									<xs:maxLength value="25"/>
																								</xs:restriction>
																							</xs:simpleType>
																						</xs:element>
																						<xs:element name="BuyerItemDesc" minOccurs="0">
																							<xs:simpleType>
																								<xs:restriction base="xs:string">
																									<xs:maxLength value="50"/>
																								</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" minOccurs="0">
																							<xs:simpleType>
																								<xs:restriction base="xs:string">
																									<xs:maxLength value="50"/>
																								</xs:restriction>
																							</xs:simpleType>
																						</xs:element>
																					</xs:sequence>
																				</xs:complexType>
																			</xs:element>
																			<xs:element name="POLineNbr" type="xs:integer"/>
																			<xs:element name="ItemQty">
																				<xs:complexType>
																					<xs:sequence>
																						<xs:element name="Qty" type="xs:decimal"/>
																						<xs:element name="ItemUOMCode" minOccurs="0">
																							<xs:simpleType>
																								<xs:restriction base="xs:string">
																									<xs:maxLength value="5"/>
																								</xs:restriction>
																							</xs:simpleType>
																						</xs:element>
																						<xs:element name="ItemUOMDesc" minOccurs="0">
																							<xs:simpleType>
																								<xs:restriction base="xs:string">
																									<xs:maxLength value="15"/>
																								</xs:restriction>
																							</xs:simpleType>
																						</xs:element>
																					</xs:sequence>
																				</xs:complexType>
																			</xs:element>
																			<xs:element name="ItemAttrs" minOccurs="0">
																				<xs:complexType>
																					<xs:sequence>
																						<xs:element name="SerialNbrs" minOccurs="0">
																							<xs:complexType>
																								<xs:sequence>
																									<xs:element name="SerialNbr" minOccurs="0">
																										<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="StdPack" minOccurs="0">
																							<xs:complexType>
																								<xs:sequence>
																									<xs:element name="ICQtyPerUOM" type="xs:decimal" minOccurs="0"/>
																									<xs:element name="ICUOM" minOccurs="0">
																										<xs:simpleType>
																											<xs:restriction base="xs:string">
																												<xs:maxLength value="5"/>
																											</xs:restriction>
																										</xs:simpleType>
																									</xs:element>
																									<xs:element name="StdPackType" type="xs:string" minOccurs="0"/>
																								</xs:sequence>
																							</xs:complexType>
																						</xs:element>
																						<xs:element name="StdContainer" minOccurs="0">
																							<xs:complexType>
																								<xs:sequence>
																									<xs:element name="MCQtyPerUOM" type="xs:decimal" minOccurs="0"/>
																									<xs:element name="MCUOM" minOccurs="0">
																										<xs:simpleType>
																											<xs:restriction base="xs:string">
																												<xs:maxLength value="5"/>
																											</xs:restriction>
																										</xs:simpleType>
																									</xs:element>
																									<xs:element name="StdContainerType" type="xs:string" minOccurs="0"/>
																								</xs:sequence>
																							</xs:complexType>
																						</xs:element>
																					</xs:sequence>
																				</xs:complexType>
																			</xs:element>
																		</xs:sequence>
																	</xs:complexType>
																</xs:element>
															</xs:sequence>
														</xs:complexType>
													</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" type="xs:decimal" use="required" fixed="2015.1"/>
		</xs:complexType>
	</xs:element>
</xs:schema>

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>

Sell Through Schema

Download SellThrough-v2012.1.xsd

<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns="http://namm.org/b2b/2015/schemas"
           targetNamespace="http://namm.org/b2b/2015/schemas" elementFormDefault="qualified">
  <xs:element name="NAMM_SELLTHROUGH">
    <xs:complexType>
      <xs:sequence>
        <xs:element name="Id"
                    type="xs:string" />
        <xs:element name="Timestamp"
                    type="xs:dateTime" />
        <xs:element name="StartDate"
                    type="xs:date" />
        <xs:element name="EndDate"
                    type="xs:date" />
        <xs:element name="SoldTo">
          <xs:complexType>
            <xs:sequence>
              <xs:element name="PartyId"
                          type="xs:string" />
              <xs:element name="Name"
                          type="xs:string"
                          minOccurs="0" />
              <xs:element name="Address"
                          minOccurs="0">
                <xs:complexType>
                  <xs:sequence>
                    <xs:element name="Attn"
                                minOccurs="0"
                                type="xs:string" />
                    <xs:element name="Address1"
                                minOccurs="0"
                                type="xs:string" />
                    <xs:element name="Address2"
                                minOccurs="0"
                                type="xs:string" />
                    <xs:element name="Address3"
                                minOccurs="0"
                                type="xs:string" />
                    <xs:element name="City"
                                minOccurs="0"
                                type="xs:string" />
                    <xs:element name="State"
                                minOccurs="0"
                                type="xs:string" />
                    <xs:element name="PostalCode"
                                minOccurs="0"
                                type="xs:int" />
                    <xs:element name="Country"
                                minOccurs="0"
                                type="xs:string" />
                    <xs:element name="CountryCode"
                                minOccurs="0"
                                type="xs:string" />
                  </xs:sequence>
                </xs:complexType>
              </xs:element>
            </xs:sequence>
          </xs:complexType>
        </xs:element>
        <xs:element name="Supplier">
          <xs:complexType>
            <xs:sequence>
              <xs:element name="PartyId"
                          type="xs:string" />
              <xs:element name="Name"
                          type="xs:string"
                          minOccurs="0" />
              <xs:element name="Address"
                          minOccurs="0">
                <xs:complexType>
                  <xs:sequence>
                    <xs:element name="Attn"
                                minOccurs="0"
                                type="xs:string" />
                    <xs:element name="Address1"
                                minOccurs="0"
                                type="xs:string" />
                    <xs:element name="Address2"
                                minOccurs="0"
                                type="xs:string" />
                    <xs:element name="Address3"
                                minOccurs="0"
                                type="xs:string" />
                    <xs:element name="City"
                                minOccurs="0"
                                type="xs:string" />
                    <xs:element name="State"
                                minOccurs="0"
                                type="xs:string" />
                    <xs:element name="PostalCode"
                                minOccurs="0"
                                type="xs:int" />
                    <xs:element name="Country"
                                minOccurs="0"
                                type="xs:string" />
                    <xs:element name="CountryCode"
                                minOccurs="0"
                                type="xs:string" />
                  </xs:sequence>
                </xs:complexType>
              </xs:element>
            </xs:sequence>
          </xs:complexType>
        </xs:element>
        <xs:element name="Locations">
          <xs:complexType>
            <xs:sequence>
              <xs:element name="Location">
                <xs:complexType>
                  <xs:sequence>
                    <xs:element name="Items">
                      <xs:complexType>
                        <xs:sequence>
                          <xs:element name="Item">
                            <xs:complexType>
                              <xs:sequence>
                                <xs:element name="BuyerItemId"
                                             type="xs:string" />
                                <xs:element name="SupplierItemId"
                                             type="xs:string" />
                                <xs:element name="BarCodeId"
                                             type="xs:decimal" />
                                <xs:element name="BarCodeType"
                                             type="xs:string" />
                                <xs:element name="Qty"
                                             type="xs:int" />
                                <xs:element name="QtyUOM"
                                             type="xs:string" />
                                <xs:element name="SalesTotal"
                                             type="xs:int" />
                                <xs:element name="SalesTotalCurrencyCode"
                                             type="xs:string" />
                                <xs:element name="QtyOnHand" minOccurs="0"
                                             type="xs:int" />
                              </xs:sequence>
                            </xs:complexType>
                          </xs:element>
                        </xs:sequence>
                      </xs:complexType>
                    </xs:element>
                  </xs:sequence>
                  <xs:attribute name="LocationID"
                                 type="xs:decimal" />
                </xs:complexType>
              </xs:element>
            </xs:sequence>
          </xs:complexType>
        </xs:element>
      </xs:sequence>
      <xs:attribute name="version"
                    use="required"
                    type="xs:decimal"
                    fixed="2012.1" />
    </xs:complexType>
  </xs:element>
</xs:schema>

Electronic Delivery Schema

Download ElectronicDelivery-v2015.1.xsd

<?xml version="1.0" encoding="utf-8"?>
<xs:schema xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"
           xmlns:xs="http://www.w3.org/2001/XMLSchema" attributeFormDefault="unqualified" elementFormDefault="qualified" 
           targetNamespace="http://namm.org/b2b/2015/schemas">
  <xsd:element name="NAMM_ElectronicDeliveryResponse">
    <xsd:complexType>
      <xsd:sequence>
        <xsd:element name="Timestamp" type="xsd:dateTime" />
        <xsd:element name="POId" type="xsd:string" />
        <xsd:element name="BuyerOrderId" type="xsd:string" />
        <xsd:element name="StatusCode" type="xsd:string" />
        <xsd:element name="StatusMessage" type="xsd:string" />
        <xsd:element name="Items">
          <xsd:complexType>
            <xsd:sequence>
              <xsd:element maxOccurs="unbounded" name="Item">
                <xsd:complexType>
                  <xsd:sequence>
                    <xsd:element name="SupplierItemId" type="xsd:string" />
                    <xsd:element name="POLineNbr" type="xsd:int" />
                    <xsd:element name="BarCodeId" type="xsd:string" />
                    <xsd:element name="BarCodeType" type="xsd:string" />
                    <xsd:element name="Qty" type="xsd:int" />
                    <xsd:element name="QtyUOM" type="xsd:string" />
                    <xsd:element name="UCValue" type="xsd:decimal" />
                    <xsd:element name="UCCurrencyCode" type="xsd:string" />
                    <xsd:element name="DownloadPath" type="xsd:string" />
                    <xsd:element name="SupportContact" type="xsd:string" />
                    <xsd:element name="Licenses">
                      <xsd:complexType>
                        <xsd:sequence>
                          <xsd:element name="License" type="xsd:string" />
                        </xsd:sequence>
                      </xsd:complexType>
                    </xsd:element>
                  </xsd:sequence>
                </xsd:complexType>
              </xsd:element>
            </xsd:sequence>
          </xsd:complexType>
        </xsd:element>
      </xsd:sequence>
      <xsd:attribute name="version" type="xsd:decimal" use="required" fixed="2015.1" />
    </xsd:complexType>
  </xsd:element>
</xs:schema>

Payment Advice Schema

Download PaymentAdvice-v2015.1.xsd

<?xml version="1.0" encoding="utf-8"?>
<xs:schema xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xs="http://www.w3.org/2001/XMLSchema" attributeFormDefault="unqualified" elementFormDefault="qualified" targetNamespace="http://namm.org/b2b/2015/schemas">
  <xsd:element name="NAMM_PaymentAdvice">
    <xsd:complexType>
      <xsd:sequence>
        <xsd:element name="Id" type="xsd:string" />
        <xsd:element name="TradingPartnerInfo">
          <xsd:complexType>
            <xsd:sequence>
              <xsd:element name="SenderID" type="xsd:string" />
              <xsd:element name="SenderName" type="xsd:string" />
              <xsd:element name="ReceiverID" type="xsd:string" />
              <xsd:element name="ReceiverName" type="xsd:string" />
            </xsd:sequence>
          </xsd:complexType>
        </xsd:element>
        <xsd:element name="Supplier">
          <xsd:complexType>
            <xsd:sequence>
              <xsd:element name="PartyId" type="xsd:string" />
              <xsd:element name="Name" type="xsd:string" />
              <xsd:element name="Address">
                <xsd:complexType>
                  <xsd:sequence>
                    <xsd:element name="Attn" type="xsd:string" />
                    <xsd:element name="Address1" type="xsd:string" />
                    <xsd:element name="Address2" type="xsd:string"/>
                    <xsd:element name="Address3" type="xsd:string"/>
                    <xsd:element name="City" type="xsd:string" />
                    <xsd:element name="State" type="xsd:string" />
                    <xsd:element name="PostalCode" type="xsd:string" />
                    <xsd:element name="Country" type="xsd:string" />
                    <xsd:element name="CountryCode" type="xsd:string" />
                  </xsd:sequence>
                </xsd:complexType>
              </xsd:element>
            </xsd:sequence>
          </xsd:complexType>
        </xsd:element>
        <xsd:element name="SoldTo">
          <xsd:complexType>
            <xsd:sequence>
              <xsd:element name="PartyId" type="xsd:string" />
              <xsd:element name="Name" type="xsd:string" />
              <xsd:element name="Address">
                <xsd:complexType>
                  <xsd:sequence>
                    <xsd:element name="Attn" type="xsd:string" />
                    <xsd:element name="Address1" type="xsd:string" />
                    <xsd:element name="Address2" type="xsd:string" />
                    <xsd:element name="Address3" type="xsd:string" />
                    <xsd:element name="City" type="xsd:string" />
                    <xsd:element name="State" type="xsd:string" />
                    <xsd:element name="PostalCode" type="xsd:string" />
                    <xsd:element name="Country" type="xsd:string" />
                    <xsd:element name="CountryCode" type="xsd:string" />
                  </xsd:sequence>
                </xsd:complexType>
              </xsd:element>
            </xsd:sequence>
          </xsd:complexType>
        </xsd:element>
        <xsd:element name="TotalPayment" type="xsd:decimal" />
        <xsd:element name="CurrencyCode" type="xsd:string" />
        <xsd:element name="PaymentType" type="xsd:string" />
        <xsd:element name="PaymentDate" type="xsd:date" />
        <xsd:element name="Reference" type="xsd:string" />
        <xsd:element name="Timestamp" type="xsd:dateTime" />
        <xsd:element name="BuyerName" type="xsd:string" />
        <xsd:element name="PaymentAdvice">
          <xsd:complexType>
            <xsd:sequence>
              <xsd:element maxOccurs="unbounded" name="PaymentStatus">
                <xsd:complexType>
                  <xsd:sequence>
                    <xsd:element minOccurs="0" name="Note" type="xsd:string"/>
                    <xsd:element name="BuyerOrderId" type="xsd:string" />
                    <xsd:element name="DateOrdered" type="xsd:date" />
                    <xsd:element name="PaymentAmount" type="xsd:decimal" />
                    <xsd:element name="InvoiceNumber" type="xsd:string" />
                    <xsd:element name="InvoiceAmount" type="xsd:decimal" />
                  </xsd:sequence>
                </xsd:complexType>
              </xsd:element>
            </xsd:sequence>
          </xsd:complexType>
        </xsd:element>
      </xsd:sequence>
      <xsd:attribute name="version" type="xsd:decimal" use="required"  fixed="2015.1"/>
    </xsd:complexType>
  </xsd:element>
</xs:schema>

Sample Documents

Usage Note

Below are samples of each XML document in the NAMM B2B standard, containing correctly coded tags and example data. Note that while these samples may contain some accurate-looking partner information, they are not actual partner documents and should not be construed as such. Use these sample documents as examples of how each document type might be coded. Note that while all required elements are present in these examples, optional elements may or may not be included.

Party Example

Download Party-v2009.1.xml

<?xml version="1.0" encoding="utf-8"?>
<NAMM_PARTY version="2009.1">
  <RevisionDate>2008-08-13T08:32:00</RevisionDate>
  <TradingPartner>
    <PartyId>NAMM000000123999*00000</PartyId>
    <PartyIdType>NAMM</PartyIdType>
    <Name>Roland Corporation U.S.</Name>
    <URL>http://www.rolandus.com</URL>
    <Locations>
      <Location>
        <PartyId>NAMM000000123999*00001</PartyId>
        <PartyIdType>NAMM</PartyIdType>
        <Description>Main</Description>
        <Name>Roland Corporation U.S.</Name>
        <Address>
          <Address1>5100 S. Eastern Ave.</Address1>
          <City>Los Angeles</City>
          <State>CA</State>
          <PostalCode>90040</PostalCode>
          <Country>USA</Country>
          <CountryCode>US</CountryCode>
        </Address>
        <Phone>3238903700</Phone>
        <Fax>3238903701</Fax>
        <Email>sales@rolandus.com</Email>
      </Location>
      <Location>
        <PartyId>NAMM000000123999*00002</PartyId>
        <PartyIdType>NAMM</PartyIdType>
        <Description>Shipping Receiving</Description>
        <Name>Roland Corporation U.S.</Name>
        <Address>
          <Attn />
          <Address1>4901 Alexander Street</Address1>
          <City>Los Angeles</City>
          <State>CA</State>
          <PostalCode>90040</PostalCode>
          <Country>USA</Country>
          <CountryCode>US</CountryCode>
        </Address>
        <Phone>3238903700</Phone>
        <Fax>3238903701</Fax>
        <Email>receiving@rolandus.com</Email>
      </Location>
    </Locations>
  </TradingPartner>
</NAMM_PARTY>

Item Example

Download Item-v2015.1.xml

<?xml version="1.0" encoding="UTF-8" ?> 
<NAMM_ITEM xmlns="http://namm.org/b2b/2015/schemas" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xs="http://www.w3.org/2001/XMLSchema" version="2015.1" xsi:schemaLocation="http://namm.org/b2b/2015/schemas Item_v2015.1.xsd">
  <Timestamp>2014-10-18T15:52:29.073</Timestamp>
  <Id>03C8CA92-6413-4B7E-B5B1-F6903AD8327A</Id>
  <SupplierId>0670716000009</SupplierId>
  <Items>
    <Item>
      <SupplierItemId>SP170WH</SupplierItemId>
      <SupplierModel>SP170WH</SupplierModel>
      <SupplierItemDesc>Piano, pure and simple</SupplierItemDesc>
      <Kit>N</Kit>
      <Serialized>Y</Serialized>
      <BrandName>KORG</BrandName>
      <CountryOrigin>CN</CountryOrigin>
      <Length>0.0000</Length>
      <Width>0.0000</Width>
      <Height>0.0000</Height>
      <DimUOM>IN</DimUOM>
      <Weight>0</Weight>
      <WeightUOM>LBS</WeightUOM>
      <AnnounceDate>2009-12-15</AnnounceDate>
      <AvailableDate>2009-12-15</AvailableDate>
      <UnavailableDate>2011-05-23</UnavailableDate>
      <WarrantyPartTerm>365</WarrantyPartTerm>
      <WarrantyPartUOM>Day</WarrantyPartUOM>
      <WarrantyLabTerm>0</WarrantyLabTerm>
      <WarrantyLabUOM>Day</WarrantyLabUOM>
      <Barcodes>
        <Barcode>
          <ID>4959112073463</ID>
          <Type>GTIN-13</Type>
        </Barcode>
      </Barcodes>
      <Pricing>
        <Price type="MSRP" Currency="USD">600.00</Price>
        <Price type="MAP" Currency="USD">500.00</Price>
        <Price type="Cost" Currency="USD" Qty="1">250.00</Price>
      </Pricing>
      <Containers>
        <Container>
          <Type>Each</Type>
          <Length>57.2500</Length>
          <Width>17.2500</Width>
          <Height>8.2500</Height>
          <DimUOM>IN</DimUOM>
          <Weight>33.7500</Weight>
          <WeightUOM>LBS</WeightUOM>
          <UOM>EA</UOM>
          <QtyPerUOM>1</QtyPerUOM>
          <Barcodes>
            <Barcode>
              <ID>4959112073463</ID>
              <Type>GTIN-13</Type>
            </Barcode>
          </Barcodes>
        </Container>
      </Containers>
      <MarketingInfo>
        <PrimaryCategory>4018162506</PrimaryCategory>
        <ProductURL>www.korg.com/sp170</ProductURL>
        <ItemDescLong>Offering an affordable, portable and rewarding piano solution, the streamlined SP-170 features an authentic piano feel and 10 captivating sounds - including two superb grands - to satisfy the student, novice, or seasoned player. The clean, fresh design omits the traditional control panel, emphasizing instead the comfortable keyboard and satisfying sound.</ItemDescLong>
        <Bullets>
          <Bullet>Korg's 88-key Natural Weighted Hammer Action (NH) keyboard offers a true piano touch</Bullet>
          <Bullet>10 Sounds: Piano x 2; E. Piano x 2; Harpsichord; Clavi; Vibraphone; Pipe Organ; Jazz Organ; Strings</Bullet>
          <Bullet>Reverb + Chorus effects; Transpose; Pitch Control; MIDI functions (MIDI Out); Damper pedal included</Bullet>
          <Bullet>Built-in sound system: 9 Watt stereo amplifier, 2 full-range speakers; 2 line/headphone outputs</Bullet>
          <Bullet>Elegant white finish; optional matching wooden stand (SPST-1W-WH) available</Bullet>
        </Bullets>
        <Media>
          <Images>
            <Image Audience="Consumer" View="Primary">http://dealers.korgusa.com/images/product/SP170WH.png</Image>
          </Images>
        </Media>
      </MarketingInfo>
      <RelatedItems>
        <RelatedItem included="Y" type="accessory">
          <SupplierItemId>405016000</SupplierItemId>
          <Barcode>
            <ID>4959112073463</ID>
            <Type>GTIN-13</Type>
          </Barcode>
        </RelatedItem>
        <RelatedItem included="Y" type="accessory">
          <SupplierItemId>500600006510</SupplierItemId>
          <Barcode>
            <ID>4959112073463</ID>
            <Type>GTIN-13</Type>
          </Barcode>
        </RelatedItem>
        <RelatedItem included="N" type="accessory">
          <SupplierItemId>510C9018</SupplierItemId>
          <Barcode>
            <ID>4959112073463</ID>
            <Type>GTIN-13</Type>
          </Barcode>
        </RelatedItem>
      </RelatedItems>
      <Availability>
        <Available>YES</Available>
      </Availability>
    </Item>

    <Item>
      <SupplierItemId>SPST1WWH</SupplierItemId>
      <SupplierModel>SPST1WWH</SupplierModel>
      <SupplierItemDesc>White stand for SP170WH</SupplierItemDesc>
      <Kit>N</Kit>
      <KitComponentOnly>Y</KitComponentOnly>
      <Serialized>N</Serialized>
      <BrandName>KORG</BrandName>
      <CountryOrigin>CN</CountryOrigin>
      <Length>0.0000</Length>
      <Width>0.0000</Width>
      <Height>0.0000</Height>
      <DimUOM>IN</DimUOM>
      <Weight>0</Weight>
      <WeightUOM>LBS</WeightUOM>
      <AnnounceDate>2009-12-15</AnnounceDate>
      <AvailableDate>2009-12-15</AvailableDate>
      <WarrantyPartTerm>365</WarrantyPartTerm>
      <WarrantyPartUOM>Day</WarrantyPartUOM>
      <WarrantyLabTerm>0</WarrantyLabTerm>
      <WarrantyLabUOM>Day</WarrantyLabUOM>
      <Barcodes>
        <Barcode>
          <ID>4959112073487</ID>
          <Type>GTIN-13</Type>
        </Barcode>
      </Barcodes>
      <Pricing>
        <Price type="MSRP" Currency="USD">125.00</Price>
        <Price type="MAP" Currency="USD">62.00</Price>
        <Price type="Cost" Currency="USD" Qty="1">31.00</Price>
      </Pricing>
      <Containers>
        <Container>
          <Type>Each</Type>
          <Length>57.2500</Length>
          <Width>17.6250</Width>
          <Height>4.0200</Height>
          <DimUOM>IN</DimUOM>
          <Weight>24.7000</Weight>
          <WeightUOM>LBS</WeightUOM>
          <UOM>EA</UOM>
          <QtyPerUOM>1</QtyPerUOM>
          <Barcodes>
            <Barcode>
              <ID>4959112073487</ID>
              <Type>GTIN-13</Type>
            </Barcode>
          </Barcodes>
        </Container>
      </Containers>
      <MarketingInfo>
        <PrimaryCategory>1018176583</PrimaryCategory>
        <Bullets />
        <Media>
          <Images>
            <Image Audience="Consumer" View="Primary">http://dealers.korgusa.com/images/product/SPST1WWH.png</Image>
          </Images>
        </Media>
      </MarketingInfo>
      <Availability>
        <Available>YES</Available>
      </Availability>
    </Item>


    <Item>
      <SupplierItemId>SP170WHK</SupplierItemId>
      <SupplierModel>SP170WHK</SupplierModel>
      <SupplierItemDesc>White stand and SP170WH Bundle</SupplierItemDesc>
      <Kit>Y</Kit>
      <Serialized>N</Serialized>
      <BrandName>KORG</BrandName>
      <CountryOrigin>CN</CountryOrigin>
      <AnnounceDate>2009-12-15</AnnounceDate>
      <AvailableDate>2009-12-15</AvailableDate>
      <WarrantyPartTerm>365</WarrantyPartTerm>
      <WarrantyPartUOM>Day</WarrantyPartUOM>
      <WarrantyLabTerm>0</WarrantyLabTerm>
      <WarrantyLabUOM>Day</WarrantyLabUOM>
      <Barcodes>
        <Barcode>
          <ID>4959112073490</ID>
          <Type>GTIN-13</Type>
        </Barcode>
      </Barcodes>
      <Pricing>
        <Price type="MSRP" Currency="USD">725.00</Price>
        <Price type="MAP" Currency="USD">525.00</Price>
        <Price type="Cost" Currency="USD" Qty="1">270.00</Price>
      </Pricing>
      <KitItems>
        <KitItem>
		<SupplierItemId>SP170WH</SupplierItemId>
		<Qty>1</Qty>
		<UOM>EA</UOM>
		<Barcodes>
        		<Barcode>
          		<ID>4959112073463</ID>
          		<Type>GTIN-13</Type>
        		</Barcode>
      		</Barcodes>
        </KitItem>
        <KitItem>
		<SupplierItemId>SPST1WWH</SupplierItemId>
		<Qty>1</Qty>
		<UOM>EA</UOM>
		<Barcodes>
        		<Barcode>
          		<ID>4959112073487</ID>
          		<Type>GTIN-13</Type>
        		</Barcode>
      		</Barcodes>
        </KitItem>
      </KitItems>
      <MarketingInfo>
        <PrimaryCategory>4018162506</PrimaryCategory>
        <ProductURL>www.korg.com/sp170</ProductURL>
        <ItemDescLong>Offering an affordable, portable and rewarding piano solution, the streamlined SP-170 features an authentic piano feel and 10 captivating sounds - including two superb grands - to satisfy the student, novice, or seasoned player. The clean, fresh design omits the traditional control panel, emphasizing instead the comfortable keyboard and satisfying sound.</ItemDescLong>
        <Bullets>
          <Bullet>Korg's 88-key Natural Weighted Hammer Action (NH) keyboard offers a true piano touch</Bullet>
          <Bullet>10 Sounds: Piano x 2; E. Piano x 2; Harpsichord; Clavi; Vibraphone; Pipe Organ; Jazz Organ; Strings</Bullet>
          <Bullet>Reverb + Chorus effects; Transpose; Pitch Control; MIDI functions (MIDI Out); Damper pedal included</Bullet>
          <Bullet>Built-in sound system: 9 Watt stereo amplifier, 2 full-range speakers; 2 line/headphone outputs</Bullet>
          <Bullet>Elegant white finish; optional matching wooden stand (SPST-1W-WH) available</Bullet>
        </Bullets>
        <Media>
          <Images>
            <Image Audience="Consumer" View="Primary">http://dealers.korgusa.com/images/product/SP170WH.png</Image>
          </Images>
        </Media>
      </MarketingInfo>
      <Availability>
        <Available>YES</Available>
      </Availability>
    </Item>

  </Items>
</NAMM_ITEM>

Functional Acknowledgement Example

Download FunAck-v2009.1.xml

<?xml version="1.0" encoding="utf-8"?>
<NAMM_FunctionalAcknowledgement version="2009.1">
  <Timestamp>2008-01-14T10:34:02</Timestamp>
  <Id>S2S3050_PO691630-1</Id>
  <Supplier>
    <PartyId>0761294001004</PartyId>
  </Supplier>
  <SoldTo>
    <PartyId>1100001001675</PartyId>
  </SoldTo>
  <StatusCode>C01</StatusCode>
  <StatusMessage>Received</StatusMessage>
</NAMM_FunctionalAcknowledgement>

Price Book Example

Download Pricebook-v2015.1.xml

<?xml version="1.0" encoding="utf-8"?>
<NAMM_PRICEBOOK version="2015.1">
  <Id>S2S3050_PO691630</Id>
  <Timestamp>2011-07-19T08:23:30</Timestamp>
  <Supplier>
    <PartyId />
    <Name />
    <Address>
      <Address1 />
      <Address2 />
      <Address3 />
      <City />
      <State />
      <PostalCode />
      <Country />
      <CountryCode />
    </Address>
  </Supplier>
  <SoldTo>
    <PartyId />
    <Name />
    <Address>
      <Address1 />
      <Address2 />
      <Address3 />
      <City />
      <State />
      <PostalCode />
      <Country />
      <CountryCode />
    </Address>
  </SoldTo>
  <Items>
    <Item EffectiveDate="2011-07-19T08:23:30">
      <BarCodeId>761294084991</BarCodeId>
      <BarCodeType>GTIN-12</BarCodeType>
      <SupplierItemId>FantomX6</SupplierItemId>
      <Levels>
        <Level>
          <Price Currency="USD"
                 type="Cost">100.00</Price>
          <LevelMin>1</LevelMin>
          <LevelMax>10</LevelMax>
          <LevelUOM type="Item">EA</LevelUOM>
        </Level>
        <Level>
          <Price Currency="USD"
                 type="Cost">90.00</Price>
          <LevelMin>11</LevelMin>
          <LevelMax>20</LevelMax>
          <LevelUOM type="Item">EA</LevelUOM>
        </Level>
        <Level>
          <Price Currency="USD"
                 type="Cost">80.00</Price>
          <LevelMin>21</LevelMin>
          <LevelMax>30</LevelMax>
          <LevelUOM type="Item">EA</LevelUOM>
        </Level>
      </Levels>
    </Item>
    <Item EffectiveDate="2011-07-19T08:23:30">
      <BarCodeId>761294084974</BarCodeId>
      <BarCodeType>GTIN-12</BarCodeType>
      <SupplierItemId>PhantomEx6</SupplierItemId>
      <Levels>
        <Level>
          <Price Currency="USD"
                 type="Cost">100.00</Price>
          <LevelMin>1</LevelMin>
          <LevelMax>1000</LevelMax>
          <LevelUOM type="Order">USD</LevelUOM>
        </Level>
        <Level>
          <Price Currency="USD"
                 type="Cost">90.00</Price>
          <LevelMin>1001</LevelMin>
          <LevelMax>5000</LevelMax>
          <LevelUOM type="Order">USD</LevelUOM>
        </Level>
        <Level>
          <Price Currency="USD"
                 type="Cost">80.00</Price>
          <LevelMin>5001</LevelMin>
          <LevelMax>10001</LevelMax>
          <LevelUOM type="Order">USD</LevelUOM>
        </Level>
      </Levels>
    </Item>
    <Item EffectiveDate="2011-07-19T08:23:30">
      <BarCodeId>761294084821</BarCodeId>
      <BarCodeType>GTIN-12</BarCodeType>
      <SupplierItemId>Fantom TShirt</SupplierItemId>
      <Levels>
        <Level>
          <Price Currency="USD"
                 type="Cost">10.00</Price>
          <LevelMin>1</LevelMin>
          <LevelMax>10</LevelMax>
          <LevelUOM type="Family">EA</LevelUOM>
        </Level>
        <Level>
          <Price Currency="USD"
                 type="Cost">9.00</Price>
          <LevelMin>11</LevelMin>
          <LevelMax>20</LevelMax>
          <LevelUOM type="Family">EA</LevelUOM>
        </Level>
        <Level>
          <Price Currency="USD"
                 type="Cost">8.00</Price>
          <LevelMin>21</LevelMin>
          <LevelMax>30</LevelMax>
          <LevelUOM type="Family">EA</LevelUOM>
        </Level>
      </Levels>
    </Item>
  </Items>
</NAMM_PRICEBOOK> 

Purchase Order Example

Download PO_v2015.1.xml

<?xml version="1.0" encoding="UTF-8" ?>
<NAMM_PO version="2015.1" xmlns="http://namm.org/b2b/2015/schemas" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://namm.org/b2b/2015/schemas PO_v2015.1.xsd">

<Id>11383</Id>
<Timestamp>2013-12-20T10:20:06</Timestamp>
<POHeader>
<SoldTo>
<PartyId>000010298975</PartyId>
<Name>Bill's Music</Name>
<Address>
<Attn></Attn>
<Address1>1 Main St</Address1>
<City>New York</City>
<State>NY</State>
<PostalCode>11101</PostalCode>
<Country>USA</Country>
<CountryCode>US</CountryCode>
</Address>
</SoldTo>
<BillTo>
<PartyId>000010298975</PartyId>
<Name>Bill's Music</Name>
<Address>
<Attn></Attn>
<Address1>1 Main St</Address1>
<City>New York</City>
<State>NY</State>
<PostalCode>11101</PostalCode>
<Country>USA</Country>
<CountryCode>US</CountryCode>
</Address>
</BillTo>
<BuyerOrderId>65642X</BuyerOrderId>
<Supplier>
<PartyId>0670716000009</PartyId>
<Name>Korg USA, Inc.</Name>
<Address>
</Address>
</Supplier>
<TermsCode>P001</TermsCode>
<TranspCode>S023</TranspCode>
<DateOrdered>2013-12-20</DateOrdered>
<Backorder>Y</Backorder>
<PORevisionNumber>0</PORevisionNumber>
<POStatusIndicator>N</POStatusIndicator>
<ASNRequirement>Y</ASNRequirement>
<POFileType>P</POFileType>
<ShipTo>
<PartyId>098765432123</PartyId>
<Name>Bill's Music</Name>
<Address>
<Address1>1 Main St</Address1>
<Address2></Address2>
<City>New York</City>
<State>NY</State>
<PostalCode>11101</PostalCode>
</Address>
</ShipTo>
</POHeader>
<PODetail>
<Items>
<Item>
<POLineNbr>1</POLineNbr>
<BuyerItemId>MAA207</BuyerItemId>
<BuyerItemDesc>Vox amPlug Twin Headphone Amp</BuyerItemDesc>
<Qty>1</Qty>
<QtyUOM>EA</QtyUOM>
<UCValue>55.00</UCValue>
<UCCurrencyCode>USD</UCCurrencyCode>
<SupplierItemId>APTW</SupplierItemId>
<BarCodeId>4959112088023</BarCodeId>
<BarCodeType>GTIN-12</BarCodeType>
</Item>
<Item>
<POLineNbr>2</POLineNbr>
<BuyerItemId>MAA055</BuyerItemId>
<BuyerItemDesc>Vox AmPlug Headphone Guitar Amp, Classic Rock</BuyerItemDesc>
<Qty>1</Qty>
<QtyUOM>EA</QtyUOM>
<UCValue>99.00</UCValue>
<UCCurrencyCode>USD</UCCurrencyCode>
<SupplierItemId>APCR</SupplierItemId>
<BarCodeId>4959112057630</BarCodeId>
<BarCodeType>GTIN-12</BarCodeType>
<TranspCode>S028</TranspCode> 
<ShipTo>
<PartyId></PartyId>
<Name>Jack Smith</Name>
<Address>
<Address1>101 Diana Dr</Address1>
<Address2>   </Address2>
<City>Guyton</City>
<State>GA</State>
<PostalCode>31312</PostalCode>
</Address>
</ShipTo>
</Item>
</Items>
</PODetail>
</NAMM_PO>

PO Status Request Example

Download POStatusRequest-v2015.1.xml

<?xml version="1.0" encoding="utf-8"?>
<NAMM_POStatusRequest version="2015.1">
  <Timestamp>2011-07-19T10:34:02</Timestamp>
  <Id>S2S3050_PO691630-1</Id>
  <Supplier>
    <PartyId>0761294001004</PartyId>
  </Supplier>
  <SoldTo>
    <PartyId>1100001001675</PartyId>
  </SoldTo>
  <BuyerOrderIds>
    <BuyerOrderId>123456</BuyerOrderId>
    <BuyerOrderId>987654</BuyerOrderId>
    <BuyerOrderId>654321</BuyerOrderId>
  </BuyerOrderIds>
</NAMM_POStatusRequest> 

PO Status / Det Ack Example

Download POStatus_v2015.1.xml

<NAMM_POStatus xmlns="http://namm.org/b2b/2015/schemas" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xs="http://www.w3.org/2001/XMLSchema" version="2015.1" xsi:schemaLocation="http://namm.org/b2b/2015/schemas POStatus_v2015.1.xsd">
  <Id>B78DD4DC-09EB-4D47-AD3C-FF2105399CDE</Id>
  <POStatusRequestId>8814043038988</POStatusRequestId>
  <Timestamp>2014-05-07T01:21:44.107</Timestamp>
  <BuyerOrderId>8814043038988</BuyerOrderId>
  <DateOrdered>2014-05-01</DateOrdered>
  <BuyerName />
  <Supplier>
    <PartyId>0670716000009</PartyId>
    <Name>Korg USA Inc.</Name>
    <Address>
      <Attn />
      <Address1>316 S SERVICE RD</Address1>
      <Address2 />
      <Address3 />
      <City>MELVILLE</City>
      <State>NY</State>
      <PostalCode>117473228</PostalCode>
      <Country>USA</Country>
      <CountryCode>US</CountryCode>
    </Address>
  </Supplier>
  <SoldTo>
    <PartyId>698765768754</PartyId>
    <Name>Bill's Music</Name>
    <Address>
      <Attn>Accounts Payable</Attn>
      <Address1>1 FLUSHING AVE</Address1>
      <Address2></Address2>
      <Address3 />
      <City>BROOKLYN</City>
      <State>NY</State>
      <PostalCode>11205</PostalCode>
      <Country>USA</Country>
      <CountryCode>US</CountryCode>
    </Address>
  </SoldTo>
  <StatusCode />
  <PaymentTerms>
    <StatusCode>0</StatusCode>
    <StatusMessage />
    <TermsCode />
  </PaymentTerms>
  <ShipmentTerms>
    <StatusCode>0</StatusCode>
  </ShipmentTerms>
  <ShipTo>
    <PartyId>NAVY</PartyId>
    <Name>Bill's Music</Name>
    <Address>
      <Attn />
      <Address1>1 FLUSHING AVE</Address1>
      <Address2></Address2>
      <Address3 />
      <City>BROOKLYN</City>
      <State>NY</State>
      <PostalCode>11205</PostalCode>
      <Country>USA</Country>
      <CountryCode>US</CountryCode>
    </Address>
  </ShipTo>
  <Items>
    <Item>
      <POLineNbr>1</POLineNbr>
      <SequenceNbr>1</SequenceNbr>
      <StatusCode>Changes</StatusCode>
      <StatusMessage />
      <Qty>1</Qty>
      <OriginalOrderQty>1</OriginalOrderQty>
      <QtyUOM>EA</QtyUOM>
      <UCValue>47.00</UCValue>
      <OriginalOrderUCValue>30.75</OriginalOrderUCValue>
      <UCCurrencyCode>USD</UCCurrencyCode>
      <EstimatedShipDate>2014-05-07</EstimatedShipDate>
      <SupplierOrderId>OM99574453</SupplierOrderId>
      <BuyerItemId>KXXFKM2</BuyerItemId>
      <SupplierItemId>XFKM2</SupplierItemId>
      <BarCodeId />
      <BarCodeType>PartNumber</BarCodeType>
  <ShipTo>
    <PartyId>NAVY</PartyId>
    <Name>Bill's Music</Name>
    <Address>
      <Attn />
      <Address1>1 FLUSHING AVE</Address1>
      <Address2></Address2>
      <Address3 />
      <City>BROOKLYN</City>
      <State>NY</State>
      <PostalCode>11205</PostalCode>
      <Country>USA</Country>
      <CountryCode>US</CountryCode>
    </Address>
  </ShipTo>
    </Item>
    <Item>
      <POLineNbr>2</POLineNbr>
      <SequenceNbr>1</SequenceNbr>
      <StatusCode>Changes</StatusCode>
      <StatusMessage />
      <Qty>2</Qty>
      <OriginalOrderQty>6</OriginalOrderQty>
      <QtyUOM>EA</QtyUOM>
      <UCValue>16.80</UCValue>
      <OriginalOrderUCValue>16.80</OriginalOrderUCValue>
      <UCCurrencyCode>USD</UCCurrencyCode>
      <EstimatedShipDate>2014-06-12</EstimatedShipDate>
      <SupplierOrderId>OM99574453</SupplierOrderId>
      <BuyerItemId>KXGA1</BuyerItemId>
      <SupplierItemId>GA1</SupplierItemId>
      <BarCodeId>4959112069329</BarCodeId>
      <BarCodeType>GTIN-13</BarCodeType>
    </Item>
    <Item>
      <POLineNbr>2</POLineNbr>
      <SequenceNbr>2</SequenceNbr>
      <StatusCode>Changes</StatusCode>
      <StatusMessage />
      <Qty>4</Qty>
      <OriginalOrderQty>6</OriginalOrderQty>
      <QtyUOM>EA</QtyUOM>
      <UCValue>16.80</UCValue>
      <OriginalOrderUCValue>16.80</OriginalOrderUCValue>
      <UCCurrencyCode>USD</UCCurrencyCode>
      <SupplierOrderId>OM99574453</SupplierOrderId>
      <BuyerItemId>KXGA1</BuyerItemId>
      <SupplierItemId>GA1</SupplierItemId>
      <BarCodeId>4959112069329</BarCodeId>
      <BarCodeType>GTIN-13</BarCodeType>

    </Item>
  </Items>
</NAMM_POStatus>

Advance Shipping Notice Example

Download ASN_v2015.1.xml

<NAMM_ASN xmlns="http://namm.org/b2b/2015/schemas" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xs="http://www.w3.org/2001/XMLSchema" version="2015.1" xsi:schemaLocation="http://namm.org/b2b/2015/schemas ASN_v2015.1.xsd">
  <Id>BE4CA503-7E4C-4279-AE50-67868B28A5A3</Id>
  <Timestamp>2013-04-12T22:53:22.86</Timestamp>
  <ShipmentHeader>
    <ShipmentType>00</ShipmentType>
    <ShipmentId>KO0700585894</ShipmentId>
    <Shipped>2013-04-12</Shipped>
    <EstDeliver>2013-04-15</EstDeliver>
    <Supplier>
      <PartyId>0670716000009</PartyId>
      <Name>Korg USA Inc.</Name>
      <Address>
        <Address1>316 S Service Rd</Address1>
        <City>Melville</City>
        <State>NY</State>
        <PostalCode>11747</PostalCode>
        <Country>USA</Country>
        <CountryCode>US</CountryCode>
      </Address>
    </Supplier>
    <ShipFrom>
      <PartyId>0670716000009</PartyId>
      <Name>Korg USA Inc.</Name>
      <Address>
        <Address1>316 S Service Rd</Address1>
        <City>Melville</City>
        <State>NY</State>
        <PostalCode>11747</PostalCode>
        <Country>USA</Country>
        <CountryCode>US</CountryCode>
      </Address>
    </ShipFrom>
    <ShipmentRefs>
      <MasterBOL>1Y750E</MasterBOL>
      <PRONbr />
    </ShipmentRefs>
    <ShipmentQty>
      <ContainerQty>1</ContainerQty>
      <ShipmentItemQty>2</ShipmentItemQty>
    </ShipmentQty>
    <Volume>
      <VolumeValue>0</VolumeValue>
      <VolumeUOMCode>CF</VolumeUOMCode>
    </Volume>
    <Weight>
      <WeightValue>8.45</WeightValue>
      <WeightUOMCode>LB</WeightUOMCode>
    </Weight>
    <TranspCode>UPSN</TranspCode>
    <SoldTo>
      <PartyId>080999876543</PartyId>
      <Name>Bill's Music</Name>
      <Address>
        <Address1>715 Main St</Address1>
        <Address2 />
        <City>PLAINFIELD</City>
        <State>IN</State>
        <PostalCode>46168</PostalCode>
        <Country>USA</Country>
        <CountryCode>US</CountryCode>
      </Address>
    </SoldTo>
    <ShipTo>
      <PartyId>8014531</PartyId>
      <Name>Bill's Music</Name>
      <Address>
        <Address1>715 Main St</Address1>
        <Address2 />
        <City>PLAINFIELD</City>
        <State>IN</State>
        <PostalCode>46168</PostalCode>
        <Country>USA</Country>
        <CountryCode>US</CountryCode>
      </Address>
    </ShipTo>
    <Vehicle>
      <VehicleType>Trailer</VehicleType>
    </Vehicle>
  </ShipmentHeader>
  <Orders>
    <Order>
      <BuyerOrderId>Z76198XX</BuyerOrderId>
      <Containers>
        <Container>
          <ContainerId>00006707160007709691</ContainerId>
          <ShipperTrackingNumber>1Z1418710390269034</ShipperTrackingNumber>

          <Length>3.2600</Length>
          <Width>5.2300</Width>
          <Height>1.2200</Height>
          <DimUOM>IN</DimUOM>
          <Weight>8.45</Weight>
          <WeightUOM>LBS</WeightUOM>

          <Item>
            <ItemId>
              <BarCodeId>4959112080911</BarCodeId>
              <BarCodeType>GTIN-13</BarCodeType>
              <BuyerItemId />
              <SupplierItemId>TONELABEX</SupplierItemId>
            </ItemId>
            <POLineNbr>3</POLineNbr>
            <ItemQty>
              <Qty>1</Qty>
              <ItemUOMCode>EA</ItemUOMCode>
            </ItemQty>
          </Item>
          <Item>
            <ItemId>
              <BarCodeId>0845644000296</BarCodeId>
              <BarCodeType>GTIN-13</BarCodeType>
              <BuyerItemId />
              <SupplierItemId>HTSTUD20C</SupplierItemId>
            </ItemId>
            <POLineNbr>4</POLineNbr>
            <ItemQty>
              <Qty>1</Qty>
              <ItemUOMCode>EA</ItemUOMCode>
            </ItemQty>
          </Item>
        </Container>
      </Containers>
    </Order>
  </Orders>
</NAMM_ASN>

Invoice Example

Download Invoice-v2009.2.xml

<?xml version="1.0" encoding="utf-8"?>
<NAMM_Invoice version="2009.2">
  <InvoiceHeader>
    <Id>S2S3050_PO691634</Id>
    <Timestamp>2008-01-15T08:34:00</Timestamp>
    <SoldTo>
      <PartyId>1100001001675</PartyId>
      <Name>Joe's Music Store</Name>
    </SoldTo>
    <InvoiceId>12345678</InvoiceId>
    <InvoiceType>D</InvoiceType>
    <Supplier>
      <PartyId>0761294001004</PartyId>
      <Name>Roland Corporation U.S.</Name>
      <Address>
        <Address1>5100 S Eastern Ave</Address1>
        <City>Los Angeles</City>
        <State>CA</State>
        <PostalCode>90040</PostalCode>
        <Country>United States</Country>
        <CountryCode>US</CountryCode>
      </Address>
    </Supplier>
    <RemitTo>
      <PartyId>0761294001004</PartyId>
      <Name>Roland Corporation U.S.</Name>
      <Address>
        <Attn>Accounts Receivable</Attn>
        <Address1>5100 S Eastern Ave</Address1>
        <City>Los Angeles</City>
        <State>CA</State>
        <PostalCode>90040</PostalCode>
        <Country>United States</Country>
        <CountryCode>US</CountryCode>
      </Address>
    </RemitTo>
    <BillTo>
      <PartyId>1100001001675</PartyId>
      <Name>Joe's Music Store</Name>
      <Address>
        <Attn>Accounts Payable</Attn>
        <Address1>Box 123</Address1>
        <City>Music City</City>
        <State>NY</State>
        <PostalCode>12345</PostalCode>
        <Country>United States</Country>
        <CountryCode>US</CountryCode>
      </Address>
    </BillTo>
    <ShipTo>
      <PartyId>1100001001676</PartyId>
      <Name>Joe's Music Store</Name>
      <Address>
        <Attn>Receiving Department</Attn>
        <Address1>321 Main Street</Address1>
        <City>Music City</City>
        <State>NY</State>
        <PostalCode>12345</PostalCode>
        <Country>United States</Country>
        <CountryCode>US</CountryCode>
      </Address>
    </ShipTo>
    <TermsCode>P014</TermsCode>
    <TranspCode>S001</TranspCode>
    <InvoiceDate>2008-01-15</InvoiceDate>
    <InvoiceDueDate>2008-02-14</InvoiceDueDate>
    <BuyerName>Joe Buyer</BuyerName>
    <SalesRep>Richard Rep</SalesRep>
  </InvoiceHeader>
  <InvoiceSummary>
    <TotalItemLines>3</TotalItemLines>
    <TotalItemQty>7</TotalItemQty>
    <LineTotal>6626.40</LineTotal>
    <FreightTotal>50.00</FreightTotal>
    <SalesTax>123.45</SalesTax>
    <MiscCharge>0.00</MiscCharge>
    <InvoiceTotal>6676.40</InvoiceTotal>
  </InvoiceSummary>
  <InvoiceDetail>
    <Items>
      <Item>
        <BuyerOrderId>123456</BuyerOrderId>
        <SupplierOrderId>123456</SupplierOrderId>
        <InvoiceLineNbr>1</InvoiceLineNbr>
        <POLineNbr>2</POLineNbr>
        <BuyerItemId>SD1Roland</BuyerItemId>
        <Qty>1</Qty>
        <QtyUOM>CTN</QtyUOM>
        <UCValue>479.40</UCValue>
        <UCCurrencyCode>USD</UCCurrencyCode>
        <ExtendedCostValue>479.40</ExtendedCostValue>
        <ExtendedCurrencyCode>USD</ExtendedCurrencyCode>
        <SupplierItemId>SD1</SupplierItemId>
        <SupplierItemDesc>Roland SD1</SupplierItemDesc>
        <PackListNbr>345678</PackListNbr>
        <ShipmentIds>
          <ShipmentId>345678</ShipmentId>
        </ShipmentIds>
        <DateShipped>2008-01-15</DateShipped>
        <BarCodeId>761294008508</BarCodeId>
        <BarCodeType>GTIN-12</BarCodeType>
      </Item>
      <Item>
        <BuyerOrderId>123456</BuyerOrderId>
        <SupplierOrderId>123456</SupplierOrderId>
        <InvoiceLineNbr>2</InvoiceLineNbr>
        <POLineNbr>1</POLineNbr>
        <BuyerItemId>FX6</BuyerItemId>
        <Qty>4</Qty>
        <QtyUOM>EA</QtyUOM>
        <UCValue>1437.00</UCValue>
        <UCCurrencyCode>USD</UCCurrencyCode>
        <ExtendedCostValue>5748.00</ExtendedCostValue>
        <ExtendedCurrencyCode>USD</ExtendedCurrencyCode>
        <SupplierItemId>FantomX6</SupplierItemId>
        <SupplierItemDesc>Fantom X6 Keyboard</SupplierItemDesc>
        <PackListNbr>345678</PackListNbr>
        <ShipmentIds>
          <ShipmentId>345678</ShipmentId>
        </ShipmentIds>
        <DateShipped>2008-01-15</DateShipped>
        <BarCodeId>761294084991</BarCodeId>
        <BarCodeType>GTIN-12</BarCodeType>
      </Item>
      <Item>
        <BuyerOrderId>123456</BuyerOrderId>
        <SupplierOrderId>123456</SupplierOrderId>
        <InvoiceLineNbr>3</InvoiceLineNbr>
        <POLineNbr>3</POLineNbr>
        <BuyerItemId>FXBook</BuyerItemId>
        <Qty>2</Qty>
        <QtyUOM>CTN</QtyUOM>
        <UCValue>199.50</UCValue>
        <UCCurrencyCode>USD</UCCurrencyCode>
        <ExtendedCostValue>399.00</ExtendedCostValue>
        <ExtendedCurrencyCode>USD</ExtendedCurrencyCode>
        <SupplierItemId>FantomXBook</SupplierItemId>
        <SupplierItemDesc>Fantom X Hidden
        Secrets</SupplierItemDesc>
        <PackListNbr>345678</PackListNbr>
        <ShipmentIds>
          <ShipmentId>345678</ShipmentId>
        </ShipmentIds>
        <DateShipped>2008-01-15</DateShipped>
        <BarCodeId>761294001233</BarCodeId>
        <BarCodeType>GTIN-12</BarCodeType>
      </Item>
    </Items>
  </InvoiceDetail>
</NAMM_Invoice>

Sell Through Example

Download SellThrough-v2012.1.xml

<?xml version="1.0" encoding="utf-8"?>
<NAMM_SELLTHROUGH version="2012.1">
  <Id>S2S3050_PO691630</Id>
  <Timestamp>2011-07-19T08:23:30</Timestamp>
  <StartDate>2011-07-20</StartDate>
  <EndDate>2011-08-29</EndDate>
  <SoldTo>
    <PartyId>1100001001675</PartyId>
    <Name>Joe's Music Store</Name>
    <Address>
      <Attn>Joe Owner</Attn>
      <Address1>321 Main Street</Address1>
      <City>Music City</City>
      <State>NY</State>
      <PostalCode>12345</PostalCode>
      <Country>USA</Country>
      <CountryCode>US</CountryCode>
    </Address>
  </SoldTo>
  <Supplier>
    <PartyId>0761294001004</PartyId>
    <Name>Roland Corporation US</Name>
    <Address>
      <Address1>5100 S. Eastern Ave.</Address1>
      <City>Los Angeles</City>
      <State>CA</State>
      <PostalCode>90040</PostalCode>
      <Country>USA</Country>
      <CountryCode>US</CountryCode>
    </Address>
  </Supplier>
  <Locations>
    <Location LocationID="1100001001675">
      <Items>
        <Item>
          <BuyerItemId>SD1Roland</BuyerItemId>
          <SupplierItemId>FantomX6</SupplierItemId>
          <BarCodeId>761294084991</BarCodeId>
          <BarCodeType>GTIN-12</BarCodeType>
          <Qty>4</Qty>
          <QtyUOM>EA</QtyUOM>
          <SalesTotal>1437</SalesTotal>
          <SalesTotalCurrencyCode>USD</SalesTotalCurrencyCode>
          <QtyOnHand>2</QtyOnHand> <!-- Optional -->
        </Item>
      </Items>
    </Location>
  </Locations>
</NAMM_SELLTHROUGH>

Electronic Delivery Example

Download ElectronicDelivery-v2015.1.xml

<?xml version="1.0" encoding="utf-8"?>
<NAMM_ElectronicDeliveryResponse 
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
	xmlns:xsd="http://www.w3.org/2001/XMLSchema" 
	xmlns="http://namm.org/b2b/2009/schemas"
	version="2015.1">
  <Timestamp>2015-01-25T10:46:54</Timestamp>
  <POId>ThisDocumentIDNumber</POId>
  <BuyerOrderId>432543</BuyerOrderId>
  <StatusCode>C01</StatusCode>
  <StatusMessage>Received</StatusMessage>
  <Items>
    <Item>
      <SupplierItemId>BogusProduct</SupplierItemId>
      <POLineNbr>1</POLineNbr>
      <BarCodeId>761294084991</BarCodeId>
      <BarCodeType>GTIN-12</BarCodeType>
      <Qty>1</Qty>
      <QtyUOM>EA</QtyUOM>
      <UCValue>39.00</UCValue>
      <UCCurrencyCode>USD</UCCurrencyCode>
      <DownloadPath>http://www.softwarecompany.com/cgi-bin/WebObjects/LicenseApp</DownloadPath>
      <SupportContact>www.softwarecompany.com/xsupport.php</SupportContact>
      <Licenses>
        <License>1234-1234-5678-6789-1111</License>
      </Licenses>
    </Item>
    <Item>
      <SupplierItemId>GoodProduct</SupplierItemId>
      <POLineNbr>2</POLineNbr>
      <BarCodeId>761294084992</BarCodeId>
      <BarCodeType>GTIN-12</BarCodeType>
      <Qty>1</Qty>
      <QtyUOM>EA</QtyUOM>
      <UCValue>100.00</UCValue>
      <UCCurrencyCode>USD</UCCurrencyCode>
      <DownloadPath>http://www.softwarecompany.com/cgi-bin/WebObjects/LicenseApp</DownloadPath>
      <SupportContact>www.softwarecompany.com/xsupport.php</SupportContact>
      <Licenses>
        <License>1234-1234-5678-6789-4321</License>
      </Licenses>
    </Item>
  </Items>
</NAMM_ElectronicDeliveryResponse>

Payment Advice Example

Download PaymentAdvice-v2015.1.xml

<?xml version="1.0" encoding="utf-8"?>
<NAMM_PaymentAdvice xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://namm.org/b2b/2009/schemas" version="2015.1">
  <Id>DocumentIDNumber</Id>
  <TradingPartnerInfo>
    <SenderID>091478008</SenderID>
    <SenderName>GuitarCenter</SenderName>
    <ReceiverID>MusicSupplier</ReceiverID>
    <ReceiverName> MusicSupplier </ReceiverName>
  </TradingPartnerInfo>
  <Supplier>
    <PartyId>123456789012</PartyId>
    <Name>Korg Inc.</Name>
    <Address>
      <Attn />
      <Address1>123 N Main St</Address1>
      <Address2 />
      <Address3 />
      <City>Anytown</City>
      <State>NY</State>
      <PostalCode>10011</PostalCode>
      <Country>United States</Country>
      <CountryCode>US</CountryCode>
    </Address>
  </Supplier>
  <SoldTo>
    <PartyId>987654321012</PartyId>
    <Name>Joe's Music Company</Name>
    <Address>
      <Attn />
      <Address1>321 S Second St</Address1>
      <Address2 />
      <Address3 />
      <City>MyTown</City>
      <State>CA</State>
      <PostalCode>90456</PostalCode>
      <Country>United States</Country>
      <CountryCode>US</CountryCode>
    </Address>
  </SoldTo>
  <TotalPayment>2000.00</TotalPayment>
  <CurrencyCode>USD</CurrencyCode>
  <PaymentType>CHK</PaymentType>
  <PaymentDate>06/21/2011 00:00</PaymentDate>
  <Reference>12345</Reference>
  <Timestamp>2011-01-15T08:58:23</Timestamp>
  <BuyerName>Joe Schmoe</BuyerName>
  <PaymentAdvice>
    <PaymentStatus>
      <Note />
      <!--Note is Optional-->
      <BuyerOrderId>432543</BuyerOrderId>
      <DateOrdered>2011-01-15</DateOrdered>
      <PaymentAmount>1088.4</PaymentAmount>
      <InvoiceNumber>117842823</InvoiceNumber>
      <InvoiceAmount>$1234.00</InvoiceAmount>
    </PaymentStatus>
    <PaymentStatus>
      <BuyerOrderId>432544</BuyerOrderId>
      <DateOrdered>2011-02-16</DateOrdered>
      <PaymentAmount>911.60</PaymentAmount>
      <InvoiceNumber>1178429845</InvoiceNumber>
      <InvoiceAmount>911.90</InvoiceAmount>
    </PaymentStatus>
  </PaymentAdvice>
</NAMM_PaymentAdvice>

Codes Tables

Terms Codes

The terms codes reproduced below are used in the Purchase Order and Invoice documents. Further information about the International Chamber of Commerce terms codes (Incoterms) may be found at

http://www.iccwbo.org/incoterms/id3040/index.html

Terms Code

Terms Percent

Terms Percent Days

Terms Days

Description (No Node)

P001

0

 

30D

NET 30 DAYS

P002

0

 

45D

NET 45

P003

0

 

60D

NET 60

P004

0

 

90D

NET 90

P005

0

 

0D

COD

P006

0

 

0D

PREPAID CHECK

P007

0

 

45D

CREDIT CARD

P008

0

 

10D

NET 10

P009

0

 

15D

NET 15

P010

0

 

20D

NET 20

P011

1

10D

30D

1% 10/NET 30

P012

2

10D

30D

2% 10/NET 30

P013

2

15D

30D

2% 15/NET 30

P014

2

20D

30D

2% 20/NET 30

P015

3

10D

30D

3% 10/NET 30

P016

3

21D

30D

3% 21/NET 30

P017

5

20D

30D

5% 20/NET 30

P018

3

30D

31D

3% 30/NET 31

P019

5

30D

31D

5% 30/NET 31

P020

10

30D

31D

10% 30/NET 31

P021

0

 

90D

3 EQUAL PAYMENTS

P022

2

27D

30D

2% 27/NET 30

P023

1

20D

30D

1% 20/NET 30

P024

1.5

20D

30D

1.5% 20/NET 30

P025

3

14D

30D

3% 14/NET 30

P026

2

30D

31D

2% 30/NET 31

P027

1

15D

30D

1% 15/NET 30

P028

1.2

30D

60D

1.2% 30/NET 60

P998

 

 

 

USE DISCOUNT AND DAYS NODES

P999

 

 

 

USE CUSTOMER DEFAULT

Inco Terms Codes

The International Chamber of Commerce (Inco) shipping terms codes reproduced below are used in the Invoice and Purchase Order documents.

Code

Description

Group E: Departure

adsf

EXW

EX Works

Group F: Main carriage unpaid

adsf

FCA

Free Carrier

FAS

Free Alongside Ship

FOB

Free On Board

Group C: Main carriage paid

adsf

CFR

Cost and Freight

CIF

Cost, Insurance and Freight

CPT

Carriage Paid To

CIP

Carriage and Insurance Paid to

Group D: Arrival

adf

DAF

Delivered At Frontier

DES

Delivered Ex Ship

DEQ

Delivered Ex Quay

DDU

Delivered Duty Unpaid

DDP

Delivered Duty Paid

Shipping Codes

The shipping codes reproduced below are used in the Purchase Order and Advanced Shipping Notification documents.

Code

Description

Carrier

Time

S001

UPS/Ground

UPS

Ground

S002

UPS/Next Day Air

UPS

1DayAM

S003

UPS/2nd Day Air

UPS

2Day

S004

UPS/3-Day Select

UPS

3Day

S021

FedEx Ground

FedEx

Ground

S005

FedEx/Next Day Air

FedEx

1DayPM

S006

FedEx/2nd Day Air

FedEx

2Day

S007

FedEx/Next Day Priority Air

FedEx

1DayAM

S008

FedEx/2nd Day Priority Air

FedEx

2Day

S022

FedEx Freight

FedEx

LTL

S024

FEDX/3-Day

FedEx

3Day

S009

Will Call

 

 

S010

Drop Ship/Misc Carrier

 

 

S023

Drop-Ship UPS/Ground Residential

UPS

GroundResidential

S011

Drop-Ship UPS/Ground

UPS

Ground

S012

Drop-Ship UPS/Next Day Air

UPS

1DayAM

S013

Drop-Ship UPS/2nd Day Air

UPS

2Day

S014

Drop-Ship UPS/3 Day Select

UPS

3Day

S015

Drop-Ship FEDX/Next Day Air

FedEx

1DayPM

S016

Drop-Ship FEDX/2nd Day Air

FedEx

2Day

S017

Drop-Ship FEDX/Nxt Day Priority Air

FedEx

1DayAM

S018

Drop-Ship FEDX/2nd Day Priority Air

FedEx

2Day

S019

Drop-Ship FEDX/3-Day

FedEx

3Day

S020

Misc Carrier/Include Remarks

 

 

S031

international AIR shipments

 

 

S032

international LTL shipments

 

 

S033

international OCEAN shipments

 

 

S034

international SMALL PACKAGE shipments

 

 

S035

international TRUCKLOAD shipments

 

 

S998

Use Carrier and Time Codes

 

 

S999

Use Customer Default (Bestway)

 

 

Status Codes

The status codes reproduced below are used in the Functional Acknowledgement document.

Status Code

Description

C01

Received

C02

Error

Unit of Measurement (UOM) Codes

The UOM codes reproduced below are used in the Advanced Shipment Notice, Invoice, Item, and Purchase Order documents.

Code

Description

BAG

Bag

BKT

Bucket

BND

Bundle

BOWL

Bowl

BX

Box

CRD

Card

CM

Centimeters

CS

Case

CTN

Carton

DZ

Dozen

EA

Each

FT

Foot

GAL

Gallon

GROSS

Gross

IN

Inches

KIT

Kit

LOT

Lot

M

Meter

MM

Millimeter

PC

Piece

PK

Pack

PK100

Pack 100

PK50

Pack 50

PR

Pair

RACK

Rack

RL

Roll

SET

Set

SET3

Set of 3

SET4

Set of 4

SET5

Set of 5

SGL

Single

SHT

Sheet

SQFT

Square ft

TUBE

Tube

YD

Yard

Alphabetical Tag Listing

Any given XML element in the NAMM B2B standard might appear in multiple documents, making consistent element definition, validation, and use across documents critical. It is therefore useful to be able to determine, for any given tag, the documents and context in which it appears.

Below is an alphabetical list of all XML elements used in the B2B standard documents, the documents in which they appear, their data types, lengths, and any pertinent notes about content, range, source, or values.

Document name abbreviations used in the “Appears In” column are:

  • AS = Advanced Shipment Notice

  • FA = Functional Acknowledgement

  • IN = Invoice

  • IT = Item

  • PB = Price Book

  • PO = Purchase Order

  • PR = Purchase Order Status Request

  • PS = Purchase Order Status

  • PY = Party

  • ST = Sell Through

Data type abbreviations used in the “Type” column are:

  • C = Complex/Container

  • D = Date

  • F = Flag (Y/N, C/D, etc.)

  • I = Integer

  • N = Numeric (decimal)

  • S = String

  • U = URL/URI

Tag

Appears In

Type

Len

Notes

<Address>

AS IN PB PO PS PY ST

C

-

 

<Address1>

AS IN PB PO PS PY ST

S

35

Based on UPS fields

<Address2>

AS IN PB PO PS PY ST

S

35

Based on UPS fields

<Address3>

AS IN PB PO PS PY ST

S

35

Based on UPS fields

<AnnounceDate>

IT

D

10

ISO format: YYYY-MM-DD

<ASNRequirement>

PO

F

1

“Y” or “N”

<Attn>

AS IN PB PO PS PY ST

S

35

Based on UPS fields

<Audio>

IT

U

 

Audio URL

<Audios>

IT

C

-

 

<Availability>

IT

C

-

 

<Available>

IT

S

 

"YES", "NO", "LOW", "MEDIUM", or "HIGH"

<AvailableDate>

IT

D

10

ISO format: YYYY-MM-DD

<Backorder>

PO

F

1

“Y” or “N”

<Barcode>

IT

C

-

 

<BarCodeId>

AS IN PB PO ST

S

14

GTIN-12 (UPC), GTIN-13 (EAN/JAN), GTIN-14 (GTIN-14), or Vendor Part Number

<Barcodes>

IT

C

-

 

<BarCodeType>

AS IN PB PO ST

S

10

“GTIN-12”, “GTIN-13”, “GTIN-14”, or “PartNumber”

<BillTo>

IN PO

C

-

 

<BrandName>

IT

S

50

Item brand name

<Bullet>

IT

S

 

Item bullet point

<Bullets>

IT

C

-

 

<BuyerItemDesc>

AS PO

S

50

Buyer’s item description

<BuyerItemId>

AS IN PO ST

S

25

Buyer’s item ID

<BuyerName>

IN PO PS

S

35

Buyer company name

<BuyerOrderId>

AS IN PO PR PS

S

25

Buyer’s order ID

<BuyerOrderIds>

PR

C

-

 

<Category>

IT

S

 

Item category

<City>

AS IN PB PO PS PY ST

S

30

Based on UPS fields

<Comments>

IN

S

250

Comments

<Condition>

IT

S

 

Item condition

<ConfNbr>

AS

S

25

Confirmation number

<Container>

AS IT

C

-

 

<ContainerId>

AS

S

25

Container ID

<ContainerQty>

AS

I

6

6 digits, as 999999

<Containers>

AS IT

C

-

 

<Contributor>

IT

S

 

Item contributor

<Copyright>

IT

C

-

 

<CopyrightLine>

IT

S

 

Copyright line (text)

<Country>

AS IN PB PO PS PY ST

S

50

Country name

<CountryCode>

AS IN PB PO PS PY ST

S

2

ISO standard

<CountryOrigin>

IT

S

50

Item country of origin

<Credits>

IT

C

-

 

<Data>

IT

C

-

 

<DateBeginShip>

PO

D

10

ISO format: YYYY-MM-DD

<DateCancel>

PO

D

10

ISO format: YYYY-MM-DD

<DateEndShip>

PO

D

10

ISO format: YYYY-MM-DD

<DateOrdered>

PO PS

D

10

ISO format: YYYY-MM-DD

<DateShipped>

IN

D

10

ISO format: YYYY-MM-DD

<DBA>

PY

S

35

Doing Business As name

<Description>

PY

S

 

Partner location description

<DimUOM>

IT

S

5

From UOM table

<Document>

IT

U

 

Document URL

<Documents>

IT

C

-

 

<Email>

PY

S

100

Email address

<EndDate>

PY ST

D

10

ISO format: YYYY-MM-DD

<EndOfProductionDate>

IT

D

10

ISO format: YYYY-MM-DD

<EstDeliver>

AS

D

10

ISO format: YYYY-MM-DD

<EstimatedShipDate>

PS

D

10

ISO format: YYYY-MM-DD

<ExtendedAttributes>

IT

C

-

 

<ExtendedCostValue>

IN

N

10

5.4, as 12345.6789

<ExtendedCurrencyCode>

IN

S

3

ISO standard currency code

<Fax>

PY

S

24

Fax number

<FreightTotal>

IN

N

10

5.4, as 12345.6789

<Height>

IT

N

10

5.4, as 12345.6789

<ICQtyPerUOM>

AS PO

N

10

5.4, as 12345.6789

<ICUOM>

AS PO

S

5

From UOM table

<Id>

AS FA IN IT PB PO PR PS ST

S

50

Unique document ID

<Image>

IT

U

256

Image URL

<Images>

IT

C

-

 

<IncoTermsCode>

IN PO

S

3

From Inco Terms table

<IncoTermsDesc>

IN PO

S

35

From Inco Terms table

<InvoiceDate>

IN

D

10

ISO format: YYYY-MM-DD

<InvoiceDetail>

IN

C

-

 

<InvoiceDueDate>

IN

D

10

ISO format: YYYY-MM-DD

<InvoiceHeader>

IN

C

-

 

<InvoiceId>

IN

S

32

 

<InvoiceLineNbr>

IN

I

6

6 digits, as 999999

<InvoiceSummary>

IN

C

-

 

<InvoiceTotal>

IN

N

10

5.4, as 12345.6789

<InvoiceType>

IN

F

1

“C” or “D” (Credit/Debit invoice)

<Item>

AS IN IT PB PO PS ST

C

-

 

<ItemAttrs>

AS

C

-

 

<ItemDescLong>

IT

S

 

Long item description

<ItemFamily>

IT

S

 

Item family

<ItemId>

AS

C

-

 

<ItemQty>

AS

C

-

 

<Items>

IN IT PB PO PS ST

C

-

 

<ItemUOMCode>

AS

S

5

From UOM table

<ItemUOMDesc>

AS

S

15

From UOM table

<Keyword>

IT

S

 

Item keyword

<Keywords>

IT

C

-

 

<Kit>

IT

F

1

“Y” or “N”

<Length>

IT

N

10

5.4, as 12345.6789

<Level>

PB

C

-

 

<LevelMax>

PB

I

 

Level maximum

<LevelMin>

PB

I

 

Level minimum

<Levels>

PB

C

-

 

<LevelUOM>

PB

S

 

From UOM table

<LineTotal>

IN

N

10

5.4, as 12345.6789

<Location>

PY ST

C

-

 

<Locations>

PY ST

C

-

 

<MarketingInfo>

IT

C

-

 

<MasterBOL>

AS

S

25

Master Bill Of Lading ID

<MCQtyPerUOM>

AS PO

I

6

6 digits, as 999999

<MCUOM>

AS PO

S

5

From UOM table

<Media>

IT

C

-

 

<MiscCharge>

IN

N

10

5.4, as 12345.6789

<Name>

AS IN PB PO PS PY ST

S

35

Based on UPS fields

<NAMM_ASN>

AS

C

-

Root container/file identifier

<NAMM_FunctionalAcknowledgement>

FA

C

-

Root container/file identifier

<NAMM_Invoice>

IN

C

-

Root container/file identifier

<NAMM_ITEM>

IT

C

-

Root container/file identifier

<NAMM_PARTY>

PY

C

-

Root container/file identifier

<NAMM_POStatusRequest>

PR

C

-

Root container/file identifier

<NAMM_POStatus>

PS

C

-

Root container/file identifier

<NAMM_PO>

PO

C

-

Root container/file identifier

<NAMM_PRICEBOOK>

PB

C

-

Root container/file identifier

<NAMM_SELLTHROUGH>

ST

C

-

Root container/file identifier

<Order>

AS

C

-

 

<Orders>

AS

C

-

 

<PackListNbr>

IN

S

25

Packing list number

<PartyId>

AS FA IN PB PO PR PS PY ST

S

25

GLN or NAMM ID. If using GLN, then 13 digits w/possible leading zeros denoting location. Otherwise, NAMM ID + “*” + five digits denoting location.

<PartyIdType>

PY

S

4

“GLN” or “NAMM”

<PaymentTerms>

PS

C

-

 

<Phone>

PY

S

24

Phone number

<POComments>

PO

S

250

Comments

<PODetail>

PO

C

-

 

<POFileType>

PO

S

1

“P” or “A”, indicating Pre-accepted or Accepted PO

<POHeader>

PO

C

-

 

<POLineNbr>

AS IN PO PS

I

6

6 digits, as 999999

<PORevisionNumber>

PO

I

6

6 digits, as 999999

<PostalCode>

AS IN PB PO PS PY ST

S

9

ZIP 5+4 format w/o dash

<POStatusIndicator>

PO

S

1

“N” or “U”, indicating New or Updated PO

<POStatusRequestId>

PS

S

 

Unique document ID

<Price>

IT PB

N

10

5.4, as 12345.6789

<Pricing>

IT

C

-

 

<PrimaryCategory>

IT

S

 

Item primary category

<ProductURL>

IT

U

500

URL for product information

<PRONbr>

AS

S

25

Shipment PRO number

<Publisher>

IT

S

 

Musical composition publisher

<Qty>

AS IN PO PS ST

N

10

5.4, as 12345.6789

<QtyOnHand>

IT ST

I

 

Quantity on hand

<QtyPerUOM>

IT

I

 

Quantity per UOM

<QtyUOM>

IN PO ST

S

5

From UOM table

<QueryURL>

IT

S

 

Query URL

<RelatedItem>

IT

C

-

 

<RelatedItems>

IT

C

-

 

<RemitTo>

IN

C

-

 

<ReplacementID>

IT

S

25

The SupplierItemID that replaces the item

<RetailCurrencyCode>

IN PO

S

3

ISO standard currency code

<RetailValue>

IN PO PS

N

10

5.4, as 12345.6789

<RevisionDate>

PY

D

10

ISO format: YYYY-MM-DD

<SalesRep>

IN

S

35

Sales rep name

<SalesTax>

IN

N

10

5.4, as 12345.6789

<SalesTotal>

ST

N

10

5.4, as 12345.6789

<SalesTotalCurrencyCode>

ST

S

3

ISO standard currency code

<SealId>

AS

S

25

Container seal ID

<SecondaryCategories>

IT

C

-

 

<SequenceNbr>

PS

I

 

PO item sequence number

<Serialized>

IT

F

1

“Y” or “N”

<SerialNbr>

AS

S

25

Item serial number

<SerialNbrs>

AS

C

-

 

<ShipDate>

PS

D

 

ISO format: YYYY-MM-DD

<ShipFrom>

AS

C

-

 

<ShipInstructions>

IN PO

S

250

Shipping instructions

<ShipmentHeader>

AS

C

-

 

<ShipmentId>

AS IN

S

25

Shipment ID

<ShipmentIds>

IN

C

-

 

<ShipmentItemQty>

AS

I

6

6 digits, as 999999

<ShipmentQty>

AS

C

-

 

<ShipmentRefs>

AS

C

-

 

<ShipmentTerms>

PS

C

-

 

<ShipmentType>

AS

S

25

Shipment type

<Shipped>

AS

D

10

ISO format: YYYY-MM-DD

<ShipperTrackingNumber>

AS

S

25

Tracking number

<ShipTo>

AS IN PO

C

-

 

<SoldTo>

AS FA IN PB PO PR PS ST

C

-

 

<StartDate>

PY ST

D

10

ISO format: YYYY-MM-DD

<State>

AS IN PB PO PS PY ST

S

2

State code

<StatusCode>

FA PS

S

3

Status code

<StatusMessage>

FA PS

S

10

Status message

<StdContainer>

AS

C

-

 

<StdContainerType>

AS

S

 

Container type

<StdPack>

AS

C

-

 

<StdPackType>

AS

S

 

Package type

<SubTitle>

IT

S

 

Item topic subtitle

<SuperTitle>

IT

S

 

Item topic supertitle

<Supplier>

AS FA IN PB PO PR PS ST

C

-

 

<SupplierId>

IT

S

25

GLN or NAMM ID. If using GLN, then 13 digits w/possible leading zeros denoting location. Otherwise, NAMM ID + “*” + five digits denoting location.

<SupplierItemDesc>

AS IN IT

S

50

Supplier item description

<SupplierItemId>

AS IN IT PB PO ST

S

25

Supplier item ID

<SupplierModel>

IT

S

50

Supplier model

<SupplierOrderId>

IN PS

S

25

Supplier’s order ID

<TermsCode>

IN PO PS

S

15

From Terms Code table or partner-specific codes

<TermsDate>

IN PO

D

10

ISO format: YYYY-MM-DD. Required if TermsCode is P998

<TermsDays>

IN PO

I

6

6 digits, as 999999. Required if TermsCode is P998

<TermsPercent>

IN PO PS

N

6

3.2, as 100.00. Required if TermsCode is P998

<TermsPercentDays>

IN PO

I

6

6 digits, as 999999. Required if TermsCode is P998

<Timestamp>

AS FA IN IT PB PO PR PS ST

S

19

YYYY-MM-DD + “T” + HH:MM:SS

<Title>

IT

S

 

Item title

<Topic>

IT

C

-

 

<TotalItemLines>

IN

I

6

6 digits, as 999999

<TotalItemQty>

IN

I

6

6 digits, as 999999

<TradingPartner>

PY

C

-

 

<TranspCarrier>

IN PO

S

15

Required if TranspCode is S998

<TranspCode>

AS IN PO

S

15

From Terms Code table or partner-specific codes

<TranspDesc>

AS IN PO

S

50

Transportation description

<TranspTerms>

IN PO

S

 

Transportation terms

<TranspTime>

IN PO

I

6

6 digits, as 999999

<Type>

IT

S

10

“GTIN-12”, “GTIN-13”, “GTIN-14”, or “PartNumber”

<UCCurrencyCode>

IN PO

S

3

ISO standard currency code

<UCValue>

IN PO PS

N

10

5.4, as 12345.6789

<UnAvailableDate>

IT

D

10

ISO format: YYYY-MM-DD

<UOM>

IT

S

5

From UOM table

<URL>

PY

U

500

Partner company URL

<Vehicle>

AS

C

-

 

<VehicleId>

AS

S

25

Vehicle ID

<VehicleType>

AS

S

 

Vehicle type

<Video>

IT

U

 

Video URL

<Videos>

IT

C

-

 

<Volume>

AS

C

-

 

<VolumeUOMCode>

AS

S

5

From UOM table

<VolumeUOMDesc>

AS

S

15

From UOM table

<VolumeValue>

AS

N

10

5.4, as 12345.6789

<WarrantyLabTerm>

IT

I

6

6 digits, as 999999

<WarrantyLabUOM>

IT

S

5

From UOM table

<WarrantyPartTerm>

IT

I

6

6 digits, as 999999

<WarrantyPartUOM>

IT

S

5

From UOM table

<Weight>

AS IT

N

10

5.4, as 12345.6789

<WeightUOM>

IT

S

5

From UOM table

<WeightUOMCode>

AS

S

5

From UOM table

<WeightUOMDesc>

AS

S

15

From UOM table

<WeightValue>

AS

N

10

5.4, as 12345.6789

<Width>

IT

N

10

5.4, as 12345.6789

XSL Transforms

Although XML is a precise and efficient method for storing and transmitting data, it is certainly not visually attractive and can be difficult for a person to read and understand. A technology called XSLT (eXtensible Stylesheet Language Transformations) exists that allows you to convert (transform) the data in an XML document into a more readable, browser-renderable format such as HTML. In a nutshell, XSLT allows you to view an XML data file as though it were a web page.

The basic steps involved in this process are:

  1. Write an XSLT transform for a specific type of XML file (e.g., invoice-v2009.2.xml).

  2. Associate the two files by adding a reference to the XSLT transform inside the XML file.

  3. Open the XML file in a browser; the browser executes the transform, converts the XML to HTML, and displays the result.

While the creation of XSLT transforms is a decidedly technical task, it is not particularly difficult, and can result in attractive and usable document displays. Your company can create transforms that include your own logo, watermark, fonts, and other information, and that cause the data in the "raw" XML file to be organized and displayed in a visual format of your own design.

The Basics

XSLT files process XML files by matching XML tags to mini-programs called templates, which change the XML tags into HTML while retaining the data inside the tags. For example, consider this XML snippet containing some information about a breakfast dish.

<?xml-stylesheet type="text/xsl" href="waffles.xsl"?>

<food>

<name>Belgian Waffles</name>

<price>$5.95</price>

<description>Two of our famous Belgian Waffles with plenty of real
maple syrup</description>

<calories>650</calories>

</food>

The first line of the XML snippet is the reference to the XSLT file to be applied, "waffles.xsl". A portion of that file, an XSLT template to transform that data into a browser-compatible format, might look like this.

<xsl:template select="food">

<p style="background-color:teal;color:white;font-weight:bold;">

<xsl:value-of select="name"/> -

<xsl:value-of select="price"/>

</p>

<p>

<xsl:value-of select="description"/>

(<xsl:value-of select="calories"/> calories)

</p>

</xsl:template>

The XML file then is opened in a browser. The XSLT reference causes the browser to load and process the template, and the generated HTML displayed in the browser then looks like this.

Belgian Waffles - $5.95

Two of our famous Belgian Waffles with plenty of real maple syrup (650 calories)

The template contains a series of XSLT commands that begin with "xsl:". The commands match the XML tags, replace them with HTML tags, and place the data inside the new tags so that it will all render nicely in a browser. To accomplish this, the template performs the following steps.

  1. Find the outside block tag ("food").

  2. Open an HTML paragraph with a teal background and white, bold text.

  3. Find the dish's name and output it inside the paragraph, followed by a dash.

  4. Find the dish's price and output it after the dash, then close the paragraph.

  5. Open a new paragraph with default text characteristics.

  6. Find the dish's description and output it inside the paragraph.

  7. Find the dish's price and output it, surrounded by parentheses, then close the paragraph.

This is, of course, a very simple example, but it is structured so that the processing sequence is fairly obvious. In fact, that XSLT processing sequence – match XML tags, change them to HTML tags, and then output the HTML tags and data – remains the same regardless of the complexity of the template.

A Real World Example

Let's look at another example, this time using a more realistic XML snippet, the Shipment Header from a NAMM Advanced Shipping Notice (ASN). Notice the XSLT reference on the second line.

 

 

<?xml version="1.0" encoding="utf-8"?>
<?xml-stylesheet type="text/xsl" href="asnpartial.xsl"?>

S2S3050_PO691634
2008-01-15T07:34:00

11111
2009-05-07
2009-05-10

0000000000001
Music Distribution Center
1 Central Ave
Melville
NY
11747
USA
US

0000000000001
Music Distribution Center
1 Central Ave
Melville
NY
11747
USA
US

112
Main Street Music
1 Main St

Any Town
CA
90210
USA
US

112
Main Street Music
1 Main St

Any Town
CA
90210
USA
US

Although the XML is a bit lengthy, it just contains the heading information (Document ID, Shipment ID, Shipped Date, and Estimated Delivery Date), and the basic seller and buyer information (Supplier, Ship From, Sold To, and Ship To). In a human-readable document, this information should probably appear in some sort of fixed format; perhaps as a list of the first group of items followed by a table containing the last four groups of items, like this.

Id:

2E944666-F10B-4B38-912A-28DE0B88D75D

Shipment Id:

xxxxxxx11111

Shipped Date:

2009-05-07

Estimated Delivery:

2009-05-10

Supplier:

0000000000001

 

Music Distribution Center

 

1 Central Ave

 

Melville, NY 11747

Ship From:

0000000000001

 

Music Distribution Center

 

1 Central Ave

 

Melville, NY 11747

Sold To:

112

 

Main Street Music

 

1 Main St

 

Any Town, CA 90210

Ship To:

112

 

Main Street Music

 

1 Main St

 

Any Town, CA 90210

In fact, this exact result can be achieved fairly easily using XSLT. Working in the same way as the waffles example above, the XSLT template must match specified XML tags and output them as HTML tags with their data values appropriately embedded. Look at this section of the XSLT file ("asnpartial.xsl", referenced in the XML file above) containing a template that processes the heading information.

<xsl:template match="ShipmentHeader">

<table border="0">

<tr>

<th style="font-size:15pt; text-align:right">Id:</th>

<td style="font-size:15pt; text-align:left"><xsl:value-of

select="Id"/></td>

</tr>

<tr>

<th style="font-size:15pt; text-align:right">Shipment Id:</th>

<td style="font-size:15pt; text-align:left"><xsl:value-of

select=" ShipmentId"/></td>

</tr>

<tr>

<th style="font-size:15pt; text-align:right">Shipped Date:</th>

<td style="font-size:15pt; text-align:left"><xsl:value-of

select="Shipped"/></td>

</tr>

<tr>

<th style="font-size:15pt; text-align:right">Estimated Delivery:</th>

<td style="font-size:15pt; text-align:left"><xsl:value-of

select="EstDeliver"/></td>

</tr>

</table>

<table border="1">

<tr>

<td style="width:400px">

<table border="0">

<tr>

<th>Supplier:</th>

<td><xsl:value-of select="Supplier/PartyId"/></td>

</tr>

<tr>

<td></td>

<td><xsl:value-of select="Supplier/Name"/></td>

</tr>

<tr>

<td></td>

<td><xsl:value-of

select="Supplier/Address/Address1"/></td>

</tr>

<tr>

<td></td>

<td>

<xsl:value-of select="Supplier/Address/City"/>

<xsl:text>, </xsl:text>

<xsl:value-of select="Supplier/Address/State"/>

<xsl:text> </xsl:text>

<xsl:value-of

select="Supplier/Address/PostalCode"/>

</td>

</tr>

</table>

</td>

<td style="width:400px">

<table border="0">

<tr>

<th>Ship From:</th>

<td><xsl:value-of select="ShipFrom/PartyId"/></td>

</tr>

<tr>

<td></td>

<td><xsl:value-of select="ShipFrom/Name"/></td>

</tr>

<tr>

<td></td>

<td><xsl:value-of

select="ShipFrom/Address/Address1"/></td>

</tr>

<tr>

<td></td>

<td>

<xsl:value-of select="ShipFrom/Address/City"/>

<xsl:text>, </xsl:text>

<xsl:value-of select="ShipFrom/Address/State"/>

<xsl:text> </xsl:text>

<xsl:value-of

select="ShipFrom/Address/PostalCode"/>

</td>

</tr>

</table>

</td>

</tr>

</table>

<table border="1" id="tbl">

<tr>

<td style="width:400px">

<table border="0">

<tr>

<th>Sold To:</th>

<td><xsl:value-of select="SoldTo/PartyId"/></td>

</tr>

<tr>

<td></td>

<td><xsl:value-of select="SoldTo/Name"/></td>

</tr>

<tr>

<td></td>

<td><xsl:value-of

select="SoldTo/Address/Address1"/></td>

</tr>

<tr>

<td></td>

<td>

<xsl:value-of select="SoldTo/Address/City"/>

<xsl:text>, </xsl:text>

<xsl:value-of select="SoldTo/Address/State"/>

<xsl:text> </xsl:text>

<xsl:value-of select="SoldTo/Address/PostalCode"/>

</td>

</tr>

</table>

</td>

<td style="width:400px">

<table border="0">

<tr>

<th>Ship To:</th>

<td><xsl:value-of select="ShipTo/PartyId"/></td>

</tr>

<tr>

<td></td>

<td><xsl:value-of select="ShipTo/Name"/></td>

</tr>

<tr>

<td></td>

<td><xsl:value-of

select="ShipTo/Address/Address1"/></td>

</tr>

<tr>

<td></td>

<td>

<xsl:value-of select="ShipTo/Address/City"/>

<xsl:text>, </xsl:text>

<xsl:value-of select="ShipTo/Address/State"/>

<xsl:text> </xsl:text>

<xsl:value-of select="ShipTo/Address/PostalCode"/>

</td>

</tr>

</table>

</td>

</tr>

</table>

This may look like a lot of complex code, but notice that most of it is plain HTML – the HTML that we want the template to output to the browser. The XSLT commands ("xsl:") merely pick out specific pieces of XML data and place them into the HTML output at the appropriate places. To accomplish this, the template performs the following steps.

  1. Find the outside block tag ("ShipmentHeader").

  2. Open a table to contain the main heading information.

  3. Find the Id, ShipmentId, Shipped, and EstDeliver values and output them in four table rows with appropriate leading text, justified right and left within their table cells.

  4. Close the table.

  5. Open a new outer table to contain the two groups of seller information, "Supplier" and "Ship From".

  6. For the first group, open a "nested" table (a table within a table) inside the left-hand outer table cell.

  7. Find the name and full address values for the group and output them in four table rows with appropriate leading text on the first row. (Notice that the City, State, and PostalCode values are combined into one row, separated by commas and spaces.)

  8. Close the nested table.

  9. Repeat steps 6-8 for the other group in the right-hand outer table cell.

  10. Close the outer table.

  11. Open a new outer table to contain the remaining two groups of buyer information, "Sold To" and "Ship To".

  12. For the first group, open a "nested" table (a table within a table) inside the left-hand outer table cell.

  13. Find the name and full address values for the group and output them in four table rows with appropriate leading text on the first row. (Notice that the City, State, and PostalCode values are combined into one row, separated by commas and spaces.)

  14. Close the nested table.

  15. Repeat steps 12-14 for the other group in the right-hand outer table cell.

  16. Close the outer table.

As before, to see the person-friendly version of the data, the XML file is simply opened in a browser, which detects the XSLT reference, applies the template, and displays the result. Thus, by "reading" the XML code and data from a file and then "writing" the HTML code and data into the browser window, the XSLT template does in fact transform the information from one format to another.

Learning More

Of course, working XSLT files in a production environment are significantly more complex than these examples. While it is up to your technical staff to develop transforms that suit your corporate image using your own formatting, logos, and styles, NAMM provides additional information and maintains some sample XSLT transforms at http://www.namm.org/initiatives/b2b/docs/xslt-transforms-guide. On that page, you can open some XML files that use pre-written XSLT transforms to get an idea of what is possible, and you are welcome to download the XSLT files and modify them as you wish.

 

Note: You must be logged in to the NAMM site to access the XSLT transforms page. If you have an account, you may sign in here: /user; if you do not have an account, you may create one here: /user/register. NAMM web site accounts are free.

The screen shot below shows a sample invoice transformed by one of NAMM's example XSLT files. Notice that it uses header formatting similar to the ASN example above.

[image]

You can learn more about XSLT at the World Wide Web Consortium's (W3C) excellent "W3Schools" training site (http://w3schools.com/xsl/default.asp).