Types of Template
XBRL templates are of the following types:
Blue, 'P' | ||
Green, 'C' | ||
Green | ||
Brown, 'i' | ||
Brown, italic | ||
Brown, 'XML' |
Schema node templates are brown and have a normal (non-italic) typeface.
XBRL SPS designs are created using a combination of XBRL templates (described on this page and the rest of this section, XBRL tables, XBRL charts, and other SPS features (such as Auto-Calculations and Conditions)).
Presentation link templates
Presentation link templates are created when you drag a presentation link from the Schema Tree into the design and create it as an XBRL template. The name of the presentation link appears in the template tags. The screenshot below shows a presentation link template that has been created for the Minitax Statement presentation link.
The presentation link template selects the presentation link as its context. Template contents can then be defined within this context. It is mainly used for schema tree synchronization when selecting a concept template.
Concept templates
Concept templates are created when you drag a concept from the Schema Tree into the design and create the concept as an XBRL template. The concept is created as a closed mode Concept template, and the concept's name appears in the template tags. You can switch to open mode by selecting Template Behavior | Open Mode in the template's context menu.
A Concept template is created empty. You need to place an Item template within it to return facts related to the selected concept. The aspect value template, Concept QName, returns the concept's QName.
XBRL object templates
These are templates of certain XBRL elements (Periods, Identifiers, Units, and non-dimensional segments and scenarios) that are created as XBRL objects. If the template is specified to be in open mode, the XBRL object returns all the elements of the selected type (for example, all Periods; the screenshot below shows an open-mode XBRL object template). If the template is specified to be in closed mode, the XBRL object returns a specific element of the selected type (for example, one Period from among all Periods). To switch the behavior between open and closed modes, select the template, and, in the template's context menu (accessed by right-clicking the template), hover over the Template Behavior command and select the mode you want. See the section Open, Closed, and Classic Modes for details.
To insert an XBRL object template, right-click in the location where you wish to insert the template. Then hover over the Insert XBRL Element menu item. From the submenu that appears, select the XBRL element you wish to add as the XBRL object template.
The important point to note is that these templates each reference a specific XBRL object—and not an XML node. This means that, being an object rather an XML node, there will be no context node for XPath expressions created within the object. Mechanisms that require a context node, such as the contents placeholder, therefore will not be resolved. To access the XML node corresponding to the XBRL object, insert the XML Node template (see below) within the XBRL object. Alternatively, Altova XBRL extension functions can be used in XPath expressions to access the required nodes.
To display information within an XBRL object template, use one of the following design mechanisms:
•An aspect value template (see below) that accesses a specific aspect of the XBRL component that was created as an XBRL object.
•An XML Node template (see below) that references the containing XBRL object as an XML node and allows XPath expressions to be used in this node's context.
Item templates
An Item template iterates over all XBRL facts that satisfy the constraints defined by the enclosing XBRL templates. See the Item template section for details.
Aspect value templates
An aspect value template references a specification-defined value of the XBRL aspect represented by the containing XBRL object. To add an aspect value template, right-click within an XBRL object template (see above), hover over the Insert XBRL Element menu item, and, from the submenu that appears, select an aspect of the current XBRL component.
The screenshot above shows an aspect value template for the Instant value of the Period aspect. It is created within the XBRL Period template.
XML Node templates
An XML Node template references its nearest ancestor XBRL object as an XML node. This XML node will be the context node for XPath expressions created within the XML Node template. To add an XML Node template, right-click in the location where you wish to insert the template. Then hover over the Insert XBRL Element menu item. From the submenu that appears, select XML Node.
The screenshot above shows an XML Node template that has been created within the XBRL object template of the Period component.
Note: | Not all XBRL templates can contain an XML Node template. For example, a Concept template cannot, since there is no XML node for a concept in the instance. |