I'm not sure you answered my question about elementTemplates. As I said,
my elementTemplates are valid. (But the document template is not.)

Is it by design that elementTemplates are not available when editing in
lenient mode? If so, why not? It seems that this could smarten up the
"semi-dumb" behavior of lenient mode. :-) If this is not by design,
could I add this fix to the Wish List?

Thanks!

PS - I made a request on the Yahoo DITA Users Group a while ago that
OASIS make the DTDs public, but got some pushback on it. I'll keep
bugging them, though. I agree that they should be available as a
fallback.



-----Original Message-----
From: Hussein Shafie [mailto:[email protected]] 
Sent: Monday, March 27, 2006 12:53 AM
To: Mark Fletcher
Cc: xmleditor-support at xmlmind.com
Subject: Re: [XXE] RE: ditabase.dtd bug

Mark Fletcher wrote:
> 
> I appreciate that XXE lets me open an invalid template and then insert

> a child to make it valid. And the interface does make it clear that 
> there is something wrong with the dita element. My problem is that: a)

> inserting the first child--which should make the empty dita element 
> valid--doesn't try to enforce validity on that first child; b) lenient

> mode evidently doesn't display elementTemplates in the picklist.
> 
> Again, when I insert a second child into to the dita tags, that child 
> is inserted with the required first child (title) and with the id 
> attribute highlighted as required. Why doesn't this happen when I 
> insert the first child?

XXE is semi-dumb in lenient mode.



> I tried to get around the problem by creating valid elementTemplates 
> for each of those children (using selectable="override"), thinking 
> that these would be what the user would be allowed to choose from and 
> insert. But the elementTemplates aren't available in the pick list 
> until lenient mode is off, I guess?

* Document templates (and element templates) must always be structurally
valid (no red icon). See
http://www.xmlmind.com/xmleditor/_distrib/doc/configure/dtd_example.html

Here's the document template called "Multiple Topics" which is found in
the future DITA configuration.

---
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE dita PUBLIC "-//OASIS//DTD DITA Composite//EN"
"../dtd/ditabase.dtd"> [***]
<dita>
  <topic id="???">
    <title></title>
    <body>
      <p></p>
    </body>
  </topic>
</dita>
---

If the user does not want the <dita> root element to contain a <topic>,
well, she/he simply needs to use Edit|Replace to replace it by a <task>,
<reference>, etc.

It is also possible to add more document templates having the <dita>
element as their root.

* Unlike many other XML editor, XXE is designed to be used in strict,
validating, mode 99,99% of the time. Using lenient mode should be
exceptional.



---
[***] To my knowlegde, there is no public DITA DTD and Schema repository
at OASIS. We would have preferred to write something like:

<!DOCTYPE dita PUBLIC "-//OASIS//DTD DITA Composite//EN"
"http://www.oasis-open.org/dita/dtd/ditabase.dtd";>

But with the bundled XML catalog, there should be no problem.



---
PS: The DITA cofiguration contains this new V3.2 feature:

---
  <!-- This is needed because in DITA, many elements may be empty
       (due to conref?) and this is often very surprising (e.g. strow).
       Without this facility (invented for DITA in fact), it would be
       necessary to add dozens of elementTemplates to
       this configuration. -->

  <newElementContent addChildElements="elementOnlyContentNotEmpty" />
---

With DITA, most elements have an emptiable content (for conref, I guess)
which is surprising and unpleasant to use for the author.

With  the above trick, no need to write hundreds of elementTemplates
having a non-empty content.






Reply via email to