uCosminexus Business Reporting Processor 開発者ガイド
XBRL Dimensions1.0に準拠したインスタンス文書のXBRL DOMに多次元データを含んだコンテキスト要素を追加するサンプルコードについて説明します。
ここでは,<xbrldi:explicitMember>要素を追加するサンプルコードについて説明します。なお,<xbrldi:typedMember>要素を追加する場合は,<xbrldi:explicitMember>要素を<xbrldi:typedMember>要素に読み替えてください。
ここで説明するサンプルコードでは,次の内容のコンテキスト要素を追加します。表中の「名称」欄のインデントは,コーディング結果のインデントを示しています。
表4-46 多次元データを含んだコンテキスト要素
| 項番 | 名称 | 要素/属性 | 値 |
|---|---|---|---|
| 1 | コンテキストID | 属性 | C01およびC02 |
| 2 | 時期 | 要素 | 2008-09-30 |
| 3 | エンティティ(組織) | 要素 | − |
| 4 | 識別子 | 要素 | SAMP |
| 5 | スキーム | 属性 | "http://www.hitachi.com/2008/XBRL" |
| 6 | セグメント | 要素 | − |
| 7 | explicitMember dimension | 要素 | p0:Tokyo,p0:LCおよびp0:Plasma※ |
(凡例)−:値を保持しません。
注※ プリフィックスp01の名前空間URIは"http://www.hitachi.com/2008/XBRL/dim/sample"とします。なお,プリフィックスと名前空間URIの組み合わせは,あらかじめcom.hitachi.xbrl.util.XBRLNamespaceDeclarationクラスで作成し,インスタンス文書に追加してください。
多次元データを含んだコンテキスト要素の追加で使用するクラスおよびインターフェースを次の表に示します。
表4-47 多次元データを含んだコンテキスト要素の追加で使用するクラスおよびインターフェース
| 項番 | 使用するクラスおよびインターフェース | 説明 |
|---|---|---|
| 1 | com.hitachi.xbrl.instance.XBRLInstanceDocument | インスタンス文書全体を表します。 |
| 2 | com.hitachi.xbrl.types.XBRLQName | XML Schemaのデータ型QNameを表します。 |
| 3 | com.hitachi.xbrl.instance.XBRLSegment | セグメント要素を表します。 |
| 4 | com.hitachi.xbrl.instance.XBRLExplicitMember | <xbrldi:explicitMember>要素を表します。 |
| 5 | com.hitachi.xbrl.instance.XBRLIdentifier | 識別子要素を表します。 |
| 6 | com.hitachi.xbrl.instance.XBRLEntity | エンティティ要素を表します。 |
| 7 | com.hitachi.xbrl.types.XBRLDateUnion | XBRLのデータ型dateUnionを表します。 |
| 8 | com.hitachi.xbrl.instance.XBRLPeriod | 時期要素を表します。 |
| 9 | com.hitachi.xbrl.instance.XBRLContext2 | XBRL2.1のコンテキスト要素を表します。 |
| 10 | com.hitachi.xbrl.instance.XBRLContext | コンテキスト要素を表します。 |
多次元データを含んだコンテキスト要素をXBRL DOMに追加するコードは次のとおりです。
/*
* ここからアイテム(売上高)の作成
*/
XBRLQName LC = new XBRLQName("http://www.hitachi.com/2008/XBRL/dim/sample", "LC");
XBRLQName plasma = new XBRLQName("http://www.hitachi.com/2008/XBRL/dim/sample", "Plasma");
// 東京の売上
XBRLQName tokyo = new XBRLQName("http://www.hitachi.com/2008/XBRL/dim/sample", "Tokyo");
BigDecimal salesLC = new BigDecimal("10000000");
createItem(idoc, unit, tokyo, LC, salesLC);
BigDecimal salesPlasma = new BigDecimal("8000000");
createItem(idoc, unit, tokyo, plasma, salesPlasma);
:
:
:
private static void createItem(
XBRLInstanceDocument idoc,
XBRLUnit2 unit,
XBRLQName distValue,
XBRLQName prodValue,
BigDecimal salesValue) {
/*
* ここからコンテキストの作成
*/
// segment要素の作成
XBRLSegment segment = idoc.createSegment();
// explicitMember要素の作成 - DistDim
XBRLQName distDim = new XBRLQName("http://www.hitachi.com/2008/XBRL/dim/sample", "DistDim");
XBRLExplicitMember distExplicit = idoc.createExplicitMember(distDim, distValue);
segment.appendDimensionMember(distExplicit);
// explicitMember要素の作成 - ProductDim
XBRLQName prodDim = new XBRLQName("http://www.hitachi.com/2008/XBRL/dim/sample", "ProductDim");
XBRLExplicitMember prodExplicit = idoc.createExplicitMember(prodDim, prodValue);
segment.appendDimensionMember(prodExplicit);
// identifier要素の作成
XBRLIdentifier identifier =
idoc.createIdentifier(
"http://www.hitachi.com/2008/XBRL",
"SAMP");
// entity要素の作成
XBRLEntity entity = idoc.createEntity(identifier, segment);
// period要素の作成
XBRLDateUnion date = new XBRLDateUnion("2008-09-30");
XBRLPeriod period = idoc.createPeriod(date);
// コンテキストの作成
XBRLContext2 context = idoc.createContext(entity, period, null);
// インスタンス文書にコンテキストを追加
idoc.addContext((XBRLContext) context);
|
コーディング結果として,生成されるインスタンス文書は次のとおりです。
<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>
|
All Rights Reserved. Copyright (C) 2006, 2008, Hitachi, Ltd.