实际上,您的 XSD 充满了各种各样的问题。尝试使用一个像样的 XSD/XML 编辑器,它应该比你想象的更能帮助你。
问题:
- 基数属性(min/max Occurs)不适用于全局元素声明。
- 如果您引用一个类型,您应该在某处对该类型进行简单或复杂的定义。
我将从一个示例 XML 开始,因为您已经知道:
<Cluster>
<Node>node1</Node>
<Node>node2</Node>
</Cluster>
然后您可以使用像样的工具来生成 XSD,这是一个比您刚刚可视化的简单 XML 更复杂的主题:
<?xml version="1.0" encoding="utf-8"?>
<!--W3C Schema generated by QTAssistant/W3C Schema Refactoring Module (http://www.paschidev.com)-->
<xsd:schema attributeFormDefault="unqualified" elementFormDefault="qualified" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<xsd:element name="Cluster">
<xsd:complexType>
<xsd:sequence>
<xsd:element maxOccurs="unbounded" name="Node" type="xsd:string" />
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:schema>
在那里您可以看到 maxOccurs,然后将其更改为您想要的值。随着您对 XSD 语法越来越熟悉,您可以开始将工作中的 XSD 编辑成更有意义的东西;最后,XSD 推断可能并不总是令人愉悦……