<!--
   Tech Data Corporation
   XML Order Status Response Message Guideline.
   https://tdxml.techdata.com:443/xmlservlet
   Version 1.4
   Date: 02/22/04 

   
   Revision History:
     Version 1.3
       01/25/01 - Corrected tag conflict. "BillToAcctNbr" was also reference as "BillToAccountNbr".

       03/06/02 - Added ability to include Sales Order, Line Level status ("LineStatus") during PurposeCode "02" (Order/Invoice) requests. 
              This functionality is driven by the presence of the optional XML_OrderStatus_Submit, "LineStatusInd" tag having a "Y" value.
              Allowable XML_OrderStatus_Submit, "LineStatusInd" values include:
              "Y" = "Yes", provides Line Level status in the Response message   
              "N" = "No", does not provide Line Level status in the Response message   

   	 12/21/03  - Added ResponseVersion: Optional element for specifying the Response DTD version. 
      
     Version 1.4
	 02/22/04 - UserName and Password now optional	    
-->

<!ELEMENT XML_OrderStatus_Response (
	Header ,
	Detail ,
	Summary ) >

<!ELEMENT Header (
	UserName? ,
	Password? ,
	TransSetIDCode ,
	TransControlID? ,
	ResponseVersion? ) >

<!-- Segment -->
<!ELEMENT UserName (#PCDATA) >
<!ELEMENT Password (#PCDATA) >

<!-- ST Segment -->
<!ELEMENT TransSetIDCode (#PCDATA) >
<!ELEMENT TransControlID (#PCDATA) >
<!ELEMENT ResponseVersion (#PCDATA) >

<!ELEMENT Detail (
	PurposeCode ,
	RefInfo+ ,
	ErrorInfo* ,
	OrderStatus ,
	Terms ,
	CurrencyType ,
  	ShipmentDisp ,
	ShipmentDispQual ,
	PackageDisp ,
	PackageDispQual ,
	BillToAcctNbr ,
	ShipToName ,
	ShipToAddr1 , 
	ShipToAddr2 ,
	ShipToAddr3 ,
	ShipToCity ,
	ShipToStateProv ,
	ShipToPostalCode ,
	ContactFuncCode ,
	ContactName ,
	InvoiceTotal ,
 	PaymentTotal,
	HandlingCharge ,
	CODCharge ,
	NetFreightCharge ,
	TaxCharge ,
	PromoAllowance ,
	LineInfo+ , 
	NbrOfOrderLines ) >

<!-- BSR Segment -->
<!ELEMENT PurposeCode (#PCDATA) >

<!ELEMENT RefInfo (
	RefID , 
	RefIDQual ) >

<!-- REF Segment -->
<!ELEMENT RefIDQual (#PCDATA) >
<!ELEMENT RefID (#PCDATA) >

<!ELEMENT ErrorInfo (
	ErrorID ,
	ErrorIDQual ,
	ErrorDesc ) >

<!-- Error REF Segment -->
<!ELEMENT ErrorIDQual (#PCDATA) >
<!ELEMENT ErrorID (#PCDATA) >
<!ELEMENT ErrorDesc (#PCDATA) >

<!-- NTE Segment -->
<!ELEMENT OrderStatus (#PCDATA) >
<!ELEMENT Terms (#PCDATA) >

<!-- CUR Segment -->
<!ELEMENT CurrencyType (#PCDATA) >

<!-- PKG Segment -->
<!ELEMENT ShipmentDispQual (#PCDATA) >
<!ELEMENT ShipmentDisp (#PCDATA) >
<!ELEMENT PackageDispQual (#PCDATA) >
<!ELEMENT PackageDisp (#PCDATA) >
<!ELEMENT BillToAcctNbr (#PCDATA) >

<!-- N1 Segment -->
<!ELEMENT ShipToName (#PCDATA) >

<!-- N3 Segment -->
<!ELEMENT ShipToAddr1 (#PCDATA) >
<!ELEMENT ShipToAddr2 (#PCDATA) >
<!ELEMENT ShipToAddr3 (#PCDATA) >

<!-- N4 Segment -->
<!ELEMENT ShipToCity (#PCDATA) >
<!ELEMENT ShipToStateProv (#PCDATA) >
<!ELEMENT ShipToPostalCode (#PCDATA) >

<!-- PER Segment -->
<!ELEMENT ContactFuncCode (#PCDATA) >
<!ELEMENT ContactName (#PCDATA) >

<!-- TDS Segment -->
<!ELEMENT InvoiceTotal (#PCDATA) >
<!ELEMENT PaymentTotal (#PCDATA) >
<!ELEMENT HandlingCharge (#PCDATA) >
<!ELEMENT CODCharge (#PCDATA) >
<!ELEMENT NetFreightCharge (#PCDATA) >
<!ELEMENT TaxCharge (#PCDATA) >
<!ELEMENT PromoAllowance (#PCDATA) >

<!ELEMENT LineInfo (
	AssignedID ,
	ProductID ,
	ProductIDQual ,
	ProductDesc ,
	LineStatus? ,
	UnitOfMeasure ,	
	UnitPrice ,
	ExtendedPrice ,
  	WhseDesc ,
	ShipViaDesc ,
	QtyOrdered ,
	QtyShipped ,
	QtyBackordered ,
	QtyReturned ,
	DateShipped ,	 
	LineErrorInfo* ) >
	  
<!-- PO1 Segment -->
<!ELEMENT AssignedID (#PCDATA) >
<!ELEMENT ProductIDQual (#PCDATA) >
<!ELEMENT ProductID (#PCDATA) >
<!ELEMENT ProductDesc (#PCDATA) >
<!ELEMENT LineStatus (#PCDATA) >
<!ELEMENT UnitOfMeasure (#PCDATA) >
<!ELEMENT UnitPrice (#PCDATA) >
<!ELEMENT ExtendedPrice (#PCDATA) >
<!ELEMENT WhseDesc (#PCDATA) >

<!-- TD5 Segment -->
<!ELEMENT ShipViaDesc (#PCDATA) >

<!-- QTY Segment -->
<!ELEMENT QtyOrdered (#PCDATA) >
<!ELEMENT QtyShipped (#PCDATA) >
<!ELEMENT QtyBackordered (#PCDATA) >
<!ELEMENT QtyReturned (#PCDATA) >

<!-- DTM Segment -->
<!ELEMENT DateShipped (#PCDATA) >

<!ELEMENT LineErrorInfo (
	LineErrorID ,
	LineErrorIDQual ,
	LineErrorDesc ) >

<!-- AMT Segment -->
<!ELEMENT TotalValue (#PCDATA) >

<!-- CTT Segment -->
<!ELEMENT NbrOfOrderLines (#PCDATA) >

<!ELEMENT Summary (
	NbrOfSegments ) >

<!-- SE Segment -->
<!ELEMENT NbrOfSegments (#PCDATA) >