3.4.3 正規化されない要素

ここでは,名前空間が正規化されない<scenario>要素および<segment>要素について説明します。

<scenario>要素および<segment>要素には任意のXML要素を記述できるため,<scenario>要素および<segment>要素の子孫ノード(要素,属性または値)について,名前空間接頭辞の変更,および名前空間宣言の削除をしないで,記述された内容のままとします。

このため,次のすべての条件にあてはまる既存インスタンス文書を編集し,保存した場合,保存した文書が不正になるおそれがあります。

この場合,あらかじめ名前空間に対する接頭辞を一つに統一しておくことで,文書が不正になることを防げます。

インスタンス文書内で,同じ名前空間に対する(大域または局所的の区別なく)名前空間宣言が複数ない場合や,<scenario>要素および<segment>要素下位の子孫ノード内で名前空間が閉じている場合は,名前空間の正規化が行われても文書の意味は変わりません。

ただし,XBRL Dimensions1.0の場合は,次に示す要素,および値だけが名前空間の正規化の対象になります。

<この項の構成>
(1) 正規化されない例
(2) 正規化されなかったため,不正な文書となる例

(1) 正規化されない例

正規化前:

<xbrli:group xmlns:xbrli="http://www.xbrl.org/2001/instance"
 :
 <xbrli:numericContext id="C03" precision="18" cwa="false">
   <xbrli:entity>
     <xbrli:identifier scheme="www.hitachi.com">HITACHI</xbrli:identifier>
       <xbrli:segment xmlns:my="http://www.sampleCompany.com/segment">
         <my:state xmlns:addr="http://www.sampleCompany.com/address">
           <addr:address>Yokohama</addr:address>
           <addr:zipcode>244-0003</addr:zipcode>
         </my:state>
       </xbrli:segment>
 :

正規化後:

<xbrli:group xmlns:xbrli="http://www.xbrl.org/2001/instance"
            xmlns:my="http://www.sampleCompany.com/segment"
 :
 <xbrli:numericContext id="C03" precision="18" cwa="false">
   <xbrli:entity>
     <xbrli:identifier scheme="www.hitachi.com">HITACHI</xbrli:identifier>
       <xbrli:segment>
         <my:state xmlns:addr="http://www.sampleCompany.com/address">
           <addr:address>Yokohama</addr:address>
           <addr:zipcode>244-0003</addr:zipcode>
         </my:state>
       </xbrli:segment>
 :

解説:
正規化前は,<segment>要素に,局所的な名前空間「http://www.sampleCompany.com/segment」が宣言されていましたが,正規化後では,この宣言が文書のルート要素である<group>要素に移動されています。
ただし,<segment>要素下位の子要素である<my:state>要素で宣言されている「http://www.sampleCompany.com/address」は,<segment>要素下位の子孫ノードが対象外であるため,正規化されません。宣言位置は正規化前と同じです。

(2) 正規化されなかったため,不正な文書となる例

正規化前:

<xbrli:group xmlns:xbrli="http://www.xbrl.org/2001/instance"
            xmlns:my="http://www.sampleCompany.com/segment"
            xmlns:xlink="http://www.w3.org/1999/xlink"
 :
 <my:tradePayable.notes nonNumericContext=NC03'>note</my:tradePayable.notes>
 :
 <xbrli:numericContext id="C03" precision="18" cwa="false">
   <xbrli:entity>
     <xbrli:identifier scheme="www.hitachi.com">HITACHI</xbrli:identifier>
       <xbrli:segment xmlns:xlk="http://www.w3.org/1999/xlink">
         <my:state xmlns:addr="http://www.sampleCompany.com/address">
           <addr:address>Yokohama</addr:address>
           <addr:zipcode>244-0003</addr:zipcode>
         </my:state>
         <my:footnote xlk:type="simple"xlk:href="http://www.sampleCompany.com/note"/>
       </xbrli:segment>
 :

正規化後:

<xbrli:group xmlns:xbrli="http://www.xbrl.org/2001/instance"
            xmlns:my="http://www.sampleCompany.com/segment"
            xmlns:xlink="http://www.w3.org/1999/xlink"
 :
 <my:tradePayable.notes nonNumericContext=NC03'>note</my:tradePayable.notes>
 :
 <xbrli:numericContext id="C03" precision="18" cwa="false">
   <xbrli:entity>
     <xbrli:identifier scheme="www.hitachi.com">HITACHI</xbrli:identifier>
       <xbrli:segment>
         <my:state xmlns:addr="http://www.sampleCompany.com/address">
           <addr:address>Yokohama</addr:address>
           <addr:zipcode>244-0003</addr:zipcode>
         </my:state>
         <my:footnote xlk:type="simple"xlk:href="http://www.sampleCompany.com/note"/>
       </xbrli:segment>
 :

解説:
正規化前は,<segment>要素に,局所的な名前空間「http://www.w3.org/1999/xlink」が宣言されていましたが,正規化によって文書のルート要素である<group>要素に宣言されている名前空間宣言が優先され,<segment>要素の局所的な名前空間宣言に対応するノードは削除されます。
このため正規化によって,大域属性である「xlk:type」「xlk:href」属性の接頭辞「xlk」に対する名前空間宣言のない不正な文書となります。
この例のように,同じ名前空間に対して複数の接頭辞が混在する,既存インスタンス文書を編集する場合,あらかじめ,名前空間に対する接頭辞を一つに統一しておくことで,不具合を防げます。