Extensible Business Reporting Language (XBRL) 2.1

RECOMMENDATION - 2003-12-31 + Corrected Errata - 2006-12-18

This version:

            XBRL-RECOMMENDATION-2003-12-31+Corrected-Errata-2006-12-18.rtf

 

is a non-normative version of this specification. The NORMATIVE version is in the file

 

XBRL-RECOMMENDATION-2003-12-31+Corrected-Errata-2006-12-18.rtf

 

Editors

Name

Contact

Affiliation

Phillip Engel

phillip.engel@morganstanley.com

Morgan Stanley (formerly of KPMG LLP)

Walter Hamscher[1]

walter@hamscher.com

Standard Advantage

Geoffrey Shuetrim

geoff@galexy.net

Galexy Pty. (formerly of KPMG LLP)

David vun Kannon

david.k.vun.kannon@us.pwc.com

PricewaterhouseCoopers LLP (formerly of KPMG LLP)

Hugh Wallis

hughwallis@xbrl.org

XBRL International Inc. (formerly of Hyperion Solutions Corporation)

Contributors

Name

Contact

Affiliation

Charles Hoffman

charleshoffman@olywa.net

UBmatrix

Campbell Pryde

campbell.pryde@morganstanley.com

Morgan Stanley (formerly of KPMG LLP)

Status of this document

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 2006-12-18. The XBRL International Standards Board approved this document for publication as an update to the RECOMMENDATION on 2007‑01‑10.

Each erratum correction is identified in Appendix D. 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.

Abstract

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.


Table of contents

Editors. 1

Contributors. 1

Status of this document. 1

Abstract. 1

Table of contents. 3

List of tables. 6

List of examples. 6

1     Introduction. 8

1.1     Documentation conventions  8

1.2     Purpose  9

1.3     Relationship to other work  9

1.4     Terminology (non-normative except where otherwise noted) 10

1.5     Levels of conformance  14

1.6     Namespace prefix conventions  14

1.7     Extensions to this specification  14

2     Changes from the previous published version. 15

2.1     Changes in XBRL instances  15

2.2     Changes in XBRL taxonomies  16

3     XBRL framework. 16

3.1     Overview of XBRL taxonomies  17

3.2     Overview of XBRL instances  17

3.3     Data integrity and confidentiality  19

3.4     Validation  19

3.5     XLink in XBRL  19

3.5.1     Simple links. 20

3.5.1.1   The xlink:type attribute on simple links. 21

3.5.1.2   The xlink:href attribute on simple links. 21

3.5.1.3   The xlink:role attribute on simple links (optional) 21

3.5.1.4   The xlink:arcrole attribute on simple links (optional) 21

3.5.1.5   The xml:base attribute on simple links (optional) 21

3.5.2     The linkbase element 21

3.5.2.1   The id attribute on linkbase elements (optional) 22

3.5.2.2   The xml:base attribute on linkbase elements (optional) 22

3.5.2.3   Documentation elements in linkbase elements (optional) 22

3.5.2.4   The roleRef element (optional) 23

3.5.2.5   The arcroleRef element (optional) 25

3.5.3     Extended links. 26

3.5.3.1   The id attribute on extended links (optional) 27

3.5.3.2   The xlink:type attribute on extended links. 27

3.5.3.3   The xlink:role attribute on extended links. 27

3.5.3.4   The xml:base attribute on extended links (optional) 28

3.5.3.5   Documentation elements in extended links (optional) 28

3.5.3.6   Titles in extended links (optional) 28

3.5.3.7   Locators. 28

3.5.3.8   Resources. 30

3.5.3.9   Arcs. 31

3.5.4     Use of XPointer in URI fragment identifiers. 40

4     XBRL instances. 40

4.1     The xbrl element 41

4.1.1     The id attribute on xbrl elements (optional) 42

4.1.2     The xml:base attribute on xbrl elements (optional) 42

4.2     The schemaRef element in XBRL Instances  42

4.2.1     The xlink:type attribute on schemaRef elements. 43

4.2.2     The xlink:href attribute on schemaRef elements. 43

4.2.3     The xlink:arcrole attribute on schemaRef elements (optional) 43

4.2.4     The xlink:role attribute on schemaRef elements (optional) 43

4.2.5     The xml:base attribute on schemaRef elements (optional) 43

4.3     The linkbaseRef element in XBRL instances  44

4.3.1     The xlink:type attribute on linkbaseRef elements. 44

4.3.2     The xlink:href attribute on linkbaseRef elements. 44

4.3.3     The xlink:arcrole attribute on linkbaseRef elements. 45

4.3.4     The xlink:role attribute on linkbaseRef elements (optional) 45

4.3.5     The xml:base attribute on linkbaseRef elements (optional) 45

4.4     The roleRef element in XBRL instances (optional) 45

4.5     The arcroleRef element in XBRL instances (optional) 45

4.6     Items  46

4.6.1     The contextRef attribute. 49

4.6.2     The unitRef attribute. 49

4.6.3     Usage of precision and decimals attributes. 49

4.6.4     The precision attribute (optional) 49

4.6.5     The decimals attribute (optional) 51

4.6.6     Inferring precision. 52

4.6.7     Definitions pertaining to accuracy. 53

4.6.7.1   “Correct to n Significant Figures”, “Rounding” and “Truncation”. 53

4.6.7.2   “Correct to n Decimal Places”. 54

4.7     The context element 54

4.7.1     The id attribute. 55

4.7.2     The period element 55

4.7.3     The entity element 57

4.7.3.1   identifier 57

4.7.3.2   The segment element (optional) 58

4.7.4     The scenario element (optional) 59

4.8     The unit element 61

4.8.1     The id attribute. 62

4.8.2     The measure element 62

4.8.3     The divide element 63

4.8.4     The unitNumerator and unitDenominator elements. 63

4.9     Tuples  64

4.10   Equality predicates relevant to detecting duplicate items and tuples  67

4.11   Footnotes  74

4.11.1   The footnoteLink element 74

4.11.1.1 Locators in footnoteLink elements. 76

4.11.1.2 The footnote element 76

4.11.1.3 The footnoteArc element 76

5     XBRL Taxonomies. 77

5.1     Taxonomy schemas  77

5.1.1     Concept definitions. 79

5.1.1.1   The periodType attribute. 79

5.1.1.2   The balance attribute (optional) 80

5.1.1.3   Item data types. 81

5.1.2     The linkbaseRef element 85

5.1.3     Defining custom role types – the roleType element 85

5.1.3.1   The roleURI attribute. 87

5.1.3.2   The id attribute on roleType elements (optional) 87

5.1.3.3   The definition element in roleType elements (optional) 87

5.1.3.4   The usedOn element in roleType elements. 88

5.1.4     Defining custom arc role types – the arcroleType element 88

5.1.4.1   The arcroleURI attribute. 90

5.1.4.2   The id attribute on arcroleType elements (optional) 90

5.1.4.3   The cyclesAllowed attribute. 90

5.1.4.4   The definition element on arcroleType elements (optional) 91

5.1.4.5   The usedOn element on arcroleType elements. 91

5.1.5     Prohibit <redefine>. 91

5.2     Taxonomy linkbases  91

5.2.1     The linkbase element 96

5.2.2     The labelLink element 96

5.2.2.1   Locators in labelLink elements. 97

5.2.2.2   The label element 97

5.2.2.3   The labelArc element 100

5.2.3     The referenceLink element 101

5.2.3.1   Locators in referenceLink elements. 102

5.2.3.2   The reference element 102

5.2.3.3   The referenceArc element 106

5.2.4     The presentationLink element 106

5.2.4.1   Locators in presentationLink elements. 107

5.2.4.2   The presentationArc element 107

5.2.5     The calculationLink element 109

5.2.5.1   Locators in calculationLink elements. 109

5.2.5.2   The calculationArc element 109

5.2.6     The definitionLink element 113

5.2.6.1   Locators in definitionLink elements. 114

5.2.6.2   The definitionArc element 114

6     References. 118

A.    Schemas. 120

xbrl-instance-2003-12-31.xsd (normative) 120

xbrl-linkbase-2003-12-31.xsd (normative) 132

xlink-2003-12-31.xsd (normative) 140

xl-2003-12-31.xsd (normative) 141

B.    Document history and acknowledgments (non-normative). 146

C.    Intellectual property status (non‑normative). 157

D.   Errata Corrections incorporated in this document. 157

 


List of tables

 

Table 1. Terms and definitions. 10

Table 2. Roles in the linkbaseRef element 45

Table 3. Unit restrictions based on item types. 62

Table 4. Equality predicate definitions. 67

Table 5. Correct signage in an XBRL instance. 81

Table 6. Constraints among the balance attribute and calculation arc weights. 81

Table 7. Defined item types. 82

Table 8. Standard label role attribute values. 98

Table 9. Reference role attribute values. 105

 

List of examples

 

Example 1. A skeletal linkbase. 22

Example 2. One-to-One arc relationships [XLINK] 33

Example 3. One-to-Many arc relationships [XLINK] 33

Example 4. Many-to-Many arc relationships [XLINK] 34

Example 5. Correct use of arcs according to [XLINK] 35

Example 6. Prohibiting and overriding relationships. 38

Example 7. Example xlink:href values. 40

Example 8. Use of xbrl as the root element 42

Example 9. A numeric fact with three significant digits. 48

Example 10. A non-numeric item.. 48

Example 11. Precision and lexical representation. 50

Example 12. Decimals and lexical representation. 51

Example 13. Lexical representation,  precision and decimals. 53

Example 14. Rounding. 54

Example 15. Correct to n decimal places. 54

Example 16. IDs. 55

Example 17. Entity identifiers. 58

Example 18. Using the segment element 59

Example 19. Use of the scenario element 60

Example 20. Use of the unit element 63

Example 21. Simple and complex unit of measure comparison. 64

Example 22. Defining a tuple as a member of the substitutionGroup "tuple". 66

Example 23. Elements describing business properties held and disposed. 67

Example 24. Hierarchy in a tuple. 67

Example 25. Duplicate items, tuples and contexts. 71

Example 26. Predicates for detecting duplicates. 72

Example 27. A footnote in an XBRL instance. 75

Example 28. A skeletal taxonomy schema showing linkbase references. 78

Example 29. Typical element definitions in a taxonomy schema. 79

Example 30. Instant and duration concept definitions. 80

Example 31. Using the balance element to indicate normal debit and credit balances. 81

Example 32. A concept appearing with positive and negative values in an XBRL instance. 81

Example 33. Deriving an enumerated item type. 83

Example 34. Representing fractions. 85

Example 35. Defining a custom role type. 86

Example 36. Defining a custom arc role value. 88

Example 37. Directed cycles. 90

Example 38. Undirected cycles. 91

Example 39. Using relationship prohibition to insert a new sub-total into a calculation network  93

Example 40. Types of cycles. 94

Example 41. Elements of a financial reporting taxonomy. 94

Example 42. Hierarchy in a calculation linkbase. 95

Example 43. Hierarchy of general-special arcs in a definition linkbase. 95

Example 44. Hierarchy in a presentation linkbase. 96

Example 45. Label resource examples. 98

Example 46. Arc between a concept and one of its labels. 100

Example 47. Sample values of xlink:role for several referenceLink elements. 102

Example 48. Arc between a concept and supporting references. 104

Example 49. Reference resource. 104

Example 50. A presentation arc. 108

Example 51. An abstract concept definition. 108

Example 52. Calculations involving decimals and precision. 111

Example 53. Syntax of a calculationArc. 111

Example 54. Cash, equivalent to cash as totalled by branch location and account type. 112

Example 55. XBRL instance fragment with nested tuples. 113

Example 56. A general-special arc. 115

Example 57. Inference of values for non-numeric items with concepts connected by essence-alias arcs  116

Example 58. Inference of values for numeric items with concepts connected by essence-alias arcs  117


1         Introduction

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 alt