Syntax Rules
From XBRLWiki
Revision as of 09:01, 25 October 2012 (edit) Hommes (Talk | contribs) (Add taxonomies) ← Previous diff |
Current revision (11:48, 25 October 2012) (edit) Hommes (Talk | contribs) (→Domains) |
||
Line 35: | Line 35: | ||
Current references are described in plain English; as a consequence, labels are a better solution than reference linkbases. In the future, a structured approach for legal references could be undertaken. | Current references are described in plain English; as a consequence, labels are a better solution than reference linkbases. In the future, a structured approach for legal references could be undertaken. | ||
+ | |||
+ | === Metrics === | ||
+ | * Metrics MUST have @nillable='true' | ||
+ | * Metrics MUST be abstract='false', since this is the XML Schema default this attribute/value in not mandatory on the metric concept | ||
+ | * Metrics MUST have @substitutionGroup='xbrli:item' | ||
=== Dimensions (Axes) === | === Dimensions (Axes) === | ||
Line 58: | Line 63: | ||
* Perspective linkrole definition schema MUST import fam.xsd and dim.xsd | * Perspective linkrole definition schema MUST import fam.xsd and dim.xsd | ||
* Perspective linkroles MUST have generic labels (in the same folder) | * Perspective linkroles MUST have generic labels (in the same folder) | ||
+ | |||
+ | === TableGroups === | ||
+ | * Taxonomies MUST have @abstract='true'. | ||
+ | * Taxonomies MUST have @substitutionGroup='xbrli:item'. | ||
+ | * Taxonomies MUST have @type='model:tableGroupType'. | ||
+ | <span style="background-color:yellow">[[Talk:Syntax_Rules#Comment-13|Comment-13]]</span> | ||
=== Taxonomies === | === Taxonomies === | ||
Line 73: | Line 84: | ||
* Typed domains MUST NOT have @substitutionGroup='xbrli:item'. | * Typed domains MUST NOT have @substitutionGroup='xbrli:item'. | ||
* Typed domains MUST have @type='xbrli:stringItemType'. | * Typed domains MUST have @type='xbrli:stringItemType'. | ||
+ | |||
+ | * Metrics domains are not a separate type of concept, if multiple metrics are used on a single hypercube in the arcrole 'all', any of them can act as domain, suggested is to take 'the first'. | ||
+ | |||
+ | <span style="background-color:yellow">[[Talk:Syntax_Rules#Comment-14|Comment-14]]</span> | ||
=== Domain members === | === Domain members === |
Current revision
Contents |
Public elements
- Public elements MUST have two custom attributes: @model:creationDate and @model:modificationDate.
- Public elements MAY have two custom attributes: @model:fromDate and @model:toDate.
These attributes establish its currency period (note that the validity of the concept MAY differentiate from its currentness due to reports from long ago). Omission of these attributes results to 'Forever' behaviour. Comment-06 Comment-07
Labels
- Language specific information MUST be expressed through label relationships.
- Concepts MUST use 2.1 labels.
- Concepts represented by xlink resources MUST use generic labels.
- Label relationships MUST be placed in an ELR using the default role http://www.xbrl.org/2003/role/link
- 2.1 labels MUST use http://www.xbrl.org/2003/role/label as their role for their standard label.
- Generic labels MUST use http://www.xbrl.org/2008/role/label as their role for their standard label.
- 2.1 labels MUST use http://www.xbrl.org/2003/role/verboseLabel as their role for their definition.
- Generic labels MUST use http://www.xbrl.org/2008/role/verboseLabel as their role for their definition.
- 2.1 labels MUST use http://www.xbrl.org/2003/role/documentation as their role for legal references.
- Generic labels MUST use http://www.xbrl.org/2008/role/documentation as their role for legal references.
- Labels MUST be separated in linkbases according to their language used.
- Extensions MAY be using the special table-row-column-code linkbase for application specific codifications.
- The table-row-column-code resources MUST use http://www.eurofiling.info/xbrl/role/rc-code as their role.
- There are best practices for using labels and including the right type of natural language expressions. Clarity and understandability are topmost requirements.
OMG standards (like BPMN) for example formulate such best practices. Also W§C standards have such rules, like SKOS. [add quotes and more desciption] One aspect that is very relevant, is the fact that a label should be used more than once. Or that prefLabel are really prefered and its content not repeated in altLabel (or verboseLabel). It is better not to use the "verboseLabel" then to use it with a content already present in the "prefLabel". Some text
Note:
Current references are described in plain English; as a consequence, labels are a better solution than reference linkbases. In the future, a structured approach for legal references could be undertaken.
Metrics
- Metrics MUST have @nillable='true'
- Metrics MUST be abstract='false', since this is the XML Schema default this attribute/value in not mandatory on the metric concept
- Metrics MUST have @substitutionGroup='xbrli:item'
Dimensions (Axes)
- Dimension schemas MUST have a single definition linkbase referenced.
- Dimension-domain and dimension-defaultMember relationships MUST be placed in the XBRL default linkrole http://www.xbrl.org/2003/role/link.
- Dimension-domain relationships MUST use @usable='false'.
- Concepts in the xbrldt:dimensionItemType substitutionGroup AND carrying the @name='baseItem' MUST have @xbrli:balance.
Families
- Families MUST have @abstract='true'.
- Families MUST have @substitutionGroup='xbrli:item'.
- Families MUST have @type='model:familyType'.
Frameworks
- Frameworks MUST have @abstract='true'.
- Frameworks MUST have @substitutionGroup='xbrli:item'.
- Frameworks MUST have @type='model:frameworkType'.
Perspectives
- Perspective linkrole definition schema MUST import fam.xsd and dim.xsd
- Perspective linkroles MUST have generic labels (in the same folder)
TableGroups
- Taxonomies MUST have @abstract='true'.
- Taxonomies MUST have @substitutionGroup='xbrli:item'.
- Taxonomies MUST have @type='model:tableGroupType'.
Taxonomies
- Taxonomies MUST have @abstract='true'.
- Taxonomies MUST have @substitutionGroup='xbrli:item'.
- Taxonomies MUST have @type='model:taxonomyType'.
Domains
- Explicit domains MUST have @abstract='true'.
- Explicit domains MUST have @substitutionGroup='xbrli:item'.
- Explicit domains MUST have @type='model:explicitDomainType'.
- Typed domains MUST have @abstract='true'.
- Typed domains MUST NOT have @substitutionGroup='xbrli:item'.
- Typed domains MUST have @type='xbrli:stringItemType'.
- Metrics domains are not a separate type of concept, if multiple metrics are used on a single hypercube in the arcrole 'all', any of them can act as domain, suggested is to take 'the first'.
Domain members
- Explicit domain members MUST have @abstract='true'.
- Explicit domain members MUST have @type='nonnum:domainItemType'.
- Default explicit domain members MUST have @model:isDefaultMember='true'
Hierarchies of explicit domain members
- Hierarchy linkroles MUST have generic labels (in the same folder)
- The arcrole of the relationships hosted MUST be domain-member in D-linkbases;
- The arcrole of the relationships hosted MUST be parent-child in P-linkbases;
- The arcrole of the relationships hosted MUST be complete-breakdown, partial-breakdown or superset-breakdown in C-linkbases;
- The custom arcrole complete-breakdown MUST use http://www.eurofiling.info/xbrl/arcrole/complete-breakdown as its arcrole URI;
- The custom arcrole partial-breakdown MUST use http://www.eurofiling.info/xbrl/arcrole/partial-breakdown as its arcrole URI;
- The custom arcrole superset-breakdown MUST use http://www.eurofiling.info/xbrl/arcrole/superset-breakdown as its arcrole URI;