Visits: 1189
Typed dimensionを用いて定義リンクベース(requires-element)の関係を組み込む
試行中のファイルは、GitHubから
accountingEntries – entryHeader – entryDetail
XBRL GLでは、コンテキストを使用しない形でComplexContentの入れ子構造でインスタンス文書を定義している。
最大繰り返し数をunboundとすることで、accountingEntriesの下に複数のentryHeaderを、entryHeaderの下に複数のentryDetailをそれぞれ含む形で表現している。
これを分解したときに、accountingEntriesとentryHeaderとの関係、entryHeaderとentryDetailとの関係をどうやって表現するかが問題となる。
タクソノミ文書でのxbrldt:dimensionItem定義
<!-- Domain --> <element name="EntryNumber" id="gl-cor_EntryNumber"> <simpleType> <restriction base="string"/> </simpleType> </element> <element name="dEntryNumber" id="gl-cor_dEntryNumber" type="xbrli:stringItemType" substitutionGroup="xbrldt:dimensionItem" abstract="true" xbrli:periodType="instant" xbrldt:typedDomainRef="#gl-cor_EntryNumber"/> <element name="LineNumber" id="gl-cor_LineNumber"> <simpleType> <restriction base="string"/> </simpleType> </element> <element name="dLineNumber" id="gl-cor_dLineNumber" type="xbrli:stringItemType" substitutionGroup="xbrldt:dimensionItem" abstract="true" xbrli:periodType="instant" xbrldt:typedDomainRef="#gl-cor_LineNumber"/>
インスタンス文書でのxbrli:context定義
<xbrli:segment>に<xbrldi:typedMember dimension=”gl-cor:dEntryNumber”>及び<xbrldi:typedMember dimension=”gl-cor:dLineNumber”>で<xbrli:context>を定義する。
<!-- context --> <xbrli:context id="now"> <xbrli:entity> <xbrli:identifier scheme="http://www.xbrl.org/xbrlgl/sample">SAMPLE</xbrli:identifier> </xbrli:entity> <xbrli:period> <xbrli:instant>2020-01-01</xbrli:instant> </xbrli:period> </xbrli:context> <xbrli:context id="H1"> <xbrli:entity> <xbrli:identifier scheme="http://www.xbrl.org/xbrlgl/sample">SAMPLE</xbrli:identifier> <xbrli:segment> <xbrldi:typedMember dimension="gl-cor:dEntryNumber"> <gl-cor:EntryNumber>H1</gl-cor:EntryNumber> </xbrldi:typedMember> </xbrli:segment> </xbrli:entity> <xbrli:period> <xbrli:instant>2020-01-01</xbrli:instant> </xbrli:period> </xbrli:context> <xbrli:context id="H1L1"> <xbrli:entity> <xbrli:identifier scheme="http://www.xbrl.org/xbrlgl/sample">SAMPLE</xbrli:identifier> <xbrli:segment> <xbrldi:typedMember dimension="gl-cor:dEntryNumber"> <gl-cor:EntryNumber>H1</gl-cor:EntryNumber> </xbrldi:typedMember> <xbrldi:typedMember dimension="gl-cor:dLineNumber"> <gl-cor:LineNumber>L1</gl-cor:LineNumber> </xbrldi:typedMember> </xbrli:segment> </xbrli:entity> <xbrli:period> <xbrli:instant>2020-01-01</xbrli:instant> </xbrli:period> </xbrli:context> <xbrli:context id="H1L2"> <xbrli:entity> <xbrli:identifier scheme="http://www.xbrl.org/xbrlgl/sample">SAMPLE</xbrli:identifier> <xbrli:segment> <xbrldi:typedMember dimension="gl-cor:dEntryNumber"> <gl-cor:EntryNumber>H1</gl-cor:EntryNumber> </xbrldi:typedMember> <xbrldi:typedMember dimension="gl-cor:dLineNumber"> <gl-cor:LineNumber>L2</gl-cor:LineNumber> </xbrldi:typedMember> </xbrli:segment> </xbrli:entity> <xbrli:period> <xbrli:instant>2020-01-01</xbrli:instant> </xbrli:period> </xbrli:context>
インスタンス文書
entryHeaderは、表示リンク用の<gl-cor:entryHeader contextRef=”H1″>H1</gl-cor:entryHeader>及び<gl-cor:entryHeader.Detail>を定義する。
entryHeaderに対応するentryDetailは、<gl-cor:specified.entryDetail contextRef=”H1L1″/>で定義し、タプル構造を表現する<gl-cor:entryDetail.Detail>では、それに含む項目にcontextRef=”H1L1″を定義することで対応関係を表現する。
<!-- entryHeader --> <gl-cor:entryHeader.Detail> <gl-cor:enteredBy contextRef="H1">Otto Wellwood</gl-cor:enteredBy> <gl-cor:enteredDate contextRef="H1">2005-07-01</gl-cor:enteredDate> <gl-cor:sourceJournalID contextRef="H1">gj</gl-cor:sourceJournalID> <gl-bus:sourceJournalDescription contextRef="H1">JE</gl-bus:sourceJournalDescription> <gl-cor:entryType contextRef="H1">standard</gl-cor:entryType> <gl-cor:entryNumber contextRef="H1">1</gl-cor:entryNumber> <gl-cor:entryComment contextRef="H1">Current period depreciation expense</gl-cor:entryComment> <gl-cor:qualifierEntry contextRef="H2">standard</gl-cor:qualifierEntry> <gl-bus:totalDebit decimals="2" contextRef="H1" unitRef="usd">7700.00</gl-bus:totalDebit> <gl-bus:totalCredit decimals="2" contextRef="H1" unitRef="usd">7700.00</gl-bus:totalCredit> <gl-cor:bookTaxDifference contextRef="H1">temporary</gl-cor:bookTaxDifference> <gl-cor:specified.entryDetail contextRef="H1L1"/> <gl-cor:specified.entryDetail contextRef="H1L2"/> <gl-cor:specified.entryDetail contextRef="H1L3"/> <gl-cor:specified.entryDetail contextRef="H1L4"/> </gl-cor:entryHeader.Detail> <!-- entryDetail --> <gl-cor:entryDetail.Detail> <gl-cor:lineNumber contextRef="H1L1">L1</gl-cor:lineNumber> <gl-cor:specified.account contextRef="ACCOUNT6200"/> <gl-cor:amount decimals="2" contextRef="H1L1" unitRef="usd">7000.00</gl-cor:amount> <gl-cor:debitCreditCode contextRef="H1L1">D</gl-cor:debitCreditCode> <gl-cor:postingDate contextRef="H1L1">2005-06-30</gl-cor:postingDate> <gl-cor:postingStatus contextRef="H1L1">posted</gl-cor:postingStatus> <gl-cor:detailComment contextRef="H1L1">Current period depreciation expense - books</gl-cor:detailComment> </gl-cor:entryDetail.Detail>
フォーミュラリンクベース実行結果
上記の定義で表現したインスタンス文書で貸し方合計と借り方合計の金額が一致するかを検証するフォーミュラリンクベースのテストを実行すると次の結果が得られる。
詳細は別ページから。
世界標準データ形式の実装検証
1 XBRL 2.1タクソノミ
UN/CEFACTコア構成要素技術仕様(CCTS)
目的:CCTS構造をXBRL 2.1で表現することで透明性と拡張性を高める
タプルの子項目に子タプルを含まない形とする
DTS
タプル定義
定義リンクベース
表示リンクベース
2 XBRL 2.1インスタンス文書
Typed dimensionを用いて定義リンクベース(requires-element)の関係を組み込む
タクソノミ文書でのxbrldt:dimensionItem定義
インスタンス文書でのxbrli:context定義
インスタンス文書
フォーミュラリンクベース実行結果
3 XBRL 2.1フォーミュラリンクベース
定義
実行結果
4 XBRL 2.1テーブルリンクベース[試行中]
定義
実行結果
5 XBRL 2.1タプルを使わないとき[試行中]
定義
インスタンス文書
実行結果