Copyright © 2009, 2010, 2011, 2012, 2013 XBRL International Inc., All Rights Reserved.
Circulation of this Proposed Recommendation is unrestricted. This document is normative. Other documents may supersede this document. Recipients are invited to submit comments to versioning-feedback@xbrl.org, and to submit notification of any relevant patent rights of which they are aware and provide supporting documentation.
This specification is an extension to the Versioning Base Specification [XVS-Base]. It specifies how to map and address concept properties, including XML and XBRL attributes on concept definitions, labels and references associated with concept definitions and changes to tuple content models.
This specification must be used in conjunction with the Versioning Base module [XVS-Base] and Versioning Concept Use module [XVS-Concept-Use].
1 Introduction
1.1 Relationship to other work
1.2 Namespaces and namespace prefixes
1.3 Language independence
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 Terminology
2 Definitions
3 Events
3.1 Attribute events
3.1.1 XML Schema Attribute Events
3.1.1.1 Validation rules
3.1.2 XBRL Concept Attribute Events
3.2 Custom concept attribute events
3.2.1 Validation rules
3.3 Label and reference events
3.3.1 Label events
3.3.2 Reference events
3.4 Tuple content model events
3.5 Concept correspondence
4 Identifiers
4.1 Resource Identifier
4.1.1 XML Representation
4.2 Concept-Label Identifier
4.2.1 Validation rules
4.3 Concept-Reference Identifier
4.3.1 Validation rules
4.4 Concept-Attribute Identifier
4.5 Attribute Identifier
4.5.1 XML Representation
4.6 Item Concept Identifier
4.6.1 Validation rules
4.7 Tuple Concept Identifier
4.7.1 Validation rules
4.8 Equivalent Attributes
A Normative schema
B References
C Intellectual property status (non-normative)
D Acknowledgements (non-normative)
E Document history (non-normative)
F Errata corrections in this document
1 Namespaces and namespace prefixes
2 XML Schema Attribute Events
3 XBRL Concept Attribute Events
4 Custom Concept Attribute Events
5 Concept label events
6 Concept reference events
7 Tuple content events
8 Allowed resources and relationships for concept-label
identifiers
9 Allowed resources and relationships for concept-reference
identifiers
Attribute Identifier
Concept-Attribute Identifier
Concept-Label Identifier
Concept-Reference Identifier
Effective Relationship
Equivalent Attributes
Item Concept Identifier
Resource Identifier
Tuple Concept Identifier
vercde:illegalCustomAttributeEvent
vercde:illegalSchemaAttributeChangeEvent
vercde:invalidAttributeCorrespondence
vercde:invalidConceptCorrespondence
vercde:invalidConceptLabelIdentifier
vercde:invalidConceptReferenceIdentifier
vercde:invalidItemConceptIdentifier
vercde:invalidResourceIdentifier
vercde:invalidTupleConceptIdentifier
This specification depends upon the following XBRL specifications:
In the event of any conflicts between this specification and the specifications upon which it depends, this specification does not prevail.
This specification uses a number of namespace prefixes when describing elements and attributes. These are:
Prefix | Namespace URI |
---|---|
ver |
http://xbrl.org/2013/versioning-base |
vercu |
http://xbrl.org/2013/versioning-concept-use |
vercd |
http://xbrl.org/2013/versioning-concept-details |
vercde |
http://xbrl.org/2013/versioning-concept-details/error |
The official language of XBRL International's own work products is English and the preferred spelling convention is UK English.
Comments which are informative, but not essential to the understanding of the point at hand, are provided in footnotes. All footnotes are non-normative.
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
.
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.
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].
The key words element, attribute, namespace name and namespace prefix in this document are to be interpreted as described in the XML Names Specification [XML Names].
The key words content model and actual value in this document are to be interpreted as described in the XML Schema Structures Specification [XML Schema Structures].
The key word QName in this document is to be interpreted as described in the XML Schema Datatypes Specification [XML Schema Datatypes].
The key words concept, tuple, item, tuple declaration, relationship, network, base set, label, reference and arc in this document are to be interpreted as described in the XBRL Specification [XBRL 2.1].
The key word resource in this document is to be interpreted as described in the XLink Specification [XLINK].
An Effective Relationship is a relationship that is included in the network of relationships for a base set of arcs, under the Rules of Prohibiting and Overriding Relationships in the XBRL Specification [XBRL 2.1].
This specification supports the communication of information about changes to the details of concept definitions. Specific Events are defined for:
The table below lists Events that MAY be used to document changes to attributes defined for use on element declarations by the XML Schema specification [XML Schema Structures]. These attributes have no namespace name.
Code | Element | XML Schema Attribute | From Identifier | To Identifier |
---|---|---|---|---|
[ConceptIDChange] |
<vercd:conceptIDChange>
|
@id |
Concept Identifier | Concept Identifier |
[ConceptTypeChange] |
<vercd:conceptTypeChange>
|
@type |
Concept Identifier | Concept Identifier |
[ConceptSubstitutionGroupChange] |
<vercd:conceptSubstitutionGroupChange>
|
@substitutionGroup |
Concept Identifier | Concept Identifier |
[ConceptNillableChange] |
<vercd:conceptNillableChange>
|
@nillable |
Concept Identifier | Concept Identifier |
[ConceptAbstractChange] |
<vercd:conceptAbstractChange>
|
@abstract |
Concept Identifier | Concept Identifier |
[ConceptBlockChange] |
<vercd:conceptBlockChange>
|
@block |
Concept Identifier | Concept Identifier |
[ConceptDefaultChange] |
<vercd:conceptDefaultChange>
|
@default |
Concept Identifier | Concept Identifier |
[ConceptFixedChange] |
<vercd:conceptFixedChange>
|
@fixed |
Concept Identifier | Concept Identifier |
[ConceptFinalChange] |
<vercd:conceptFinalChange>
|
@final |
Concept Identifier | Concept Identifier |
The Events defined in the table above indicate a change in the actual value of an attribute. Note that the actual value would be unchanged if in one DTS the attribute were omitted and in the other the attribute were explicitly reported with a value that was equal to the attribute's default value.
The ConceptSubstitutionGroupChange Event SHOULD be used to indicate that a concept has changed from a tuple concept to an item concept or vice versa.
The Working Group considers changes to concept @id
attributes as events that are not likely
to be reported, since software approaches the attribute as an internal key
with no semantics attached to it.
When one of the XML Schema Attribute Events is used, the relevant attribute MUST have an actual value in at least one of the from or to DTSs. Error code vercde:illegalSchemaAttributeChangeEvent is raised otherwise.
Some attributes, such as @fixed
, do not have a default value. This validation rule prevents the reporting of incorrect events for these attributes where
the attribute is not present in either the from or the to DTS (in which case, because it has no default, it does not have an actual value).
The table below lists Events that MAY be used to document changes to attributes defined for use on concept declarations by the XBRL specification [XBRL 2.1]. These attributes have a namespace name of http://www.xbrl.org/2003/instance.
Code | Element | XBRL Attribute | From Identifier | To Identifier |
---|---|---|---|---|
[PeriodTypeChange] |
<vercd:conceptPeriodTypeChange>
|
@xbrli:periodType |
Item Concept Identifier | Item Concept Identifier |
[BalanceChange] |
<vercd:conceptBalanceChange>
|
@xbrli:balance |
Item Concept Identifier | Item Concept Identifier |
The table below documents Events that MAY be used to document changes in attributes other than those defined by the XML Schema specification [XML Schema Structures], the XBRL Specification [XBRL 2.1] and the XBRL Dimensions Specification [DIMENSIONS].
Code | Element | From Identifier | To Identifier |
---|---|---|---|
[AttributeDelete] |
<vercd:conceptAttributeDelete>
|
Concept-Attribute Identifier | - |
[AttributeAdd] |
<vercd:conceptAttributeAdd>
|
- | Concept-Attribute Identifier |
[AttributeChange] |
<vercd:conceptAttributeChange>
|
Concept-Attribute Identifier | Concept-Attribute Identifier |
[AttributeDefinitionChange] |
<vercd:attributeDefinitionChange>
|
Attribute Identifier | Attribute Identifier |
The AttributeDelete and AttributeAdd indicate the removal or addition of a custom attribute, respectively, between the From-DTS and the To-DTS. These events may be grouped into a single Action to represent replacement of one custom attribute with another.
The AttributeChange event is used to indicate a change in the value of a custom attribute.
The AttributeDefinitionChange event is used to indicate a global change in the definition of a custom attribute. This MAY include changes in the name or namespace name of the attribute, or changes in the underlying schema definition of the attribute.
Identifiers used in these Events MUST NOT reference attributes with no namespace name, or with a namespace name of http://www.xbrl.org/2003/instance, http://www.w3.org/2001/XMLSchema, or http://xbrl.org/2005/xbrldt. Error code vercde:illegalCustomAttributeEvent is raised otherwise.
AttributeChange events MUST only be reported for Equivalent Attributes. Error code vercde:invalidAttributeCorrespondence is raised otherwise.
Additions of, deletions of, and changes to labels associated with concepts MAY be documented using the Events defined in the table below.
Code | Element | From Identifier | To Identifier |
---|---|---|---|
[LabelDelete] |
<vercd:conceptLabelDelete>
|
Concept-Label Identifier | - |
[LabelAdd] |
<vercd:conceptLabelAdd>
|
- | Concept-Label Identifier |
[LabelChange] |
<vercd:conceptLabelChange>
|
Concept-Label Identifier | Concept-Label Identifier |
It should be noted that the LabelChange Event does not require any correspondence between the language, resource role, or extended link role of the labels involved. It is for the creator of the Versioning Report to determine if a scenario should be represented as a "change" or the deletion of one label and the addition of another.
Additions of, deletions of, and changes to references associated with concepts MAY be documented using the Events defined in the following table.
Code | Element | From Identifier | To Identifier |
---|---|---|---|
[ReferenceDelete] |
<vercd:conceptReferenceDelete>
|
Concept-Reference Identifier | - |
[ReferenceAdd] |
<vercd:conceptReferenceAdd>
|
- | Concept-Reference Identifier |
[ReferenceChange] |
<vercd:conceptReferenceChange>
|
Concept-Reference Identifier | Concept-Reference Identifier |
It should be noted that the ReferenceChange Event does not require any correspondence between the language, resource role, or extended link role of the references involved. It is for the creator of the Versioning Report to determine if a scenario should be represented as a "change" or the deletion of one reference and the addition of another.
The TupleContentModelChange event MAY be used to document any change in the content model of a tuple concept.
Code | Element | From-DTS | To-DTS |
---|---|---|---|
[TupleContentModelChange] |
<vercd:tupleContentModelChange>
|
Tuple Concept Identifier | Tuple Concept Identifier |
The TupleContentModelChange event SHOULD NOT be used where the only changes to the content model are changes to the names or namespace names between Equivalent Concepts.
Where an Event in this specification requires both a From Identifier and a To Identifier and each identifier is one of:
then the concepts identified by both identifiers MUST be identified as Equivalent Concepts or Related Concepts using the mechanism specified in the Versioning Concept Use specification [XVS-Concept-Use]. Error code vercde:invalidConceptCorrespondence is raised otherwise.
A Resource Identifier is an Identifier for an XLink resource.
A Resource
Identifier is represented by either a
<vercd:fromResource>
or a <vercd:toResource>
element.
These elements have a mandatory @value
attribute, the value
of which is a URL identifying the resource. The URL
MUST contain a fragment identifier. The fragment
identifier MUST either be an XPointer Shorthand Pointer or be an
XPointer Scheme-Based
Pointer that uses only the element scheme.
The URL MUST resolve to an XLink
resource.
Error code vercde:invalidResourceIdentifier is raised otherwise.
A Concept-Label Identifier is a combination of a Concept Identifier and a Resource Identifier where the identified resource represents a label for the identified concept. The specification allows for labels defined using the syntax defined in either the XBRL Specification [XBRL 2.1] or the Generic Labels Specification [GENERIC LABELS].
The identified concept and label MUST be connected by at least one effective relationship out of the types defined in the table below. Error code vercde:invalidConceptLabelIdentifier is raised otherwise.
Resource | Arc-role | Arc element | Link element |
---|---|---|---|
<link:label> |
http://www.xbrl.org/2003/arcrole/concept-label | <link:labelArc> |
<link:labelLink> |
<label:label> |
http://xbrl.org/arcrole/2008/element-label | <gen:arc> |
any |
A Concept-Reference Identifier is a combination of a Concept Identifier and a Resource Identifier where the identified resource represents a reference for the identified concept. The specification allows for references defined using the syntax defined in either the XBRL Specification [XBRL 2.1] or the Generic Reference Specification [GENERIC REFERENCES].
The identified concept and reference MUST be connected by at least one effective relationship out of the types defined in the table below. Error code vercde:invalidConceptReferenceIdentifier is raised otherwise.
Resource | Arc-role | Arc element | Link element |
---|---|---|---|
<link:reference> |
http://www.xbrl.org/2003/arcrole/concept-reference | <link:referenceArc> |
<link:referenceLink> |
<reference:reference> |
http://xbrl.org/arcrole/2008/element-reference | <gen:arc> |
any |
A Concept-Attribute Identifier is the combination of a Concept Identifier and the usage on that concept of an attribute specified by an Attribute Identifier.
An Attribute Identifier is an Identifier for the declaration of an XML attribute.
An Attribute Identifier is represented by:
<vercd:fromCustomAttribute>
element, if it is used as a From Identifier; or <vercd:toCustomAttribute>
element, if it is used as a To Identifier.
The attribute is identified by the
mandatory @name
attribute, which
specifies the QName of the attribute. An Attribute
Identifier cannot reference an attribute that has no
namespace name.
An Item Concept Identifier is a Concept Identifier that identifies an item concept.
The identified concept MUST be a valid item, as defined in the XBRL Specification [XBRL 2.1]. Error code vercde:invalidItemConceptIdentifier is raised otherwise.
A Tuple Concept Identifier is a Concept Identifier that identifies a tuple concept.
The identified concept MUST be a valid tuple declaration, as defined in the XBRL Specification [XBRL 2.1]. Error code vercde:invalidTupleConceptIdentifier is raised otherwise.
Two attributes are considered to be Equivalent Attributes when they are both used to record values for the same piece of business information in relation to a concept.
Attributes AF and AT are Equivalent Attributes if:
Or:
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.
Date | Author | Details |
---|---|---|
30 October 2009 | Roland Hommes |
Merged PWD-2009-05-27 on Context and Syntax into one document, and split the result into modules, this being the 'extended concepts' module which enables concept-level versioning. |
12 December 2009 | Roland Hommes |
Created specific events for labels and references, removed reference to XIS. |
27 December 2009 | Herm Fischer |
Made an attempt at drafting section 3. |
30 December 2009 | Herm Fischer |
Removed prior draft section 3 introduction, added section 3.1, Concept Identification, to clarify the use of fromE and toE on events, particularly of multiply-equivalent related concepts. Also added clarification of EvAttributeChange and EvChildChange events. |
11 January 2010 | Paul Warren |
Various editorial changes. |
11 January 2010 | Herm Fischer |
Reworded custom attribute's events where the custom attribute has no namespace (sect 2.1), per PW comment. Clarified the custom attribute and child change examples. Reworded section 3.1. Put non-normative stuff into example boxes. |
01 February 2010 | Paul Warren |
Split event table into multiple sections. Corrected reference to XML Schema namespace for XML Schema attributes. |
01 March 2010 | Paul Warren |
Use QName to identify a custom attribute. Removed non-normative text. Split out definitions of Events and Identifiers. Simplified tuple events. |
28 February 2010 | Roland Hommes |
Included remark on @id on concepts and the link to namespace prefix changes. Included http://www.w3.org/2001/XMLSchema in the error on custom Attribute events. |
20 June 2010 | Ian Stokes-Rees |
Reordered some content to improve flow, updated references to Base and Concept Basic specs, removed some empty sections, and corrected a few identifier reference errors. |
23 January 2011 | Herm Fischer |
Updated schema for QName concept identifier. Commented out these events in schema, which are not currently described in document text: conceptAttributeChange, conceptChildAdd, and conceptChildDelete. |
04 February 2011 | Herm Fischer |
Updated Section 3.2 to add back custom concept [AttributeChange] events. Updated description of attribute identifer to use QName and added that prefix-less name means un-prefixed attribute name, not default-namespace QName. Added that custom attribute change is for value only, with name in toDTS the same or relevant namespace-mapped QName. Updated schema file to remove commented-out tuple content model events for child add and delete, as these are documented by the current [ConceptChildChange] events. |
07 March 2011 | Paul Warren |
Updated Section 3.2 to clarify the use of the [AttributeChange] event, added back a "to" identifier for this event, and fixed other issues with the drafting. |
07 March 2011 | Paul Warren |
Updated Section 3.1 to advise against reporting events that are a direct result of a change from item to tuple or vice versa. |
07 March 2011 | Paul Warren |
Clarified that changes to tuple content models corresponding to name changes between equivalent concepts should not be reported. |
07 March 2011 | Paul Warren |
Clarified that label and reference change events can be used even if language and roles have changed. |
21 March 2011 | Paul Warren |
Replace customAttribute element with fromCustomAttribute and toCustomAttribute. |
22 March 2011 | Paul Warren |
Renamed ConceptChildChange to TupleContentModelChange |
18 April 2011 | Paul Warren |
Fixed typo in name of invalidConceptResourceIdentifier. Added additional constraint to Resource Identifier. |
20 February 2012 | David North |
Added non-normative clarifying note to invalidConceptResourceIdentifier error code definition. |
10 April 2012 | Richard Ashby |
Added new AttributeDefinitionChange for reporting changes in the name or type of custom attributes. De-scoped AttributeChange to refer only to changes in the values of attributes. Added definition of Equivalent Attributes and the error code to be reported if AttributeChanges are reported using attributes which are not equivalent. |
10 April 2012 | Richard Ashby |
Clarified the definition of Attribute Identifier to refer to an attribute declaration, not attribute use. Reworded the definition of Concept Attribute Identifier so it still means the same as before, the usage of an attribute on a concept. |
19 December 2012 | Richard Ashby |
Removed effectively redundant error code vercde:invalidConceptResourceIdentifier and reworded validation sections so that one of the more specific existing codes vercde:invalidConceptLabelIdentifier and vercde:invalidConceptReferenceIdentifier is raised instead. Removed definition of "Concept Resource Identifier" since it is no longer used. |
08 January 2013 | Richard Ashby |
Updated schema namespace to http://xbrl.org/2013/versioning-concept-details and error namespace to http://xbrl.org/2013/versioning-concept-details/error. |
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 Versioning Working Group up to and including 15 January 2013. 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.