2014-05-19 67 views
0

我有兩個xml文件,如下所示。使用XSD檢查兩個不同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

問候,

阿尼

回答

0

XSD的目的是驗證各個節點,一般是單個文件;跨文檔驗證不是內置到XSD中的。

您可以使用不同的模式語言(Schematron和SML是想到的兩種語言)來表達和檢查跨文檔約束。

或者您可以使用XInclude檢查跨文檔約束,將單個文檔與您的兩個源文檔作爲零件,然後使用配對的key和keyref約束來確保每個Id值在複合文檔與另一部分中的Id值匹配,反之亦然。

+0

Key和KeyRef不起作用,因爲它需要Xpath,我如何爲包含的XSD的屬性提供Xpath? – user3652040