Re: SGML objects

Dave_Raggett (dsr@hplb.hpl.hp.com)
Tue, 17 Aug 93 12:23:38 BST


> I've heard several people asking for nested section
> containers in HTML+. Could one of you please explain
> how you would break up a very large hierarchical
> document into small enough file pieces to be
> useable over the Internet? How would each file
> piece be marked up?

The answer can be looked for in Charles Goldfarb's SGML Handbook.

You can declare an entity reference to an external SGML file and then
"include" it. You can also make references to data stored in an external
format using the NONSGML and NOTATION keywords. There are mechanisms for
"public" identifiers (similar to URNs but run by the ISO and probably
unsuitable for widespread use in the Internet), and "system" identifiers
supposedly for local files. The "proper" SGML approach forces you to declare
all such references and to then use local names in subsequent markup. HTML of
course flouts this by including the URL directly in the elements defining
hypertext links.

In general SGML is quite a weak specification language, and not as good
as simple BNF grammar formalisms. The supposed ability to use common SGML
parsers to interchange document formats is dependent on the formats involved
having closely matching semantic models. The SGML standard makes some
provision for including procedural information but this is not present in
the DTD's for each format. In other words, you still need to write a "program"
to relate features in each format.

Dave