                                ----------------
                                DTD Deficiencies
                                ----------------

A collection of DTD 'deficiencies' that people have encountered, and would like
either fixed or a reason for non-fixing given.

Please read through, and add your user id to 'yea' or 'nay' to indicate your
support or dissent.  Dissent should be accompanied with a reason.



1) Allow links in titles
------------------------
Submittor: Ken Coar <20021118232801.A18830@Hydrogen.MeepZor.Com>
Date: 2002-11-18
Yeas: jefft
Nays:
Summary:

  Allow things like:

    <title><link href="foo">title-text</link></title>


2) Allow <br/> in titles
------------------------
Submittor: Diana Shannon <172286CC-FBBF-11D6-99AD-0030653FE818@apache.org>
Date: 2002-11-19
Yeas: jefft, nicolaken
Nays:
Summary:

  "And while you're at it, **please** consider adding <br /> to <title>.  And
  don't flame me. I know some may abuse it, but this is a common need in
  print-publishing (to add manual, readable breaks to certain types of
  titles/subheads). I'd want to use it -- judiciously -- for pdf files and a
  limited amount in html files."


3) Allow <p>'s inside <li>
--------------------------
Submittor: Jeff Turner
Date: 2002-11-20
Yeas: jefft
Nays:
Summary:

Often it it would be useful to have multiple paragraphs inside a list item:

<ul>
  <li>
    <p> ...  </p>
    <p> ...  </p>
    <p> ...  </p>
  </li>
</ul>

I can see no reason why being a "list item" implies being limited to a single
paragraph.

4) Allow <p>, <li>, <source> etc inside <dd>
--------------------------------------------
Submittor: Jeff Turner
Date: 2002-11-20
Yeas: jefft
Nays:
Summary:

Related to the above request.  Seems no reason why a Definition Description
<dd> can't have multiple paragraphs, or anything else. Example:

    <dt id="Merit"><strong>Merit</strong></dt>
      <dd>
        <p>
        The concept of 'merit' is central to the Apache
        philosophy and community methodology.  Merit is a qualitative
        and subjective term, referring essentially to attributes
        such as those below; however, it can probably be summed up
        as the combination of the worth of one's accomplishments
        and the respect of ones's peers.
        </p>
        <ul>
          <li>technical competence</li>
          <li>ability to get along with others</li>
          <li>positive contributions to discussions and code</li>
        </ul>
        <p>
        The acquisition of merit is a cumulative process; once
        acquired, it doesn't decay.  It is possible to lose
        merit, though, by violating the community ethics, guidelines,
        or sensibilities.
       </p>
    </dd>



5) Allow <ol> and <ul> inside <p>
---------------------------------
Submittor: Jeff Turner
Date: 2002-11-20
Yeas: jefft, nicolaken
Nays:
Summary:

Frequently I find myself wanting to create lists halfway through a paragraph:

<p>
Here are some main features:
<ul>
  <li>...</li>
  <li>...</li>
</ul>
These features ...
</p>

Currently this is not allowed, as <ul> cannot be contained within <p>

According to that font of wisdom, dictionary.com, a paragraph is
  "one of several distinct subdivisions of a text intended to separate ideas"
and 
  "typically deals with a single thought or topic"

I think a single idea may validly be expressed with an unordered list, as
above, and thus <ul> should be allowed within <p>


-----
Update (2002-11-26):

Apparently XHTML doesn't allow lists inside paragraphs.

The reason why not might have something to do with avoiding "pernicious mixed
content":

http://www.oasis-open.org/docbook/documentation/reference/html/entry.html

However, Docbook allows <itemizedlist> inside <para>, and apparently this
doesn't count as "pernicious mixed content", so I don't know what's going on.

-----


6) Allow <link> inside elements like <strong>
---------------------------------------------
Submittor: Jeff Turner
Date: 2002-11-28
Yeas:
Nays:
Summary:

Use-case: 

   <strong>no <link href="#Veto">vetos</link></strong>

Seems innocent enough.



7) Allow Anchors everywhere
---------------------------
Submittor: Jeff Turner
Date: 2002-11-28
Yeas: jefft
Nays:
Summary:

The DTD currently allows 'id' attributes on all elements, and elements below
<body> (IIRC) will have them rendered to a HTML <a name="...">.  Thus it would
seem that <anchor> is completely unnecessary.  The problem is, sometimes one
wants multiple IDs for an element, but the XML spec doesn't allow this:

  Validity Constraint: One ID per Element Type
  No element type may have more than one ID attribute specified. 

Tim Bray's comment (http://www.xml.com/axml/notes/OneIDPer.html):

  "In my opinion, this rule should really have a "for compatibility" attached
  to it, because while it is a rule in SGML, I've never understood why an
  element shouldn't have two different IDs."

Nor do I.

Here is a use-case for multiple IDs, attempting to solve it with anchors:

        <dt>
          <anchor id="LazyConsensus"/>
          <anchor id="LazyApproval"/>
          <strong>
            Lazy consensus
          </strong>
        </dt>
        <dd>(Also called 'lazy approval'.) .....

Either we must allow anchors (hence multiple IDs) everywhere, or implement some
hack to allow multiple Ids:

        <dt id="LazyConsensus, LazyApproval>
          .....
          
8) Suggestion/Request by Ken Coar:

is there any reason the dtd can't support an element
that's meaningless except to the transformer, and executed non-recursively
during transformation?  something like:

<pre>
 <include-verbatim src="sample.raw"/>
</pre>

Remarks (SNS)

1) That supposed transformer would have to wrap the included source in a CDATA section,
and we can only hope ]]> does not appear in it.
2) Would characters in the included non-XML fragment need to be escaped on rendition? Is this
to show sourcecode fragments or to include in-place verbatim HTML...?
3) Check what Eliotte R. Harold does w.r.t. XInclude (I remember him mentioning this once)




 8) Restrict content of <ul> to <li>
------------------------------------
Submittor: Jeff Turner
Date: 2003-02-01
Yeas: jefft
Nays:
Summary:

Strangely, our docv11 DTD allows lists to be nested in HTML-invalid ways:

<!ENTITY % lists "ol|ul|dl">
<!ELEMENT li (%content.mix; | %lists;)*>

allowing things like:

<ul>
  <ul>
    <ul>
      <li>Hello</li>
      </ul>
   </ul>
</ul>

In document-v12.dtd, we should restrict the contents of <ul> to just <li>, as
the HTML DTD does.

-- 
$Revision: 1.7 $ $Date: 2003/02/01 06:46:52 $
