[EMAIL PROTECTED] wrote:
> other reason.  To my mind, the only obvious way of figuring out whether two
> DTD's with the same root name are equivalent is to look at their internal
> subsets; thus the getInternalSubset method in XMLDTDDescription.  So that's
> the only thing I think our default implementation should look at by
> default.

There are a few reasons to have an internal subset: 1) there
is no external subset and the internal subset defines the 
grammar; 2) there is an external subset but the internal
subset declarations override the external; 3) to define
entities that control conditional sections in the external
subset; 4) to define general entities for use within the
document; 5) etc.

But there's no way I could say that it is used to uniquely
identify a DTD grammar. Because the internal subset is 
usually unique to the document instance, not to the grammar
the document uses.

A specific grammar pool implementation may use the internal
subset to distinguish between two different grammars. Or it
may want to use the attributes on the root. (For example, 
many grammar writers use a "version" attribute on the root
element to distinguish between two versions of a grammar.)
Should the attributes be part of the DTD description as well?

I guess the biggest problem I have with using the internal
subset is the amount of code required to do anything with it.
You would need a DTD parser (which we have) and a bunch of
custom code in order to distinguish between two different
grammars.

I'll keep thinking on the subject...

-- 
Andy Clark * [EMAIL PROTECTED]

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to