使用XSD检查两个不同XML文件的Attribute值

时间:2014-05-19 09:32:24

标签: xml xsd xsd-validation

我有两个xml文件,如下所示。

我想检查属性Id在两个xml文件中应该具有相同的值。

我可以起诉XSD吗?

<!-- Library.xml -->

<?xml version="1.0" encoding="utf-8"?>
<Library>
  <Book Id="1"/>
</Library>

 <!-- ######################################## -->

<!-- Book.xml -->
<?xml version="1.0" encoding="utf-8"?>
<Books>
  <XmlBook Id="1"/>
</Books>

XmlBook和Book的Id属性值应始终相同。我可以使用XSD检查或验证它吗?或者我可以使用XSD为此值设置限制吗?

感谢Adavnce

此致

阿尼

1 个答案:

答案 0 :(得分:0)

XSD旨在验证单个节点,通常是单个文档;跨文档验证不是内置于XSD。

您可以使用不同的模式语言(想到的Schematron和SML)来表达和检查跨文档约束。

或者您可以通过使用XInclude将两个源文档作为部分生成单个文档来检查跨文档约束,然后使用配对的key和keyref约束来确保复合的一部分中的每个Id值document匹配其他部分的Id值,反之亦然。