<!– EVERY REQUEST CONTAIN THE eparcel TAG –> <!ELEMENT eparcel (language?,

(  ratesAndServicesRequest |
        ratesAndServicesResponse |
        error
)+)>

<!ELEMENT language (#PCDATA)> <!ELEMENT comment (#PCDATA)>

<!– Standard request to ask for rates and services –> <!ELEMENT ratesAndServicesRequest ( merchantCPCID,

                                                                                        fromPostalCode?,
                                                                                        turnAroundTime?,
                                                                                        itemsPrice?,
                                                                                        lineItems,
                                                                                        city?,
                                                                                        provOrState,
                                                                                        country,
                                                                                        postalCode)>
<!ELEMENT merchantID (#PCDATA)>
<!ELEMENT fromPostalCode (#PCDATA)>
<!ELEMENT turnAroundTime (#PCDATA)>
<!ELEMENT itemsPrice (#PCDATA)>
<!ELEMENT merchantCPCID (#PCDATA)>
<!ELEMENT lineItems (item)+>
        <!ELEMENT item (quantity, weight, length, width, height, description, imageURL?, readyToShip)>
                <!ELEMENT quantity (#PCDATA)>
                <!ELEMENT weight (#PCDATA)>
                <!ELEMENT length (#PCDATA)>
                <!ELEMENT width (#PCDATA)>
                <!ELEMENT height (#PCDATA)>
                <!ELEMENT description (#PCDATA)>
                <!ELEMENT imageURL (#PCDATA)>
                <!ELEMENT readyToShip (#PCDATA)>
<!ELEMENT city (#PCDATA)>
<!ELEMENT provOrState (#PCDATA)>
<!ELEMENT country (#PCDATA)>
<!ELEMENT postalCode (#PCDATA)>

<!– Standard response for request for rates and services –> <!ELEMENT ratesAndServicesResponse (statusCode,

                                                                                        statusMessage+, 
                                                                                        requestID, 
                                                                                        handling, 
                                                                                        language, 
                                                                                        product+,   
                                                                                        packing*, 
                                                                                        emptySpace*, 
                                                                                        shippingOptions, 
                                                                                        comment,
                                                                                        nearestPostalOutlet*)>

<!ELEMENT statusCode (#PCDATA)>
<!ELEMENT statusMessage (#PCDATA)>
<!ELEMENT requestID (#PCDATA)>
<!ELEMENT handling (#PCDATA)>

<!ELEMENT product (name, rate, shippingDate, deliveryDate, deliveryDayOfWeek, nextDayAM?, packingID)>
        <!ATTLIST product       id    CDATA             #REQUIRED>
        <!ATTLIST product       sequence    CDATA    #REQUIRED>
        <!ELEMENT name (#PCDATA)>
        <!ELEMENT rate (#PCDATA)>
        <!ELEMENT shippingDate (#PCDATA)>
        <!ELEMENT deliveryDate (#PCDATA)>
        <!ELEMENT deliveryDayOfWeek (#PCDATA)>
        <!ELEMENT nextDayAM (#PCDATA)>
        <!ELEMENT packingID (#PCDATA)>

<!ELEMENT packing (packingID, box+)>
        <!ELEMENT box (name, weight, expediterWeight, length, width, height, packedItem+)>
                <!ELEMENT expediterWeight (#PCDATA)>
                <!ELEMENT packedItem (quantity, description)>

<!ELEMENT emptySpace (length, width, height, weight)>

<!ELEMENT shippingOptions (insurance, deliveryConfirmation, signature)>
        <!ELEMENT insurance (#PCDATA)>
        <!ELEMENT deliveryConfirmation (#PCDATA)>
        <!ELEMENT signature (#PCDATA)>

<!-- *********************************************************  -->
<!-- * 'nearestPostalOutlet'  is optional and is returned    *  -->
<!-- * only if the merchant profile has this option enabled  *  -->
<!-- *********************************************************  -->
<!ELEMENT nearestPostalOutlet (postalOutletSequenceNo,
                                                                                distance,
                                                                           outletName, 
                                                                                businessName , 
                                                                                postalAddress, 
                                                                                phoneNumber, 
                                                                                businessHours+)>
        <!ELEMENT postalOutletSequenceNo                (#PCDATA)>
        <!ELEMENT distance                      (#PCDATA)>
        <!ELEMENT outletName            (#PCDATA)>
        <!ELEMENT businessName          (#PCDATA)>
        <!ELEMENT postalAddress (addressLine+, postalCode , municipality)>
                <!ELEMENT addressLine           (#PCDATA)>
                <!ELEMENT municipality          (#PCDATA)>
        <!ELEMENT phoneNumber           (#PCDATA)>
        <!ELEMENT businessHours (dayId, dayOfWeek, time)>
                <!ELEMENT dayId                                         (#PCDATA)>
                <!ELEMENT dayOfWeek                                     (#PCDATA)>
                <!ELEMENT time                                          (#PCDATA)>

<!– Standard error format returned –> <!ELEMENT error (statusCode,statusMessage*)>