XMLネームスペースの問題
ネームスペースの使用時によく生じる問題は、ネームスペースが予期したネームスペースと一致しないためにXMLエレメントを読み取れないことです。この結果、マップを実行しても何も出力されないことがあります。これは特に、XMLインスタンスドキュメントのルートエレメントで顕著です。一般に、XMLスキーマ/DTD (非推奨)/WSDLをインポートして作成されたストラクチャーを使用している場合は、XMLインスタンスドキュメントが正しく対応するネームスペースを保持しているか心配する必要はありません。
エレメントを手動で追加するか、ストラクチャーを手動で作成する場合は、ストラクチャーとネームスペースコンテナー内のネームスペース定義が正しいことを念入りに確認する必要があります。
-
デフォルトネームスペース - 通常、XMLドキュメントはデフォルトネームスペースを使用するため、エレメントにはプレフィックスは付加されませんが、ネームスペースを定義するxmlns属性があります。これが当てはまる場合は、ストラクチャー定義内のエレメントが同じネームスペースを使用していることを確認します。これを行うには次の点を確認します。
-
XML表記(ネームスペースコンテナー) - マップ入力によってポイントされたストラクチャーのXML表記にネームスペースコンテナーへの参照が含まれていますか? これは、ストラクチャーのXML表記を見つけ、そのプロパティを表示(ダブルクリック)することで判別できます。含まれていない場合は、必要に応じてネームスペースコンテナーを作成し、表記でそれをポイントするように指定します。
-
ネームスペースコンテナー - ネームスペースコンテナーで定義されたデフォルト(または、その他の)ネームスペースは、マップの入力ストラクチャーと関連付けられていますか? 関連付けられていない場合は、それに適切なプレフィックスを追加します。それがデフォルトのネームスペースである場合は、プレフィックスとしてdefaultを使用できます。また、デフォルトのネームスペースの場合は、ネームスペースコンテナーのプロパティを変更して(右クリック-> [Properties] (プロパティ))、デフォルトネームスペースのURIを指定する必要があります。ネームスペースのURIをデフォルトURIに指定すると、そのネームスペースに関連付けられたプレフィックスはストラクチャーまたはマップエディター内に表示されません。
-
エレメントのネームスペース - エレメントごとにネームスペースを関連付けることができます。これは、ネームスペースプレフィックスを使用するXMLドキュメントと同様に、正確に実行されます。たとえば、デフォルトネームスペースURIがurn:defaultで、プレフィックスがdefaultの場合は、エレメント(たとえば、elementNameと呼ばれる)をストラクチャーエディターで編集し、その名前をdefault:elementNameに変更します。エレメントのプロパティ(ストラクチャーエディターの右側)で、現在のエレメントのネームスペースURIを確認します(エレメントのプロパティの読み取り専用ビューを使用して確認できます)。