XBRL Generic Links 1.0

Public Working Draft 07 March 2008

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

This version:
<http://www.xbrl.org/Specification/gnl/PWD-2008-03-07/gnl-PWD-2008-03-07.html>
Editors:
Mark Goodhand, DecisionSoft Ltd <mrg@decisionsoft.com>
Ignacio Hernandez-Ros, Reporting Estandar S.L. <ignacio@hernandez-ros.com>
Geoff Shuetrim, Galexy <geoff@galexy.net>

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 specification-feedback@xbrl.org, and to submit notification of any relevant patent rights of which they are aware and to provide supporting documentation.

Abstract

XBRL reports make business information available in an open, structured, machine-readable form. The data points in a report can be qualified by any number of dimensions, but are always associated with a time period, a business entity (such as a corporation), and a reporting concept, such as revenue.

The reporting concepts are defined in XBRL taxonomies. Beyond defining a vocabulary for reports, taxonomies contain valuable metadata -- relationships between concepts, human-readable labels, and links to authoritative literature.

This specification aims to facilitate the creation of new kinds of metadata by providing additional concrete linking components, as well as guidance for the definition of custom linking components.

Table of Contents

1 Introduction
1.1 Background
1.2 Relationship to other work
1.3 Language independence
1.4 Terminology
1.5 Document conventions (non-normative)
1.6 Namespaces and namespace prefixes
2 Syntax
2.1 Generic links
2.1.1 @xlink:role attributes on generic links
2.1.2 @xlink:role attributes on resources in generic links
2.1.3 Locators in generic links
2.2 Generic arcs
2.2.1 xlink:arcrole attributes on generic arcs

Appendices

A Normative schema
B Defining Custom Linking Components (non-normative)
B.1 Custom extended links
B.2 Custom arcs
B.3 Custom resources
C References
D Intellectual property status (non-normative)
E Acknowledgements (non-normative)
F Document history (non-normative)
G Errata corrections in this document

Table

1 Namespaces and namespace prefixes

Example

1 Content model for an extended link that can force document discovery

Definitions

custom arc
custom extended link
custom resource
generic arc
generic link


1 Introduction

XBRL taxonomies make extensive use of XLink [XLINK] to declare various kinds of relationships that supplement the information and constraints provided by XML Schema. The XBRL 2.1 Specification [XBRL 2.1] defines a number of standard XLink extended links, arcs, roles and arcroles for use with concepts, the basic building blocks of an XBRL taxonomy. These include the following elements:

While these constructs are useful (indeed because they are so useful) one quickly finds oneself wishing to use the power of XLink to associate information with, and express relationships between XML elements that are not XBRL concepts.

This specification defines an extended link (<gen:link>) and an arc (<gen:arc>) which are capable of establishing relationships between arbitrary XML elements.

This specification does not in any way alter the XBRL Specification [XBRL 2.1]. In particular, section 3.5, which defines the general semantics for XBRL relationships (how they are defined, partitioned, prohibited, and reintroduced) and section 3.2, which defines the rules of DTS discovery, apply to generic extended links, arcs, and resources in the same way that they apply to the standard arcs and resources.

However, this specification does specify a few additional constraints, which are clearly marked. As a starting point, all processors claiming conformance with this specification MUST enforce the constraints expressed in the Schema for generic links in Appendix A.

Finally, in Appendix B, this specification provides some non-normative guidance for the creation of custom linking constructs.

1.1 Background

Many extensions of the XBRL Specification [XBRL 2.1] make use of custom link syntax. This specification provides guidance on the use of custom links and provides concrete syntax that can be leveraged by extensions of the XBRL Specification.

1.2 Relationship to other work

This specification depends upon the XBRL Specification [XBRL 2.1]. In the event of any conflicts between this specification and the specifications upon which it depends, this specification does not prevail.

1.3 Language independence

The official language of XBRL International's own work products is English and the preferred spelling convention is UK English.

1.4 Terminology

This specification is consistent with the definitions of any of the terms defined in specifications that it depends on.

1.5 Document conventions (non-normative)

Documentation conventions follow those set out in the XBRL Variables Specification [VARIABLES].

1.6 Namespaces and namespace prefixes

Namespace prefixes [XML NAMES] will be used for elements and attributes in the form ns:name where ns is the namespace prefix and name is the local name. Throughout this specification, the mappings from namespace prefixes to actual namespaces is consistent with Table 1.

The prefix column in Table 1 is non normative. The namespace URI column is normative.

Table 1: Namespaces and namespace prefixes
Prefix Namespace URI
gen http://xbrl.org/2008/generic
xbrlgene http://xbrl.org/2008/generic/error
link http://www.xbrl.org/2003/linkbase
xlink http://www.w3.org/1999/xlink
eg http://example.com/

2 Syntax

This section defines some concrete linking components that can be used to establish relationships involving arbitrary XML elements.

2.1 Generic links

A generic link is an XBRL extended link that is in the substitution group of the <gen:link> element.

The syntax for the <gen:link> element is defined by the normative schema supplied with this specification.

Generic links can be used in any XBRL linkbase [XBRL 3.5.2], subject to the restrictions imposed by @xlink:role attributes on any <link:linkbaseRef> elements that reference the linkbase [XBRL 4.3.4].

2.1.1 @xlink:role attributes on generic links

The @xlink:role attribute serves the same purpose on generic links as it serves on the standard extended links defined by the XBRL 2.1 specification -- it partitions relationships of the same type into disjoint networks.

The value, V, of the @xlink:role attribute on a generic link MUST be an absolute URI.

If the value V is not the standard extended link role (http://www.xbrl.org/2003/role/link), then the ancestor <link:linkbase> element of the generic link MUST have a child <link:roleRef> element with V as the value of its @roleURI attribute.

The <link:roleType> element pointed to by the <link:roleRef> element with @roleURI attribute equal to V MUST contain a <link:usedOn> child element with a QName value that has namespace http://xbrl.org/2008/generic and local name link.

2.1.2 @xlink:role attributes on resources in generic links

If a resource in a generic link has a @xlink:role attribute, then the value, V, of that @xlink:role attribute MUST be an absolute URI.

The ancestor <link:linkbase> element of the resource MUST have a child <link:roleRef> element with V as the value of its @roleURI attribute.

The <link:roleType> element pointed to by the <link:roleRef> element with @roleURI attribute equal to V MUST contain a <link:usedOn> child element with a QName value with a namespace equal to the namespace of the resource and with a local name equal to the local name of the resource.

2.1.3 Locators in generic links

Although the normative schema in Appendix A allows any element that is in the substitution group for the <link:loc> element to appear within a generic link, users should be aware that DTS discovery [XBRL 3.2] is only defined for locators expressed by the <link:loc> element. Any schema or linkbase referenced only by locators expressed by elements other than <link:loc> will not be included in the DTS.

The targets of @xlink:href attributes on <link:loc> elements in generic links are not constrained by this specification; locators in generic links MAY point to arbitrary XML elements.

2.2 Generic arcs

A generic arc is an XBRL arc that is in the substitution group of the <gen:arc> element.

The syntax for the <gen:arc> element is defined by the normative schema supplied with this specification.

Generic arcs typically appear inside generic links, but MAY appear elsewhere.

2.2.1 xlink:arcrole attributes on generic arcs

The value, V, of the @xlink:arcrole attribute on an generic arc MUST be an absolute URI.

The ancestor <link:linkbase> element of the generic arc MUST have a child <link:arcroleRef> element with V as the value of its @arcroleURI attribute.

The <link:arcroleType> element pointed to by the <link:arcroleRef> element with @arcroleURI attribute equal to V MUST contain a <link:usedOn> child element with a QName value that has namespace http://xbrl.org/2008/generic and local name arc.

The constraints implied by the @cyclesAllowed attribute on the <link:arcroleType> element MUST be enforced (according to the rules of [XBRL 5.1.4.3]) for all networks of relationships in the DTS that have arcrole V.

Appendix A Normative schema

The following is the XML schema provided as part of this specification. This is normative. Non-normative versions (which should be identical to these except for appropriate comments indicating their non-normative status) are also provided as separate files for convenience of users of the specification.

NOTE: (non-normative) Following the schema maintenance policy of XBRL International, it is the intent (but is not guaranteed) that the location of non-normative versions of these schemas on the web will be as follows:

  1. While any schema is the most current RECOMMENDED version and until it is superseded by any additional errata corrections a non-normative version will reside on the web in the directory http://www.xbrl.org/2008/ - during the drafting process for this specification this directory should contain a copy of the most recent published version of the schema at http://www.xbrl.org/2008/gnl.xsd.
  2. A non-normative version of each schema as corrected by any update to the RECOMMENDATION will be archived in perpetuity on the web in a directory that will contain a unique identification indicating the date of the update.
<schema xmlns:gen="http://xbrl.org/2008/generic" xmlns:xl="http://www.xbrl.org/2003/XLink" xmlns:link="http://www.xbrl.org/2003/linkbase" xmlns="http://www.w3.org/2001/XMLSchema" targetNamespace="http://xbrl.org/2008/generic" elementFormDefault="qualified">
<import namespace="http://www.xbrl.org/2003/XLink" schemaLocation="http://www.xbrl.org/2003/xl-2003-12-31.xsd"/>
<import namespace="http://www.xbrl.org/2003/linkbase" schemaLocation="http://www.xbrl.org/2003/xbrl-linkbase-2003-12-31.xsd"/>
<element id="xml-gen-arc" name="arc" substitutionGroup="xl:arc" type="gen:genericArcType"/>
<complexType name="genericArcType">
<complexContent>
<extension base="xl:arcType">
<attribute name="id" type="ID"/>
</extension>
</complexContent>
</complexType>
<complexType name="linkType">
<complexContent>
<restriction base="xl:extendedType">
<choice minOccurs="0" maxOccurs="unbounded">
<element ref="xl:title"/>
<element ref="xl:documentation"/>
<element ref="link:loc"/>
<element ref="gen:arc"/>
<element ref="xl:resource"/>
</choice>
<anyAttribute namespace="http://www.w3.org/XML/1998/namespace" processContents="lax"/>
</restriction>
</complexContent>
</complexType>
<complexType name="linkTypeWithOpenAttrs">
<complexContent>
<extension base="gen:linkType">
<anyAttribute namespace="##other"/>
</extension>
</complexContent>
</complexType>
<element id="xml-gen-link" name="link" substitutionGroup="xl:extended" type="gen:linkTypeWithOpenAttrs"/>
</schema>

Appendix B Defining Custom Linking Components (non-normative)

B.1 Custom extended links

A custom extended link is an extended link that is in the substitution group for the abstract <xl:extended> element and that is not one of the concrete extended link elements defined in the XBRL Specification [XBRL 2.1].

It should not generally be necessary to define custom extended links. A custom extended link should only be defined when tight control over the content model is desired.

For example, you may want to define a custom extended link whose sole purpose is to force discovery of a document:

Example 1: Content model for an extended link that can force document discovery
<element xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xbrl.org/specification/2007" name="documentRef">
<complexContent xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xbrl.org/specification/2007">
<restriction xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xbrl.org/specification/2007" base="xl:extendedType">
<sequence xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xbrl.org/specification/2007">
<element ref="xl:documentation" minOccurs="0"/>
<element ref="link:loc"/>
</sequence>
<anyAttribute namespace="http://www.w3.org/XML/1998/namespace" processContents="lax"/>
</restriction>
</complexContent>
</element>

XBRL forbids the use of <link:linkbaseRef> element within linkbases, but a locator within an element like that in Example 1 achieves the same effect. Here it is not appropriate to include resources and arcs; the content model only allows a single locator, and an optional documentation element.

B.2 Custom arcs

A custom arc is an element that is in the substitution group for the abstract <xl:arc> element and that is not one of the concrete arcs defined in the XBRL Specification [XBRL 2.1].

While custom extended links are rarely required, custom arcs are useful whenever you want to define a type of relationship that has required attributes in addition to those defined in the XLink namespace http://www.w3.org/1999/xlink. Using a custom arc, the occurrence constraints for those attributes can be specified using XML Schema [SCHEMA-1].

Note: To be usable within generic links, custom arcs must be in the substitution group for the <gen:arc> element.

B.3 Custom resources

A custom resource is an element that is in the substitution group for the abstract <xl:resource> element and that is not one of the concrete resources defined in the XBRL Specification [XBRL 2.1].

It will also be quite common to define custom resources, sometimes with complex content models, possibly allowing mixed content. An obvious example would be a generic XHTML resource, akin to the <link:label> element, but used in conjunction with generic links and generic arcs so that semantics are determined by the arcrole alone, rather than spread across the resource (<link:label>, the arcrole - http://www.xbrl.org/2003/arcrole/concept-label, the arc - <link:labelArc>, and the extended link - <link:labelLink>).

On the other hand, if control over resource roles is desired (to distinguish between a terse and a verbose label, for example), then a concrete, specialised element (possibly derived from a generic XHTML resource) may be appropriate.

Appendix C References

VARIABLES
XBRL International Inc.. "XBRL Variables 1.0, Public Working Draft"
Phillip Engel, Herm Fischer, Victor Morilla, Jim Richards, Geoff Shuetrim, David vun Kannon, and Hugh Wallis.
(See http://www.xbrl.org/Specification/variables-PWD-2008-02-14.html)
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)
XLINK
W3C (World Wide Web Consortium). "XML Linking Language (XLink) Version 1.0"
Steve DeRose, Eve Maler, and David Orchard.
(See http://www.w3.org/TR/xlink/)
XML NAMES
W3C (World Wide Web Consortium). "Namespaces in XML 1.0 (Second Edition)"
Tim Bray, Dave Hollander, Andrew Layman, and Richard Tobin.
(See http://www.w3.org/TR/REC-xml-names/)
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 D 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 E Acknowledgements (non-normative)

The editors thank the members of the various XBRL working groups for supporting the creation of this document, and for providing valuable feedback on internal drafts.

Appendix F Document history (non-normative)

DateAuthorDetails
26 June 2006Ignacio Hernandez-Ros

Created initial draft.

08 November 2006Geoff Shuetrim

Narrowed scope to the specific concrete syntax constructs to be defined in the specification. Inserted updated versions of the syntax definitions provided by Mark Goodhand.

24 July 2007Mark Goodhand

Released as a public working draft.

01 November 2007Mark Goodhand

The schema now allows only arcs substitutable for generic arcs to appear in generic links.

01 November 2007Mark Goodhand

The date in the namespace has changed from 2007 to 2008.

08 February 2008Geoff Shuetrim

Editorial changes in preparation for publication as a second public working draft.

Added comments requesting definitions of custom extended links, custom arcs and custom resources.

Added new constraints requiring role and arcrole type declarations for custom extended link role values and and custom arc role values.

10 February 2008Geoff Shuetrim

Changed the ID attributes on the generic link and generic arc elements as suggested by Mark Goodhand.

Simplified the wording of the constraints relating to roles and arcroles based on feedback from Mark Goodhand.

Added new constraints on the roles of resources in generic links.

12 February 2008Geoff Shuetrim

Added definitions of custom extended links, custom arcs and custom resources.

13 February 2008Geoff Shuetrim

Changed definitions of generic links and generic arcs to also include elements in the substitution groups for the concrete elements defined in the normative schema for this specification. This enables extension specifications to define new arcs, for example, in the substitution group for the <gen:arc> element and to inherit all of the constraints imposed in this specification without needing to restate them.

Fixed the IDs used for the references to specific sections of the XBRL Specification [XBRL 2.1].

Appendix G 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 Base Specification and Maintenance Working Group up to and including 07 March 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.