是否有任何XML模式语言允许指定一个约束,即元素之间不能有循环引用。
作为一个玩具示例:
<animal name="A" eats="B">
<animal name="B" eats="C">
<animal name="C" eats="D">
会验证,但
<animal name="A" eats="B">
<animal name="B" eats="C">
<animal name="C" eats="D">
<animal name="D" eats="A">
不会验证。
答案 0 :(得分:2)
据我所知,没有任何架构语言可用于强制执行此类约束。如果它可以用模式语言,它可能是Schematron。架构不会很漂亮。
对我而言,这表示你不应该尝试使用模式语言。使用您熟悉的任何编程语言,并在易于阅读的代码中编写约束代码。它比任何基于模式的版本更短,更容易理解。
答案 1 :(得分:1)
您可以使用schematron,然后将相同的问题发布为xslt / xpath问题。