0

我的 XML 文档如下所示:

<Entries>
  <entry key="some string" value="some string"/>
  " "
  " "
  " "
</Entreis>

我需要强制执行一个规则,即其中一个条目元素必须具有值为“版本”的键。架构会是什么样子?

我试过

<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>

但我收到一个验证错误,说我不能让序列在复杂类型中出现两次,或者它无效或放错位置。

4

1 回答 1

2

恐怕它不能在 xsd 1.0 中完成。您不能在一个地方有两个名称相同但结构不同(尽管相似)的元素。

另一方面 - 应该@key="Version"表达什么?不能将此信息作为Entries元素的一部分呈现(类似于<Entries version="..">)吗?

于 2013-07-02T20:14:31.503 回答