- From: Kevin Braun <kbraun@obj-sys.com>
- Date: Wed, 23 Dec 2009 16:53:26 -0500
- To: www-xml-schema-comments@w3.org
- Message-ID: <4B329156.8040107@obj-sys.com>
Hi, Consider the following, where a.xsd overrides b.xsd, which overrides a.xsd, which.... <!-- a.xsd --> <schema xmlns="http://www.w3.org/2001/XMLSchema" targetNamespace="uri:example" id="D1" > <override schemaLocation="b.xsd" id="O1"> <element name="elementB" type="string"/> </override> <element name="elementA" type="decimal"/> </schema> <!-- b.xsd --> <schema xmlns="http://www.w3.org/2001/XMLSchema" targetNamespace="uri:example" id="D2" > <override schemaLocation="a.xsd" id="O2"> <element name="elementA" type="string"/> </override> <element name="elementB" type="decimal"/> </schema> The spec seems to say that if override(O1, D1) = D1 and override(O2, D2) = D2 (both true, I think) then it is okay that target_set(O1) includes D1 and target_set(O2) includes D2. Yet, it seems that schema(D1) should contain two conflicting declarations for elementA. The spec says: *Note:* It is /not/ forbidden for the schema document D containing an <override> <http://www.w3.org/TR/xmlschema11-1/#element-override> element E to be in the ·target set· <http://www.w3.org/TR/xmlschema11-1/#key-targetset> of E. [1] If applying the override transformation specified in Transformation for |xs:override| (§F.2) <http://www.w3.org/TR/xmlschema11-1/#override-xslt> to D and E results in a schema document equivalent to D (e.g. when none of the [children] <http://www.w3.org/TR/xml-infoset/#infoitem.element> of D, or of any <redefine> <http://www.w3.org/TR/xmlschema11-1/#element-redefine> and <override> <http://www.w3.org/TR/xmlschema11-1/#element-override> elements in D match any of the [children] <http://www.w3.org/TR/xml-infoset/#infoitem.element> of E, except for the [children] <http://www.w3.org/TR/xml-infoset/#infoitem.element> of E themselves), then the effect is the same as for a cyclic set of <include> <http://www.w3.org/TR/xmlschema11-1/#element-include> references, or as for multiple inclusions of the same document (as described in the note at the end of Assembling a schema for a single target namespace from multiple schema definition documents (|<include>|) (§4.2.3) <http://www.w3.org/TR/xmlschema11-1/#compound-schema>). If applying the override transformation to D and E changes any of the XML representations of components, then the effect of D being in the ·target set· <http://www.w3.org/TR/xmlschema11-1/#key-targetset> of E is the same as if two different schema documents containing conflicting definitions for the same components were included. ("As if" is inexact; in this case what happens is, precisely, that two schema documents with conflicting contents are included.) Aren't the conditions given in the paragraph marked [1] insufficient to claim the same effect as for a cyclic set of <include> references? Thanks & Regards, Kevin
Received on Wednesday, 23 December 2009 21:56:15 UTC