0

嗨,我有这种 XML

我想编写一个验证此数据的 XML:

<?xml version="1.0" encoding="UTF-8"?>
<Entry attribute1="value1" attribute2="Value2">
    <subEntry tagX="xValue1" tagy="yValue"/>
</Entry>

但不验证

<?xml version="1.0" encoding="UTF-8"?>
<Entry attribute1="value1" attribute2="Value2">
    <subEntry tagX="xValue1" tagy="yValue"/>
    <subEntry tagX="xValue1" tagy="yValue"/>
</Entry>

我想限制子条目的数量:

序列的 maxOccurs 不检查子条目的数量。

XSD 是:

<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified">
    <xs:element name="Entry">
        <xs:complexType>
            <xs:sequence>
                <xs:element ref="subEntry"/>
            </xs:sequence>
            <xs:attribute1 name="dateEmission" type="xs:dateTime" use="required"/>
            <xs:attribute2 name="emetteur" type="xs:string" use="required"/>
        </xs:complexType>
    </xs:element>
    <xs:element name="Entry">
        <xs:complexType>
            <xs:attribute name="tagX" type="xs:string" use="required"/>
            <xs:attribute name="tagy" type="xs:decimal" use="optional"/>
        </xs:complexType>
    </xs:element>
</xs:schema>
4

1 回答 1

0

您需要在元素声明中添加 maxOccurs。改成下面

<xs:sequence>
     <xs:element ref="subEntry" maxOccurs="1" />
</xs:sequence>
于 2013-06-10T14:08:27.857 回答