11. Element templates
Prev | Chapter 2. Writing a configuration file for XXE | Next

## 11. Element templates

You'll find in the command parameters of the above `toolBar`, in some cases, element qualified names such as `{http://www.xmlmind.com/ns/sect}table` and in other cases, references to elements templates, such as `#template({http://www.xmlmind.com/ns/sect}table,header)`.

The later notation means:

1. it's an element template;

2. this is a template for element `{http://www.xmlmind.com/ns/sect}table`;

3. the name of the element template is "`header`".

Note that element templates are uniquely identified by the combination element name/template name, and not by the template name alone.

Why specify element templates in your configuration file? By default, XXE creates the simplest possible, valid, element. For example, in the case of a table, this simplest possible, valid, `table` has just one `tableRow`, containing just one `tableCell`. In the case of a table, this is too simple to be really useful. On the contrary, we want a table to contain by default 2 rows, each row containing 2 cells. We also want to have a number of predefined table templates easily available, for example, a table having a header row. All this can be specified using the `elementTemplate` configuration element.

Excerpts from `rng_section_config/common.incl` (same file for all variants):

    <elementTemplate name="rows2" selectable="override">
      <table xmlns="http://www.xmlmind.com/ns/sect">
        <tableRow>...ELIDED...</tableRow>
        <tableRow>...ELIDED...</tableRow>
      </table>
    </elementTemplate>

    <elementTemplate name="header">
      <table xmlns="http://www.xmlmind.com/ns/sect">
        <tableHeader>...ELIDED...</tableHeader>
        <tableRow>...ELIDED...</tableRow>
        <tableRow>...ELIDED...</tableRow>
      </table>
    </elementTemplate>

    <elementTemplate name="image" selectable="false">
      <paragraph xmlns="http://www.xmlmind.com/ns/sect"><image source="???"/></paragraph>
    </elementTemplate>

| Attribute `selectable="override"` means: use this template instead of the 1 row/1cell table generated by default by XXE. This also implies that this element template will be listed simply as "`table`", and not as "`table(rows2)`", in the Edit tool in XMLmind XML Editor - Online Help.
| The default value of `attribute` selectable is `true`. This makes the corresponding element template available for the Edit tool. In the above case, this element template will be listed as "`table(header)`".
| Attribute `selectable="false"` means: do not make this element template available for the Edit tool, as it is just needed here in this configuration file (i.e. in a `menu`, `toolBar`, `macro`, etc).

Prev | Up | Next
10.1. Text style toggles | Home | 12. A specific menu