Syntax Rules

From XBRLWiki

(Difference between revisions)
Jump to: navigation, search
Revision as of 08:32, 12 October 2012 (edit)
Hommes (Talk | contribs)

← Previous diff
Current revision (11:48, 25 October 2012) (edit)
Hommes (Talk | contribs)
(Domains)
 
Line 1: Line 1:
 +=== Public elements ===
*Public elements MUST have two custom attributes: @model:creationDate and @model:modificationDate. *Public elements MUST have two custom attributes: @model:creationDate and @model:modificationDate.
 +<span style="background-color:yellow">[[Talk:Syntax_Rules#Comment-01|Comment-01]]</span>
 +*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.
 +<span style="background-color:yellow">[[Talk:Syntax_Rules#Comment-06|Comment-06]]</span>
 +<span style="background-color:yellow">[[Talk:Syntax_Rules#Comment-07|Comment-07]]</span>
 +=== Labels ===
*Language specific information MUST be expressed through label relationships. *Language specific information MUST be expressed through label relationships.
*Concepts MUST use 2.1 labels. *Concepts MUST use 2.1 labels.
*Concepts represented by xlink resources MUST use generic labels. *Concepts represented by xlink resources MUST use generic labels.
 +<span style="background-color:yellow">[[Talk:Syntax_Rules#Comment-02|Comment-02]]</span>
*Label relationships MUST be placed in an ELR using the default role http://www.xbrl.org/2003/role/link *Label relationships MUST be placed in an ELR using the default role http://www.xbrl.org/2003/role/link
 +<span style="background-color:yellow">[[Talk:Syntax_Rules#Comment-03|Comment-03]]</span>
*2.1 labels MUST use http://www.xbrl.org/2003/role/label as their role for their standard label. *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. *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. *2.1 labels MUST use http://www.xbrl.org/2003/role/verboseLabel as their role for their definition.
 +<span style="background-color:yellow">[[Talk:Syntax_Rules#Comment-04|Comment-04]]</span>
*Generic labels MUST use http://www.xbrl.org/2008/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. *2.1 labels MUST use http://www.xbrl.org/2003/role/documentation as their role for legal references.
 +<span style="background-color:yellow">[[Talk:Syntax_Rules#Comment-05|Comment-05]]</span>
*Generic labels MUST use http://www.xbrl.org/2008/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. *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". <span style="background-color:#A9D0F5">Some text</span>
Note: 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. 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.
 +<span style="background-color:yellow">[[Talk:Syntax_Rules#Comment-08|Comment-08]]</span>
 +
 +=== Families ===
 +* Families MUST have @abstract='true'.
 +* Families MUST have @substitutionGroup='xbrli:item'.
 +* Families MUST have @type='model:familyType'.
 +<span style="background-color:yellow">[[Talk:Syntax_Rules#Comment-09|Comment-09]]</span>
 +
 +=== Frameworks ===
 +* Frameworks MUST have @abstract='true'.
 +* Frameworks MUST have @substitutionGroup='xbrli:item'.
 +* Frameworks MUST have @type='model:frameworkType'.
 +<span style="background-color:yellow">[[Talk:Syntax_Rules#Comment-11|Comment-11]]</span>
 +
 +=== 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'.
 +<span style="background-color:yellow">[[Talk:Syntax_Rules#Comment-13|Comment-13]]</span>
 +
 +=== Taxonomies ===
 +* Taxonomies MUST have @abstract='true'.
 +* Taxonomies MUST have @substitutionGroup='xbrli:item'.
 +* Taxonomies MUST have @type='model:taxonomyType'.
 +<span style="background-color:yellow">[[Talk:Syntax_Rules#Comment-12|Comment-12]]</span>
 +
 +=== 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'.
 +
 +<span style="background-color:yellow">[[Talk:Syntax_Rules#Comment-14|Comment-14]]</span>
 +
 +=== 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'
 +<span style="background-color:yellow">[[Talk:Syntax_Rules#Comment-10|Comment-10]]</span>
 +
 +=== 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;

Current revision

Contents

Public elements

  • Public elements MUST have two custom attributes: @model:creationDate and @model:modificationDate.

Comment-01

  • 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.

Comment-02

Comment-03

Comment-04

Comment-05


  • 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.

Comment-08

Families

  • Families MUST have @abstract='true'.
  • Families MUST have @substitutionGroup='xbrli:item'.
  • Families MUST have @type='model:familyType'.

Comment-09

Frameworks

  • Frameworks MUST have @abstract='true'.
  • Frameworks MUST have @substitutionGroup='xbrli:item'.
  • Frameworks MUST have @type='model:frameworkType'.

Comment-11

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'.

Comment-13

Taxonomies

  • Taxonomies MUST have @abstract='true'.
  • Taxonomies MUST have @substitutionGroup='xbrli:item'.
  • Taxonomies MUST have @type='model:taxonomyType'.

Comment-12

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'.

Comment-14

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'

Comment-10

Hierarchies of explicit domain members

Personal tools