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.".