In some cases, you want the element template to contain an empty text node because, when a new element corresponding to this template is inserted in the document, the empty text node acts as a placeholder.
XHTML example:
<cfg:elementTemplate name="name_field"> <p xmlns="http://www.w3.org/1999/xhtml" class="name_field"><b>Name: </b> </p> </cfg:elementTemplate>
The above element template should work fine. However all the whitespace following the b
element will be automatically trimmed and no empty text node will inserted after it.
If you rewrite the above template as:
<cfg:elementTemplate name="name_field">
<p xmlns="http://www.w3.org/1999/xhtml"
class="name_field"><b>Name: </b><?text?></p>
</cfg:elementTemplate>
the element template will work as expected.
Note that the <?text?>
processing instruction must be completely empty, otherwise it is inserted in the document as is. Also note that the <?text?>
processing instruction must not follow or precede a text node (empty or not), otherwise it is simply discarded.