実際、XSD にはあらゆる種類の問題が山積しています。適切な XSD/XML エディターを使用してみてください。思った以上に役立つはずです。
問題:
- カーディナリティ属性 (最小/最大 Occurs) は、グローバル要素宣言には適用されません。
- 型を参照する場合は、単純または複雑なその型の定義がどこかにある必要があります。
すでにご存知のとおり、サンプルの XML から始めます。
<Cluster>
<Node>node1</Node>
<Node>node2</Node>
</Cluster>
次に、適切なツールを使用して、視覚化した単純な XML よりも複雑な XSD を生成できます。
<?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 の推論は常に大衆を喜ばせるとは限りません...