如何使用XSD 1.0保证序列中只有一个元素有child?

How to use XSD 1.0 to ensure that only one element in sequence has child?

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

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

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

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

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

如有任何帮助,我们将不胜感激。

PS: 这是遗留代码中的一个问题,所以我不能切换到 XSD1.1

您不能在 XSD 1.0 中表示您的约束(一个元素的内容模型不能基于另一个元素的值。)如果您不能使用 XSD 1.1 的断言,那么你必须在 XSD.

的带外强制执行你的约束