2

我必须验证可能采用以下任何一种形式的 XML

<myshape>
        <dimension/>
        <mycircle>
            <radius>2</radius>
        </mycircle>
</myshape>

<myshape>
        <dimension>
            <height>5</height>
        </dimension>
        <mycircle/>
</myshape>

也就是说,只有一个元素应该包含该值,而另一个不应该包含该值。

我试过xs:choice了,但问题是,我会在 xml 中同时拥有这两个元素,但只有一个应该包含子元素。我该如何验证呢?

任何帮助,将不胜感激。

PS:这是遗留代码中的问题,所以我无法切换到 XSD1.1

4

1 回答 1

2

您不能在 XSD 1.0 中表示您的约束(一个元素的内容模型不能基于另一个元素的值。)如果您不能使用 XSD 1.1 的断言,那么您将不得不在带外强制执行您的约束wrt XSD。

于 2016-07-04T13:22:01.867 回答