0

我为基于餐厅的系统制作了一个小的 xsd/xml 文件。

这是我的 XSD 文件的代码:

<xs:element name="table_cat">
    <xs:complexType>
      <xs:sequence>
        <xs:element name="category" maxOccurs="unbounded">
          <xs:complexType>
            <xs:sequence maxOccurs="unbounded">
              <xs:element name="category_id" type="CatID" />
              <xs:element name="catdescription" type="Length50"/>
            </xs:sequence>
          </xs:complexType>
        </xs:element>
      </xs:sequence>
    </xs:complexType>

    <xs:unique name="unique-catid">
      <xs:selector xpath="category" />
      <xs:field xpath="category_id"/>

    </xs:unique>

  </xs:element>

但每当我在 XML 文件中有超过 1 个 Category_ID 字段时,我都会收到以下错误:

The field 'category_id' is expecting at the most one value.

我尝试了不同的解决方案来使其工作,但似乎没有任何工作。

希望你能帮忙谢谢!

4

1 回答 1

0

您实际上并没有说出您要表达的约束 - 很难从不正确的代码中逆向工程您的需求。

无论如何,它给我的印象是一个糟糕的设计:你有一个重复的 (id, description) 对序列,而这对周围没有容器元素。这将使处理数据变得不必要地困难。

也许你想要

<xs:unique name="unique-catid">
  <xs:selector xpath="category_id" />
  <xs:field xpath="."/>
</xs:unique>

但我无法确定这是否是你的意图。

于 2012-11-03T20:15:57.490 回答