Copyright ©2010 XBRL International Inc., All Rights Reserved.
Circulation of this Candidate 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 Epecification [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 Basic Concepts module [XVS-Concept-Basic].
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.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-Resource Identifier
4.2.1 Validation rules
4.3 Concept-Label Identifier
4.3.1 Validation rules
4.4 Concept-Reference Identifier
4.4.1 Validation rules
4.5 Concept-Attribute Identifier
4.6 Attribute Identifier
4.6.1 XML Representation
4.7 Tuple Concept Identifier
4.7.1 Validation rules
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
1 A normative example
2 A non-normative example
3 An example of poor usage
Attribute Identifier
Concept-Attribute Identifier
Concept-Label Identifier
Concept-Reference Identifier
Concept-Resource Identifier
Effective Relationship
Resource Identifier
Tuple Concept Identifier
vercee:illegalCustomAttributeEvent
vercee:invalidAttributeChange
vercee:invalidConceptCorrespondence
vercee:invalidConceptIdentifier
vercee:invalidConceptLabelIdentifier
vercee:invalidContentResourceIdentifier
vercee:invalidResourceIdentifier
vercee: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/2010/versioning-base
|
vercb
|
http://xbrl.org/2010/versioning-concept-basic
|
verce
|
http://xbrl.org/2010/versioning-concept-extended
|
vercee
|
http://xbrl.org/2010/versioning-concept-extended/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 for a specification container element would be referred to as
<variable:generalVariable>
.
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 helpful example.
Next paragraph of the helpful example.
Example 3 shows the formatting for non-normative examples of poor, discouraged or disallowed usage.
The example itself.
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 word content model in this document is 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, 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 | Parent Event | From Identifier | To Identifier | Final |
---|---|---|---|---|---|---|
[ConceptIDChange] |
<verce:conceptIDChange>
|
@id
|
None | Concept Identifier | Concept Identifier | Yes |
[ConceptTypeChange] |
<verce:conceptTypeChange>
|
@type
|
None | Concept Identifier | Concept Identifier | Yes |
[SubstitutionGroupChange] |
<verce:conceptSubstitutionGroupChange>
|
@substitutionGroup
|
None | Concept Identifier | Concept Identifier | Yes |
[NillableChange] |
<verce:conceptNillableChange>
|
@nillable
|
None | Concept Identifier | Concept Identifier | Yes |
[AbstractChange] |
<verce:conceptAbstractChange>
|
@abstract
|
None | Concept Identifier | Concept Identifier | Yes |
[BlockChange] |
<verce:conceptBlockChange>
|
@block
|
None | Concept Identifier | Concept Identifier | Yes |
[DefaultChange] |
<verce:conceptDefaultChange>
|
@default
|
None | Concept Identifier | Concept Identifier | Yes |
[FixedChange] |
<verce:conceptFixedChange>
|
@fixed
|
None | Concept Identifier | Concept Identifier | Yes |
[FinalChange] |
<verce:conceptFinalChange>
|
@final
|
None | Concept Identifier | Concept Identifier | Yes |
The Working Group considers changes in concept
@id
as events that will likely
not be communicated since software approaches this attribute as an internal key
with no semantics attached to it. This also means that any namespace prefix
that is being changed that MAY have consequences for the content of the
@id
will NOT be supported by this or any other versioning module, unless comments received
will proove otherwise.
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 | Parent Event | From Identifier | To Identifier | Final |
---|---|---|---|---|---|---|
[PeriodTypeChange] |
<verce:conceptPeriodTypeChange>
|
@xbrli:periodType
|
None | Concept Identifier | Concept Identifier | Yes |
[BalanceChange] |
<verce:conceptBalanceChange>
|
@xbrli:balance
|
None | Concept Identifier | Concept Identifier | Yes |
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 | Parent Event | From Identifier | To Identifier | Final |
---|---|---|---|---|---|
[AttributeDelete] |
<verce:conceptAttributeDelete>
|
None | Concept-Attribute Identifier | - | Yes |
[AttributeAdd] |
<verce:conceptAttributeAdd>
|
None | - | Concept Attribute Identifier | Yes |
For Events documenting changes in
custom attributes on concepts, the attribute
is identified by the
@name
and
@namespace
attributes of the
<verce:customAttribute>
element.
These Events MUST NOT have namespaces http://www.xbrl.org/2003/instance or http://www.w3.org/2001/XMLSchema. Error code vercee:illegalCustomAttributeEvent is thrown otherwise.
These Events MUST NOT be used to document changes in attributes with no namespace name, or with a namespace name of http://www.xbrl.org/2003/instance. Specific Events for such attributes are defined in Section 3.1. Error code vercee:invalidAttributeChange is raised otherwise.
Additions of, deletions of, and changes to references associated with concepts MAY be documented using the Events defined in the table below.
Code | Element | Parent Event | From Identifier | To Identifier | Final |
---|---|---|---|---|---|
[LabelDelete] |
<verce:conceptLabelDelete>
|
None | Concept Label Identifier | - | Yes |
[LabelAdd] |
<verce:conceptLabelAdd>
|
None | - | Concept-Label Identifier | Yes |
[LabelChange] |
<verce:conceptLabelChange>
|
None | Concept-Label Identifier | Concept-Label Identifier | Yes |
Additions of, deletions of, and changes to references associated with concepts MAY be documented using the Events defined in the following table.
Code | Element | Parent Event | From Identifier | To Identifier | Final |
---|---|---|---|---|---|
[ReferenceDelete] |
<verce:conceptReferenceDelete>
|
None | Concept-Reference Identifier | - | Yes |
[ReferenceAdd] |
<verce:conceptReferenceAdd>
|
None | - | Concept-Reference Identifier | Yes |
[ReferenceChange] |
<verce:conceptReferenceChange>
|
None | Concept-Reference Identifier | Concept-Reference Identifier | Yes |
The ConceptChildChange event MAY be used to document any change in the content model of a tuple concept.
Code | Element | Parent Event | From-DTS | To-DTS | Final |
---|---|---|---|---|---|
[ConceptChildChange] |
<verce:conceptChildChange>
|
None | Tuple Concept Identifier | Tuple Concept Identifier | No |
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 Base specification [XVS-Concept-Basic]. Error code vercee:invalidConceptCorrespondence is raised otherwise.
A Resource Identifier is an Identifier for an XLink resource.
A Resource
Identifier is represented by either a
<verce:fromResource>
or a
<verce: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.
Error code vercee:invalidResourceIdentifier is raised otherwise.
The Working Group has also considered a mechanism for addressing label and reference resources by identifying the concept, linkElement, linkrole, arcElement, arcrole and role on the resource. This approach is more verbose and yet may not uniquely identify a resource. Therefore, it has been excluded from this draft of the specification pending further feedback.
A Concept-Resource Identifier is the combination of a Concept Identifier and a Resource Identifier.
The Resource Identifier component and Concept Identifier components MUST identify a resource and a concept, respectively, that are connected by at least one effective relationship. Error code vercee:invalidContentResourceIdentifier is raised otherwise.
A Concept-Label Identifier is a Concept-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 resource and at least one of the effective relationships associating it with the concept MUST be one of the allowed combinations in the table below. Error code vercee: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 Concept-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 resource and at least one of the effective relationships associating it with the concept MUST be one of the allowed combinations in the table below. Error code vercee:invalidConceptIdentifier 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 an Attribute Identifier.
An Attribute Identifier is an Identifier for an XML attribute.
An Attribute
Identifier is represented by the
<verce:customAttribute>
. The attribute is identified by the
mandatory
@name
attribute, which
specifies the QName of the attribute,
respectively. An Attribute
Identifier cannot reference an attribute that has no
namespace name.
A Tuple Concept Identifier is a Concept Identifier that identifies a tuple concept.
The identified conceptMUST be a valid tuple declaration, as defined in the XBRL Specification [XBRL 2.1]. Error code vercee:invalidTupleConceptIdentifier is raised otherwise.
This document and translations of it may be copied and furnished to others, and derivative works that comment on or otherwise explain it or assist in its implementation may be prepared, copied, published and distributed, in whole or in part, without restriction of any kind, provided that the above copyright notice and this paragraph are included on all such copies and derivative works. However, this document itself may not be modified in any way, such as by removing the copyright notice or references to XBRL International or XBRL organizations, except as required to translate it into languages other than English. Members of XBRL International agree to grant certain licenses under the XBRL International Intellectual Property Policy (www.xbrl.org/legal).
This document and the information contained herein is provided on an "AS IS" basis and XBRL INTERNATIONAL DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
The attention of users of this document is directed to the possibility that compliance with or adoption of XBRL International specifications may require use of an invention covered by patent rights. XBRL International shall not be responsible for identifying patents for which a license may be required by any XBRL International specification, or for conducting legal inquiries into the legal validity or scope of those patents that are brought to its attention. XBRL International specifications are prospective and advisory only. Prospective users are responsible for protecting themselves against liability for infringement of patents. XBRL International takes no position regarding the validity or scope of any intellectual property or other rights that might be claimed to pertain to the implementation or use of the technology described in this document or the extent to which any license under such rights might or might not be available; neither does it represent that it has made any effort to identify any such rights. Members of XBRL International agree to grant certain licenses under the XBRL International Intellectual Property Policy (www.xbrl.org/legal).
This document could not have been written without the contributions of many people including the participants in the Versioning Working Group.
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. |
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 31 July 2010. 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.