Xml XSD:要求属性具有特定值
我正在尝试创建一个XSD,它指定一个Xml XSD:要求属性具有特定值,xml,xsd,Xml,Xsd,我正在尝试创建一个XSD,它指定一个元素,但它似乎只用于指定唯一的元素,而不是属性值。您可以通过使用minOccurs=4和maxOccurs=4声明元素b来强制执行第一条规则,如下所示: <xs:element name="a"> <xs:complexType> <xs:sequence> <xs:element name="b" minOccurs="4" maxOccurs="4"/> </xs:seq
元素,但它似乎只用于指定唯一的元素,而不是属性值。您可以通过使用minOccurs=4
和maxOccurs=4
声明元素b
来强制执行第一条规则,如下所示:
<xs:element name="a">
<xs:complexType>
<xs:sequence>
<xs:element name="b" minOccurs="4" maxOccurs="4"/>
</xs:sequence>
</xs:complexType>
</xs:element>
但是,您不能使用XSD来强制执行第二条规则。例如,如果您确实想这样做,您可以将4个b
元素替换为b1
、b2
、b3
和b4
,每个元素都隐式表示c
属性1到4,分别。您可能需要查看Schematron以获得此类限制/验证。您可以将a/b/@c
设置为具有全局唯一性约束的键,然后为min=1和max=4指定一个具有facet的整数类型。仍然不允许1,3,2,4
尽管。。。
<a>
<b c="1" d="valueof1" />
<b c="1" d="valueof1_other" />
<b c="3" d="valueof3" />
<b c="4" d="valueof4" />
</a>
<a>
<b c="1" d="valueof1" />
<b c="2" d="valueof2" />
<b c="3" d="valueof3" />
<b c="4" d="valueof4" />
<b c="5" d="valueof5" />
</a>
<xs:element name="a">
<xs:complexType>
<xs:sequence>
<xs:element name="b" minOccurs="4" maxOccurs="4"/>
</xs:sequence>
</xs:complexType>
</xs:element>