要素が特定の子を持つ必要があることがわかっている XML スキーマがありますが、その子が存在する深さはわかりません。次の XML の例を見てください。
<node id="top">
<node id="inner">
<event/>
</node>
</node>
<node id="top">
<event/>
</node>
私が持っている唯一の要件は、要素が<event>
その要素の子孫でなければならないということ<node id="top">
ですが、それがどの深さで発生するかはわかりません。言い換えれば、<node id="inner">
トップ<node id="top">
と要素の間に任意の数の要素が存在する可能性があり<event>
ます。上記の例では、それぞれがスキーマ内で有効です。私の試みた解決策は次のとおりです。
<xs:element name="node">
<xs:complexType>
<xs:sequence>
<xs:element name="node" minOccurs="0">
<xs:complexType>
<xs:sequence>
<xs:element name="event"/>
</xs:sequence>
<xs:attribute name="id" fixed="inner"/>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
<xs:attribute name="id" fixed="top"/>
</xs:element>
<node>
しかし、予想通り、これは要素の後に発生する可能性のある要素の多くの「深さ」を考慮していません<node id="top">
。