European XBRL Reporting Entities handbook
From XBRLWiki
Revision as of 07:34, 16 March 2013 (edit) Iboixo (Talk | contribs) (→XBRL Reporting: Instance documents) ← Previous diff |
Revision as of 07:35, 16 March 2013 (edit) Iboixo (Talk | contribs) (→Formulas) Next diff → |
||
Line 678: | Line 678: | ||
- | |||
- | ==Formulas== | ||
- | <span style="background-color:yellow">This section is further being elaborated during the Workshop with the input from the other project teams.</span><br /> | ||
Revision as of 07:35, 16 March 2013
CEN Workshop Agreement
Status: Working Group Working Draft
Editing rules
Editorial comments should be highlighted as follows: A comment
Text or rules in discussion (white): Some text
Text or rules already aligned (green): Some text
Text or rules to be deleted (red): Some text
Text to be delivered (blue): Some text
Foreword
This document is a working document.
This document has been prepared by CEN/WS XBRL, the secretariat of which is held by NEN.
This document is a working document.
Introduction
The set of recommendations included in this document aim to facilitate the implementation of European National Supervisors to adopt XBRL in any of the reporting frameworks. The following chapters will provide guidance on the use, understanding, preparation, and extension of their filings in eXtensible Business Reporting Language (XBRL).
This guidance is in the form of notes in association with the pertaining requirements clause and uses the terms “should” (recommendation), “may” (allowance) and “can” (possibility). Organizations wishing to implement this CWA would be expected to consider all recommendations where the term “should”is used.
Scope
COREP, FINREP (and Solvency II or other future) XBRL taxonomies are offered to European regulators for national implementation. The first releases (2006) of the COREP and FINREP XBRL frameworks have proven that a standardized technical roll-out package is needed to increase the adoption rate and avoid implementation variances, which have a detrimental effect on the overall cross-border effectiveness of using one reporting standard. This roll-out guide tries as well to promote the economies of scale of a better adoption.
This CWA have divided the work/deliveries in two difference parts:
- i) An XBRL supervisory roll-out guide: this is oriented towards national regulators on how to implement, extend and manage XBRL taxonomies
- ii) An XBRL handbook for declarers: this is a roll-out guide or reference handbook would give a general introduction to XBRL and serve as a help to preparers of XBRL (reporting entities)
The scope of the current document is on the second part of the CWA; the XBRL handbook for declarers.
[DRAFT]
Normative references
The following referenced documents are indispensable for the application of this document. For dated references, only the edition cited applies. For undated references, the latest edition of the referenced document (including any amendments) applies.
EN xyz:199x, Title of the european standard.
EN ab c:199x, General title of series of parts — Part c: Title of part.
Terms and definitions
For the purposes of this document, the following terms and definitions apply / the terms and definitions given in … and the following apply.
- Term1
- description on text for term1
- Term2
- description on text for term2
How to start with XBRL from the declarer's perspective
XBRL stands for eXtensible Business Reporting Language. It is a language for the electronic communication of business information, providing major benefits in the preparation, analysis and communication of business information. It offers cost savings, greater efficiency and improved accuracy and reliability to all those involved in supplying or using business information.
XBRL is increasingly adopted as communication standard by more and more regulators around the world. The entities which are providing this information to the regulators might initially see XBRL as just another way or format of the required information. However, XBRL provides many benefits for the declarer as well. All types of organisations can use XBRL to save costs and improve efficiency in handling business and financial information. Because XBRL is extensible and flexible, it can be adapted to a wide variety of different requirements. All participants in the financial information supply chain can benefit, whether they are preparers, transmitters or users of business data.
XBRL can be used with the help of various software tools, in a way that the user doesn't need to understand or even see the XBRL itself. However, a basic understanding of the basic components of XBRL allows the user to better grasp the potential benefits of XBRL.
The ambition of this document is to explain the basic underpinnings of the XBRL standard. Although these aspects might seem technical at first, all topics will be addressed in a general, comprehensible way.
This section is further being elaborated during the Workshop with the input from the other project teams.
XML and XBRL: Introduction to its technological building blocks
This chapter aims to give an overview of the basic technologies that underpin XBRL. Our aim is to give a general introduction of each component in order to obtain a better understanding of this reporting language. Since XBRL is built upon the XML language, the this chapter will focus on the basics of the XML standard, in particular the XML components which are also used by XBRL.
XML
XML, or eXtensible Markup Language, is a W3C standard which enables the representation of structured data in the form of flat text. This simple and flexible text format is both machine readable and human readable. The XML specification, which is a derivative of SGML1 , uses elements and attributes in order to structure content. Although originally designed for the publication of information, XML is increasingly important in facilitating electronic communications.
In the chapters further below, we'll elaborate on the following topics:
- How XML is a markup language
- How XML enables the structuring of information
- What are the main components of an XML document
- Namespaces and prefixes
- Unicode
- XML benefits
1 SGML (or Standard Generalized Markup Language) is an ISO-standard technology for defining generalized markup languages for documents. SGML itself descends from GML (Generalized Markup Language), which is developed by IBM in the 1960s.
XML as a markup language
Simply put, one can say that XML is a language for the codification of structured information. This coding, which is done via the use of "tags", is the main reason why XML is commonly referred as a markup language. As a basic example, the list below represents a list of books:
<book>On the Road</book> <book>The Catcher in the Rye</book> <book>The Hobbit</book> <book>The Name of the Rose</book>
The name of each book is delimited by two marks. The first mark contains an identifier enclosed in angle-brackets (<book>
), indicating the beginning of a field. The second mark is equal to the first, but also contains a closing bracket (</book>
), which indicates the end of a field. As a result, the content of each element of <book>
is delimited by the opening and closing tags. With this method, a system that processes this information can easily identify the subject and aim of the provided information.
XML structures information
In the previous example, only the element <book>
was provided. The XML information model is however hierarchical: an element can contain other elements, which in turn can also contain other elements. This is made clear with the following example:
<library> <book> <title>On the Road</title> <author>Jack Kerouac</author> </book> <book> <book> <title>The Catcher in the Rye</title> <author>J. D. Salinger</author> </book> <book> <book> <title>The Name of the Rose</title> <author>Umberto Eco</author> </book> <book> </library>
In the example above, the "library" element contains a set of "book" elements. Each of these "book" elements contains a "title" and an "author" element.
Components of an XML document
The most important components of an XML documents are the elements. Elements are defined by their name, their content (the value which is between the angled brackets, which can be null) and an indefinite number attributes. The example below shows an element with two attributes:
<element attribute1="attr-value1" attribute2="attr-value2">content</element>
An XML document may start with an XML declaration, where the used XML version is identified (typically 1.0) as well as the character encoding. This is followed by the first element. This element is called root element. This will have a number of undetermined "children" elements.
<?xml version="1.0" encoding="UTF-8">
<library>
<!-- other items -->
</library>
The example above shows an XML document which uses version 1.0, has UTF-8 encoding and has "library" as root element.
The XML specification defines an XML document as a text that is well-formed, i.e., it satisfies a list of syntax rules provided in the specification. This list is fairly lengthy, but some key points are:
- Only properly encoded legal Unicode characters are allowed.
- None of the special syntax characters such as "<" and "&" appear except when performing their markup-delineation roles.
- The begin, end, and empty-element tags that delimit the elements are correctly nested, with none missing and none overlapping.
- The element tags are case-sensitive; the beginning and end tags must match exactly.
- There is a single "root" element that contains all the other elements.
It is also possible to include comments in XML documents. These comments are not processed by applications and allow the inclusion of clarifications in the text document when deemed appropriate. Comments begin with the characters "<!-" and end with the characters "->".
Namespaces
The naming scheme that is described above is relatively limited, as it can lead to conflicts between elements. Consider the following two examples:
<?xml version="1.0" encoding="UTF-8">
<library>
<book author="J.R.R. Tolkien" language="English">The Lord of the Rings</book>
<book author="Molière" language="French">Tartuffe</book>
</library>
<?xml version="1.0" encoding="UTF-8">
<xml-apps>
<tool name="xmlstarlet" language="c"/>
<tool name="trang" language="java"/>
<tool name="xmldiff" language="python"/>
</xml-apps>
The first document contains a representation of a collection of books. One of the attributes of each book is the language in which it is written. In the second document a small collection of XML applications is shown. In this case the language attribute is also used, but here it is referring to the programming language, which has a distinct meaning.
In principle, a human person would have little difficulty in distinguishing the use of the same attribute in different contexts. In order to facilitate the automatic processing of information by a machine, ambiguities must be avoided as much as possible
XML namespaces are used for providing uniquely named elements and attributes in an XML document. A namespace defines a grouping of concepts. Within a namespace, each concept is identified uniquely by its local name. Globally, each concept is identified uniquely by its local name plus the identifier of its namespace (or qualified name). With the earlier two examples, could thus be represented in the following way:
Namespace | Local Name | Description |
---|---|---|
Literature | Language | Language, speech |
Computer Sciences | Language | Programming language |
But how to ensure that there is no naming conflict at the namespace level? How to ensure, for example, that there are different interpretations of the namespace "literature"? The unique identification of a namespace is achieved with the use of an URI (or Unique Resource Identifier).
A namespace is identified by a URI (Uniform Resource Identifier), which as an example can look like this:
http://www.acme.org/products
The fundamental idea of namespaces is that they incorporate an internet domain as part of its identifier. The use of namespaces allows the use of uniquely identified concepts. This is in an important aspect of the XBRL standard
Namespaces and prefixes
For readability purposes within an XML document, each full namespace identifier is replaced with prefixes. The association between prefixes and its corresponding namespaces are usually set at the root node. The association between prefixes and namespaces is done with a special attribute: xmlns:[prefix]="Namespace". This is illustrated with an example below:
<?xml version="1.0" encoding="UTF-8">
<bk:book-collection xmlns:bk="http://www.book.org">
<bk:book author="Norman Davies" language="English">Europe: A History</bk:book>
<bk:book author="Homeros" language="Greek">Ilias</bk:book>
<bk:book author="Jonathan Litell" language="French">Les Bienveillantes</bk:book>
</bk:book-collection>
In the above example document, the element "bk:book" has "book" as local name, and "http://www.book.org" as namespace. This namespace uses "bk" as prefix.
UNICODE
Unicode is a standard for the representation of text expressed in most of the world's writing systems. Included in the Unicode representation are any character used in English, Spanish, Greek or any other western language, Chinese, Cyrillic, Hebrew, Arabic, Mongolian, Ethiopian and many others. Unicode was originally developed by a consortium of companies including Apple, Microsoft, IBM, Xerox, HP and Adobe in order to obtain a universal character set. It is now integrated in almost all modern operating systems as well as technological languages like XML, Java, or the Microsoft .Net Framework. Unicode can be implemented by different character encodings. One of the most commonly used encodings is UTF-8 (which is also compatible with the older ASCII code).
Thanks to the use of Unicode, XML allows the representation of text in any language.
XML Benefits
Throughout all the previous sections, the main elements of the XML syntax were introduced. XML is a markup language allowing the description of data structures in a global format.
The benefits of XML are among others:
- An easy readable language, by humans as well as by machines
- It is self-contained. An XML document not only describes the data values, but also its structure and the naming of the fields
- Its hierarchical structure allows the representation of virtually any data structure in a simple way
- It is platform-independent. XML documents can be used on any operating system and with any programming language
- The use of a strict syntax leads to an efficient processing by tools
XML is used at the core of all information exchange over the internet
XML Schema
An XML schema is a collection of definitions of a type of XML document. These definitions, called schema components, are generally about the structure and content of the document and are more specific that the XML syntax itself. The rules of an XML schema determine if an XML document can be considered "valid" according to that schema.
XML Schema Components
A schema defines the elements and attributes that make up an XML document. Elements and attributes are defined by stating their name as well as the possible values that they can take: their type. Attributes can only be of simple type, while elements can also be a complex type. A complex type allows the specification of an element's valid attributes and specifies complex content: elements that are composed of other elements. An element identified as a simple type cannot contain other elements.
In addition, other auxiliary components exist that, although not directly used in XML documents, can be used in a schema (or in other schemas extending the schema). Auxiliary components like types, groups of elements and groups of attributes.
Predefined types
One of the main features of an XML Schema is that a broad set of types are incorporated by default. These predefined types can in turn be divided into primitives and derivatives. Derived types are types whose definition is based on other types. Primitive types are the most basic types of the specification: its definition does not depend on other types.
Among the primitive types of the XML Schema are: the string type (a string of characters), the Boolean type (a type with only 2 logical values: true of false), the decimal type (a decimal number with an arbitrary precision), the duration type (represents an extension of time) and the time type (represents a time of the day).
Among the derived types of the XML Schema are: the normalizedString type (a string of characters which cannot contain carriage return, new line or tab), the positiveInteger type (integer number values larger than zero), the negativeInteger type (integer number values smaller than zero).
All these types are defined in the namespace of the XML Schema. As a result, the types will appear with their corresponding prefix (usually "xs"). For example: "xs:string", "xs:integer", …
Besides these predefined types, the XML Schema allows the creation of many more in order to meet large number of requirements.
Extension of simple types
Simple content types do not contain XML structures, their possible values can thus be expressed by a sequence of flat characters. Existing simple types can serve as a basis for the creation of new simple types or can be used in complex types.
These simple types are most commonly extended through the use of a restraining mechanism, via the declaration of properties (facets) that are imposing limits on the extended base type. For example, if the base type is xs:integer, minimum and maximum values can be defined in order to obtain a new type.
The properties that can be applied depend on the base that is extended. For example, the number of digits of a numeric type can be limited, a date can have a maximum value or a regular expression can be applied to a string.
Extension of types: attribute declaration
XML Schema allows the extension of attributes of extended types (simple types do not have any attributes). Conversely; the use of attributes can also be restricted.
Unlike elements, attributes cannot be repeated within the same element. The order in which they are declared in an element is also irrelevant. An XML Schema however, can control whether their use is mandatory, optional or prohibited.
Sometimes it is useful to allow attributes in XML documents that are defined in the scheme in advance. In this case, the component "xs:anyAttribute" is used. This component can be accompanied by a namespace attribute delimiting the number of attributes that can be included the namespace. This is a widely used technique XBRL that provides flexibility to the schema.
Extension of types: composition of elements
The extension of simple types is not sufficient to express the variety of data structures that can be represented with XML. In order to express nested element structures, we need to compose elements within the schema.
In the following example, the contents of root element "library" may contain the "book" or "audiocd". The elements of type "book" can in turn contain a pair of singles ("title" and "author"), not following a predetermined order. The elements of type "audiocd" contains a list of elements "track-title" and "track-duration" which contains the title information and its duration for each track on the CD:
<?xml version="1.0" encoding="UTF-8"> <library> <book> <author>Hilary Mantel</author> <title>Wolf Hall</title> </book> <book> <title>Raghuram Rajan</title> <author>Fault Lines</author> </book> <audiocd album="Kind Of Blue"> <track-title>So What</track-title> <track-duration>9</track-duration> <track-title>Freddie Freeloader</track-title>< <track-duration>10</track-duration> <track-title>Blue In Green</track-title> <track-duration>5</track-duration>< </audiocd> </library>
There are three mechanisms in an XML Schema that can be used to define compositional relationships: "sequence", "choice" and "all":
- Sequence: indicates that the content of a type is an ordered list of elements. In the example shown above, "audiocd" contains elements "track-title" and "track-duration"
- Choice: allows the choice of a component from an available list. In the above example, "library" can be expressed as a "choice" of the elements "book" and "audiocd".
- All: allows the creation of an unordered list or set. Unlike "sequence", "all" does not establish an order. In the above example, "book" consists of the elements "title" and "author" without a predetermined order.
This can be schematically represented in the following illustration:
The above example would thus be defined as follows into an XML Schema:
<?xml version="1.0" encoding="UTF-8"> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" > <xs:element name="library"> <xs:complexType> <xs:choice maxOccurs="unbounded"> <xs:element name="book"> <xs:complexType> <xs:all> <xs:element name="title"> <xs:element name="author"> </xs:all> </xs:complexType> </xs:element> <xs:element name="audiocd"> <xs:complexType> <xs:sequence maxOccurs="unbounded"> <xs:element name="track-title"> <xs:element name="track-duration"> </xs:sequence> </xs:complexType> </xs:element> </xs:choice> </xs:complexType> </xs:element> </xs:schema>
As explained in the previous chapters, the prefix "xs:" points to the namespace "http://www.w3.org/2001/XMLSchema". The number of repetitions or cardinality of the elements can also be controlled by the attributes "minOccurs" and "maxOccurs". The combination of these attributes with different elements can result in more complex schemas.
ID and IDREF attribute types
A number of specific attribute types exist in the XML Schema, which are particularly significant in XBRL. These attribute types are ID and IDREF. The value assigned to an ID type attribute can't be repeated within the same XML document. As a result, an ID type attribute identifies each element within the same document in a unique way. In the example below, the ISBN attribute can be considered as a ID type attribute:
<?xml version="1.0" encoding="UTF-8"> <library> <book ISBN="ISBN-0-262-56099-2">It's not about the Bike</book> <book ISBN="ISBN-0-262-56099-2">The Pillars of the Earth</book> <book ISBN="ISBN-0-569-00108-8">A History of the World in 100 Objects</book> </library>
According the XML Schema rules, this example is invalid, because there are two books with the same ID. The attribute type IDREF is a reference to another ID. In other words, an attribute of IDREF type must contain the value of an ID (which already exists in the document). This is illustrated in the example below, where a new attribute called "sequel-of" is an IDREF:
<?xml version="1.0" encoding="UTF-8"> <library> <book ISBN="ISBN-0-262-56099-2">The Fellowshiop of the Ring</book> <book ISBN="ISBN-0-311-57018-9" sequel-of=" ISBN-0-262-56099-2">The Two Towers</book> <book ISBN="ISBN-0-569-00108-8" sequel-of=" ISBN-0-311-57018-9">The Return of the King</book> </library>
Groups of attributes and elements
In some cases, a number of attributes are used repeatedly in elements of a schema. In that case, a group of attributes can be used: it is the group that is referenced in the element declaration. In the same way, elements can also be declared as a group of content types. For example, the "choice" type refers to a group of elements, which enable the selection of any element defined in that group.
Importing and including schemas
XML Schema allows the use of components (elements, types, attributes and groups) which are globally defined in other schemas. When the imported schema belongs to a different namespace import is used ("xs:import") . If the namespace is the same, inclusion is used ("xs:include").
Via the use of these methods, XML Schema can easily be extended. This also facilitates the definition of a schema, since existing definitions can simply be imported. This is extensively used in the XBRL standard.
XML Schema benefits
The use of schemes in general and XML Schema in particular greatly simplifies information processing. Benefits of XML Schema are among others:
- A Schema document defines a common structure. As a result, automated processing of this document is streamlined.
- Adequacy checks can be performed with market tools (validators), instead of custom development. This improves quality as well as reduces the development time of new applications
- Reuse of market software. Besides validators, a large number of existing tools also make use of XML Schemas. For example: exhibit generators, database extraction & storage utilities, publishers, ...
- Development can be based on the data types associated with components, instead of the components itself. This makes developments more flexible and makes it more likely that code will be reused.
- Reuse of global definitions. Via the use of namespaces and the possibility to import schemas, concepts defined by different organisations can be reused.
XLink
XML Linking Language or XLink is a standard defined by the W3C that creates and describes cross-references between resources or fragments of XML documents. For example, XLink allows the creation of links which are similar to hyperlinks.
Technological components used by XML and by XBRL
This section describes some technologies that, while not part of the current version of the XBRL standard, allow generic XML document processing, and therefore also allow XBRL reporting.
XPath
XPath is a language that enables the selection of fragments of an XML document. It also allows basic manipulation of strings, numbers and logical expressions. XPath uses a compact syntax, resembling in some ways the syntax used by old operating systems to identify a file or a set of files (but replaces directories with XML tree nodes) Below are some examples of XPath:
Xpath Expression | Result |
---|---|
/library/author/book | selects all books of the library |
/library/author[@name="JRR Tolkien"]/book | selects all books authored by JRR Tolkien |
/count(library/author[@name="JRR Tolkien"]/book) | returns the number of books authored by JRR Tolkien |
/library/author[@name="JRR Tolkien"]/book [last()] | selects the last book authored by JRR Tolkien |
//@ISBN | selects the ISBN attribute value of any XML tree node |
XPath is perhaps more important for its use as part of other standards like XSLT or XQuery, than for its use on its own.
XSLT
XSLT (or Extensible Stylesheet Language Transformations) is a language for transforming XML documents. It uses a scheme of pattern matching: the user defines a set of patterns (defined in XPath) and results. When the XSLT processor detects a fragment that fits one of these patterns, the corresponding result is substituted in the output document. XSLT incorporates additional facilities like control structures, defining functions or lookup tables. These additional features make XSLT a powerful language.
The illustration below show a functional diagram of an XSLT processor:
The patterns which are defined in an XSL sheet and subsequently found in the input document are replaced in the generated output document.
XSLT is used in the presentation layer of some web architectures used for transforming XML documents in a presentation format (HTML or XHTML). The National Bank of Belgium, for example, uses XSLT (and related languages) to generate PDF documents form XBRL reports which are submitted by regulated entities.
XQuery
The previous chapters give an idea to the reader of how XML is capable of representing structured information. There exit databases that use XML as an alternative (or complement) to conventional technologies such as relational databases. The need for querying XML data thus arises. This is addressed with xQuery, a functional programming language that is designed to query collections of XML data.
XBRL: Extensible Business Reporting Language
The aim of this chapter is to give an explanation on XBRL's main features as a language for representing business information, while remaining on a conceptual level (and thus without going into too much technical detail).
How to structure reporting data?
Before starting to explain XBRL, we would like to show via an example why the structuring of reported data can be useful. Reported financial data tend to be represented a table format. For example, the COREP Capital Adequacy table looks this:
<p-ca:EligibleCapital>215</p-ca:EligibleCapital>
Although this information is already quite structured, some contextual information is missing. Information like the currency of the amount:
<p-ca:EligibleCapital unitRef=”EUR”>215</p-ca:EligibleCapital>
And finally, the reporting period:
<p-ca:EligibleCapital unitRef=”EUR” contextRef=”2012-12-31”>215</p-ca:EligibleCapital>
The above example shows, in a nutshell, how XBRL allows to structure reporting data.
XBRL Introduction
XBRL, or eXtensible Business Reporting Language, is a communication standard developed in order to simplify the exchange of business and financial data.
XBRL normalises the format of data (via the use of XML techniques) en the validation of data (via XBRL taxonomies).
XBRL also provides among others:
- Standard validation rules (mathematical and logical rules)
- The use of label linkbases (which allows multi-lingual taxonomies)
- The possibility to provide rendering
- Standard toolset which allow to work with XBRL
- XBRL Taxonomies
- The extensibility of XBRL
- XBRL Dimensions
- XBRL Formulas
- XBRL instance documents
- The validation of XBRL instance documents
XBRL Taxonomies
An XBRL Taxonomy is the set of definitions of the concepts of a certain business domain. XBRL taxonomies are a collection of taxonomy schemas and linkbases.
Schemas
Based on XML Schema, a taxonomy schema defines business concepts with their most basic properties.
Each business concept is represented by an element of a schema. As a result, each business concept will have a qualified name (i.e. namespace plus local name). As previously explained, this will allow unique identification of the specific concept.
All basic properties of a concept are expressed as element attributes. The values of these properties will determine how the concept is representing facts in an XBRL report. The most common properties are:
- Data type: the type of value (monetary, value, percentage, text ...) that the can be assigned to the concept. Predefined XBRL types can be used or new ones can be defined (via the use of XML Schema).
- Period type: generally, two period types are used in XBRL:
- Instant: used for expressing facts which refer to a certain moment in time (e.g. an amount on a balance sheet)
- Duration: used for expressing facts which refer to a time interval (e.g. the amount of revenue for a certain period)
In addition to these predefined properties, the flexibility of XBRL allows the creation of taxonomy-specific properties
Linkbases
Linkbases permit the creation of relationships between elements and relationships between resources. A resource can be, for example, the name of a concept in specific language or a reference to a paragraph of a legal document. These relationships are defined by using the XLink standard. Each link has a specific role. XBRM defines a set of predefined roles that are grouped into linkbases. Among these predefined roles are:
- Label linkbase: assigns names to the concepts, which are defined in a schema per different language. Within each language, the same element can be called in different ways, depending on the context in which it is used.
- Reference linkbase: allow the inclusion of references to specific regulations. This can be the whole text of the regulation, or only a reference towards it.
- Presentation linkbase: establishes relationship lines between the elements defined in the schema. This is generally used as a graphical guide for filing XBRL reports, since the concepts can be represented in a tree structure.
- Definition linkbase: sets relationships between concepts, such as dependencies (e.g. if concept A is reported in a document, concept B must be reported as well).This also includes dimensional relationships, which will be discussed in a later chapter.
- Calculation linkbase: sets aggregation relationships between different elements. For example: concept A may be calculated as the sum of A1, A2, A3 ... These aggregations can be modified with specific weights in order to obtain more complex arithmetic operations.
Extensibility
XBRL is extensible by design. The original authors of XBRL were aware of the complexity and diversity of business reporting all over the world. As result, XBRL was designed to be a flexible language in order to suit as much users as possible. Existing XBRL taxonomies can thus be extended with additional concepts or new relationships.
The idea of extending a taxonomy is to build upon an existing taxonomy, while incorporating additional information. For example, a taxonomy which defines concepts as defined by an international standard can be extended in order to be adapted to local regulations.
To enable these extensions, the XBRL standard allows that a new taxonomy imports one or multiple existing taxonomies. Besides from the imported taxonomies, the resulting new taxonomy may also include new concepts and create additional relationships between (new or existing) concepts.
Dimensions
The multidimensional data model
Multidimensional data model are characterized by simplifying the analysis of business information. Analytical processing, which is also known as OLAP (Online Analytical Processing), is widely used across the software industry for a number of years. The basic elements of this model are metrics, dimensions, domains and hypercubes. The metrics represent ways of measuring business operations. Examples of dimensions are time, a product line, or clients. The set of possible values within a dimension is called a domain. The values (also known as facts) that are reported within a dimensional model will always relate to a specific set of dimensional values. For example, revenues are 100.000€ (metric) for ACME Company (Company dimension) for the year 2012 (time dimension). The elements that make up the domain of dimension are usually ordered hierarchically. For example, the domain for the customer dimension can be divided into large companies, medium-sized companies and small companies. The same domain can be used in different dimensions. For example, the representation of a bank transfer can include a dimension indicating the country of origin as well as a dimension indicating the destination country. The values that these two dimensions can take are identical: the country domain. The set of possible combinations of dimension values for a given metric is called a hypercube. The name hypercube comes from the fact that multidimensional models are usually represented in a multidimensional matrix.
As an example, a three-dimensional hypercube is graphically represented in the figure above.
XBRL dimensions
The XBRL Dimensions specification is an official recommendation standard since September 2006. This extension to the XBRL standard allows for valid combinations for dimensions on a primary item and defines elements of these domains. This information is expressed in the taxonomy via a new set of arcs in the definition linkbase. XBRL dimensions can be distinguished into two types, depending on how their domain is defined: Explicit dimensions are dimension whose elements (and hierarchy) are listed explicitly. Typed dimensions are dimensions whose elements are not predefined. This kind of dimension is used when it is not possible to define the possible values beforehand. For example, the ISBN code of a book could be used as a typed dimension. One characteristic of the dimensions specification is that it allows the definition of invalid dimension combinations. For example, a taxonomy has two dimensions: fruit & colour. The taxonomy can thus indicate that some combinations of dimension values are not allowed (for example: "banana" & "red"). The dimension specification is a major contribution to the XBRL standard, as it allows an intuitive representation of business information.
Formulas
The XBRL Formula specification is an official recommendation standard since June 2009. The main goal of the XBRL Formula specification is to provide validation capabilities not present in the base specification (XBRL 2.1). The Formula Specification supports the creation of expressions (using XPath) that can be applied to XBRL instances. XBRL Formulas can be used to validate the information within an instance document. For example, XBRL Formulas can also be used to calculate new XBRL facts in a new instance (output instance). This output instance can represent many kinds of derived data, such as transformations or determination of ratios.
XBRL Reporting: Instance document structure
After explaining all the various components of XBRL, which explain how XBRL works, it might be interesting to explain how XBRL is reported. The illustrated example of chapter 6.1.1 already gave an indication of how reported data looks in the XBRL format. In this chapter the structure of an XBRL document, also called instance document, will be explained. XBRL instance documents do not have an elaborate predefined tree structure as may be the case in some XML schemas. All elements of an instance document reside directly within the major <xbrl> root node. Nevertheless, some components can always be found in an XBRL instance. These components will be explained into more detail with the use of an example instance document.
XBRL root node, namespaces and schemaRef
Every XBRL instance document starts with the XML declaration, followed with the <xbrl> root node. Directly in the XBRL root node follows the declaration of all namespaces used in the instance document. As can be seen in the example below, 11 namespaces are declared. All subsequent elements that are within the instance document are directly within <xbrl> root node.
<?xml version="1.0" encoding="UTF-8"> <xbrl> xmlns="http://www.xbrl.org/2003/instance" xmlns:d-Regions-be="http://www.c-ebs.org/eu/fr/esrs/finrep/d-Regions-be/2008-01-01" xmlns:d-sc-be="http://www.c-ebs.org/eu/fr/esrs/corep/2006-07-01/d-sc-be-2006-07-01" xmlns:ifrs-gp="http://xbrl.iasb.org/int/fr/ifrs/gp/2006-08-15" xmlns:iso4217="http://www.xbrl.org/2003/iso4217" xmlns:link="http://www.xbrl.org/2003/linkbase" xmlns:p-FINREP="http://www.c-ebs.org/eu/fr/esrs/finrep/p-FINREP/2008-01-01" xmlns:xbrldi="http://xbrl.org/2006/xbrldi" xmlns:xbrli="http://www.xbrl.org/2003/instance" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <link:schemaRef xlink:type="simple" xlink:href="http://www.c-ebs.org/eu/fr/esrs/finrep/t-FINREP-be/BalanceSheet/2008-01-01/t-FINREP-be-2008-01-01-T01-BalanceSheet.xsd"/> ... </xbrl>
The first element shown in the above example is the link:schemaRef element, which indicates the entry point for the XBRL taxonomy in scope for this instance document. In the example above, the relevant taxonomy entry point is "t-FINREP-be-2008-01-01-T01-BalanceSheet.xsd" (corresponding to the Balance Sheet table of the Belgian Finrep report). If this instance document is to be tested for XBRL validity, it will be according to this XBRL taxonomy.
Contexts and units
After these first general elements, the contexts and units are defined. Contexts give additional information to reported data, like: Related timing of the reported data. This can be a period (duration) or a moment of time (instant). Identification of the reporting entity Dimensional information. If the reported data is linked to a combination of a primary concept and dimensional values, the dimensional definition will be included in the context Units indicate in what metric the reported data is expressed. This can be a currency, as is the case in the example below, or not.
... <context id="I-2007-12-Belgium"> <entity> <identifier scheme="http://www.swift.com">TESTST04</identifier> </entity> <period> <instant>2007-12-31</instant> </period> <scenario> <xbrldi:explicitMember dimension="d-Regions-be:ByRegionsDimension">d-Regions-be:Belgium</xbrldi:explicitMember> <xbrldi:explicitMember dimension="d-sc-be:ScopeDimension">d-sc-be:Consolidated</xbrldi:explicitMember> </scenario> </context> <context id="I-2007-12-OtherEMU"> <entity> <identifier scheme="http://www.swift.com">TESTST04</identifier> </entity> <period> <instant>2007-12-31</instant> </period> <scenario> <xbrldi:explicitMember dimension="d-Regions-be:ByRegionsDimension">d-Regions-be:OtherEMU</xbrldi:explicitMember> <xbrldi:explicitMember dimension="d-sc-be:ScopeDimension">d-sc-be:Consolidated</xbrldi:explicitMember> </scenario> </context> <context id="I-2007-12-RestOfTheWorld"> <entity> <identifier scheme="http://www.swift.com">TESTST04</identifier> </entity> <period> <instant>2007-12-31</instant> </period> <scenario> <xbrldi:explicitMember dimension="d-Regions-be:ByRegionsDimension">d-Regions-be:RestOfTheWorld</xbrldi:explicitMember> <xbrldi:explicitMember dimension="d-sc-be:ScopeDimension">d-sc-be:Consolidated</xbrldi:explicitMember> </scenario> </context> <unit id="U-Monetary"> <measure>iso4217:EUR</measure> </unit> ...
In the example above, 3 contexts are defined, with the following id's:
- I-2007-12-Belgium
- I-2007-12-OtherEMU
- I-2007-12-RestOfTheWorld
All three contain dimensional information regarding two XBRL dimensions: ScopeDimension and ByRegionsDimension. One unit is defined (U-Monetary), indicating the use of the EURO currency.
Facts and primary concepts
The most important elements of an XBRL instance document are the reported data, also called facts. Data from a report is represented via the use of a combination of primary concept and contextual information:
<ifrs-gp:CashAndBalancesWithCentralBanks contextRef="I-2007-12-Belgium" decimals="2" unitRef="U-Monetary">2970321000</ifrs-gp:CashAndBalancesWithCentralBanks> <ifrs-gp:CashAndBalancesWithCentralBanks contextRef="I-2007-12-OtherEMU" decimals="2" unitRef="U-Monetary">709174000</ifrs-gp:CashAndBalancesWithCentralBanks> <ifrs-gp:CashAndBalancesWithCentralBanks contextRef="I-2007-12-RestOfTheWorld" decimals="2" unitRef="U-Monetary">753252607</ifrs-gp:CashAndBalancesWithCentralBanks> <ifrs-gp:FinancialAssetsHeldForTradingTotal contextRef="I-2007-12-Belgium" decimals="2" unitRef="U-Monetary">4601911527</ifrs-gp:FinancialAssetsHeldForTradingTotal> <ifrs-gp:FinancialAssetsHeldForTradingTotal contextRef="I-2007-12-OtherEMU" decimals="2" unitRef="U-Monetary">29760434449</ifrs-gp:FinancialAssetsHeldForTradingTotal> <ifrs-gp:FinancialAssetsHeldForTradingTotal contextRef="I-2007-12-RestOfTheWorld" decimals="2" unitRef="U-Monetary">23396601036</ifrs-gp:FinancialAssetsHeldForTradingTotal> <ifrs-gp:FinancialAssetsDesignatedAsFairValueThroughProfitOrLossTotal contextRef="I-2007-12-Belgium" decimals="2" unitRef="U-Monetary">1364964840</ifrs-gp:FinancialAssetsDesignatedAsFairValueThroughProfitOrLossTotal> <ifrs-gp:FinancialAssetsDesignatedAsFairValueThroughProfitOrLossTotal contextRef="I-2007-12-OtherEMU" decimals="2" unitRef="U-Monetary">231126000</ifrs-gp:FinancialAssetsDesignatedAsFairValueThroughProfitOrLossTotal> <ifrs-gp:FinancialAssetsDesignatedAsFairValueThroughProfitOrLossTotal contextRef="I-2007-12-RestOfTheWorld" decimals="2" unitRef="U-Monetary">1594727199</ifrs-gp:FinancialAssetsDesignatedAsFairValueThroughProfitOrLossTotal> <ifrs-gp:AvailableForSaleFinancialAssetsTotal contextRef="I-2007-12-Belgium" decimals="2" unitRef="U-Monetary">17399874637</ifrs-gp:AvailableForSaleFinancialAssetsTotal> <ifrs-gp:AvailableForSaleFinancialAssetsTotal contextRef="I-2007-12-OtherEMU" decimals="2" unitRef="U-Monetary">29728469000</ifrs-gp:AvailableForSaleFinancialAssetsTotal> <ifrs-gp:AvailableForSaleFinancialAssetsTotal contextRef="I-2007-12-RestOfTheWorld" decimals="2" unitRef="U-Monetary">5565266331</ifrs-gp:AvailableForSaleFinancialAssetsTotal> <ifrs-gp:LoansAndReceivablesTotal contextRef="I-2007-12-Belgium" decimals="2" unitRef="U-Monetary">81536712304</ifrs-gp:LoansAndReceivablesTotal> <ifrs-gp:LoansAndReceivablesTotal contextRef="I-2007-12-OtherEMU" decimals="2" unitRef="U-Monetary">54521384945</ifrs-gp:LoansAndReceivablesTotal> <ifrs-gp:LoansAndReceivablesTotal contextRef="I-2007-12-RestOfTheWorld" decimals="2" unitRef="U-Monetary">35605182080</ifrs-gp:LoansAndReceivablesTotal> <ifrs-gp:HeldToMaturityInvestmentsTotal contextRef="I-2007-12-Belgium" decimals="2" unitRef="U-Monetary">345118000</ifrs-gp:HeldToMaturityInvestmentsTotal> <ifrs-gp:HeldToMaturityInvestmentsTotal contextRef="I-2007-12-OtherEMU" decimals="2" unitRef="U-Monetary">2503013000</ifrs-gp:HeldToMaturityInvestmentsTotal> <ifrs-gp:HeldToMaturityInvestmentsTotal contextRef="I-2007-12-RestOfTheWorld" decimals="2" unitRef="U-Monetary">162337689</ifrs-gp:HeldToMaturityInvestmentsTotal> <ifrs-gp:HedgingAssetsTotal contextRef="I-2007-12-Belgium" decimals="2" unitRef="U-Monetary">5977474</ifrs-gp:HedgingAssetsTotal> <ifrs-gp:HedgingAssetsTotal contextRef="I-2007-12-OtherEMU" decimals="2" unitRef="U-Monetary">145571284</ifrs-gp:HedgingAssetsTotal> <ifrs-gp:HedgingAssetsTotal contextRef="I-2007-12-RestOfTheWorld" decimals="2" unitRef="U-Monetary">178358452</ifrs-gp:HedgingAssetsTotal> </xbrl>
All the information which was defined previously is used in this part. Namespaces are used for precise element definitions of the primary concepts. Contexts and units are used to give contextual information to the reported numbers.
The instace document ends with the closing tag of the main <xbrl> root node.
Validation of XBRL reports
One of the fundamental processes of information handling within XBRL is the validation of instance documents. The goal of the validation process is the ensure consistency of the reported information according to the different rules imposed by the XBRL standard and by the XBRL taxonomy in scope.
The validation process contains the following steps:
- XML validation: an XBRL document must be a well-formed XML document
- XML Schema validation: an XBRL document must be valid according the Schema defined by the taxonomy (its structure, data types, etc.)
- XBRL validation structure. Some rules which are not covered by the taxonomy's schema validation are defined by the XBRL specification. For example, a monetary concept must be accompanied by a unit.
- Validation rules: an XBRL taxonomy can contain certain restrictions defined within the taxonomy linkbases (such as the calculation linkbase).
- Dimensional validation: reported information needs to be adapted to the dimensional constraints imposed by the taxonomy. A dimension my not take values that are nit in the domain, or a metric may not be reported for an invalid combination of dimensions
- Formula validation: if the taxonomy contains XBRL formulas, the reported information may be assessed according to the formulas defined in the taxonomy
All these validation steps are generally executed by specific XBRL software.
Bibliography
- [1] :xxx
- [2] :xxx