次の構造を持つ XML ファイルに興味があります。
<resource>
<type>STRING</type>
<metadata>
<ANY_EXTERNAL_ELEMENT1>
<value>STRING</value>
</ANY_EXTERNAL_ELEMENT1>
<ANY_EXTERNAL_ELEMENT2>
<reference>STRING</reference>
</ANY_EXTERNAL_ELEMENT2>
<ANY_EXTERNAL_ELEMENT3>
<value>STRING</value>
</ANY_EXTERNAL_ELEMENT3>
</metadata>
</resource>
メタデータ要素には、少なくとも 1 つの ANY_EXTERNAL_ELEMENT 子が必要です。この子要素は、セット {"reference", "value"} に名前を持つ子要素を 1 つだけ持つ必要があります。
XMLSchemaでそれを達成することは可能ですか?
私が試したこと:
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="resource">
<xs:complexType>
<xs:all>
<xs:element name="type" type="xs:string"/>
<xs:element name="metadata">
<xs:complexType>
<xs:sequence>
<xs:any minOccurs="1">
<xs:complexType>
<xs:choice>
<xs:element name="reference"/>
<xs:element name="value"/>
</xs:choice>
</xs:complexType>
</xs:any>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:all>
</xs:complexType>
</xs:element>
</xs:schema>
しかし、それは有効ではありません。私は助けが必要です。
前もって感謝します。