RE: Re WF, V, and MSXML

Peter Murray-Rust (Peter@ursus.demon.co.uk)
Thu, 12 Jun 1997 22:23:56 GMT


In message <41135C785691CF11B73B00805FD4D2D702A3F8B9@RED-17-MSG.dns.microsoft.com> Chris Lovett writes:
>
> Regading all the discussion about the RMD attribute and
> switching validation on and off and error recovery and so on....

I think MSXML has taken a reasonable position given the ambiguities...

>
> The reason MSXML doesn't implement RMD yet is because there are
> problems with the RMD=IGNORE concept since ignoring the DTD can result

Agreed.
[I'm working from XML-lang-970331, which doesn't use RMD="IGNORE". Is this
the same as "NONE"?]

> in different data being given to the application - which generally is a
> bad thing. The spec says it is an error to specify RMD=IGNORE if the
^^^^^^^^^^^
I would have said it was always a bad thing!

> DTD contains any declarations of:
> 1) attributes with default values, if elements to which
> these attributes apply appear in the document instance without
> specifying values for these attributes, or
> 2) entities. (other than the built in entities), if
> references to those entities appear in the document instance, or
> 3) element types with element content, if white space
> occurs in the document instance directly within any instance of those
> types.
>
> The problem is that if the parser ignores the DTD, how can it
> detect #1 above ? Also, the white space handling can be ambiguous.

Agreed. I think the ERB have to consider this. I cannot see how a parser
(even with RMD="NONE") may not read the DTD. I think the option is really
related only to #3.

>
> So, MSXML currently takes the following approach:
> - RMD attribute is not implmented yet, so if a DTD is
> there it uses it.
...........^^^^

This is an ambigous word :-) It can mean either the creation of the proper
document content and/or validation.

> - If an error is found it stops. No error recovery is
> attempted.

:-)

> - If you don't want validation, remove the DTD.

Ah, but you cannot use entities or default attribute values.

> - It is ok to not define some of the elements in the
> DTD. This simply means that in the same document there is certain data
> that you want to guarantee to be correct, and other data that is more
> unknown in structure (but still well-formed). This is simply a side
> effect of being able to parse a document without a DTD.

This implies partial validation, which we don't have. There is no reason
for defining any ELEMENTs if the document is not validated (and the element
content not analysed).

P.

-- 
Peter Murray-Rust, domestic net connection
Virtual School of Molecular Sciences
http://www.vsms.nottingham.ac.uk/