Specification for Inline XBRL 0.54

Markup for embedding XBRL metadata inside HTML documents

Public Working Draft 23 January 2008

Copyright ©2008 XBRL International Inc., All Rights Reserved.

This version:
<http://www.xbrl.org/Specification/inlineXBRL-spec-PWD-2008-01-23.html>
Editors:
Ian Stokes-Rees, CoreFiling Limited <ijs@corefiling.com>
Philip Allen, CoreFiling Limited <plega@corefiling.com>
Contributors:
David vun Kannon, PricewaterhouseCoopers <david.k.vun.kannon@us.pwc.com>
Hugh Wallis, XBRL International, Inc. <hughwallis@xbrl.org>
Michael Leditschke, Australian Bureau of Statistics <michael.leditschke@abs.gov.au>
Neil Griffiths, CoreFiling Limited <neil.griffiths@corefiling.com>
Paul Warren, CoreFiling Limited <pdw@corefiling.com>
Ray Lam, Just Systems <ray.lam@justsystems.com>
Walter Hamscher, Standard Advantage <walter@hamscher.com>

Status

Circulation of this Public Working Draft is unrestricted. This document is normative. Other documents may supersede this document. Recipients are invited to submit comments to the authors and contributors, and to submit notification of any relevant patent rights of which they are aware and to provide supporting documentation.

Abstract

Inline XBRL is a standard for embedding XBRL fragments into an HTML document. The objective is to provide documents which can be viewed in a browser while making use of XBRL tags which can be processed automatically by consuming applications. This specification defines the syntax for such documents and how the syntax maps into an XBRL instance.

Table of Contents

1 Introduction (non-normative)
2 About this document
2.1 Conventions used in this document
2.2 XML namespaces
2.3 Prefixes
3 Structure
3.1 The Inline XBRL Document
3.2 The Target Document
3.3 The Conformant Processor
4 The exclude element
4.1 Definition
4.1.1 Constraints on ix:exclude
5 The footnoteLink element
5.1 Definition
5.1.1 Validation rules
5.2 Mapping
6 The fraction element
6.1 Definition
6.1.1 Constraints on ix:fraction
6.2 Mapping
6.2.1 Element name
6.2.2 Attributes
6.2.3 Children
7 The header element
7.1 Definition
7.1.1 Constraints on ix:header
7.1.2 Constraints on xbrli:xbrl
7.2 Mapping
8 The hidden element
8.1 Definition
8.1.1 Constraints on ix:hidden
9 The nonFraction element
9.1 Definition
9.1.1 Constraints on ix:nonFraction
9.2 Mapping
9.2.1 Element name
9.2.2 Attributes
9.2.3 Children
9.3 Example
10 The nonNumeric element
10.1 Definition
10.1.1 Constraints on ix:nonNumeric
10.2 Mapping
10.2.1 Element name
10.2.2 Attributes
10.2.3 Children
10.3 Example
11 The tuple element
11.1 Definition
11.1.1 Constraints on ix:tuple
11.2 Mapping
11.2.1 Element name
11.2.2 Children
12 Transformation rules

Appendices

A References
B Intellectual property status (non-normative)
C Acknowledgements (non-normative)
D Document history (non-normative)
E Errata corrections in this document

Tables

1 Inline XBRL Elements
2 XML representation summary: ix:exclude element information item
3 XML representation summary: footnoteLink element information item
4 XML representation summary: ix:fraction element information item
5 XML representation summary: ix:header element information item
6 XML representation summary: ix:hidden element information item
7 XML representation summary: ix:nonFraction element information item
8 XML representation summary: ix:nonNumeric element information item
9 XML representation summary: ix:tuple element information item

Examples

1 Nesting within an HTML table
2 Nesting within Markup Elements
3 Ordering of tuples
4 Cross-nested tuples

Definitions

Conformant Processor
Inline XBRL Document
Inline XBRL Element
Markup Element
Target Document
Transformation Rules


1 Introduction (non-normative)

There is a clear need to publish financial and business information both in human-readable and machine-readable formats. With the growth of interest in using the [XBRL 2.1] standard to transmit information in a machine-readable format, it has become necessary to create an extension to the [XBRL 2.1] standard which will tie the machine-readable data to co-existing human-readable formats.

Inline XBRL provides a mechanism for taking financial and business information formatted in HTML, the universal language for web browsers, and adding to it hidden metadata which can be used to construct a machine-readable copy of the same information. That extracted, machine-readable, information is fully compliant with the [XBRL 2.1] standard and can be used by regulators and other consumers of financial information.

2 About this document

2.1 Conventions used in this document

The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in [IETF RFC 2119].

The key words ID and IDREF in this document are to be interpreted as described in the [XML].

The key words actual value, positiveInteger and string in this document are to be interpreted as described in the [XML SCHEMA STRUCTURES].

The key words children, namespace name and prefix in this document are to be interpreted as described in the [XML Infoset].

The key words extended link, and [etc.] in this document are to be interpreted as described in the [XBRL 2.1] specification.

2.2 XML namespaces

This specification defines an XML namespace to be used for XML components described herein. It is http://www.xbrl.org/2008/inlineXBRL

2.3 Prefixes

This specification uses a number of prefixes when describing elements and attributes. These are:

Prefix Namespace name
ix http://www.xbrl.org/2008/inlineXBRL
link http://www.xbrl.org/2003/linkbase
xbrli http://www.xbrl.org/2003/instance
xl http://www.xbrl.org/2003/XLink
xlink http://www.w3.org/1999/xlink
xml http://www.w3.org/XML/1998/namespace

3 Structure

3.1 The Inline XBRL Document

An Inline XBRL Document is one or more well-formed XML documents containing both Markup Elements, Inline XBRL Elements and certain other elements as defined herein which results in one or more Target Documents when transformed according to the mapping rules prescribed in this specification.

Within the Inline XBRL Document, the Inline XBRL Elements are interspersed between or nested within Markup Elements, in such a way that the value of each XBRL fact may be displayed by a browser.

An Inline XBRL Element is any element defined by this specification with the http://www.xbrl.org/2008/inlineXBRL  namespace name.

Each one of the Inline XBRL Elements in the Inline XBRL Document represents a different component of a Target Document. In general, each Inline XBRL Element takes the same content model as the matching component of the Target Document, except as set out below. The following Inline XBRL Elements are defined in this specification:

Table 1: Inline XBRL Elements
Name
ix:exclude
ix:footnoteLink
ix:fraction
ix:header
ix:hidden
ix:nonFraction
ix:nonNumeric
ix:tuple

A Markup Element is an XML element which does not have its namespace name listed in Section 2.3.

3.2 The Target Document

A Target Document is the XBRL-valid XBRL instance document represented by metadata in the Inline XBRL Document.

A Target Document MUST contain only such XBRL facts and XLink relationships as are required to satisfy the mapping rules prescribed in this specification.

An Inline XBRL Document can be used to define multiple Target Documents by setting the ix:target attributes on certain Inline XBRL Elements.

3.3 The Conformant Processor

A Conformant Processor is a processor which transforms an Inline XBRL Document according to the mapping rules prescribed in this specification.

It should never be necessary for a processor to access the DTS of the Target Document when carrying out the transformation. Whether it does so will depend upon the design of the processor.

4 The exclude element

4.1 Definition

The ix:exclude element is used to encapsulate data that is to be excluded from the processing of ix:nonNumeric elements, and has the following properties:

Table 2: XML representation summary: ix:exclude element information item
<ix:exclude >

  Content: ( any element )*

</ix:exclude>

The purpose of the ix:exclude element is to prevent text content from being included in the {value} property of ix:nonNumeric. It has no other use.

4.1.1 Constraints on ix:exclude

The ix:exclude element MUST be a descendant of an ix:nonNumeric element.

5 The footnoteLink element

5.1 Definition

The ix:footnoteLink element represents the link:footnoteLinkelement, and is an extended link.

The footnoteLink element information item has the following properties:

Table 3: XML representation summary: footnoteLink element information item
<ix:footnoteLink

  xl:id = ID

  xlink:role = anyURI

  xlink:title = string

  xlink:type = string

  {any attributes with the [xml:] namespace name} >

  Content: ( link:documentation | link:footnote | link:footnoteArc | link:loc | xl:title )*

</ix:footnoteLink>
Property Representation
{concept-footnote relationships} The set of XLink relationships between the link:loc and link:footnote children of ix:footnoteLink represented by the link:footnoteArc children of ix:footnoteLink.
{id} [TBD]
{role} [TBD]
{title} [TBD]
{type} [TBD]

Some XBRL Instances use multiple link:footnote elements in a single link:footnoteLink element in order to support multiple languages. It may be desired that the text content of only one of these link:footnote elements be displayed in the Inline XBRL Document. In this case, the displayed footnote should be included within the ix:footnoteLink element at the appropriate place within the Inline XBRL Document. The non-displayed footnotes should be incorporated into their own ix:footnoteLink element and included in the ix:hidden element.

5.1.1 Validation rules

The ix:footnoteLink element MUST adhere to the validation rules for extended links described in [XBRL Extended Links], where the discoverable taxonomy set is taken to be the current Inline XBRL Document.

5.2 Mapping

For each relationship S in {concept-footnote relationships} there MUST exist in a Target Document a relationship T defined by a link:footnoteLink extended link for which:

  1. The XBRL fact located by the xl:loc element of T satisfies the applicable mapping rules defined by this specification for the Inline XBRL Element located by the xl:loc element of S.
  2. The link:footnote element of S is s-equal to the link:footnote element of T.
  3. The arcrole and role properties of S and T are equal.

6 The fraction element

6.1 Definition

The ix:fraction element denotes an XBRL fact which is an element of type, or derived from type, fractionItemType; and has the following properties:

Table 4: XML representation summary: ix:fraction element information item
<ix:fraction

  ix:name = string

  ix:order = positiveInteger

  ix:target = string

  ix:tupleRef = IDREF

  xbrli:contextRef = IDREF

  xbrli:unitRef = IDREF >

  Content: ( any children with a namespace name other than [ix:] * | ix:denominator? | ix:numerator? )

</ix:fraction>
Property Representation
{concept name} The actual value of the ix:name attribute.
{target} The actual value of the ix:target attribute.
{tuple order} The actual value of the ix:order attribute.
{context definition} The xbrli:context element in the Inline XBRL Document for which the actual value of the xbrli:id attribute is equal to the actual value of the xbrli:contextRef attribute.
{unit definition} The xbrli:unit element in the Inline XBRL Document for which the actual value of the xbrli:id attribute is equal to the actual value of the xbrli:unit attribute.
{reference} The actual value of the ix:tupleRef attribute.
{denominator} The text content of the ix:denominator descendant element.
{numerator} The text content of the ix:numerator descendant element.

6.1.1 Constraints on ix:fraction

The ix:fraction element MUST have ix:name, xbrli:contextRef and xbrli:unitRef attributes.

The ix:fraction element MUST have exactly one ix:denominator descendant element.

The ix:fraction element MUST have exactly one ix:numerator descendant element.

6.2 Mapping

For each ix:fraction element, there MUST exist an element in the same Target Document as that to which all other Inline XBRL Elements with the same {target} property are mapped to which has the following XML Properties:

6.2.1 Element name

The element name MUST be {concept name}.

6.2.2 Attributes

The element MUST have xbrli:contextRef and xbrli:unitRef attributes.

The element MUST have attributes with the following properties:

xbrli:contextRef The value of the xbrli:contextRef attribute MUST be equal to the value of the xbrli:id attribute of an xbrli:context element in the Target Document which is s-equal to the {context definition}.
xbrli:unitRef The value of the xbrli:unitRef attribute MUST be equal to the value of the xbrli:id attribute of an xbrli:unit element in the Target Document which is s-equal to the {unit definition}.

6.2.3 Children

The element MUST have descendant elements with the following properties:

xbrli:denominator The value of xbrli:denominator MUST be {denominator}.
xbrli:numerator The value of xbrli:numerator MUST be {numerator}.

7 The header element

7.1 Definition

The ix:header element contains the non-displayed portions of the Target Document and has the following properties:

Table 5: XML representation summary: ix:header element information item
<ix:header>

  Content: (xbrli:xbrl | ix:hidden?)

</ix:header>
Property Representation
{hidden} The children of the ix:hidden element.
{xbrl} The children of the xbrli:xbrl element.

7.1.1 Constraints on ix:header

There MUST be at least one ix:header element.

The ix:header element MUST NOT be a child of the head element.

The ix:header element MUST have exactly one xbrli:xbrl child element.

The ix:header element MUST have no more than one ix:hidden child element.

The ix:header element MUST be enclosed with Markup Elements which ensure that the ix:header element will not be displayed in the browser.

It is RECOMMENDED that the parent of the ix:header element be a div element which has a style attribute with the value display:none.

7.1.2 Constraints on xbrli:xbrl

The xbrli:xbrl element MUST NOT contain elements other than link:schemaRef, link:linkbaseRef, link:roleRef, link:arcroleRef, xbrli:context and xbrli:unit.

7.2 Mapping

For each link:schemaRef in the Inline XBRL Document there shall be a link:schemaRef in the Target Document which MUST be s-equal to the link:schemaRef in the Inline XBRL Document.

For each link:linkbaseRef in the Inline XBRL Document there shall be a link:linkbaseRef in the Target Document which MUST be s-equal to the link:linkbaseRef in the Inline XBRL Document.

For each link:roleRef in the Inline XBRL Document there shall be a link:roleRef in the Target Document which MUST be s-equal to the link:roleRef in the Inline XBRL Document.

For each link:arcroleRef in the Inline XBRL Document there shall be a link:arcroleRef in the Target Document which MUST be s-equal to the link:arcroleRef in the Inline XBRL Document.

8 The hidden element

8.1 Definition

The ix:hidden element is used to contain XBRL facts that are not to be displayed in the Inline XBRL Document, and has the following properties:

Table 6: XML representation summary: ix:hidden element information item
<ix:hidden>

  Content: (ix:footnoteLink | ix:fraction | ix:nonFraction | ix:nonNumeric | ix:tuple)*

</ix:hidden>
Property Representation
{footnoteLink} The ix:footnoteLink children of the ix:hidden element.
{fraction} The ix:fraction children of the ix:hidden element.
{nonFraction} The ix:nonFraction children of the ix:hidden element.
{nonNumeric} The ix:nonNumeric children of the ix:hidden element.
{tuple} The ix:tuple children of the ix:hidden element.

8.1.1 Constraints on ix:hidden

The ix:hidden element MUST be a child of the ix:header element.

If an ix:fraction, ix:nonFraction, ix:nonNumeric or ix:tuple is not to be displayed, it MUST be a child of ix:hidden.

9 The nonFraction element

9.1 Definition

The ix:nonFraction element denotes an XBRL numeric item which is an element which is not of type, nor derived from type, fractionItemType; and has the following properties:

Table 7: XML representation summary: ix:nonFraction element information item
<ix:nonFraction

  ix:format = string

  ix:name = string

  ix:order = positiveInteger

  ix:target = string

  ix:tupleRef = IDREF

  ix:scale = integer

  ix:sign = string

  xbrli:contextRef = IDREF

  xbrli:decimals = xbrli:decimalsType

  xbrli:precision = xbrli:precisionType

  xbrli:unitRef = IDREF >

</ix:nonFraction>
Property Representation
{concept name} The actual value of the ix:name attribute.
{context definition} The xbrli:context element in the Inline XBRL Document for which the actual value of the xbrli:id attribute is equal to the actual value of the xbrli:contextRef attribute.
{decimals} The actual value of the xbrli:decimals attribute.
{format transformation} The Transformation Rule as identified by the actual value of the ix:format attribute.
{precision} The actual value of the xbrli:precision attribute.
{reference} The actual value of the ix:tupleRef attribute.
{scale} The result of raising ten to the power of the actual value of the ix:scale attribute.
{sign} Shall be "-".
{target} The actual value of the ix:target attribute.
{tuple order} The actual value of the ix:order attribute.
{unit definition} The xbrli:unit element in the Inline XBRL Document for which the actual value of the xbrli:id attribute is equal to the actual value of the xbrli:unit attribute.
{value} The text content of the ix:nonFraction element.

It is common to include formatting in displayed numbers, such as group separators, which are not valid in the Inline XBRL Document. Inline XBRL uses Transformation Rules to transform such items into values which will be acceptable in the Target Document.

The ix:nonFraction element will either satisfy the validation rules for a given Transformation Rule or it will, in its un-transformed state, be capable of validation against the DTS for the Target Document. Both these conditions are covered by the requirement that the Target Document be XBRL-valid.

The display of numeric non-fractions in the Inline XBRL Document will often differ from the form in which those items are incorporated into the XBRL Instance. In financial statements, this is commonly done to allow numbers to be scaled and presented to the reader in thousands, millions or billions.

Inline XBRL provides a transformation mechanism that allows this treatment to be preserved in the Inline XBRL Document.

Where the scale of the displayed value in the Inline XBRL Document is different to that used in the XBRL Instance, the ix:nonFraction element is given an ix:scale attribute to indicate the required scaling value. For instance, if the Inline XBRL Document displays a value in units of thousands, it will be necessary to multiply the value of the ix:nonFraction by 1,000 to determine the correct value to be included in the XBRL Instance, and the ix:scale attribute is used to establish this.

The value of the ix:scale attribute shall be the appropriate scale factor (for instance, 1,000 in the previous example) expressed as an exponent of ten. Thus, if it is necessary to multiply the tagged value by 1,000 to determine the correct value to be included in the XBRL Instance, the value of the ix:scale attribute shall be 3.

Negative values are indicated by including an ix:sign attribute.

9.1.1 Constraints on ix:nonFraction

The ix:nonFraction element MUST have ix:name, xbrli:contextRef and xbrli:unitRef attributes.

The ix:nonFraction element MUST have either an xbrli:decimals attribute or an xbrli:precision attribute.

The ix:scale attribute MUST be an integer.

9.2 Mapping

For each ix:nonFraction element, there MUST exist an element in the same Target Document as that to which all other Inline XBRL Elements with the same {target} property are mapped to which has the following XML Properties:

9.2.1 Element name

The element name MUST be {concept name}.

9.2.2 Attributes

The element MUST have attributes with the following properties:

xbrli:contextRef The value of the xbrli:contextRef attribute is equal to the value of the xbrli:id attribute of an xbrli:context element in the Target Document which is s-equal to the {context definition}.
xbrli:decimals The value of the xbrli:decimals attribute is equal to {decimals}, if present, otherwise the attribute must be absent.
xbrli:precision The value of the xbrli:precision attribute is equal to {precision}, if present, otherwise the attribute must be absent.
xbrli:unitRef The value of the xbrli:unitRef attribute is equal to the value of the xbrli:id attribute of an xbrli:unit element in the Target Document which is s-equal to the {unit definition}.

9.2.3 Children

The element MUST have children with the following properties:

text content The text content is equal to the result of applying {format transformation} (if present) to {value}, multiplying by {scale}, if present, and changing the sign of the result if {sign} is present.

9.3 Example

Example 1: Nesting within an HTML table

Inline XBRL markup, showing placement of XBRL metadata within a typical HTML table structure.

<td class="rightalign">
<b>
<ix:nonFraction ix:name="pt:TangibleFixedAssets" xbrli:id="s2-1" xbrli:contextRef="e2003" xbrli:unitRef="GBP" xbrli:precision="4">
7464
</ix:nonFraction>
</b>
</td>
<td class="rightalign">
<ix:nonFraction ix:name="pt:IntangibleFixedAssets" xbrli:contextRef="e2003" xbrli:unitRef="GBP" xbrli:precision="3">
750
</ix:nonFraction>
</td>

Resulting XBRL Instance.

<pt:TangibleFixedAssets xbrli:id="s2-1" xbrli:contextRef="e2003" xbrli:unitRef="GBP" xbrli:precision="4">
7464
</pt:TangibleFixedAssets>
<pt:IntangibleFixedAssets xbrli:contextRef="e2003" xbrli:unitRef="GBP" xbrli:precision="3">
750
</pt:IntangibleFixedAssets>

10 The nonNumeric element

10.1 Definition

The ix:nonNumeric element denotes an XBRL non-numeric item which has the following properties:

Table 8: XML representation summary: ix:nonNumeric element information item
<ix:nonNumeric

  ix:format = string

  ix:name = string

  ix:order = positiveInteger

  ix:target = string

  ix:tupleRef = IDREF

  xbrli:contextRef = IDREF >

  Content: ( any element | any text nodes )*

</ix:nonNumeric>
Property Representation
{concept name} The actual value of the ix:name attribute.
{context definition} The xbrli:context element in the Inline XBRL Document for which the actual value of the xbrli:id attribute is equal to the actual value of the xbrli:contextRef attribute.
{format transformation} The Transformation Rule as identified by the actual value of the ix:format attribute.
{reference} The actual value of the ix:tupleRef attribute.
{target} The actual value of the ix:target attribute.
{tuple order} The actual value of the ix:order attribute.
{value} The concatenation of all the children text nodes (determined recursively) except those which are descendants of a descendant ix:exclude element.

Certain XBRL items, such as those of type xbrli:booleanItemType, xbrli:dateTimeItemType and xbrli:timeItemType (amongst others) have content constraints which may not be met when displayed in the Inline XBRL Document. Inline XBRL uses Transformation Rule to transform such items into values which will be acceptable in the Target Document.

The ix:nonNumeric element will either satisfy the validation rules for a given Transformation Rule or it will, in its un-transformed state, be capable of validation against the DTS for the Target Document. Both these conditions are covered by the requirement that the Target Document be XBRL-valid.

The lack of restriction on the child nodes of ix:nonNumeric allows Inline XBRL Elements to be nested. This can be used, for instance, to allow a number embedded in a paragraph of text to appear in the Target Document both as a non-numeric item and, separately, as a numeric item.

The ix:exclude element can be used to exclude arbitrary data from the {value} property of ix:nonNumeric. This allows, for instance, page header information to be excluded from a paragraph which crosses page breaks. The ix:exclude tag does not prevent descendant elements from being processed elsewhere.

10.1.1 Constraints on ix:nonNumeric

The ix:nonNumeric element MUST have ix:name and xbrli:contextRef attributes.

10.2 Mapping

For each ix:nonNumeric element, there MUST exist an element in the same Target Document as that to which all other Inline XBRL Elements with the same {target} property are mapped to which has the following XML Properties:

10.2.1 Element name

The element name MUST be {concept name}.

10.2.2 Attributes

The element MUST have attributes with the following properties:

xbrli:contextRef The value of the xbrli:contextRef attribute MUST be equal to the value of the xbrli:id attribute of an xbrli:context element in the Target Document which is s-equal to the {context definition}.

10.2.3 Children

The element MUST have children with the following properties:

text content The text content is equal to the result of applying {format transformation} (if present) to {value}.

10.3 Example

Example 2: Nesting within Markup Elements

Inline XBRL markup, showing XBRL content interspersed with formatting code.

<ix:nonNumeric ix:name="pt:TypeOrdinaryShare" xbrli:contextRef="y2003">
<i>
<b>
A
</b>
shares
</i>
</ix:nonNumeric>

Resulting XBRL Instance.

<pt:TypeOrdinaryShare xbrli:contextRef="y2003">
A shares
</pt:TypeOrdinaryShare>

11 The tuple element

11.1 Definition

The ix:tuple element denotes an XBRL tuple which has the following properties:

Table 9: XML representation summary: ix:tuple element information item
<ix:tuple

  ix:tupleID = ID

  ix:name = string

  ix:order = positiveInteger

  ix:target = string

  ix:tupleRef = IDREF

  Content: ( any element with a namespace name other than [ix:] | ix:fraction | ix:nonFraction | ix:nonNumeric | ix:tuple | any text nodes )*

</ix:tuple>
Property Representation
{concept name} The actual value of the ix:name attribute.
{id} The actual value of the ix:tupleID attribute.
{reference} The actual value of the ix:tupleRef attribute.
{target} The actual value of the ix:target attribute.
{tuple order} The actual value of the ix:order attribute.
{value set} All children with the http://www.xbrl.org/2008/inlineXBRL namespace name and, if {id} is present, all elements for which {reference} is equal to {id} of the current ix:tuple element.

The display of tuples in the Inline XBRL Document will often differ from the form in which they are structured within the XBRL Instance. Inline XBRL has mechanisms to provide for both the correct ordering of tuple content and for the association of tuples with their children where cross-nesting or the need to prevent the display of particular children would make this otherwise difficult to achieve.

Where the requirements of the display model do not allow what would normally be the children of the tuple to be nested within that tuple, an ix:tupleID attribute is used to associate a tuple with its children.

Where correct order of children is significant for satisfying the tuple's content model, an ix:order is provided to enforce the correct order.

The following examples illustrate ordering and cross-nesting of tuples:

Example 3: Ordering of tuples

Inline XBRL markup, showing tuples displayed out of order.

<ix:tuple name="ae:DepreciationRate">
<td>
<ix:nonNumeric name="ae:CategoryItem" ix:order="1" contextRef="y2003">
Land &amp; Buildings
</ix:nonNumeric>
</td>
<td style="padding-left: 40px">
<ix:nonFraction name="ae:RateDepreciation" ix:order="3" contextRef="y2003" unitRef="pure" precision="2">
10
</ix:nonFraction>
%
</td>
<td>
<ix:nonNumeric name="ae:TypeDepreciation" ix:order="2" contextRef="y2003">
straight line
</ix:nonNumeric>
</td>
</ix:tuple>

Resulting XBRL instance.

<ae:DepreciationRate>
<ae:CategoryItem contextRef="y2003">
Land &amp; Buildings
</ae:CategoryItem>
<ae:TypeDepreciation contextRef="y2003">
straight line
</ae:TypeDepreciation>
<ae:RateDepreciation contextRef="y2003" unitRef="pure" precision="2">
10
</ae:RateDepreciation>
</ae:DepreciationRate>

Example 4: Cross-nested tuples

Inline XBRL markup, showing hidden tuple in header and children of different tuples sharing the same table rows.

<div style="display:none">
<ix:header>
[...]
<ix:hidden>
<ix:nonNumeric ix:tupleRef="2" ix:name="pt:descriptionsharesordebentures" contextRef="y2002">
£1 Ordinary shares
</ix:nonNumeric>
</ix:hidden>
</ix:header>
</div>
<table>
<tr>
<td>
<ix:tuple ix:name="ae:shareholding" ix:tupleID="1"/>
<ix:tuple ix:name="ae:shareholding" ix:tupleID="2"/>
<ix:nonNumeric ix:tupleRef="1" ix:name="pt:descriptionsharesordebentures" contextRef="y2003">
£1 Ordinary shares
</ix:nonNumeric>
</td>
<td>
<ix:nonFraction ix:tupleRef="1" ix:name="pt:sharesdirectororexecutive" precision="2" contextRef="e2003" unitRef="shares">
50
</ix:nonFraction>
</td>
<td>
<ix:nonFraction ix:tupleRef="2" ix:name="pt:sharesdirectororexecutive" precision="2" contextRef="e2002" unitRef="shares">
50
</ix:nonFraction>
</td>
</tr>
</table>

Resulting XBRL instance.

<xbrl>
[...]
<ae:shareholding>
<pt:descriptionsharesordebentures contextRef="y2003">
£1 Ordinary shares
</pt:descriptionsharesordebentures>
<pt:sharesdirectororexecutive precision="2" contextRef="e2003" unitRef="shares">
50
</pt:sharesdirectororexecutive>
</ae:shareholding>
<ae:shareholding>
<pt:descriptionsharesordebentures contextRef="y2002">
£1 Ordinary shares
</pt:descriptionsharesordebentures>
<pt:sharesdirectororexecutive precision="2" contextRef="e2002" unitRef="shares">
50
</pt:sharesdirectororexecutive>
</ae:shareholding>
</xbrl>

11.1.1 Constraints on ix:tuple

The ix:tuple element MUST have an ix:name attribute.

Any ix:tuple, ix:nonNumeric, ix:nonFraction or ix:fraction which is not the child of an ix:tuple and which does not have an ix:tupleRef attribute MUST NOT have an ix:order attribute.

If ordering is significant within a given tuple, the children of that tuple MUST have an ix:order attribute.

If any such element has an ix:order attribute then all its siblings and all other elements which share the same ix:tupleRef attribute MUST also have an ix:order attribute.

The values of all the ix:order attributes amongst sibling elements or elements with the same ix:tupleRef attribute MUST be unique sequential positive integers.

If the element has an ix:tupleID attribute there MUST be at least one other ix:fraction, ix:nonFraction, ix:nonNumeric or ix:tuple  element with a {reference} property equal to the {id} property of the ix:tuple.

The element MUST either have one or more ix:fraction, ix:nonFraction, ix:nonNumeric or ix:tuple  children, or have an ix:tupleID atttribute.

The {target} property of the ix:tuple elementMUST be equal to the {target} property of its children or, if the ix:tupleID attribute is present, the {target} property of all elements for whom the {reference} property is the equal to the {id} property of the ix:tuple.

11.2 Mapping

For each ix:tuple element, there MUST exist an element in the same Target Document as that to which all other Inline XBRL Elements with the same {target} property are mapped to which has the following XML Properties:

11.2.1 Element name

The element name MUST be {concept name}.

11.2.2 Children

The element MUST have children with the following properties:

child elements The child elements are {value set}, ordered in accordance with {tuple order} (if present).

12 Transformation rules

A Transformation Rule is a set of instructions which when applied to a value of a given type outputs a value in a format which when included in the Target Document will be XBRL-valid.

The following Transformation Rules are pre-defined:

Format Code Input format Output format Output type Comment
commadecimal nnnnnnnnn,nn nnnnnnnnn.nn ix:nonFraction Comma decimal separator
commadot nnn,nnn,nnn.nn nnnnnnnnn.nn ix:nonFraction Comma-separated numbers
dateslashus MM/DD/YY(YY) YYYY-MM-DD xbrli:dateItemType American dates with slashes
dateslasheu DD/MM/YY(YY) YYYY-MM-DD xbrli:dateItemType European dates with slashes
dotcomma nnn.nnn.nnn,nn nnnnnnnnn.nn ix:nonFraction Dot-separated numbers
spacedot nnn nnn nnn.nn nnnnnnnnn.nn ix:nonFraction Space-separated numbers

A normative list of additions to the list of Transformation Rules with normative rules for format conversions and sample transformation code will be maintained by XBRL International, Inc. at [location].

Appendix A References

IETF RFC 2119
IETF (Internet Engineering Task Force). "RFC 2119: Key words for use in RFCs to Indicate Requirement Levels"
Scott Bradner.
(See http://www.ietf.org/rfc/rfc2119.txt)
XBRL 2.1
XBRL International Inc.. "Extensible Business Reporting Language (XBRL) 2.1"
Phillip Engel, Walter Hamscher, Geoff Shuetrim, David vun Kannon, and Hugh Wallis.
(See http://www.xbrl.org/Specification/XBRL-RECOMMENDATION-2003-12-31+Corrected-Errata-2006-12-18.htm)
XML
W3C (World Wide Web Consortium). "Extensible Markup Language (XML) 1.0 (Fourth Edition)"
Tim Bray, Jean Paoli, C. M. Sperberg-McQueen, Eve Maler, and François Yergeau.
(See http://www.w3.org/TR/REC-xml/)
XML Infoset
W3C (World Wide Web Consortium). "XML Information Set (Second Edition)"
John Cowan, and Richard Tobin.
(See http://www.w3.org/TR/2004/REC-xml-infoset-20040204)
XML SCHEMA STRUCTURES
W3C (World Wide Web Consortium). "XML Schema Part 1: Structures Second Edition"
Henry S. Thompson, David Beech, Murray Maloney, and Noah Mendelsohn.
(See http://www.w3.org/TR/xmlschema-1/)

Appendix B Intellectual property status (non-normative)

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

Appendix C Acknowledgements (non-normative)

This document could not have been written without the contributions of many people including the participants in the Rendering Working Group.

Appendix D Document history (non-normative)

DateAuthorDetails
29 November 2007Ian Stokes-Rees

Initial draft of Inline XBRL standard.

5 December 2007Ian Stokes-Rees

Minor changes prior to circulation.

16 December 2007Philip Allen

Addition of references to RFC 2119.

Clarifications to tuple ordering and hidden section.

Addition of open issues from Wiki.

7 January 2008Philip Allen

Changed "mf" to "ix".

Removed remaining references to microformats.

Major overhaul of numeric handling.

15 January 2008Philip Allen

Gave all inline tags the ix: namespace name.

Revised entire document to specify syntax and processing separately.

16 January 2008Philip Allen

Added ix:exclude and applied to ix:onNumeric.{value}.

Relaxed content model for ix:onNumeric.

17 January 2008Philip Allen

Changed ref/id to tupleRef/tupleID respectively.

Removed dependency on Conformant Processor in definition of Inline XBRL Document.

Changed a couple of musts to MUST.

Removed unneccessary addressing REQUIREMENT for ix:header.

21 January 2008Philip Allen

Fixed spelling typo.

Changed content models for ix:hidden and ix:fraction.

Removed unitRef from 10.2.2 (nonNumeric).

Put xbrli:context and xbrli:unit into xbrli:xbrl.

Redefined Markup Element.

Fixed namespaces on ix:hidden content model.

Fixed broken {text content} model for ix:nonFraction.

Introduced multiple Target Documents.

Added explanatory note on multiple Target Documents.

Added rule to prevent tuples crossing multiple Target Documents.

Added boilerplate for Draft PWD

Appendix E Errata corrections in this document

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 Rendering Working Group up to and including 23 January 2008. Hyperlinks to relevant e-mail threads may only be followed 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.