Re: Proper HTML Tag Placement

Earl Hood (ehood@imagine.convex.com)
Wed, 17 Aug 94 21:06:11 CDT


> > (#PCDATA | IMG | BR)+ -(A)
> >
> >I figure if you are going to allow #PCDATA as part of the content
> >of an anchor, then the character based style elements should also
> >be allowed.
>
> Dear Earl,
>
> While this appears to be true for the Level 0 DTD (HTML Draft Specification
> dated July 94) the A tag content gets expanded in the Level 1 DTD to:
>
> "#PCDATA|IMG|BR|%font|%phrase"

Here are snippets from the DTD (parts deleted not related to subject, and
lines compressed):

<!ENTITY % HTML.Prescriptive "IGNORE"
-- marks things that may become standard in future revisions -->
<!ENTITY % text "#PCDATA | IMG | BR">
<![ %HTML.Prescriptive [
<!ENTITY % A.content "(%text)+"
-- The standard content model for A allows nonsense like:
<H2><A>xyz<H1>h1</H1></A></H2>
-->
]]>
<!ENTITY % A.content "(%heading|%block|%text)+">
<!ELEMENT A - - %A.content -(A)>

<!-- End snippets -->

If the HTML.Prescriptive parameter entity is changed to INCLUDE, the
A.content parameter entity will be used in the marked section. The
second definition will get ignored since SGML only keeps the first
definition if duplicates occur. Therefore, character elements will be
illegal in an anchor. Remember, the HTML.Prescriptive parameter entity
is used to isolate things that may become standard in the _future_.
I'm proposing that this possible future content of the A element be
changed.

I agree with Connolly's comment in the marked sections that the current
A content model allows screwing things. However, the proposed future
content model seems to "strict" (for lack of a better word). I believe
if #PCDATA is allowed, then character based elements should also be
allowed.

--ewh