親が要素名で一意の子要素を持つことを検証しようとしています。 また、少なくとも1つの可能な要素が存在することを検証する必要があります。XMLスキーマ固有の子要素
例
<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>
これは可能ですか?これはいい練習ですか?アドバイスをいただければ幸いです。
ありがとうございました。私は代替グループを詳しく見ていきます。私はあなたが提示したものと同様の解決策を持っていますが、列挙を使用しています。私たちは、フレームワークスキーマを変更することなく、将来のスキーマによる拡張を可能にする、より汎用的なものを探していました。 – gettingSmarter