3.4 名前空間の正規化

XML仕様では,同じ名前空間に対して複数の名前空間接頭辞を使用したり,各要素に対して局所的な名前空間を宣言したりできます。

複数の名前空間接頭辞が設定されていた場合で,アイテム要素を既存インスタンス文書に追加する場合,どの名前空間接頭辞を設定する必要があるのかをユーザーアプリケーションが判断できません。

このため,uCosminexus Business Reporting Processorは,既存インスタンス文書に複数の名前空間宣言や名前空間接頭辞が設定されていた場合,名前空間を正規化します。名前空間の正規化によって,インスタンス文書内の名前空間が一意になり,ユーザーアプリケーションからインスタンス文書の操作がしやすくなります。

名前空間の正規化では,インスタンス文書内で宣言されている名前空間を取得し,重複している場合は一意の名前空間接頭辞を付け直します。そのため,名前空間の正規化によって,インスタンス文書内の名前空間宣言や名前空間接頭辞が削除または変更されることがあります。この削除や変更によって,インスタンス文書の意味や内容が変更されることはありません。また,一部の要素に指定されている名前空間は正規化されません。

名前空間の正規化は,インスタンス文書の編集で次の操作をした場合に行われます。

すでにある要素に属性を追加したり,属性値を変更したりする場合,名前空間は正規化されません。ただし,アイテム要素がxsd:QName型またはxsd:NOTATION型の場合には,正規化されます。

ここでは,正規化の準備である名前空間一覧および接頭辞の自動生成,名前空間の正規化規則と例,および正規化されない要素について説明します。

<この節の構成>
3.4.1 名前空間一覧および接頭辞の自動生成
3.4.2 名前空間の正規化の例
3.4.3 正規化されない要素