Extensible Business Reporting Language (XBRL) 2.1

RECOMMENDATION - 2003-12-31 + Corrected Errata - 2005-11-07

This version:

            XBRL-RECOMMENDATION-2003-12-31+Corrected-Errata-2005-11-07.htm

 

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

 

            XBRL-RECOMMENDATION-2003-12-31+Corrected-Errata-2005-11-07.rtf

 

Editors

Name

Contact

Affiliation

Phillip Engel

phillipengel@kpmg.com

KPMG LLP

Walter Hamscher[1]

walter@hamscher.com

Standard Advantage

Geoffrey Shuetrim

gshuetrim@kpmg.com.au

KPMG LLP

David vun Kannon

dvunkannon@kpmg.com

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

cpryde@kpmg.com

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 the date of publication. The International Steering Committee of XBRL International approved this document for publication as an update to the RECOMMENDATION on 2005-11-06.

Each erratum correction is identified by means of the Microsoft Word change tracking mechanism cross-referenced to its description 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  13

1.6     Namespace prefix conventions  13

2     Changes from the previous published version. 14

2.1     Changes in XBRL instances  14

2.2     Changes in XBRL taxonomies  15

3     XBRL framework. 15

3.1     Overview of XBRL taxonomies  16

3.2     Overview of XBRL instances  16

3.3     Data integrity and confidentiality  18

3.4     Validation  18

3.5     XLink in XBRL  18

3.5.1     Simple links. 19

3.5.1.1   The xlink:type attribute on simple links. 20

3.5.1.2   The xlink:href attribute on simple links. 20

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

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

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

3.5.2     The linkbase element 20

3.5.2.1   The id attribute on linkbase elements (optional) 21

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

3.5.2.3   Documentation elements in linkbase elements (optional) 21

3.5.2.4   The roleRef element (optional) 22

3.5.2.5   The arcroleRef element (optional) 24

3.5.3     Extended links. 25

3.5.3.1   The id attribute on extended links (optional) 26

3.5.3.2   The xlink:type attribute on extended links. 26

3.5.3.3   The xlink:role attribute on extended links. 26

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

3.5.3.5   Documentation elements in extended links (optional) 27

3.5.3.6   Titles in extended links (optional) 27

3.5.3.7   Locators. 27

3.5.3.8   Resources. 29

3.5.3.9   Arcs. 30

3.5.4     Use of XPointer in URI fragment identifiers. 39

4     XBRL instances. 39

4.1     The xbrl element 40

4.1.1     The id attribute on xbrl elements (optional) 41

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

4.2     The schemaRef element in XBRL Instances  41

4.2.1     The xlink:type attribute on schemaRef elements. 42

4.2.2     The xlink:href attribute on schemaRef elements. 42

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

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

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

4.3     The linkbaseRef element in XBRL instances  43

4.3.1     The xlink:type attribute on linkbaseRef elements. 43

4.3.2     The xlink:href attribute on linkbaseRef elements. 43

4.3.3     The xlink:arcrole attribute on linkbaseRef elements. 44

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

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

4.4     The roleRef element in XBRL instances (optional) 44

4.5     The arcroleRef element in XBRL instances (optional) 44

4.6     Items  45

4.6.1     The contextRef attribute. 48

4.6.2     The unitRef attribute. 48

4.6.3     Usage of precision and decimals attributes. 48

4.6.4     The precision attribute (optional) 48

4.6.5     The decimals attribute (optional) 49

4.6.6     Inferring precision. 51

4.6.7     Definitions pertaining to accuracy. 51

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

4.6.7.2   “Correct to n Decimal Places”. 52

4.7     The context element 53

4.7.1     The id attribute. 53

4.7.2     The period element 53

4.7.3     The entity element 55

4.7.3.1   identifier 55

4.7.3.2   The segment element (optional) 56

4.7.4     The scenario element (optional) 57

4.8     The unit element 59

4.8.1     The id attribute. 60

4.8.2     The measure element 60

4.8.3     The divide element 61

4.8.4     The unitNumerator and unitDenominator elements. 61

4.9     Tuples  62

4.10   Equality predicates relevant to detecting duplicate items and tuples  65

4.11   Footnotes  72

4.11.1   The footnoteLink element 72

4.11.1.1 Locators in footnoteLink elements. 74

4.11.1.2 The footnote element 74

4.11.1.3 The footnoteArc element 74

5     XBRL Taxonomies. 75

5.1     Taxonomy schemas  75

5.1.1     Concept definitions. 77

5.1.1.1   The periodType attribute. 77

5.1.1.2   The balance attribute (optional) 78

5.1.1.3   Item data types. 79

5.1.2     The linkbaseRef element 83

5.1.3     Defining custom role types – the roleType element 83

5.1.3.1   The roleURI attribute. 85

5.1.3.2   The id attribute on roleType elements (optional) 85

5.1.3.3   The definition element in roleType elements (optional) 85

5.1.3.4   The usedOn element in roleType elements. 86

5.1.4     Defining custom arc role types – the arcroleType element 86

5.1.4.1   The arcroleURI attribute. 88

5.1.4.2   The id attribute on arcroleType elements (optional) 89

5.1.4.3   The cyclesAllowed attribute. 89

5.1.4.4   The definition element on arcroleType elements (optional) 90

5.1.4.5   The usedOn element on arcroleType elements. 90

5.1.5     Prohibit <redefine>. 90

5.2     Taxonomy linkbases  90

5.2.1     The linkbase element 95

5.2.2     The labelLink element 95

5.2.2.1   Locators in labelLink elements. 96

5.2.2.2   The label element 96

5.2.2.3   The labelArc element 99

5.2.3     The referenceLink element 100

5.2.3.1   Locators in referenceLink elements. 101

5.2.3.2   The reference element 101

5.2.3.3   The referenceArc element 105

5.2.4     The presentationLink element 105

5.2.4.1   Locators in presentationLink elements. 106

5.2.4.2   The presentationArc element 106

5.2.5     The calculationLink element 108

5.2.5.1   Locators in calculationLink elements. 108

5.2.5.2   The calculationArc element 108

5.2.6     The definitionLink element 112

5.2.6.1   Locators in definitionLink elements. 113

5.2.6.2   The definitionArc element 113

6     References. 117

A.    Schemas. 119

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

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

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

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 44

Table 3. Unit restrictions based on item types. 60

Table 4. Equality predicate definitions. 65

Table 5. Correct signage in an XBRL instance. 79

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

Table 7. Defined item types. 80

Table 8. Standard label role attribute values. 97

Table 9. Reference role attribute values. 104

 

List of examples

 

Example 1. A skeletal linkbase. 21

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

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

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

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

Example 6. Prohibiting and overriding relationships. 37

Example 7. Example xlink:href values. 39

Example 8. Use of xbrl as the root element 41

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

Example 10. A non-numeric item.. 47

Example 11. Precision and lexical representation. 49

Example 12. Decimals and lexical representation. 50

Example 13. Lexical representation,  precision and decimals. 51

Example 14. Rounding. 52

Example 15. Correct to n decimal places. 52

Example 16. IDs. 53

Example 17. Entity identifiers. 56

Example 18. Using the segment element 57

Example 19. Use of the scenario element 58

Example 20. Use of the unit element 61

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

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

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

Example 24. Hierarchy in a tuple. 65

Example 25. Duplicate items, tuples and contexts. 69

Example 26. Predicates for detecting duplicates. 70

Example 27. A footnote in an XBRL instance. 73

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

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

Example 30. Instant and duration concept definitions. 78

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

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

Example 33. Deriving an enumerated item type. 81

Example 34. Representing fractions. 83

Example 35. Defining a custom role type. 84

Example 36. Defining a custom arc role value. 86

Example 37. Directed cycles. 89

Example 38. Undirected cycles. 90

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

Example 40. Types of cycles. 93

Example 41. Elements of a financial reporting taxonomy. 93

Example 42. Hierarchy in a calculation linkbase. 94

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

Example 44. Hierarchy in a presentation linkbase. 95

Example 45. Label resource examples. 97

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

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

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

Example 49. Reference resource. 103

Example 50. A presentation arc. 107

Example 51. An abstract concept definition. 107

Example 52. Calculations involving decimals and precision. 110

Example 53. Syntax of a calculationArc. 110

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

Example 55. XBRL instance fragment with nested tuples. 112

Example 56. A general-special arc. 114

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

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


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

1.1        Documentation conventions

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.

1.2        Purpose

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.

1.3        Relationship to other work

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.

1.4        Terminology (non-normative except where otherwise noted)

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). These definitions are non-normative except where marked otherwise by means of the word (NORMATIVE) appearing in the “Term” column.

Table 1. Terms and definitions.