Introduction of XBRL Taxonomy Creation
The purpose of this class is to help people understand and create XBRL taxonomies. An XBRL taxonomy is somewhat of a “vocabulary” or “dictionary” which describes data contained in an XBRL instance document. An XBRL Instance document is somewhat of a “database” of financial statement information issued by an entity.
This material is intended for “semi-technical” audiences with some technical participants and some non-technical participants. The technical audiences should be using the XBRL technical specification for definitive answers to any issues. If there is any conflict between the technical specification and this information, clearly the technical specification is definitive source of information.
This information is intended for:
a) Technical developers who desire to get the “big picture” of XBRL.
b) Anyone else who desires to obtain a “big picture” understanding of XBRL.
c) Non-technical domain experts who need to talk to technical developers about XBRL.
d) Semi-technical accountants who wish to act as consultants, working with technical developers to build XBRL based solutions.
e) Semi-technical and non-technical domain experts who wish to build taxonomies.
Objectives
The objectives this material is to provide the user with the following:
a) An understanding of the information contained in the XBRL specification for creating taxonomies.
b) A general understanding of XML Schema.
c) A general understanding of XBRL instance documents.
d) The ability to thoroughly understand the CI taxonomy, which will provide insight as to how to create other XBRL taxonomies.
e) The ability to create common taxonomy components or “patterns”.
f) The ability to reverse engineer the CI taxonomy components in order to figure out how to create the more complicated taxonomy components for taxonomy you is creating.
g) Provide you with an understanding of the best practices you should consider using when building taxonomy.
h) Teach you how to use the XBRL Taxonomy Builder to assist you in creating taxonomies.
XML 101
Overview
XML is a general specification for creating computer markup languages. XML has its roots in SGML which was developed in 1986.
XML is:
a) A self-describing, extensible (extendable), messaging format which can be used for many different things.
b) A universally agreed upon way of doing things one-way, which are currently being done in 100s of different ways.
c) Turns information from a “blob” of meaningless text into a “database” of identifiable and accessible information.
d) A technology that is fundamentally changing the Internet and computer software.
Sample
The following is a sample of XML:
New York
NY
12345
1
Blue Sled
22.00 1
Red Wagon
43.00
The following is another sample of XML, which is constructed using XBRL:
June 19,1998
Namespaces and Qnames (Qualified Names)
Namespaces are important concepts to understand in XML and XBRL. This is a very powerful feature which is not well explained and not fully implemented; it seems, by the W3C.
Namespaces
Namespaces basically solve the problem of two groups creating different taxonomies but use the same name within that taxonomy. When a namespace is added to an element, it makes that element unique, even when mixed with another taxonomy which has the same name. For example,
Example Explanation
P is used by HTML and could be used by other taxonomies
Namespace identifies that this is an html paragraph.
The following is sample syntax on how to indicate the namespace prefix for a namespace:
Qnames (Qualified Names)
Namespaces are also valid to use within the value of text. When you do so, you create what is called a qualified name. A qualified name or Qname is an element value which has a namespace within it. For example: Within this fragment, “NASDAQ:GPSI” is the value of the entity attribute. The “NASDAQ:” makes this value a Qname. “NASDAQ” is the value of the namespace prefix. The namespace prefix used in Qnames must be defined as a namespace prior to being used in the document, within an element or parent of the element containing the namespace prefix.
Other Important Terms
The following are some basic terms you should understand when working with XML:
a) Element
b) Attribute
c) Parent
d) Child
e) Node
f) Valid
g) DTD/XML Schema
h) Well-formed
Understanding Camel Case
Camel case is a widely accepted standard syntax for expressing XML and other things like programming code, database fields, etc. Camel case is widely used in Visual Basic, C++, and Java programming. XBRL specifies that XBRL syntax must be camel Case. XML is case sensitive. Rather than have some people represent information like “THIS_OR_THAT”, and others like “This or that”, and others like “thisorthat”, we will all agree to express it like, “thisOrThat”.
Note that XML is case sensitive. ThisOrThat, thisorthat, and THISORTHAT are different names to an XML parser.
In summary, the rules for Camel Case as used in XBRL are as follows:
a) All words begin with lower case
b) The first letter of each new word is capitalized
c) The “_” (underscore) or the “-“ is not used to separate words, capitalization is.
Examples of Camel Case:
a) cashAndMarketableSecurities
b) nowIsTheTimeForAllGoodMenToComeToTheAidOfTheirCountry
The author is a tax domain consultant for the couple of years. He is currently writing about different aspects of XBRL Software, Office Management Software and Online TDS Software