4.4.5 数値コンテキストに対応したアイテムの追加

XBRL2.0に準拠したインスタンス文書に,アイテムを追加するサンプルコードについて説明します。

ここでは,「4.4.3 数値コンテキスト要素の追加」で追加した数値コンテキストに属する,次のアイテム要素を追加します。数値コンテキストを追加した際にunit/measure="iso4217:JPY"を指定し,かつタクソノミー文書の該当する要素でtype="xbrli:monetaryItemType"を指定していれば,値の単位は円になります。

表4-12 数値コンテキストに対応したアイテムの値

項番名称追加するアイテムとその値
hi:assetshi:currentAssetshi:investmentsAndAdvances
1numericContextNC01NC01NC01
2100,00050,00020,000
3コンテキストIDITM02ITM03ITM04
<この項の構成>
(1) 使用するインターフェース
(2) サンプルコード
(3) コーディング結果

(1) 使用するインターフェース

数値コンテキストに対応したアイテムの追加で使用するインターフェースを次の表に示します。

表4-13 数値コンテキストに対応したアイテムの追加で使用するインターフェース

項番使用するインターフェース説明
1com.hitachi.xbrl.instance.XBRLInstanceItemアイテムを表します。
2com.hitachi.xbrl.instance.XBRLInstanceElementインスタンス文書に記述される要素を表します。
3com.hitachi.xbrl.instance.XBRLNumericContext数値コンテキストを表します。
4com.hitachi.xbrl.instance.XBRLInstanceDocumentインスタンス文書全体を表します。

(2) サンプルコード

数値コンテキストに対応したアイテムをXBRL DOMに追加するコードは次のとおりです。

// 数値アイテム - assets要素 - の作成
XBRLInstanceItem numericItem1 =
   idoc.createItem(
       "http://www.hitachi.com/2003/XBRL",
       "assets",
       numericContext);
// 数値アイテム - currentAssets要素 - の作成
XBRLInstanceItem numericItem2 =
   idoc.createItem(
       "http://www.hitachi.com/2003/XBRL",
       "currentAssets",
       numericContext);
// 数値アイテム - investmentsAndAdvances要素 - の作成
XBRLInstanceItem numericItem3 =
   idoc.createItem(
       "http://www.hitachi.com/2003/XBRL",
       "investmentsAndAdvances",
       numericContext);

// 数値アイテムに値を設定
BigDecimal v1 = new BigDecimal(100000);
BigDecimal v2 = new BigDecimal(50000);
BigDecimal v3 = new BigDecimal(20000);

numericItem1.setValue((Object) v1);
numericItem2.setValue((Object) v2);
numericItem3.setValue((Object) v3);

// インスタンス文書に数値アイテムを追加
idoc.appendChildElement((XBRLInstanceElement) numericItem1);
idoc.appendChildElement((XBRLInstanceElement) numericItem2);
idoc.appendChildElement((XBRLInstanceElement) numericItem3);

(3) コーディング結果

コーディング結果として,生成されるインスタンス文書は次のとおりです。

<hi:assets contextRef="C01" unitRef="U01" precision=10>100000</hi:assets>
<hi:currentAssets contextRef="C01" unitRef="U01" precision=10>50000</hi:currentAssets>
<hi:investmentsAndAdvances contextRef="C01" unitRef="U01" precision=10>20000</hi:investmentsAndAdvances>