是否有允许指定约束(如无循环引用)的XML模式语言?
是否存在允许指定元素之间不能有循环引用的约束的XML模式语言 例如:是否有允许指定约束(如无循环引用)的XML模式语言?,xml,xsd,dtd,relaxng,Xml,Xsd,Dtd,Relaxng,是否存在允许指定元素之间不能有循环引用的约束的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"> <ani
<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">
不会验证。您可以使用schematron,然后将相同的问题作为xslt/xpath问题发布。据我所知,没有设计用于强制执行此类约束的模式语言。如果在模式语言中是可能的,那么可能是Schematron。这个模式不会很好
对我来说,这意味着您不应该尝试使用模式语言来实现这一点。使用您熟悉的任何编程语言,并用易于阅读的代码编写约束。它将比任何基于模式的版本都更短、更容易理解。:-)是的,事实上,当我意识到可能存在某种“更好的”/“正确的”模式语言时,我已经开始使用代码验证此约束。类似这样的循环引用无法用Schematron验证。您可以编写XSLT样式表来实现验证,但正如@bart schuller所说,您可以使用任何您熟悉的语言。