将值与XML Schema中的元素名称匹配

时间:2012-02-22 15:32:15

标签: xml xsd

是否可以针对XmlSchema中的元素名称验证属性值。 对于例如对于下面的XML片段,我想确保'thisShouldBeAnElementName'属性中的值应该是元素名称。因此,有效值将为“a”,“b”或“c”。

<root>
  <a/>
  <b/>
  <c thisShouldBeAnElementName='a'/>
</root>

感谢。

1 个答案:

答案 0 :(得分:1)

在XSD 1.1中,你可以写一个断言:

<xs:element name="root">
  ...
  <xs:assert test="every $a in .//@thisshouldbeanelementname 
                   satisfies node-name($a) = .//*/node-name()"/>
  ...
</xs:element>

XSD 1.1目前在Xerces和Saxon中实施。