uCosminexus Business Reporting Processor 開発者ガイド

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

4.11.2 プライマリー・アイテムの追加

XBRL Dimensions1.0に準拠したインスタンス文書のXBRL DOMにプライマリー・アイテムを追加するサンプルコードについて説明します。

ここでは,プライマリー・アイテムディメンジョンの関係を検証してからプライマリー・アイテムをインスタンス文書へ追加するサンプルコードについて説明します。インスタンス文書全体の検証については,「4.12 既存のインスタンス文書の参照と検証(XBRL Dimensions1.0の場合)」を参照してください。

なお,「4.11.2(3) コーディング結果」で示すコーディング結果のコンテキスト要素には「4.11.1 多次元データを含んだコンテキスト要素の追加」で追加したコンテキストが記述されています。

<この項の構成>
(1) 使用するクラスおよびインターフェース
(2) サンプルコード
(3) コーディング結果

(1) 使用するクラスおよびインターフェース

プライマリー・アイテムの追加で使用するクラスおよびインターフェースを次の表に示します。

表4-48 プライマリー・アイテムの追加で使用するクラスおよびインターフェース

項番 使用するクラスおよびインターフェース 説明
1 com.hitachi.xbrl.instance.XBRLContext2 XBRL2.1のコンテキスト要素を表します。
2 com.hitachi.xbrl.instance.XBRLContext コンテキスト要素を表します。
3 com.hitachi.xbrl.instance.XBRLInstanceDocument インスタンス文書全体を表します。
4 com.hitachi.xbrl.types.XBRLDecimals 数値アイテムのdecimals属性値を表します。
5 com.hitachi.xbrl.instance.XBRLInstanceItem アイテムを表します。
6 com.hitachi.xbrl.instance.XBRLInstanceElement インスタンス文書の要素を表します。
7 com.hitachi.xbrl.instance.XBRLDOMException XBRL DOMの例外を表します。

(2) サンプルコード

プライマリー・アイテムをXBRL DOMに追加するコードは次のとおりです。

        // コンテキストの作成
        XBRLContext2 context = idoc.createContext(entity, period, null);
        // インスタンス文書にコンテキストを追加
        idoc.addContext((XBRLContext) context);
 
        /*
         * ここから数値アイテムの作成
         */
 
        // decimals属性値の作成
        XBRLDecimals decimals = new XBRLDecimals("0");
 
        // 数値アイテム - NumbersOfSales要素 - の作成
        XBRLInstanceItem salesItem =
            idoc.createNumericItem(
                "http://www.hitachi.com/2008/XBRL/dim/sample",
                "NumbersOfSales",
                context,
                unit,
                null,
                decimals);
 
        // 数値アイテムに値を設定
        salesItem.setValue((Object) salesValue);
 
        try {
            // 妥当性検証
            if (salesItem.validateDimensions()) {
                // インスタンス文書に数値アイテムを追加
                idoc.appendChildElement((XBRLInstanceElement) salesItem);
            } else {
                System.out.println("アイテムとコンテキストの組み合わせは正しくありません。");
            }
 
        } catch (XBRLDOMException de) {
            de.printStackTrace();
        }
 
    }
}

(3) コーディング結果

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

<xbrli:unit id="U01">
  <xbrli:measure>iso4217:JPY</xbrli:measure>
</xbrli:unit>
 
<xbrli:context id="C01">
  <xbrli:entity>
    <xbrli:identifier
        schema="http://www.hitachi.com/2008/XBRL">SAMP</xbrli:identifier>
    <xbrli:segment>
      <xbrldi:explicitMember dimension="p0:DistDim">p0:Tokyo</xbrldi:explicitMember>
      <xbrldi:explicitMember dimension="p0:ProductDim">p0:LC</xbrldi:explicitMember>
    </xbrli:segment>
  </xbrli:entity>
  <xbrli:period>
    <xbrli:instant>2008-09-30</xbrli:instant>
  </xbrli:period>
</xbrli:context>
 
<xbrli:context id="C02">
  <xbrli:entity>
    <xbrli:identifier
        schema="http://www.hitachi.com/2008/XBRL">SAMP</xbrli:identifier>
    <xbrli:segment>
      <xbrldi:explicitMember dimension="p0:DistDim">p0:Tokyo</xbrldi:explicitMember>
      <xbrldi:explicitMember dimension="p0:ProductDim">p0:Plasma</xbrldi:explicitMember>
    </xbrli:segment>
  </xbrli:entity>
  <xbrli:period>
    <xbrli:instant>2008-09-30</xbrli:instant>
  </xbrli:period>
</xbrli:context>
 
<p0:NumbersOfSales contextRef="C01" unitRef="U01" decimals="0">10000000</p0:NumbersOfSales>
<p0:NumbersOfSales contextRef="C02" unitRef="U01" decimals="0">8000000</p0:NumbersOfSales>