Units Registry - Structure 1.0

Proposed Recommendation 31 October 2012

Copyright © 2011, 2012 XBRL International Inc., All Rights Reserved.

This version:
<http://www.xbrl.org/Specification/utr/PR-2012-10-31/utr-PR-2012-10-31.html>
Editors:
Hugh Wallis, IBM (formerly XBRL International Inc.) <hugh.wallis@ca.ibm.com>
Walter Hamscher, US Securities and Exchange Commission. <hamscherw@sec.gov>
Contributors:
Campbell Pryde, XBRL US <campbell.pryde@xbrl.us>
Maciej Piechocki, Cundus AG (formerly IFRS Foundation) <Maciej.Piechocki@cundus.de>
Paul Warren, CoreFiling <pdw@corefiling.com>

Status

Circulation of this Proposed Recommendation is unrestricted. This document is normative. Other documents may supersede this document. Recipients are invited to submit comments to utram@xbrl.org, and to submit notification of any relevant patent rights of which they are aware and provide supporting documentation.

Abstract

This document describes the structure of the XBRL International Units Registry. The Units Registry is an online listing of units that have been identified as potentially having wide utility. The Registry contains structured information about their purpose, usage and any intended impact on XBRL instance validation.

Table of Contents

1 Goals
1.1 Relationship to other work
1.2 Terminology
1.3 Language
1.4 Document conventions
1.4.1 Typographic conventions
1.4.1.1 Definition notation
1.4.1.2 Footnote notation
1.4.1.3 Element and attribute notation
1.4.2 Formatting conventions
1.5 Namespaces and namespace prefixes
2 Data Model
3 Hosting on the XBRL.org website
4 Validation
5 Status of Units in the UTR and Implications for Software

Appendices

A Schema
A.1 utr.xsd
B Sample utr document (non-normative)
C References
D Intellectual property status (non-normative)
E Acknowledgements (non-normative)
F Document history (non-normative)
G Errata corrections in this document

Tables

1 Namespaces and namespace prefixes
2 A UTR entry

Definitions

BPB
CR
Complex unit definition
DTR
Division-to-type match
Has a fact-to-UTR-match
Has a type
ISC
IWD
Measure match
Measure-to-type match
Most specific type present in the UTR
PWD
Present in the UTR
Referee
SWG
Simple unit definition
TAPWG
TRTF
Type match
UTR
UTR-valid
UTRAM
XSB
abstract element, bind, concept, concrete element, context, Discoverable Taxonomy Set (DTS), duplicate items, duplicate tuples, element, entity, equal, essence concept, fact, instance, item, least common ancestor, linkbase, period, taxonomy, tuple, unit, taxonomy schema, child, parent, sibling, grandparent, uncle, ancestor, XBRL instance, c-equal, p-equal, s-equal, u-equal, v-equal, x-equal, minimally conforming XBRL processor, fully conforming XBRL processor
instance-utr-valid
unit-to-type match

Error code

utre:error-NumericFactUtrInvalid


1 Goals

XBRL provides a set of standard units that may appear in XBRL instances. These include those specified in [XBRL 2.1]. As XBRL applications have emerged, unit declarations have appeared in XBRL instance documents having multiple names for equivalent meanings, and identical names having different meanings. The goal of the XBRL Units Registry (hereinafter "UTR") is to be a public, online data set that documents these units and their usage. Additions and other changes to the UTR, like other XBRL International work products, will proceed through a series of steps whose goal is to maximise the utility and longevity of the new units and the instances that use them. This process is documented in [UTR PROCESS].

1.1 Relationship to other work

This document pertains to XBRL as defined in the XBRL Specification [XBRL 2.1].

1.2 Terminology

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

abstract element, bind, concept, concrete element, context, Discoverable Taxonomy Set (DTS), duplicate items, duplicate tuples, element, entity, equal, essence concept, fact, instance, item, least common ancestor, linkbase, period, taxonomy, tuple, unit, taxonomy schema, child, parent, sibling, grandparent, uncle, ancestor, XBRL instance, c-equal, p-equal, s-equal, u-equal, v-equal, x-equal, minimally conforming XBRL processor, fully conforming XBRL processor and any other terms not specifically defined elsewhere in this document but which are used and defined in the XBRL 2.1 specification are as defined by [XBRL 2.1] .

BPB refers to the XBRL International Best Practices Board .

CR refers to a Candidate Recommendation of XBRL International.

ISC refers to the XBRL International Steering Committee .

IWD refers to an Internal Working Draft of XBRL International.

DTR refers to the Data Types Registry that is the subject of a different specification.

UTR refers to the Units Registry that is the subject of this specification.

UTRAM refers to the Units Registry Approval Manager.

PWD refers to a Public Working Draft of XBRL International.

Referee is either the SWG or TAPWG when performing an evaluation requested by the UTRAM.

SWG refers to the XBRL International Base Specification and Maintenance Working Group.

TAPWG refers to the Taxonomy Architecture Practice Working Group set up by the BPB.

TRTF refers to the Taxonomy Review Task Force set up by the BPB.

XSB refers to the XBRL International Standards Board .

1.3 Language

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

All documentation supporting a registry entry MUST be provided in English, and MAY be provided in additional languages.

1.4 Document conventions

1.4.1 Typographic conventions

1.4.1.1 Definition notation

Definitions are highlighted with green text.

1.4.1.2 Footnote notation

Comments which are informative, but not essential to the understanding of the point at hand, are provided in footnotes. All footnotes are non-normative.

1.4.1.3 Element and attribute notation

When referring to a specific element, it will be identified by its namespace prefix and local name. For example, the root element of a versioning report would be referred to as <ver:report> .

Attributes are also identified by their local name and, where appropriate, their namespace prefix. Attributes are distinguished from elements by prefixing them by an @ symbol. Thus, @id refers to the attribute with the name id.

When referring to any attribute, so long as it has a specific namespace, the local name is replaced by an asterisk ( *). Thus, the notation @xml:* specifies any attribute in the namespace http://www.w3.org/XML/1998/namespace.

1.4.2 Formatting conventions

The following highlighting is used for normative technical material in this document:

Text of the normative example.

The following highlighting is used for non-normative examples in this document:

Text of the non-normative example.

The following highlighting is used for non-normative examples of poor, discouraged or disallowed usage.

Text of the discouraged example.

1.5 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
iso4217 http://www.xbrl.org/2003/iso4217
utr http://www.xbrl.org/2009/utr
utre http://www.xbrl.org/2009/utr/errors
xbrli http://www.xbrl.org/2003/instance

2 Data Model

The data model of the UTR is a list of each unit definition augmented with additional indicators and information needed by developers. A unit definition can be either simple or complex.

A simple unit definition defines a unit with a single measure.

A complex unit definition defines a set of units which are the result of a division between other unit definitions.

For example, a unit representing a currency would be a defined by a simple unit definition, whereas a unit definition representing a monetary value per share would be a complex unit definition.

Table 2: A UTR entry
Field Min Max Type Explanation Element or Attribute Example(s)
ID 1 1 ID The ID attribute of this entry, unique within the scope of the Units Registry. @id

u00256

Unit ID 1 1 string NCName
  • Without characters "{" or "}", this is the NCName to be used in the id attribute of the unit declaration of instances.
  • With token {numerator} or {denominator}, the pattern of the NCName to be used in the id attribute of occurrences of units with any numerator or denominator measure; nsUnit must be empty.

In either case, thisWhen combined with the Unit Namespace, this provides a unique identifier for the entry. The Unit ID alone need not be unique in the scope of the UTR because there could be (for example) a REC definition of a unit, and an IWD version of it.

In the case of a simple unit definition, the Unit ID is the QName content of the measure element of occurrences of the unit.

<unitId>

GBP

sqft

MMBbls

{numerator}Monetary_per_Share

Unit Name 1 1 string The name of the unit being defined, which may have spaces and other characters and is conventionally in Proper Case. <unitName>

Square Foot

Thousands of Barrels of Oil

Unit Namespace 1 0 1 URI

When present, theThe namespace in which the unit is declared in a <xbrli:measure> element.

If the content is empty, it means that the unit is not a simple measure.

The combination of Unit ID and non-empty Unit Namespace must be unique within the scope of the registry.

<nsUnit>

http://www.xbrl.org/2009/utr

Item Type 0 1 NCName

The local-name of a type with which this unit may be used.

Item Type MUST be present for simple unit definitions and absent otherwise.

<itemType>

areaItemType

Item Type Namespace 0 1 URI

Item type namespace; absent if the namespace does not matter.

Item Type Namespace MUST be absent for complex unit definitions.

<nsItemType>

http://www.xbrl.org/dtr/type/numeric

Item Type Date 0 1 date Version date of the XBRL specification or data type registry in which the item type first appears, or empty if the type is not yet present <itemTypeDate>

2009-12-16

Symbol 0 1 NMTOKEN string The symbol used when rendering figures measured in the unit. This may be unicode such as a currency symbol. Monetary symbols are conventionally displayed before a number; other symbols conventionally displayed after. <symbol>

Å

Numerator Item Type 0 1 NCName

If present, the Unit ID contains {numerator} then the unit numerator must be for a unit that is compatible with this item type local name. The numeratorItemType cannot be an item type whose units require a numerator and denominator.

Numerator Item Type MUST be absent for simple unit definitions

<numeratorItemType>

lengthItemType

Numerator Item Type Namespace 0 1 URI

If the namespace of the numerator item type is limited, then it is provided here.

Numerator Item Type Namespace MUST be absent for simple unit definitions.

<nsNumeratorItemType>

http://www.xbrl.org/dtr/type/numeric

Denominator Item Type 0 1 NCName

If present, the Unit ID contains {denominator} then the unit denominator must be for a unit that is compatible with this item type. The denominatorItemType cannot be an item type whose units require a numerator and denominator.

Denominator Item Type MUST be absent for simple unit definitions

<denominatorItemType>

sharesItemType

Denominator Item Type Namespace 0 1 URI

If the namespace of the denominator item type is limited, then it is provided here.

Denominator Item Type Namespace MUST be absent for simple unit definitions.

<nsDenominatorItemType>

http://www.xbrl.org/2003/instance

Definition 1 1 XHTML mixed The meaning of the unit, in English. <definition>

Millions of US Gallons per Day (Volumetric Flow)

Base Standard 0 1 {ISO4217, SI, Customary, Non-SI, XBRL} A token indicating the authority or source, such as an [ISO] code list, of the unit definition. <baseStandard>

SI

Presentation Conversion 0 1 XML MathML definition using elements such as <mrow> and <msup> to present a formula for conversion into standard international base units, if such a conversion exists. <conversionPresentation>
<math>
<mrow>
<mn>4046.86</mn>
<mo>*</mo>
<msup>
<mi>m</mi>
<mn>2</mn>
</msup>
</mrow>
</math>
Content Conversion 0 1 XML MathML definition using elements such as <apply> , <power> and <times> to present a formula for conversion into standard international base units, if such a conversion exists. <conversionContent>
<math>
<apply>
<times/>
<cn>4046.86</cn>
<apply>
<power/>
<ci>m</ci>
<cn>2</cn>
</apply>
</apply>
</math>
Status 1 1 {CR, REC, NIE, PROPOSED, ACK, RR} The XBRL International status of this unit.
  • CR - Candidate Recommendation
  • REC - RECOMMENDATION
  • NIE - Not in effect (for whatever reason other than RR such as being withdrawn, superseded, found to be invalid etc.)
  • PROPOSED - Submitted but with no official status yet granted by XBRL International
  • ACK - Acknowledged by XBRL International (indicates that the unit is not being considered for REC status but is listed in the UTR for information purposes)
  • RR - Rescinded RECOMMENDATION
<status>

PROPOSED

Version Date 1 1 date Effective date of this version of the unit; all versions of the same unit with earlier dates are effectively superseded. <versionDate>

2012-12-21

3 Hosting on the XBRL.org website

The latest version of the UTR will be placed at a fixed location on the xbrl.org website and will be the file at the URL http://www.xbrl.org/utr/utr.xml. Each version will also be permanently archived in a subdirectory whose name contains the date on which it became effective (e.g. http://www.xbrl.org/utr/2009-01-22/utr.xml). This is analogous to the archival convention for specification schemas.

4 Validation

A UTR processor tests valid XBRL instances for validity with respect to the UTR.

A QName is a type match to a <utr:unit> if (a) <utr:itemType> is absent or the local name of the QName equals the content of <utr:itemType> and (b) <utr:nsItemType> is absent or the QName has no namespace URI or the namespace URI of the QName is equal to the content of <utr:nsItemType> .

The definition of type match allows a QName to match a type even when the type is not numeric.

  • The QName <xbrli:durationItemType> names a non-numeric data type, but durationItemType nevertheless appears in <utr:itemType> of some entries in the UTR so as to allow for units such as "km/D", where "D" means days.

The definition of type match also allows a <utr:unit> to omit <utr:itemType> type and <utr:nsItemType> and therefore match any type.

A <xbrli:measure> is a measure match to a <utr:unit> if the QName content of the <xbrli:measure> has (a) a local name equal to the content of the <utr:unitId> element and (b) <utr:unitNamespace> element is absent or the QName's namespace URI is equal to the content of <utr:unitNamespace> . Note [XBRL 2.1] 4.8.2 requires the <xbrl:measure> content to have a namespace URI.

The base case for matching occurs when the unit is a single measure:

An <xbrli:measure> is a measure-to-type match to a type if there is a <utr:unit> for which the <xbrli:measure> is a measure match and the type is a type match.

An <xbrli:unit> having a <xbrli:divide> child can be said to have matches in the UTR by recursive definition, as follows:

An <xbrli:divide> is a division-to-type match to a <utr:unit> if child <xbrli:unitNumerator> has exactly one <xbrli:measure> child, and the xbrli:unitNumerator/xbrli:measure has a measure-to-type match to the type identified by the QName formed by <utr:nsNumeratorItemType> and <utr:numeratorItemType> , and child <xbrli:unitDenominator> has exactly one <xbrli:measure> child, and the xbrli:unitDenominator/xbrli:measure has a measure-to-type match to the type identified by the QName formed by <utr:nsDenominatorItemType> and <utr:denominatorItemType> . Note that a <utr:unit> cannot express a constraint on what a numerator or denominator cannot be; entries with <utr:definition> values that imply such a restriction are describing intended usage, not validation.

With reference to the UTR sample in Appendix B:

  1. Consider type local name perShareItemType and <xbrli:unit> having numerator iso4217:JPY and denominator xbrli:shares. There is a division-to-type match because iso4217:JPY is a measure-type match to xbrli:monetaryItemType, xbrli:shares is a measure-type match to xbrli:sharesItemType, and the <utr:unit> with <utr:unitID> value Monetary_per_Share has <utr:nsNumeratorItemType> and utr:numeratorItemType with a measure-type match to xbrli:monetaryItemType, and the <utr:unit> with <utr:unitID> value Monetary_per_Share has utr:nsDenominatorItemType and utr:denominatorItemType with a measure-type match to xbrli:sharesItemType.
  2. Type local name perShareItemType and denominator utr:m have no division-type match because utr:m is not a measure-type match to xbrli:sharesItemType.
  3. Type local name perUnitItemType and unit having numerator iso4217:JPY and a denominator with any single <xbrli:measure> have a division-type match because the utr:unit entry where utr:itemType is perUnitItemType does not constrain the denominator type and therefore does not constraint the denominator unit. Even a denominator of iso4217:TND will be a measure-type match match even though such usage violates the intent.

A unit has a unit-to-type match to a type when the defining <xbrli:unit> has either (a) a single <xbrli:measure> child having a measure-to-type match to that type or (b) an <xbrli:divide> child having a division-to-type match to that type.

A simple unit with more than one measure or a unit with more than one measure in each of the numerator or denominator can never have a unit-to-type match. The UTR does not support these complex unit declarations.

A type is present in the UTR if its QName has a type-match to any <utr:unit> whose <utr:status> equals REC.

A numeric fact has a type when the post-schema validation infoset (PSVI) of the fact contains the type name [XML Schema Structures].

The restriction relationship [XML Schema Structures] forms a total order with respect to the types of a fact that are present in the UTR. A fact's most specific type present in the UTR is the minimum of that total order.

  • Element AA is declared with type A. Type A is a restriction of type B; Type B is a restriction of Type C; Type C is a restriction of <xbrli:numericItemType> . However, only types B and C are present in the UTR. The @unitRef of an AA fact must resolve to a unit allowed for type B. Type C is not relevant.

A numeric fact has a fact-to-UTR match when its unit has a unit-to-type match with the most specific type present in the UTR of the fact.

A numeric fact is UTR-valid when the fact either (a) does not have a type that is present in the UTR or (b) the fact has a fact-to-UTR match.

A UTR processor MUST raise an error utre:error-NumericFactUtrInvalid for each numeric fact that is not UTR valid.

An instance is UTR-valid when every numeric fact is UTR-valid.

5 Status of Units in the UTR and Implications for Software

The definition of any unit that has the status of REC in the UTR is normative.

The definitions of any units with any other status are non-normative and are provided for information only. If a unit has the status of ACK it is not intended that it should ever proceed on the track to having REC status. It MAY have a status in a closed environment that imposes certain requirements on software that is customised for that particular environment, however XBRL International makes no representations whatsoever about such units.

Software vendors are NOT obliged to implement support for any REC unit UTR validation in order to continue to claim that they support the [XBRL 2.1] base specification.

It is expected that software vendors will make claims regarding which additional units they support. They MUST point to successful exercise of any relevant conformance suite tests in order to substantiate such claims.

Appendix A Schema

The following is the XML schema corresponding to the data model described in Section 2. It is normative. Non-normative versions (which should be identical to this except for appropriate comments indicating their non-normative status) are also provided as separate files for convenience of users of the specification.

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: While any

  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 at: http://www.xbrl.org/utr/utr.xsd
  2. A non-normative version of each schema as corrected by this update to the RECOMMENDATION will be archived in perpetuity on the web at: http://www.xbrl.org/utr/2011-05-05/utr.xsd

A.1 utr.xsd

<xs:schema
xmlns:xs
="http://www.w3.org/2001/XMLSchema"

xmlns:utr
="http://www.xbrl.org/2009/utr"

xmlns:xhtml
="http://www.w3.org/1999/xhtml"
targetNamespace="http://www.xbrl.org/2009/utr" elementFormDefault="qualified" attributeFormDefault="unqualified">
<xs:import namespace="http://www.w3.org/1998/Math/MathML" schemaLocation="http://www.w3.org/Math/XMLSchema/mathml2/mathml2.xsd"/>
<xs:complexType name="DocumentationType" mixed="true">
<xs:annotation>
<xs:documentation>Element type that may contain mixed text and XHTML markup</xs:documentation>
</xs:annotation>
<xs:complexContent mixed="true">
<xs:restriction base="xs:anyType">
<xs:sequence minOccurs="0" maxOccurs="unbounded">
<xs:any namespace="http://www.w3.org/1999/xhtml" processContents="lax"/>
</xs:sequence>
</xs:restriction>
</xs:complexContent>
</xs:complexType>
<xs:group name="unitSimpleGroup">
<xs:sequence>
<xs:element ref="utr:nsUnit"/>
<xs:element ref="utr:itemType" minOccurs="0"/>
<xs:element ref="utr:nsItemType" minOccurs="0"/>
<xs:element ref="utr:itemTypeDate" minOccurs="0"/>
<xs:element ref="utr:symbol" minOccurs="0"/>
</xs:sequence>
</xs:group>
<xs:group name="unitDivisionGroup">
<xs:sequence>
<xs:element ref="utr:itemType" minOccurs="0"/>
<xs:element ref="utr:nsItemType" minOccurs="0"/>
<xs:element ref="utr:itemTypeDate" minOccurs="0"/>
<xs:element ref="utr:symbol" minOccurs="0"/>
<xs:group ref="utr:numeratorGroup"/>
<xs:group ref="utr:denominatorGroup"/>
</xs:sequence>
</xs:group>
<xs:group name="numeratorGroup">
<xs:sequence>
<xs:element ref="utr:numeratorItemType" minOccurs="0">
<xs:annotation>
<xs:documentation>When present, the unit numerator must be for a unit that is compatible with this item type local name. The numeratorItemType cannot be an item type whose units require a numerator and denominator.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element ref="utr:nsNumeratorItemType" minOccurs="0">
<xs:annotation>
<xs:documentation>If the namespace of the numerator item type is constrained, then it is provided here.</xs:documentation>
</xs:annotation>
</xs:element>
</xs:sequence>
</xs:group>
<xs:element name="numeratorItemType" type="xs:NCName">
<xs:annotation>
<xs:documentation>When present, then the unit numerator must be for a unit that is compatible with this item type.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="nsNumeratorItemType" type="xs:anyURI">
<xs:annotation>
<xs:documentation/>
</xs:annotation>
</xs:element>
<xs:group name="denominatorGroup">
<xs:sequence>
<xs:element ref="utr:denominatorItemType" minOccurs="0">
<xs:annotation>
<xs:documentation>When present, then the unit denominator must be for a unit that is compatible with this item type. The denominatorItemType cannot be an item type whose units require a numerator and denominator.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element ref="utr:nsDenominatorItemType" minOccurs="0">
<xs:annotation>
<xs:documentation>If the namespace of the denominator item type is constrained, then it is provided here.</xs:documentation>
</xs:annotation>
</xs:element>
</xs:sequence>
</xs:group>
<xs:element name="denominatorItemType" type="xs:NCName">
<xs:annotation>
<xs:documentation>When present, then the unit denominator must be for a unit that is compatible with this item type.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="nsDenominatorItemType" type="xs:anyURI">
<xs:annotation>
<xs:documentation/>
</xs:annotation>
</xs:element>
<xs:element name="utr">
<xs:annotation>
<xs:documentation>Root element of the XBRL Data Type Registry</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:sequence>
<xs:element name="units">
<xs:complexType>
<xs:sequence minOccurs="0" maxOccurs="unbounded">
<xs:element name="unit">
<xs:complexType>
<xs:sequence>
<xs:element ref="utr:unitId"/>
<xs:element ref="utr:unitName"/>
<xs:choice>
<xs:group ref="utr:unitSimpleGroup"/>
<xs:group ref="utr:unitDivisionGroup"/>
</xs:choice>
<xs:element ref="utr:definition"/>
<xs:element ref="utr:baseStandard"/>
<xs:element ref="utr:conversionPresentation" minOccurs="0" maxOccurs="1"/>
<xs:element ref="utr:conversionContent" minOccurs="0" maxOccurs="1"/>
<xs:element ref="utr:status"/>
<xs:element ref="utr:versionDate"/>
</xs:sequence>
<xs:attribute name="id" type="xs:ID"/>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
<xs:attribute name="version" type="xs:string" fixed="1.0"/>
</xs:complexType>
</xs:element>
<xs:element name="unitId">
<xs:annotation>
<xs:documentation>The NCName to be used in the measure element of occurrences of simple units with any numerator or denominator measure; nsUnit must be empty. In either case, this This need not be unique in the scope of the UTR because there could be (for example) a REC definition of a unit, and an IWD version of it. </xs:documentation>
</xs:annotation>
<xs:simpleType>
<xs:restriction base="xs:NCName"></xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="unitName">
<xs:annotation>
<xs:documentation>The name of the unit being defined, which may have embedded spaces and other characters and is conventionally in Proper Case.</xs:documentation>
</xs:annotation>
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:pattern value="[^\s].*[^\s]"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="nsUnit">
<xs:annotation>
<xs:documentation> The namespace in which the unit is declared in a xbrli:measure element. If the content is empty, it means that the unit is not a simple measure. The combination of Unit ID and non-empty Unit Namespace must be unique within the scope of the registry. </xs:documentation>
</xs:annotation>
<xs:simpleType>
<xs:restriction base="xs:anyURI"/>
</xs:simpleType>
</xs:element>
<xs:element name="itemType">
<xs:annotation>
<xs:documentation>The local-name of a type with which this unit may be used.</xs:documentation>
</xs:annotation>
<xs:simpleType>
<xs:restriction base="xs:NCName"/>
</xs:simpleType>
</xs:element>
<xs:element name="nsItemType">
<xs:annotation>
<xs:documentation>Item type namespace; absent if the namespace does not matter.</xs:documentation>
</xs:annotation>
<xs:simpleType>
<xs:restriction base="xs:anyURI"/>
</xs:simpleType>
</xs:element>
<xs:element name="itemTypeDate" type="xs:date">
<xs:annotation>
<xs:documentation>Version date of the XBRL specification or data type registry in which the item type first appears, or empty if the type is not (yet) present.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="symbol">
<xs:annotation>
<xs:documentation>The symbol used when rendering figures measured in the unit. This may be unicode such as a currency symbol. Monetary symbols are conventionally displayed before a number; other symbols conventionally displayed after.</xs:documentation>
</xs:annotation>
<xs:simpleType>
<xs:restriction base="xs:string"/>
</xs:simpleType>
</xs:element>
<xs:element name="definition" type="utr:DocumentationType">
<xs:annotation>
<xs:documentation>The meaning of the unit, in English.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="baseStandard">
<xs:annotation>
<xs:documentation>A token indicating the authority or source of the unit definition: Customary, ISO4217, Non-SI, SI, XBRL.</xs:documentation>
</xs:annotation>
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value="ISO4217"/>
<xs:enumeration value="SI"/>
<xs:enumeration value="Customary"/>
<xs:enumeration value="Non-SI"/>
<xs:enumeration value="XBRL"/>
<xs:enumeration value=""/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:complexType name="mathExpression">
<xs:sequence>
<xs:element
xmlns:math
="http://www.w3.org/1998/Math/MathML"
ref="math:math"/>
</xs:sequence>
</xs:complexType>
<xs:element name="conversionPresentation" type="utr:mathExpression">
<xs:annotation>
<xs:documentation> MathML definition using elements such as mrow and msup to present a formula for conversion into standard international base units, if such a conversion exists. </xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="conversionContent" type="utr:mathExpression">
<xs:annotation>
<xs:documentation> MathML definition using elements such as mrow and msup to present a formula for conversion into standard international base units, if such a conversion exists. </xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="status">
<xs:annotation>
<xs:documentation>The XBRL International status of this unit: CR, PWD, REC, NIE, PROPOSED, IWD, ACK, RR</xs:documentation>
</xs:annotation>
<xs:simpleType>
<xs:restriction base="xs:token">
<xs:enumeration value="PWD">
<xs:annotation>
<xs:documentation>Public Working Draft</xs:documentation>
</xs:annotation>
</xs:enumeration>
<xs:enumeration value="CR">
<xs:annotation>
<xs:documentation>Candidate Recommendation</xs:documentation>
</xs:annotation>
</xs:enumeration>
<xs:enumeration value="REC">
<xs:annotation>
<xs:documentation>Recommendation</xs:documentation>
</xs:annotation>
</xs:enumeration>
<xs:enumeration value="NIE">
<xs:annotation>
<xs:documentation>Not In Effect</xs:documentation>
</xs:annotation>
</xs:enumeration>
<xs:enumeration value="PROPOSED">
<xs:annotation>
<xs:documentation>Proposed</xs:documentation>
</xs:annotation>
</xs:enumeration>
<xs:enumeration value="IWD">
<xs:annotation>
<xs:documentation>Internal Working Draft</xs:documentation>
</xs:annotation>
</xs:enumeration>
<xs:enumeration value="ACK">
<xs:annotation>
<xs:documentation>Acknowledged</xs:documentation>
</xs:annotation>
</xs:enumeration>
<xs:enumeration value="RR">
<xs:annotation>
<xs:documentation>Rescinded Recommendation</xs:documentation>
</xs:annotation>
</xs:enumeration>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="versionDate" type="xs:date">
<xs:annotation>
<xs:documentation>Effective date of this version of the unit; all versions of the same uhit with earlier dates are superseded</xs:documentation>
</xs:annotation>
</xs:element>
</xs:schema>

Appendix B Sample utr document (non-normative)

The following is an example of a utr (as defined by the schema in Appendix A above). It contains only a single entry to illustrate the definition of a unit.

   <?xml version="1.0" encoding="UTF-8"?>
  
<utr>
<!-- xsi:schemaLocation="http://www.xbrl.org/2009/utr utr.xsd" xmlns="http://www.xbrl.org/2009/utr" -->
<units>
<unit id="u00191">
<unitId>TND</unitId>
<unitName>Tunisian dinar</unitName>
<nsUnit>http://www.xbrl.org/2003/iso4217</nsUnit>
<itemType>monetaryItemType</itemType>
<nsItemType>http://www.xbrl.org/2003/instance</nsItemType>
<itemTypeDate>2003-12-31</itemTypeDate>
<definition>Tunisian dinar</definition>
<baseStandard>ISO4217</baseStandard>
<status>IWD</status>
<versionDate>2010-10-31</versionDate>
</unit>
<unit id="u00123">
<unitId>JPY</unitId>
<unitName>Japanese yen</unitName>
<nsUnit>http://www.xbrl.org/2003/iso4217</nsUnit>
<itemType>monetaryItemType</itemType>
<nsItemType>http://www.xbrl.org/2003/instance</nsItemType>
<itemTypeDate>2003-12-31</itemTypeDate>
<symbol>¥</symbol>
<definition>Japanese yen</definition>
<baseStandard>ISO4217</baseStandard>
<status>CR</status>
<versionDate>2010-10-31</versionDate>
</unit>
<unit id="u00227">
<unitId>Monetary_per_Share</unitId>
<unitName>Monetary/share</unitName>
<itemType>perShareItemType</itemType>
<itemTypeDate>2009-12-16</itemTypeDate>
<numeratorItemType>monetaryItemType</numeratorItemType>
<nsNumeratorItemType>http://www.xbrl.org/2003/instance</nsNumeratorItemType>
<denominatorItemType>sharesItemType</denominatorItemType>
<nsDenominatorItemType>http://www.xbrl.org/2003/instance</nsDenominatorItemType>
<definition>Monetary Unit / Share</definition>
<baseStandard>XBRL</baseStandard>
<status>CR</status>
<versionDate>2010-10-31</versionDate>
</unit>
<unit id="u00238">
<unitId>shares</unitId>
<unitName>Share</unitName>
<nsUnit>http://www.xbrl.org/2003/instance</nsUnit>
<itemType>sharesItemType</itemType>
<nsItemType>http://www.xbrl.org/2003/instance</nsItemType>
<itemTypeDate>2003-12-31</itemTypeDate>
<definition>Share of Ownership (Stock)</definition>
<baseStandard>XBRL</baseStandard>
<status>CR</status>
<versionDate>2010-10-31</versionDate>
</unit>
<unit id="u00228">
<unitId>Monetary_per_denominator</unitId>
<unitName>Monetary/{denominator}</unitName>
<nsUnit/>
<itemType>perUnitItemType</itemType>
<itemTypeDate>2009-12-16</itemTypeDate>
<numeratorItemType>monetaryItemType</numeratorItemType>
<nsNumeratorItemType>http://www.xbrl.org/2003/instance</nsNumeratorItemType>
<definition>Monetary Unit / Anything but Pure, Share, or Monetary Unit</definition>
<baseStandard>XBRL</baseStandard>
<status>CR</status>
<versionDate>2010-10-31</versionDate>
</unit>
</units>
</utr>

Appendix C 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)
ISO
International Standards Organisation. " ISO 4217 Currency codes, ISO 639 Language codes, ISO 3166 Country codes, ISO 8601 international standard numeric date and time representations. "
(See http://www.iso.ch/)
UTR PROCESS
XBRL International Inc.. "Units Registry - Process 1.0"
Hugh Wallis
, and Walter Hamscher.
(See http://www.xbrl.org/Specification/utr/PWD-2011-05-05/utr-process-PWD-2011-05-05.html)
XBRL 2.1
XBRL International Inc.. "Extensible Business Reporting Language (XBRL) 2.1 Includes Corrected Errata Up To 2008-07-02"
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-2008-07-02.htm)
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)

This document could not have been written without the contributions of many people.

Appendix F Document history (non-normative)

DateAuthorDetails
23 March 2011Walter Hamscher

Initial version based on DTR.

17 April 2011Walter Hamscher

Updated the structure declaration to match the current UTR implementation.

05 May 2011Hugh Wallis

Editorial for publication as PWD.

09 August 2011Walter Hamscher

Copied text from Table 1 to the schema declarations of conversionPresentation and conversionContent, added not regarding numerator and denominator item types, corrected spelling error.

09 November 2011Walter Hamscher

Editorial for publication as CR.

10 December 2011Walter Hamscher

Editorial as DR.

21 December 2011Walter Hamscher

Add column "element or attribute" to Table 2. Clarify that the combination of unitId and nsUnit are unique within the scope of the registry. Correct the text of the unitId description to reflect that it can contain {numerator} or {denominator}. Edit the schema documentation elements to be the same as the explanation in the data model table. Editorial for publication as PR.

30 April 2012Walter Hamscher

Added new Section 4, Validation, other editorial changes for DPR.

08 June 2012Paul Warren

Editorial changes to validation section.

10 June 2012Walter Hamscher

Correct explanation of unitID, add example of division matches in Validation, other editorial changes to Validation.

01 July 2012Walter Hamscher

Copy a utr fragment into the validation section to support its example. Remove all uses of the curly-brace convention to indicate parameterized unit declarations.

18 July 2012Paul Warren

Added definitions for simple unit definition and complex unit definition, and codified constraints relating to them in the list of fields. Clarified definition of Unit ID. Expanded sample UTR in appendix, and referenced sample UTR from explanatory validation section.

31 October 2012Walter Hamscher

Editorial as PR.

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 Link Role Registry Approval Manager up to and including 31 October 2012. 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.