4.3.2 タクソノミー本体とリンクベースの参照
XBRL2.0に準拠したタクソノミー文書の読み込み時に生成したXBRL DOMから,要素の属性(アイテム名またはタプル名)を参照するサンプルコードについて説明します。要素がアイテムの場合は,その型を参照し,同時にタクソノミー本体に関連づけられたラベルをラベルリンク(リンクベース)から参照します。
タクソノミー本体からアイテム名と型,またはタプル名を,ラベルリンク文書からラベル名(言語)を取り出し,出力します。
- <この項の構成>
- (1) 使用するインターフェース
- (2) サンプルコード
- (3) サンプルコードの実行結果
(1) 使用するインターフェース
タクソノミー本体とリンクベースの参照で使用するインターフェースを次の表に示します。
表4-4 タクソノミー本体とリンクベースの参照で使用するインターフェース
項番 | 使用するインターフェース | 説明 |
---|
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.xsd";
File[] taxonomy = { new File(filename) };
XBRLTaxonomyDocument tdoc = tb.parse(taxonomy);
System.out.println("タクソノミー文書のパースに成功しました。");
/*
* ここからタクソノミー文書の内容を参照
*/
System.out.println("タクソノミー文書の要素宣言と,そのラベルを出力します。");
// 要素宣言(アイテムまたはタプルの定義)の一覧を取得
List<XBRLTaxonomyElement> elist = tdoc.getElements();
for (XBRLTaxonomyElement element : elist) {
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 |