親に要素名で一意の子要素があることを検証しようとしています。また、考えられる要素が少なくとも 1 つ存在することを検証する必要もあります。
例
<StorageTypes>
<Status/>
<Warning/>
<Error/>
</StorageTypes>
有効でしょうが、
<StorageTypes>
<Status/>
<Status/>
<Warning/>
<Error/>
</StorageTypes>
と
<StorageTypes>
</StorageTypes>
無効になります。
xs:unique を使用して現在のノードを選択しようとしましたが、フィールド要素を含む要素を一般的に選択できません。
以下は私がやろうとしていることを達成していますが、私が探している堅牢なソリューションではありません。変更ごとに xpath を変更せずに、さらにタイプを追加できるようにしたいと考えています。
<element ect.>
<xs:unique name="something">
<xs:selector xpath="."/>
<xs:field xpath="Status"/>
<xs:field xpath="Warning"/>
<xs:field xpath="Error"/>
</xs:unique>
</element>
これは可能ですか?これは良い習慣ですか?アドバイスをいただければ幸いです。