Extensible Business Reporting Language (XBRL) 2.1
RECOMMENDATION - 2003-12-31 + Corrected Errata - 2005-04-25
This version:
XBRL-RECOMMENDATION-2003-12-31+Corrected-Errata-2005-04-25.htm
is a non-normative version of this specification. The NORMATIVE version is in the file
http://www.xbrl.org/Specification/XBRL-RECOMMENDATION-2003-12-31+Corrected-Errata-2005-04-25.rtf
|
Name |
Contact |
Affiliation |
|
Phillip Engel |
KPMG LLP |
|
|
Walter Hamscher[1] |
Standard Advantage |
|
|
Geoffrey Shuetrim |
KPMG LLP |
|
|
David vun Kannon |
KPMG LLP |
|
|
Hugh Wallis |
Standard Dimensions (formerly of Hyperion Solutions Corporation) |
|
Name |
Contact |
Affiliation |
|
Charles Hoffman |
UBmatrix |
|
|
Campbell Pryde |
KPMG LLP |
This document is an update to the RECOMMENDATION document dated 2003-12-31 and incorporates all errata corrections that have been approved by the XBRL International Specification Working Group as of the date of publication. The International Steering Committee of XBRL International approved this document for publication as an update to the RECOMMENDATION on 2005-04-25.
Each erratum correction is listed in Appendix D but in this version there is no indication of the details of the corrections since the “track changes” mechanism used to identify those details has had “all changes accepted”. The details of the changes will be found by examining the version marked as “redlined”. Links to discussions surrounding these corrections are included but it should be noted that some of these are to “members only” mailing lists. Readers are invited to submit, with their comments, notification of any relevant patent rights of which they are aware and to provide supporting documentation.
While excerpts from XBRL schemas are given throughout this document the complete normative versions of the schemas are included in Appendix A. Non-normative versions are also available as separate .xsd files from www.xbrl.org, the XBRL International web site. The (non-normative) schema maintenance mechanism for schemas on the web is briefly described in Appendix A of this document.
XBRL is the specification for the eXtensible Business Reporting Language. XBRL allows software vendors, programmers, intermediaries in the preparation and distribution process and end users who adopt it as a specification to enhance the creation, exchange, and comparison of business reporting information. Business reporting includes, but is not limited to, financial statements, financial information, non-financial information, general ledger transactions and regulatory filings, such as annual and quarterly reports.
This document defines XML elements and attributes that can be used to express information used in the creation, exchange, and comparison tasks of business reporting. XBRL consists of a core language of XML elements and attributes used in XBRL instances as well as a language used to define new elements and taxonomies of elements referred to in XBRL instances, and to express constraints among the contents of elements in those XBRL instances.
1.3 Relationship to other work
1.6 Namespace prefix conventions
2 Changes from the previous published version
2.2 Changes in XBRL taxonomies
3.1 Overview of XBRL taxonomies
3.2 Overview of XBRL instances
3.3 Data integrity and confidentiality
3.5.1.1 The xlink:type attribute on simple links
3.5.1.2 The xlink:href attribute on simple links
3.5.1.3 The xlink:role attribute on simple links (optional)
3.5.1.4 The xlink:arcrole attribute on simple links (optional)
3.5.1.5 The xml:base attribute on simple links (optional)
3.5.2.1 The id attribute on linkbase elements (optional)
3.5.2.2 The xml:base attribute on linkbase elements (optional)
3.5.2.3 Documentation elements in linkbase elements (optional)
3.5.2.4 The roleRef element (optional)
3.5.2.5 The arcroleRef element (optional)
3.5.3.1 The id attribute on extended links (optional)
3.5.3.2 The xlink:type attribute on extended links
3.5.3.3 The xlink:role attribute on extended links
3.5.3.4 The xml:base attribute on extended links (optional)
3.5.3.5 Documentation elements in extended links (optional)
3.5.3.6 Titles in extended links (optional)
3.5.4 Use of XPointer in URI fragment identifiers
4.1.1 The id attribute on xbrl elements (optional)
4.1.2 The xml:base attribute on xbrl elements (optional)
4.2 The schemaRef element in XBRL Instances
4.2.1 The xlink:type attribute on schemaRef elements
4.2.2 The xlink:href attribute on schemaRef elements
4.2.3 The xlink:arcrole attribute on schemaRef elements (optional)
4.2.4 The xlink:role attribute on schemaRef elements (optional)
4.2.5 The xml:base attribute on schemaRef elements (optional)
4.3 The linkbaseRef element in XBRL instances 43
4.3.1 The xlink:type attribute on linkbaseRef elements
4.3.2 The xlink:href attribute on linkbaseRef elements
4.3.3 The xlink:arcrole attribute on linkbaseRef elements
4.3.4 The xlink:role attribute on linkbaseRef elements (optional)
4.3.5 The xml:base attribute on linkbaseRef elements (optional)
4.4 The roleRef element in XBRL instances (optional)
4.5 The arcroleRef element in XBRL instances (optional)
4.6.1 The contextRef attribute
4.6.3 Usage of precision and decimals attributes
4.6.4 The precision attribute (optional)
4.6.5 The decimals attribute (optional)
4.6.7 Definitions pertaining to accuracy
4.6.7.1 “Correct to n Significant Figures”, “Rounding” and “Truncation”
4.6.7.2 “Correct to n Decimal Places”
4.7.3.2 The segment element (optional)
4.7.4 The scenario element (optional)
4.8.4 The unitNumerator and unitDenominator elements
4.10 Equality predicates relevant to detecting duplicate items and tuples
4.11.1 The footnoteLink element
4.11.1.1 Locators in footnoteLink elements
4.11.1.3 The footnoteArc element
5.1.1.1 The periodType attribute
5.1.1.2 The balance attribute (optional)
5.1.3 Defining custom role types – the roleType element
5.1.3.2 The id attribute on roleType elements (optional)
5.1.3.3 The definition element in roleType elements (optional)
5.1.3.4 The usedOn element in roleType elements
5.1.4 Defining custom arc role types – the arcroleType element
5.1.4.1 The arcroleURI attribute
5.1.4.2 The id attribute on arcroleType elements (optional)
5.1.4.3 The cyclesAllowed attribute
5.1.4.4 The definition element on arcroleType elements (optional)
5.1.4.5 The usedOn element on arcroleType elements
5.2.2.1 Locators in labelLink elements
5.2.3 The referenceLink element
5.2.3.1 Locators in referenceLink elements
5.2.3.3 The referenceArc element
5.2.4 The presentationLink element
5.2.4.1 Locators in presentationLink elements
5.2.4.2 The presentationArc element
5.2.5 The calculationLink element
5.2.5.1 Locators in calculationLink elements
5.2.5.2 The calculationArc element
5.2.6 The definitionLink element
5.2.6.1 Locators in definitionLink elements
5.2.6.2 The definitionArc element
xbrl-instance-2003-12-31.xsd (normative)
xbrl-linkbase-2003-12-31.xsd (normative)
xlink-2003-12-31.xsd (normative)
B. Document history and acknowledgments (non-normative)
C. Intellectual property status (non‑normative)
D. Errata Corrections incorporated in this document
Table 1. Terms and definitions.
Table 2. Roles in the linkbaseRef element
Table 3. Unit restrictions based on item types.
Table 4. Equality predicate definitions.
Table 5. Correct signage in an XBRL instance. 79
Table 6. Constraints among the balance attribute and calculation arc weights
Table 8. Standard label role attribute values.
Table 9. Reference role attribute values.
Example 1. A skeletal linkbase
Example 2. One-to-One arc relationships [XLINK]
Example 3. One-to-Many arc relationships [XLINK]
Example 4. Many-to-Many arc relationships [XLINK]
Example 5. Correct use of arcs according to [XLINK]
Example 6. Prohibiting and overriding relationships
Example 7. Example xlink:href values
Example 8. Use of xbrl as the root element
Example 9. A numeric fact with three significant digits
Example 10. A non-numeric item
Example 11. Precision and lexical representation
Example 12. Decimals and lexical representation
Example 13. Lexical representation, precision and decimals
Example 15. Correct to n decimal places. 52
Example 17. Entity identifiers
Example 18. Using the segment element
Example 19. Use of the scenario element
Example 20. Use of the unit element
Example 21. Simple and complex unit of measure comparison
Example 22. Defining a tuple as a member of the substitutionGroup "tuple"
Example 23. Elements describing business properties held and disposed
Example 24. Hierarchy in a tuple
Example 25. Duplicate items, tuples and contexts
Example 26. Predicates for detecting duplicates
Example 27. A footnote in an XBRL instance
Example 28. A skeletal taxonomy schema showing linkbase references
Example 29. Typical element definitions in a taxonomy schema
Example 30. Instant and duration concept definitions
Example 31. Using the balance element to indicate normal debit and credit balances
Example 32. A concept appearing with positive and negative values in an XBRL instance
Example 33. Deriving an enumerated item type
Example 34. Representing fractions
Example 35. Defining a custom role type
Example 36. Defining a custom arc role value
Example 37. Using relationship prohibition to insert a new sub-total into a calculation network
Example 39. Elements of a financial reporting taxonomy
Example 40. Hierarchy in a calculation linkbase
Example 41. Hierarchy of general-special arcs in a definition linkbase
Example 42. Hierarchy in a presentation linkbase
Example 43. Label resource examples
Example 44. Arc between a concept and one of its labels
Example 45. Sample values of xlink:role for several referenceLink elements
Example 46. Arc between a concept and supporting references
Example 47. Reference resource
Example 48. A presentation arc
Example 49. An abstract concept definition
Example 50. Calculations involving decimals and precision
Example 51. Syntax of a calculationArc
Example 52. Cash, equivalent to cash as totalled by branch location and account type
Example 53. XBRL instance fragment with nested tuples
Example 54. A general-special arc
Example 55. Inference of values for non-numeric items with concepts connected by essence-alias arcs
Example 56. Inference of values for numeric items with concepts connected by essence-alias arcs
XBRL is the specification for the eXtensible Business Reporting Language. XBRL allows software vendors, programmers and end users to enhance the creation, exchange, and comparison of business reporting information. Business reporting includes, but is not limited to, financial statements, financial information, non-financial information and regulatory filings such as annual and quarterly financial statements.
This document defines XML elements and attributes that can be used to express information used in the creation, exchange and comparison tasks of business reporting. XBRL consists of a core language of XML elements and attributes used in document instances. Abstract elements in this core language are replaced by concrete elements in XBRL instances. These abstract elements are defined in taxonomies. XBRL consists of a language used to define new elements and taxonomies of elements referred to in document instances and the relationships between taxonomy elements.
All parts of this document not explicitly identified as non-normative are normative. In the event of any conflict or apparent conflict between the English language text of this document and/or schema fragments included in the main body of this document and the normative schemas contained herein (Appendix A), the more restrictive interpretation that is possible from the information provided by the English language text and that provided by the normative schemas (Appendix A) SHALL prevail. The schema fragments incorporated into the body of the text are non-normative and are generally indicated as such by means of shading such as that defined in section 1.1. It is important to note that the normative schemas (Appendix A) do not necessarily always provide the most restrictive interpretation, either because it is not possible to express certain limitations using the syntax of XML Schema [SCHEMA‑1] [SCHEMA-2] or because, as at the time of publication of this specification, some commonly available commercial implementations of XML Schema do not implement otherwise necessary features correctly or fully. For example, the schema specification of the abstract element tuple (Appendix A) does not restrict its content model as much as the English language text in section 4.9. The text of section 4.9 SHALL prevail in this case. Another, converse, example is the order of the sub-elements of the context element. In this case the schema (Appendix A) dictates a specific ordering of these sub-elements yet this is not explicitly articulated in the text of section 4.7. The schema (Appendix A) provides the more restrictive interpretation and thus it SHALL prevail over any alternative possible interpretation of the English language text in this case.
The schemas and other documents published separately and contemporaneously with the specification are non-normative and are provided for the convenience of users of this specification.
The following highlighting is used to present non-normative technical material in this document:
|
|
The following highlighting is used for non-normative commentary in this document:
|
|
Non-normative editorial comments are denoted by indentation and the prefix “NOTE:”:
NOTE: This is a non-normative editorial comment.
Italics are used for rhetorical emphasis only and do not convey any special normative meaning.
The XBRL specification is intended to benefit four categories of users: 1) business information preparers, 2) intermediaries in the preparation and distribution process, 3) users of this information and 4) the vendors who supply software and services to one or more of these three types of user. The overall intention is to balance the needs of these groups creating a standard that benefits to all four groups.
The needs of end users of business information have generally taken precedence over other needs when it has been necessary to make specification design decisions that might benefit one community at the expense of another.
A major goal of XBRL is to improve the business report product. It facilitates current practice; it does not change or set new accounting or other business domain standards. However, XBRL should facilitate changes in reporting over the long term.
XBRL provides users with a standard format in which to prepare reports that can subsequently be presented in a variety of ways. XBRL provides users with a standard format in which information can be exchanged between different software applications. XBRL permits the automated, efficient and reliable extraction of information by software applications. XBRL facilitates the automated comparison of financial and other business information, accounting policies, notes to financial statements between companies, and other items about which users may wish make comparisons that today are performed manually.
XBRL facilitates "drill down" to detailed information, authoritative literature, audit and accounting working papers. XBRL includes specifications for as much information about the reporting entity as may be relevant and useful to the process of financial and business reporting and the interpretation of the information.
XBRL supports international accounting and other standards as well as languages other than the various dialects of English.
XBRL is extensible by any adopter to increase its breadth of applicability, and its design encourages reuse via incremental extensions. For example, XBRL specifies the format of information that would reasonably be expected in an electronic format for securities filings by public entities. XBRL facilitates business reporting in general, and is not limited to financial and accounting reporting.
XBRL focuses on the genuine information needs of the user and adheres to the spirit of reporting standards that avoid the use of bold, italics, and other stylistic techniques that may distract from a true and fair presentation of results. Therefore, there is no functional requirement that XBRL documents support any particular text formatting conventions.
The purpose of XBRL instances is the transmission of a set of facts. There is no constraint on how much or how little they contain. A single fact can form the entire content of a valid XBRL instance, for example, when the information being conveyed is limited to what “Cost of Goods Sold” was last quarter or an XBRL instance can be a database dump, containing huge numbers of facts. It can also be anything in between. This provides a great deal of flexibility and is meant specifically to achieve the goals of allowing XBRL to be reused within other specifications and for application software needing to extract data from otherwise arbitrarily formatted documents. It is expected that, for most uses of XBRL, many XML XBRL instances will be created that consist almost exclusively of facts.
XBRL uses several World Wide Web Consortium (W3C) recommendations, XML 1.0 [XML], Namespaces in XML [NAMESPACES], and refers directly to XML Linking[XLINK] and others listed in Section 6 References. It also relies extensively on the XML Schema [SCHEMA‑1] and [SCHEMA-2] recommendation.
Discussions have taken place with other bodies issuing XML specifications in the financial arena, including OAG (Open Applications Group), OMG (Object Management Group), FpML (Financial Products Markup Language), finXML (Financial XML), OFX/IFX (Open Financial Exchange) and ebXML (e-Business XML). The scope of XBRL does not include transaction protocols. It includes financial reporting and contemplates extensive detail in the representation and use of accounting conventions, which distinguishes it from these other efforts.
The terminology used in XBRL frequently overlaps with terminology from other fields, and the following list is provided to reduce the possibility of ambiguity and confusion (see also the references in section 6 below).
Table 1. Terms and definitions.
|
Term |
Definition |
||||||||||||||||
|
An element for which the attribute abstract in its XML schema declaration has the value "true" and which, therefore, cannot be used in an XML instance. |
|||||||||||||||||
|
The concept at the “to” end of a definition arc with arc role http://www.xbrl.org/2003/arcrole/essence‑alias. Alias and essence concepts are definitionally equivalent in the sense that valid values for an alias concept are always valid values for essence concepts to which they are related by an essence-alias relationship. |
|||||||||||||||||
|
An item in an instance whose element is an alias concept. |
|||||||||||||||||
|
Arcs relate concepts to each other by associating their locators. Arcs also associate concepts with resources by connecting the concept locators to the resources themselves. Arcs are also used to connect fact locators to footnote resources in footnote extended links. Arcs have a set of attributes that document the nature of the relationships expressed in extended links. Importantly all arcs have an xlink:arcrole attribute that determines the semantics of the relationship they describe. |
|||||||||||||||||
|
Context-equal: Items or sets or sequences of items having the same item type in s-equal contexts. For a formal definition, see Section 4.10 below. |
|||||||||||||||||
|
ancestor, child, descendant, grandparent, parent, sibling, uncle |
Relationships among elements in an XBRL instance: using the terminology of [XPATH], for any element E, another element F is its:
· ancestor if and only if F appears on the ancestor axis of E · child if and only if F appears on the child axis of E · descendant if and only if F appears on the descendant axis of E · grandparent if and only if F is the parent of the parent of E · parent if and only if F appears on the parent axis of E · sibling if and only if F appears on the child axis of the parent of E and is not E itself · uncle if and only if F is a sibling of the parent of E
|
||||||||||||||||
|
Concepts are defined in two equivalent ways. In a syntactic sense, a concept is an XML Schema element definition, defining the element to be in the item element substitution group or in the tuple element substitution group. At a semantic level, a concept is a definition of kind of fact that can be reported about the activities or nature of a business activity. |
|||||||||||||||||
|
An element for which the attribute abstract in its XML schema declaration has the value "false" and which, therefore, may appear in an XML instance. |
|||||||||||||||||
|
Contexts are elements that occur as children of the root element in XBRL instances. They document the entity, the period and the scenario that collectively give the appropriate context for understanding the values of items. |
|||||||||||||||||
|
A DTS is a collection of taxonomy schemas and linkbases. The bounds of a DTS are such that the DTS includes all taxonomy schemas and linkbases that can be discovered by following links or references in the taxonomy schemas and linkbases included in the DTS. At least one taxonomy schema in a DTS must import the xbrl-instance-2003-12-31.xsd schema. See Section 3 for details on the discovery process. |
|||||||||||||||||
|
Two items of the same concept in the same context under the same parent. For a formal definition see duplicate item in section 4.10. |
|||||||||||||||||
|
Two occurrences of a tuple with all their descendants having the same content; more precisely: tuples that are p-equal, all of whose tuple children have a duplicate (except for being p-equal) in the other tuple, and all of whose item children have a duplicate (except for being p-equal) in the other tuple. For a formal definition see duplicate tuple in section 4.10. |
|||||||||||||||||
|
An XML element defined using XML Schema. |
|||||||||||||||||
|
A business entity, the subject of XBRL items. Where the [XML]/[SGML] concept of syntactic "entity" is meant, this will be pointed out. |
|||||||||||||||||
|
The concept at the “from” end of a definition arc with arc role http://www.xbrl.org/2003/arcrole/essence‑alias. Alias and essence concepts are definitionally equivalent in the sense that valid values for an alias concept are always valid values for essence concepts to which they are related by an essence-alias relationship. |
|||||||||||||||||
|
An item in an instance whose element is an essence concept. |
|||||||||||||||||
|
An extended link is an element identified as an extended link using the syntax defined in the XML Linking Language [XLINK]. Extended links represent a set of relationships between information that they contain and information contained in third party documents. See Section 3.5.2.4 for more details.
|
|||||||||||||||||
|
Facts can be simple, in which case their values must be expressed as simple content (except in the case of simple facts whose values are expressed as a ratio), and facts can be compound, in which case their value is made up from other simple and/or compound facts. Simple facts are expressed using items (and are referred to as items in this specification) and compound facts are expressed using tuples (and are referred to as tuples in this specification). |
|||||||||||||||||
|
The namespace used for XBRL 2.1 instances, http://www.xbrl.org/2003/instance |
|||||||||||||||||
|
An item is an element in the substitution group for the XBRL item element. It contains the value of the simple fact and a reference to the context (and unit for numeric items) needed to correctly interpret that fact. When items occur as children of a tuple, they must also be interpreted in light of the other items and tuples that are children of the same tuple. There are numeric items and non-numeric items, with numeric items being required to document their measurement accuracy and units of measurement. |
|||||||||||||||||
|
In an instance, the element that is an ancestor of two elements and has no child that also appears on the ancestor axis [XPATH] of those same two elements. |
|||||||||||||||||
|
A linkbase is a collection of XML Linking Language [XLINK] extended links that document the semantics of concepts in a taxonomy. |
|||||||||||||||||
|
The namespace of XBRL 2.1 linkbases, http://www.xbrl.org/2003/linkbase |
|||||||||||||||||
|
Locators supply an XPointer [XPTR] reference to the taxonomy schema element definitions that uniquely identify each concept. They provide an anchor for extended link arcs. See Section 3.5.3.7 for more details. |
|||||||||||||||||
|
must, must not, required, shall, shall not, should, should not, may, optional |
See [RFC2119] for definitions of these and other terms as used in this specification. These include:
|
||||||||||||||||
|
An item that is not a numeric item as defined below. Dates, in particular, are not numeric. |
|||||||||||||||||
|
An item whose simple content is derived by restriction from the XML Schema primitive types decimal, float or double, or complex content derived by restriction from the XBRL defined type fractionItemType (See Section 5.1.1.3 for details on item types). |
|||||||||||||||||