Date: Sun, 11 Sep 1994 18:44:32 -0600
Message-id: <>
Apparently-To: <>
Apparently-To: <>
Apparently-To: <>
The present definition for lists and list items are as follows:

<!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
block items.

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.

Stan Newton
Newton Computing Solutions