![](/img/trans.png)
[英]XML Schema - how to define an element that contains a string or child elements
[英]How to define XML element in xsd schema to make all child elements to have same attribute value?
<root>
<elem type="1" id="1"/>
<elem type="1" id="2"/>
</root>
我想檢查XSD架構,以便所有元素都應具有相同的“類型”屬性值。 假設一個元素的type =“1”而另一個元素的type =“2”,那么我希望模式驗證失敗。 如何在Schema中限制它?
我認為在xsd 1.0中不可能。
我不知道你到底在做什么,但在這種情況下,它會給我一個感覺,有一些包裝元素,例如elems
,它將保持這個價值。 從而
<root>
<elems type="1">
<elem id="1"/>
<elem id="2"/>
</elems>
</root>
如果您想要單個值類型,為什么不將該單個值放在一個位置,而不是在多個位置復制它? 也就是說,為什么不以這種方式構建XML?
<root type="1">
<elem id="1"/>
<elem id="2"/>
</root>
不允許不同元素具有不同類型值的事實表明,類型並不嚴格地說是elem的屬性,而是整個文檔的屬性。
這樣,XML的結構已經保證了類型只有一個值,而不是允許您或驗證者必須添加額外的臨時檢查的不一致性。
可能還有一些更復雜的方法來確保類型只有一個值(可能是一些非常聰明的鍵和keyref約束;在XSD 1.1中,使用斷言;使用外部或內部Schematron斷言),但我不知道當有這么簡單的選擇時,我想鼓勵他們使用。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.