Re: Am I Crazy? Or Is This a Bug?

Terry Allen (terry@ora.com)
Fri, 17 Feb 95 11:44:02 EST

Dan writes:
><!ENTITY % head.extra "& NEXTID? & META* & LINK*">
>
><!ENTITY % head.content "TITLE & ISINDEX? & BASE?
> %head.extra">
>
><!ELEMENT HEAD O O (%head.content)>

I don't think this is legal. I don't believe you can start a parameter
entity with &, as Mr. Grosso pointed out.. That's what prompted me to
make these changes in the first place.

Anybody got a legal way to fix this problem?
============================================

We have just been discussing this wrt to Docbook. There is some
disagreement among parser authors (I believe Exoterica's parser
will flag that as an error), but there is also a solid argument to
be made from the standard that parameter entities may begin
with connectors because they're treated as data characters
until after the substitution is made in the second entity.

The crucial point is that the entity that starts (or ends)
with a connector must be used in another entity, not in an element
declaration (that would be "obfuscatory").

SGML Open's parser compatibility committee will have to talk the
matter over to achieve practical agreement, but we're not going
to change Docbook (which has hooks for doing the same sort of
thing), and I strongly suggest not changing HTML 2.0 at this late
date.

Regards,

-- 
Terry Allen  (terry@ora.com)   O'Reilly & Associates, Inc.
Editor, Digital Media Group    101 Morris St.
			       Sebastopol, Calif., 95472
occasional column at:  http://gnn.com/meta/imedia/webworks/allen/

A Davenport Group sponsor. For information on the Davenport Group see ftp://ftp.ora.com/pub/davenport/README.html or http://www.ora.com/davenport/README.html