在xsd中,我具有以下元素,其中要求city,zip不为空。
<addresses>
<address>
<name>abc</name>
<address>skip</Address>
....
<city/>
<zip/>
</address>
</addresses>
,但在特定情况下,例如如果地址元素的内容被跳过,我不希望对城市,邮政编码进行验证。 在Java或xsd级别上可以实现什么选择?
答案 0 :(得分:1)
您可能应该不基于跳过验证来构架需求,而是根据条件来要求出现或类型。通常,“跳过验证”由xs:any
处理,但这并不是您真正想要的。
XSD 1.0无法表达约束,其中元素的出现取决于其他元素的值。为此,您将需要XSD 1.1。有关示例,请参见Require XML element in XSD when another element has certain value?