Releases: JeffFerguson/gepsio
Version 2.1.0.17 - Sun 05 Jun 2022
Design
- Gepsio now targets .NET 6.0.
- Gepsio now builds on Linux as well as Windows. Gepsio unit tests use the
Path.DirectorySeparatorChar
property when constructing relative paths so that the appropriate directory separator character is used when running unit tests on any given operating system. - Per Microsoft's guidance, Gepsio's use of
HttpClient
is now instantiated once and re-used for all instances ofXbrlDocument
. Instantiating anHttpClient
object for every request, as was done in previous versions of Gepsio, will exhaust the number of sockets available under heavy loads. This will result inSocketException
errors. - The
XbrlDocument
class now includes explicit support for loading documents found at the SEC Web site, with no additional work required by the caller. Gepsio automatically detects URIs specifying documents found in the SEC Web site and supplies the appropriate HTTP headers to the HTTP request during document retrieval. All of this extra work is transparent to the caller. See this documentation for more information. - The
Create()
factory method in theLinkbaseDocument
class will no longer throw an exception when the linkbase document's role cannot be determined. Instead, anull
reference will be returned.
Bug Fixes
- No changes from the previous release.
Breaking Changes
- No changes from the previous release.
Conformance
- Improved notion of structure equality for units by allowing measure qualified names to be anywhere in the set of names, as long as they are present. Previous versions required the measure qualified names to be in the same order for a unit's structure equality.
- XML node values are now examined when determining a node's structure equality with another XML node.
- Gepsio can now internally check arcs for equivalency using the rules in section 3.5.3.9.7.4 of the XBRL Specification.
- Inproved calculation linkbase validation, specifically:
- Gepsio now honors explicit priority values specified in calculation arcs.
- The calculation linkbase validation engine now honors calculation arcs marked with prohibited usage and manages the calculation link appropriately.
- Gepsio now checks for structure equality between a summation concept item's context and all contributing concept item's contexts.
- Gepsio now has the notion of type-safe values for node and attribute values. For nodes and attributes defined in a schema as having a non-string value, such as an integer, double, or decimal value, then Gepsio will convert the original string-based value into a value of the correct type when necessary.
Industry-Standard Schema Support
Gepsio automatically loads industry-standard schemas when referenced by their namespace, even when not explicitly referenced by a schemaRef
element. This list describes the industry-standard schemas that Gepsio supports.
Schemas marked NEW have been added to the support list in this release.
- Document Information and Entity Information 2009
- Document Information and Entity Information 2014
- International Financial Reporting Standards (IFRS) 2016
- International Financial Reporting Standards (IFRS) 2017
- International Financial Reporting Standards (IFRS) 2018
- US-GAAP 2009
- US-GAAP 2017
- US-GAAP 2017 Investment Management
- US-GAAP 2018
- US-GAAP 2018 Investment Management
- US Mutual Fund Risk/Return Taxonomy 2012
- US Mutual Fund Risk/Return Taxonomy 2018
The blog post "Next Release to Support Automatic Loading of Industry Standard Schemas" provides more information about the need for, and design of, the support for industry-standard schemas.
Conformance Tests In XBRL-CONF-2014-12-10 Passed by Gepsio
Tests marked NEW failed in previous releases but now pass due to Gepsio's increased conformance with the XBRL 2.1 Specification.
Identifier Scope [Section 4.3 The Item Element]
301-01-IdScopeValid.xml
[301.01 Valid example of id attribute.]301-03-IdScopePeriodDiff.xml
[301.03 Mismatch of periodType attribute and referenced context's period type.]301-04-IdScopeContextRefToUnit.xml
[301.04 contextRef has IDREF to unit element.]301-05-IdScopeUnitRefToContext.xml
[301.05 unitRef has IDREF to context element.]301-06-FootnoteScopeValid.xml
[301.06 Valid example of footnote link href attribute.]301-08-FootnoteToContext.xml
[301.08 href attribute is referencing to context element.]301-09-FootnoteToUnit.xml
[301.09 href attribute is referencing to unit element.]301-10-FootnoteFromOutOfScope.xml
[301.10 The instance contains two footnote links. The second one contains an arc with a from value that does not have a corresponding loc in the same extended link.]301-11-FootnoteToOutOfScope.xml
[301.11 The instance contains two footnote links. The second one contains an arc with a to value that does not have a corresponding footnote resource in the same extended link.]301-12-FootnoteLocOutOfScope.xml
[301.12 The instance contains a footnote link. In the footnote link there is a loc element that has an href that points to a fact in another instance document.]301-13-FootnoteLocInScope.xml
[301.13 The instance contains a footnote link. In the footnote link there is a loc element that has an href that points to a fact in the instance document using the instance document file name with a fragment identifier.]301-14-FootnoteFromResource.xml
[301.14 The instance contains a footnote link. The arc in the footnote link has a from value that matches a footnote resource. This is not valid for the fact-footnote arc role on the arc. The from must point to a loc which in turns points to a fact in the same instance document.]301-15-FootnoteToLoc.xml
[301.15 The instance contains a footnote link. The arc in the footnote link has a from value that matches a footnote resource. This is not valid for the fact-footnote arc role on the arc. The from must point to a loc which in turns points to a fact in the same instance document.]301-16-FootnoteWithoutLang.xml
[301.16 The xml:lang attribute is missing on the footnote resource.]301-17-FootnoteCustomArcRole.xml
[301.17 The footnote custom arc role can relate two footnotes to each other instead of just fact to footnote. (Only the standard footnote arc role is restricted to being from item or tuple locators.) Maybe this might be used to indicate how some footnote is "footnoting" another footnote.]
Context Segments and Scenarios [Section 4.4 The Context Element]
302-01-SegmentValid.xml
[302.01 Valid segment in a context]302-02-SegmentNamespaceInvalid.xml
[302.02 Invalid segment in a context; contains an element defined in xbrli namespace]302-03-ScenarioValid.xml
[302.03 Valid scenario in a context]302-04-ScenarioNamespaceInvalid.xml
[302.04 Invalid scenario in a context; contains an element defined in xbrli namespace]302-05-SegmentSubstitutionInvalid.xml
[302.05 Invalid segment in a context; contains an element in substitution group of xbrli:item]302-06-ScenarioSubstitutionInvalid.xml
[302.06 Invalid scenario in a context; contains an element in substitution group of xbrli:item]302-07-SegmentEmptyContent.xml
[302.07 Segment in a context contains an element with empty content]302-08-ScenarioEmptyContent.xml
[302.08 Scenario in a context contains an element with empty content]302-09-PeriodDateTimeValid.xml
[302.09 Valid duration context with start date earlier than end date]302-10-PeriodDateTimeInvalid.xml
[302.10 Invalid duration context with start date later than end date]302-11-DecimalAttributeOnSegmentInconsistent.xbrl
[302.11 Two contexts are S-Equal even though a decimal-valued attribute in their segment elements have different lexical representations. The contexts are S-equal, so a calculation inconsistency MUST be signaled.]302-12-DecimalAttributeOnScenarioInconsistent.xbrl
[302.12 Two contexts are S-Equal even though a decimal-valued attribute in their scenario elements have different lexical representations. The contexts are S-equal, so a calculation inconsistency MUST be signaled.]
Period Type Consistency [Section 4.3 The Item Element]
303-01-PeriodInstantValid.xml
[303.01 instant context and item defined with PeriodType="instant"]303-02-PeriodDurationValid.xml
[303.02 duration context and item defined with PeriodType="duration"]303-03-PeriodInstantInvalid.xml
[303.03 duration context and item defined with PeriodType="instant"]303-04-PeriodDurationInvalid.xml
[303.04 instant context and item defined with PeriodType="duration"]303-05-ForeverElementewithInstancePeriodTypeReportedasForever.xbrl
[ForeverConcept with Instant Period Type is not allowed]
Unit of Measure Consistency [Section 4.4 The Context Element]
304-01-monetaryItemTypeUnitsRestrictions.xml
[304.01 An element with a monetary item type has an ISO currency code for its units (using the standard ISO namespace prefix).]304-02-monetaryItemTypeUnitsRestrictions.xml
[304.02 An element with a monetary item type has an ISO currency code for its units (using a non-standard ISO namespace prefix).]304-03-monetaryItemTypeUnitsRestrictions.xml
[304.03 An element with a type derived by restriction from the monetary item type has an ISO currency code for its units.]304-04-monetaryItemTypeUnitsRestrictions.xml
[304.04 An element with a type derived by restriction from monetary item type has an ISO currency code for its units (using a non-standard ISO namespace prefix).]304-05-monetaryItemTypeUnitsRestrictions.xml
...
Version 2.1.0.16 - Wed 01 Apr 2020
Design
- All of the arc classes derive from a common base class called
Arc
, which is itself derived fromXLinkNode
. This allows all arcs to inherit common behavior, such as equivalency checking, as well as common properties such asTitle
. Previous releases did not group the various arc classes under a common base class. This design change is not a breaking change and will have no effect on code that uses Gepsio. - The
CalculationArc
class now supports a property calledPriority
. The value of the property is mapped to the value of thepriority
attribute in the<calculationArc>
element. If the<calculationArc>
element does not have apriority
attribute, then the value of thePriority
property in the correspondingCalculationArc
object will be0
.
Bug Fixes
- No changes from the previous release.
Breaking Changes
- No changes from the previous release.
Conformance
- Improved notion of structure equality for units by allowing measure qualified names to be anywhere in the set of names, as long as they are present. Previous versions required the measure qualified names to be in the same order for a unit's structure equality.
- XML node values are now examined when determining a node's structure equality with another XML node.
- Gepsio can now internally check arcs for equivalency using the rules in section 3.5.3.9.7.4 of the XBRL Specification.
- Inproved calculation linkbase validation, specifically:
- Gepsio now honors explicit priority values specified in calculation arcs.
- The calculation linkbase validation engine now honors calculation arcs marked with prohibited usage and manages the calculation link appropriately.
- Gepsio now checks for structure equality between a summation concept item's context and all contributing concept item's contexts.
- Gepsio now has the notion of type-safe values for node and attribute values. For nodes and attributes defined in a schema as having a non-string value, such as an integer, double, or decimal value, then Gepsio will convert the original string-based value into a value of the correct type when necessary.
Industry-Standard Schema Support
Gepsio automatically loads industry-standard schemas when referenced by their namespace, even when not explicitly referenced by a schemaRef
element. This list describes the industry-standard schemas that Gepsio supports.
Schemas marked NEW have been added to the support list in this release.
- Document Information and Entity Information 2009
- Document Information and Entity Information 2014
- International Financial Reporting Standards (IFRS) 2016
- International Financial Reporting Standards (IFRS) 2017
- International Financial Reporting Standards (IFRS) 2018
- US-GAAP 2009
- US-GAAP 2017
- US-GAAP 2017 Investment Management
- US-GAAP 2018
- US-GAAP 2018 Investment Management
- US Mutual Fund Risk/Return Taxonomy 2012
- US Mutual Fund Risk/Return Taxonomy 2018
The blog post "Next Release to Support Automatic Loading of Industry Standard Schemas" provides more information about the need for, and design of, the support for industry-standard schemas.
Conformance Tests In XBRL-CONF-2014-12-10 Passed by Gepsio
Tests marked NEW failed in previous releases but now pass due to Gepsio's increased conformance with the XBRL 2.1 Specification.
Identifier Scope [Section 4.3 The Item Element]
301-01-IdScopeValid.xml
[301.01 Valid example of id attribute.]301-03-IdScopePeriodDiff.xml
[301.03 Mismatch of periodType attribute and referenced context's period type.]301-04-IdScopeContextRefToUnit.xml
[301.04 contextRef has IDREF to unit element.]301-05-IdScopeUnitRefToContext.xml
[301.05 unitRef has IDREF to context element.]301-06-FootnoteScopeValid.xml
[301.06 Valid example of footnote link href attribute.]301-08-FootnoteToContext.xml
[301.08 href attribute is referencing to context element.]301-09-FootnoteToUnit.xml
[301.09 href attribute is referencing to unit element.]301-10-FootnoteFromOutOfScope.xml
[301.10 The instance contains two footnote links. The second one contains an arc with a from value that does not have a corresponding loc in the same extended link.]301-11-FootnoteToOutOfScope.xml
[301.11 The instance contains two footnote links. The second one contains an arc with a to value that does not have a corresponding footnote resource in the same extended link.]301-12-FootnoteLocOutOfScope.xml
[301.12 The instance contains a footnote link. In the footnote link there is a loc element that has an href that points to a fact in another instance document.]301-13-FootnoteLocInScope.xml
[301.13 The instance contains a footnote link. In the footnote link there is a loc element that has an href that points to a fact in the instance document using the instance document file name with a fragment identifier.]301-14-FootnoteFromResource.xml
[301.14 The instance contains a footnote link. The arc in the footnote link has a from value that matches a footnote resource. This is not valid for the fact-footnote arc role on the arc. The from must point to a loc which in turns points to a fact in the same instance document.]301-15-FootnoteToLoc.xml
[301.15 The instance contains a footnote link. The arc in the footnote link has a from value that matches a footnote resource. This is not valid for the fact-footnote arc role on the arc. The from must point to a loc which in turns points to a fact in the same instance document.]301-16-FootnoteWithoutLang.xml
[301.16 The xml:lang attribute is missing on the footnote resource.]301-17-FootnoteCustomArcRole.xml
[301.17 The footnote custom arc role can relate two footnotes to each other instead of just fact to footnote. (Only the standard footnote arc role is restricted to being from item or tuple locators.) Maybe this might be used to indicate how some footnote is "footnoting" another footnote.]
Context Segments and Scenarios [Section 4.4 The Context Element]
302-01-SegmentValid.xml
[302.01 Valid segment in a context]302-02-SegmentNamespaceInvalid.xml
[302.02 Invalid segment in a context; contains an element defined in xbrli namespace]302-03-ScenarioValid.xml
[302.03 Valid scenario in a context]302-04-ScenarioNamespaceInvalid.xml
[302.04 Invalid scenario in a context; contains an element defined in xbrli namespace]302-05-SegmentSubstitutionInvalid.xml
[302.05 Invalid segment in a context; contains an element in substitution group of xbrli:item]302-06-ScenarioSubstitutionInvalid.xml
[302.06 Invalid scenario in a context; contains an element in substitution group of xbrli:item]302-07-SegmentEmptyContent.xml
[302.07 Segment in a context contains an element with empty content]302-08-ScenarioEmptyContent.xml
[302.08 Scenario in a context contains an element with empty content]302-09-PeriodDateTimeValid.xml
[302.09 Valid duration context with start date earlier than end date]302-10-PeriodDateTimeInvalid.xml
[302.10 Invalid duration context with start date later than end date]302-11-DecimalAttributeOnSegmentInconsistent.xbrl
[302.11 Two contexts are S-Equal even though a decimal-valued attribute in their segment elements have different lexical representations. The contexts are S-equal, so a calculation inconsistency MUST be signaled.]302-12-DecimalAttributeOnScenarioInconsistent.xbrl
[302.12 Two contexts are S-Equal even though a decimal-valued attribute in their scenario elements have different lexical representations. The contexts are S-equal, so a calculation inconsistency MUST be signaled.]
Period Type Consistency [Section 4.3 The Item Element]
303-01-PeriodInstantValid.xml
[303.01 instant context and item defined with PeriodType="instant"]303-02-PeriodDurationValid.xml
[303.02 duration context and item defined with PeriodType="duration"]303-03-PeriodInstantInvalid.xml
[303.03 duration context and item defined with PeriodType="instant"]303-04-PeriodDurationInvalid.xml
[303.04 instant context and item defined with PeriodType="duration"]303-05-ForeverElementewithInstancePeriodTypeReportedasForever.xbrl
[ForeverConcept with Instant Period Type is not allowed]
Unit of Measure Consistency [Section 4.4 The Context Element]
304-01-monetaryItemTypeUnitsRestrictions.xml
[304.01 An element with a monetary item type has an ISO currency code for its units (using the standard ISO namespace prefix).]304-02-monetaryItemTypeUnitsRestrictions.xml
[304.02 An element with a monetary item type has an ISO currency code for its units (using a non-standard ISO namespace prefix).]304-03-monetaryItemTypeUnitsRestrictions.xml
[304.03 An element with a type derived by restriction from the monetary item type has an ISO currency code for its units.]304-04-monetaryItemTypeUnitsRestrictions.xml
[304.04 An element with a type derived by restriction from monetary item type has an ISO currency code for its units (using a non-standard ISO namespace prefix).]304-05-monetaryItemTypeUnitsRestrictions.xml
[304.05 An element with a non-monetary item type has an ISO currency code for its units (using the standard ISO namespace prefix).]304-06-monetaryItemTypeUnitsRestrictions.xml
[304.06 An element with a monetary item type does not have an ISO currency code for its units - the namespace is wrong.]304-07-monetaryItemTypeUnitsRestrictions.xml
[304.07 An element with a monetaryItemType does not have an ISO currency code for its units - the local name is wrong.]304-08-monetaryItemTypeUnitsRestrictions.xml
[304.08 An element with a type derive...
Version 2.1.0.15 - Wed 01 Jan 2020
Design
- XBRL documents can now be loaded asynchronously. The
XbrlDocument
class supports an asynchronousLoadAsync()
method as well as the existing synchronousLoad()
method. Calling code is free to use either method to load XBRL instances as appropriate for the situation. - Gepsio is now built with .NET Standard 2.1. The previous release was built with .NET Standard 2.0. The move to .NET Standard 2.1 was required to support asynchronous document loading.
Bug Fixes
- Decimal conversions now use an invariant culture so that decimal values are correctly parsed. This fixes Issue 16. Thank you to Christian Jundt for the bug fix!
- Gepsio no longer crashes when no Internet connection is available when it attempts to load a schema instance or document instance from a URL. This fixes Issue 21. Thank you to Christian Jundt for the bug fix!
Breaking Changes
- Because of the move from .NET Standard 2.0 to .NET Standard 2.1, Gepsio can no longer support the .NET Framework. .NET Standard 2.1 no longer supports the .NET Framework, as documented here. Applications using this version of Gepsio should migrate to .NET Core 3.0, which supports .NET Standard 2.1. If a migration to .NET 3.0 is not possible, then applications should continue to use an older version of Gepsio.
Conformance
- No changes from the previous release.
Industry-Standard Schema Support
Gepsio automatically loads industry-standard schemas when referenced by their namespace, even when not explicitly referenced by a schemaRef
element. This list describes the industry-standard schemas that Gepsio supports.
Schemas marked NEW have been added to the support list in this release.
- Document Information and Entity Information 2009
- Document Information and Entity Information 2014
- International Financial Reporting Standards (IFRS) 2016
- International Financial Reporting Standards (IFRS) 2017
- International Financial Reporting Standards (IFRS) 2018
- US-GAAP 2009
- US-GAAP 2017
- US-GAAP 2017 Investment Management
- US-GAAP 2018
- US-GAAP 2018 Investment Management
- US Mutual Fund Risk/Return Taxonomy 2012
- US Mutual Fund Risk/Return Taxonomy 2018
The blog post "Next Release to Support Automatic Loading of Industry Standard Schemas" provides more information about the need for, and design of, the support for industry-standard schemas.
Conformance Tests In XBRL-CONF-2014-12-10 Passed by Gepsio
Tests marked NEW failed in previous releases but now pass due to Gepsio's increased conformance with the XBRL 2.1 Specification.
Identifier Scope [Section 4.3 The Item Element]
301-01-IdScopeValid.xml
[301.01 Valid example of id attribute.]301-03-IdScopePeriodDiff.xml
[301.03 Mismatch of periodType attribute and referenced context's period type.]301-04-IdScopeContextRefToUnit.xml
[301.04 contextRef has IDREF to unit element.]301-05-IdScopeUnitRefToContext.xml
[301.05 unitRef has IDREF to context element.]301-06-FootnoteScopeValid.xml
[301.06 Valid example of footnote link href attribute.]301-08-FootnoteToContext.xml
[301.08 href attribute is referencing to context element.]301-09-FootnoteToUnit.xml
[301.09 href attribute is referencing to unit element.]301-10-FootnoteFromOutOfScope.xml
[301.10 The instance contains two footnote links. The second one contains an arc with a from value that does not have a corresponding loc in the same extended link.]301-11-FootnoteToOutOfScope.xml
[301.11 The instance contains two footnote links. The second one contains an arc with a to value that does not have a corresponding footnote resource in the same extended link.]301-12-FootnoteLocOutOfScope.xml
[301.12 The instance contains a footnote link. In the footnote link there is a loc element that has an href that points to a fact in another instance document.]301-13-FootnoteLocInScope.xml
[301.13 The instance contains a footnote link. In the footnote link there is a loc element that has an href that points to a fact in the instance document using the instance document file name with a fragment identifier.]301-14-FootnoteFromResource.xml
[301.14 The instance contains a footnote link. The arc in the footnote link has a from value that matches a footnote resource. This is not valid for the fact-footnote arc role on the arc. The from must point to a loc which in turns points to a fact in the same instance document.]301-15-FootnoteToLoc.xml
[301.15 The instance contains a footnote link. The arc in the footnote link has a from value that matches a footnote resource. This is not valid for the fact-footnote arc role on the arc. The from must point to a loc which in turns points to a fact in the same instance document.]301-16-FootnoteWithoutLang.xml
[301.16 The xml:lang attribute is missing on the footnote resource.]301-17-FootnoteCustomArcRole.xml
[301.17 The footnote custom arc role can relate two footnotes to each other instead of just fact to footnote. (Only the standard footnote arc role is restricted to being from item or tuple locators.) Maybe this might be used to indicate how some footnote is "footnoting" another footnote.]
Context Segments and Scenarios [Section 4.4 The Context Element]
302-01-SegmentValid.xml
[302.01 Valid segment in a context]302-02-SegmentNamespaceInvalid.xml
[302.02 Invalid segment in a context; contains an element defined in xbrli namespace]302-03-ScenarioValid.xml
[302.03 Valid scenario in a context]302-04-ScenarioNamespaceInvalid.xml
[302.04 Invalid scenario in a context; contains an element defined in xbrli namespace]302-05-SegmentSubstitutionInvalid.xml
[302.05 Invalid segment in a context; contains an element in substitution group of xbrli:item]302-06-ScenarioSubstitutionInvalid.xml
[302.06 Invalid scenario in a context; contains an element in substitution group of xbrli:item]302-07-SegmentEmptyContent.xml
[302.07 Segment in a context contains an element with empty content]302-08-ScenarioEmptyContent.xml
[302.08 Scenario in a context contains an element with empty content]302-09-PeriodDateTimeValid.xml
[302.09 Valid duration context with start date earlier than end date]302-10-PeriodDateTimeInvalid.xml
[302.10 Invalid duration context with start date later than end date]302-11-DecimalAttributeOnSegmentInconsistent.xbrl
[302.11 Two contexts are S-Equal even though a decimal-valued attribute in their segment elements have different lexical representations. The contexts are S-equal, so a calculation inconsistency MUST be signaled.]302-12-DecimalAttributeOnScenarioInconsistent.xbrl
[302.12 Two contexts are S-Equal even though a decimal-valued attribute in their scenario elements have different lexical representations. The contexts are S-equal, so a calculation inconsistency MUST be signaled.]
Period Type Consistency [Section 4.3 The Item Element]
303-01-PeriodInstantValid.xml
[303.01 instant context and item defined with PeriodType="instant"]303-02-PeriodDurationValid.xml
[303.02 duration context and item defined with PeriodType="duration"]303-03-PeriodInstantInvalid.xml
[303.03 duration context and item defined with PeriodType="instant"]303-04-PeriodDurationInvalid.xml
[303.04 instant context and item defined with PeriodType="duration"]303-05-ForeverElementewithInstancePeriodTypeReportedasForever.xbrl
[ForeverConcept with Instant Period Type is not allowed]
Unit of Measure Consistency [Section 4.4 The Context Element]
304-01-monetaryItemTypeUnitsRestrictions.xml
[304.01 An element with a monetary item type has an ISO currency code for its units (using the standard ISO namespace prefix).]304-02-monetaryItemTypeUnitsRestrictions.xml
[304.02 An element with a monetary item type has an ISO currency code for its units (using a non-standard ISO namespace prefix).]304-03-monetaryItemTypeUnitsRestrictions.xml
[304.03 An element with a type derived by restriction from the monetary item type has an ISO currency code for its units.]304-04-monetaryItemTypeUnitsRestrictions.xml
[304.04 An element with a type derived by restriction from monetary item type has an ISO currency code for its units (using a non-standard ISO namespace prefix).]304-05-monetaryItemTypeUnitsRestrictions.xml
[304.05 An element with a non-monetary item type has an ISO currency code for its units (using the standard ISO namespace prefix).]304-06-monetaryItemTypeUnitsRestrictions.xml
[304.06 An element with a monetary item type does not have an ISO currency code for its units - the namespace is wrong.]304-07-monetaryItemTypeUnitsRestrictions.xml
[304.07 An element with a monetaryItemType does not have an ISO currency code for its units - the local name is wrong.]304-08-monetaryItemTypeUnitsRestrictions.xml
[304.08 An element with a type derived by restriction from monetaryItemType does not have an ISO currency code for its units - the namespace is wrong.]304-09-monetaryItemTypeUnitsRestrictions.xml
[304.09 An element with a type derived by restriction from monetaryItemType does not have an ISO currency code for its units - the local name is wrong.]304-10-pureItemTypeUnitsRestrictions.xml
[304.10 An item with a pureItemType data type MUST have a unit element and the local part of the measure MUST be "pure" with a namespace prefix that resolves to a namespace of "http://www.xbrl.org/2003/instance".]304-11-pureItemTypeUnitsRestrictions.xml
[A measure element with a namespace pre...
Version 2.1.0.14 - Sat 04 Aug 2018
Design
- Support added for XLink reference linkbases as defined in section 5.2.3 of the XBRL specification. Previous versions threw an exception when reference linkbases were encounted. This new support, which fixes Issue 13, includes the following items:
- new
ReferenceLinkbaseDocument
class - new
ReferenceLink
class - new
ReferenceArc
class - new
Reference
class - new
ReferencePart
class - the
LinkbaseDocumentCollection
class supports a new property calledReferenceLinkbase
which returns a loaded reference linkbase ornull
if no reference linkbase is loaded
- new
Bug Fixes
- No changes from the previous release.
Breaking Changes
- No changes from the previous release.
Conformance
- No changes from the previous release.
Industry-Standard Schema Support
Gepsio automatically loads industry-standard schemas when referenced by their namespace, even when not explicitly referenced by a schemaRef
element. This list describes the industry-standard schemas that Gepsio supports.
Schemas marked NEW have been added to the support list in this release.
- Document Information and Entity Information 2009
- Document Information and Entity Information 2014
- NEW International Financial Reporting Standards (IFRS) 2016
- NEW International Financial Reporting Standards (IFRS) 2017
- NEW International Financial Reporting Standards (IFRS) 2018
- US-GAAP 2009
- NEW US-GAAP 2017
- NEW US-GAAP 2017 Investment Management
- NEW US-GAAP 2018
- NEW US-GAAP 2018 Investment Management
- NEW US Mutual Fund Risk/Return Taxonomy 2012
- NEW US Mutual Fund Risk/Return Taxonomy 2018
The blog post "Next Release to Support Automatic Loading of Industry Standard Schemas" provides more information about the need for, and design of, the support for industry-standard schemas.
Conformance Tests In XBRL-CONF-2014-12-10 Passed by Gepsio
Tests marked NEW failed in previous releases but now pass due to Gepsio's increased conformance with the XBRL 2.1 Specification.
Identifier Scope [Section 4.3 The Item Element]
301-01-IdScopeValid.xml
[301.01 Valid example of id attribute.]301-03-IdScopePeriodDiff.xml
[301.03 Mismatch of periodType attribute and referenced context's period type.]301-04-IdScopeContextRefToUnit.xml
[301.04 contextRef has IDREF to unit element.]301-05-IdScopeUnitRefToContext.xml
[301.05 unitRef has IDREF to context element.]301-06-FootnoteScopeValid.xml
[301.06 Valid example of footnote link href attribute.]301-08-FootnoteToContext.xml
[301.08 href attribute is referencing to context element.]301-09-FootnoteToUnit.xml
[301.09 href attribute is referencing to unit element.]301-10-FootnoteFromOutOfScope.xml
[301.10 The instance contains two footnote links. The second one contains an arc with a from value that does not have a corresponding loc in the same extended link.]301-11-FootnoteToOutOfScope.xml
[301.11 The instance contains two footnote links. The second one contains an arc with a to value that does not have a corresponding footnote resource in the same extended link.]301-12-FootnoteLocOutOfScope.xml
[301.12 The instance contains a footnote link. In the footnote link there is a loc element that has an href that points to a fact in another instance document.]301-13-FootnoteLocInScope.xml
[301.13 The instance contains a footnote link. In the footnote link there is a loc element that has an href that points to a fact in the instance document using the instance document file name with a fragment identifier.]301-14-FootnoteFromResource.xml
[301.14 The instance contains a footnote link. The arc in the footnote link has a from value that matches a footnote resource. This is not valid for the fact-footnote arc role on the arc. The from must point to a loc which in turns points to a fact in the same instance document.]301-15-FootnoteToLoc.xml
[301.15 The instance contains a footnote link. The arc in the footnote link has a from value that matches a footnote resource. This is not valid for the fact-footnote arc role on the arc. The from must point to a loc which in turns points to a fact in the same instance document.]301-16-FootnoteWithoutLang.xml
[301.16 The xml:lang attribute is missing on the footnote resource.]301-17-FootnoteCustomArcRole.xml
[301.17 The footnote custom arc role can relate two footnotes to each other instead of just fact to footnote. (Only the standard footnote arc role is restricted to being from item or tuple locators.) Maybe this might be used to indicate how some footnote is "footnoting" another footnote.]
Context Segments and Scenarios [Section 4.4 The Context Element]
302-01-SegmentValid.xml
[302.01 Valid segment in a context]302-02-SegmentNamespaceInvalid.xml
[302.02 Invalid segment in a context; contains an element defined in xbrli namespace]302-03-ScenarioValid.xml
[302.03 Valid scenario in a context]302-04-ScenarioNamespaceInvalid.xml
[302.04 Invalid scenario in a context; contains an element defined in xbrli namespace]302-05-SegmentSubstitutionInvalid.xml
[302.05 Invalid segment in a context; contains an element in substitution group of xbrli:item]302-06-ScenarioSubstitutionInvalid.xml
[302.06 Invalid scenario in a context; contains an element in substitution group of xbrli:item]302-07-SegmentEmptyContent.xml
[302.07 Segment in a context contains an element with empty content]302-08-ScenarioEmptyContent.xml
[302.08 Scenario in a context contains an element with empty content]302-09-PeriodDateTimeValid.xml
[302.09 Valid duration context with start date earlier than end date]302-10-PeriodDateTimeInvalid.xml
[302.10 Invalid duration context with start date later than end date]302-11-DecimalAttributeOnSegmentInconsistent.xbrl
[302.11 Two contexts are S-Equal even though a decimal-valued attribute in their segment elements have different lexical representations. The contexts are S-equal, so a calculation inconsistency MUST be signaled.]302-12-DecimalAttributeOnScenarioInconsistent.xbrl
[302.12 Two contexts are S-Equal even though a decimal-valued attribute in their scenario elements have different lexical representations. The contexts are S-equal, so a calculation inconsistency MUST be signaled.]
Period Type Consistency [Section 4.3 The Item Element]
303-01-PeriodInstantValid.xml
[303.01 instant context and item defined with PeriodType="instant"]303-02-PeriodDurationValid.xml
[303.02 duration context and item defined with PeriodType="duration"]303-03-PeriodInstantInvalid.xml
[303.03 duration context and item defined with PeriodType="instant"]303-04-PeriodDurationInvalid.xml
[303.04 instant context and item defined with PeriodType="duration"]303-05-ForeverElementewithInstancePeriodTypeReportedasForever.xbrl
[ForeverConcept with Instant Period Type is not allowed]
Unit of Measure Consistency [Section 4.4 The Context Element]
304-01-monetaryItemTypeUnitsRestrictions.xml
[304.01 An element with a monetary item type has an ISO currency code for its units (using the standard ISO namespace prefix).]304-02-monetaryItemTypeUnitsRestrictions.xml
[304.02 An element with a monetary item type has an ISO currency code for its units (using a non-standard ISO namespace prefix).]304-03-monetaryItemTypeUnitsRestrictions.xml
[304.03 An element with a type derived by restriction from the monetary item type has an ISO currency code for its units.]304-04-monetaryItemTypeUnitsRestrictions.xml
[304.04 An element with a type derived by restriction from monetary item type has an ISO currency code for its units (using a non-standard ISO namespace prefix).]304-05-monetaryItemTypeUnitsRestrictions.xml
[304.05 An element with a non-monetary item type has an ISO currency code for its units (using the standard ISO namespace prefix).]304-06-monetaryItemTypeUnitsRestrictions.xml
[304.06 An element with a monetary item type does not have an ISO currency code for its units - the namespace is wrong.]304-07-monetaryItemTypeUnitsRestrictions.xml
[304.07 An element with a monetaryItemType does not have an ISO currency code for its units - the local name is wrong.]304-08-monetaryItemTypeUnitsRestrictions.xml
[304.08 An element with a type derived by restriction from monetaryItemType does not have an ISO currency code for its units - the namespace is wrong.]304-09-monetaryItemTypeUnitsRestrictions.xml
[304.09 An element with a type derived by restriction from monetaryItemType does not have an ISO currency code for its units - the local name is wrong.]304-10-pureItemTypeUnitsRestrictions.xml
[304.10 An item with a pureItemType data type MUST have a unit element and the local part of the measure MUST be "pure" with a namespace prefix that resolves to a namespace of "http://www.xbrl.org/2003/instance".]304-11-pureItemTypeUnitsRestrictions.xml
[A measure element with a namespace prefix that resolves to the "http://www.xbrl.org/2003/instance" namespace MUST have a local part of either "pure" or "shares". The value 'impure' is not a valid measure in the XBRL instance namespace.]304-12-pureItemTypeUnitsRestrictions.xml
[Unlike for monetaryItemType and sharesItemType, there is no constraint (in 4.8.2 or elsewhere) requiring an item with a pureItemType data type to have a particular kind of unit.]304-12a-pureItemTypeUnitsRestrictions.xml
[Same as V-12, but the pure measure has no prefix and the default namespace ...
Version 2.1.0.13 - Sat 07 Jul 2018
Design
- Moved the construction of the industry-standard schema support dictionary to a static initialization so that it takes place once per process rather than every time a new schema collection is created.
- Added automatic schema location support for additional industry-standard schemas. See elsewhere in this document for the complete list of supported schemas.
Bug Fixes
Resolved InvalidCastException
thrown during schema loading. See Issue 8.
Breaking Changes
- No changes from the previous release.
Conformance
- No changes from the previous release.
Industry-Standard Schema Support
Gepsio automatically loads industry-standard schemas when referenced by their namespace, even when not explicitly referenced by a schemaRef
element. This list describes the industry-standard schemas that Gepsio supports. The list is grouped by the organization which publishes the schema.
Schemas marked NEW have been added to the support list in this release.
- XBRL US
- Document Information and Entity Information 2009
- US-GAAP 2009
- US Securities and Exchange Commission (SEC)
- NEW Document Information and Entity Information 2014
The blog post "Next Release to Support Automatic Loading of Industry Standard Schemas" provides more information about the need for, and design of, the support for industry-standard schemas.
Conformance Tests In XBRL-CONF-2014-12-10 Passed by Gepsio
Tests marked NEW failed in previous releases but now pass due to Gepsio's increased conformance with the XBRL 2.1 Specification.
Identifier Scope [Section 4.3 The Item Element]
301-01-IdScopeValid.xml
[301.01 Valid example of id attribute.]301-03-IdScopePeriodDiff.xml
[301.03 Mismatch of periodType attribute and referenced context's period type.]301-04-IdScopeContextRefToUnit.xml
[301.04 contextRef has IDREF to unit element.]301-05-IdScopeUnitRefToContext.xml
[301.05 unitRef has IDREF to context element.]301-06-FootnoteScopeValid.xml
[301.06 Valid example of footnote link href attribute.]301-08-FootnoteToContext.xml
[301.08 href attribute is referencing to context element.]301-09-FootnoteToUnit.xml
[301.09 href attribute is referencing to unit element.]301-10-FootnoteFromOutOfScope.xml
[301.10 The instance contains two footnote links. The second one contains an arc with a from value that does not have a corresponding loc in the same extended link.]301-11-FootnoteToOutOfScope.xml
[301.11 The instance contains two footnote links. The second one contains an arc with a to value that does not have a corresponding footnote resource in the same extended link.]301-12-FootnoteLocOutOfScope.xml
[301.12 The instance contains a footnote link. In the footnote link there is a loc element that has an href that points to a fact in another instance document.]301-13-FootnoteLocInScope.xml
[301.13 The instance contains a footnote link. In the footnote link there is a loc element that has an href that points to a fact in the instance document using the instance document file name with a fragment identifier.]301-14-FootnoteFromResource.xml
[301.14 The instance contains a footnote link. The arc in the footnote link has a from value that matches a footnote resource. This is not valid for the fact-footnote arc role on the arc. The from must point to a loc which in turns points to a fact in the same instance document.]301-15-FootnoteToLoc.xml
[301.15 The instance contains a footnote link. The arc in the footnote link has a from value that matches a footnote resource. This is not valid for the fact-footnote arc role on the arc. The from must point to a loc which in turns points to a fact in the same instance document.]301-16-FootnoteWithoutLang.xml
[301.16 The xml:lang attribute is missing on the footnote resource.]301-17-FootnoteCustomArcRole.xml
[301.17 The footnote custom arc role can relate two footnotes to each other instead of just fact to footnote. (Only the standard footnote arc role is restricted to being from item or tuple locators.) Maybe this might be used to indicate how some footnote is "footnoting" another footnote.]
Context Segments and Scenarios [Section 4.4 The Context Element]
302-01-SegmentValid.xml
[302.01 Valid segment in a context]302-02-SegmentNamespaceInvalid.xml
[302.02 Invalid segment in a context; contains an element defined in xbrli namespace]302-03-ScenarioValid.xml
[302.03 Valid scenario in a context]302-04-ScenarioNamespaceInvalid.xml
[302.04 Invalid scenario in a context; contains an element defined in xbrli namespace]302-05-SegmentSubstitutionInvalid.xml
[302.05 Invalid segment in a context; contains an element in substitution group of xbrli:item]302-06-ScenarioSubstitutionInvalid.xml
[302.06 Invalid scenario in a context; contains an element in substitution group of xbrli:item]302-07-SegmentEmptyContent.xml
[302.07 Segment in a context contains an element with empty content]302-08-ScenarioEmptyContent.xml
[302.08 Scenario in a context contains an element with empty content]302-09-PeriodDateTimeValid.xml
[302.09 Valid duration context with start date earlier than end date]302-10-PeriodDateTimeInvalid.xml
[302.10 Invalid duration context with start date later than end date]302-11-DecimalAttributeOnSegmentInconsistent.xbrl
[302.11 Two contexts are S-Equal even though a decimal-valued attribute in their segment elements have different lexical representations. The contexts are S-equal, so a calculation inconsistency MUST be signaled.]302-12-DecimalAttributeOnScenarioInconsistent.xbrl
[302.12 Two contexts are S-Equal even though a decimal-valued attribute in their scenario elements have different lexical representations. The contexts are S-equal, so a calculation inconsistency MUST be signaled.]
Period Type Consistency [Section 4.3 The Item Element]
303-01-PeriodInstantValid.xml
[303.01 instant context and item defined with PeriodType="instant"]303-02-PeriodDurationValid.xml
[303.02 duration context and item defined with PeriodType="duration"]303-03-PeriodInstantInvalid.xml
[303.03 duration context and item defined with PeriodType="instant"]303-04-PeriodDurationInvalid.xml
[303.04 instant context and item defined with PeriodType="duration"]303-05-ForeverElementewithInstancePeriodTypeReportedasForever.xbrl
[ForeverConcept with Instant Period Type is not allowed]
Unit of Measure Consistency [Section 4.4 The Context Element]
304-01-monetaryItemTypeUnitsRestrictions.xml
[304.01 An element with a monetary item type has an ISO currency code for its units (using the standard ISO namespace prefix).]304-02-monetaryItemTypeUnitsRestrictions.xml
[304.02 An element with a monetary item type has an ISO currency code for its units (using a non-standard ISO namespace prefix).]304-03-monetaryItemTypeUnitsRestrictions.xml
[304.03 An element with a type derived by restriction from the monetary item type has an ISO currency code for its units.]304-04-monetaryItemTypeUnitsRestrictions.xml
[304.04 An element with a type derived by restriction from monetary item type has an ISO currency code for its units (using a non-standard ISO namespace prefix).]304-05-monetaryItemTypeUnitsRestrictions.xml
[304.05 An element with a non-monetary item type has an ISO currency code for its units (using the standard ISO namespace prefix).]304-06-monetaryItemTypeUnitsRestrictions.xml
[304.06 An element with a monetary item type does not have an ISO currency code for its units - the namespace is wrong.]304-07-monetaryItemTypeUnitsRestrictions.xml
[304.07 An element with a monetaryItemType does not have an ISO currency code for its units - the local name is wrong.]304-08-monetaryItemTypeUnitsRestrictions.xml
[304.08 An element with a type derived by restriction from monetaryItemType does not have an ISO currency code for its units - the namespace is wrong.]304-09-monetaryItemTypeUnitsRestrictions.xml
[304.09 An element with a type derived by restriction from monetaryItemType does not have an ISO currency code for its units - the local name is wrong.]304-10-pureItemTypeUnitsRestrictions.xml
[304.10 An item with a pureItemType data type MUST have a unit element and the local part of the measure MUST be "pure" with a namespace prefix that resolves to a namespace of "http://www.xbrl.org/2003/instance".]304-11-pureItemTypeUnitsRestrictions.xml
[A measure element with a namespace prefix that resolves to the "http://www.xbrl.org/2003/instance" namespace MUST have a local part of either "pure" or "shares". The value 'impure' is not a valid measure in the XBRL instance namespace.]304-12-pureItemTypeUnitsRestrictions.xml
[Unlike for monetaryItemType and sharesItemType, there is no constraint (in 4.8.2 or elsewhere) requiring an item with a pureItemType data type to have a particular kind of unit.]304-12a-pureItemTypeUnitsRestrictions.xml
[Same as V-12, but the pure measure has no prefix and the default namespace is undefined.]304-13-sharesItemTypeUnitsRestrictions.xml
[304.13 For facts that are of the sharesItemType, units MUST have A single measure element. The local part of the measure MUST be "shares" and the namespace prefix that MUST resolve to http://www.xbrl.org/2003/instance]304-14-sharesItemTypeUnitsRestrictions.xml
[304.14 For facts that are DERIVED BY RESTRICTION from the sharesItemType, units MUST have A single measure element. The local part of the measure MUST be "shares" and the namespace prefix that MUST resolve to http://www.xbrl.org/2003/instance]304-15-pureItemTypeUnitsRestrictions.xml
[304.15 For facts that are of shares item type, unit...
Version 2.1.0.12 - Sat 02 Jun 2018
Design
- Gepsio now supports the automatic loading of industry standard schemas. See this blog post for more information.
- If Gepsio attempts to load a schema from an HTTP-based schema reference, but cannot find a schema at the specified URL, then Gepsio will attempt to load the schema from the same local folder containing the XBRL fragment that referenced the schema. This allows XBRL instances based on Dutch taxonomies to be loaded, for example, since HTTP-based schema references to those taxonomies are only placeholders. XBRL documents containing references such as
<lnk:schemaRef xlink:href="http://archprod.service.eogs.dk/taxonomy/20171001/entryDanishGAAPBalanceSheetAccountFormIncomeStatementByNatureIncludingManagementsReviewStatisticsAndTax20171001.xsd" xlink:type="simple"/>
could not be loaded by earlier versions of Gepsio, since the specified schema reference URL is actually invalid. With this version, upon discovering the load failure in that schema reference example, Gepsio will attempt to loadentryDanishGAAPBalanceSheetAccountFormIncomeStatementByNatureIncludingManagementsReviewStatisticsAndTax20171001.xsd
from a local folder. - The
XbrlSchemaCollection
class now implementsIEnumerable<XbrlSchema>
and, as such, can be used in iteration expressions such asforeach
.
Breaking Changes
- In the previous release, the
XbrlSchema
class maintained astring
property calledPath
, which maintained the path to a loaded XBRL schema file. This property has been removed and has been replaced with two newstring
properties:SchemaReferencePath
, which specifies the schema's path as specified by the XBRL fragment's<schemaRef>
elmement, andLoadPath
, which specifies the path to the schema file as Gepsio actually loaded it. These two paths will, under ordinary circumstances, be the same, but may differ if Gepsio encounters an HTTP 404 while trying to load an HTTP-based schema reference and needs to load the schema from a local folder.
Conformance
- Attribute values on facts are now checked to ensure that they are convertible to the attribute's defined data type (see conformance test
XBRL-CONF-CR5-2012-01-24 314-lax-validation-04.xml
). - More conformant handling of negative fact values used in calculation arc validations.
Conformance Tests In XBRL-CONF-2014-12-10 Passed by Gepsio
Tests marked NEW failed in previous releases but now pass due to Gepsio's increased conformance with the XBRL 2.1 Specification.
Identifier Scope [Section 4.3 The Item Element]
301-01-IdScopeValid.xml
[301.01 Valid example of id attribute.]301-03-IdScopePeriodDiff.xml
[301.03 Mismatch of periodType attribute and referenced context's period type.]301-04-IdScopeContextRefToUnit.xml
[301.04 contextRef has IDREF to unit element.]301-05-IdScopeUnitRefToContext.xml
[301.05 unitRef has IDREF to context element.]301-06-FootnoteScopeValid.xml
[301.06 Valid example of footnote link href attribute.]301-08-FootnoteToContext.xml
[301.08 href attribute is referencing to context element.]301-09-FootnoteToUnit.xml
[301.09 href attribute is referencing to unit element.]301-10-FootnoteFromOutOfScope.xml
[301.10 The instance contains two footnote links. The second one contains an arc with a from value that does not have a corresponding loc in the same extended link.]301-11-FootnoteToOutOfScope.xml
[301.11 The instance contains two footnote links. The second one contains an arc with a to value that does not have a corresponding footnote resource in the same extended link.]301-12-FootnoteLocOutOfScope.xml
[301.12 The instance contains a footnote link. In the footnote link there is a loc element that has an href that points to a fact in another instance document.]301-13-FootnoteLocInScope.xml
[301.13 The instance contains a footnote link. In the footnote link there is a loc element that has an href that points to a fact in the instance document using the instance document file name with a fragment identifier.]301-14-FootnoteFromResource.xml
[301.14 The instance contains a footnote link. The arc in the footnote link has a from value that matches a footnote resource. This is not valid for the fact-footnote arc role on the arc. The from must point to a loc which in turns points to a fact in the same instance document.]301-15-FootnoteToLoc.xml
[301.15 The instance contains a footnote link. The arc in the footnote link has a from value that matches a footnote resource. This is not valid for the fact-footnote arc role on the arc. The from must point to a loc which in turns points to a fact in the same instance document.]301-16-FootnoteWithoutLang.xml
[301.16 The xml:lang attribute is missing on the footnote resource.]301-17-FootnoteCustomArcRole.xml
[301.17 The footnote custom arc role can relate two footnotes to each other instead of just fact to footnote. (Only the standard footnote arc role is restricted to being from item or tuple locators.) Maybe this might be used to indicate how some footnote is "footnoting" another footnote.]
Context Segments and Scenarios [Section 4.4 The Context Element]
302-01-SegmentValid.xml
[302.01 Valid segment in a context]302-02-SegmentNamespaceInvalid.xml
[302.02 Invalid segment in a context; contains an element defined in xbrli namespace]302-03-ScenarioValid.xml
[302.03 Valid scenario in a context]302-04-ScenarioNamespaceInvalid.xml
[302.04 Invalid scenario in a context; contains an element defined in xbrli namespace]302-05-SegmentSubstitutionInvalid.xml
[302.05 Invalid segment in a context; contains an element in substitution group of xbrli:item]302-06-ScenarioSubstitutionInvalid.xml
[302.06 Invalid scenario in a context; contains an element in substitution group of xbrli:item]302-07-SegmentEmptyContent.xml
[302.07 Segment in a context contains an element with empty content]302-08-ScenarioEmptyContent.xml
[302.08 Scenario in a context contains an element with empty content]302-09-PeriodDateTimeValid.xml
[302.09 Valid duration context with start date earlier than end date]302-10-PeriodDateTimeInvalid.xml
[302.10 Invalid duration context with start date later than end date]302-11-DecimalAttributeOnSegmentInconsistent.xbrl
[302.11 Two contexts are S-Equal even though a decimal-valued attribute in their segment elements have different lexical representations. The contexts are S-equal, so a calculation inconsistency MUST be signaled.]302-12-DecimalAttributeOnScenarioInconsistent.xbrl
[302.12 Two contexts are S-Equal even though a decimal-valued attribute in their scenario elements have different lexical representations. The contexts are S-equal, so a calculation inconsistency MUST be signaled.]
Period Type Consistency [Section 4.3 The Item Element]
303-01-PeriodInstantValid.xml
[303.01 instant context and item defined with PeriodType="instant"]303-02-PeriodDurationValid.xml
[303.02 duration context and item defined with PeriodType="duration"]303-03-PeriodInstantInvalid.xml
[303.03 duration context and item defined with PeriodType="instant"]303-04-PeriodDurationInvalid.xml
[303.04 instant context and item defined with PeriodType="duration"]303-05-ForeverElementewithInstancePeriodTypeReportedasForever.xbrl
[ForeverConcept with Instant Period Type is not allowed]
Unit of Measure Consistency [Section 4.4 The Context Element]
304-01-monetaryItemTypeUnitsRestrictions.xml
[304.01 An element with a monetary item type has an ISO currency code for its units (using the standard ISO namespace prefix).]304-02-monetaryItemTypeUnitsRestrictions.xml
[304.02 An element with a monetary item type has an ISO currency code for its units (using a non-standard ISO namespace prefix).]304-03-monetaryItemTypeUnitsRestrictions.xml
[304.03 An element with a type derived by restriction from the monetary item type has an ISO currency code for its units.]304-04-monetaryItemTypeUnitsRestrictions.xml
[304.04 An element with a type derived by restriction from monetary item type has an ISO currency code for its units (using a non-standard ISO namespace prefix).]304-05-monetaryItemTypeUnitsRestrictions.xml
[304.05 An element with a non-monetary item type has an ISO currency code for its units (using the standard ISO namespace prefix).]304-06-monetaryItemTypeUnitsRestrictions.xml
[304.06 An element with a monetary item type does not have an ISO currency code for its units - the namespace is wrong.]304-07-monetaryItemTypeUnitsRestrictions.xml
[304.07 An element with a monetaryItemType does not have an ISO currency code for its units - the local name is wrong.]304-08-monetaryItemTypeUnitsRestrictions.xml
[304.08 An element with a type derived by restriction from monetaryItemType does not have an ISO currency code for its units - the namespace is wrong.]304-09-monetaryItemTypeUnitsRestrictions.xml
[304.09 An element with a type derived by restriction from monetaryItemType does not have an ISO currency code for its units - the local name is wrong.]304-10-pureItemTypeUnitsRestrictions.xml
[304.10 An item with a pureItemType data type MUST have a unit element and the local part of the measure MUST be "pure" with a namespace prefix that resolves to a namespace of "http://www.xbrl.org/2003/instance".]304-11-pureItemTypeUnitsRestrictions.xml
[A measure element with a namespace prefix that resolves to the "http://www.xbrl.org/2003/instance" namespace MUST have a local part of either "pure" or "shares". The value 'impure' is not a valid measure in the XBRL instance namespace.]304-12-pureItemTypeUnitsRestrictions.xml
[Unlike for monetaryItemType and sharesItemType, there is no constraint (in 4.8.2 or elsewhere) requiring an ite...
Version 2.1.0.11 - Fri 25 Aug 2017
The NuGet package is available here.
Design
- Gepsio is now available for .NET Standard 2.0, which offers support for the following platforms:
- .NET Framework 4.6.1
- .NET Core 2.0
- Mono 5.4
- Xamarin.iOS 10.14
- Xamarin.Mac 3.8
- Xamarin.Android 7.5
- Upcoming version of UWP (expected to ship later this year)
- If an
<xbrl>
element contains aschemaLocation
attribute from thehttp://www.w3.org/2001/XMLSchema-instance
namespace, then Gepsio will also load the schemas listed in the attribute's value. In previous versions, only schemas named in a<schemaRef>
element would be loaded. Typically, both forms are not needed for schema discovery, but some of the XBRL conformance tests uses both forms in a single XBRL instance, and, as a result, Gepsio supports both forms so the conformance tests pass. - Gepsio now reports on validation errors stemming from calculation summation items making use of contributing items having a specified, non-infinite, precision of zero. Section 4.6.6 of the XBRL 2.1 Specification disallows this, stating that
If the value of the @precision attribute of a Numeric Item is equal to 0, nothing is known about the precision of the number, nothing can be inferred about decimals, and thus any consuming V-Equals comparison must be false, and any calculation link summation involving the item must be inconsistent.
New Classes
XbrlSchemaCollection
A container for a collection of XBRL schemas. Previous versions exposed a simple List<XbrlSchema>
object. This container class allows methods to return schema information from a collection of schemas through a single method call, rather than forcing the caller to iterate through a list to find the schema containing the information of interest.
New Properties Available On Previously Existing Classes
Unit
- bool IsIso4217CodeValid
New Methods Available On Previously Existing Classes
LabelLink
- GetLocator(string href)
- GetLabelArc(string fromAttributeValue)
- GetLabel(string labelAttributeValue)
Previously Existing Properties Removed From Previously Existing Classes
Unit
- RegionInformation
- CultureInformation
Conformance
- Attribute values on facts are now checked to ensure that they are convertable to the attribute's defined data type (see conformance test XBRL-CONF-CR5-2012-01-24 314-lax-validation-04.xml).
Conformance Tests In XBRL-CONF-2014-12-10 Passed by Gepsio
Tests marked NEW failed in previous releases but now pass due to Gepsio's increased conformance with the XBRL 2.1 Specification.
Identifier Scope [Section 4.3 The Item Element]
- 301-01-IdScopeValid.xml [301.01 Valid example of id attribute.]
- 301-03-IdScopePeriodDiff.xml [301.03 Mismatch of periodType attribute and referenced context's period type.]
- 301-04-IdScopeContextRefToUnit.xml [301.04 contextRef has IDREF to unit element.]
- 301-05-IdScopeUnitRefToContext.xml [301.05 unitRef has IDREF to context element.]
- 301-06-FootnoteScopeValid.xml [301.06 Valid example of footnote link href attribute.]
- 301-08-FootnoteToContext.xml [301.08 href attribute is referencing to context element.]
- 301-09-FootnoteToUnit.xml [301.09 href attribute is referencing to unit element.]
- 301-10-FootnoteFromOutOfScope.xml [301.10 The instance contains two footnote links. The second one contains an arc with a from value that does not have a corresponding loc in the same extended link.]
- 301-11-FootnoteToOutOfScope.xml [301.11 The instance contains two footnote links. The second one contains an arc with a to value that does not have a corresponding footnote resource in the same extended link.]
- 301-12-FootnoteLocOutOfScope.xml [301.12 The instance contains a footnote link. In the footnote link there is a loc element that has an href that points to a fact in another instance document.]
- 301-13-FootnoteLocInScope.xml [301.13 The instance contains a footnote link. In the footnote link there is a loc element that has an href that points to a fact in the instance document using the instance document file name with a fragment identifier.]
- 301-14-FootnoteFromResource.xml [301.14 The instance contains a footnote link. The arc in the footnote link has a from value that matches a footnote resource. This is not valid for the fact-footnote arc role on the arc. The from must point to a loc which in turns points to a fact in the same instance document.]
- 301-15-FootnoteToLoc.xml [301.15 The instance contains a footnote link. The arc in the footnote link has a from value that matches a footnote resource. This is not valid for the fact-footnote arc role on the arc. The from must point to a loc which in turns points to a fact in the same instance document.]
- 301-16-FootnoteWithoutLang.xml [301.16 The xml:lang attribute is missing on the footnote resource.]
- 301-17-FootnoteCustomArcRole.xml [301.17 The footnote custom arc role can relate two footnotes to each other instead of just fact to footnote. (Only the standard footnote arc role is restricted to being from item or tuple locators.) Maybe this might be used to indicate how some footnote is "footnoting" another footnote.]
Context Segments and Scenarios [Section 4.4 The Context Element]
- 302-01-SegmentValid.xml [302.01 Valid segment in a context]
- 302-02-SegmentNamespaceInvalid.xml [302.02 Invalid segment in a context; contains an element defined in xbrli namespace]
- 302-03-ScenarioValid.xml [302.03 Valid scenario in a context]
- 302-04-ScenarioNamespaceInvalid.xml [302.04 Invalid scenario in a context; contains an element defined in xbrli namespace]
- 302-05-SegmentSubstitutionInvalid.xml [302.05 Invalid segment in a context; contains an element in substitution group of xbrli:item]
- 302-06-ScenarioSubstitutionInvalid.xml [302.06 Invalid scenario in a context; contains an element in substitution group of xbrli:item]
- 302-07-SegmentEmptyContent.xml [302.07 Segment in a context contains an element with empty content]
- 302-08-ScenarioEmptyContent.xml [302.08 Scenario in a context contains an element with empty content]
- 302-09-PeriodDateTimeValid.xml [302.09 Valid duration context with start date earlier than end date]
- 302-10-PeriodDateTimeInvalid.xml [302.10 Invalid duration context with start date later than end date]
- 302-11-DecimalAttributeOnSegmentInconsistent.xbrl [302.11 Two contexts are S-Equal even though a decimal-valued attribute in their segment elements have different lexical representations. The contexts are S-equal, so a calculation inconsistency MUST be signaled.]
- 302-12-DecimalAttributeOnScenarioInconsistent.xbrl [302.12 Two contexts are S-Equal even though a decimal-valued attribute in their scenario elements have different lexical representations. The contexts are S-equal, so a calculation inconsistency MUST be signaled.]
Period Type Consistency [Section 4.3 The Item Element]
- 303-01-PeriodInstantValid.xml [303.01 instant context and item defined with PeriodType="instant"]
- 303-02-PeriodDurationValid.xml [303.02 duration context and item defined with PeriodType="duration"]
- 303-03-PeriodInstantInvalid.xml [303.03 duration context and item defined with PeriodType="instant"]
- 303-04-PeriodDurationInvalid.xml [303.04 instant context and item defined with PeriodType="duration"]
- 303-05-ForeverElementewithInstancePeriodTypeReportedasForever.xbrl [ForeverConcept with Instant Period Type is not allowed]
Unit of Measure Consistency [Section 4.4 The Context Element]
- 304-01-monetaryItemTypeUnitsRestrictions.xml [304.01 An element with a monetary item type has an ISO currency code for its units (using the standard ISO namespace prefix).]
- 304-02-monetaryItemTypeUnitsRestrictions.xml [304.02 An element with a monetary item type has an ISO currency code for its units (using a non-standard ISO namespace prefix).]
- 304-03-monetaryItemTypeUnitsRestrictions.xml [304.03 An element with a type derived by restriction from the monetary item type has an ISO currency code for its units.]
- 304-04-monetaryItemTypeUnitsRestrictions.xml [304.04 An element with a type derived by restriction from monetary item type has an ISO currency code for its units (using a non-standard ISO namespace prefix).]
- 304-05-monetaryItemTypeUnitsRestrictions.xml [304.05 An element with a non-monetary item type has an ISO currency code for its units (using the standard ISO namespace prefix).]
- 304-06-monetaryItemTypeUnitsRestrictions.xml [304.06 An element with a monetary item type does not have an ISO currency code for its units - the namespace is wrong.]
- 304-07-monetaryItemTypeUnitsRestrictions.xml [304.07 An element with a monetaryItemType does not have an ISO currency code for its units - the local name is wrong.]
- 304-08-monetaryItemTypeUnitsRestrictions.xml [304.08 An element with a type derived by restriction from monetaryItemType does not have an ISO currency code for its units - the namespace is wrong.]
- 304-09-monetaryItemTypeUnitsRestrictions.xml [304.09 An element with a type derived by restriction from monetaryItemType does not have an ISO currency code for its units - the local name is wrong.]
- 304-10-pureItemTypeUnitsRestrictions.xml [304.10 An item with a pureItemType data type MUST have a unit element and the local part of the measure MUST be "pure" with a namespace prefix that resolves to a namespace of "http://www.xbrl.org/2003/instance".]
- 304-11-pureItemTypeUnitsRestrictions.xml [A measure element with a namespace prefix that resolves to the "http://www.xbrl.org/2003/instance" namespace MUST have a local part of either "pure" or "shares". The value 'impure' is not a valid measure in the XBRL instance namespace.]
- 304-12-pureItemTypeUnitsRestrictions.xml [Unlike for monetaryItemType and sharesItemType, there is no constraint (in 4.8.2 or elsewhere) requiring an item with a pureItemType data type to have a...