Version 2.1.0.2 (Feb 2009 Community Technology Preview) – Jan 31 2009

Functionality Added Since Previous Version

Support for Additional XML/XBRL Data Types

  • Added support for the shares simple type.
  • Added support for the sharesItemType complex type.
  • Added support for the tokenItemType complex type.

Support for XBRL Elements

  • Added support for the <divide> element within <unit> elements in accordance with section 4.8.3 of the XBRL Specification.
  • Added support for processing <annotation>, <appinfo> and <linkbaseRef> nodes in XBRL schemas. The previous CTP only honored <element> nodes in XBRL schemas.
  • Added support for loading and processing external linkbase markup documents referenced by <linkbaseRef … href=”” …> tags found in XBRL schemas.

New Classes

  • Added the LinkbaseDocument class.
  • Added the Locator class.
  • Added the DefinitionArc class.
  • Added the DefinitionLink class.
  • Added the CalculationArc class.
  • Added the CalculationLink class.
  • Added the SummationConcept class.

New Class Properties

  • Added the Ratio property to the Unit class.
  • Added the LinkbaseDocuments property to the XbrlSchema class.
  • Added the Decimals property to the Fact class.
  • Added the PrecisionSpecified property to the Fact class.
  • Added the DecimalsSpecified property to the Fact class.
  • Added the NilSpecified property to the Fact class.

Miscellaneous

  • Added support for multiple measures on a unit (see “Accessing Unit Measures” on page 44 for more information on a breaking change from the previous version).
  • Instances of facts defined as being in essence alias relationships are now checked to ensure that the fact instances are context equal, parent equal and unit equal, in accordance with section 4.10 of the XBRL 2.1 specification.
  • Added support for checking two facts to determine whether or not they are context equal.
  • Added support for checking two facts to determine whether or not they are parent equal.
  • Added support for checking two facts to determine whether or not they are unit equal.
  • Added support for checking two contexts to determine whether or not they are structure equal.

Breaking Changes from Previous Version

Accessing Unit Measures

The previous CTP supported only one measure for each unit, and, as a result, supported a property on the Unit class called MeasureQualifiedName. The MeasureQualifiedName property was of type QualifiedName. This CTP supports multiple measures for each unit, and, as a result, supports a property on the Unit class called MeasureQualifiedNames. The MeasureQualifiedNames property is of type List<QualifiedName>.
The (singular) MeasureQualifiedName property is no longer available, and any code written to use that property will not build with this CTP. That code will need to change to make use of the new MeasureQualifiedNames property.

Accessing Fact Data Types

In the Jan 2009 CTP, Element objects supported a property called Type, which was of type AnyType. This property published the type of data carried by facts described by that element. In the Feb 2009 CTP, this property has been moved to the Fact class.
The Type property is no longer available on the Element class, and any code written to use that property will not build with this CTP. That code will need to change to make use of the Type property of the Fact class instead.
The Element class supports a new property in the Feb 2009 CTP called TypeName which describes the name of the data type supported by the element. The TypeName property has a string value.

Data Type Changes

The data types of some of the properties existing in the Jan 2009 CTP have changed in the Feb 2009 CTP. The table shown below lists all of those changes. Included in the table is the class name, the property whose type has changed, the data type of the property as it was defined in the Jan 2009 CTP, and the data type of the same property as it is defined in the Feb 2009 CTP.
Class Property Jan 2009 CTP Data Type Feb 2009 CTP Data Type
Fact Precision string int
Fact Decimals String int

Passed Conformance Tests

The Feb 2009 CTP passes all of the 42 unit tests passed by the Jan 2009 CTP as well as the following 26 additional unit tests in the XBRL-CONF-CR3-2007-03-05 conformance suite, for a total of 68 passed conformance tests:
  • Unit of Measure Tests
    • 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 For facts that are DERIVED BY RESTRICTION from the sharesItemType, units MUST have a single measure element. The local part of the MUST be "shares" and the namespace prefix that MUST resolve to http://www.xbrl.org/2003/instance
    • 304.15 For facts that are of shares item type, 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. In this case the unit has two measure elements, both of which are pure.
    • 304.16 The units must not have numerator and denominator measures that cancel.
    • 304.17 The units equality test which two units have same order measures.
    • 304.18 The units equality test which two units have same order divisions.
    • 304.19 The units equality test which two units have different order measures.
    • 304.20 The units equality test which two units have division elements which their order of child measures are different.
    • 304.21 it tries to essence-alias equality of two elements with different units : where one is pure-feet and the second is pure-pounds. so the alias essence check is invalid and it should throw an error in xbrl validation
    • 304.22 The test tried to essense-alias equality check of two elements with different units : where one is unit between "pure-inch / pound-feet" and other "pure-feet / pound-inch". The tests is invalid as it should throw an error during xbrl validation.
    • 304.23 Variation of 304-15 where the type of the fact value does not match that of the type of the reported element. Shares type versus Monetary unit
    • 304.24 Valid ISO unit of measurement example
    • 304.25 Measure reported with prefix undefined is considered XBRL invalid
  • Decimal and Precision Mutual Exclusion and prohibition on nil items
    • 305.01 item has only Decimals specified
    • 305.02 item has only Precision specified
    • 305.03 item has neither Decimals nor Precision specified
    • 305.04 item has both Decimals and Precision specified
    • 305.05 nil item has Decimals specified
    • 305.06 nil item has Precision specified
    • 305.07 a genuine inconsistency due to roll up of child values
  • Required Arc in Definition Linkbase
    • 306.01 The instance contains two elements in the same context. The presence of one element forces the presence of the other.
    • 306.02 The instance contains an item and a tuple. The presence of the tuple forces the presence of the item.
    • 306.03 The instance contains an item and a tuple. The presence of the tuple forces the presence of the item.
  • Schema References
    • 307.01 A schemaRef element MUST hold the URI of a schema. In this case it does.
    • 307.02 A schemaRef element MUST hold the URI of a schema. In this case it does not because the second reference to a schema actually points to an XML document that is a label linkbase.
    • 307.03 schemaRef elements MUST hold the URI of Schemas. In this case the requirement is not satisfied because the schema reference has to be resolved using the XML base attribute that ensures the schemaRef URI resolves to the XML document in the base directory. This document, however, is a label linkbase, not a schema. If the XML base attribute value is not used then the schema in the same directory as the instance is discovered and no issues are noticed.

Last edited Jan 31, 2011 at 12:38 AM by JeffreyFerguson, version 1

Comments

No comments yet.