[Bug 5289] "##defined" in wildcards

http://www.w3.org/Bugs/Public/show_bug.cgi?id=5289





------- Comment #1 from noah_mendelsohn@us.ibm.com  2007-12-07 01:03 -------
> for example adding a new element declaration to the schema can
> invalidate the type subsumption relationship between two existing types in the
> schema, and the processor therefore needs potentially to re-evaluate such
> relationships every time a new element or attribute is added.

Well, let's be careful here.  I think this is an issue we've gone around on.  I
do understand that we asked for priority feedback, so discussing this is in
order.  Still, "Adding an element" is not an operation the schema
Recommendation has ever talked about.  Neither, for that matter, does the XML
Recommendation talk about "adding" Element Type Declarations to a DTD.  Indeed,
I think it's fair to say that used in certain ways parameter entities can cause
action at a distance in DTDs.  Anyway, returning to schemas...

Implicit in this bug report is that we have a requirement to facilitate the
construction of certain kinds of systems.  These would, I infer, be systems
that store schemas in a repository for reuse, and more specifically, that would
try to do incremental recompilation of selected parts as new constructs are
added to the collection of those available.  Specifically, in this case, the
goal would be to not have to recompute a subsumption relationship merely
because, when comparing the old schema and the new, some not obviously related
element declaration is present in the new for which no corresponding one
existed in the old (note, we don't "add" declarations, but we can talk
informally about similar declarations that appear in two similar schemas.)

In short, I think there's scope creep implicit in this request.  Furthermore,
while I do understand that this is a significant concern for some systems like
Saxon, and we've asked for feedback, I don't think there's new information
here.  I thought these concerns were weighed, and the decisions was made to
include ##defined, albeit not without reservations on the part of some WG
members.

So I'm asking the questions:  where is the requirement to deal with what we
might call the "open world view", and what has changed since we had a very
long, detailed, and in some ways contentious debate that led us to include this
feature?  I had thought that this aspect of the issue had been resolved, if not
easily, and that the priority feedback was largely because of concerns that
##defined might not meet its intended use cases, or might make it difficult
maintain schemas in the case where one user imported or perhaps redefined a
schema document that had been created by another.

As you say, we have closed world assumptions for other features, such as strict
processing and I think also for substitution groups.  The fact that these are a
bit easier to deal with when doing incremental compilation doesn't make easy
incremental compilation a goal I think (though it's no doubt a nice to have.) 
Whatever the other pros and cons of ##defined, I'd prefer not to reopen the
question of its closed world charcteristics.  I think we've been more than half
pregnant on that, if you'll excuse the metaphor, for a long time.

Noah

Received on Friday, 7 December 2007 01:03:41 UTC