uCosminexus Business Reporting Processor 開発者ガイド

[目次][用語][索引][前へ][次へ]

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」に対する名前空間宣言のない不正な文書となります。
この例のように,同じ名前空間に対して複数の接頭辞が混在する,既存インスタンス文書を編集する場合,あらかじめ,名前空間に対する接頭辞を一つに統一しておくことで,不具合を防げます。