Documentation

XhtmlIxbrlRenderer
in package

Represents a class responsible for rendering XHTML iXBRL and XML documents, particularly aimed at generating reports following the Inline XBRL specification.

Table of Contents

Properties

$namespaces  : array<string|int, mixed>
An associative array defining namespace prefixes and their corresponding URIs.

Methods

render()  : string
Renders an XHTML iXBRL report based on the provided document structure.
renderXML()  : string
Renders an XML document with specified contexts, units, and taxonomy namespaces.
escape()  : string
Escapes a string value for use in XML, ensuring that special characters are properly encoded.
renderBody()  : string
Renders the body content by processing an array of nodes.
renderContext()  : string
Renders an XML representation of a context element.
renderCover()  : string
Renders an HTML cover page with specified company and report details.
renderFact()  : string
Renders a fact element in Inline XBRL format based on the provided fact data.
renderHeader()  : string
Renders the header section of an HTML document with hidden Inline XBRL (iXBRL) context and unit data.
renderHtmlOpenTag()  : string
Renders the opening HTML tag with specified taxonomy namespaces as attributes.
renderNode()  : string
renderPage()  : string
Renders an HTML page based on the provided node and its children.
renderTable()  : string
Renders an HTML table based on the provided table data, including headers and rows.
renderToc()  : string
Renders a Table of Contents (TOC) as an HTML string.
renderUnit()  : string
Renders an XML representation of a unit, including its type, measures, and components.

Properties

$namespaces

An associative array defining namespace prefixes and their corresponding URIs.

private array<string|int, mixed> $namespaces = ['xmlns' => 'http://www.w3.org/1999/xhtml', 'xmlns:ix' => 'http://www.xbrl.org/2013/inlineXBRL', 'xmlns:xbrli' => 'http://www.xbrl.org/2003/instance', 'xmlns:xbrldi' => 'http://xbrl.org/2006/xbrldi', 'xmlns:link' => 'http://www.xbrl.org/2003/linkbase', 'xmlns:xlink' => 'http://www.w3.org/1999/xlink', 'xmlns:iso4217' => 'http://www.xbrl.org/2003/iso4217']

Methods

render()

Renders an XHTML iXBRL report based on the provided document structure.

public render(array<string|int, mixed> $document) : string
Parameters
$document : array<string|int, mixed>

The structured data for the report, containing keys such as title, lang, taxonomy_namespaces, contexts, units, and body.

Return values
string

The generated XHTML document as a string.

renderXML()

Renders an XML document with specified contexts, units, and taxonomy namespaces.

public renderXML(array<string|int, mixed> $document) : string
Parameters
$document : array<string|int, mixed>

An associative array containing the data for the XML generation. Expected keys are:

  • contexts: An array of context data to be rendered within the XML.
  • units: An array of unit data to be rendered within the XML.
  • taxonomy_namespaces: An associative array of prefix-to-URI mappings for taxonomy namespaces.
Return values
string

The generated XML document as a string.

escape()

Escapes a string value for use in XML, ensuring that special characters are properly encoded.

private escape(string $value) : string
Parameters
$value : string

The string value to be escaped.

Return values
string

The escaped string, safe for XML use.

renderBody()

Renders the body content by processing an array of nodes.

private renderBody(array<string|int, mixed> $body) : string
Parameters
$body : array<string|int, mixed>

An array of nodes to be rendered into the body content. Each node is expected to contain the necessary data for rendering.

Return values
string

The rendered body content as a concatenated string of nodes.

renderContext()

Renders an XML representation of a context element.

private renderContext(array<string|int, mixed> $context) : string
Parameters
$context : array<string|int, mixed>

An associative array containing the data required to generate the context XML. Expected keys are:

  • id: A unique identifier for the context.
  • entity: An associative array with the following keys:
    • scheme: The scheme attribute for the entity identifier.
    • identifier: The value of the entity identifier.
  • period: An associative array containing the period details:
    • type: Specifies the type of period ('instant' or other).
    • instant: The date for the instant period (if type is 'instant').
    • start_date: The start date of the period (if type is not 'instant').
    • end_date: The end date of the period (if type is not 'instant').
  • dimensions: An optional array of dimension data, where each dimension is an associative array:
    • dimension_qname: The QName of the dimension.
    • member_qname: The QName of the member.
  • context_element: An optional string that specifies the context element type (default is 'scenario').
Return values
string

The generated XML string representing the context element.

renderCover()

Renders an HTML cover page with specified company and report details.

private renderCover(array<string|int, mixed> $node) : string
Parameters
$node : array<string|int, mixed>

An associative array containing the data for the cover page generation. Expected keys are:

  • company_name: The name of the company to be displayed on the cover page.
  • report_title: The title of the report to be displayed on the cover page.
  • report_subtitle: The subtitle of the report, if any, to be displayed on the cover page.
Return values
string

The generated HTML for the cover page as a string.

renderFact()

Renders a fact element in Inline XBRL format based on the provided fact data.

private renderFact(array<string|int, mixed> $fact) : string
Parameters
$fact : array<string|int, mixed>

An associative array containing the data for the fact element. Expected keys are:

  • fact_type: A string indicating the type of fact (e.g., 'nonNumeric', 'nonFraction').
  • name: The name of the fact element.
  • context_ref: The reference to the context associated with the fact.
  • value: The value of the fact element.
  • unit_code: (Optional) The unit code to append to the fact value.
  • unit_ref: (Optional, applicable for 'nonFraction' fact_type) The reference to the unit element.
  • decimals: (Optional, applicable for 'nonFraction' fact_type) The precision of the fact value.
Return values
string

The rendered Inline XBRL fact element as a string.

renderHeader()

Renders the header section of an HTML document with hidden Inline XBRL (iXBRL) context and unit data.

private renderHeader(array<string|int, mixed> $contexts, array<string|int, mixed> $units) : string
Parameters
$contexts : array<string|int, mixed>

An array of context data to be rendered within the iXBRL hidden section.

$units : array<string|int, mixed>

An array of unit data to be rendered within the iXBRL hidden section.

Return values
string

The generated HTML header section as a string.

renderHtmlOpenTag()

Renders the opening HTML tag with specified taxonomy namespaces as attributes.

private renderHtmlOpenTag(array<string|int, mixed> $taxonomyNamespaces) : string
Parameters
$taxonomyNamespaces : array<string|int, mixed>

An associative array of prefix-to-URI mappings for taxonomy namespaces. Each key represents the namespace prefix, and each value represents the corresponding URI.

Return values
string

The generated opening HTML tag as a string with the given namespaces included as attributes.

renderNode()

private renderNode(array<string|int, mixed> $node) : string
Parameters
$node : array<string|int, mixed>
Return values
string

renderPage()

Renders an HTML page based on the provided node and its children.

private renderPage(array<string|int, mixed> $node) : string
Parameters
$node : array<string|int, mixed>

An associative array representing the node to render. Expected keys are:

  • children: An array of child nodes to be rendered within the page.
Return values
string

The generated HTML page as a string.

renderTable()

Renders an HTML table based on the provided table data, including headers and rows.

private renderTable(array<string|int, mixed> $table) : string
Parameters
$table : array<string|int, mixed>

An associative array containing the data for generating the table. Expected keys are:

  • headers: An array of column headers to be rendered in the table's section.
  • rows: An array of rows, where each row is an array of cell data. Each cell can be: - A simple value to display as text. - An associative array with a type key set to 'fact', in which case it will render as a fact.
Return values
string

The generated HTML table as a string.

renderToc()

Renders a Table of Contents (TOC) as an HTML string.

private renderToc(array<string|int, mixed> $node) : string
Parameters
$node : array<string|int, mixed>

An associative array representing the data for the TOC generation. Expected key:

  • items: An optional array of TOC items to be included in the list.
Return values
string

The generated HTML for the Table of Contents.

renderUnit()

Renders an XML representation of a unit, including its type, measures, and components.

private renderUnit(array<string|int, mixed> $unit) : string
Parameters
$unit : array<string|int, mixed>

An associative array containing the data for the unit. Expected keys are:

  • id: A string representing the unique identifier for the unit.
  • type: (optional) A string specifying the type of the unit, either 'simple' or 'divide'. Defaults to 'simple' if not provided.
  • measures: (optional) An array of measure strings for simple units. Required if the type is 'simple'.
  • numerator: (optional) An array of measure strings for the numerator in divide-type units. Required if the type is 'divide'.
  • denominator: (optional) An array of measure strings for the denominator in divide-type units. Required if the type is 'divide'.
Return values
string

The rendered XML string representation of the unit.


        
On this page

Search results