Re: block (%blocklevel;) as opposed to block (%blocklevel; | %inline

On Tue, 21 Oct 1997, Neil St.Laurent wrote:

> block  ( %blocklevel; )
> 
> TO
> 
> block ( %blocklevel; | %inline; )
> 
> Noting that simple constructs like
> 
> <UL>
>    <LI>Hello
>    <LI>There
> </UL>
> 
> are now invalid and should be:
> 
> <UL>
>    <LI><P>Hello
>    <LI><P>There
> </UL>

both are allowed in the loose version of the 4.0 DTD.

of course, it would be nice allow both forms, but to
exclude mixing of levels as in:

<UL>
<LI>Good morning
<P>Here is the news ...
<LI><P>There
</UL>

sadly, SGML gets in the way for specifying this in the DTD

   ( (%blocklevel;)+ | (%inline;)+ )

for instance this looks reasonable but means that

<UL>
<LI>
<P>Hello
<LI><P>There
</UL>

is in error. The SGML rules for mixed content get in
the way. :-(


As a result we chose to offer authors the chance to validate their
documents to either the loose content model or the stricter model
which restricts the content of elements such as LI to %blocklevel
elements. 

Regards,

-- Dave Raggett <dsr@w3.org> http://www.w3.org/People/Raggett
phone: +44 122 578 2984 (or 2521) +44 385 320 444 (gsm mobile)
World Wide Web Consortium (on assignment from HP Labs)

Received on Wednesday, 22 October 1997 10:38:22 UTC