我的XML文档如下:
<Entries>
<entry key="some string" value="some string"/>
" "
" "
" "
</Entreis>
我需要强制执行一个规则,即其中一个条目元素必须具有值为“Version”的键。架构会是什么样的?
我试过
<xs:element name ="Entries">
<xs:complexType>
<xs:sequence minOccurs="1" maxOccurs="1">
<xs:element name="entry">
<xs:attribute name="key" fixed="Version" type="xs:string/>
<xs:attribute name="value" type="xs:string/>
</xs:element>
</xs:sequence>
<xs:sequence minOccurs="0" maxOccurs="unbounded">
<xs:element name="entry">
<xs:attribute name="key" type="xs:string/>
<xs:attribute name="value" type="xs:string/>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
但是我收到验证错误,说我不能让序列在复杂类型中出现两次,或者它无效或放错位置。
答案 0 :(得分:2)
我担心在xsd 1.0中无法完成。您不能在一个地方拥有两个名称相同但结构不同(虽然相似)的元素。
另一方面 - @key="Version"
应该表达什么?这些信息不能作为Entries
元素的一部分呈现(类似于<Entries version="..">
)吗?