Search Posts

Visits: 756

Implement definition linkbase (requires-element) relationship using typed dimension

accountingEntries – entryHeader – entryDetail

In XBRL GL, an instance document is defined in a nested structure of ComplexContent without using Context. By setting the maximum number of repetitions of child elements, multiple entryHeaders are expressed under accountingEntries, and multiple entryDetails are expressed under entryHeader. Arbitrary repetition is possible. When disassembling this, the problem is how to express the relationship between accountingEntries and entryHeader and the relationship between entryHeader and entryDetail.

Note: The files can be found at GitHub.

xbrldt:dimensionItem definition in taxonomy document
<!-- 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 definition in instance document

<xbrli:segment>に<xbrldi:typedMember dimension=”gl-cor:dEntryNumber”> and <xbrldi:typedMember dimension=”gl-cor:dLineNumber”> define <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>
Instance document

A entryHeader is defined as <gl-cor:entryHeader contextRef=”H1″>H1</gl-cor:entryHeader> and <gl-cor:entryHeader.Detail> for presentation linkbase。
A entryDetail corresponding to entryHeader is defined as <gl-cor:specified.entryDetail contextRef=”H1L1″/> under tuple structure. <gl-cor:entryDetail.Detail>’s children defines correspondent relation with contextRef=”H1L1″ attribute.

<!-- 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>

Execution result of formula linkbase

Running the formula link-based test to verify that the total debit and debit amounts match in the instance document expressed in the definition above yields the following results:
another page describes more detail.