<tgroup>: How is the structure of a table defined using the <tgroup> element in DITA, and what components does it include?

Defining the structure of a table in DITA XML is achieved using the <tgroup> element, which plays a crucial role in specifying the components and layout of the table. The <tgroup> element is essential for organizing tables effectively in DITA, and it includes several key components:

Number of Columns

The <tgroup> element allows you to define the number of columns in the table. This is done using the cols attribute, which specifies the total number of columns. Each column can have its own attributes, such as width and alignment, which can be further defined using the <colspec> element.

Column Specifications

Inside the <tgroup> element, you can use the <colspec> element to specify the properties of each column. This includes attributes like colname for assigning a name to the column, colnum for assigning a number to the column, and colwidth for setting the width of the column. These specifications help determine the layout and appearance of the table.

Table Body

The <tgroup> element also includes the <tbody> element, which is used to define the body of the table. Inside the <tbody>, you can create rows (<row>) and populate them with data using the <entry> element. The structure and content of the table rows are defined within the <tbody> element, allowing you to organize and present your data effectively.


Here’s an example of how the <tgroup> element is used to define the structure of a table in DITA XML:

<table id="sample_table">
  <tgroup cols="3">
    <colspec colname="col1" colnum="1" colwidth="1*"/>
    <colspec colname="col2" colnum="2" colwidth="1*"/>
    <colspec colname="col3" colnum="3" colwidth="1*"/>
        <entry>Data 1</entry>
        <entry>Data 2</entry>
        <entry>Data 3</entry>
        <entry>Data 4</entry>
        <entry>Data 5</entry>
        <entry>Data 6</entry>

In this example, the <tgroup> element defines a table with three columns and two rows. Each column’s specifications are provided using <colspec> elements, and the table body with its rows and data is defined within the <tbody> element.