Copyright © 2014, 2015 XBRL International Inc., All Rights Reserved.
Circulation of this Recommendation is unrestricted. This document is normative. Recipients are invited to submit comments to firstname.lastname@example.org, and to submit notification of any relevant patent rights of which they are aware and provide supporting documentation.
This document describes the technical architecture of journal focussed taxonomies using the Extensible Business Reporting Language [XBRL] – commonly known as XBRL GL. The recommended architecture establishes rules and conventions that assist in comprehension, usage and performance among different journal focussed taxonomies.
This document assumes use of the XBRL 2.1 Specification.
1 Language independence
2.1 Scope of the architecture
2.2 Terminology and document conventions
3 The structure of the GL Taxonomy Framework
3.4 Content Models
3.5 Control over the modification of content models
3.5.1 Modification prohibited at any level
3.5.2 Modification permitted only by authors of new modules
3.5.3 Modification permitted by taxonomy extenders
3.6 Directory structure
4 How to create extensions within the GL Taxonomy Framework
4.1 Public extensions
4.2 Private extensions
1 A non-normative example
2 A non-normative counterexample
3 "Palette" schema (gl-plt-2015-03-25.xsd) that imports the COR schema
4 Fragment of the COR schema (gl-cor-content-2015-03-25.xsd) that contains content model declarations and imports the BUS, MUC and USK module schemas
5 Fragment of the COR schema (gl-cor-2015-03-25.xsd) that contains the element declarations
6 Fragment of the COR schema (gl-cor-content-2015-03-25.xsd) that contains content model declarations and imports only the BUS module schema
7 entryDetail content model declaration in the COR schema (gl-cor-content-2015-03-25.xsd) that does not reference any other modules
8 entryDetail content model declaration in the COR schema (gl-cor-content-2015-03-25.xsd) that references the BUS module
9 entryDetail content model declaration in the COR schema (gl-cor-content-2015-03-25.xsd) that references the BUS and MUC modules
The official language of XBRL International's own work products is English and the preferred spelling convention is UK English.
This document defines the technical architecture of the XBRL GL taxonomy. It is strictly limited to aspect related to the organisation of the technical artefacts (schemas, linkbases etc.) and does not address any issues related to how the concepts defined in the taxonomy should be used or applied.
Terminology used in XBRL frequently overlaps with terminology from other fields.
|Architecture||“The fundamental organization of a system embodied by its components, their relationships to each other and to the environment and the principles guiding its design and evolution. This definition may just as usefully be applied to technical architecture” [IEEE]. This document describes in the form of design rules the organization of journal-focussed reporting taxonomies embodied by schemas, linkbases, concepts, links, and other components, their relationships to each other and to financial reporting standards, and principles that justify the design rules both for base taxonomies and for the extensions that will inevitably follow. Contrast this with the IEEE definition of Software Engineering: “A systematic approach to developing, using, maintaining and liquidating systems;” this document does not cover approaches to development, use, maintenance or liquidation of taxonomies.|
|abstract element, ancestor, base set, bind, child, concept, concrete element, context, duplicate items, duplicate tuples, element, entity, essence concept, fact, fully conforming, instance, item, least common ancestor, linkbase, minimally conforming, parent, period, sibling, taxonomy, taxonomy schema, tuple, unit||As defined in XBRL 2.1 specification.|
|MUST, MUST NOT, REQUIRED, SHALL, SHALL NOT, SHOULD, SHOULD NOT, MAY, OPTIONAL||See [RFC2119] for definitions of these and other terms. These include, in particular: SHOULD Conforming documents and applications are encouraged to behave as described. MUST Conforming documents and consuming applications are required to behave as described; otherwise they are in error.|
|DTS||Discoverable Taxonomy Set As defined in XBRL 2.1 specification [XBRL].|
|base DTS/extension DTS||An extension DTS is a DTS that is a proper superset of a base DTS. Because an extension must be a proper superset, a DTS is not an extension of itself.|
|extended-type link||As defined by the XML Linking Language [XLINK]. XBRL linkbases are made up of extended-type links.|
|GLTFTA||GL Taxonomy Framework Technical Architecture: the set of rules described in this document.|
|LRR||Link Role Registry. An online listing of XLink role and arc role attribute values that MAY appear in XBRL International acknowledged and approved taxonomies, along with structured information about their purpose, usage, and any intended impact on XBRL instance validation [LRR].|
|Module||An XBRL International recommendation that depends on XBRL and defines the syntax and semantics of additional elements, attributes, roles or arc roles that cannot be defined entirely within an XBRL valid taxonomy.|
|Persisting DTS (persisting extension)||A DTS whose purpose is to be stored as files to be referenced by instances of multiple entities and published in some fashion for users to examine. This contrasts with a DTS that is ephemeral—for example, dynamically created while processing instances, only to be discarded.|
|source||The source of an arc is the element indicated by the “from” attribute.|
|target||The target of an arc is the element indicated by the “to” attribute.|
|Taxonomy status: Acknowledged/Approved/Recommended||This is non normative; see the Taxonomy Recognition Process [TRP]: Acknowledged: XBRL International recognizes that the taxonomy is technically in compliance with all appropriate specifications. Approved: In addition to being Acknowledged, XBRL International warrants that the taxonomy was developed in an open fashion and it complies with all best practices for compatibility. Recommended: In addition to being approved, XBRL International singles out a Recommended taxonomy as being the one preferred for a given type of reporting. Financial reporting taxonomies are not expected to achieve this status from XBRL International since it is not the custodian of the financial reporting standards themselves.|
|version control||A version control system maintains an organized set of all the versions of files that are made over time. Version control systems allow people to go back to previous revisions of individual files, and to compare any two revisions to view the changes between them.|
|XBRL||XBRL 2.1 Recommendation, with corrected errata to 2008-07-02 [XBRL].|
|XBRL valid||XML instances and schemas that satisfy the syntax requirements of XBRL.|
The following highlighting is used for non-normative examples in this document:
Text of the non-normative example.
The following highlighting is used for non-normative counterexamples in this document:
Text of the non-normative counterexample.
Italics are used for rhetorical emphasis only and do not convey any special normative meaning.
The XBRL GL taxonomy framework has been designed to support all the constructs that were provided by the XBRL 2.0 and 2.0a compliant versions of the taxonomy but using the 2.1 version of the XBRL Specification [XBRL]. XBRL GL requires a highly tuple based taxonomy architecture. The way in which XBRL 2.1 supports this is significantly different from that in which XBRL 2.0 and 2.0a supports it. In the previous versions of the specification the content model of tuples was defined by means of constructs in the definition linkbase. In version 2.1 the XML Schema [SCHEMA-1] content modelling mechanism is employed for this purpose. This creates a new challenge when it comes to extensibility of a tuple’s content model since such extensibility is not well supported in XML Schema and thus an architecture that permits this is necessary.
The architecture employed to support the requirements stated in the previous section requires a set of interrelated schema documents that when assembled or compiled together form, with the associated linkbases, of course, an XBRL taxonomy. Diagrammatically this can be represented thus:
Each box in the above diagram represents one schema file. This framework allows for the element declarations of the elements in each module of the framework to remain fixed but the content models to be extensible. The element declaration schema files are not valid schemas in their own right but are included (by means of an <include>) in the content model declaration files which, together, form a valid schema. The various content model files also import (by means of an <import>) other namespaces as appropriate where they need to in order to reference elements from those namespaces.
Tying it all together is a “palette” schema (marked XBRL GL in ) that does nothing more than <import> the appropriate version of the GL-COR schema for the application for which this is being used.
To better understand this consider two examples presented here side by side:
The first (leftmost) of these shows how a taxonomy that uses elements from four modules (COR, MUC, BUS and USK) is compiled: the second (rightmost) shows how a taxonomy that uses elements from just two of the modules (COR and BUS) is compiled.
The naming convention is that the schema files that contain the content model declarations are named gl-cor-content-2015-03-25.xsd, gl-muc-content-2015-03-25.xsd etc., those that contain the element declarations are named gl-cor-2015-03-25.xsd, gl-muc-xsd etc. The file containing the “palette” schema is gl-plt-2015-03-25.xsd
Some XML code fragments might make this clearer.
Example 4: Fragment of the COR schema (gl-cor-content-2015-03-25.xsd) that contains content model declarations and imports the BUS, MUC and USK module schemas
Note that in Example 4 there is an <include> that brings in the element definitions for the elements whose content models are defined in this schema.
Example 5: Fragment of the COR schema (gl-cor-2015-03-25.xsd) that contains the element declarations
Note that in Example 5 the references to the relevant linkbases (presentation and label) are present since they are independent of the content model for the elements. Only the element declarations are present - there is no content model defined for the elements. As a consequence, this schema file is not a valid schema in its own right – it is simply a necessary part of the whole schema for the COR namespace that gets incorporated into the complete namespace definition as a result of being <include>d as in Example 4 and Example 6.
The <import> of the namespace http://www.xbrl.org/int/gl/gen/2015-03-25 defined in gl-gen-2015-03-25.xsd should be noted here. This contains type definitions that are used in various modules and which MUST NOT be altered by anyone extending the taxonomy (see Section 3.5 for further explanation).
Example 6: Fragment of the COR schema (gl-cor-content-2015-03-25.xsd) that contains content model declarations and imports only the BUS module schema
This section enumerates and describes the namespaces used in the GL Taxonomy Framework. Except where indicated these namespaces will be modified by those extending the taxonomy if they need to extend the content models of elements declared in those namespaces. The rules governing what types of modifications are permitted are given in Section 4 below.
|http://www.xbrl.org/int/gl/gen/2015-03-25||gl-gen||Defined in gl-gen-2015-03-25.xsd. This namespace contains type definitions that MUST NOT be changed by anyone extending the taxonomy. No elements are defined in this namespace.|
|http://www.xbrl.org/int/gl/bus/2015-03-25||gl-bus||Defined in gl-bus-2015-03-25.xsd and gl bus-content-2015-03-25.xsd. This namespace contains element declarations and content model definitions that are relevant to the BUS module of the XBRL GL taxonomy.|
|http://www.xbrl.org/int/gl/cor/2015-03-25||gl-cor||Defined in gl-cor-2015-03-25.xsd and gl cor-content-2015-03-25.xsd. This namespace contains element declarations and content model definitions that are relevant to the COR module of the XBRL GL taxonomy.|
|http://www.xbrl.org/int/gl/muc/2015-03-25||gl-muc||Defined in gl-muc-2015-03-25.xsd and gl muc-content-2015-03-25.xsd. This namespace contains element declarations and content model definitions that are relevant to the MUC module of the XBRL GL taxonomy.|
|http://www.xbrl.org/int/gl/plt/2015-03-25||gl-plt||Defined in gl-plt-2015-03-25.xsd. This is the targetNamespace of the palette taxonomy defined in gl-plt-2015-03-25.xsd. There are no elements of types defined in this namespace and, as such, it does not serve any particular purpose except to provide a targetNamespace for the palette schema document.|
|http://www.xbrl.org/gl/int/taf/2015-03-25||gl-taf||Defined in gl-taf-2015-03-25.xsd and gl taf-content-2015-03-25.xsd. This namespace contains element declarations and content model definitions that are relevant to the TAF module of the XBRL GL taxonomy.|
|http://www.xbrl.org/int/gl/usk/2015-03-25||gl-usk||Defined in gl-usk-2015-03-25.xsd and gl usk-content-2015-03-25.xsd. This namespace contains element declarations and content model definitions that are relevant to the USK module of the XBRL GL taxonomy.|
|http://www.xbrl.org/gl/int/srcd/2015-03-25||gl-srcd||Defined in gl-srcd-2015-03-25.xsd and gl-srcd-content-2015-03-25.xsd. This namespace contains element declarations and content model definitions that are relevant to the Summary Reporting Contextual Data (SRCD) module of the XBRL GL taxonomy.|
The schema files that contain the content models (gl-cor-content-2015-03-25.xsd etc.) will differ depending on which modules are in use for the specific application. The differences are in which other namespaces are <import>ed and in the content models themselves. The content models are defined in type declarations and the set of type declarations will not change (as they are simply the types for the elements that are declared in the element declaration schema files and those do not change), only the actual content models themselves will change.
The following 3 examples show how one complex type declaration (
entryDetailComplexType, which defines the content model for the
<gl-cor:entryDetail> element) varies depending on which modules are in use.
Example 7: entryDetail content model declaration in the COR schema (gl-cor-content-2015-03-25.xsd) that does not reference any other modules
Example 8: entryDetail content model declaration in the COR schema (gl-cor-content-2015-03-25.xsd) that references the BUS module
Note the inclusion of references to element declarations in the gl-bus namespace in Example 8.
Example 9: entryDetail content model declaration in the COR schema (gl-cor-content-2015-03-25.xsd) that references the BUS and MUC modules
Note the inclusion of references to element declarations in both the gl-bus and the gl-muc namespaces in Example 9.
The architecture described here provides different levels of control over the ability of those who may wish to extend the base taxonomy in how they may or may not modify content models. There are three levels of control that naturally result from this architecture as follows:
There are a few content models (which are defined as XML Schema types. e.g. documentTypeItemType) of general utility which are unchangeable by anyone who wishes to extend the taxonomy. These are defined in the schema file gl-gen-2015-03-25.xsd in the namespace http://www.xbrl.org/int/gl/gen/2015-03-25. Since they are defined here they MUST NOT be modified by anyone extending the taxonomy. By being included in this namespace these types become available for use unmodified throughout the entire taxonomy.
Some content models are not of general utility but are specific to particular modules. However, the author of the module may wish to prevent their being altered by anyone further extending the taxonomy or adding a new module. In this case they can be defined in the element definition schema relevant to that module (e.g. gl-xxx-2015-03-25.xsd for the XXX module) rather than in the content module schema (e.g. gl-xxx-content-2015-03-25.xsd for the XXX module). Since they are defined here they MUST NOT be modified by anyone extending the taxonomy. By being included in this namespace these types become available for use unmodified in any extension that references the module in question.
In many cases the content models of both items and tuples may be such that the taxonomy author anticipates they will need to be modified as part of some taxonomy extension performed by someone else. Typical situations of this kind would be the addition of new possibilities to an enumerated list or modifications of the content model of a tuple such as those exemplified in Section 3 above. In this case the type declaration that defines the content model will be placed in the relevant gl xxx content-2015-03-25.xsd file which MAY be modified by anyone extending the taxonomy provided they follow the rules for extending taxonomies defined in Section 4 below.
shows the folder structure for the GL Taxonomy Framework. It is important to maintain this structure and to follow its pattern when extending the taxonomy so as to be able to resolve relative references to the various components of the taxonomy. The 7 folders (bus, cor, gen, muc, taf, usk and srcd) each contain 3 files (except for gen where there is only the schema file) named gl-xxx-2015-03-25.xsd, gl-xxx-2015-03-25-label.xml and gl xxx-2015-03-25 presentation.xml where xxx is the same 3 characters as the name of the folder itself. These files are the element declarations (and unchangeable content model declarations if any) and the label and presentation linkbase for the module XXX. The bus, cor, muc, taf, usk and srcd folders contain a lang folder where the labels in different languages are located. The file name for the English label linkbase is gl-xxx-2015-03-25-label.xml; additional languages are named gl-xxx-2015-03-25-label-yy.xml where yy is the prefix that identifies each language.
Under the plt folder are a series of sub-folders each named case followed by a series of single characters separated by a “-”. The single characters are used to identify which modules are brought together to form a complete taxonomy. Which one of these to use (i.e. which combination of modules) will be determined by the functionality that is required by the user of the taxonomy. In each of these sub folders are the file gl-plt-2015-03-25.xsd and a set of content model schema files named gl-xxx-content-2015-03-25.xsd (where xxx is the 3 character code for the module in question). Thus, for example, the files in the case-c-b-m folder are gl-plt-2015-03-25.xsd, gl-cor-content-2015-03-25.xsd, gl-bus-content-2015-03-25.xsd, and gl-muc-content-2015-03-25.xsd.
The mechanism for creating extensions within this framework, while utilising the extensibility features built into the XBRL Specification, requires additional steps from those normally followed when creating extensions to monolithic taxonomies because of the modular nature and compilation based architecture employed. As such, taxonomy building software tools MAY implement assistance for this workflow to assist those seeking to create extensions. If support is not built into such tools then a manual process using XML (or simply text) editing software will be necessary.
As experience is gained with building such extensions and with the use of this taxonomy in general, a set of rules and restrictions related to the building of extensions will become apparent and will be codified either in this document or elsewhere (still to be determined).
A public extension is a new module that is intended to be incorporated into the published framework and become part of that framework. It will typically be created by XBRL International although, since it is anticipated that other organisations might seek to create such extensions and submit them to XBRL International for inclusion in the framework, the process is documented here.
The steps involved in creating a public extension are as follows (note that in the following xxx is the 3 character code for the module being created, yyyy-mm-dd is the desired publication date for the module):
A private extension is one that is for use in a closed system and not published generally. Different mechanisms, rules and restrictions apply than for public extensions. Those seeking to create private extensions should follow the usual XBRL extension process with the following points to note:
This document and translations of it may be copied and furnished to others, and derivative works that comment on or otherwise explain it or assist in its implementation may be prepared, copied, published and distributed, in whole or in part, without restriction of any kind, provided that the above copyright notice and this paragraph are included on all such copies and derivative works. However, this document itself may not be modified in any way, such as by removing the copyright notice or references to XBRL International or XBRL organizations, except as required to translate it into languages other than English. Members of XBRL International agree to grant certain licenses under the XBRL International Intellectual Property Policy ( www.xbrl.org/legal ).
This document and the information contained herein is provided on an "AS IS" basis and XBRL INTERNATIONAL DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
The attention of users of this document is directed to the possibility that compliance with or adoption of XBRL International specifications may require use of an invention covered by patent rights. XBRL International shall not be responsible for identifying patents for which a license may be required by any XBRL International specification, or for conducting legal inquiries into the legal validity or scope of those patents that are brought to its attention. XBRL International specifications are prospective and advisory only. Prospective users are responsible for protecting themselves against liability for infringement of patents. XBRL International takes no position regarding the validity or scope of any intellectual property or other rights that might be claimed to pertain to the implementation or use of the technology described in this document or the extent to which any license under such rights might or might not be available; neither does it represent that it has made any effort to identify any such rights. Members of XBRL International agree to grant certain licenses under the XBRL International Intellectual Property Policy ( www.xbrl.org/legal ).
|16 July 2014||Gianluca Garbellotto||
New version to reflect 2014 version of XBRL GL framework.
|25 March 2015||Gianluca Garbellotto||
Published as recommendation.
This appendix contains a list of the errata that have been incorporated into this document. This represents all those errata corrections that have been approved by the XBRL International XBRL GL Working Group up to and including 25 March 2015 . Hyperlinks to relevant e-mail threads may be followed only by those who have access to the relevant mailing lists. Access to internal XBRL mailing lists is restricted to members of XBRL International Inc.
No errata have been incorporated into this document.