2010-03-31 71 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。

相关问题