cvc-complex-type.2.4.a:从元素Media开始发现无效内容

时间:2018-02-21 16:35:52

标签: java xml xsd xsd-validation xml-validation

我在XML下生成

XML

<?xml version="1.0" encoding="UTF-16"?>
<catalogue xmlns="http://api.anteenaa.com/schemas/brand/v3/product">
    <products>
        <product>
            <brandProductId>414367</brandProductId>
            <categoryCodes>
                <categoryCode>DAY DRESSES (0002)</categoryCode>
            </categoryCodes>
            <productNames>
                <productName>Nola Animal Dress</productName>
            </productNames>
            <productShortDescriptions>
                <productShortDescription>Nola Animal Dress</productShortDescription>
            </productShortDescriptions>
            <productLongDescriptions>
                <productLongDescription>A standout print of exotic animals makes our Nola dress for girls a bright idea for daytime dos. With a scallop hem, sequin embellishments and tassel neckline, this colourful cotton number will have all eyes on her style. It features a bow and cut-out detail at the back, and is fully lined.</productLongDescription>
            </productLongDescriptions>
            <season>SS18</season>
            <genders>
                <gender>Girls</gender>
            </genders>
            <sizeGridCode>8</sizeGridCode>
            <materialComposition>
                <compositionComponent componentName="Outer">
                    <material name="Polyester" percentage="100"/>
                    <material name="Cotton Trim" percentage="100"/>
                    <material name="Cotton Lining" percentage="100"/>
                </compositionComponent>
            </materialComposition>
            <productCommonAttributes>
                <productCommonAttribute key="AP01_comp_lining">cotton</productCommonAttribute>
                <productCommonAttribute key="AP01_comp_outer">cotton</productCommonAttribute>
                <productCommonAttribute key="AP01_style">Dress</productCommonAttribute>
                <productCommonAttribute key="AP01_type">Dress</productCommonAttribute>
            </productCommonAttributes>
            <productCategoryAttributes>
                <productCategoryAttribute key="det_occasion">Leisure</productCategoryAttribute>
                <productCategoryAttribute key="form_neckline">Round</productCategoryAttribute>
                <productCategoryAttribute key="form_trouser_rise">Short</productCategoryAttribute>
                <productCategoryAttribute key="info_countryOrigin">IND</productCategoryAttribute>
                <productCategoryAttribute key="info_exclusivity">None</productCategoryAttribute>
                <productCategoryAttribute key="info_guarantee">n/a</productCategoryAttribute>
                <productCategoryAttribute key="IronMethod">Refer to product label</productCategoryAttribute>
                <productCategoryAttribute key="ironTemp">Cool Iron</productCategoryAttribute>
                <productCategoryAttribute key="washMethod">machine wash</productCategoryAttribute>
                <productCategoryAttribute key="washTemp">40</productCategoryAttribute>
                <productCategoryAttribute key="waterproof">false</productCategoryAttribute>
                <productCategoryAttribute key="beltIncluded">false</productCategoryAttribute>
                <productCategoryAttribute key="dressDetail">Other</productCategoryAttribute>
                <productCategoryAttribute key="fasteningType">No fastensing</productCategoryAttribute>
                <productCategoryAttribute key="waterResistant">n/a</productCategoryAttribute>
                <productCategoryAttribute key="dim_length_overall_desc">Short</productCategoryAttribute>
                <productCategoryAttribute key="dim_length_sleeve_desc">Sleeveless</productCategoryAttribute>
            </productCategoryAttributes>
            <articles>
                <article>
                    <brandArticleSku>4143672632</brandArticleSku>
                    <ean>5045461435478</ean>
                    <brandProductLineId>41436726</brandProductLineId>
                    <sizeGridValue>12-13 Years</sizeGridValue>
                    <brandColourNames>
                        <brandColourName locale="gb_EN">Ivory</brandColourName>
                    </brandColourNames>
                    <colourCodes>
                        <colourCode rank="3">26</colourCode>
                    </colourCodes>
                    <articleMedia>
                        <media>
                            <mediaType>Images</mediaType>
                            <sortOrder>3</sortOrder>
                        </media>
                    </articleMedia>
                </article>
                <article>
                    <brandArticleSku>4143672633</brandArticleSku>
                    <ean>5045461435409</ean>
                    <brandProductLineId>41436726</brandProductLineId>
                    <sizeGridValue>5 Years</sizeGridValue>
                    <brandColourNames>
                        <brandColourName locale="gb_EN">Ivory</brandColourName>
                    </brandColourNames>
                    <colourCodes>
                        <colourCode rank="3">26</colourCode>
                    </colourCodes>
                    <articleMedia>
                        <media>
                            <mediaType>Images</mediaType>
                            <sortOrder>3</sortOrder>
                        </media>
                    </articleMedia>
                </article>
            </articles>
        </product>
    </products>
</catalogue>

XSD

<?xml version="1.0" encoding="UTF-8"?>
<xs:schema version="1.0.0" xmlns="http://api.anteena.com/schemas/brand/v3/product"
           targetNamespace="http://api.anteena.com/schemas/brand/v3/product"
           xmlns:common="http://api.anteena.com/schemas/brand/v3/commonTypes"
           xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified"
           attributeFormDefault="unqualified">

    <xs:import namespace="http://api.anteena.com/schemas/brand/v3/commonTypes" schemaLocation="commonTypes.xsd" />

    <xs:element name="catalogue">
        <xs:complexType>
            <xs:sequence>
                <xs:element ref="header"/>
                <xs:element name="products">
                    <xs:complexType>
                        <xs:sequence>
                            <xs:element ref="product" maxOccurs="unbounded"/>
                        </xs:sequence>
                    </xs:complexType>
                </xs:element>
            </xs:sequence>
        </xs:complexType>
    </xs:element>

    <xs:element name="header">
        <xs:complexType >
            <xs:sequence>
                <xs:element name="brandLogo"  type="xs:string" minOccurs="0"/>
            </xs:sequence>
        </xs:complexType>
    </xs:element>

    <xs:element name="product">
        <xs:complexType>
            <xs:sequence>
                <xs:element name="brandProductId" type="xs:string"/>
                <xs:element name="categoryCodes" type="categoryCodes"/>
                <xs:element name="productNames" type="productNames"/>
                <xs:element name="productShortDescriptions" type="productShortDescriptions"/>
                <xs:element name="productLongDescriptions" type="productLongDescriptions"/>
                <xs:element name="season" type="xs:string"/>
                <xs:element name="genders" type="genders"/>
                <xs:element name="sizeGridCode" type="xs:string"/>
                <xs:element name="materialComposition" type="materialComposition"/>
                <xs:element name="productSubBrandCode" type="xs:string" minOccurs="0"/>
                <xs:element name="productCommonAttributes" type="productCommonAttributes" minOccurs="0"/>
                <xs:element name="productCategoryAttributes" type="productCategoryAttributes" minOccurs="0"/>
                <xs:element name="keywords" type="keywords" minOccurs="0"/>
                <xs:element name="productBullets" type="productBullets" minOccurs="0"/>
                <xs:element name="productDeliveryServiceCodes" type="productDeliveryServiceCodes" minOccurs="0"/>
                <xs:element name="extensions" type="common:extensions" minOccurs="0"/>
                <xs:element name="articles">
                    <xs:complexType>
                        <xs:sequence>
                            <xs:element ref="article" maxOccurs="unbounded"/>
                        </xs:sequence>
                    </xs:complexType>
                </xs:element>
            </xs:sequence>
        </xs:complexType>
    </xs:element>

    <xs:complexType name="categoryCodes">
        <xs:sequence>
            <xs:element name="categoryCode" type="categoryCode" maxOccurs="unbounded"/>
        </xs:sequence>
    </xs:complexType>

    <xs:complexType name="genders">
        <xs:sequence>
            <xs:element name="gender" type="xs:string" maxOccurs="unbounded"/>
        </xs:sequence>
    </xs:complexType>

    <xs:complexType name="productName">
        <xs:simpleContent>
            <xs:extension base="xs:string">
                <xs:attribute type="xs:string" use="optional" name="locale"/>
            </xs:extension>
        </xs:simpleContent>
    </xs:complexType>

    <xs:complexType name="productNames">
        <xs:sequence>
            <xs:element name="productName" type="productName" maxOccurs="unbounded"/>
        </xs:sequence>
    </xs:complexType>

    <xs:complexType name="productShortDescriptions">
        <xs:sequence>
            <xs:element name="productShortDescription" type="common:localeDescription" maxOccurs="unbounded"/>
        </xs:sequence>
    </xs:complexType>

    <xs:complexType name="productLongDescriptions">
        <xs:sequence>
            <xs:element name="productLongDescription" type="common:localeDescription" maxOccurs="unbounded"/>
        </xs:sequence>
    </xs:complexType>

    <xs:complexType name="productCommonAttributes">
        <xs:sequence>
            <xs:element name="productCommonAttribute" type="productAttribute" minOccurs="0" maxOccurs="unbounded"/>
        </xs:sequence>
    </xs:complexType>

    <xs:complexType name="productCategoryAttributes">
        <xs:sequence>
            <xs:element name="productCategoryAttribute" type="productAttribute" minOccurs="0" maxOccurs="unbounded"/>
        </xs:sequence>
    </xs:complexType>

    <xs:complexType name="productBullets">
        <xs:sequence>
            <xs:element name="bulletSet" type="bulletSet" maxOccurs="unbounded"/>
        </xs:sequence>
    </xs:complexType>

    <xs:complexType name="bulletSet">
        <xs:sequence>
            <xs:element name="productBullet" type="productBullet" maxOccurs="unbounded"/>
        </xs:sequence>
        <xs:attribute name="locale" type="xs:string"/>
    </xs:complexType>

    <xs:complexType name="productDeliveryServiceCodes">
        <xs:sequence>
            <xs:element name="deliveryServiceCode" type="xs:string" maxOccurs="unbounded"/>
        </xs:sequence>
    </xs:complexType>

    <xs:complexType name="productAttribute">
        <xs:simpleContent>
            <xs:extension base="xs:string">
                <xs:attribute name="key" type="xs:string" use="optional"/>
            </xs:extension>
        </xs:simpleContent>
    </xs:complexType>

    <xs:complexType name="productBullet">
        <xs:simpleContent>
            <xs:extension base="xs:string">
                <xs:attribute name="name" type="xs:string"/>
                <xs:attribute name="order" type="xs:int"/>
            </xs:extension>
        </xs:simpleContent>
    </xs:complexType>

    <xs:element name="article">
        <xs:complexType>
            <xs:sequence>
                <xs:element name="brandArticleSku" type="common:brandArticleSku"/>
                <xs:element name="ean" type="common:ean"/>
                <xs:element name="brandProductLineId" type="xs:string"/>
                <xs:element name="sizeGridValue" type="xs:string"/>
                <xs:element name="perpetualStock" type="xs:boolean" minOccurs="0"/>
                <xs:element name="brandColourNames" type="brandColourNames"/>
                <xs:element name="colourCodes" type="colourCodes"/>
                <xs:element name="articleMedia" type="common:articleMedia" minOccurs="0"/>
                <xs:element name="CategoryAttributes" type="categoryAttributes" minOccurs="0"/>
                <xs:element name="extensions" type="common:extensions" minOccurs="0"/>
                <xs:element name="channels" type="channels"/>
            </xs:sequence>
        </xs:complexType>
    </xs:element>

    <!-- channels type Definition -->
    <xs:complexType name="channels">
        <xs:sequence>
            <xs:element name="countryChannel" minOccurs="0" maxOccurs="unbounded">
                <xs:complexType>
                    <xs:sequence>
                        <xs:element name="wholesale" minOccurs="0" type="xs:boolean"/>
                        <xs:element name="excludeRetailerChannels" minOccurs="0">
                            <xs:complexType>
                                <xs:sequence>
                                    <xs:element name="excludeRetailerChannel" minOccurs="0" maxOccurs="unbounded" type="xs:string"/>
                                </xs:sequence>
                            </xs:complexType>
                        </xs:element>
                        <xs:element name="price" type="price" minOccurs="0"/>
                    </xs:sequence>
                    <xs:attribute name="countryCode" type="xs:string"/>
                    <xs:attribute name="active" type="xs:boolean" />
                </xs:complexType>
            </xs:element>
            <xs:element name="retailerChannel" minOccurs="0" maxOccurs="unbounded">
                <xs:complexType>
                    <xs:sequence>
                        <xs:element name="wholesale" minOccurs="0" type="xs:boolean"/>
                        <xs:element name="price" type="price" minOccurs="0"/>
                    </xs:sequence>
                    <xs:attribute name="channelCode" type="xs:string"/>
                    <xs:attribute name="active" type="xs:boolean" />
                </xs:complexType>
            </xs:element>
        </xs:sequence>
    </xs:complexType>

    <xs:complexType name="price">
        <xs:sequence>
            <xs:element name="priceContextCode" type="xs:string"/>
            <xs:element name="currency" type="xs:string"/>
            <xs:element name="brandRRP" type="xs:double"/>
            <xs:element name="currentPrice" type="xs:double"/>
            <xs:element name="previousPrice" minOccurs="0" type="xs:double"/>
            <xs:element name="vatTreatmentCode" type="xs:int"/>
            <xs:element name="extensions" minOccurs="0" type="common:extensions"/>
        </xs:sequence>
    </xs:complexType>

    <xs:complexType name="colourCodes">
        <xs:sequence>
            <xs:element name="colourCode" type="colourCode" maxOccurs="unbounded"/>
        </xs:sequence>
    </xs:complexType>

    <xs:complexType name="brandColourNames">
        <xs:sequence>
            <xs:element name="brandColourName" type="common:localeDescription" maxOccurs="unbounded"/>
        </xs:sequence>
    </xs:complexType>

    <xs:complexType name="categoryAttributes">
        <xs:sequence>
            <xs:element name="categoryAttribute" type="productAttribute" maxOccurs="unbounded"/>
        </xs:sequence>
    </xs:complexType>

    <xs:complexType name="articleMedia">
        <xs:sequence>
            <xs:element name="media" type="media" minOccurs="0" maxOccurs="unbounded"/>
        </xs:sequence>
    </xs:complexType>

    <xs:complexType name="media">
        <xs:sequence>
            <xs:element name="mediaType" type="xs:string"/>
            <xs:element name="mediaURL" type="xs:string" minOccurs="0" />
            <xs:element name="mediaFileReference" type="xs:string" minOccurs="0" />
            <xs:element name="sortOrder" type="xs:int"/>
            <xs:element name="extensions" type="common:extensions" minOccurs="0"/>
        </xs:sequence>
    </xs:complexType>

    <xs:complexType name="categoryCode">
        <xs:simpleContent>
            <xs:extension base="xs:string">
                <xs:attribute name="order" type="xs:int"/>
            </xs:extension>
        </xs:simpleContent>
    </xs:complexType>

    <xs:complexType name="colourCode">
        <xs:simpleContent>
            <xs:extension base="xs:string">
                <xs:attribute name="rank" type="xs:int"/>
            </xs:extension>
        </xs:simpleContent>
    </xs:complexType>

    <xs:complexType name="keywords">
        <xs:sequence>
            <xs:element name="keywordSet" type="keywordSet" maxOccurs="unbounded"/>
        </xs:sequence>
    </xs:complexType>

    <xs:complexType name="keywordSet">
        <xs:sequence>
            <xs:element name="keyword" type="xs:string" minOccurs="0" maxOccurs="unbounded"/>
        </xs:sequence>
        <xs:attribute name="locale" type="xs:string" use="optional" />
    </xs:complexType>

    <xs:complexType name="materialComposition">
        <xs:sequence>
            <xs:element name="compositionComponent" type="compositionComponent" maxOccurs="unbounded"/>
        </xs:sequence>
    </xs:complexType>

    <xs:complexType name="compositionComponent">
        <xs:sequence>
            <xs:element name="material" type="material" maxOccurs="unbounded"/>
        </xs:sequence>
        <xs:attribute name="componentName" use="optional" type="xs:string"/>
    </xs:complexType>

    <xs:complexType name="material">
        <xs:attribute name="name" type="xs:string" use="optional"/>
        <xs:attribute name="percentage" type="common:percentage" use="optional"/>
    </xs:complexType>

</xs:schema>

在验证xml时,显示错误如此

[{"inputErrorMessage":"cvc-complex-type.2.4.a: Invalid content was found starting with element mediaType. One of {\"http://api.anteena.com/schemas/brand/v3/commonTypes\":media} is expected. 

我在stackoverflow上看过max所有与此问题相关的帖子并且也用google搜索,但首先我无法理解为什么会发生这种情况以及可能是什么修复...?

任何人都可以帮助理解这个问题并修复此问题吗?这是我第三天在这个问题上的花费..!

更新:

    <common:articleMedia>
                            <common:media>
                                <common:mediaType>Images</mediaType>
                                <common:sortOrder>3</sortOrder>
                            </common:media>
  </common:articleMedia>

commonTypes.xsd

<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
           targetNamespace="http://api.anteena.com/schemas/brand/v3/commonTypes"
           xmlns="http://api.anteena.com/schemas/brand/v3/commonTypes"
           elementFormDefault="qualified"
           attributeFormDefault="unqualified">

    <xs:simpleType name="brandCode">
        <xs:restriction base="xs:integer" />
    </xs:simpleType>

    <!--   ean type Definition (11 to 13 digits) -->
    <xs:simpleType name="ean">
        <xs:restriction base="xs:string">
            <xs:pattern value="(\\s|[0-9]{11,13})?" />
        </xs:restriction>
    </xs:simpleType>

    <!-- brandsku type Definition  -->
    <xs:simpleType  name="brandArticleSku">
        <xs:restriction base="xs:string">
            <xs:minLength value="1"/>
            <xs:maxLength value="50"/>
        </xs:restriction>
    </xs:simpleType>

    <!-- percentage type Definition  -->
    <xs:simpleType name="percentage">
        <xs:restriction base="xs:integer">
            <xs:minInclusive value="0"/>
            <xs:maxInclusive value="100"/>
        </xs:restriction>
    </xs:simpleType>

    <xs:complexType name="extension">
        <xs:sequence>
            <xs:element name="extensionName" type="xs:string"/>
            <xs:element name="extensionValue" type="xs:string"/>
        </xs:sequence>
    </xs:complexType>

    <!-- address type Definition    -->
        <xs:complexType name="address">
            <xs:sequence>
                <xs:element name="retailerCustomerNumber" type="xs:integer"/>
                <xs:element name="title" type="xs:string"/>
                <xs:element name="firstName" type="xs:string"/>
                <xs:element name="lastName" type="xs:string"/>
                <xs:element name="address1" type="AddressStringType"/>
                <xs:element name="address2" type="AddressStringType" minOccurs="0"/>
                <xs:element name="address3" type="AddressStringType" minOccurs="0"/>
                <xs:element name="address4" type="AddressStringType" minOccurs="0"/>
                <xs:element name="address5" type="AddressStringType" minOccurs="0"/>
                <xs:element name="address6" type="AddressStringType" minOccurs="0"/>
                <xs:element name="zip" type="AddressStringType"/>
                <xs:element name="city" type="AddressStringType"/>
                <xs:element name="state" type="AddressStringType" minOccurs="0"/>
                <xs:element name="country" type="AddressStringType"/>
                <xs:element name="addressString" type="xs:string"/>
                <xs:element name="email" type="email"/>
                <xs:element name="homeTel" minOccurs="0" type="telephone"/>
                <xs:element name="mobileTel" minOccurs="0" type="telephone"/>
                <xs:element name="workTel" minOccurs="0" type="telephone"/>
                <xs:element name="extensions" type="extensions" minOccurs="0"/>
            </xs:sequence>
        </xs:complexType>

    <!-- Standard Address String Type    -->
    <xs:simpleType name="AddressStringType">
        <xs:restriction base="xs:string">
            <xs:minLength value="0"/>
            <xs:maxLength value="256"/>
        </xs:restriction>
    </xs:simpleType>

    <!-- email type Definition -->
    <xs:simpleType name="email">
        <xs:restriction base="xs:string">
            <xs:minLength value="1"/>
            <xs:maxLength value="256"/>
        </xs:restriction>
    </xs:simpleType>

    <!-- telephone type Definition -->
    <xs:simpleType name="telephone">
        <xs:restriction base="xs:string">
            <xs:minLength value="0"/>
            <xs:maxLength value="20"/>
        </xs:restriction>
    </xs:simpleType>

    <!-- money type Definition -->
    <xs:simpleType name="money">
        <xs:restriction base="xs:decimal">
            <xs:fractionDigits value="2" />
        </xs:restriction>
    </xs:simpleType>

    <!--  Generic Price Type definition -->
    <xs:simpleType name="priceType">
        <xs:restriction base="xs:decimal">
            <!-- Price must be Greater than Zero -->
            <xs:minExclusive value="0"/>
            <!-- Maximum of 2DP supported  -->
            <xs:fractionDigits value="2" />
        </xs:restriction>
    </xs:simpleType>

    <!-- type extensions Definition -->
    <xs:complexType name="extensions">
        <xs:sequence>
            <xs:element name="extension" type="extension" minOccurs="0" maxOccurs="unbounded"/>
        </xs:sequence>
    </xs:complexType>

    <xs:complexType name="localeDescription">
        <xs:simpleContent>
            <xs:extension base="xs:string">
                <xs:attribute name="locale" type="localeType"/>
            </xs:extension>
        </xs:simpleContent>
    </xs:complexType>

    <xs:simpleType name="localeType">
        <xs:restriction base="xs:string">
            <xs:length value="5" />
            <xs:pattern value="[a-z]{2}(_|-)[A-Z]{2}" />
        </xs:restriction>
    </xs:simpleType>

    <xs:complexType name="articleMedia">
        <xs:sequence>
            <xs:element name="media" type="media" minOccurs="0" maxOccurs="unbounded"/>
        </xs:sequence>
    </xs:complexType>

    <xs:complexType name="media">
        <xs:sequence>
            <xs:element name="mediaType" type="xs:string"/>
            <xs:element name="mediaURL" type="xs:string" minOccurs="0" />
            <xs:element name="mediaFileReference" type="xs:string" minOccurs="0" />
            <xs:element name="sortOrder" type="xs:int"/>
            <xs:element name="extensions" type="extensions" minOccurs="0"/>
        </xs:sequence>
    </xs:complexType>

</xs:schema>

1 个答案:

答案 0 :(得分:0)

您的XML文件需要进行大量更正,包括:

  1. 将编码更改为UTF-8而不是UTF-16(但如果您的数据是 真正的UTF-16,您无需更改此内容。)
  2. 定义common:名称空间前缀,并在mediamediaType上使用, 和sortOrder元素。
  3. 每个XSD添加了几个缺少的必需元素。
  4. 修复了名称空间中的拼写错误:anteena.com,而不是anteenaa.com
  5. 这是您的XML文件对XSD有效:

    <?xml version="1.0" encoding="UTF-8"?>
    <catalogue xmlns="http://api.anteena.com/schemas/brand/v3/product"
               xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
               xmlns:common="http://api.anteena.com/schemas/brand/v3/commonTypes"
               xsi:schemaLocation="http://api.anteena.com/schemas/brand/v3/product try.xsd">
    
      <header/>
      <products>
        <product>
          <brandProductId>414367</brandProductId>
          <categoryCodes>
            <categoryCode>DAY DRESSES (0002)</categoryCode>
          </categoryCodes>
          <productNames>
            <productName>Nola Animal Dress</productName>
          </productNames>
          <productShortDescriptions>
            <productShortDescription>Nola Animal Dress</productShortDescription>
          </productShortDescriptions>
          <productLongDescriptions>
            <productLongDescription>A standout print of exotic animals makes our Nola dress for girls a bright idea for daytime dos. With a scallop hem, sequin embellishments and tassel neckline, this colourful cotton number will have all eyes on her style. It features a bow and cut-out detail at the back, and is fully lined.</productLongDescription>
          </productLongDescriptions>
          <season>SS18</season>
          <genders>
            <gender>Girls</gender>
          </genders>
          <sizeGridCode>8</sizeGridCode>
          <materialComposition>
            <compositionComponent componentName="Outer">
              <material name="Polyester" percentage="100"/>
              <material name="Cotton Trim" percentage="100"/>
              <material name="Cotton Lining" percentage="100"/>
            </compositionComponent>
          </materialComposition>
          <productCommonAttributes>
            <productCommonAttribute key="AP01_comp_lining">cotton</productCommonAttribute>
            <productCommonAttribute key="AP01_comp_outer">cotton</productCommonAttribute>
            <productCommonAttribute key="AP01_style">Dress</productCommonAttribute>
            <productCommonAttribute key="AP01_type">Dress</productCommonAttribute>
          </productCommonAttributes>
          <productCategoryAttributes>
            <productCategoryAttribute key="det_occasion">Leisure</productCategoryAttribute>
            <productCategoryAttribute key="form_neckline">Round</productCategoryAttribute>
            <productCategoryAttribute key="form_trouser_rise">Short</productCategoryAttribute>
            <productCategoryAttribute key="info_countryOrigin">IND</productCategoryAttribute>
            <productCategoryAttribute key="info_exclusivity">None</productCategoryAttribute>
            <productCategoryAttribute key="info_guarantee">n/a</productCategoryAttribute>
            <productCategoryAttribute key="IronMethod">Refer to product label</productCategoryAttribute>
            <productCategoryAttribute key="ironTemp">Cool Iron</productCategoryAttribute>
            <productCategoryAttribute key="washMethod">machine wash</productCategoryAttribute>
            <productCategoryAttribute key="washTemp">40</productCategoryAttribute>
            <productCategoryAttribute key="waterproof">false</productCategoryAttribute>
            <productCategoryAttribute key="beltIncluded">false</productCategoryAttribute>
            <productCategoryAttribute key="dressDetail">Other</productCategoryAttribute>
            <productCategoryAttribute key="fasteningType">No fastensing</productCategoryAttribute>
            <productCategoryAttribute key="waterResistant">n/a</productCategoryAttribute>
            <productCategoryAttribute key="dim_length_overall_desc">Short</productCategoryAttribute>
            <productCategoryAttribute key="dim_length_sleeve_desc">Sleeveless</productCategoryAttribute>
          </productCategoryAttributes>
          <articles>
            <article>
              <brandArticleSku>4143672632</brandArticleSku>
              <ean>5045461435478</ean>
              <brandProductLineId>41436726</brandProductLineId>
              <sizeGridValue>12-13 Years</sizeGridValue>
              <brandColourNames>
                <brandColourName locale="gb_EN">Ivory</brandColourName>
              </brandColourNames>
              <colourCodes>
                <colourCode rank="3">26</colourCode>
              </colourCodes>
              <articleMedia>
                <common:media>
                  <common:mediaType>Images</common:mediaType>
                  <common:sortOrder>3</common:sortOrder>
                </common:media>
              </articleMedia>
              <channels/>
            </article>
            <article>
              <brandArticleSku>4143672633</brandArticleSku>
              <ean>5045461435409</ean>
              <brandProductLineId>41436726</brandProductLineId>
              <sizeGridValue>5 Years</sizeGridValue>
              <brandColourNames>
                <brandColourName locale="gb_EN">Ivory</brandColourName>
              </brandColourNames>
              <colourCodes>
                <colourCode rank="3">26</colourCode>
              </colourCodes>
              <articleMedia>
                <common:media>
                  <common:mediaType>Images</common:mediaType>
                  <common:sortOrder>3</common:sortOrder>
                </common:media>
              </articleMedia>
              <channels/>
            </article>
          </articles>
        </product>
      </products>
    </catalogue>