3.3.1 IDの管理とAPIを使用した要素同士の関係づけ

uCosminexus Business Reporting Processorは,インスタンス文書内の要素に指定されているIDを一元管理します。ユーザーは,ユーザーアプリケーションでAPIを使用して要素同士の関係づけを行います。

ここでは,一元管理されるIDと,APIを使用した要素同士の関係づけについて説明します。また,複数インスタンス文書間でのID管理についても説明します。複数インスタンス文書間でのID管理は,XBRL2.1の場合だけできます。

<この項の構成>
(1) 一元管理されるIDとAPIを使用した要素同士の関係づけ
(2) 複数インスタンス文書間でのID管理(XBRL2.1の場合)

(1) 一元管理されるIDとAPIを使用した要素同士の関係づけ

uCosminexus Business Reporting Processorが一元管理するIDを次の表に示します。

表3-1 一元管理されるID

項番要素名属性名XBRLバージョン
1<xbrli:xbrl>要素id2.1
2アイテム型要素id2.0および2.1
3タプル型要素id2.0および2.1
4<xbrli:numericContext>要素id2.0
5<xbrli:nonNumericContext>要素id2.0
6<xbrli:context>要素id2.1
7<xbrli:unit>要素id2.1
8<link:footnoteLink>要素id2.1
9<link:footnote>要素id2.1
xlink:label2.0および2.1
10<link:loc>要素xlink:label2.0および2.1

上記に示す表のうち,id属性値であるIDは,読み込み時に一元管理されるため,重複する場合はエラーになります。既存のインスタンス文書を参照する場合などには,IDが一意になるように修正してください。

また,脚注リンクの<link:footnote>要素および<link:loc>要素に記述するxlink:label属性値は,インスタンス文書で一意である必要はありません。しかし,uCosminexus Business Reporting Processorでは,XLinkによる関係づけを管理するため,IDとして一元管理しています。既存のインスタンス文書の場合,脚注リンクの再作成後にxlink:label属性値がIDとして一元管理されます。脚注リンクの再作成の詳細については,「付録B 脚注リンクの再作成」を参照してください。

ユーザーが関係づける要素,使用するAPI,およびIDが採番されるタイミングについて説明します。

アイテムとコンテキストとの関係づけ
アイテムとコンテキストとの関係づけには,コンテキストオブジェクトを使用します。XBRL2.0の場合はXBRLNumericContextオブジェクトまたはXBRLNonNumericContextオブジェクトを,XBRL2.1の場合はXBRLContext2オブジェクトを使用します。XBRLInstanceItemオブジェクトに対して,コンテキストオブジェクトを設定することで,アイテムとコンテキストとの従属関係を定義できます。
新しく作成するコンテキストオブジェクトは,オブジェクト作成時にIDが自動採番され,管理されます。XBRL2.1の場合,ユニットオブジェクトも,オブジェクト作成時にIDが自動採番され,管理されます。
脚注リンクとアイテム(またはタプル)の関係づけ
ユーザーアプリケーションは,<link:footnote>要素の内容だけに着目してXBRLFootnoteオブジェクトを作成します。作成したXBRLFootnoteオブジェクトを,関係づけたいXBRLInstanceItemオブジェクト(またはXBRLInstanceTupleオブジェクト)に登録することで,脚注リンクとアイテム(またはタプル)を関係づけることができます。
XBRL DOMでは,<link:footnoteArc>要素および<link:loc>要素を作成するインターフェースはありません。これらの要素は,脚注リンク(<link:footnote>要素)の作成時に自動的に作成されます。
このとき,自動的に作成する<link:loc>要素および<link:footnote>要素のxlink:label属性値となる,IDが自動採番され,管理されます。また,関係づけるアイテム(またはタプル)にid属性値が設定されていない場合には,IDが自動採番され,管理されます。

(2) 複数インスタンス文書間でのID管理(XBRL2.1の場合)

XBRL2.1の場合は,一つのXML文書内に複数のインスタンス文書を含めることができます。そのため,複数のインスタンス文書にわたってIDを一意にする必要があります。

uCosminexus Business Reporting Processorは,インスタンス文書ごとにIDを管理します。また,複数のインスタンス文書にわたってIDを一元管理する手段として,XBRLIdManagerクラスを提供します。XBRLIdManagerオブジェクトを使用することで,複数のインスタンス文書間でIDを一元管理できます。