Product Catalog Appendix C - XML Formatting Standards

This is an appendix to the Product Catalog Implementation Guidelines.

This Appendix contains the XML Schema and the XML Document Type Definition that specify the XML-formatted file; click the + to view:

XML Schema
<?xml version="1.0" encoding="UTF-8"?> <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">

<xsd:element name="url">

<xsd:complexType>

<xsd:sequence>

<xsd:element ref="product"/>

<xsd:element ref="productImage"/>

<xsd:element ref="buy"/>

</xsd:sequence>

</xsd:complexType>

</xsd:element>

<xsd:element name="amount" type="xsd:string"/>

<xsd:element name="attribute1" type="xsd:string"/>

<xsd:element name="attributeClass">

<xsd:complexType>

<xsd:sequence>

<xsd:element maxOccurs="unbounded" minOccurs="1" ref="attribute1"/>

</xsd:sequence>

<xsd:attribute name="class_id" type="xsd:string" use="optional"/>

</xsd:complexType>

</xsd:element>

<xsd:element name="availability" type="xsd:string"/>

<xsd:element name="/pand" type="xsd:string"/>

<xsd:element name="buy" type="xsd:string"/>

<xsd:element name="category">

<xsd:complexType>

<xsd:sequence>

<xsd:element ref="primary"/>

<xsd:element ref="secondary"/>

</xsd:sequence>

</xsd:complexType>

</xsd:element>

<xsd:element name="cost">

<xsd:complexType>

<xsd:sequence>

<xsd:element ref="amount"/>

</xsd:sequence>

<xsd:attribute name="currency" type="xsd:string" use="optional"/>

</xsd:complexType>

</xsd:element>

<xsd:element name="createdOn" type="xsd:string"/>

<xsd:element name="description">

<xsd:complexType>

<xsd:sequence>

<xsd:element ref="short"/>

<xsd:element ref="long"/>

</xsd:sequence>

</xsd:complexType>

</xsd:element>

<xsd:element name="discount">

<xsd:complexType>

<xsd:sequence>

<xsd:element ref="amount"/>

<xsd:element ref="type"/>

</xsd:sequence>

<xsd:attribute name="currency" type="xsd:string" use="optional"/>

</xsd:complexType>

</xsd:element>

<xsd:element name="header">

<xsd:complexType>

<xsd:sequence>

<xsd:element ref="merchantId"/>

<xsd:element ref="merchantName"/>

<xsd:element ref="createdOn"/>

</xsd:sequence>

</xsd:complexType>

</xsd:element>

<xsd:element name="information" type="xsd:string"/>

<xsd:element name="keywords" type="xsd:string"/>

<xsd:element name="long" type="xsd:string"/>

<xsd:element name="m1" type="xsd:string"/>

<xsd:element name="modification" type="xsd:string"/>

<xsd:element name="merchandiser">

<xsd:complexType>

<xsd:sequence>

<xsd:element ref="header"/>

<xsd:element ref="product"/>

<xsd:element ref="trailer"/>

</xsd:sequence>

</xsd:complexType>

</xsd:element>

<xsd:element name="merchantId" type="xsd:string"/>

<xsd:element name="merchantName" type="xsd:string"/>

<xsd:element name="numberOfProducts" type="xsd:string"/>

<xsd:element name="pixel" type="xsd:string"/>

<xsd:element name="price">

<xsd:complexType>

<xsd:sequence>

<xsd:element ref="sale"/>

<xsd:element ref="retail"/>

</xsd:sequence>

<xsd:attribute name="currency" type="xsd:string" use="optional"/>

</xsd:complexType>

</xsd:element>

<xsd:element name="primary" type="xsd:string"/>

<xsd:element name="product">

<xsd:complexType mixed="true">

<xsd:choice maxOccurs="unbounded" minOccurs="0">

<xsd:element ref="category"/>

<xsd:element ref="/pand"/>

<xsd:element ref="shipping"/>

<xsd:element ref="keywords"/>

<xsd:element ref="upc"/>

<xsd:element ref="m1"/>

<xsd:element ref="pixel"/>

<xsd:element ref="attributeClass"/>

<xsd:element ref="modification"/>

</xsd:choice>

<xsd:attribute name="manufacturer_name" type="xsd:string" use="optional"/>

<xsd:attribute name="name" type="xsd:string" use="optional"/>

<xsd:attribute name="part_number" type="xsd:string" use="optional"/>

<xsd:attribute name="product_id" type="xsd:string" use="optional"/>

<xsd:attribute name="sku_number" type="xsd:string" use="optional"/>

</xsd:complexType>

</xsd:element>

<xsd:element name="productImage" type="xsd:string"/>

<xsd:element name="retail" type="xsd:string"/>

<xsd:element name="sale">

<xsd:complexType>

<xsd:attribute name="begin_date" type="xsd:string" use="optional"/>

<xsd:attribute name="end_date" type="xsd:string" use="optional"/>

</xsd:complexType>

</xsd:element>

<xsd:element name="secondary" type="xsd:string"/>

<xsd:element name="shipping">

<xsd:complexType>

<xsd:sequence>

<xsd:element ref="cost"/>

<xsd:element ref="information"/>

<xsd:element ref="availability"/>

</xsd:sequence>

</xsd:complexType>

</xsd:element>

<xsd:element name="short" type="xsd:string"/>

<xsd:element name="trailer">

<xsd:complexType>

<xsd:sequence>

<xsd:element ref="numberOfProducts"/>

</xsd:sequence>

</xsd:complexType>

</xsd:element>

<xsd:element name="type" type="xsd:string"/>

<xsd:element name="upc" type="xsd:string"/>

</xsd:schema>

XML Document Type Definition (DTD)

<!ELEMENT Actor ( #PCDATA ) >

<!ELEMENT Age ( #PCDATA ) >

<!ELEMENT Album ( #PCDATA ) >

<!ELEMENT APY ( #PCDATA ) >

<!ELEMENT Artist ( #PCDATA ) >

<!ELEMENT ATM_Surcharge ( #PCDATA ) >

<!ELEMENT Author ( #PCDATA ) >

<!ELEMENT Bonus_Other ( #PCDATA ) >

<!ELEMENT Card_Type ( #PCDATA ) >

<!ELEMENT CashAdvance_APR ( #PCDATA ) >

<!ELEMENT CashAdvance_Fee ( #PCDATA ) >

<!ELEMENT Category ( #PCDATA ) >

<!ELEMENT Color ( #PCDATA ) >

<!ELEMENT Dimensions ( #PCDATA ) >

<!ELEMENT Director ( #PCDATA ) >

<!ELEMENT Drive ( #PCDATA ) >

<!ELEMENT Features_Specs ( #PCDATA ) >

<!ELEMENT ForeignTrans_Fee ( #PCDATA ) >

<!ELEMENT Format ( #PCDATA ) >

<!ELEMENT Gender ( #PCDATA ) >

<!ELEMENT Genre ( #PCDATA ) >

<!ELEMENT Hard_Drive ( #PCDATA ) >

<!ELEMENT Intro_Annual_Fee ( #PCDATA ) >

<!ELEMENT Intro_Annual_Fee_Duration ( #PCDATA ) >

<!ELEMENT Intro_BalanceTransfer_APR ( #PCDATA ) >

<!ELEMENT Intro_BalanceTransfer_APR_Duration ( #PCDATA ) >

<!ELEMENT ISBN ( #PCDATA ) >

<!ELEMENT Label ( #PCDATA ) >

<!ELEMENT Make ( #PCDATA ) >

<!ELEMENT Marketing_Bullets ( #PCDATA ) >

<!ELEMENT Material ( #PCDATA ) >

<!ELEMENT Min_Balance_To_Open ( #PCDATA ) >

<!ELEMENT Miscellaneous ( #PCDATA ) >

<!ELEMENT Model ( #PCDATA ) >

<!ELEMENT Modem ( #PCDATA ) >

<!ELEMENT Monitor_Size ( #PCDATA ) >

<!ELEMENT Monthly_Service_Fee ( #PCDATA ) >

<!ELEMENT NSF_Fee ( #PCDATA ) >

<!ELEMENT Occasion ( #PCDATA ) >

<!ELEMENT Ongoing_Annual_Fee ( #PCDATA ) >

<!ELEMENT Ongoing_Balance_Transfer_ARP ( #PCDATA ) >

<!ELEMENT Ongoing_BalanceTransfer_Fee ( #PCDATA ) >

<!ELEMENT Ongoing_Purchase_APR ( #PCDATA ) >

<!ELEMENT Ongoing_Purch_APR_Duration ( #PCDATA ) >

<!ELEMENT Part_Number ( #PCDATA ) >

<!ELEMENT Penalty_APR ( #PCDATA ) >

<!ELEMENT Pet_Type ( #PCDATA ) >

<!ELEMENT Platform ( #PCDATA ) >

<!ELEMENT Power_Type ( #PCDATA ) >

<!ELEMENT Processor ( #PCDATA ) >

<!ELEMENT Product_Type ( #PCDATA ) >

<!ELEMENT Publish_Date ( #PCDATA ) >

<!ELEMENT Publisher ( #PCDATA ) >

<!ELEMENT Ram ( #PCDATA ) >

<!ELEMENT Rating ( #PCDATA ) >

<!ELEMENT Recipient ( #PCDATA ) >

<!ELEMENT Region ( #PCDATA ) >

<!ELEMENT Release_Date ( #PCDATA ) >

<!ELEMENT Rewards_Earned ( #PCDATA ) >

<!ELEMENT Size ( #PCDATA ) >

<!ELEMENT Song_Title ( #PCDATA ) >

<!ELEMENT Studio ( #PCDATA ) >

<!ELEMENT Style ( #PCDATA ) >

<!ELEMENT Teaser_Copy ( #PCDATA ) >

<!ELEMENT Theme ( #PCDATA ) >

<!ELEMENT Title ( #PCDATA ) >

<!ELEMENT URL ( product, productImage, buyLink ) >

<!ELEMENT Warranty ( #PCDATA ) >

<!ELEMENT amount ( #PCDATA ) >

<!ELEMENT attributes ( Actor | Age | Album | APY | Artist | ATM_Surcharge | Author | Bonus_Other | Card_Type | CashAdvance_APR | CashAdvance_Fee | Category | Color | Dimensions | Director | Drive | Features_Specs | ForeignTrans_Fee | Format | Gender | Genre | Hard_Drive | Intro_Annual_Fee | Intro_Annual_Fee_Duration | Intro_BalanceTransfer_APR| Intro_BalanceTransfer_APR_Duration | Intro_BalanceTransfer_Fee | Intro_Purchase_APR| Intro_Purch_APR_Duration | ISBN | Label | Make | Marketing_Bullets | Material | Min_Balance_To_Open | Miscellaneous | Model | Modem | Monitor_Size | Monthly_Service_Fee | NSF_Fee | Occasion | Ongoing_Annual_Fee | Ongoing_Balance_Transfer_ARP | Ongoing_BalanceTransfer_Fee | Ongoing_Purchase_APR | Ongoing_Purch_APR_Duration | Part_Number | Penalty_APR | Pet_Type | Platform | Power_Type | Processor | Product_Type | Publish_Date | Publisher | Ram | Rating | Recipient | Region | Release_Date | Rewards_Earned | Size | Song_Title | Studio | Style | Teaser_Copy | Terms URL | Theme | Title | Warranty )* >

<!ATTLIST attributes class_id NMTOKEN #REQUIRED >

<!ELEMENT availability ( #PCDATA ) >

<!ELEMENT /pand EMPTY >

<!ELEMENT buyLink ( #PCDATA ) >

<!ELEMENT category ( primary, secondary ) >

<!ELEMENT cost ( amount ) >

<!ATTLIST cost currency NMTOKEN #REQUIRED>

<!ELEMENT createdOn ( #PCDATA ) >

<!ELEMENT description ( short, long ) >

<!ELEMENT discount ( amount, type ) >

<!ATTLIST discount currency NMTOKEN #REQUIRED>

<!ELEMENT header ( merchantId, merchantName, createdOn ) >

<!ELEMENT information EMPTY >

<!ELEMENT keywords ( #PCDATA ) >

<!ELEMENT long ( #PCDATA ) >

<!ELEMENT m1 EMPTY >

<!ELEMENT modification (#PCDATA) >

<!ELEMENT merchandiser ( header, product+, trailer ) >

<!ELEMENT merchantId ( #PCDATA ) >

<!ELEMENT merchantName ( #PCDATA ) >

<!ELEMENT numberOfProducts ( #PCDATA ) >

<!ELEMENT pixel ( #PCDATA ) >

<!ELEMENT price ( sale, retail ) >

<!ATTLIST price currency NMTOKEN #REQUIRED>

<!ELEMENT primary ( #PCDATA ) >

<!ELEMENT product ( category, URL, description, discount, price, /pand, shipping, keywords, upc, m1, pixel, attributes, modification? ) >

<!ATTLIST product manufacturer_name CDATA #FIXED "" >

<!ATTLIST product name CDATA #REQUIRED >

<!ATTLIST product part_number CDATA #FIXED "" >

<!ATTLIST product product_id NMTOKEN #REQUIRED >

<!ATTLIST product sku_number ID #REQUIRED >

<!ELEMENT productImage ( #PCDATA ) >

<!ELEMENT product ( #PCDATA ) >

<!ELEMENT retail ( #PCDATA ) >

<!ELEMENT sale EMPTY >

<!ATTLIST sale begin_date CDATA #FIXED "" >

<!ATTLIST sale end_date CDATA #FIXED "" >

<!ELEMENT secondary ( #PCDATA ) >

<!ELEMENT shipping ( cost, information, availability ) >

<!ELEMENT short ( #PCDATA ) >

<!ELEMENT trailer ( numberOfProducts ) >

<!ELEMENT type ( #PCDATA ) >

<!ELEMENT upc EMPTY >

Was this article helpful?
0 out of 0 found this helpful

Comments

0 comments

Please sign in to leave a comment.