0

どのxsdファイルでも、たとえば次のxsdで、xml名前空間を参照する要素タイプが見つかることがよくあります。

<xsd:element type='x:SOME_TYPE_NAME'>

要素のタイプは、名前空間「x」に「SOME_TYPE_NAME」という名前で記載されています。その特定のxml名前空間からこのタイプの定義またはxsd定義が必要です。どうすればよいですか?助けてください。

4

1 に答える 1

0

まず、探している情報を提供する中央機関は存在しないため、特定の名前空間 x と型名 SOME_TYPE_NAME に対して、正確に 1 つの XSD 型定義が存在するという保証はないことに注意してください。SOME_TYPE_NAME の定義が正確に異なる、同じ名前空間に複数のスキーマが存在する可能性があります。

また、特定の名前空間 (ここでは、接頭辞 x にバインドされた名前空間) の所有者がその名前空間のスキーマ ドキュメントをどのように整理するか、またはどこに移動するかを示す普遍的なルールもありません。場合によっては、特定のシステムで使用されるすべてのスキーマ ドキュメントがローカル スキーマ リポジトリにキャッシュされることがあります (データベース管理システムはこのアプローチを非常に好みます)。

そのため、状況は大きく異なる場合があります。しかし、たいていの場合、探している (または少なくともいくつかの) 定義を見つけることができます。

引用する要素宣言は、特定の名前空間で定義された型を参照します。それが宣言が発生するスキーマ ドキュメントのターゲット名前空間でない場合、スキーマ ドキュメントには、プレフィックス x にバインドされた名前空間をインポートする明示的な xsd:import 要素が含まれている必要があります。多くの場合、 xs:import 要素は schemaLocation 属性を持ち、その名前空間で宣言を探す場所についてのヒントを提供します。schemaLocation 属性は必須ではなく、バリデーターはその URI を逆参照する義務はありません (おそらく、優先するローカル リポジトリを持っているか、別の場所を探すように指示する実行時パラメーターで呼び出された可能性があります) が、多くのバリデーターはそうしています。デフォルトでリンクをたどってください(そうでない場合でも、そのURIはあなたが見るための1つの場所です-スキーマドキュメントの作成者'

名前空間名を逆参照して、そこにドキュメントがあるかどうかを確認することも役立つことがよくあります。名前空間の所有者には、名前空間名に参照解除可能なドキュメントを配置する義務はありません。ソフトウェアが名前空間内の要素を見つけるたびに名前空間名を参照解除することは、非常に悪い習慣と見なされることがよくありますが、あなたはソフトウェアではありません。名前空間名を逆参照することは悪い習慣ではありません。名前空間の所有者の中には、名前空間名にスキーマ ドキュメントを配置するものもあれば、RDDL ドキュメント (スキーマ、ドキュメントなどへの機械処理可能なポインターで展開された HTML) を配置するものもあります。

また、いくつかのよく知られた名前空間については、Web 検索の通常のプロセスでドキュメントを見つけることができます。

于 2013-02-01T20:03:37.700 に答える