INCLUDE (was: Re: META)

Bert Bos (bert@let.rug.nl)
Wed, 28 Jun 95 15:22:09 EDT

Glenn Adams writes:
| Date: Wed, 28 Jun 95 14:18:45 EDT
| From: Bert Bos <bert@let.rug.nl>
|
| Seems like a good idea, but maybe an include mechanism (say something
| like <INCLUDE SRC="URL">) is an even more general solution. It could
| be used for other things besides META data.
|
|There's already a perfectly good HTML 2.0 conformant way to accomplish
|inclusions or referencing of arbitrary external data without having to
|create an INCLUDE element type. It just requires smarter user agents:
|
|<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN" [
|<!NOTATION MyNotation PUBLIC "-//MyOrg//NOTATION MyNotation//EN">
|<!ENTITY MyRandomData SYSTEM "http://foo.com/random.dat" NDATA MyNotation>
|<!ENTITY MyPCData SYSTEM "http://foo.com/pcdata.htm">
|]>
|<title>External Stuff</>
|<p>Don't retype &MyPCData;, just execute &MyRandomData;.

I know, but it requires a UA to look at the prolog, which is a pity,
since so far that has not been necessary.

The question of includes has been discussed often (in public and in
private) but so far no solution is the clear winner. <INCLUDE> has the
drawback that it almost requires an inclusion exception in the DTD and
secondly that it is invisible to a validating SGML parser. A PI can
occur anywhere but is likewise invisible. An external entity would be
the royal way, except that I would argue that the class of SGML
documents for which you don't need the prolog is a very useful class.

The longer we can postpone parsing of the prolog the better. The SGML
documents that I like to see on the Web are all in `canonical form',
i.e., no omitted tags except perhaps in a few well-defined cases, no
entities other than ISO character entities, delimiters as in the
Reference Concrete Syntax, capacities as in HTML, and maybe a few more
similar restictions. (In the style sheet discussion I've proposed the
same restiction: let's define style sheets for all SGML documents that
can be parsed without referring to the DTD.)

I use external entities all the time when I write HTML, but they are
expanded just before the files are put on the server. HTML is an
application of SGML and that's good, but I wouldn't mind at all if
there were an "SGML-Lite" and HTML was an application of that.

We use URLs instead of HyTime, we will probably define our own style
sheets instead of DSSSL, so why shouldn't we define out own inclusion
mechanism outside of SGML, if we feel SGML is inadequate?

Bert

PS. I understand that there will be an appendix to HyTime that defines
URLs as a standard notation, so "-//MyOrg//NOTATION MyNotation//EN"
will soon be unnecessary.

-- 
                          Bert Bos                      Alfa-informatica
                 <bert@let.rug.nl>           Rijksuniversiteit Groningen
    <http://www.let.rug.nl/~bert/>     Postbus 716, NL-9700 AS GRONINGEN