使用XSD检查XML

问题描述 投票:0回答:1

我试图用XSD检查XML,

但目前我收到此错误:

The Content Of 'null' Is Invalid. Element 'element' Is Invalid, Misplaced, Or Occurs Too Often.

我需要检查每个字段是否为空:ID,名称和属性数据?

我使用的XML:

<DataEXP>
    <Item>
        <!-- Unique ID for this product - only instance of this ID in whole feed -->
        <ID>
            <![CDATA[DM1054]]>
        </ID>
        <!-- In name included info, that differs this product from other products. Typical order is: BRAND type of product MODEL-->
        <name>
            <![CDATA[Apple iPhone]]>
        </name>
        <attributes>
            <attribute>
                <name>
                    <![CDATA[Functions]]>
                </name>
                <values>
                    <value>
                        <![CDATA[touchscreen]]>
                    </value>
                    <value>
                        <![CDATA[touchID]]>
                    </value>
                </values>
            </attribute>

        </attributes>
    </Item>
</DataEXP>

我使用的XSD:

<?xml version="1.0"?>
<!-- Created with Liquid Studio 2018 (https://www.liquid-technologies.com) -->
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">

        <xs:complexType>
            <xs:element name="Item">

                <xs:complexType>

                    <xs:sequence>

                        <xs:element name="ID" type="xs:string" minOccurs="0" maxOccurs="0" />

                    </xs:sequence>

                </xs:complexType>
            </xs:element>
        </xs:complexType>

</xs:schema>

如果有人能在XSD中找到错误,谢谢

xml xsd
1个回答
0
投票

您的XSD不正确,并且由于它非常严格,因此需要更多字段才能正确验证XML对XSD的影响。

我设置了一个非常小的XSD版本,可以正确验证您的XML而不会出错。请记住,我还没有检查项目可以发生的次数(值中的值除外),以及它们的类型:

<?xml version="1.0"?>
<!-- Created with Liquid Studio 2018 (https://www.liquid-technologies.com) -->
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
    <xs:element name="DataEXP">
        <xs:complexType>
            <xs:sequence>
                <xs:element name="Item">
                    <xs:complexType>
                        <xs:sequence>
                            <xs:element name="ID"/>
                            <xs:element name="name"/>
                            <xs:element name="attributes">
                                <xs:complexType>
                                    <xs:sequence>
                                        <xs:element name="attribute">
                                            <xs:complexType>
                                                <xs:sequence>
                                                  <xs:element name="name"/>
                                                  <xs:element name="values">
                                                    <xs:complexType>
                                                      <xs:sequence>
                                                        <xs:element maxOccurs="unbounded" name="value"/>
                                                      </xs:sequence>
                                                    </xs:complexType>
                                                  </xs:element>
                                                </xs:sequence>
                                            </xs:complexType>
                                        </xs:element>
                                    </xs:sequence>
                                </xs:complexType>
                            </xs:element>
                        </xs:sequence>
                    </xs:complexType>
                </xs:element>
            </xs:sequence>
        </xs:complexType>
    </xs:element>
</xs:schema>
© www.soinside.com 2019 - 2024. All rights reserved.