4.7.2 コンテキスト要素の追加

XBRL2.1に準拠したインスタンス文書のXBRL DOMに,コンテキスト要素を追加するサンプルコードについて説明します。コンテキスト要素を追加する場合,コンテキスト要素の子要素(entity,periodなど)を作成する必要があります。

ここで説明するサンプルコードでは,次の内容のコンテキスト要素を追加します。表中の「名称」欄のインデントは,コーディング結果のインデントを示しています。

表4-24 コンテキスト要素

項番名称要素/属性
1コンテキストID属性C01
2時期要素2004-03-31
3エンティティ(組織)要素
4  識別子要素SAMP
5  スキーム属性http://www.hitachi.co.jp/2004/XBRL
6  セグメント要素
7    prefecture要素Tokyo

(凡例)-:値を持つことができません。

注※ "prefecture"の名前空間URIは"http://www.hitachi.com/2004/XBRL"とします。


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

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

コンテキスト要素の追加で使用するインターフェースを次の表に示します。

表4-25 コンテキスト要素の追加で使用するインターフェース

項番使用するインターフェース説明
1com.hitachi.xbrl.types.XBRLDateUnionXBRLのデータ型dateUnionを表します。
2com.hitachi.xbrl.instance.XBRLPeriod時期要素を表します。
3com.hitachi.xbrl.instance.XBRLIdentifier識別子要素を表します。
4com.hitachi.xbrl.instance.XBRLSegmentセグメント要素を表します。
5com.hitachi.xbrl.instance.XBRLEntityエンティティ要素を表します。
6com.hitachi.xbrl.instance.XBRLContextコンテキスト要素を表します。
7com.hitachi.xbrl.instance.XBRLContext2XBRL2.1のコンテキスト要素を表します。
8com.hitachi.xbrl.instance.XBRLInstanceDocumentインスタンス文書全体を表します。

(2) サンプルコード

コンテキスト要素をXBRL DOMに追加するコードは次のとおりです。

// period要素の作成
XBRLDateUnion date = new XBRLDateUnion("2004-03-31");
XBRLPeriod period = idoc.createPeriod(date);
// identifier要素の作成
XBRLIdentifier identifier =
   idoc.createIdentifier(
       "http://www.hitachi.com/2004/XBRL",
       "SAMP");
// segment要素の作成
XBRLSegment segment = idoc.createSegment();

// segment要素に対応するorg.w3c.dom.Elementの取得
Node container = segment.getContainerNode();
// インスタンス文書に対応するorg.w3c.dom.Documentの取得
Document doc = (Document) idoc.getW3CDOMNode();
// prefecture要素の作成
Element prefecture =
   doc.createElementNS(
       "http://www.hitachi.com/2004/XBRL",
       "prefecture");
prefecture.appendChild(doc.createTextNode("Tokyo"));
// segment要素の子要素にprefecture要素を追加
container.appendChild(prefecture);

// entity要素の作成
XBRLEntity entity = idoc.createEntity(identifier, segment);

// コンテキストの作成
XBRLContext2 context = idoc.createContext(entity, period, null);
// インスタンス文書にコンテキストを追加
idoc.addContext((XBRLContext) context);

(3) コーディング結果

コーディング結果として,生成されるインスタンス文書は次のとおりです。

<xbrli:context id="C01">
   <xbrli:entity>
    <xbrli:identifier
      schema="http://www.hitachi.com/2004/XBRL">SAMP</xbrli:identifier>
    <xbrli:segment>
      <prefecture xmlns="http://www.hitachi.com/2004/XBRL">Tokyo</prefecture>
    </xbrli:segment>
   </xbrli:entity>
   <xbrli:period>
      <xbrli:instant>2004-03-31</xbrli:instant>
   </xbrli:period>
</xbrli:context>