Other User Guides: Xtext
Vex User Guide
What is Vex?
Vex is a Visual Editor for XML that hides the raw XML tags from the user, providing instead a word processor like interface. Vex uses standard DTD files to define document types and CSS stylesheets to define document layout. Vex contains definitions for DocBook and DITA. To edit other XML formats only a DTD and a CSS are needed.
Who Uses Vex?
Vex provides several commands to edit a XML document.
This command opens a popup dialog which shows a list of elements that could be added to the document at the current cursor position. If you select one of the list items, the popup dialog is closed and the selected element is inserted.
The path of the current cursor position within the document structure is shown in the status bar. This can be an orientation if you want to add an element at a position that is not rendered explicitly (e.g. a new chapter between two existing chapters in Docbook).
This command duplicates the currently selected elements and inserts them at the beginning of the current selection. If there is nothing selected, 'Duplicate Selection' duplicates the element that surrounds the current cursor position.
The document's root element can, of course, not be duplicated.
Convert Element To...
This command allows you to change the surrounding element of the current selection. A popup dialog shows a list of all elements that could replace the element. An element A can be replaced by another element B, if B can contain all the content of A and B is allowed at A's position in the document structure. If you select one of the list items, the popup dialog is closed and the element, which surrounds the current selection is replaced by the selected element.
This command removes the element that surrounds the current selection:
<emph>The element's content<emph/>
will result in
The element's content
The main purpose of this command is to remove inline elements from text. If you use 'Remove Tag' to remove structural elements (e.g. <para> or <section>), the content of the element might also be removed. The current implementation does not handle this case properly. This might change in the future.