XSD 模式是否可以根据是否存在多个元素而具有不同的条件?

Can an XSD schema have different conditions based on whether multiple elements exist?

我正在处理的 XML 文档设计有几个条件:

如果存在一个 ColorMap 元素:

<ColorMap>no attributes needed</ColorMap>

如果存在多个 ColorMap 元素:

<Colormap version="1.0" default="true">Both these attributes are required</ColorMap>

有没有一种方法可以创建一个 XSD 模式来验证此条件?

否,XSD 1.0 无法根据存在的元素数量来限制属性的必要性。您必须重新设计 XML 或在 XSD 之外执行此类检查。

在 XSD 1.1 中,您可以使用 xs:assertion.

表达这样的约束