4.5.2 脚注リンクの追加

4.5.1 インスタンス文書の読み込み」で読み込んだXBRL2.0に準拠するインスタンス文書のXBRL DOMに,脚注リンクを追加するサンプルコードについて説明します。

脚注リンクの構成要素は,ロケータ,リソース,アークから成り立ちます。それぞれ,<link:loc>要素,<link:footnote>要素,<link:footnoteArc>要素を使用して記述します。

<link:footnoteArc>要素では,一つのリンクを双方向で表現する必要があるため,ロケータ(<link:loc>要素)からリソース(<link:footnote>要素)へのアーク,およびリソース(<link:footnote>要素)からロケータ(<link:loc>要素)へのアークの両方が必要です。

uCosminexus Business Reporting Processorでは,リソース(<link:footnote>要素)を生成して関連づける要素に登録すると,ロケータ(<link:loc>要素)とアーク(<link:footnoteArc>要素)も自動で追加されます。

ここでは,非数値アイテムに日本語と英語の脚注リンクを追加します。二つの脚注リンクを追加するので,リソースおよびアークが2要素ずつ追加されます。

脚注リンクを追加する非数値アイテム<hi:note>要素の値を次の表に示します。

表4-16 脚注リンクを追加する非数値アイテムの値

項番名称要素/属性
1nonNumericContext属性NNC01
2hi:note要素This is a sample!

追加する<link:footnote>要素を次の表に示します。

表4-17 追加する<link:footnote>要素

項番属性名
1xlink:typeresource
2xlink:labeldst_point_jadst_point_en
3xml:langjaen

<link:footnote>要素の値は日本語(ja)「これは脚注リンクです。」,英語(en)「This is a footnote-link.」とします。

追加される<link:loc>要素および<link:footnoteArc>要素を次の表に示します。

表4-18 追加される<link:loc>要素および<link:footnoteArc>要素

要素名属性名
<link:loc>要素xlink:typelocator
xlink:labelsrc_point
xlink:hrefITM01
<link:footnoteArc>要素
(<link:loc>要素から<link:footnote>要素へのアーク)
xlink:typearc
xlink:from(locatorで設定されたlabel:src_point)
xlink:to(footnoteで設定されたlabel:dst_point_ja)
(footnoteで設定されたlabel:dst_point_en)
xlink:arcrolehttp://www.xbrl.org/linkprops/arc/fact-footnote
xlink:showreplace
xlink:actuateonRequest
<link:footnoteArc>要素
(<link:footnote>要素から<link:loc>要素へのアーク)
xlink:typearc
xlink:from(footnoteで設定されたlabel:dst_point_ja)
(footnoteで設定されたlabel:dst_point_en)
xlink:to(locatorで設定されたlabel:src_point)
xlink:arcrolehttp://www.xbrl.org/linkprops/arc/footnote-fact
xlink:showreplace
xlink:actuateonRequest

注※ xlink:href属性では,インスタンス文書の本文中の要素をidまたはxpointer(Xpath方式)で指し示す必要があります。


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

(1) 使用するクラスおよびインターフェース

脚注リンクの追加で使用するクラスおよびインターフェースを次の表に示します。

表4-19 脚注リンクの追加で使用するクラスおよびインターフェース

項番使用するクラスおよびインターフェース説明
1com.hitachi.xbrl.instance.XBRLFootnote脚注を表します。
2com.hitachi.xbrl.instance.XBRLInstanceElementインスタンス文書に記述される要素を表します。
3com.hitachi.xbrl.instance.XBRLInstanceDocumentインスタンス文書全体を表します。

(2) サンプルコード

インスタンス文書のXBRL DOMに脚注リンクを追加するコードは次のとおりです。

// 脚注の作成(日本語)
XBRLFootnote footnote_ja = idoc.createFootnote("ja", null, null);
footnote_ja.setValue("これは脚注リンクです。");
// 脚注の作成(英語)
XBRLFootnote footnote_en = idoc.createFootnote("en", null, null);
footnote_en.setValue("This is a footnote-link.");

// すべてのnote要素(アイテム)を取得
List<XBRLInstanceElement> elist =
   idoc.getElements("http://www.hitachi.com/2003/XBRL", "note");

// 最初の要素に脚注を追加して関連づける
XBRLInstanceElement element = elist.get(0);
element.addFootnote(footnote_ja);
element.addFootnote(footnote_en);

(3) コーディング結果

コーディング結果として,生成される脚注リンクは次のとおりです。

<link:footnoteLink xlink:type="extended">
<link:footnote xlink:label="src_point" xlink:type="resource" xml:lang="ja">
   これは脚注リンクです。</link:footnote>
<link:loc xlink:href="#ITM01" xlink:label="dst_point_ja" xlink:type="locator" />
<link:footnoteArc xlink:actuate="onRequest"
   xlink:arcrole="http://www.xbrl.org/linkprops/arc/footnote-fact"
   xlink:from="src_point" xlink:show="replace" xlink:to="dst_point_ja"
   xlink:type="arc" />
<link:footnoteArc xlink:actuate="onRequest"
   xlink:arcrole="http://www.xbrl.org/linkprops/arc/fact-footnote"
   xlink:from="dst_point_ja" xlink:show="replace" xlink:to="src_point"
   xlink:type="arc" />
<link:footnote xlink:label="dst_point_en" xlink:type="resource"
   xml:lang="en">This is a footnote-link.</link:footnote>
<link:footnoteArc xlink:actuate="onRequest"
   xlink:arcrole="http://www.xbrl.org/linkprops/arc/footnote-fact"
   xlink:from="dst_point_en" xlink:show="replace" xlink:to="dst_point_ja"
   xlink:type="arc" />
<link:footnoteArc xlink:actuate="onRequest"
   xlink:arcrole="http://www.xbrl.org/linkprops/arc/fact-footnote"
   xlink:from="dst_point_ja" xlink:show="replace" xlink:to="dst_point_en"
   xlink:type="arc" />
</link:footnoteLink>