Re: Parameter entity references

You can find an even more complete PE typology in "Developing SGML DTDs"
(and we probably missed a few :-).  E.g., most content model entities
aren't primarily to make the model easier to read; they're to make the
model easier to maintain, or to keep multiple models in sync, or to reflect
a logical element classification scheme.  (With multiple ATTLISTs, we'll be
able to use the latter to *much* better effect.  Yay!)  Then there are
declared-value entities, default-value entities, whole-attribute-spec
entities...

I don't agree that handing off PE resolution to a tool not in our purview
is a good solution; it may harm interoperability, and leaves DTDs as
intermediate files that it's perilous to edit directly.

That said...  I'm not certain that non-8879 "validating XML processors"
will come into widespread use.  If they don't, I'm starting to be convinced
that full SGML should be used for many "XML DTD" purposes, with the
exception of a few gotchas that fall far short of the restrictions that XML
places on DTDs.  I've been making a list of the gotchas; I'll try to post
it soon for general comment.

	Eve

At 10:33 PM 5/29/97 EDT, lee@sq.com wrote:
>
>I think there are three separate uses of Parameter Entities that must
>be considered.
>
>(1) to guard marked sections -- these have values of IGNORE or INCLUDE.
>    Marked sections are *much* less useful without these.
>
>(2) to make a DTD easier to read:
>    <!Entity % RunningText "(#PCDATA|italic|emphasis|blink|morse|baudot)">
>    AAP lovers can use p.zz instead of RunningText for clarity :-)
>
>(3) to allow customisation of a DTD.
>
>All of these uses can be achieved with a preprocessor such as M4 if
>you like, but then people can't easily exchange DTDs unless they are
>all using M4.  In the case of marked sections, you'd have a problem
>exchanging documents too.
>
>A preprocessor such as M4 is a much, much cleaner way of handling all of
>these things, I think, and does not in any way break SGML compliance as
>long as the preprocessed document is an SGML document.
>
>So since there are other ways to do these things, I would say that sensible
>positions seem to me
>[A] require support of (1) only.
>    Author/Editor makes these a special case, and it's proved useful.
>
>[B] get rid of them all.  If you're going to have a macro pre-processor,
>    say so up front instead of intertwingling it with the language.
>
>[C] retain PEs.
>
>In all cases, any PE that occurs in the document must obviously have been
>declared at the start of the document in its prolog, so that the document
>can be processed with or without a DTD.
>
>[D] An alternative is to allow
>
><![ %unknown; [stuff]]>
>to be treated by default as if %unknown; had expanded to INCLUDE.
>
>That way, a conforming XML processor would at least see the data.
>
>Lee
>
>
>
>
>

Received on Thursday, 29 May 1997 23:19:24 UTC