定义 XSD 以便 XML 元素为 type="array"

npe*_*d84 5 xml arrays xsd

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

期望的结果是这样的:

<names type="array">
  <name>
  ......
  </name>
</names>
Run Code Online (Sandbox Code Playgroud)

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

kjh*_*hes 2

有些工具可以采用 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>
Run Code Online (Sandbox Code Playgroud)

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