uCosminexus Business Reporting Processor 開発者ガイド

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

4.6.2 タクソノミー本体とリンクベースの参照(アイテム名またはタプル名を参照する場合)

XBRL2.1に準拠したタクソノミー文書の読み込み時に生成したXBRL DOMから,要素の属性(アイテム名またはタプル名)を参照するサンプルコードについて説明します。要素がアイテムの場合は,その型を参照し,同時にタクソノミー本体に関連づけられたラベルをラベルリンク(リンクベース)から参照します。

<この項の構成>
(1) 使用するインターフェース
(2) サンプルコード
(3) サンプルコードの実行結果

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

タクソノミー本体とリンクベースの参照で使用するインターフェースを次の表に示します。

表4-21 タクソノミー本体とリンクベースの参照で使用するインターフェース

項番 使用するインターフェース 説明
1 com.hitachi.xbrl.taxonomy.XBRLTaxonomyDocument タクソノミー文書全体を表します。
2 com.hitachi.xbrl.taxonomy.XBRLTaxonomyElement タクソノミー文書に記述される要素の要素宣言を表します。
3 com.hitachi.xbrl.taxonomy.XBRLTaxonomyItem アイテムの要素宣言を表します。
4 com.hitachi.xbrl.taxonomy.XBRLTaxonomyTuple タプルの要素宣言を表します。
5 com.hitachi.xbrl.taxonomy.XBRLLabel 要素のラベルを表します。

(2) サンプルコード

タクソノミー本体とリンクベースを参照するコードは次のとおりです。

// タクソノミー文書のパース
String filename = "input/sample_taxonomy1_xbrl_2_1.xsd";
File[] taxonomy = { new File(filename) };
XBRLTaxonomyDocument tdoc = tb.parse(taxonomy);
 
System.out.println("タクソノミー文書のパースに成功しました。");
 
/*
 * ここからタクソノミー文書の内容を参照
 */
 
System.out.println("タクソノミー文書の要素宣言と,そのラベルを出力します。");
 
// 要素宣言(アイテムまたはタプルの定義)の一覧を取得
List elist = tdoc.getElements();
for (int i = 0; i < elist.size(); i++) {
    XBRLTaxonomyElement element =
        (XBRLTaxonomyElement) elist.get(i);
    switch (element.getElementType()) {
        case XBRLTaxonomyElement.ITEM_ELEMENT :
            // 要素宣言がアイテム
            XBRLTaxonomyItem item = (XBRLTaxonomyItem) element;
            // 名前の出力
            System.out.println("item:" + item.getName());
            // 型の出力
            if (item.getItemType()
                    == XBRLTaxonomyItem.MONETARY_ITEM) {
                // 型が通貨型(xbrli:monetaryItemType)の場合
                System.out.println(" ItemType:MONETARY_ITEM");
            } else if (
                item.getItemType()
                    == XBRLTaxonomyItem.STRING_ITEM) {
                // 型が文字列型(xbrli:stringItemType)の場合
                System.out.println(" ItemType:STRING_ITEM");
            }
            // 関連付けられているラベルの一覧を取得
            List lbllist = element.getLabels();
            // ラベルの出力
            for (int j = 0; j < lbllist.size(); j++) {
                XBRLLabel lbl = (XBRLLabel) lbllist.get(j);
                // 値と言語を出力
                System.out.println(
                    " Label:"
                        + lbl.getValue()
                        + "("
                        + lbl.getLang()
                        + ")");
            }
            break;
 
        case XBRLTaxonomyElement.TUPLE_ELEMENT :
            // 要素宣言がタプル
            XBRLTaxonomyTuple tuple = (XBRLTaxonomyTuple) element;
            System.out.println("Tuple:" + tuple.getName());
            break;
 
    }
}

(3) サンプルコードの実行結果

サンプルのタクソノミー文書を参照したときの実行結果を次に示します。

タクソノミー文書のパースに成功しました。
タクソノミー文書の要素宣言と,そのラベルを出力します。
item:assets
 ItemType:MONETARY_ITEM
 Label:資産合計(ja)
 Label:Assets(en)
item:currentAssets
 ItemType:MONETARY_ITEM
 Label:流動資産(ja)
 Label:Current assets(en)
item:investmentsAndAdvances
 ItemType:MONETARY_ITEM
 Label:投資及び貸付金(ja)
 Label:Investments and advances(en)
item:note
 ItemType:STRING_ITEM