You are on page 1of 46

XBRL Taxonomy Creation

TRAINING CLASS (Work in Progress)

Authors: Charles Hoffman, CPA, MBA, XBRL Solutions, Inc. July 2000 - XBRL Solutions, Inc. All rights reserved.
No part of this document may be reproduced or transmitted in any form or by any means, electronic or mechanical, for any purpose, without the express written permission of the authors.

Revised September 6, 2000

XBRL Taxonomy Creation

XBRL Solutions, Inc.

Table of Contents
1
1.1 1.2

INTRODUCTION..........................................................................................................................5 Overview .....................................................................................................................................5 Objectives ...................................................................................................................................5 XML 101.........................................................................................................................................6


2.1 2.2 2.3 2.4 2.5 2.6

Overview .....................................................................................................................................6 Sample ........................................................................................................................................6 Namespaces and Qnames (Qualified Names) ...............................................................................7 Other Important Terms ................................................................................................................7 Understanding Camel Case .........................................................................................................8 Where to Learn More about XML ................................................................................................8 XML SCHEMA 101.......................................................................................................................9

3
3.1 3.2 3.3 3.4

Overview .....................................................................................................................................9 XML Schema Specification..........................................................................................................9 Sample ........................................................................................................................................9 XML Schema Elements ..............................................................................................................10 XBRL 101.....................................................................................................................................11

4
4.1 4.2 4.3 4.4 4.5 4.6

Overview ...................................................................................................................................11 Instance Documents ..................................................................................................................11 Taxonomy Documents................................................................................................................11 Other Technical Stuff ............................................................................................................11 Graphic.....................................................................................................................................12 Sample ......................................................................................................................................12 UNDERSTANDING INSTANCE DOCUMENTS ......................................................................14

5
5.1 5.2 5.3

Overview ...................................................................................................................................14 Elements of Instance Document.................................................................................................14 Issues ........................................................................................................................................15 UNDERSTANDING THE SPECIFICATION FOR TAXONOMIES ........................................16

6
6.1 6.2 6.3 6.4 6.5

Overview ...................................................................................................................................16 Understanding the Elements and Attributes, Building Blocks of the taxonomy.......................16 Adding Custom Elements...........................................................................................................20 Import Element..........................................................................................................................21 More on Parent-Child Relationship...........................................................................................21 UNDERSTANDING THE CI TAXONOMY ..............................................................................22

7
7.1 7.2 7.3 7.4 7.5

Overview ...................................................................................................................................22 Printout of Taxonomy ................................................................................................................22 XSD File ...................................................................................................................................22 Exploring the CI Taxonomy.......................................................................................................22 Identified Patterns.....................................................................................................................24 PROBLEMS YOU WILL ENCOUNTER...................................................................................25

8
8.1 8.2

Deep Nesting Creates Duplicate Names ....................................................................................25 Name Length .............................................................................................................................25

XBRL Taxonomy Creation

XBRL Solutions, Inc.

8.3 8.4

Multiple lists of items ................................................................................................................25 Copying the CI taxonomy ..........................................................................................................25 BEST PRACTICES......................................................................................................................26

9
9.1 9.2 9.3 9.4 9.5

Overview ...................................................................................................................................26 Element Names..........................................................................................................................26 Element Labels..........................................................................................................................27 Capitalization............................................................................................................................27 General .....................................................................................................................................27 CREATING CUSTOM TAXONOMIES OR EXTENDING A TAXONOMY..........................28

10

10.1 10.2 10.3 10.4

Overview...............................................................................................................................28 Hooking two or more Taxonomies together ...........................................................................28 How it works and how to do it ...............................................................................................28 Example................................................................................................................................28

11

BUILDING XBRL TAXONOMIES............................................................................................29


11.1 11.2 11.3 11.4

Overview...............................................................................................................................29 Overview of Steps .................................................................................................................29 Example: How the CI taxonomy was built ............................................................................29 What expertise you will need to build a taxonomy .................................................................30

12

LAB 1: BUILDING A TAXONOMY ELEMENT BY HAND ..................................................32


12.1 12.2

Overview...............................................................................................................................32 Instructions...........................................................................................................................32

13

LAB 2: MODIFYING A CUSTOM TAXONOMY ...................................................................33


13.1 13.2

Overview...............................................................................................................................33 Instructions...........................................................................................................................33

14

USING THE XBRL TAXONOMY BUILDER...........................................................................34


14.1 14.2 14.3 14.4 14.5 14.6 14.7

Overview...............................................................................................................................34 Bug Warnings and Application Limitations ...........................................................................35 Main Menu ...........................................................................................................................35 Build.....................................................................................................................................35 Detailed Information.............................................................................................................37 Export...................................................................................................................................38 Setup/Maintenance ...............................................................................................................38

15

BUILDING THE TAXONOMY..................................................................................................40


15.1 15.2 15.3 15.4 15.5 15.6 15.7 15.8

Editing Elements...................................................................................................................40 Adding Elements...................................................................................................................40 Deleting Elements.................................................................................................................40 Changing Parenting Elements...............................................................................................40 Checking for Errors ..............................................................................................................40 Viewing the Tree Structure....................................................................................................41 Printing the Taxonomy..........................................................................................................41 Building Issues......................................................................................................................41

16

IMPORTING TAXONOMY ELEMENTS (RATHER THAN KEYING IN) ...........................42


16.1 16.2

Overview...............................................................................................................................42 Starting From Scratch...........................................................................................................43

XBRL Taxonomy Creation

XBRL Solutions, Inc.

17 LAB 3 : BUILDING TAXONOMY ELEMENTS USING THE XBRL TAXONOMY BUILDER..............................................................................................................................................44


17.1 17.2

Overview...............................................................................................................................44 Instructions...........................................................................................................................44

18

LAB 4 : STARTING FROM SCRATCH ...................................................................................45


18.1 18.2

Overview...............................................................................................................................45 Instructions...........................................................................................................................45

19

LAB 5 : IMPORTING TAXONOMY ELEMENTS..................................................................46


19.1 19.2

Overview...............................................................................................................................46 Instructions...........................................................................................................................46

XBRL Taxonomy Creation

XBRL Solutions, Inc.

Introduction

1.1 Overview 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 some what of a database of a 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 the definitive source of information. This information is intended for, Technical developers who desire to get the big picture of XBRL. Anyone else who desires to obtain a big picture understanding of XBRL. Non-technical domain experts who need to talk to technical developers about XBRL. Semi-technical accountants who wish to act as consultants, working with technical developers to build XBRL based solutions. Semi-technical and non-technical domain experts who wish to build taxonomies.
1.2

Objectives The objectives this material is to provide the user with the following: An understanding of the information contained in the XBRL specification for creating taxonomies. A general understanding of XML Schema. A general understanding of XBRL instance documents. The ability to thoroughly understand the CI taxonomy, which will provide insight as to how to create other XBRL taxonomies. The ability to create common taxonomy components or patterns. The ability to reverse engineer the CI taxonomy components in order to figure out how to create the more complicated taxonomy components for a taxonomy you are creating. Provide you with an understanding of the best practices you should consider using when building a taxonomy. Teach you how to use the XBRL Taxonomy Builder to assist you in creating taxonomies.

XBRL Taxonomy Creation

XBRL Solutions, Inc.

XML 101

2.1 Overview XML is a general specification for creating computer markup languages. XML has its roots in SGML which was developed in 1986. A good basic explanation of XML can be found in the following Scientific American article: http://www.scientificamerican.com/1999/0599issue/0599bosak.html XML is,

A self-describing, extensible (extendable), messaging format which can be used for many different things. A universally agreed upon way of doing things one-way, which are currently being done in 100s of different ways. Turns information from a blob of meaningless text into a database of identifiable and accessible information. A technology that is fundamentally changing the Internet and computer software.
2.2 Sample The following is a sample of XML: <?xml version="1.0"?> <PurchaseOrder> <Header> <Customer> <Name> John Doe</Name> <Address>PO Box 99</Address> <City>New York</City> <State>NY</State> <ZipCode>12345</ZipCode> </Customer> </Header> <Line> <Quantity>1</Quantity> <Item>Blue Sled</Item> <Price>22.00</Price> </Line> <Line> <Quantity>1</Quantity> <Item>Red Wagon</Item> <Price>43.00</Price> </Line> </PurchaseOrder>

The following is another sample of XML, which is constructed using XBRL:


<?xml version="1.0"?> <!-- Created by XBRL Export Utility --> <group id="A1" entity="Great Plains Software, Inc." type="statement"> <group type="statements.accountantsReport"> <item type="reportDate.date">June 19,1998</item> </group> </group>

XBRL Taxonomy Creation

XBRL Solutions, Inc.

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

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,
2.3.1

Example

Explanation

<p> <html:p>

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: <group xmlns:xbrl="http://www.xbrl.org/us/us-gaap-ci-2000-07-31">

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: <group entity="NASDAQ:GPSI"> 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.
2.3.2

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:
2.4

Element Attribute Parent Child Node DTD/XML Schema Well-formed

XBRL Taxonomy Creation

XBRL Solutions, Inc.

Valid
2.5 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 camelCase. 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: All words begin with lower case The first letter of each new word is capitalized The _ (underscore) or the - is not used to separate words, capitalization is. Examples of Camel Case: cashAndMarketableSecurities nowIsTheTimeForAllGoodMenToComeToTheAidOfTheirCountry For a more detailed explanation of camel case see the BizTalk web site. The BizTalk specification has a detailed explanation of Camel Case.

Where to Learn More about XML XML will play a significant part in our future. An investment in a good general understanding of XML will be very important, particularly if you want to thoroughly understand XBRL. Below is a listing of various resources for learning more about XML:
2.6

Oasis: http://www.oasis-open.org/cover/xmlIntro.html Microsoft: http://msdn.microsoft.com/xml IBM: http://www.ibm.com/xml

XBRL Taxonomy Creation

XBRL Solutions, Inc.

XML Schema 101

3.1 Overview XML Schema is a specification for describing the structure and constraining the contents of XML documents. XML Schema will eventually replace the more commonly used way of describing XML, the DTD.

XML Schema will be a W3C Recommendation. XBRL leverages XML Schema and is intended to be 100% XML Schema compliant. The XBRL Taxonomy document is basically an XML Schema document with XML Schema extensions which contain accounting, financial, and business reporting extensions. A full discussion of XML Schema beyond the scope of this material. A general understanding of XML Schema is assumed by persons working through this material. This section does, however, highlight a few areas that are essential to a basic understanding of working with XBRL. Some things to remember about XML Schema are as follows: XML Schema is expressed in XML. (Note that DTDs are not) While DTDs are currently far more widely used that XML Schema, XML Schema is the future. XBRL Taxonomies are expressed in valid XML Schema documents.
3.2 XML Schema Specification The full XML Schema Specification can be found at:

http://www.w3.org/TR/xmlschema-0/ http://www.w3.org/TR/xmlschema-1/ http://www.w3.org/TR/xmlschema-2/ Sample The following is a sample fragment of an XML Schema document:
3.3 <?xml version="1.0" encoding="utf-8"?> <schema xmlns:xbrl="http://www.xbrl.org/core/2000 -07-31/metamodel" targetNamespace="http://www.xbrl.org/us/gaap/ci/2000 -07-31"> <import namespace=http://www.xbrl.org/core/2000 -07-31/metamodel schemaLocation="http://www.xbrl.org/core/2000 -07-31/ xbrl-meta-2000-07-31.xsd"/> <element name="statements.balanceSheet" type="string"> <annotation> <documentation>This is where a general description goes</documentation > <appinfo> <xbrl:rollup to="statements" weight="0" order="1" /> <xbrl:label xml:lang="en">Balance Sheet</xbrl:label> </appinfo> </annotation> </element>

XBRL Taxonomy Creation

XBRL Solutions, Inc.

</schema>

3.4

XML Schema Elements The following elements are defined by XML Schema and are used within the XBRL XML Schema document (xsd): schema Element The schema element is specified by the XML Schema specification and holds the elements which express the schema. The schema element is basically a container for concept definition.
3.4.1

schema targetNamespace Attribute The targetNamespace is a physical file that represents the .
3.4.2

element Element The element element describes the components of the schema. XBRL uses the element element to name accounting, financial, and business concepts.
3.4.3

annotation Element The annotation element holds human consumable and application consumable schema information. XBRL uses the annotation element to document accounting concepts.
3.4.4 3.4.5

documentation Element The annotation element holds the description of the element. appinfo Element The appinfo element holds application related information, typically read by a computer program. It also contains other descriptive information. XBRL uses the appinfo element to document information intended for use by computer software applications.
3.4.6 3.4.7

import Element The import element enables concept extensibility. It basically allows a base taxonomy to be extended with one or more additional taxonomies.

XBRL Taxonomy Creation

XBRL Solutions, Inc.

10

XBRL 101

4.1 Overview XBRL is a specification for describing business related information in XML. The XBRL specification uses the XML markup language specification to express this information.

XBRL is a framework that will allow the financial community a standards-based method to prepare, publish in a variety of formats, exchange and analyze financial reports and information among various software applications. There are two types of document which are important to understand: taxonomy documents and instance documents.
4.2

Instance Documents Instance documents contain data. An XBRL instance document contains accounting, financial or other business related data, for example a financial statement issued by a company, expressed using XBRL syntax, making use of an XBRL taxonomy.

Taxonomy Documents An XBRL taxonomy document is an XML Schema file which describes a set of concepts which are intended to be used in preparing an XBRL instance document.
4.3

Other Technical Stuff There are a few other documents which are used and are fundamental to XBRL, but they will not be discussed in detail. Be aware that they exist and explain how instance documents and taxonomy documents are to be created.
4.4

Core Schema The core schema is a DTD which describes how the XBRL instance document is to be built. A discussion of this is beyond the scope of this material. The following is the contents of the core schema DTD. The core schema can be found on the XBRL web site at http://www.xbrl.org/core/xbrl-core-2000-07-31.dtd:
4.4.1 <!ENTITY % att_AttributeHolder " id period schemaLocation scaleFactor precision type unit entity decimalPattern formatName <!ELEMENT <!ATTLIST <!ELEMENT <!ATTLIST <!ELEMENT CDATA CDATA CDATA CDATA CDATA CDATA CDATA CDATA CDATA CDATA #IMPLIED #IMPLIED #IMPLIED #IMPLIED #IMPLIED #IMPLIED #IMPLIED #IMPLIED #IMPLIED"> #IMPLIED

group EMPTY> group %att_AttributeHolder; > label (#PCDATA )> label href CDATA #IMPLIED > item (#PCDATA )>

XBRL Taxonomy Creation

XBRL Solutions, Inc.

11

<!ATTLIST item

%att_AttributeHolder; >

Meta Model The meta model describes how XBRL taxonomy documents are to be created. It basically extends XML Schema functionality for use by the XBRL specification. The meta model can be found on the XBRL web site at http://www.xbrl.org/core/xbrl-meta-2000-0731.xsd.
4.4.2

Graphic The following graphic represents the relationship between the pieces of XBRL:
4.5

How XBRL Pieces Fit Together


Meta Model
(Describes how taxonomies are created)

CI Taxonomy
(Describes terms and concepts)
im po rt

Company Taxonomy
(Describes terms and concepts)

Media Taxonomy
import

(Describes terms and concepts)

import

Core Schema
(Describes how instance document is to be created)

Instance Document
(Such as Financial Statement)

KPMG Taxonomy
(Describes terms and concepts)

4.6 Sample The following are sample fragments of an XBRL Instance document and taxonomy document.

Instance document:
<?xml version="1.0" encoding="utf-8"?> <group xmlns="http://www.xbrl.org/core/xbrl -2000-07-31" xmlns:ci="http://www.xbrl.org/us/gaap/ci/2000 -07-31" xmlns:gpsi="http://www.xbrl.org/us/gaap/ci/2000 -07-31/sample" xmlns:csh="http://www.xbrlSolutions.com/labels" id="XXXXXXXXXX-AB" entity="NASDAQ:GPSI" period="1999-05-31" schemaLocation="http://www.xbrl.org/us/gaap/ci/2000 -07-31/sample/ gpsi-custom-2000-07-31.xsd" scaleFactor="3" precision="9" type="statements" unit="ISO4217:USD" decimalPattern="#.#" formatName="">

XBRL Taxonomy Creation

XBRL Solutions, Inc.

12

<group type="ci:statements.documentInformation"> <item type="ci:generalDocumentInformation.identifier">XXXXXXXXXX -AB</item> <item type="ci:generalDocumentInformation.date">2000 -06-12</item> <item type="ci:generalDocumentInformation.title">1999 Financial Statement</item> <item type="ci:generalDocumentInformation.creator">Charles Hoffman, CPA</item> <item type="ci:generalDocumentInformation.language">English</item> <group type="ci:documentInformation.revisions"> <item type="ci:revisions.revisionDate">1999 -10-01</item> <item type="ci:revisions.revisionBy">Charles Hoffman</item> <item type="ci:revisions.revisionDescr iption">Document created</item> </group> <group type="ci:documentInformation.revisions"> <item type="ci:revisions.revisionDate">2000 -04-04</item> <item type="ci:revisions.revisionBy">Charles Hoffman</item> <item type="ci:revisions.revisionDescripti on">Modified</item> </group> <group type="ci:documentInformation.revisions"> <item type="ci:revisions.revisionDate">2000 -06-12</item> <item type="ci:revisions.revisionBy">Charles Hoffman</item> <item type="ci:revisions.revisionDescription">Modified </item> </group> <group type="ci:documentInformation.userDefinedInformation"> <item type="gpsi:userDefinedInformation.ceo">Douglas J. Burgum</item> <item type="gpsi:userDefinedInformation.cfo">Tami L. Reller</item> </group> </group>

Taxonomy document:
<?xml version="1.0" encoding="utf-8"?> <schema xmlns:xbrl="http://www.xbrl.org/core/2000 -07-31/metamodel" targetNamespace="http://www.xbrl.org/us/gaap/ci/2000 -07-31"> <import namespace=http://www.xbrl.org/core/2000 -07-31/metamodel schemaLocation="http://www.xbrl.org/core/2000 -07-31/ xbrl-meta-2000-07-31.xsd"/> <element name="statements.balanceSheet" type="string"> <annotation> <documentation>This is where a general description goes</documentation> <appinfo> <xbrl:rollup to="statements" weight="0" order="1" /> <xbrl:label xml:lang="en">Balance Sheet</xbrl:label> </appinfo> </annotation> </element> </schema>

XBRL Taxonomy Creation

XBRL Solutions, Inc.

13

Understanding Instance Documents

5.1 Overview This section provides a brief overview of the XBRL Instance document for those who are creating taxonomies. It is important to have a general understanding of how instance documents must be built to effectively build a taxonomy.

An XBRL instance document is built referring to one or more XBRL taxonomies. A taxonomy is built to represent a specific set of information in the form of an instance document. The taxonomy explains the meaning of those elements and how those elements relate to one another. The XBRL instance document can be thought of as a database. It contains an instance of information. In the case of financial statements, the instance document contains all the information of the financial statement, not in Word or a text file, but in an XML file. For a more detailed description of the instance document, please see the instance document materials.
5.2

Elements of Instance Document

group Element The group element is use to organize similar items together.
5.2.1

Groups cannot contain data item Element Items contain data.


5.2.2

label Element The label element is used to override the default label provided by the taxonomy or to otherwise associate a label with an item.
5.2.3

Labels can override all occurrences of a type or only a single occurrence of that type. Labels should be rare.

5.2.4 Attributes Attributes further describe item elements.

XBRL Taxonomy Creation

XBRL Solutions, Inc.

14

Issues There are various issues relating to the instance document that should be addressed by the taxonomy. Basically, the taxonomy must be developed so that it can be effectively and efficiently represented in the form of an instance document. If the taxonomy cannot be represented in XML or in XBRL, it will not be useful.
5.3

Repeating Elements Information that repeats requires special treatment.


5.3.1

Tables Information that is typically represented in the form of a table, requires special treatment in building the taxonomy.
5.3.2

Other The following are other considerations relating to how a taxonomy relates to an instance document:
5.3.3

XBRL Taxonomy Creation

XBRL Solutions, Inc.

15

Understanding the Specification for Taxonomies

6.1 Overview An XBRL taxonomy is a set of element definitions and element relationship definitions, built to the XBRL specification for a specific purpose. An XBRL taxonomy is an XML Schema document.

Understanding the Elements and Attributes, Building Blocks of the taxonomy The following is an under the hoods look at a taxonomy. It is about the details of how the taxonomy is represented in XML, using the XBRL specification.
6.2

A taxonomy is a printout that people use, and an XSD file that computer applications use. Overview The following is a discussion of the elements, attributes, and the values of elements and attributes which make up the XSD file which represents an XBRL taxonomy.
6.2.1

element Element An element element exists for each term in an XBRL taxonomy. The <element> element contains all the information relating to that element. It contains various other elements and attributes which are described below.
6.2.2

Example,
<element name="statements.balanceSheet" type="string"> <annotation> <documentation>This is where a general descr iption goes</documentation> <appinfo> <xbrl:rollup to="statements" weight="0" order="1" /> <xbrl:label xml:lang="en">Balance Sheet</xbrl:label> </appinfo> </annotation> </element>

<element> id Attribute The id attribute is allowed on all elements by XML. There are positive and negative issues relating to adding an id to an element.
6.2.3

<element> name Attribute The name attribute gives each element a unique name.
6.2.4

Each element name must be unique in the XBRL taxonomy.

XBRL Taxonomy Creation

XBRL Solutions, Inc.

16

The CI taxonomy used a two part name, currentAssets.cashAndCashEquivalents. This is not required, but highly recommended to avoid name conflicts and clarity. The name is useful to users, but it is also used by computer applications. Descriptive, consistent, well-thought-out names are very, very helpful.
6.2.5

<element> type Attribute The type attribute indicates the data type of the element. Common examples of type are string and monetary. This can be thought of in terms of database data types. This follows XML Schema data types.

List and explanation of data types: string the element should be a valid string or text (alphanumeric) decimal the element is a real number such as 1000 or 1234.123 xbrl:monetary the element is a specialized decimal data type. This is intended for expressing currency and debit or credit type values. xbrl:shares the element is a specialized decimal data type. This data type expresses shares of stock. date the element value should be a valid date (for example, balance sheet date) timePeriod the element value should be a valid time period (for example, income statement period) uriReference the element is a URI reference (for example, http://www.xbrl.org) xbrl:rollup Element The rollup element indicates how an element, or accounting concept, relates to another element, or accounting concept.
6.2.6

Example:
<xbrl:rollup to="balanceSheet.assets" weight="0" order="1" />

<xbrl:rollup> to Attribute The to attribute indicates which element the element which contains the rollup element rolls into. It refers to another element name of another element in the taxonomy.
6.2.7

<xbrl:rollup> weight Attribute The weight attribute indicates the multiplier that is to be applied to an item value when accumulating numeric values upwards through the taxonomy hierarchy. For example, a value of 1.0 means that 100% of the value should be applied to the parent element when accumulating totals for children of the parent. Likewise, -1.0 indicates that 100% of the value should be subtracted. Applying .6 would mean that 60% of the value is applied to the parent.
6.2.8

XBRL Taxonomy Creation

XBRL Solutions, Inc.

17

It is important to understand whether a number should be put into a document as a positive value or as a negative value. To understand this you need to understand the weight attribute of the taxonomy. It is important to understand whether a number should be put into a document as a positive value or as a negative value. To understand this you need to understand the weight attribute of the taxonomy and how the taxonomy calls for values to be entered into an instance document. This section explains how information that is to be expressed using this taxonomy should be entered into XBRL instance documents. This specifically relates to values for the elements in the taxonomy with a monetary data type which are typically, but not always, expressed as debits or credits within an accounting system or in a general ledger trial balance. The challenging issue is how to make entering information into an instance document as logical and intuitive as possible, maximize re-use of information contained in various instance documents prepared by various entities with various information systems, and not place unnecessary burdens on developers. The rules for entering element values into instance documents are as follows. String, date, uriReference and timePeriod do not have the concept of negative values. They are therefore entered as they are to be displayed. Decimals and shares should be entered as positive if they are positive or added taking into consideration the weight attribute. If they are negative or are to be subtracted, they should be entered into the instance document as negative taking into consideration the weight attribute. Monetary data types should be entered as positive if they are positive or are to be added, and negative if they are negative or are to be subtracted, taking into consideration the weight attribute. For example, let say the Trade Accounts Payable trial balance account has a credit s balance of $100,000. The value that should be entered into the instance document is 100,000 as a positive value (not -100,000). This is because liabilities are automatically negative values due to the weight of -1 assigned to the element Liabilities and Stockholder Equity and therefore all children of that element. The instance document s would look as follows:
<item type="accountsPayable.tradeAccountsPayable">100000</item>

<xbrl:rollup> order attribute This indicates the order in which the element rolls up to another element.
6.2.9

XBRL Taxonomy Creation

XBRL Solutions, Inc.

18

xbrl:label Element The <xbrl:label> element assigns a string value to an element that is what is typically displayed to users who want to see that element.
6.2.10

Example,
<xbrl:label xml:lang="en">Statements</xbrl:labe l>

An element can have many labels in different languages. (Labels are only differentiated in terms of languages) In an instance document, labels can be over ridden. In an instance document, a user would never HAVE to provide labels if they wanted to use the labels from the taxonomy exclusively.
6.2.11

<xbrl:label> xml:lang Attribute The xml:lang attribute is an attribute available to all XML documents which is intended to identify a language. The value of the attribute should be from the list of two digit ISO 639 language codes. See http://www.w3.org/WAI/ER/IG/ert/iso639.htm. Use two digit codes if you can, if there is not a two digit code for the language you want, use the three digit code. The code should be in either upper case or lower case, applications should check for either case. Do not mix case. For example, en or EN is ok. En or eN is NOT valid.
6.2.12

documentation Element The documentation element is an element allowed by XML Schema which is intended to describe the element. Example,
<documentation>This is where a general description goes</documentation>

Another example, using HTML in documentation element,


<schema xmlns="http://www.w3.org/1999/XMLSchema" xmlns:html="http://www.w3.org/1999/xhtml"> <annotation> <documentation <html:p>[Some documentation for my schema]</html:p> </documentation> <annotation>

xbrl:references Element This allows for references to literature to be placed in the taxonomy.
6.2.13

XBRL Taxonomy Creation

XBRL Solutions, Inc.

19

Example,
<xbrl:references name="SFAS" number="101" chapter="1" parag raph="1" subparagraph="a" />

Any number of references can appear in the taxonomy.


6.2.14

<xbrl:reference> name Attribute Abbreviated name of the body issuing the literature.

6.2.15 <xbrl:reference> number Attribute Number issued to the literature by the body.

<xbrl:reference> chapter Attribute Chapter within the literature containing information about this element.
6.2.16 6.2.17 <xbrl:reference> paragraphAttribute Paragraph within the literature containing information about this element.

<xbrl:reference> subparagraph Attribute Subparagraph within the literature containing information about this element.
6.2.18

Adding Custom Elements The XBRL taxonomy document can be extended by adding any elements you may desire, however it must be done following certain rules. All the xbrl elements are basically custom elements added to an XML Schema document. This is how you would add an element:
6.3

1. Declare a namespace. 2. Use the declared namespace prefix with the element. Here is an example of doing this, notice the mystuff namespace declaration.
<?xml version="1.0" encoding="utf-8"?> <schema xmlns:xbrl="http://www.xbrl.org/core/2000 -07-31/metamodel" xmlns:mystuff="http://www.mystuff.org/mystuff/mystuffmetamodel" targetNamespace="http://www.xbrl.org/us/gaap/ci/2000 -07-31"> <import namespace=http://www.xbrl.org/core/2000-07-31/metamodel schemaLocation="http://www.xbrl.org/core/2000 -07-31/ xbrl-meta-2000-07-31.xsd"/> <element name="statements.documentInformation" type="string"> <annotation> <documentation>This is where a general description goes</documentation> <appinfo> <xbrl:rollup to="statements" sense="none" order="1" /> <xbrl:label xml:lang="en">Statements</xbrl:label> <mystuff:userDefined xml:lang="en">Statements</ mystuff:userDefin ed> </appinfo> </annotation> </element> </schema>

XBRL Taxonomy Creation

XBRL Solutions, Inc.

20

If you add elements, be aware of the following: Use camelCase naming and follow all the other rules of the XBRL specification to avoid problems. Follow XML Schema rules for extending a schema to be sure you don create an t invalid schema document. If you think the feature would be useful to others creating taxonomies, consider contacting the XBRL Steering Committee and solicit adding the feature to the XBRL specification. Import Element The <import> element is an XML element used to import one XML document into another XML document. When used in an XML Schema document, it is used to import one XML Schema into another XML Schema and use both schemas together.
6.4

The syntax is as follows:


<?xml version="1.0" encoding="utf-8"?> <schema xmlns:xbrl="http://www.xbrl.org/core/metamodel" targetNamespace="http://www.xbrl.org/us/us -gaap-ci-2000-07-01.xsd"> <import namespace="http://www.xbrl.org/core/2000 -07-31/metamodel" schemaLocation="http://www.xbrl.org/core/2000 -07-31/ xbrl-meta-2000-07-31.xsd"/> <element name="statements.balanceSheet" type="string"> <annotation> <documentation>This is where a general description goes</documentation> <appinfo> <xbrl:rollup to="statements" weight="0" order="1" /> <xbrl:label xml:lang="en">Balance Sheet</xbrl:label> </appinfo> </annotation> </element> </schema>

The uri attribute is a valid file name that is to be imported


6.5

More on Parent-Child Relationship It is important to understand the parent-child relationship of elements, fundamental concept to XML.

XBRL Taxonomy Creation

XBRL Solutions, Inc.

21

Understanding the CI Taxonomy

7.1 Overview The following explains the CI taxonomy created by the XBRL Steering Committee. The intention is to show you an example of a taxonomy and explain how it was created, so you can steal any ideas and copy any methods used in creating your taxonomy. Why reinvent the wheel if you don have to? t

Note that the CI taxonomy is not perfect, nor is the XBRL Specification perfect. Don t copy for copying sake. Be conscious of what you are trying to do and why. s The CI taxonomy is intended to represent the financial statements issued by entities, typically publicly traded entities.
7.2 Printout of Taxonomy One way of looking at the taxonomy is via a printout. The appendix has a printout of the CI taxonomy. (Note that this is currently a DRAFT)

XSD File Another way of looking at the taxonomy is looking at the XML Schema file, or XSD file. (Note that this is also a draft, same version as the printout.)
7.3

Exploring the CI Taxonomy The root element of the taxonomy is the statements element. From there, the CI taxonomy is made up of the following:
7.4

Statements/Sections The statements element has several children, each making up a typical component of a full set of financial statements. These sections include:
7.4.1

Document Information which describes information about the document Entity Information which describes information about the entity(s) issuing the financial statements. Accountant Report which contains information that is included on the s accountants report. Balance Sheet which contains information that is included in a balance sheet. Income Statement which contains information that is included in an income statement. Statement of Comprehensive Income which includes information in a statement of comprehensive income. Statement of StockholdersEquity which contains information that is included in a statement of stockholders equity.

XBRL Taxonomy Creation

XBRL Solutions, Inc.

22

Cash Flows which contains information that is included in a statement of cash flows. Notes to Financial Statements which contains information that is included in the notes to a set of financial statements. Supplemental Financial Information which is a container provided where users can add supplemental financial information to their financial statement. Financial Highlights which is a container for users to add financial highlights to their financial statements. Management Discussion and Analysis which is a container for users to add information which relates to a management discussion and analysis statement. Several points: Note that the statements/sections are in order that they typically appear. This is not required, but it is good practice. Note that there are several sections that don have any sub sections. The reason t for this is to help get all entities issuing financial highlights to put the financial highlights in the same section. Another purpose is to reserve a placeholder for things to be built out later. Note that sections were named using the commonly used names. The Concept of Tables The XBRL taxonomy does not contain tables, nor is financial information required to be disclosed in tables. The term table as used here is more of an abstraction of information which typically will be, or typically can be expressed what is commonly referred to as a table.
7.4.2

For example, the balance sheet is a table with typically three columns: one column of labels and two columns of data for the two years that are commonly presented. When information can be organized in a table, it is best to do so. That way, if users want to build an XML document as a table, they can. But they are not forced to use a table to represent the information. The Concept of Rows Similarly, the taxonomy does not contain rows but a balance sheet can be thought of as being a three column table with any number of rows or line items. These line items are the items included in the balance sheet section of the taxonomy.
7.4.3 7.4.4

The Concept of Structures In general, all components of the taxonomy are abstractions of some type of structure. That type of structure needs to be identified, and the taxonomy build to make it possible to effectively and efficiently represent that information in an XML instance document. If this cannot be done, then the taxonomy does not work.

XBRL Taxonomy Creation

XBRL Solutions, Inc.

23

7.5

Identified Patterns The following are various patterns which have been identified why creating the CI taxonomy. The purpose of this is to point out these patterns so that if you have a similar pattern, you can go through the CI taxonomy, see how something that is similar was layed out, so that you have a guide for building what you need in your taxonomy. This is the process of reverse engineering.

7.5.1

Single Data Items Document Information Simple table Property and Equipment Complex table Stock Compensation Plans Repeating table Statement of Stockholders Equity

7.5.2

7.5.3

7.5.4

XBRL Taxonomy Creation

XBRL Solutions, Inc.

24

8
8.1

Problems You Will Encounter

Deep Nesting Creates Duplicate Names When assigning names, there is a problem that we had in creating the CI taxonomy. When you have similar elements that go two levels deep, there can be name conflicts. For example, see current portion of long term debt and long term debt. The solution is that you must add additional information to one, or preferably both (all) of the elements. This is also the case with elements which are used a great deal. For example, depreciation is used in the taxonomy 29 times. Name Length Names should be both as short as possible and as meaningful as possible. That is sometime a delicate balance to achieve. The CI taxonomy was able to fairly easily get down to 80 character names. Could have most likely decreased that to 70. There are probably only 5 elements where the name had to be grossly changed.
8.2

The solution is to be aggressive and keep names short but meaningful. Shorter than 80 characters, if achievable, would be better. Multiple lists of items There are many occasions where multiple lists of the same items exist. For example, a list of detailed property plant and equipment in both the balance sheet, and notes. Same with inventories.
8.3

Having multiple lists is not optimal. One proposed solution to this problem is to have the notion of concepts within the taxonomy which can be used by both the balance sheet and the notes, or wherever. This was considered to late in the development process of the CI taxonomy, but it may want to be considered by others.

8.4

Copying the CI taxonomy It is great to use the best features of the CI taxonomy, but it would be a mistake to not incorporate original thought to the development of a taxonomy. The CI taxonomy was the first of many taxonomies which will be built. The guinea pig. After it is put to use it is highly likely that things will be discovered which would have been better if done differently. Experiment. Try new things. Don blindly copy every aspect of the CI taxonomy. t
XBRL Taxonomy Creation XBRL Solutions, Inc.

25

Best Practices

9.1 Overview The following are a summary of best practices. These best practices were discovered from having prepared the CI taxonomy.

9.2

Element Names Element names should be no more than 80 characters

9.2.1

Advantages of two part element names (currentAssets.cashEquivalents) The CI taxonomy was created with two part names. For example, currentAssets.cashEquivalents rather than currentAssetsCashEquivalents or simply cashEquivalents. The first part of the name is the last part of the immediate parent of the element. The last part is colloquial name of the element. The name is made up of both parts, they are never really used separately.
9.2.2

The reason for this approach is for clarity and to avoid name conflicts. This approach is not required (although it is required if you want to use the current version of the taxonomy builder) There are significant advantages in terms of flexibility, ability to create unique names, ability to parse meaning from names, if two part names are used. The . has no special significance, as it does in object programming.
9.2.3

Names should have no spaces, special characters (even allowed special characters) should be avoided, and the following characters should NOT appear in names: _, -. Consistent naming of elements Minimize abbreviations Differentiate repeated names for example inventory on balance sheet and inventory in notes Build repeatable structures, don repeat elements (for example, addresses old way t and new way)

9.2.4

9.2.5

9.2.6

9.2.7

XBRL Taxonomy Creation

XBRL Solutions, Inc.

26

9.3

Element Labels Labels should not be more than 255 characters Short labels issue Capitalization The labels within the taxonomy are proper case. Proper case can be converted easily to lower case or upper case, but not the other way around. The following words are not capitalized in the taxonomy: a, as, an, and, at, be, by, for, from, in, is, not, of, or, on, to, the, with, (s). Be aware of the special treatment of the &, <, > characters. Avoid them when you can. General Build required information AND commonly disclosed information first, not just required information. It is significantly more difficult to have others create individual custom taxonomies where the taxonomy falls short, than for the taxonomy creator to simply add the item. Additionally, it will make for easier extraction of data if the item exists you don have to figure out what each t individual company called the item. Use things like disclosure checklists, accounting and auditing guides AND Accounting Trends and Techniques type documents as aids in creating taxonomies. In particular, actual notes which help you visualize how notes are typically structured can be very helpful when determining how to best represent information in a taxonomy. Rollup order. Rollup is a real value. In taxonomies such as the CI taxonomy which will be supplemented by others, it is best to use integer values. That way, when a company wants to modify the taxonomy by creating a custom taxonomy, they can enter a real value, such as 1.5, which would be ordered between two values in the base taxonomy. Be consistent. For example, the CI taxonomy had all of the following: Gain (Loss), Gains (Losses), Gain or Loss, Gains or Losses. Or Proforma, Pro Forma, Pro-Forma. Or Net, Net of Tax Effect, Net of Tax Impact, Tax Impact, Net, and so forth. You get the point.

9.3.1

9.3.2

9.4

9.4.1

9.4.2

9.5

9.5.1

9.5.2

9.5.3

9.5.4

XBRL Taxonomy Creation

XBRL Solutions, Inc.

27

10 Creating Custom Taxonomies or Extending a Taxonomy


10.1 Overview Building a custom extension to an existing taxonomy and building an entire taxonomy has very little differences, if any.

10.2

Hooking two or more Taxonomies together The import element is used to hook taxonomies together. Any number of taxonomies can be hooked together.
10.3

How it works and how to do it

Example The following is an example of a custom taxonomy.


10.4 <?xml version="1.0" encoding="utf-8"?> <schema xmlns:xbrl="http://www.xbrl.org/core/2000 -07-31/metamodel" targetNamespace="http://www.xbrl.org/us/gaap/ci/2000 -07-31"> <import namespace=http://www.xbrl.org/core/2000 -07-31/metamodel schemaLocation="http://www.xbrl.org/core/2000 -07-31/ xbrl-meta-2000-07-31.xsd"/> <element name="propertyPlantAndEquipmentGrossNote.purchasedSoftwareForInternalUse" type="monetary"> <annotation> <documentation>This is software that...</documentation> <appinfo> <xbrl:rollup to="ci:propertyPlantAndEquipmentNetNote.propertyPlantAndEquipmentGrossNote" weight="1" order="7.5" /> <xbrl:label xml:lang="en">Purchased software for internal use</xbrl:label> <xbrl:reference name="GPSI" number="73" chapter="11" paragraph="b" subparagraph="i" /> </appinfo> </annotation> </element> </schema>

XBRL Taxonomy Creation

XBRL Solutions, Inc.

28

11 Building XBRL Taxonomies


11.1 Overview This section provides an overview of the process of building XBRL taxonomies. It is based on the process used by the XBRL Domain Working Group process for building s the CI taxonomy.

Note that this is not a linear process. The process cycles over and over as learning occurs, new ideas are generated. The best time to create the taxonomy is when you are already done! That is when you have the best understanding of the entire process. The trick is to try and get the highest level of understanding of the entire process as early in the process as possible. Overview of Steps The following is a summary of the steps in building any taxonomy:
11.2

1. Source - Obtain documentation that describes the taxonomy you wish to represent in XBRL. 2. Structure - Determine how information should best be represented as elements within the taxonomy considering the taxonomy, the constraints of XML, the constraints of XBRL, clarity of presentation. Basically, this is about selecting the proper parent-child relationships, groupings, etc. 3. Collect - Collect that information, preferably in an electronic format such as Excel. 4. Enter - Import or key the elements into the Taxonomy Builder, notepad, or other application to build the taxonomy. 5. Scrub - Scrub the information checking consistency, correcting errors, etc. 6. Test - Try and represent the information in XML. 7. Export - Export the taxonomy into the specified XSD file.
11.3

Example: How the CI taxonomy was built The following is a summary of the steps used in building the CI taxonomy by the XBRL Domain working group. Source The primary source for creating the CI taxonomy was the AICPA Checklists and Illustrative Financial Statements for Corporations disclosure checklist. In addition, each of the Big 5 national firms used their internal disclosure checklists to supplement the AICPA disclosure checklist.
11.3.1 11.3.2

Structure

XBRL Taxonomy Creation

XBRL Solutions, Inc.

29

It was determined how information from the disclosure checklist was to be structured. This is the most difficult part of the process. The following are come comments relating to this process: It is not appropriate to simply take information which is in a disclosure checklist and transfer it as is to the taxonomy. If this process is done correctly, it makes all the following steps easier.
11.3.3 Collect This is the point where the structured information is entered into an Excel spreadsheet or collected in some manner to be entered into the Taxonomy Builder or other application to create taxonomy.

Enter After the information is collected, it is then entered or imported into the application to build the taxonomy. Clearly, collecting the information in a format in which it can be imported is preferable. Otherwise, information will need to be manually keyed.
11.3.4

It is CRITICAL to properly plan the collection process to minimize the entering process. Scrub Entered information is scrubbed to correct errors, make things more consistent, etc. The best place to do the scrubbing is DURING THE COLLECTION PHASE. The easiest place to do it is within the Taxonomy Builder application. Can be a tradeoff.
11.3.5

Test It is important to actually test the taxonomy to be sure you can actually create XML to represent information from within the taxonomy.
11.3.6 11.3.7

Export Once all the information for the elements in the taxonomy have been collected, corrected, etc., it can be exported into the final result: the XSD file which is the specification set by XBRL. What expertise you will need to build a taxonomy There are several different types of expertise you need in order to effectively build a taxonomy. It is difficult to get this expertise in one person. Generally, it will be several persons with different skills working together to make the entire process work. Many times there are conflicting desires at work.
11.4

11.4.1

XBRL Expertise

XBRL Taxonomy Creation

XBRL Solutions, Inc.

30

In order to build a taxonomy you clearly need someone who has an understanding of the XBRL specification for creating taxonomies. In addition, you need someone who has an understanding of how to build XBRL instance documents. If you do not have this expertise, you may be building the taxonomy so that it cannot be properly represented in an instance document.
11.4.2

Domain Expertise Clearly, you need domain experts to help create a taxonomy. Experts in the area of the taxonomy is critical or the taxonomy could be incomplete, in correct, etc. Database/Application Development Expertise A database or application development resource is required. It is important to have their insight into selecting element names, deciding which way to go when tradeoffs need to be made, understanding data types, etc.

11.4.3

Administrative Support If there is a strong process in place, many of the tasks in taxonomy development become administrative in nature.
11.4.4 11.4.5

Review Support The more eyes that look at the taxonomy, the more insight that will be obtained and incorporated into the taxonomy. There is a tradeoff between to many eyes and an unmanageable process. A balance needs to be achieved.

XBRL Taxonomy Creation

XBRL Solutions, Inc.

31

12 Lab 1: Building a Taxonomy Element by Hand


12.1 Overview This lab shows you how to build a small taxonomy by hand. The purpose is to make you familiar with the manual process for creating an XSD file and make you comfortable with the XBRL taxonomy elements.

Instructions To complete this lab do the following:


12.2

1. Look under the tab for this lab in the workbook. 2. Under the tab, look at the taxonomy printout provided. Note the Property, Plant and Equipment, Gross line. 3. Open the file Lab01_StartHere.xml 4. Add the Property, Plant and Equipment, Gross lines to the XSD file. 5. Note the answer sheet provided.

XBRL Taxonomy Creation

XBRL Solutions, Inc.

32

13 Lab 2: Modifying a Custom Taxonomy


13.1 Overview This lab goes over modifying a custom taxonomy. The purpose is to get you comfortable with moving around inside an XSD file and show you that there is little difference between a base taxonomy and a custom taxonomy.

Instructions To complete this lab do the following:


13.2

1. Look under the tab for this lab in the workbook. 2. Note the Property and Equipment note provided. Great Plains has an item which it already has added to a custom taxonomy, see the XSD file for this custom taxonomy. It contains this single item. 3. Note the <import> element in the taxonomy, the custom taxonomy is also using the us-gaap-ci-2000-07-31.xsd taxonomy. 4. Note the last four lines on the Great Plains Company Information printout. 5. Add these items to the existing custom taxonomy.

XBRL Taxonomy Creation

XBRL Solutions, Inc.

33

14 Using the XBRL Taxonomy Builder


14.1 Overview This section goes over using the features of the XBRL Taxonomy Builder to build a taxonomy, rather than building the taxonomy using notepad.

A taxonomy cannot be effectively developed in an XML editing tool for the following reasons: The taxonomy development process is not about keying things into XML. It is about building an effective taxonomy. The functionality required to build a taxonomy is an organization of the taxonomy building, data scrubbing, re-doing, renaming, etc., process. XML does not have to be created in an XML editor. It can be created in ANY application, then exported into the XML format. An XML editor cannot enforce XBRL rules such as no duplicate names are allowed or you can only have these data types. The builder application enforces XBRL specification rules. The XBRL Taxonomy Builder lets you do the following: Elements can be keyed in or imported from an Excel spreadsheet. When data is imported, a series of validity tests are run to ensure the data is valid, per the XBRL specification. For example, the proper case of element names and labels is enforced. Error checking such as duplicate names, names which are too long, etc., can be performed. Elements can be moved from one parent to another, renamed, edited, etc. A useful printout can be generated to document the taxonomy and is useful in the editing process of taxonomy creation. Search features are incorporated for quickly locating a specific element or specific patterns of elements. Internal use comment to track questions, to-do issues, and other useful features used during taxonomy development process. An XSD file can be created. Maintains list of authoritative literature used to create and referenced in the taxonomy. The XBRL Taxonomy Builder has the following components or screens: Main Menu Main menu for the appliation Build Where you enter or maintain taxonomy elements Export Where you export elements to an XBRL XSD file.
XBRL Taxonomy Creation XBRL Solutions, Inc.

34

Import Allows you to import any XBRL compliant taxonomy so you can use it in the builder (Needs to be adjusted to new XSD format) Setup/Maintenance Where namespaces are set up, you can build a new taxonomy from scratch, and run maintenance routines. Accounting Literature Reference literature used to support the taxonomy.
14.2

Bug Warnings and Application Limitations Issues in Renaming Elements Run Tests Often Backup Database Often This is Alpha Software

14.2.1

14.2.2

14.2.3

14.2.4

Main Menu The following is a screen shot of the main menu:


14.3

14.3.1

Overview

Build The following is a screen shot of the Build screen:


14.4

XBRL Taxonomy Creation

XBRL Solutions, Inc.

35

14.4.1

Overview Show Parent/Show Children Long / Short Labels Reset/Show All Jump To Find Move Up/Down Print Tree View Add/Delete Tests

14.4.2

14.4.3

14.4.4

14.4.5

14.4.6

14.4.7

14.4.8

14.4.9

14.4.10

14.4.11

XBRL Taxonomy Creation

XBRL Solutions, Inc.

36

14.4.12

Other Open Detail/Browse All

14.4.13

Detailed Information The following is a screen shot of the Taxonomy Element Detail screen:
14.5

14.5.1

Overview Fields DON EDIT NAME HERE!!! / Avoid editing parents here T Print

14.5.2

14.5.3

14.5.4

14.5.5

Extended Features for Processing There are various data items used in the building of XBRL taxonomies and several other extended features including: Comments Flag Sample data Short label

XBRL Taxonomy Creation

XBRL Solutions, Inc.

37

User defined Element Class


14.6

Export The following is a screen shot of the export screen:

Overview This is the export process:


14.6.1

Edit export information under setup Press the button


14.7

Setup/Maintenance The following is a screenshot of the Setup/Maintenance screen:

XBRL Taxonomy Creation

XBRL Solutions, Inc.

38

14.7.1

Namespaces Defaults Reorder Taxonomy File Start from Scratch Lookup Lists

14.7.2

14.7.3

14.7.4

14.7.5

XBRL Taxonomy Creation

XBRL Solutions, Inc.

39

15 Building the Taxonomy


15.1

Editing Elements Renaming Changing order Changing labels Adding Elements Adding Element Adding Child Element Deleting Elements Deleting Element Changing Parenting Elements Overview Changing parent Checking for Errors Long Element Names Duplicate Names Bad Parents Name Relation View Flagged

15.1.1

15.1.2

15.1.3

15.2

15.2.1

15.2.2

15.3

15.3.1

15.4

15.4.1

15.4.2

15.5

15.5.1

15.5.2

15.5.3

15.5.4

15.5.5

XBRL Taxonomy Creation

XBRL Solutions, Inc.

40

15.6

Viewing the Tree Structure Overview Printing the Taxonomy Overview Rebuilding Print Tables Building Issues Renaming elements Deleting Changing Parent Changing Order Reordering the Taxonomy Table

15.6.1

15.7

15.7.1

15.7.2

15.8

15.8.1

15.8.2

15.8.3

15.8.4

15.8.5

XBRL Taxonomy Creation

XBRL Solutions, Inc.

41

16 Importing Taxonomy Elements (Rather than Keying In)


16.1 Overview The following is a screen shot of the Import screen:

Overview Rather than keying in taxonomy entries directly into the XBRL Taxonomy Builder, entries can be imported from an Excel spreadsheet (or any other format which Microsoft Access can import). The advantages of this are:
16.1.1

Excel is very familiar and most people are comfortable with it. Excel offers a high degree of flexibility for editing information. You can easily move things around, re-order, etc. This allows several persons to be developing taxonomy elements independently, then the individual pieces to be transferred, via email, for centralized input. It is proved to work the DOMAIN group used this method and it worked for them.
16.1.2

Steps The following is a summary of the steps in the process of creating a section of taxonomy elements and then importing them into the XBRL Taxonomy Builder: 1. Build the taxonomy section using the spreadsheet format provided. This MUST be used to be sure the spreadsheet lines up with the database.

XBRL Taxonomy Creation

XBRL Solutions, Inc.

42

2. Once the spreadsheet is completed the quality of the information should be checked. All required information must exist, it must be the expected data, the LEVEL and ORDER must be correct, etc. 3. Select the DATA (not the headings). 4. Copy 5. Go to the XBRL Taxonomy Builder application Import screen. 6. Open the Import Step 1 table Item 1 on the list. 7. Paste the items into the Access table. 8. Perform all the steps on the Import menu to cleanse, validate the data. This is described below. 9. Final step is moving items from import table to master table.
16.1.3

Excel Spreadsheet Import Process Stories in Developing CI Taxonomy What Works, What Does Not Starting From Scratch Overview Process

16.1.4

16.1.5

16.1.6

16.2

16.2.1

16.2.2

XBRL Taxonomy Creation

XBRL Solutions, Inc.

43

17 Lab 3 : Building Taxonomy Elements using the XBRL Taxonomy Builder


17.1 Overview This lab goes over creating XBRL elements using the XBRL Builder.

Instructions To complete this lab, do the following:


17.2

1. 2. 3. 4. 5. 6.

Look under the workbook tab for this lab. Note the taxonomy printout for Intangible assets. Make a copy of the taxonomy builder and use the COPY for the lab. Find the existing Intangible Assets note and delete it. Add the items on the printout. Repeat for the Computer Software Costs note if you like.

XBRL Taxonomy Creation

XBRL Solutions, Inc.

44

18 Lab 4 : Starting from Scratch


18.1 Overview In this lab you begin building an entire taxonomy from scratch, using the CI taxonomy as a base and using the XBRL Taxonomy Builder.

18.2 Instructions To complete this lab do the following:

1. Look under the tab in the workbook for this lab. 2. Note the Start from Scratch page in the tab. 3. Make a copy of the taxonomy builder application and use that copy for the lab. (The copy used for the last lab is fine) 4. Go to the Setup screen. Then select the start from scratch screen. 5. Change the Namespace prefix from ci to fed. 6. Enter a description (note that it is named improperly, a bug) of Federal Taxonomy 7. Change the Root Element from statements to documents 8. Press the Run start from scratch routines now! button. 9. Follow the instructions. 10. When the namespace form comes up, change some of the information, such as the file names, if you like. 11. Close the namespaces form. 12. Note there is a BUG. On the Main form, the default namespace did not change from ci to fed. Change it yourself. 13. Go to the Build form. 14. Delete all the sections you want. 15. Note the root element and the namespace has changed.

XBRL Taxonomy Creation

XBRL Solutions, Inc.

45

19 Lab 5 : Importing Taxonomy Elements


19.1 Overview In this lab, rather than entering elements using the XBRL Taxonomy Builder interface, you build a taxonomy fragment using Excel, and then import that taxonomy fragment into the XBRL Taxonomy Builder.

Instructions To complete this lab do the following:


19.2

1. Look under the tab for this lab under the tab in the workbook. 2. Note the Excel Spreadsheet. 3. Open Excel. 4. Open the spreadsheet provided, Lab05_StartHere.xls 5. Highlight the data (not the labels in row 1) 6. Copy the selected items. 7. Open the XBRL Taxonomy Builder. 8. Go to the Import screen 9. Press button one, delete existing items. 10. Select the first row in the database table (it is in empty row) 11. Paste the items from the Excel spreadsheet 12. Stop here for further instructions and discussion.

XBRL Taxonomy Creation

XBRL Solutions, Inc.

46