問題タブ [keyref]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
xml - xsd: 子要素が存在する場合、要素の強制属性
最初の要素 ( register
) に 2 番目の要素 ( ) がいくつか含まれている可能性がある 2 つの要素があるとしscale
ます。要素の@unit
属性scale
は a ですxs:key
(したがって、最初の要素内で一意です)。要素の「defaultScale」属性で名前を付けることができます。このような:xs:keyref
register
少なくとも 1つの子@defaultScale
が存在する場合、属性を強制的に存在させて有効にするにはどうすればよいですか?scale
私の最初の試みは、やのようにxs:key
の基本要素に別のものを追加することでした。どちらもコンパイルされません...register
try1
try2
子軸はxs:selector
andxs:field
要素でのみ使用できます。現時点での私の最善の推測:それは不可能ですか?
xml - 再帰的なスキーマ定義で XSD キーおよび keyref 制約を強制するとうまく機能しない
XSD<xs:key>
と<xs:keyref>
要素を使用して、カスタム XML 形式でキーと参照の制約を適用しようとしています。私が望むように機能していません。
最初に、私の XML 形式の例を示します。
このデータ構造は、単一の「ボックス」を含む「部屋」を表します。ボックスには、アイテムと他のボックスを含めることができます。ボックスは空にすることもできます。ボックス内のアイテムには個別の名前を付ける必要があり (ただし、他のボックス内のアイテムと名前を共有できます)、同じボックス内の他のアイテムのみを「使用」できます。
適切な属性でキー/キー参照を使用して、「uses」グラフの整合性を維持しようとしています。ただし、以下のスキーマを使用してこの XML で Xerces 2 バリデーターを使用すると、次のエラーが発生します。
スキーマ:
私は何か非常に間違ったことをしているように感じます。このエラーが発生するのはなぜですか? これは検証すべきではありませんか?
xml - XML スキーマ: オプションのフィールドを持つ keyref
オプションのフィールドで keyref 要素を使用することは可能でしょうか。
たとえば、次のスキーマが与えられた場合:
この例では、XML で subSubElem を指定しないと、バリデーターが文句を言います。
と keyref 制約の両方が必要minOccurs="0"
です。フィールドが存在しない場合は、チェックを実行したくないだけです (NULL FOREIGN KEY の場合)。
編集:この例では名前空間を無視します。すべてにデフォルトの名前空間を使用しました...
xml - xsd – 属性をキーまたは列挙に制限できますか?
example.xml を許可したい
st の唯一の可能な値は//refer-to-def/@n
、//def/@n
OR "predefined" OR "also-predefined <refer-to-def n="never-defined"/>
.
を使用して最初の制限を行うことができます
ただし、.xml に .xml がある場合、これはもちろん失敗します<refer-to-def n="predefined"/>
。
<def>
のn
属性を定義することでできる2番目の制限
もちろん、これには defs の n 値の動的リストは含まれません。
2 つを組み合わせるにはどうすればよいので、n は動的リストまたは事前定義されたセットのいずれかになり、私の example.xml は検証されますか?
xml - XML スキーマ - IDREFS としてのタイプ「リスト」の要素
key と keyref を使用して参照のリスト (IDREFS タイプの要素など) を作成し、リスト内の各項目 (以下の例のリンク) がリンクの属性 @name を参照するようにします。
以下のコードは機能しませんが、次のように記述します。
それ以外の:
出来ますか?