Boris Goldowsky wrote:
> If I have an elementTemplate in my config file that introduces an 
> element, say a paragraph, is there a way to force creation of a text 
> node in that paragraph so that users can simply click on it and start 
> typing?  I don't know exactly why, but in some cases my templates seem 
> to get text nodes, and sometimes they do not.
> 

--> It's the schema which is used to decide whether a text node is
needed or not.

If a descendant element D, contained in your element template T, is
empty and element D has mixed or data content, then an empty text node
is automatically inserted in D.

Your element template T needs to be structurally valid for this to work.

Example: Create a new DocBook 4 book and replace the chapter by a part.

Notice how the following template is inserted with all the needed text
nodes. Also notice how the whitespace used to indent the elements is
automatically removed.

---
  <elementTemplate name="chapter" selectable="override">
    <part xmlns="">
      <title></title>
      <chapter>
        <title></title>
        <section>
          <title></title>
          <para></para>
        </section>
      </chapter>
    </part>
  </elementTemplate>
---



--> If you want to force the creation of a text node, then you need to
add some text to your element template:

Example: instead of this:
---
  <elementTemplate name="glossdef" selectable="override">
    <glossentry xmlns="">
      <glossterm></glossterm>
      <glossdef>
        <para></para>
      </glossdef>
    </glossentry>
  </elementTemplate>
---

use this:
---
  <elementTemplate name="glossdef" selectable="override">
    <glossentry xmlns="">
      <glossterm>TERM HERE</glossterm>
      <glossdef>
        <para>DEFINITION HERE</para>
      </glossdef>
    </glossentry>
  </elementTemplate>
---


Reply via email to