uCosminexus Business Reporting Processor 開発者ガイド
XBRL Dimensions1.0に準拠したタクソノミー文書の読み込み時に生成したXBRL DOMから,プライマリー・アイテムのディメンジョンとアイテムの情報を参照するサンプルコードについて説明します。プライマリー・アイテムおよびディメンジョンの表示名には,ラベルを使用します。
インスタンス文書とリンクベースの参照で使用するインターフェースを次の表に示します。
表4-50 インスタンス文書とリンクベースの参照で使用するインターフェース
| 項番 | 使用するインターフェース | 説明 |
|---|---|---|
| 1 | com.hitachi.xbrl.instance.XBRLInstanceDocument | インスタンス文書全体を表します。 |
| 2 | com.hitachi.xbrl.taxonomy.XBRLTaxonomyDocument | タクソノミー文書全体を表します。 |
| 3 | com.hitachi.xbrl.instance.XBRLInstanceElement | インスタンス文書に記述される要素を表します。 |
| 4 | com.hitachi.xbrl.instance.XBRLInstanceItem | アイテムを表します。 |
| 5 | com.hitachi.xbrl.instance.XBRLContext | コンテキスト要素を表します。 |
| 6 | com.hitachi.xbrl.instance.XBRLEntity | エンティティ要素を表します。 |
| 7 | com.hitachi.xbrl.instance.XBRLSegment | セグメント要素を表します。 |
| 8 | com.hitachi.xbrl.instance.XBRLExplicitMember | xbrldi:explicitDimension要素を表します。 |
| 9 | com.hitachi.xbrl.taxonomy.XBRLLabel | 要素のラベルを表します。 |
| 10 | com.hitachi.xbrl.taxonomy.XBRLTaxonomyElement | タクソノミー文書に記述される要素の要素宣言を表します。 |
| 11 | com.hitachi.xbrl.types.XBRLQName | XML Schemaのデータ型QNameを表します。 |
インスタンス文書とリンクベースを参照するコードは次のとおりです。
/*
* ここから内容を表示する
*/
// タクソノミー文書を取得
XBRLTaxonomyDocument tdoc = idoc.getTaxonomyDocument();
// 売上高の一覧を取得する
List<XBRLInstanceElement> elemList =
idoc.getElements(
"http://www.hitachi.com/2008/XBRL/dim/sample",
"NumbersOfSales");
for (int i = 0; i < elemList.size(); i++) {
System.out.print("(" + i + ")");
XBRLInstanceItem item = (XBRLInstanceItem) elemList.get(i);
// コンテキスト要素を取得する
XBRLContext context = item.getContext();
// エンティティ要素を取得する
XBRLEntity entity = context.getEntity();
// セグメント要素を取得する
XBRLSegment segment = entity.getSegment();
// explicitMember要素の一覧を取得する
List<XBRLExplicitMember> expMemList =
segment.getExplicitMembers();
for (XBRLExplicitMember expMem : expMemList) {
// dimension属性値からディメンジョンを求める
XBRLQName dimension = expMem.getDimension();
XBRLTaxonomyElement dimElem =
tdoc.getElement(
dimension.getNamespaceURI(),
dimension.getLocalPart());
// ディメンジョンの日本語ラベルを取得する
XBRLLabel dimLabel = dimElem.getLabel("ja", null);
// explicitMember要素の値からメンバを求める
XBRLQName member = expMem.getValue();
XBRLTaxonomyElement memElem =
tdoc.getElement(
member.getNamespaceURI(),
member.getLocalPart());
// メンバの日本語ラベルを取得する
XBRLLabel memLabel = memElem.getLabel("ja", null);
// ディメンジョンとそのメンバを表示
System.out.print(
" " + dimLabel.getValue() +
":" + memLabel.getValue() + ",");
}
// プライマリー・アイテムの日本語ラベルを取得する
XBRLLabel label = item.getLabel("ja", null);
// アイテムとその値を表示
System.out.println(
" " + label.getValue() +
":" + item.getValue());
}
|
サンプルのインスタンス文書を参照したときの実行結果を次に示します。
インスタンス文書のパースに成功しました。 (0) 地域:東京, 製品:液晶, 売上高:10000000 (1) 地域:東京, 製品:プラズマ, 売上高:8000000 (2) 地域:神奈川, 製品:液晶, 売上高:8000000 (3) 地域:神奈川, 製品:プラズマ, 売上高:5000000 (4) 地域:大阪, 製品:液晶, 売上高:9000000 (5) 地域:大阪, 製品:プラズマ, 売上高:8000000 (6) 地域:京都, 製品:液晶, 売上高:7500000 (7) 地域:京都, 製品:プラズマ, 売上高:5500000 |
All Rights Reserved. Copyright (C) 2006, 2008, Hitachi, Ltd.