Copyright ©2008 XBRL International Inc., All Rights Reserved.
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.
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.
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 Set
3.2 The Target Document
3.3 The Conformant Processor
3.4 The Validating 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, denominator and numerator elements
6.1 Definitions
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
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 references element
11.1 Definition
11.1.1 Constraints on
ix:references
11.2 Mapping
12 The resources element
12.1 Definition
12.1.1 Constraints on
ix:resources
12.2 Mapping
13 The tuple element
13.1 Definition
13.1.1 Constraints on ix:tuple
13.2 Mapping
13.2.1 Element name
13.2.2 Children
14 Transformation rules
A Relationship to other specifications (non-normative)
B References
C Intellectual property status (non-normative)
D Acknowledgements (non-normative)
E Document history (non-normative)
F Errata corrections in this document
1 Inline XBRL Elements
2 Inline XBRL attributes
3
XML representation summary: ix:exclude
element
information item
4
XML representation summary: footnoteLink
element information item
5
XML representation summary: ix:fraction
element information item
6
XML representation summary:
ix:denominator
element information item
7
XML representation summary: ix:numerator
element
information item
8
XML representation summary: ix:header
element
information item
9
XML representation summary: ix:hidden
element
information item
10
XML representation summary: ix:nonFraction
element information item
11
XML representation summary: ix:nonNumeric
element information item
12
XML representation summary: ix:references
element information item
13
XML representation summary: ix:resources
element information item
14
XML representation summary: ix:tuple
element
information item
1 Nesting within an HTML table
2 Nesting within Markup Elements
3 Ordering of tuples
4 Cross-nested tuples
Conformant Processor
Inline XBRL Document
Inline XBRL Document Set
Inline XBRL Element
Markup Element
Target Document
Transformation Rules
Validating Conformant Processor
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.
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, IDREF and IDREFS 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 discoverable taxonomy set, extended link, and [etc.] in this document are to be interpreted as described in the [XBRL 2.1] specification.
This specification defines an XML namespace to be used for XML components
described herein. It is http://www.xbrl.org/2008/inlineXBRL
.
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 |
The Inline XBRL Document Set is a group of one or more Inline XBRL Documents which results in one or more Target Documents when transformed according to the mapping rules prescribed in this specification.
An Inline XBRL Document is a well-formed XML document containing both Markup Elements, Inline XBRL Elements and certain other elements as defined herein.
Within an 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.
Each one of the Inline XBRL Elements in an 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:
Name |
---|
ix:denominator
|
ix:exclude
|
ix:footnoteLink
|
ix:fraction
|
ix:header
|
ix:hidden
|
ix:nonFraction
|
ix:nonNumeric
|
ix:numerator
|
ix:references
|
ix:resources
|
ix:tuple
|
A Markup Element is an XML element which does not have its namespace name listed in Section 2.3.
The following Inline XBRL attributes are defined in this specification:
Name |
---|
ix:format
|
ix:name
|
ix:order
|
ix:scale
|
ix:sign
|
ix:target
|
ix:tupleID
|
ix:tupleRef
|
A Target Document is the XBRL-valid XBRL instance document represented by metadata in the Inline XBRL Document Set.
An Inline XBRL Document Set
can be used to define multiple Target
Documents by setting the ix:target
attributes on certain
Inline XBRL Elements.
For each unique value of the {target} property on such Inline XBRL Elements there MUST exist a Target Document containing only such XBRL facts and XLink relationships as are required by the mapping rules prescribed in this specification for the Inline XBRL Elements with that value of the {target} property.
A Conformant Processor is a processor which transforms an Inline XBRL Document Set 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.
A Validating Conformant Processor is a Conformant Processor that validates the Inline XBRL Document Set in conformance with the rules described in the [Inline XBRL Schema] and the [Inline XBRL Schematron Rules].
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:
<ix:exclude >
Content: ( any text node | 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.
The ix:footnoteLink
element represents the
link:footnoteLink
element, and is an
extended link.
The footnoteLink
element information item has
the following properties:
<ix:footnoteLink
ix:footnoteRefs = IDREFS xl:id = ID xlink:role = anyURI xlink:title = string xlink:type = string {any attributes with the [xml:] namespace name} > Content: (
any children with a namespace name other than [ix:] |
</ix:footnoteLink>
|
|
Property | Representation |
---|---|
{concept-footnote relationships} |
The set of XLink relationships between the {footnotes} property
and the link:loc children of
ix:footnoteLink represented by the
link:footnoteArc children of
ix:footnoteLink .
|
{footnotes} |
The set of link:footnote children of
ix:hidden for which the {footnote id} property matches the
{footnote references} property of ix:footnoteLink and the
link:footnote children of
ix:footnoteLink .
|
{footnote references} |
The set of discrete references contained in the actual value of
the ix:footnoteRefs attribute.
|
{id} | The actual value of the xl:id attribute. |
{role} | The actual value of the xlink:role attribute. |
{title} | The actual value of the xlink:title attribute. |
{type} | The actual value of the xlink:type attribute. |
Note that xl:title
is an abstract element and
therefore cannot appear itself, although an element in the
xl:title
substitution group may.
Some XBRL Instances use multiple
link:footnote
elements in a single
link:footnoteLink
element in order, for example,
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 placed inside the
ix:hidden
element.
The
ix:footnoteLink
element MUST
adhere to the validation rules for extended links described in
Section 3.5.3 "Extended links" in the [XBRL 2.1] specification,
where the discoverable taxonomy set is taken to be the current
Inline XBRL Document.
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:
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.
link:footnote
element of S is
s-equal to the link:footnote
element of T.
arcrole
and role
properties of S and
T are equal.
The ix:fraction
element denotes an XBRL
fact which is an element of type, or derived
from type, fractionItemType
; and has the following
properties:
<ix:fraction
ix:name = QName ix:order = positiveInteger ix:target = NCName ix:tupleRef = IDREF contextRef = IDREF unitRef = IDREF > Content: ( any text node | any children with a namespace name other than [ix:] | </ix:fraction>
|
|
Property | Representation |
---|---|
{concept name} | The
actual value of the
ix:name attribute.
|
{target} |
The Target Document identified by
the actual value of the ix:target attribute or, if
absent, the default Target
Document.
|
{tuple order} | The
actual value of the
ix:order attribute.
|
{context definition} |
The xbrli:context element in the Inline XBRL Document Set for which
the actual value of the id attribute is equal
to the actual value of the contextRef
attribute.
|
{unit definition} |
The xbrli:unit element in the Inline XBRL Document Set for which
the actual value of the id attribute is equal
to the actual value of the xbrli:unit attribute.
|
{reference} |
The actual value of the ix:tupleRef attribute.
|
The ix:denominator
element denotes an XBRL
denominator element; and has the following
properties:
<ix:denominator
ix:format = string ix:scale = integer ix:sign = string > </ix:denominator>
|
|
Property | Representation |
---|---|
{denominator format transformation} |
The Transformation Rule as
identified by the actual value of the ix:format
attribute.
|
{denominator scale} |
The result of raising ten to the power of the actual value of the
ix:scale attribute.
|
{denominator negative sign} |
If the ix:sign attribute is present, shall be
true, otherwise false.
|
{denominator value} |
The text content of the ix:denominator
element.
|
The ix:numerator
element denotes an XBRL
numerator element; and has the following
properties:
<ix:numerator
ix:format = string ix:scale = integer ix:sign = string > </ix:numerator>
|
|
Property | Representation |
---|---|
{numerator format transformation} |
The Transformation Rule as
identified by the actual value of the ix:format
attribute.
|
{numerator scale} |
The result of raising ten to the power of the actual value of the
ix:scale attribute.
|
{numerator negative sign} |
If the ix:sign attribute is present, shall be
true, otherwise false.
|
{numerator value} |
The text content of the ix:numerator
element.
|
The ix:denominator
and ix:numerator
elements support scaling, negative numbers and format
transformations as described in Section 9 below.
ix:fraction
The ix:fraction
element
MUST have ix:name
,
contextRef
and 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.
The ix:sign
attribute, where present, MUST have
the value "-".
For each ix:fraction
element, there
MUST exist in the Target
Document identified by the {target} property an element
which has the following XML Properties:
The element MUST have
contextRef
and unitRef
attributes.
The element MUST have attributes with the following properties:
contextRef
|
The value of the contextRef attribute
MUST be equal to the value of the id attribute of an xbrli:context element in the
Target Document which is
s-equal to the {context definition}.
|
unitRef
|
The value of the unitRef attribute
MUST
be equal to the value of the id attribute of an
xbrli:unit element in the Target Document which is
s-equal to the {unit definition}.
|
The element MUST have child elements with the following properties:
xbrli:denominator
|
The value of xbrli:denominator MUST be
equal to the result of applying {denominator format transformation} (if
present) to {denominator value}, multiplying by {denominator scale}, if
present, and changing the sign of the result if {denominator negative sign} is
true.
|
xbrli:numerator
|
The value of xbrli:numerator MUST be equal
to the result of applying {numerator format transformation} (if present) to
{numerator value}, multiplying by {numerator scale}, if present, and changing
the sign of the result if {numerator negative sign} is true.
|
The ix:header
element contains the
non-displayed portions of the Target
Document and has the following properties:
<ix:header>
Content: ( </ix:header>
|
|
Property | Representation |
---|---|
{hidden} |
The children of the ix:hidden
element.
|
{references} |
The children of the ix:references
element.
|
{resources} |
The children of the ix:resources
element.
|
ix:header
There MUST be at least one ix:header
element in the Inline
XBRL Document Set.
The ix:header
element MUST
NOT be a child of the head
element.
The ix:header
element
MUST have no more than one ix:hidden
child element.
The ix:header
element
MUST have no more than one ix:resources
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
.
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:
ix:hidden
element
information item
<ix:hidden>
Content: ( </ix:hidden>
|
|
Property | Representation |
---|---|
{footnote} |
The link:footnote children of the
ix:hidden element.
|
{footnote id} |
For each link:footnote child of the
ix:hidden element, the actual value of the
id attribute.
|
{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.
|
ix:hidden
The
ix:hidden
element MUST
be a child of the
ix:header
element.
If a link:footnote
, ix:fraction
,
ix:nonFraction
, ix:nonNumeric
or
ix:tuple
element is not to be displayed, it
MUST be a child of ix:hidden
.
The link:footnote
element, when a child of the
ix:hidden
element, MUST have
an id
attribute.
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:
<ix:nonFraction
ix:format = string ix:name = QName ix:order = positiveInteger ix:target = NCName ix:tupleRef = IDREF ix:scale = integer ix:sign = string contextRef = IDREF decimals = xbrli:decimalsType precision = xbrli:precisionType 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 Set for which
the actual value of the id attribute is equal
to the actual value of the contextRef
attribute.
|
{decimals} |
The actual value of the decimals attribute.
|
{format transformation} |
The Transformation Rule as
identified by the actual value of the ix:format
attribute.
|
{precision} |
The actual value of the 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} | If the ix:sign attribute is present, shall be "-".
|
{target} |
The Target Document identified by
the actual value of the ix:target attribute or, if
absent, the default Target
Document.
|
{tuple order} |
The actual value of the ix:order attribute.
|
{unit definition} |
The xbrli:unit element in the Inline XBRL Document Set for which
the actual value of the 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.
For each ix:nonFraction
element, there
MUST exist in the Target
Document identified by the {target} property an element
which has the following XML Properties:
The element MUST have attributes with the following properties:
contextRef
|
The value of the contextRef attribute is equal to the value
of the id attribute of an xbrli:context
element in the Target
Document which is s-equal to the {context definition}.
|
decimals
|
The value of the decimals attribute is equal to {decimals},
if present, otherwise the attribute must be absent.
|
precision
|
The value of the precision attribute is equal to
{precision}, if present, otherwise the attribute must be absent.
|
unitRef
|
The value of the unitRef attribute is equal to the value of
the id attribute of an xbrli:unit
element in the Target
Document which is s-equal to the {unit definition}.
|
Resulting XBRL Instance.
The ix:nonNumeric
element denotes an XBRL
non-numeric item which has the following properties:
<ix:nonNumeric
ix:format = string ix:name = QName ix:order = positiveInteger ix:target = NCName ix:tupleRef = IDREF 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 Set for which
the actual value of the id attribute is equal
to the actual value of the 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 Target Document identified by
the actual value of the ix:target attribute or, if
absent, the default Target
Document.
|
{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.
For each ix:nonNumeric
element, there
MUST exist in the Target
Document identified by the {target} property an element
which has the following XML Properties:
The element MUST have attributes with the following properties:
contextRef
|
The value of the contextRef attribute
MUST be equal to the value of the id
attribute of an xbrli:context element in the
Target Document which is
s-equal to the {context definition}.
|
The ix:references
element is used to contain
reference elements which are required by a given Target Document, and has the following
properties:
<ix:references>
ix:target = NCName Content: ( </ix:references>
|
|
Property | Representation |
---|---|
{target} |
The Target Document identified by
the actual value of the ix:target attribute or, if
absent, the default Target
Document.
|
{value set} | All children. |
ix:references
The ix:references
element
MUST be a child of the
ix:header
element.
There MUST be at least one ix:references
element in the Inline
XBRL Document Set.
For each link:schemaRef
in {value set} there shall be a
link:schemaRef
in the Target
Document identified by the {target} property which
MUST be s-equal to the
link:schemaRef
in {value set}.
For each link:linkbaseRef
in {value set} there shall be a
link:linkbaseRef
in the Target
Document identified by the {target} property which
MUST be s-equal to the
link:linkbaseRef
in {value set}.
The ix:resources
element is used to contain
reference elements which are required by one or more Target Documents, and has the following
properties:
<ix:resources>
Content: ( </ix:resources>
|
|
Property | Representation |
---|---|
{value set} | All children. |
ix:resources
The ix:resources
element
MUST be a child of the
ix:header
element.
There MUST be at least one ix:resources
element in the Inline
XBRL Document Set.
For each link:arcroleRef
R in {value set} with
link:arcroleURI
property U there MUST be
a link:arcroleRef
element T in each Target Document in which there is a
link:footnoteLink
element with an
xlink:arcrole
attribute with a value equal to
that of U, such that T is s-equal to R.
For each link:roleRef
R in {value set} with
link:roleURI
property U there MUST be a
link:roleRef
element T in each Target Document in which there is a
link:footnoteLink
element with an
xlink:role
attribute with a value equal to that
of U, such that T is s-equal to R.
The ix:tuple
element denotes an XBRL tuple
which has the following properties:
<ix:tuple
ix:tupleID = ID ix:name = QName ix:order = positiveInteger ix:target = NCName ix:tupleRef = IDREF Content: ( any element with a namespace name other than [ix:] | </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 Target Document identified by
the actual value of the ix:target attribute or, if
absent, the default Target
Document.
|
{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:
Inline XBRL markup, showing tuples displayed out of order.
Resulting XBRL instance.
Inline XBRL markup, showing hidden tuple in header and children of different tuples sharing the same table rows.
Resulting XBRL instance.
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
attributeMUST also have an
ix:order
attribute.
The values of all the ix:order
attributes amongst sibling
elements or elements with the same
ix:tupleRef
attributeMUST 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
element
MUST 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
.
For each ix:tuple
element, there
MUST exist in the Target
Document identified by the {target} property an element
which has the following XML Properties:
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 non-normative list gives examples of Transformation Rules:
Format Code | Input format | Output format | Output type | Comment |
---|---|---|---|---|
commadecimal | nnnnnnnnn,nn | nnnnnnnnn.nn |
xs:decimal
|
Comma decimal separator |
commadot | nnn,nnn,nnn.nn | nnnnnnnnn.nn |
xs:decimal
|
Comma-separated numbers |
dateslashus | MM/DD/YY(YY) | YYYY-MM-DD |
xs:dateTime
|
American dates with slashes |
dateslasheu | DD/MM/YY(YY) | YYYY-MM-DD |
xs:dateTime
|
European dates with slashes |
dotcomma | nnn.nnn.nnn,nn | nnnnnnnnn.nn |
xs:decimal
|
Dot-separated numbers |
spacedot | nnn nnn nnn.nn | nnnnnnnnn.nn |
xs:decimal
|
Space-separated numbers |
The normative list of Transformation Rules and associated transformation code will be accessible through a registry which will be maintained under the authority of XBRL International, Inc. The registry mechanism will operate in accordance with a forthcoming registry specification.
This specification uses [XBRL 2.1] and [XML]. By incorporating metadata within the body of an HTML document it carries out a similar task to [MathML] and [SVG], and to that envisaged by both [Microformats] and [HTML5]. Between these standards, however, there is a divergence of approach to the inline encapsulation of metadata.
[MathML] and [SVG] both allow metadata to be incorporated as elements within the HTML document. This is the approach taken by this specification. [Microformats] and [HTML5], however, both require metadata to be incorporated as attributes to existing HTML elements. The vocabulary for [HTML5] is currently a working draft.
Incorporating XBRL-based metadata within attribute values would add a further layer of complexity to the Inline XBRL Document and be more difficult to comprehend without adding any tangible benefits. The present approach depends upon web browsers continuing not to display XML elements that are not HTML, and this behaviour is very unlikely to change in the foreseeable future.
The present specification provides a clear mechanism for encapsulating [XBRL 2.1] metadata within HTML documents, and is supported by a schema which complies with [Modular XHTML]. The attribute-based alternative, in contrast, depends upon an approach which is still in flux, and likely to remain unstable for some time to come, and therefore should not be used for the present specification.
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).
This document could not have been written without the contributions of many people including the participants in the Rendering Working Group.
Date | Author | Details |
---|---|---|
29 November 2007 | Ian Stokes-Rees |
Initial draft of Inline XBRL standard. |
05 December 2007 | Ian Stokes-Rees |
Minor changes prior to circulation. |
16 December 2007 | Philip Allen |
Addition of references to RFC 2119. Clarifications to tuple ordering and hidden section. Addition of open issues from Wiki. |
07 January 2008 | Philip Allen |
Changed "mf" to "ix". Removed remaining references to microformats. Major overhaul of numeric handling. |
15 January 2008 | Philip Allen |
Gave all inline tags the ix: namespace name. Revised entire document to specify syntax and processing separately. |
16 January 2008 | Philip Allen |
Added
Relaxed content model for
|
17 January 2008 | Philip 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 2008 | Philip 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. |
08 February 2008 | Philip Allen |
Clarified the wording around the {target} property and the creation of Target Documents. Introduced Inline XBRL Document Set to clarify the handling of multiple Inline XBRL Documents. Changed ix:name to QName. [WCH] Changed ix:target to NCName. [WCH] Replaced xbrli:xbrl with ix:references and ix:resources. Fixed content models. |
14 February 2008 | Ian Stokes-Rees |
Updated text to be as close to schema-compatible as possible. |
26 February 2008 | Philip Allen |
Changed ix:target back to string. [IJS] Added definitions for ix:denominator and ix:numerator. [IJS] Corrected xbrli:id to id. [PDW] Removed namespace from contextRef. [IJS] Removed namespace from unitRef. [IJS] Removed namespace from decimals. [IJS] Removed namespace from precision. [IJS] Added text nodes to ix:fraction. [WCH] Added text nodes to ix:exclude. [WCH] |
12 March 2008 | Philip Allen |
Fixed camel-casing in example #4. [Bill Palmer] Added verbiage around the use of ix:target and changed back to NCName. Corrected depreciation figure in example #3. [Bill Palmer] |
24 April 2008 | Philip Allen |
Added note to the effect that xl:title is abstract. Changed content rule for ix:footnoteLink. |
30 April 2008 | Philip Allen |
Completed property representations for ix:footnoteLink. Corrected reference for extended links. |
09 May 2008 | Philip Allen |
Added appendix describing relationship with other specifications. Added references relating to the new appendix. Made the Transformation Rules non-normative and introduced a forthcoming registry specification. Added Validating Conformant Processor. Added ix:footnoteRefs to ix:footnoteLink. Added {footnotes} and {footnote refs} properties. |
10 May 2008 | Walter Hamscher |
Corrected the output types in the Transformation Rules table. Grammatical and typo corrections to new appendix. |
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 14 May 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.