blob: cdb63e97da753419c29bd3d918762a568e38addb [file] [log] [blame]
----------------
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.6.4.1 $ $Date: 2003/02/08 05:50:37 $