java - cvc-复杂-类型.2.4.a : Invalid content was found starting with element Media

标签 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 和 google 上看到了与此问题相关的 max all 帖子,但首先我无法理解为什么会发生这种情况以及可以解决什么问题..?

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

更新:

    <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>

最佳答案

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

  1. 将编码更改为 UTF-8 而不是 UTF-16(但如果您的数据是 真正的 UTF-16,您无需更改它)。
  2. 定义了 common: 命名空间前缀并将其用于 mediamediaType、 和 sortOrder 元素。
  3. 添加了每个 XSD 中几个缺失的必需元素。
  4. 修复了命名空间中的拼写错误:anteena.com,而不是 anteenaa.com

这是针对您的 XSD 有效的 XML 文件:

<?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>

关于java - cvc-复杂-类型.2.4.a : Invalid content was found starting with element Media,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48910997/

相关文章:

android - Horizo​​ntal LinearLayout 在嵌套 Vertical LinearLayout 后不显示任何元素

xml - 如何将具有父/子关系的 XML 导入 Access?

java - 如何使用标准 javax.xml.validation.Validator 在运行时(而不是 JUnit)检查 xml 文件是否对 xsd 有效

java jsoup 删除新行

java - 无法识别工作表时如何访问 XSSF 内容

字符串数组上的 Java 8 流

php - 我如何在 PHP 中遍历 DOM 元素?

java - 如何使用 JAXB (xjc) 为全局元素生成 POJO?

java - JAXP:如何根据 XML 模式验证 org.w3c.dom.Document

java - 为什么 jcombobox 不可见?