Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
是否有允许指定约束(如无循环引用)的XML模式语言?_Xml_Xsd_Dtd_Relaxng - Fatal编程技术网

是否有允许指定约束(如无循环引用)的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

是否存在允许指定元素之间不能有循环引用的约束的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">


不会验证。

您可以使用schematron,然后将相同的问题作为xslt/xpath问题发布。

据我所知,没有设计用于强制执行此类约束的模式语言。如果在模式语言中是可能的,那么可能是Schematron。这个模式不会很好


对我来说,这意味着您不应该尝试使用模式语言来实现这一点。使用您熟悉的任何编程语言,并用易于阅读的代码编写约束。它将比任何基于模式的版本都更短、更容易理解。

:-)是的,事实上,当我意识到可能存在某种“更好的”/“正确的”模式语言时,我已经开始使用代码验证此约束。类似这样的循环引用无法用Schematron验证。您可以编写XSLT样式表来实现验证,但正如@bart schuller所说,您可以使用任何您熟悉的语言。