2

これはより一般的なXMLスキーマの質問ですが、XMLスキーマでフィールドの依存関係を指定する場合とその方法を教えてください。たとえば、fieldAが提供されている場合、fieldBが必要であるとどのように言いますか?

4

2 に答える 2

0

<choice>および/または<sequence>を使用してこれを偽造することができます。たとえば、fieldAだけでなく、nothing、fieldB、またはfieldAとfieldBのいずれかを許可できます。これは重複につながる可能性があり、complexTypeを定義することで防ぐことができます。

于 2008-11-11T18:35:23.403 に答える
0

この種のオプションは、「フィールド」が XML でどのように表現されるか、および使用している XSD のバージョンによって異なります。

fieldAとが要素である場合fieldB、適切なコンテンツ モデルに次の形式の構造を含めるとうまくいきます。

<sequence minOccurs="0">
  <element ref="tns:fieldA" minOccurs="0"/>
  <element ref="tns:fieldB"/>
</sequence>

(必要に応じて、2 つの要素の参照を別の順序で表示することもできます。) Erik Hesselink が、これが重複につながる可能性があることをなぜ心配しているのか、または彼が心配している重複の形式は明らかではありません。

fieldB要素を作成し、その要素fieldAの (オプションの?) 属性にすると、必要な共起制約が自動的に従います。

これらを両方の属性にすると、XSD 1.0 では共起制約を適用できなくなります。一部の人々は、そのようなことを処理するために Schematron に頼っています。XSD 1.1 では、この状況で制約を適用するためのオプションにはxs:assert、条件付き型割り当てが含まれます。

于 2012-08-21T00:07:38.623 に答える