如何使用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.
的带外强制执行你的约束
我必须验证 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.
的带外强制执行你的约束