リーフ (何らかの値を含む) または複合 (通常の複合パターン) のいずれかである要素があるとします。複合ノードを新しい要素で埋めるなど、他のインスタンスによって洗練されることが期待されるツリーインスタンスをモデル化したいと考えています。あるツリー インスタンスが別のインスタンスに準拠しているかどうかをその構造によって判断できるようにしたいと考えています。インスタンスを XSD としてモデル化し、他の XSD に準拠する XSD として準拠を実装することは可能ですか? 2 つ以上のレベルがあることに注意してください。各構造はメタ構造として機能します。
付録: 意図をよりよく理解するために、考えられるルールをいくつか示します。
- 「このコンポジットは拡張できません (固定されています)。」
- 「このコンポジットの最後に要素を追加できます。」
- 「このコンポジットには、オプションのリーフ 1 と必須のリーフ 2 が含まれています。」
- 「このコンポジットには、そのコンポジットの任意の数のオカレンスが含まれています。」
例:
Structure 1:
composite
0..1 "abc"
1..n "def"
0..n extensible composite "c1"
1..1 "ghi"
0..1 composite "c2"
1..1 "jkl"
Structure 2:
composite
1..1 "def"
1..1 "def"
1..1 "def"
1..1 extensible composite "c1"
1..1 "ghi"
1..n "extension"
1..n extensible composite "c1"
1..1 "ghi"
Structure 3:
composite
0..n "abc" //too many "abc"s
//"def" needed
0..1 composite "c2"
1..1 "jkl"
1..1 "mno" //forbidden extension
2 番目の構造は最初の構造に適合しますが、3 番目の構造は適合しません。それはスキーマ検証で表現できるのではないかと考えました。