私は初めて XML スキーマを作成していますが、それを作成するのに役立ついくつかの便利なツールを見つけました。
今、私は奇妙な状況にいます。私が書いたスキーマは、一部のツールでは有効ですが、他のツールでは有効ではありません。このスキーマは、「all」、「sequence」、および「group」を組み合わせたものです。ここに私のXMLスキーマがあります:
<?xml version="1.0" encoding="utf-8"?>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<xsd:group name="test">
<xsd:all>
<xsd:element name="e2" minOccurs="0" maxOccurs="1"/>
<xsd:element name="e3" minOccurs="0" maxOccurs="1"/>
<xsd:element name="e4" minOccurs="0" maxOccurs="1"/>
</xsd:all>
</xsd:group>
<xsd:element name="e0">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="e1" maxOccurs="unbounded"/>
<xsd:group ref="test"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:schema>
このスキーマは正しいですか? このバリデーターとこれもうまくいきますが、Notepad++ の XML Tools プラグインは「スキーマ ファイルを解析できません」と表示します。
PS: このスキーマを書いたのは、e1、e2、e3、e4 を混在させる可能性がある要素 "e0" が必要だったからです。e2、e3、および e4 は 0 回または 1 回出現する必要があり、e1 は無制限に出現する可能性があります。たとえば、次の XML ファイルを渡す必要があります。
<e0>
<e1/>
<e1/>
<e1/>
<e1/>
<e1/>
<e2/>
</e0>
<e0>
<e2/>
<e3/>
<e4/>
</e0>
<e0>
<e1/>
<e2/>
<e3/>
<e4/>
</e0>
これを行う別の方法を知っていますか?
ありがとう