12.1. About the table editing command
Prev | 12. A specific menu | Next

### 12.1. About the table editing command

### What if you have reused standard HTML or CALS tables in your own custom schema?

What to do in this case is explained in next chapter Chapter 3, Using HTML4 tables or CALS tables in your own custom schema.

The above `menu` element contains 3 sub-menus called Column, Row and Cell. All the items of these sub-menus invoke the same `sect.tableEdit` table editing command, albeit with different parameters, each parameter specifying the desired operation (e.g. "`insertColumnBefore`").

XXE has a native, generic, parameterizable, table editing command in XMLmind XML Editor - Commands powerful enough to edit all kinds of custom tables. However in order to be able to use this command in your configuration, you must

1. instantiate this command and give a name to your instance by the means of the `command` configuration element;

2. parameterize your instance by the means of a `property` configuration element.

This is done as follows. Excerpts from `rng_section_config/common.incl` (same file for all variants):

    <command name="sect.tableEdit">
      <class>com.xmlmind.xmledit.cmd.table.GenericTableEdit</class>
    </command>

    <property name="sect.tableEdit.tableSpecification">
      table={http://www.xmlmind.com/ns/sect}table
      row={http://www.xmlmind.com/ns/sect}tableRow {http://www.xmlmind.com/ns/sect}tableHeader:header
      cell={http://www.xmlmind.com/ns/sect}tableCell
      columnSpan=columns
    </property>

If the name of your table editing command is `foo`, then the name of the corresponding property must be ``foo`.tableSpecification`. The content of the property is simply the description of the element and attribute names used by your custom table.

### Caution

The above `command` element defines a command called `sect.tableEdit`. Why this "`sect.`" prefix? Why not simply "`tableEdit`"?

The commands defined in a configuration are not local to this configuration. All commands have a global scope. If you call your command `tableEdit`, then there are chances that you'll overwrite another command, defined in another configuration, also called `tableEdit` (or the other way round, depending on the order which is used by XXE to load the configurations).

Therefore you must always give a prefix which unique to your configuration to the names of the commands defined in this configuration. For example, the stock configurations use these prefixes: "`xhtml.`", "`docb.`", "`db5.`", "`dita.`", "`ditamap.`".

Prev | Up | Next
12. A specific menu | Home | 13. Specific keyboard shortcuts