RE: implementing redefinitions

> What do you (Mike) think _should_ happen in this case?  Whose
> responsibility is it to detect this condition, and what should they do
> when they do?

At present, I think a QT implementation has to use its best efforts to
ensure that there are no conflicting definitions of types, which means
raising errors when conflicts are detected. "Best efforts" might be
different in different cases - some implementations might raise false alarms
(e.g. when two definitions of a type are loaded from different places that
are actually equivalent); some implementations may put some of the burden on
the user ("don't change the schema while the service is running"); some
implementations might say that if they already have a version of a component
with a particular QName, then any new component with that name will be
ignored perhaps with a warning, and the existing version used instead. This
isn't dissimilar to what some validators do today given multiple imports of
the same namespace from different locations.

Longer term, we need a notion of component identity that's more
sophisticated than a QName. Not trivial, because we also need to refer to
types by name, without ambiguity, in QT SequenceType syntax.

Michael Kay
http://www.saxonica.com/

Received on Wednesday, 17 August 2005 15:36:32 UTC