定义XSD以使XML元素为type =“array”

时间:2015-05-26 12:49:55

标签: arrays xml xsd

我的问题与定义XSD文档有关。我的具体问题是如何定义XSD,以便在生成XML时,元素将具有type =“array”。

期望的结果将是:

<names type="array">
  <name>
  ......
  </name>
</names>

我已经尝试过在几个论坛上推荐使用的方法,但是我发现在我看来,甚至可能没有数组的类型,这让我感到困惑,因为生成的XML元素可以有一种类型的数组。

1 个答案:

答案 0 :(得分:1)

有些工具可以使用XSD并生成符合XSD的示例XML文档,但您应该了解XSD的主要目的是验证 XML文档。

此XSD将验证您的XML文档:

<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
  <xs:element name="names">
    <xs:complexType>
      <xs:sequence>
        <xs:element name="name" maxOccurs="unbounded"/>
      </xs:sequence>
      <xs:attribute name="type"/>
    </xs:complexType>
  </xs:element>
</xs:schema>

另请注意,使用type="array"属性 - 值对在XML中是非常规的,因为类型信息在names的内容模型中的XSD中传达,不需要在XML中显式重复文档。