Date: Sun, 11 Sep 1994 18:44:32 -0600
The present definition for lists and list items are as follows:
<!ENTITY % list "UL|OL|DIR|MENU">
<!ELEMENT (%list) -- (LI)+>
<!ELEMENT LI -O %flow>
<!ENTITY % flow "(%htext)|%block)*">
After trying to process these rules, it seems to me that there are really
two kinds of list items. This perception is based on two observations.
1. The MENU and DIR list definitions are specifically designed for
rendering Menu like lists and Directory listings, respectively. Some sources
suggest that DIR rendering should be multi-column. These are
really both inconsistent with the definition of LI as a container for
2. The broad content definition for LI when used requires end tags for
proper delineation of the range of the LI content. When used this way, the
</LI> tag cannot be optional except under certain very narrow cases.
I would suggest, therefore, that the DTD should be amended to reflect
something like the following:
<!ENTITY % list-1 "DIR|MENU">
<!ENTITY % list-2 "UL|OL">
<!ENTITY % list "%list-1|%list-2">
<!ELEMENT LI -O (%htext)+>
<!ELEMENT XLI -- %flow>
<!ELEMENT %list-1 --(LI)+>
<!ELEMENT %list-2 -- (XLI|LI)+>
I'm not sure I got all the syntax correct, but my concept is that there are
should be two kinds of list items, plain (LI) and extended (XLI). End tags
are optional for LI and required for XLI. LI list items are single paragraph
entries. XLI list items can contain multiple paragraphs, lists, forms, etc.
DIR and MENU lists should allow only LI content while OL and UL can allow
My feelings are that this would reduce ambiguity in the processing of lists
and would lead to much clearer HTML tagging as a result.
Newton Computing Solutions