根据Java中其他元素的内容跳过对特定元素的XSD验证

时间:2019-03-18 16:10:02

标签: java xml xsd xsd-validation

在xsd中,我具有以下元素,其中要求city,zip不为空。

<addresses>
    <address>
      <name>abc</name>
      <address>skip</Address>
       ....
      <city/>
      <zip/>
    </address>
</addresses>

,但在特定情况下,例如如果地址元素的内容被跳过,我不希望对城市,邮政编码进行验证。 在Java或xsd级别上可以实现什么选择?

1 个答案:

答案 0 :(得分:1)

您可能应该不基于跳过验证来构架需求,而是根据条件来要求出现或类型。通常,“跳过验证”由xs:any处理,但这并不是您真正想要的。

XSD 1.0无法表达约束,其中元素的出现取决于其他元素的值。为此,您将需要XSD 1.1。有关示例,请参见Require XML element in XSD when another element has certain value?