XhBtRmL HTML Templates

From XBRLWiki
Jump to navigationJump to search

XhBtRmL templates are used to generate the final HTML report from the content of XBRL files.

An XhBtRmL template is an xhtml file augmented with some specific elements that are understandable to the processor.

An XhBtRmL template is validated against a DTD (Document Type Definition) that is an extension of the official XHTML DTD. This means that all elements that exist in XHTML documents and the structure of XHTML documents are part of XhBtRmL templates as well.

Sample template

<syntaxhighlight lang="html4strict"> <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE template PUBLIC

 "-//Reporting Estandar S.L.//DTD XHTML 1.0 Transitional + XBRL Transformation Tags//EN"
 "http://www.reportingstandard.com/taxonomies/transform/HTMLTransformation.dtd">

<template> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title>Reportingstandard Investor Relations - Demo of Transformation tool</title> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <link href="http://investor.google.com/google_ir.css" rel="stylesheet" type="text/css" media="screen" /> <style type="text/css"> ... </style> </head> <body>

 

<XBRLTemplate template="google-body.xhtml"/>

</body> </html> </template> </syntaxhighlight>

Document type

The document type of a template is: -//Reporting Estandar S.L.//DTD XHTML 1.0 Transitional + XBRL Transformation Tags//EN

System ID

The DTD for the document type is defined at: http://www.reportingstandard.com/taxonomies/transform/HTMLTransformation.dtd

Document content

The root element for a template is always a <tempalte> element. The template element is the container of elements defined in the xhtml namespace including the root xhtml element or any other sub element.

The set of elements specifically defined for creating XhBtRmL templates are:

  • the XBRLTemplate element; used for sub templates combined with iterators
  • the XBRLIf element; used in combination with XPath expressions in order to drive template content
  • the XBRLEval element; used in combination with XPath expressions in order to include calculated or evaluated content

The rest of the document content are just XML nodes that will be copied to the resulting output with some exceptions in order to allow calculated content and variables to be substituted with the right values.

The XBRLTemplate element

The 'XBRLTemplate' element is used in order to call another template one time or many times according to an iterator. An 'XBRLTemplate' element has the following attributes:

The template attribute

This attribute is required and contains the absolute or relative URL or a file that contains the template content.

The iterator attribute

This attribute is optional, if it exist the value can be one of the following:

  • Select; Indicates that the iterator will iterate through the nodes returned by the XPath expression indicated in the expression attribute. If the value of the iterator is Select then a value on the expression attribute is required.
  • Dates; Indicates that the iterator will iterate through the values of the instance document by columns (a column may contain more than one XBRL context). The column length will be indicated by the value of the dateStep attribute. If the value of the iterator is Dates then a value on the dateStep attribute is required. Each iteration will update the value of the XBRL_CurrentDateStep variable so templates using that variable on XPath expressions or texts nodes can use the iterator value for presentation purposes.
  • Link; Indicates that the iterator will iterate through the nodes in a hierarchy defined by relationships in the DTS. If the value of the iterator is Link then a value on the linkType attribute and a value on the role attribute are required.
  • Children; Indicates that the iterator will iterate through the nodes that are children of the current node.
  • Facts; Indicates that the iterator will iterate through the fact items in the instance that corresponds to the current concept. If the value of the iterator is Facts then a value on the dateStep attribute is required in order to return the facts in the right order.
  • DimMembers; Indicates that the iterator will iterate through dimension members of the current node.
  • Footnotes; Indicates that the iterator will iterate through footnotes in the report.

The role attribute

Is used to indicate the link role where relationships will be taken on Link iterators.

The expression attribute

Is used to indicate an XPath expression that will be used in Select iterators.

The contextNode attribute

Is used to indicate the XPath context node for evaluation of the XPath expression that can be indicated in the expression attribute. Possible values of this attribute are:

  • Instance; The context node will be set to the instance document.
  • Fact; The context node will be set to the current Fact.
  • This; The context node will be set to the node on the template.

The dateStep attribute

Is used to indicate the period length for column widths. The value is one of the following constants:

  • Years
  • Semesters
  • Quarters
  • Months
  • Weeks
  • Days
  • Hours
  • Minutes
  • Seconds

The depth attribute

Is used during the execution of Link iterators in order to set a maximum depth limit while traversing a hierarchy

The skipEmptyLines attribute

Is used on Link and Children iterators in order to avoid representation of lines that contains no fact items in the instance document. The attribute is optional, the default value is false. The possible values for this attribute are true or false.

The linkType attribute

This attribute is used for Link iterators. The value is a QName representing the container element for relationships. Possible values are, for example: link:presentationLink, link:calculationLink, link:genericLink, or a QName of your own custom extended link type.

The startingNode attribute

This attribute is used on Link iterators in order to define the node from which the navigation will start. All previous nodes in the hierarchy will be ignored.

The dimensionFilterScenario attribute

This attribute is used on DimMembers iterators in order to set the dimension name whose members will be iterated if the dimension is found in the scenario container.

The dimensionFilterSegment attribute

This attribute is used on DimMembers iterators in order to set the dimension name whose members will be iterated if the dimension is found in the segment container.

The XBRLIf element

The XBRLEval element