The *hard* problem (was: external dtd subsets ...)

John Cowan (cowan@locke.ccil.org)
Tue, 11 Aug 1998 16:37:46 -0400


Tim Bray scripsit:

> I have not suggested a solution for
> how to solve the *hard* problem, namely how to go about making a
> compound DTD, and would like to hear input on that. -Tim

As far as I can see, such a thing is not possible even in principle,
except through the promiscuous use of ANY content models. Given
that you want to combine two separate DTDs, {A} and {B}, with or without
prefixes, initially only {A} elements will be permissible content
for other {A} elements, and likewise for {B} elements. So whatever
the root element of a document may be will dictate what elements
are to be used within it.

In order to make this otherwise, someone must decide exactly which
elements from {A} can have {B} content and vice versa. That is
inherently beyond the ability of an algorithmic process unless it
has detailed semantic information on the elements, *far* beyond
what any DTD provides.

IBTWSH uses a trick, a parameter entity that a containing DTD may
define in order to specify elements from the containing DTD that
can appear within IBTWSH elements. But average DTDs don't have
such a mechanism, and it may not even be possible. (Nonetheless,
this trick suggests how DCD/XML-Data elements with "open" content
might be translated back into DTD element declarations.

-- 
John Cowan	http://www.ccil.org/~cowan		cowan@ccil.org
	You tollerday donsk?  N.  You tolkatiff scowegian?  Nn.
	You spigotty anglease?  Nnn.  You phonio saxo?  Nnnn.
		Clear all so!  'Tis a Jute.... (Finnegans Wake 16.5)