Taxonomy Package 1.0

Public Working Draft 15 January 2014

Copyright © XBRL International Inc., All Rights Reserved.

This version:
<http://www.xbrl.org/Specification/taxonomy-package/PWD-2014-01-15/taxonomy-package-PWD-2014-01-15.html>
Editors:
Paul Warren, formerly with CoreFiling Ltd < pdw@blinkace.com >
Herm Fischer, Mark V Systems Limited < fischer@markv.com >
Contributors:
Mark Goodhand, CoreFiling Ltd < mrg@corefiling.com >
Matt Hillsdon, CoreFiling Ltd < mth@corefiling.com >
Victor Morilla, Banco de España < victor.morilla@bde.es >

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

Abstract

This specification defines a standard format and location for a manifest file that can be included in such ZIP files that allows compliant tools to identify the entry points automatically. It provides for inclusion of URL remapping, which can provide public locations (URLs) for files within the package.

Comment

1 Mark Goodhand:

It has been suggested that Oasis XML Catalogs might be used instead of the remapping feature defined here. This is an open topic for discussion in the Base Specification Working Group, and feedback on this topic from reviewers of this PWD is actively sought.

Taxonomy publishers who are currently using Catalog files and are considering adopting this Public Working Draft are encouraged to continue to provide Catalog files in addition to the .taxonomyPackage.xml meta-data file. The information provided in the two mechanisms should be consistent, specifically, the corresponding entry of a remapping element in the XML Catalog is a rewriteURI element with the following attributes:

- @uriStartString: same value as the @prefix attribute in the tp:remapping element

- @rewritePrefix: same value as the @replaceWith attribute in the tp:remapping element


Table of Contents

1 Introduction
1.1 Relationship to other work
1.2 Namespaces
2 Taxonomy Package
2.1 Package Structure
2.2 The .taxonomyPackage.xml file
2.3 Taxonomy metadata
2.3.1 The tp:name element
2.3.2 The tp:description element
2.3.3 The tp:version element
2.4 Remappings
2.4.1 The tp:remapping element
2.4.2 Applying remappings
2.5 Entry points
2.5.1 The tp:entryPoint element
2.5.2 The tp:name element
2.5.3 The tp:description element
2.5.4 The tp:version element
2.5.5 The tp:document element
2.6 Multi-lingual elements

Appendices

A References
B Schemas (normative)
B.1 taxonomy-package.xsd
C Intellectual property status (non-normative)
D Acknowledgements
E Document History (non-normative)
F Errata Corrections incorporated in this document

Table

1 Namespaces and namespace prefixes

Examples

1 Preferred file structure - single top level directory
2 Preferred file structure - no single top level directory

Definitions

Multi-Lingual Element
taxonomy package


1 Introduction

eXtensible Business Reporting Language [XBRL 2.1] defines a standard XML-based syntax for business reports. This syntax is based around reporting concepts which are defined in an XBRL taxonomy. Due to the nature of the domains to which XBRL is typically applied, these taxonomies are often very complex, and made up of many constituent XML files. Typically, the majority of these files can be considered internal to the definition of the taxonomy, whilst a small number are intended to be used as "entry points" by XBRL tools.

For convenience XBRL taxonomies are typically distributed as ZIP files, with accompanying human-readable documentation describing which of the component files should be considered entry points. This specification defines a standard format and location for a manifest file that can be included in such ZIP files that allows compliant tools to identify the entry points automatically.

The specification also allows the inclusion of remappings, which provide public locations for the files within the package. This allows XBRL tools to treat the contents of the package as an offline copy of taxonomies published at an Internet location, without the need for additional configuration.

1.1 Relationship to other work

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

1.2 Namespaces

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

Table 1: Namespaces and namespace prefixes
Prefix Namespace URI
tp http://xbrl.org/PWD/2014-01-15/taxonomy-package
tpe http://xbrl.org/PWD/2014-01-15/taxonomy-package/errors
xs http://www.w3.org/2001/XMLSchema

2 Taxonomy Package

The Taxonomy Package is an archive file that contains an XBRL taxonomy and additional metadata, conforming to the format and constraints defined in this specification..

2.1 Package Structure

A Taxonomy Package MUST conform to the .ZIP File Format Specification [ZIP]. A Taxonomy Package MUST contain exactly one file named .taxonomyPackage.xml. This file MAY appear within any directory within the ZIP file. It is recommended that if the ZIP file contains a single top level directory then the .taxonomyPackage.xml file SHOULD appear in that directory (see Example 2.1), otherwise the .taxonomyPackage.xml file SHOULD appear at the top level within the ZIP file (see 2.1).

Example 1: Preferred file structure - single top level directory

It is considered good practice for ZIP files to contain a single top-level directory with a name that mirrors the ZIP file name. For example, in a ZIP file named SampleTaxonomyPackage-v1.0.zip, all content would be contained within a directory called SampleTaxonomyPackage-v1.0. Where this approach is taken, it is recommended that the .taxonomyPackage.xml appear within that top level directory, as shown below:

SampleTaxonomyPackage-v1.0/
    .taxonomyPackage.xml
    file1.xsd
    file2.xml
    directory1/
        file3.xsd
        file4.xml
    directory2/
        file5.xsd
        file6.xml

Example 2: Preferred file structure - no single top level directory

Where the approach described in Example 2.1 is not taken, it is recommended that the .taxonomyPackage.xml file appears at the top level within the ZIP file, as shown below:

.taxonomyPackage.xml
file1.xsd
file2.xml
directory1/
    file3.xsd
    file4.xml
directory2/
    file5.xsd
    file6.xml

2.2 The .taxonomyPackage.xml file

The .taxonomyPackage.xml file MUST be an XML file [XML] with a root element of <tp:taxonomyPackage> , and MUST conform to the Taxonomy Package Schema.

2.3 Taxonomy metadata

A Taxonomy Package can provide metadata about the taxonomy, comprising of a name, a description and a version number. The name and description MAY be provided in multiple languages. References to elements in this section refer only to those elements present as children of the <tp:taxonomyPackage> element.

2.3.1 The tp:name element

The <tp:name> element provides a human-readable name for the taxonomy. The <tp:name> element is a Multi-Lingual Element.

2.3.2 The tp:description element

The <tp:description> element provides a human-readable name for the taxonomy. The <tp:name> element is a Multi-Lingual Element.

2.3.3 The tp:version element

The <tp:version> element provides a version identifier for the taxonomy as a whole.

2.4 Remappings

A Taxonomy Package can provide remappings that allow one URL to be substituted for another during URL resolution. The typical usage for this is to allow a public, absolute URL (typically using the "http" scheme [URI]) to be resolved to a file within a Taxonomy Package. This allows processors to use copies of published taxonomies provided by a Taxonomy Package, rather than retrieving the taxonomy files from the Internet.

[Mark Goodhand:

It has been suggested that Oasis XML Catalogs might be used instead of the remapping feature defined here. This is an open topic for discussion in the Base Specification Working Group, and feedback on this topic from reviewers of this PWD is actively sought.

Taxonomy publishers who are currently using Catalog files and are considering adopting this Public Working Draft are encouraged to continue to provide Catalog files in addition to the .taxonomyPackage.xml meta-data file. The information provided in the two mechanisms should be consistent, specifically, the corresponding entry of a remapping element in the XML Catalog is a rewriteURI element with the following attributes:

- @uriStartString: same value as the @prefix attribute in the tp:remapping element

- @rewritePrefix: same value as the @replaceWith attribute in the tp:remapping element

]

2.4.1 The tp:remapping element

The <tp:remapping element> defines an individual remapping. The @prefix attribute defines a string which is matched against a URL, and the @replaceWith attribute defines a URI that replaces the prefix if it matches. Note that the @prefix is a string, and not a URI [URI]. As such, it does not need to be valid a URI, does not undergo normalization, and is not subject to XML Base [XML Base] processing.

The @replaceWith is a URI, and if relative, it MUST undergo XML Base resolution [XML Base].

2.4.2 Applying remappings

A processor SHOULD apply remappings to any URL that needs to be resolved in the course of processing XBRL files. Remappings are applied to a URL as follows:

Remappings are considered in turn, in the order that they are defined in the .taxonomyPackage.xml file. If the prefix matches the URL, then the matching portion of the URL is replaced with the value of the @replaceWith attribute (after it has undergone XML Base resolution), and no further remappings are considered for that URL.

A prefix is considered to match a URL if the URL begins with the prefix string in its entirety. When performing this comparison, the URL MUST undergo Syntax-Based Normalization, Case Normalization, Percent-Encoding Normalization, Path Segment Normalization, and Scheme-Based Normalization, as defined in [URI].

Note that as the URL resulting from a remapping will typically resolve to a file within the Taxonomy Package, the URL will typically be relative. Therefore, if an @xml:base attribute is to be used to simplify URLs appearing on the <tp:entryPointDocument> element (see Section 2.5.5) then it must be placed at an appropriate level in the document, for example, on the <tp:entryPoints> element, in order to avoid affecting the relative resolution of the URIs specified by @replaceWith attributes.

2.5 Entry points

A Taxonomy Package MAY provide an ordered list of entry points. An entry point is a set of URLs that define a logical starting point for the DTS discovery process, as defined in [XBRL 2.1]. Each entry point can be documented with name, description and version number. If more than one entry point is defined, the document order in which they are defined SHOULD be used to provide a default ordering when presenting the contents of the Taxonomy Package.

2.5.1 The tp:entryPoint element

The <tp:entryPoint> element defines an entry point. References to elements in the following sections refer only to those elements present as children of the <tp:entryPoint> element.

2.5.2 The tp:name element

The <tp:name> element provides a human-readable name for the entry point. The <tp:name> element is a Multi-Lingual Element.

2.5.3 The tp:description element

The <tp:description> element provides a human-readable name for the entry point. The <tp:name> element is a Multi-Lingual Element.

2.5.4 The tp:version element

The <tp:version> element provides a version identifier for the entry point.

2.5.5 The tp:document element

The <tp:entryPointDocument> defines a document that forms part of this entry point. The @href attribute provides a URL to the document. This URL is subject to remappings, and as such the URL SHOULD be the canonical, published location of the document rather than a relative reference to a file within the package.

Relative URLs MUST undergo XML Base resolution [XML Base].

After applying remappings, the tp:entryPointDocument will typically resolve to a document within the taxonomy package, but this is not required.

More than one <tp:entryPointDocument> element may appear within a <tp:entryPoint> element. In this case, the combined set of URLs provided will be used for the starting point for the DTS discovery process [XBRL 2.1]. This allows a Taxonomy Package to provide DTSs that are obtained from discovery starting at multiple documents without introducing additional schema files into the ZIP file to provide the necessary grouping.

2.6 Multi-lingual elements

A Multi-Lingual Element is an element that can be repeated in order to provide translations of the text content in different languages. Where an element is specified as being a Multi-Lingual Element, the following additional constraints are applicable:

  • The element MUST be subject to an applicable, non-empty xml:lang declaration, as defined by [XML]. It should be noted that the @xml:lang attribute MAY appear on an ancestor element.
  • The language identified by the applicable @xml:lang declaration MUST be unique across sibling occurrences of the same Multi-Lingual element.

Appendix A References

URI
IETF (Internet Engineering Task Force). "RFC 3986: Uniform Resource Identifier (URI): Generic Syntax"
T. Berners-Lee
, L. Masinter, and R. Fielding.
(See http://tools.ietf.org/html/rfc3986)
XBRL 2.1
XBRL International Inc.. "Extensible Business Reporting Language (XBRL) 2.1 Includes Corrected Errata Up To 2013-02-20"
Phillip Engel
, Walter Hamscher, Geoff Shuetrim, David vun Kannon, and Hugh Wallis.
(See http://www.xbrl.org/Specification/XBRL-2.1/REC-2003-12-31/XBRL-2.1-REC-2003-12-31+corrected-errata-2013-02-20.html)
XML
W3C (World Wide Web Consortium). "Extensible Markup Language (XML) 1.0 (Fifth Edition)"
Tim Bray
, Jean Paoli, C. M. Sperberg-McQueen, Eve Maler, and François Yergeau.
(See http://www.w3.org/TR/REC-xml/)
XML Base
W3C (World Wide Web Consortium). "XML Base"
Johnathan Marsh.

(See http://www.w3.org/TR/xmlbase/)
ZIP
PKWARE Inc.. ".ZIP File Format Specification"
(See http://www.pkware.com/documents/casestudies/APPNOTE.TXT)

Appendix B Schemas (normative)

The following is the XML schema provided as part of this specification. It is normative. A non-normative version (which should be identical to this except for appropriate comments indicating its non-normative status) is also provided as a separate file 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 a non-normative version of this schema on the web will be http://www.xbrl.org/PWD/2014-01-15/taxonomy-package.xsd.

B.1 taxonomy-package.xsd

<!-- (c) 2013 XBRL International. All Rights Reserved. http://www.XBRL.org/legal/ This document 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. XBRL(r), is a trademark or service mark of XBRL International, Inc., registered in the United States and in other countries. -->
<xsd:schema
  xmlns:xsd
="http://www.w3.org/2001/XMLSchema"

  xmlns:tp
="http://xbrl.org/PWD/2014-01-15/taxonomy-package"
attributeFormDefault="unqualified" elementFormDefault="qualified" targetNamespace="http://xbrl.org/PWD/2014-01-15/taxonomy-package">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" schemaLocation="http://www.w3.org/2001/03/xml.xsd"/>
<xsd:element name="taxonomyPackage" type="tp:taxonomyPackageType"/>
<xsd:complexType name="taxonomyPackageType">
<xsd:sequence>
<xsd:group ref="tp:documentationGroup" minOccurs="0" maxOccurs="unbounded"/>
<xsd:element name="version" type="tp:stringType" minOccurs="0" maxOccurs="1"/>
<xsd:element name="remappings" type="tp:remappingsType" minOccurs="0" maxOccurs="1"/>
<xsd:element name="entryPoints" type="tp:entryPointsType" minOccurs="0" maxOccurs="1"/>
<xsd:any namespace="##other" minOccurs="0" maxOccurs="unbounded" processContents="lax"/>
</xsd:sequence>
<xsd:anyAttribute namespace="##any" processContents="lax"/>
</xsd:complexType>
<xsd:complexType name="remappingsType">
<xsd:sequence>
<xsd:element name="remapping" type="tp:remappingType" minOccurs="0" maxOccurs="unbounded"/>
<xsd:any namespace="##other" minOccurs="0" maxOccurs="unbounded" processContents="lax"/>
</xsd:sequence>
<xsd:anyAttribute namespace="##any" processContents="lax"/>
</xsd:complexType>
<xsd:complexType name="remappingType">
<xsd:sequence minOccurs="0" maxOccurs="unbounded">
<xsd:any namespace="##other" processContents="lax"/>
</xsd:sequence>
<xsd:attribute name="prefix" type="xsd:string" use="required"/>
<xsd:attribute name="replaceWith" type="xsd:anyURI" use="required"/>
<xsd:anyAttribute namespace="##any" processContents="lax"/>
</xsd:complexType>
<xsd:complexType name="entryPointsType">
<xsd:sequence>
<xsd:element name="entryPoint" type="tp:entryPointType" minOccurs="0" maxOccurs="unbounded"/>
<xsd:any namespace="##other" minOccurs="0" maxOccurs="unbounded" processContents="lax"/>
</xsd:sequence>
<xsd:anyAttribute namespace="##any" processContents="lax"/>
</xsd:complexType>
<xsd:complexType name="entryPointType">
<xsd:sequence>
<xsd:group ref="tp:documentationGroup" minOccurs="0" maxOccurs="unbounded"/>
<xsd:element name="version" type="tp:stringType" minOccurs="0" maxOccurs="1"/>
<xsd:element name="entryPointDocument" type="tp:entryPointDocumentType" minOccurs="1" maxOccurs="unbounded"/>
<xsd:any namespace="##other" minOccurs="0" maxOccurs="unbounded" processContents="lax"/>
</xsd:sequence>
<xsd:anyAttribute namespace="##any" processContents="lax"/>
</xsd:complexType>
<xsd:complexType name="entryPointDocumentType">
<xsd:sequence minOccurs="0" maxOccurs="unbounded">
<xsd:any namespace="##other" processContents="lax"/>
</xsd:sequence>
<xsd:attribute name="href" type="xsd:anyURI" use="required"/>
<xsd:anyAttribute namespace="##any" processContents="lax"/>
</xsd:complexType>
<xsd:group name="documentationGroup">
<xsd:choice>
<xsd:element name="name" type="tp:stringType"/>
<xsd:element name="description" type="tp:stringType"/>
</xsd:choice>
</xsd:group>
<xsd:complexType name="stringType">
<xsd:simpleContent>
<xsd:extension base="xsd:string">
<xsd:anyAttribute namespace="##any" processContents="lax"/>
</xsd:extension>
</xsd:simpleContent>
</xsd:complexType>
</xsd:schema>

Appendix C 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 D Acknowledgements

This specification is based on Taxonomy Packages 1.0.2, published by CoreFiling. CoreFiling have provided the Taxonomy Package Specification to XII as a Contribution, as defined in the XBRL IPR Policy. This includes, but is not limited to, granting the necessary licence required by section 4.2 of the IPR Policy. CoreFiling have agreed to terminate development of their Taxonomy Package specification and refer all users of it to the XBRL International version, once it reaches Recommendation status.

Appendix E Document History (non-normative)

DateAuthorDetails
12 February 2013Herm Fischer

First XBRL International draft created, based on Appendix D.

Appendix F Errata Corrections incorporated 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 Specification Maintenance Working Group (SWG) up to and including 15 January 2014. 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.