2010-03-31 69 views
0

什麼是XSD模式定義以下限制的正確語法:XSD限制元素列表中屬性值的正確語法是什麼?

在元素列表中,我們必須指定該屬性可以包含值「c」無限次數,但值「b」 - 零或只有一次。

例如,正確的XML看起來是這樣的:

<root> 
<elem atr="c">111</elem> 
<elem atr="c">222</elem> 
<elem atr="b">333</elem> 
<elem atr="c">444</elem> 
<elem atr="c">555</elem> 
</root> 

和不正確的一句是:

<root> 
<elem atr="c">111</elem> 
<elem atr="c">222</elem> 
<elem atr="b">333</elem> 
<elem atr="c">444</elem> 
<elem atr="b">555</elem> 
</root> 

回答

0

據我知道這是不可能的。你可以使atr唯一,但...

3

我認爲你不能這樣做。最接近的是xsd:key:

<xsd:key name="idKey"> 
    <xsd:selector xpath="elem"/> 
    <xsd:field xpath="@atr"/> 
</xsd:key> 

但它不完全是你想要的。

XML模式通常具有非常有限的方法來定義值依賴約束。看看Schematron。