これを解決する必要があり、助けが必要なようです。
ここに問題の定義があります
既存のスキーマ X [X は業界標準のスキーマ] があり、新しいスキーマ Y (別のターゲット名前空間) でいくつかの拡張機能を構築しています。
ここでの問題は、スキーマ Y の要素/属性の使用を、X の定義済みの要素/型のメンバーとしてのみに制限したいことです。[無効な使用の場合、スキーマの検証は失敗するはずです]。
どうすればこれを達成できますか? これを行う最善の方法は何ですか?
RM
これを解決する必要があり、助けが必要なようです。
既存のスキーマ X [X は業界標準のスキーマ] があり、新しいスキーマ Y (別のターゲット名前空間) でいくつかの拡張機能を構築しています。
ここでの問題は、スキーマ Y の要素/属性の使用を、X の定義済みの要素/型のメンバーとしてのみに制限したいことです。[無効な使用の場合、スキーマの検証は失敗するはずです]。
どうすればこれを達成できますか? これを行う最善の方法は何ですか?
RM
変更する量とスキーマがどのように見えるかによって異なります。1 つの側面は、拡張機能がルートまたはリーフの近くにあるかどうかです。
ルート付近の一般的なアプローチを次に示します。
X.xsd
element name=foo type=fooType
complexType fooType
sequence
element name=bar type=BarType
Y.xsd
import X.xsd namespace=xns
element name=foo type=foo2Type
complexType foo2Type
sequence
element name=bar type=xns:BarType
element name=baz type=BazType
ここでは、独自の定義の新しい要素 baz を追加しましたが、bar には業界標準で必要なすべての子要素が含まれます。
X を Y にインポートします ( import 要素を使用)。