我如何需要“地址”元素?
如果我对没有“地址”的文档执行XSD验证,它会通过,但我希望它失败。
这可能吗?
http://en.wikipedia.org/wiki/XSD 看到示例xsd。它隐藏了我的xsd示例
<?xml version="1.0" encoding="utf-8"?>
<xs:schema elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="Address">
<xs:complexType>
<xs:sequence>
<xs:element name="Recipient" type="xs:string" />
<xs:element name="House" type="xs:string" />
<xs:element name="Street" type="xs:string" />
<xs:element name="Town" type="xs:string" />
<xs:element name="County" type="xs:string" minOccurs="0" />
<xs:element name="PostCode" type="xs:string" />
<xs:element name="Country">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value="FR" />
<xs:enumeration value="DE" />
<xs:enumeration value="ES" />
<xs:enumeration value="UK" />
<xs:enumeration value="US" />
</xs:restriction>
</xs:simpleType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
答案 0 :(得分:6)
您想在其定义中设置minOccurs="1"
。
取自W3C Schools:
的示例<xs:element name="item" maxOccurs="unbounded">
<xs:complexType>
<xs:sequence>
<xs:element name="title" type="xs:string" minOccurs="0"/>
<xs:element name="note" type="xs:string" minOccurs="1"/>
<xs:element name="quantity" type="xs:positiveInteger" minOccurs="0"/>
<xs:element name="price" type="xs:decimal" minOccurs="0"/>
</xs:sequence>
</xs:complexType>
</xs:element>
note
元素必须在item
下至少出现一次,但其他元素不必显示。
答案 1 :(得分:1)
minOccurs
和maxOccurs
的默认值为1,因此问题出在其他地方......