嗨,我有这种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>
我想限制subEntries的数量:
序列的maxOccurs不检查subEntries的数量。
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>
答案 0 :(得分:0)
您需要在元素声明中添加maxOccurs。将其更改为
<xs:sequence>
<xs:element ref="subEntry" maxOccurs="1" />
</xs:sequence>