[EMAIL PROTECTED] wrote:
> reference and conform to. I don't think we should entertain the idea of
> doing anything with the internal subset, or with parameter entities whose
> contents lie outside the document (unless the parameter entity decl also
> lies outside the document of course).

There are two options that I see: ignore the internal subset
completely; or only pay attention to general entity decls in
the internal subset. Either way, I don't want the internal
subset affecting the decls in the cached grammar.

> Assuming we can do this, we should decide whether to read the external
> subset if there is a grammar for it.  I think the answer is that we should
> not--although we will want a feature to control this...  The whole point of
> grammar caching is to reduce disk access and reduce the number of method
> calls; so it would seem to me counterproductive to step through the

> external subset if a grammar for it is known.  On the other hand, a
> validating processor is supposed to read all external decls; there's no

Ugh. Here's where the letter of the law is getting in the
way of the spirit of the law. The point of the requirement
in the spec is that the document writer knows that when
validating, everything from the grammar specified in (or
by) the document will be taken into account. But this is
precisely what people who need to enforce validation rules
don't want to happen. 

The author cannot be trusted and the application must impose
grammar rules for validation, regardless of what the document
says (or fails to say) about the grammar. But I wouldn't say
this means that the parser becomes "non-conformant". While it
may be technically true, people will think that if they use
grammar caching that they are somehow not using XML.

> "knows" what it's doing.  So in the spirit of being 100% conformant, we'd
> probably want to read external decls by default even if it might not make
> much sense in this application.  I'd love to hear perspectives on this one!

I say to hell with "the spirit" of conformancy when grammar
caching is employed. I make and enforce the rules, not the
document instance.

> another tough question.  My sense is that, in general, they shouldn't be
> ignored (even were it possible in the current framework to ignore them) and
> that their presence should be reflected in the grammar that the document is
> validated against.  But this implies modifying a cached grammar, which is a
> very problematic idea...

Ignore them. Ignore them. Ignore them. (Except for maybe
general entities.)

> Alternatively, we could state that, if a grammar comes from a cache, our
> DTD implementation will not modify it (i.e., internal decls will have no

This has my vote. :)

-- 
Andy Clark * [EMAIL PROTECTED]

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

Reply via email to