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
.
表达这样的约束
我正在处理的 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
.