一般的なシナリオの 1 つとして、次のようなものがあります。すなわち、
2 つの XML スキーマ・ファイル X と Y があり、
両方ともファイル・システム内の同一のディレクトリーに存在していますが、X は Y を含み、
実際のターゲット・ネーム・スペースによって定義されているのに対し、Y は notarget ネーム・スペースに
定義されています。この 2 ファイルをインポート後、
X はそのネーム・スペースにより決定された位置に配置されますが、Y は、notarget ネーム・スペースで定義されるファイルが使用するデフォルトのネーム・スペースの位置に配置されます。この状態により、2 つのファイルのリンクが切断されますので、
X を修正して、この新規の相対位置で正しく Y を含める必要があります。
1 つのグループに同じネーム・スペースの同じ XML 名を持つ異なる 2 つのエレメントが含まれます。
シナリオ: 1 つのグループに同じネーム・スペースの同じ XML 名を持つ異なる 2 つのエレメントが含まれるため、タスク・リストに警告が書き込まれます。
説明: XML 物理フォーマットのメッセージを妥当性検査するとき、
その妥当性検査には、
XML 名が表すのはどのエレメントかをパーサーが一意的に決定できない可能性のあるメッセージ定義の部分を識別するためのテストが含まれています。 このテストでは、
1 つのグループに同じネーム・スペースの同じエレメント名を持つ 2 つの異なる XML エレメントがあると、たとえその重複に問題がなくても警告が生成されます。
解決策: 警告メッセージで指摘されている重複が実際に修正を必要とする問題なのか、
それとも 1 つのグループの両側に存在する 2 つのエレメントが同じ
XML 名を共用しているために重複が発生しているのかを見極めてください。
後者の場合は、あいまいさが残るわけではないので、その重複に問題はありません。
説明: メッセージ定義ファイルは、最初のファイルが 2 番目のファイルを直接参照している場合のみ別のメッセージ定義ファイルにあるオブジェクトを参照できます。 例えば、3 つのメッセージ定義ファイル A、B、および C があって、A には B が、B には C が組み込まれている場合、A は B にあるオブジェクトを参照でき、B は C にあるオブジェクトを参照できますが、A は C にあるオブジェクトを参照することができません。
この問題は、ネストされた組み込み物のある XML スキーマ・ファイルをインポートしても、生じる場合があります。
解決策: この問題には、メッセージ定義ファイルを直接、つまり上記の例では、C を直接 A に組み込むことによって対処できます。 別の方法として、B 直下にある C のメッセージ・セットの定義をすべて定義して、C を削除します。そうして、A が B だけを組み込むようにすることができます。