- From: Curt Arnold <carnold@houston.rr.com>
- Date: Thu, 06 Feb 2003 02:48:18 -0600
- To: www-dom@w3.org
First, I didn't intent to write this many messages but it was hard to
stop after I got started.
The Validation draft supports three major features: validation, guiding
document editing by enumerating allowable changes and inhibiting DOM
mutations that would (possibly temporarily) invalidate the document.
However, these three features vary widely in their maturity. Many
implementations could support an on-demand validation feature, but very
few could currently support editing support and mutation inhibition.
However, the working draft does not allow implementations to support
anything less than all three features.
I would suggest that distinct features names and interfaces be defined
so that an implementation that only supported on-demand validation could
partially implement the spec.
Looking at the DocumentEditVAL interface, the only method that is
Editing related in getDefinedElementTypes(). I previously noted that
the description is confusing, but my guess is that it is equally
applicable to all nodes and could be moved to the NodeEditVAL interface.
Validation, both on-demand and continuous could be supported by a single
DocumentVAL interface, something like (including suggestions from the
previous note on external grammars):
interface DocumentVAL {
attribute bool continuousValidityChecking
setraises NOT_SUPPORTED_ERR;
//
// WD did not provide an exception if you attempted to
// set continuousValidityChecking and there was no grammar
setraises NO_GRAMMAR_AVAILABLE_ERR;
//
// WD also did not have a <setraise> for VALIDATION_ERR
// if the document was not valid when attempting
// to set to true
setraises VALIDATION_ERR;
attribute Node grammar;
//
// If node is not a supported grammar node
setraises NO_GRAMMAR_AVAILABLE_ERR;
//
// Note: WD's validateDocument() did not have a return value
// and had no obvious way of determining if the document was
// valid
//
// grammar parameter could be null to use grammar from
// document type declaration or schema location hints
bool validateDocument(Node grammar);
//
raises NO_GRAMMAR_AVAILABLE_ERR
}
The remaining interfaces would then have no Validity features and should
probably be renamed from NodeEditVAL to NodeEdit, etc.
RangeVAL is unusally named since it is the only interface that does not
end in EditVAL. It does appear to be exclusively editing, so I'd rename
it RangeEdit. But if everything else in this message is rejected, it
would be good to rename it as RangeEditVAL for consistency.
I assume the "VAL-DOC" feature name is a hold-over from earlier drafts.
It seems fairly random in the context of the current draft.
Separation of Validation from Editing features would require a distinct
feature name (such as "VAL-EDIT") to identify implementations that
provide editing support.
Received on Thursday, 6 February 2003 03:48:30 UTC