- From: Michael Kay <mike@saxonica.com>
- Date: Fri, 16 Oct 2009 22:22:09 +0100
- To: <noah_mendelsohn@us.ibm.com>
- Cc: "'Henry S. Thompson'" <ht@inf.ed.ac.uk>, "'XMLSchema at XML4Pharma'" <XMLSchema@XML4Pharma.com>, <xmlschema-dev@w3.org>
> -----Original Message----- > From: noah_mendelsohn@us.ibm.com [mailto:noah_mendelsohn@us.ibm.com] > Sent: 16 October 2009 21:35 > To: Michael Kay > Cc: 'Henry S. Thompson'; 'XMLSchema at XML4Pharma'; > xmlschema-dev@w3.org > Subject: RE: Escalation mechanism for different > interpretation of W3C XML-Schema specification ? > > Michal Kay writes; > > > It's not clear what answers it gives for more complex redefinition > > graphs. > > Well, it's been a long time since I've looked at it. I guess > I assume that all redefinition graphs are in fact trees, I.e. > each redefine can redefine only one thing Well, there's a graph of schema documents, and a graph of components. If there's a cycle in the graph of schema documents then there's potential (but not the necessity) of a cycle at the level of components. A cycle at the component level is clearly a nonsense, and my inclination is that the same is true at the document level. Even without cycles, though, it's not clear to me how ACSOOD handles: A includes B A includes C B redefines X defining a restriction of type T C redefines X defining a (different) restriction of type T Perhaps you just let it be caught by the general ban on duplicate components. But unless you're careful about the wording, that ban also catches you out on a linear chain of redefinitions. I noted the statement in your proposal: "Note that the information needed to determine a redeclaration prototype is easily determined from the <redefine>ing XML schema document; the text of a redeclaration always explicitly refers to the particular schema document containing (specification of) the component being redefined. " I was surprised to see this, but I now see that the spec does say (in Schema Representation Constraint: Individual Component Redefinition) "In all cases there must be a top-level definition item of the appropriate name and kind in the <redefine>d schema document." I now realise I haven't been enforcing that rule: I only require it to be present in "the schema corresponding to" the <redefine>d schema document. If A includes B, and R redefines A, then I allow R to contain redefinitions of components that are actually defined in schema document B. And the Dutch schema I've been working on today (http://standaarden.overheid.nl/vac/1.1/xsd/vac.xsd) certainly takes advantage of that freedom. > > > And it doesn't appear to have anything to say about > chameleon include. > > ... I think this probably means that I would have to augment my > list of schema document abstraction to actually make it a > list of (schemadoc, targetNamespace) pairs, That's precisely what I do in my implementation. Regards, Michael Kay http://www.saxonica.com/ http://twitter.com/michaelhkay
Received on Friday, 16 October 2009 21:22:41 UTC