4.9.4 関係の禁止

ここでは,既存の関係を禁止し,新たな関係を追加するサンプルコードについて説明します。

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

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

既存の関係を禁止し,新たな関係を追加するために使用するクラスおよびインターフェースを次の表に示します。

表4-42 既存の関係の禁止や新たな関係の追加で使用するクラスおよびインターフェース

項番使用するクラスおよびインターフェース説明
1com.hitachi.xbrl.taxonomy.XBRLTaxonomyDocumentタクソノミー文書全体を表します。
2com.hitachi.xbrl.taxonomy.XBRLTaxonomyElementタクソノミー文書に記述される要素の要素宣言を表します。
3com.hitachi.xbrl.taxonomy.XBRLLabel要素のラベルを表します。
4com.hitachi.xbrl.link.XBRLLabelRelationshipラベルリンクに記述されている関係のうち,一つの関係を表します。
5com.hitachi.xbrl.simple.taxonomy.SimpleEdge単純なタクソノミー文書を構成する関係ネットワークの一辺(一つの関係)を表します。
6com.hitachi.xbrl.simple.taxonomy.SimpleLabel単純なタクソノミー文書のラベルを表します。
7com.hitachi.xbrl.simple.taxonomy.SimpleLabelEdge単純なタクソノミー文書を構成するラベルリンクの一辺(一つの関係)を表します。
8com.hitachi.xbrl.simple.taxonomy.SimpleTaxonomy編集できる単純なタクソノミー文書全体を表します。
9com.hitachi.xbrl.util.XBRLConstantsユーザーアプリケーションで利用できる定数を定義します。

(2) サンプルコード

既存の関係を禁止し,新たな関係をXBRL DOMに追加するコードは次のとおりです。

// SimpleTaxonomyの作成時に複製されたXBRLTaxonomyDocumentを取得
XBRLTaxonomyDocument baseDoc = sdoc.getBaseTaxonomyDocument();

// 既存の関係を禁止する
XBRLTaxonomyElement item2 =
   baseDoc.getElement(
       "http://www.hitachi.com/2004/XBRL",
       "investmentsAndAdvances");
if (item2 != null) {
   List<XBRLLabelRelationship> list =
       item2.getLabelRelationships(
           XBRLConstants.XBRL21_ROLE_LINK,
           XBRLConstants.XBRL21_ARCROLE_CONCEPT_LABEL);

   for (XBRLLabelRelationship rs : list) {
       XBRLLabel label = (XBRLLabel) rs.getTo();
       if ("ja".equals(label.getLang())) {
           SimpleEdge prohibitedEdge =
               sdoc.createProhibitedEdge(rs);
           sdoc.addEdge(prohibitedEdge);
       }
   }
}

// 新たな関係を作成
SimpleLabel newLabel =
   sdoc.createLabel(
       XBRLConstants.XBRL21_ROLE_LABEL,
       "ja",
       "投資と前貸金");
SimpleLabelEdge newEdge =
   sdoc.createLabelEdge(
       XBRLConstants.XBRL21_ROLE_LINK,
       XBRLConstants.XBRL21_ARCROLE_CONCEPT_LABEL,
       item2,
       newLabel);
sdoc.addEdge(newEdge);

このサンプルコードでは,次に示す既存のアイテムに対し,既存の日本語ラベルとの関係を禁止して,新たな日本語ラベルとの関係を作成しています。

<element id="investmentsAndAdvances" name="investmentsAndAdvances"
        type="xbrli:monetaryItemType" substitutionGroup="xbrli:item"
        xbrli:periodType="instant" xbrli:balance="credit"/>

これによって既存の日本語ラベルとの関係が禁止されます。禁止される関係は次のとおりです。

<link:labelLink xlink:role="http://www.xbrl.org/2003/role/link" xlink:type="extended">
   <link:loc
       xlink:type="locator"
       xlink:href="sample_taxonomy1_xbrl_2_1.xsd#investmentsAndAdvances"
       xlink:label="assets.investmentsAndAdvances"
       xlink:title="assets.investmentsAndAdvances"/>
   <link:label
       xlink:type="resource"
       xlink:label="label_assets.investmentsAndAdvances_ja"
       xlink:title="assets.investmentsAndAdvances_ja"
       xml:lang="ja">投資及び貸付金</link:label>
   <link:labelArc
       xlink:type="arc"
       xlink:from="assets.investmentsAndAdvances"
       xlink:to="label_assets.investmentsAndAdvances_ja"
       xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label"
       xlink:title="assets.investmentsAndAdvances to label_assets.investmentsAndAdvances_ja"/>
</link:labelLink>

新たに,次に示す日本語ラベルとの関係が追加されます。

<link:labelLink xlink:role="http://www.xbrl.org/2003/role/link" xlink:type="extended">
   <link:loc xlink:href="sample_taxonomy1_xbrl_2_1.xsd#investmentsAndAdvances"
          xlink:label="hi_investmentsAndAdvances" xlink:type="locator"/>
   <link:loc xlink:href="linkbase_label1_xbrl_2_1.xml#element(/1/1/12)"
          xlink:label="label_assets.investmentsAndAdvances_ja" xlink:type="locator"/>
   <link:label xlink:label="hi_investmentsAndAdvances_ja"
          xlink:role="http://www.xbrl.org/2003/role/label"
          xlink:type="resource" xml:lang="ja">投資と前貸金</link:label>
   <link:labelArc order="1" priority="1" use="prohibited"
          xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label"
          xlink:from="hi_investmentsAndAdvances" xlink:to="label_assets.investmentsAndAdvances_ja"
          xlink:type="arc"/>
   <link:labelArc order="1" priority="0" use="optional"
          xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label"
          xlink:from="hi_investmentsAndAdvances" xlink:to="hi_investmentsAndAdvances_ja"