uCosminexus Business Reporting Processor 開発者ガイド
XBRL Dimensions1.0に準拠したタクソノミー文書の読み込み時に生成したXBRL DOMから,DRSの情報を参照するサンプルコードについて説明します。
このサンプルコードでは,リンクの関係を表すインターフェースの一つである,XBRLDimensionalRelationshipSetインターフェースを使用しています。
タクソノミー本体とリンクベースの参照で使用するインターフェースを次の表に示します。
表4-45 タクソノミー本体とリンクベースの参照で使用するインターフェース
| 項番 | 使用するインターフェース | 説明 |
|---|---|---|
| 1 | com.hitachi.xbrl.taxonomy.XBRLTaxonomyDocument | タクソノミー文書全体を表します。 |
| 2 | com.hitachi.xbrl.link.XBRLDimensionalRelationshipSet | プライマリー・アイテムに関連づいているDRSを表します。 |
| 3 | com.hitachi.xbrl.taxonomy.XBRLTaxonomyElement | タクソノミー文書に記述される要素の要素宣言を表します。 |
| 4 | com.hitachi.xbrl.link.XBRLDRSDimension | インスタンス文書に記述できるディメンジョンを表します。 |
| 5 | com.hitachi.xbrl.link.XBRLDRSMember | インスタンス文書に記述できるディメンジョンのメンバを表します。 |
| 6 | com.hitachi.xbrl.util.XBRLConstants | ユーザーアプリケーションで利用できる定数を定義します。 |
タクソノミー本体とリンクベースを参照するコードは次のとおりです。
// タクソノミー文書のパース
String filename = "input/sample_xbrl_dim_taxonomy.xsd";
File[] taxonomy = { new File(filename) };
XBRLTaxonomyDocument tdoc = tb.parse(taxonomy);
System.out.println("タクソノミー文書のパースに成功しました。");
/*
* ここからタクソノミー文書の内容を参照
*/
System.out.println("読み込んだDRS情報を出力します。");
// すべてのDRSの取得
List<XBRLDimensionalRelationshipSet> drssList =
tdoc.getDimensionalRelationshipSets();
if (drssList.size() > 0) {
for (int i = 0; i < drssList.size(); i++) {
System.out.println("--------------------");
XBRLDimensionalRelationshipSet drss = drssList.get(i);
// プライマリー・アイテムを取得
XBRLTaxonomyItem item = drss.getTaxonomyItem();
System.out.println(
"(" + i + ") primary item = "
+ item.getName());
/*
* このアイテムに対するディメンジョンの一覧を取得する
*/
// DRSのロールの一覧を取得する
List<String> roleList = drss.getRoles();
for (int j = 0; j < roleList.size(); j++) {
// DRSのロールを出力
String extRole = roleList.get(j);
System.out.println(
" + (" + j + ") role = "
+ extRole);
// このロールのディメンジョン一覧を取得する
List<XBRLDRSDimension> dimList =
drss.getDRSDimensions(extRole);
for (int n = 0; n < dimList.size(); n++) {
// ロールのディメンジョンを出力
XBRLDRSDimension dim = dimList.get(n);
System.out.println(
" + (" + n + ") dimension = "
+ dim.getQName());
// このディメンジョンのメンバを取得する
List<XBRLDRSMember> memList =
drss.getDRSMembers(dim);
for (int m = 0; m < memList.size(); m++) {
// ディメンジョンのメンバを出力
XBRLDRSMember mem = memList.get(m);
System.out.println(
" + (" + m + ") member = "
+ mem.getQName());
}
}
}
System.out.println("");
}
}
|
サンプルのタクソノミー文書を参照したときの実行結果を次に示します。
タクソノミー文書のパースに成功しました。
読み込んだDRS情報を出力します。
--------------------
(0) primary item = NumbersOfSales
+ (0) role = http://www.xbrl.org/2003/role/link
+ (0) dimension = {http://www.hitachi.com/2008/XBRL/dim/sample}DistDim
+ (0) member = {http://www.hitachi.com/2008/XBRL/dim/sample}Tokyo
+ (1) member = {http://www.hitachi.com/2008/XBRL/dim/sample}Kanagawa
+ (2) member = {http://www.hitachi.com/2008/XBRL/dim/sample}Osaka
+ (3) member = {http://www.hitachi.com/2008/XBRL/dim/sample}Kyoto
+ (1) dimension = {http://www.hitachi.com/2008/XBRL/dim/sample}ProductDim
+ (0) member = {http://www.hitachi.com/2008/XBRL/dim/sample}LC
+ (1) member = {http://www.hitachi.com/2008/XBRL/dim/sample}Plasma
|
All Rights Reserved. Copyright (C) 2006, 2008, Hitachi, Ltd.